Merge ../org.eclipse.datatools.modelbase
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/.classpath b/plugins/org.eclipse.datatools.modelbase.dbdefinition/.classpath
new file mode 100644
index 0000000..64c5e31
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/.gitignore b/plugins/org.eclipse.datatools.modelbase.dbdefinition/.gitignore
new file mode 100644
index 0000000..d1d2daa
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/.gitignore
@@ -0,0 +1,4 @@
+bin
+temp.folder
+build.xml
+databasedefinition.jar
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/.project b/plugins/org.eclipse.datatools.modelbase.dbdefinition/.project
new file mode 100644
index 0000000..6f13e5a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/.project
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.datatools.modelbase.dbdefinition</name>
+	<comment></comment>
+	<projects>
+		<project>org.eclipse.sql</project>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+	</natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.datatools.modelbase.dbdefinition/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..ffc40ba
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+#Tue Feb 17 15:35:54 PST 2009
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/META-INF/MANIFEST.MF b/plugins/org.eclipse.datatools.modelbase.dbdefinition/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..2e5f7b2
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/META-INF/MANIFEST.MF
@@ -0,0 +1,15 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.datatools.modelbase.dbdefinition; singleton:=true
+Bundle-Version: 1.2.1.qualifier
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Export-Package: org.eclipse.datatools.modelbase.dbdefinition,
+ org.eclipse.datatools.modelbase.dbdefinition.impl,
+ org.eclipse.datatools.modelbase.dbdefinition.util
+Require-Bundle: org.eclipse.emf.ecore;visibility:=reexport,
+ org.eclipse.datatools.modelbase.sql
+Eclipse-LazyStart: true
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/about.html b/plugins/org.eclipse.datatools.modelbase.dbdefinition/about.html
new file mode 100644
index 0000000..129db9d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 15, 2009</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/build.properties b/plugins/org.eclipse.datatools.modelbase.dbdefinition/build.properties
new file mode 100644
index 0000000..bd3f61b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/build.properties
@@ -0,0 +1,26 @@
+###############################################################################
+# Copyright (c) 2001, 2004 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+# 
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               plugin.xml,\
+               about.html,\
+               plugin.properties
+
+src.dir =		src/
+plugin.version =	1.0.0.200706071
+javadoc.dir =		doc/api/
+download.dir =		./download/
+javac.source =		1.4
+javac.target =		1.4
+src.includes = about.html
+
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/build.xml b/plugins/org.eclipse.datatools.modelbase.dbdefinition/build.xml
new file mode 100644
index 0000000..c4e2221
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/build.xml
@@ -0,0 +1,169 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ *************************************************************************
+ * Copyright (c) 2005 Sybase, Inc. and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *  Sybase, Inc.  - initial API and implementation
+ *  
+ ***************************************************************************
+ -->
+<project name="org.eclipse.datatools.modelbase.dbdefinition" default="build.jars" basedir=".">
+	<import file="../org.eclipse.datatools.build/common_build.xml" optional="true"/>
+	<property name="module.name" value="org.eclipse.datatools.modelbase.dbdefinition"/>
+	<property name="basews" value="${ws}"/>
+	<property name="baseos" value="${os}"/>
+	<property name="basearch" value="${arch}"/>
+	<property name="basenl" value="${nl}"/>
+	<property name="eclipse.home" location="."/>
+	<property file="build.properties"/>
+	<!-- JavaDoc settings -->
+	<property name="javadocWindowTitle" value="DTP Database Definition Model"/>
+	<property name="javadocDocTitle" value="DTP Database Definition Model API (Internal)"/>
+	<property name="javadocPackages" value="org.eclipse.datatools.modelbase.dbdefinition.*"/>
+	<property name="javadocFooter" value="&lt;i>Copyright &#169;  2005 IBM Corporation and others. All rights reserved. &lt;/i>"/>
+	<!-- Compiler settings. -->
+	<property name="javacFailOnError" value="true"/>
+	<property name="javacDebugInfo" value="on"/>
+	<property name="javacVerbose" value="true"/>
+	<property name="javacSource" value="${javac.source}"/>
+	<property name="javacTarget" value="${javac.target}"/>
+	<property name="compilerArg" value=""/>
+	<path id="path_bootclasspath">
+		<fileset dir="${java.home}/lib">
+			<include name="*.jar"/>
+		</fileset>
+		<!-- Plug-ins found in Eclipse install directory -->
+		<fileset dir="${eclipse.home}/plugins">
+			<!-- Include jared EMF plug-ins -->
+			<include name="org.eclipse.emf.ecore_*.jar"/>
+			<include name="org.eclipse.emf.common_*.jar"/>
+			<include name="org.eclipse.emf.ecore.sdo_*.jar"/>
+			<include name="org.eclipse.emf.commonj.sdo_*.jar"/>
+			<include name="org.eclipse.emf.ecore.xmi_*.jar"/>
+			<include name="org.eclipse.emf.ecore.change_*.jar"/>
+			<!-- Include expanded EMF plug-ins -->
+			<include name="org.eclipse.emf.ecore_*/org.eclipse.emf.ecore*.jar"/>
+			<include name="org.eclipse.emf.common_*/org.eclipse.emf.common*.jar"/>
+			<include name="org.eclipse.emf.ecore.sdo_*/org.eclipse.emf.ecore.sdo*.jar"/>
+			<include name="org.eclipse.emf.commonj.sdo_*/org.eclipse.emf.commonj.sdo*.jar"/>
+			<include name="org.eclipse.emf.ecore.xmi_*/org.eclipse.emf.ecore.xmi*.jar"/>
+			<include name="org.eclipse.emf.ecore.change_*/org.eclipse.emf.ecore.change*.jar"/>
+		</fileset>
+		<!-- Dependencies on other DTP plug-ins, built before this one -->
+		<fileset dir="../">
+			<include name="org.eclipse.datatools.modelbase.sql/bin/*"/>
+			<include name="org.eclipse.datatools.modelbase.sql/sqlmodel.jar"/>
+		</fileset>
+	</path>
+	<property name="bootclasspath" refid="path_bootclasspath"/>
+	<target name="init" depends="properties">
+		<condition property="pluginTemp" value="${buildTempFolder}/plugins">
+			<isset property="buildTempFolder"/>
+		</condition>
+		<property name="pluginTemp" value="${basedir}"/>
+		<condition property="build.result.folder" value="${pluginTemp}/${module.name}">
+			<isset property="buildTempFolder"/>
+		</condition>
+		<property name="build.result.folder" value="${basedir}"/>
+		<property name="temp.folder" value="${basedir}/temp.folder"/>
+		<property name="plugin.destination" value="${basedir}"/>
+	</target>
+	<target name="properties" if="eclipse.running">
+		<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
+	</target>
+	<target name="build.update.jar" depends="init" description="Build the plug-in: org.eclipse.datatools.modelbase.dbdefinition for an update site.">
+		<delete dir="${temp.folder}"/>
+		<mkdir dir="${temp.folder}"/>
+		<antcall target="build.jars"/>
+		<antcall target="gather.bin.parts">
+			<param name="destination.temp.folder" value="${temp.folder}/"/>
+		</antcall>
+		<zip destfile="${plugin.destination}/${module.name}_${plugin.version}.jar" basedir="${temp.folder}/${module.name}_${plugin.version}" filesonly="false" whenempty="skip" update="false"/>
+		<delete dir="${temp.folder}"/>
+	</target>
+	<target name="databasedefinition.jar" depends="init" unless="databasedefinition.jar" description="Create jar: org.eclipse.datatools.modelbase.dbdefinition databasedefinition.jar.">
+		<delete dir="${temp.folder}/databasedefinition.jar.bin"/>
+		<mkdir dir="${temp.folder}/databasedefinition.jar.bin"/>
+		<!-- compile the source code -->
+		<javac destdir="${temp.folder}/databasedefinition.jar.bin" failonerror="${javacFailOnError}" verbose="${javacVerbose}" debug="${javacDebugInfo}" includeAntRuntime="no" bootclasspath="${bootclasspath}" source="${javacSource}" target="${javacTarget}">
+			<compilerarg line="${compilerArg}"/>
+			<classpath refid="path_bootclasspath"/>
+			<src path="src/"/>
+		</javac>
+		<!-- Copy necessary resources -->
+		<copy todir="${temp.folder}/databasedefinition.jar.bin" failonerror="true" overwrite="false">
+			<fileset dir="src/" excludes="**/*.java, **/package.htm*,null"/>
+		</copy>
+		<mkdir dir="${build.result.folder}"/>
+		<jar destfile="${build.result.folder}/databasedefinition.jar" basedir="${temp.folder}/databasedefinition.jar.bin"/>
+		<delete dir="${temp.folder}/databasedefinition.jar.bin"/>
+	</target>
+	<target name="databasedefinitionsrc.zip" depends="init" unless="databasedefinitionsrc.zip">
+		<mkdir dir="${build.result.folder}"/>
+		<zip destfile="${build.result.folder}/databasedefinitionsrc.zip" filesonly="false" whenempty="skip" update="false">
+			<fileset dir="src/" includes="**/*.java"/>
+		</zip>
+	</target>
+	<target name="build.jars" depends="init" description="Build all the jars for the plug-in: org.eclipse.datatools.modelbase.dbdefinition.">
+		<available property="databasedefinition.jar" file="${build.result.folder}/databasedefinition.jar"/>
+		<antcall target="databasedefinition.jar"/>
+	</target>
+	<target name="build.sources" depends="init">
+		<available property="databasedefinitionsrc.zip" file="${build.result.folder}/databasedefinitionsrc.zip"/>
+		<antcall target="databasedefinitionsrc.zip"/>
+	</target>
+	<target name="gather.bin.parts" depends="init" if="destination.temp.folder">
+		<mkdir dir="${destination.temp.folder}/${module.name}_${plugin.version}"/>
+		<copy todir="${destination.temp.folder}/${module.name}_${plugin.version}" failonerror="true" overwrite="false">
+			<fileset dir="${build.result.folder}" includes="databasedefinition.jar"/>
+		</copy>
+		<copy todir="${destination.temp.folder}/${module.name}_${plugin.version}" failonerror="true" overwrite="false">
+			<fileset dir="${basedir}" includes="plugin.xml,META-INF/,plugin.properties,databasedefinition.jar,about.html"/>
+		</copy>
+		<copy todir="${destination.temp.folder}/${module.name}_${plugin.version}" failonerror="false" overwrite="false">
+			<fileset dir="${basedir}" includes="databasedefinitionsrc.zip"/>
+		</copy>
+	</target>
+	<target name="build.zips" depends="init"/>
+	<target name="gather.sources" depends="init" if="destination.temp.folder">
+		<mkdir dir="${destination.temp.folder}/${module.name}_${plugin.version}"/>
+		<copy file="${build.result.folder}/databasedefinitionsrc.zip" todir="${destination.temp.folder}/${module.name}_${plugin.version}" failonerror="false" overwrite="false"/>
+	</target>
+	<target name="gather.logs" depends="init" if="destination.temp.folder">
+		<mkdir dir="${destination.temp.folder}/${module.name}_${plugin.version}"/>
+		<copy file="${temp.folder}/databasedefinition.jar.bin.log" todir="${destination.temp.folder}/${module.name}_${plugin.version}" failonerror="false" overwrite="false"/>
+	</target>
+	<target name="clean" depends="init" description="Clean the plug-in: org.eclipse.datatools.modelbase.dbdefinition of all the zips, jars and logs created.">
+		<delete file="${build.result.folder}/databasedefinition.jar"/>
+		<delete file="${build.result.folder}/databasedefinitionsrc.zip"/>
+		<delete file="${plugin.destination}/${module.name}_${plugin.version}.jar"/>
+		<delete file="${plugin.destination}/${module.name}_${plugin.version}.zip"/>
+		<delete dir="${temp.folder}"/>
+	</target>
+	<target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+		<eclipse.convertPath fileSystemPath="C:/V3/3.1/eclipse/workspace-dtp/org.eclipse.datatools.modelbase.dbdefinition" property="resourcePath"/>
+		<eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+	</target>
+	<target name="zip.plugin" depends="init" description="Create a zip containing all the elements for the plug-in: org.eclipse.datatools.modelbase.dbdefinition.">
+		<delete dir="${temp.folder}"/>
+		<mkdir dir="${temp.folder}"/>
+		<antcall target="build.jars"/>
+		<antcall target="build.sources"/>
+		<antcall target="gather.bin.parts">
+			<param name="destination.temp.folder" value="${temp.folder}/"/>
+		</antcall>
+		<antcall target="gather.sources">
+			<param name="destination.temp.folder" value="${temp.folder}/"/>
+		</antcall>
+		<delete>
+			<fileset dir="${temp.folder}" includes="**/*.bin.log"/>
+		</delete>
+		<zip destfile="${plugin.destination}/${module.name}_${plugin.version}.zip" basedir="${temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+		<delete dir="${temp.folder}"/>
+	</target>
+</project>
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/model/DatabaseDefinitionModel.mdl b/plugins/org.eclipse.datatools.modelbase.dbdefinition/model/DatabaseDefinitionModel.mdl
new file mode 100644
index 0000000..9c6442e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/model/DatabaseDefinitionModel.mdl
@@ -0,0 +1,12626 @@
+

+(object Petal

+    version    	47

+    _written   	"Rose 8.0.0303.1400"

+    charSet    	0)

+

+(object Design "Logical View"

+    is_unit    	TRUE

+    is_loaded  	TRUE

+    attributes 	(list Attribute_Set

+	(object Attribute

+	    tool       	"Java"

+	    name       	"IDE"

+	    value      	"Internal Editor")

+	(object Attribute

+	    tool       	"Java"

+	    name       	"UserDefineTagName1"

+	    value      	"")

+	(object Attribute

+	    tool       	"Java"

+	    name       	"UserDefineTagText1"

+	    value      	"")

+	(object Attribute

+	    tool       	"Java"

+	    name       	"UserDefineTagApply1"

+	    value      	"")

+	(object Attribute

+	    tool       	"Java"

+	    name       	"UserDefineTagName2"

+	    value      	"")

+	(object Attribute

+	    tool       	"Java"

+	    name       	"UserDefineTagText2"

+	    value      	"")

+	(object Attribute

+	    tool       	"Java"

+	    name       	"UserDefineTagApply2"

+	    value      	"")

+	(object Attribute

+	    tool       	"Java"

+	    name       	"UserDefineTagName3"

+	    value      	"")

+	(object Attribute

+	    tool       	"Java"

+	    name       	"UserDefineTagText3"

+	    value      	"")

+	(object Attribute

+	    tool       	"Java"

+	    name       	"UserDefineTagApply3"

+	    value      	""))

+    quid       	"3FA0657E034F"

+    defaults   	(object defaults

+	rightMargin 	0.250000

+	leftMargin 	0.250000

+	topMargin  	0.250000

+	bottomMargin 	0.500000

+	pageOverlap 	0.250000

+	clipIconLabels 	TRUE

+	autoResize 	TRUE

+	snapToGrid 	TRUE

+	gridX      	0

+	gridY      	0

+	defaultFont 	(object Font

+	    size       	12

+	    face       	"Arial"

+	    bold       	FALSE

+	    italics    	FALSE

+	    underline  	FALSE

+	    strike     	FALSE

+	    color      	0

+	    default_color 	TRUE)

+	showMessageNum 	3

+	showClassOfObject 	TRUE

+	notation   	"Unified")

+    root_usecase_package 	(object Class_Category "Use Case View"

+	quid       	"3FA0657E0351"

+	exportControl 	"Public"

+	global     	TRUE

+	logical_models 	(list unit_reference_list)

+	logical_presentations 	(list unit_reference_list

+	    (object UseCaseDiagram "Main"

+		quid       	"3FA0659201DC"

+		title      	"Main"

+		zoom       	100

+		max_height 	28350

+		max_width  	21600

+		origin_x   	0

+		origin_y   	0

+		items      	(list diagram_item_list))))

+    root_category 	(object Class_Category "Logical View"

+	quid       	"3FA0657E0350"

+	exportControl 	"Public"

+	global     	TRUE

+	subsystem  	"Component View"

+	quidu      	"3FA0657E0352"

+	logical_models 	(list unit_reference_list

+	    (object Association "$UNNAMED$0"

+		quid       	"3FCE2B720171"

+		roles      	(list role_list

+		    (object Role "predefinedDataTypeDefinitions"

+			quid       	"3FCE2B7400C9"

+			label      	"predefinedDataTypeDefinitions"

+			supplier   	"Logical View::DatabaseModel::PredefinedDataTypeDefinition"

+			quidu      	"3FCE2B5F000B"

+			client_cardinality 	(value cardinality "0..n")

+			Containment 	"By Value"

+			is_navigable 	TRUE)

+		    (object Role "$UNNAMED$1"

+			quid       	"3FCE2B7400D3"

+			supplier   	"Logical View::DatabaseModel::DatabaseVendorDefinition"

+			quidu      	"3FCD44F30154"

+			client_cardinality 	(value cardinality "1")

+			is_aggregate 	TRUE)))

+	    (object Association "$UNNAMED$2"

+		quid       	"3FFF64EF0065"

+		roles      	(list role_list

+		    (object Role "tableSpaceDefinition"

+			quid       	"3FFF64F0027A"

+			label      	"tableSpaceDefinition"

+			supplier   	"Logical View::DatabaseModel::TableSpaceDefinition"

+			quidu      	"3FFF64120180"

+			client_cardinality 	(value cardinality "1")

+			Containment 	"By Value"

+			is_navigable 	TRUE)

+		    (object Role "$UNNAMED$3"

+			quid       	"3FFF64F00284"

+			supplier   	"Logical View::DatabaseModel::DatabaseVendorDefinition"

+			quidu      	"3FCD44F30154"

+			client_cardinality 	(value cardinality "1")

+			is_aggregate 	TRUE)))

+	    (object Association "$UNNAMED$4"

+		quid       	"3FFF66B30228"

+		roles      	(list role_list

+		    (object Role "storedProcedureDefinition"

+			quid       	"3FFF66B40229"

+			label      	"storedProcedureDefinition"

+			supplier   	"Logical View::DatabaseModel::StoredProcedureDefinition"

+			quidu      	"3FFF660701D0"

+			client_cardinality 	(value cardinality "1")

+			Containment 	"By Value"

+			is_navigable 	TRUE)

+		    (object Role "$UNNAMED$5"

+			quid       	"3FFF66B40233"

+			supplier   	"Logical View::DatabaseModel::DatabaseVendorDefinition"

+			quidu      	"3FCD44F30154"

+			client_cardinality 	(value cardinality "1")

+			is_aggregate 	TRUE)))

+	    (object Association "$UNNAMED$6"

+		quid       	"3FFF66DE032E"

+		roles      	(list role_list

+		    (object Role "triggerDefinition"

+			quid       	"3FFF66DF036C"

+			label      	"triggerDefinition"

+			supplier   	"Logical View::DatabaseModel::TriggerDefinition"

+			quidu      	"3FFF661C013A"

+			client_cardinality 	(value cardinality "1")

+			Containment 	"By Value"

+			is_navigable 	TRUE)

+		    (object Role "$UNNAMED$7"

+			quid       	"3FFF66DF0376"

+			supplier   	"Logical View::DatabaseModel::DatabaseVendorDefinition"

+			quidu      	"3FCD44F30154"

+			client_cardinality 	(value cardinality "1")

+			is_aggregate 	TRUE)))

+	    (object Association "$UNNAMED$8"

+		quid       	"4001F6BA026A"

+		roles      	(list role_list

+		    (object Role "columnDefinition"

+			quid       	"4001F6BC001E"

+			label      	"columnDefinition"

+			supplier   	"Logical View::DatabaseModel::ColumnDefinition"

+			quidu      	"4001F5A8000D"

+			client_cardinality 	(value cardinality "1")

+			Containment 	"By Value"

+			is_navigable 	TRUE)

+		    (object Role "$UNNAMED$9"

+			quid       	"4001F6BC0028"

+			supplier   	"Logical View::DatabaseModel::DatabaseVendorDefinition"

+			quidu      	"3FCD44F30154"

+			client_cardinality 	(value cardinality "1")

+			is_aggregate 	TRUE)))

+	    (object Association "$UNNAMED$10"

+		quid       	"4001F6D802BD"

+		roles      	(list role_list

+		    (object Role "constraintDefinition"

+			quid       	"4001F6D902D3"

+			label      	"constraintDefinition"

+			supplier   	"Logical View::DatabaseModel::ConstraintDefinition"

+			quidu      	"4001F5B400AA"

+			client_cardinality 	(value cardinality "1")

+			Containment 	"By Value"

+			is_navigable 	TRUE)

+		    (object Role "$UNNAMED$11"

+			quid       	"4001F6D902DD"

+			supplier   	"Logical View::DatabaseModel::DatabaseVendorDefinition"

+			quidu      	"3FCD44F30154"

+			client_cardinality 	(value cardinality "1")

+			is_aggregate 	TRUE)))

+	    (object Association "$UNNAMED$12"

+		quid       	"4002026203BF"

+		roles      	(list role_list

+		    (object Role "extendedDefinitions"

+			quid       	"4002026303AC"

+			label      	"extendedDefinitions"

+			supplier   	"Logical View::DatabaseModel::ExtendedDefinition"

+			quidu      	"4002024A0338"

+			client_cardinality 	(value cardinality "0..n")

+			Containment 	"By Value"

+			is_navigable 	TRUE)

+		    (object Role "$UNNAMED$13"

+			quid       	"4002026303B7"

+			supplier   	"Logical View::DatabaseModel::DatabaseVendorDefinition"

+			quidu      	"3FCD44F30154"

+			client_cardinality 	(value cardinality "1")

+			is_aggregate 	TRUE)))

+	    (object Association "$UNNAMED$14"

+		quid       	"400313EC024A"

+		roles      	(list role_list

+		    (object Role "indexDefinition"

+			quid       	"400313EE0120"

+			label      	"indexDefinition"

+			supplier   	"Logical View::DatabaseModel::IndexDefinition"

+			quidu      	"4001F947004C"

+			client_cardinality 	(value cardinality "1")

+			Containment 	"By Value"

+			is_navigable 	TRUE)

+		    (object Role "$UNNAMED$15"

+			quid       	"400313EE0134"

+			supplier   	"Logical View::DatabaseModel::DatabaseVendorDefinition"

+			quidu      	"3FCD44F30154"

+			client_cardinality 	(value cardinality "1")

+			is_aggregate 	TRUE)))

+	    (object Association "$UNNAMED$16"

+		quid       	"40031DEA003F"

+		roles      	(list role_list

+		    (object Role "tableDefinition"

+			quid       	"40031DEB022B"

+			label      	"tableDefinition"

+			supplier   	"Logical View::DatabaseModel::TableDefinition"

+			quidu      	"40031D100032"

+			client_cardinality 	(value cardinality "1")

+			Containment 	"By Value"

+			is_navigable 	TRUE)

+		    (object Role "$UNNAMED$17"

+			quid       	"40031DEB023F"

+			supplier   	"Logical View::DatabaseModel::DatabaseVendorDefinition"

+			quidu      	"3FCD44F30154"

+			client_cardinality 	(value cardinality "1")

+			is_aggregate 	TRUE)))

+	    (object Association "$UNNAMED$18"

+		quid       	"404505700242"

+		roles      	(list role_list

+		    (object Role "sequenceDefinition"

+			quid       	"4045057102A7"

+			label      	"sequenceDefinition"

+			supplier   	"Logical View::DatabaseModel::SequenceDefinition"

+			quidu      	"4045055E016A"

+			client_cardinality 	(value cardinality "1")

+			Containment 	"By Value"

+			is_navigable 	TRUE)

+		    (object Role "$UNNAMED$19"

+			quid       	"4045057102B1"

+			supplier   	"Logical View::DatabaseModel::DatabaseVendorDefinition"

+			quidu      	"3FCD44F30154"

+			client_cardinality 	(value cardinality "1")

+			is_aggregate 	TRUE)))

+	    (object Association "$UNNAMED$20"

+		quid       	"4045081E03C5"

+		roles      	(list role_list

+		    (object Role "predefinedDataTypeDefinitions"

+			quid       	"404508210030"

+			label      	"predefinedDataTypeDefinitions"

+			supplier   	"Logical View::DatabaseModel::PredefinedDataTypeDefinition"

+			quidu      	"3FCE2B5F000B"

+			client_cardinality 	(value cardinality "1..n")

+			Containment 	"By Reference"

+			is_navigable 	TRUE)

+		    (object Role "$UNNAMED$21"

+			quid       	"40450821003A"

+			supplier   	"Logical View::DatabaseModel::SequenceDefinition"

+			quidu      	"4045055E016A"

+			client_cardinality 	(value cardinality "1")

+			is_aggregate 	TRUE)))

+	    (object Association "$UNNAMED$22"

+		quid       	"404537DE0076"

+		roles      	(list role_list

+		    (object Role "defaultDataTypeDefinition"

+			quid       	"404537E4018D"

+			label      	"defaultDataTypeDefinition"

+			supplier   	"Logical View::DatabaseModel::PredefinedDataTypeDefinition"

+			quidu      	"3FCE2B5F000B"

+			client_cardinality 	(value cardinality "1")

+			Containment 	"By Reference"

+			is_navigable 	TRUE)

+		    (object Role "$UNNAMED$23"

+			quid       	"404537E40197"

+			supplier   	"Logical View::DatabaseModel::SequenceDefinition"

+			quidu      	"4045055E016A"

+			client_cardinality 	(value cardinality "1")

+			is_aggregate 	TRUE)))

+	    (object Association "$UNNAMED$24"

+		quid       	"4060BEF10068"

+		roles      	(list role_list

+		    (object Role "udtDefinition"

+			quid       	"4060BEF301DE"

+			label      	"udtDefinition"

+			supplier   	"Logical View::DatabaseModel::UserDefinedTypeDefinition"

+			quidu      	"4059F90D036F"

+			client_cardinality 	(value cardinality "1")

+			Containment 	"By Value"

+			is_navigable 	TRUE)

+		    (object Role "$UNNAMED$25"

+			quid       	"4060BEF301E0"

+			supplier   	"Logical View::DatabaseModel::DatabaseVendorDefinition"

+			quidu      	"3FCD44F30154"

+			client_cardinality 	(value cardinality "1")

+			is_aggregate 	TRUE)))

+	    (object Association "$UNNAMED$26"

+		quid       	"419A9A360287"

+		roles      	(list role_list

+		    (object Role "queryDefinition"

+			quid       	"419A9A3801CB"

+			label      	"queryDefinition"

+			supplier   	"Logical View::DatabaseModel::QueryDefinition"

+			quidu      	"419A95AA012E"

+			client_cardinality 	(value cardinality "1")

+			Containment 	"By Value"

+			is_navigable 	TRUE)

+		    (object Role "$UNNAMED$27"

+			quid       	"419A9A3801CD"

+			supplier   	"Logical View::DatabaseModel::DatabaseVendorDefinition"

+			quidu      	"3FCD44F30154"

+			client_cardinality 	(value cardinality "1")

+			is_aggregate 	TRUE)))

+	    (object Association "$UNNAMED$28"

+		quid       	"41DDFC50008D"

+		roles      	(list role_list

+		    (object Role "$UNNAMED$29"

+			quid       	"41DDFC51017F"

+			supplier   	"Logical View::DatabaseModel::SQLSyntaxDefinition"

+			quidu      	"41DDFC18014B"

+			client_cardinality 	(value cardinality "1")

+			Containment 	"By Value"

+			is_navigable 	TRUE)

+		    (object Role "SQLSyntaxDefinition"

+			quid       	"41DDFC510181"

+			label      	"SQLSyntaxDefinition"

+			supplier   	"Logical View::DatabaseModel::DatabaseVendorDefinition"

+			quidu      	"3FCD44F30154"

+			client_cardinality 	(value cardinality "1")

+			is_aggregate 	TRUE)))

+	    (object Association "$UNNAMED$30"

+		quid       	"427AC62702B3"

+		roles      	(list role_list

+		    (object Role "nicknameDefinition"

+			quid       	"427AC62803B9"

+			label      	"nicknameDefinition"

+			supplier   	"Logical View::DatabaseModel::NicknameDefinition"

+			quidu      	"427AC5EF0334"

+			client_cardinality 	(value cardinality "1")

+			Containment 	"By Value"

+			is_navigable 	TRUE)

+		    (object Role "$UNNAMED$31"

+			quid       	"427AC62803BB"

+			supplier   	"Logical View::DatabaseModel::DatabaseVendorDefinition"

+			quidu      	"3FCD44F30154"

+			client_cardinality 	(value cardinality "1")

+			is_aggregate 	TRUE)))

+	    (object Association "$UNNAMED$32"

+		quid       	"437A20B70145"

+		roles      	(list role_list

+		    (object Role "schemaDefinition"

+			quid       	"437A20BC0192"

+			label      	"schemaDefinition"

+			supplier   	"Logical View::DatabaseModel::SchemaDefinition"

+			quidu      	"437A206F001F"

+			client_cardinality 	(value cardinality "1")

+			Containment 	"By Value"

+			is_navigable 	TRUE)

+		    (object Role "$UNNAMED$33"

+			quid       	"437A20BC019C"

+			supplier   	"Logical View::DatabaseModel::DatabaseVendorDefinition"

+			quidu      	"3FCD44F30154"

+			client_cardinality 	(value cardinality "1")

+			is_aggregate 	TRUE)))

+	    (object Association "$UNNAMED$34"

+		quid       	"437A234B02A3"

+		roles      	(list role_list

+		    (object Role "viewDefinition"

+			quid       	"437A234F0122"

+			label      	"viewDefinition"

+			supplier   	"Logical View::DatabaseModel::ViewDefinition"

+			quidu      	"437A2328010D"

+			client_cardinality 	(value cardinality "1")

+			Containment 	"By Value"

+			is_navigable 	TRUE)

+		    (object Role "$UNNAMED$35"

+			quid       	"437A234F0124"

+			supplier   	"Logical View::DatabaseModel::DatabaseVendorDefinition"

+			quidu      	"3FCD44F30154"

+			client_cardinality 	(value cardinality "1")

+			is_aggregate 	TRUE)))

+	    (object Association "$UNNAMED$36"

+		quid       	"4383D8A10263"

+		roles      	(list role_list

+		    (object Role "leadingFieldQualifierDefinition"

+			quid       	"4383D8A203C4"

+			label      	"leadingFieldQualifierDefinition"

+			supplier   	"Logical View::DatabaseModel::FieldQualifierDefinition"

+			quidu      	"4383D6E300C7"

+			client_cardinality 	(value cardinality "0..n")

+			Containment 	"By Value"

+			is_navigable 	TRUE)

+		    (object Role "$UNNAMED$37"

+			quid       	"4383D8A203CE"

+			supplier   	"Logical View::DatabaseModel::PredefinedDataTypeDefinition"

+			quidu      	"3FCE2B5F000B"

+			client_cardinality 	(value cardinality "1")

+			is_aggregate 	TRUE)))

+	    (object Association "$UNNAMED$38"

+		quid       	"4383D8DC0302"

+		roles      	(list role_list

+		    (object Role "trailingFieldQualifierDefinition"

+			quid       	"4383D8DD01F6"

+			label      	"trailingFieldQualifierDefinition"

+			supplier   	"Logical View::DatabaseModel::FieldQualifierDefinition"

+			quidu      	"4383D6E300C7"

+			client_cardinality 	(value cardinality "0..n")

+			Containment 	"By Value"

+			is_navigable 	TRUE)

+		    (object Role "$UNNAMED$39"

+			quid       	"4383D8DD01F8"

+			supplier   	"Logical View::DatabaseModel::PredefinedDataTypeDefinition"

+			quidu      	"3FCE2B5F000B"

+			client_cardinality 	(value cardinality "1")

+			is_aggregate 	TRUE)))

+	    (object Association "$UNNAMED$40"

+		quid       	"438DF8B40219"

+		roles      	(list role_list

+		    (object Role "validTrailingFieldQualifierDefinitions"

+			quid       	"438DF8BB011F"

+			label      	"validTrailingFieldQualifierDefinitions"

+			supplier   	"Logical View::DatabaseModel::FieldQualifierDefinition"

+			quidu      	"4383D6E300C7"

+			client_cardinality 	(value cardinality "0..n")

+			Containment 	"By Reference"

+			is_navigable 	TRUE)

+		    (object Role "$UNNAMED$41"

+			quid       	"438DF8BB0121"

+			supplier   	"Logical View::DatabaseModel::FieldQualifierDefinition"

+			quidu      	"4383D6E300C7"

+			client_cardinality 	(value cardinality "1")

+			is_aggregate 	TRUE)))

+	    (object Association "$UNNAMED$42"

+		quid       	"438DFF970192"

+		roles      	(list role_list

+		    (object Role "defaultTrailingFieldQualifierDefinition"

+			quid       	"438DFF9C0171"

+			label      	"defaultTrailingFieldQualifierDefinition"

+			supplier   	"Logical View::DatabaseModel::FieldQualifierDefinition"

+			quidu      	"4383D6E300C7"

+			client_cardinality 	(value cardinality "0..1")

+			is_navigable 	TRUE)

+		    (object Role "$UNNAMED$43"

+			quid       	"438DFF9C0173"

+			supplier   	"Logical View::DatabaseModel::PredefinedDataTypeDefinition"

+			quidu      	"3FCE2B5F000B"

+			client_cardinality 	(value cardinality "1"))))

+	    (object Association "$UNNAMED$44"

+		quid       	"438DFFB00350"

+		roles      	(list role_list

+		    (object Role "defaultLeadingFieldQualifierDefinition"

+			quid       	"438DFFB4003F"

+			label      	"defaultLeadingFieldQualifierDefinition"

+			supplier   	"Logical View::DatabaseModel::FieldQualifierDefinition"

+			quidu      	"4383D6E300C7"

+			client_cardinality 	(value cardinality "0..1")

+			is_navigable 	TRUE)

+		    (object Role "$UNNAMED$45"

+			quid       	"438DFFB40041"

+			supplier   	"Logical View::DatabaseModel::PredefinedDataTypeDefinition"

+			quidu      	"3FCE2B5F000B"

+			client_cardinality 	(value cardinality "1"))))

+	    (object Association "$UNNAMED$46"

+		quid       	"43D56B280059"

+		roles      	(list role_list

+		    (object Role "identityColumnDataTypeDefinitions"

+			quid       	"43D56B2E006C"

+			label      	"identityColumnDataTypeDefinitions"

+			supplier   	"Logical View::DatabaseModel::PredefinedDataTypeDefinition"

+			quidu      	"3FCE2B5F000B"

+			client_cardinality 	(value cardinality "1..n")

+			Containment 	"By Reference"

+			is_navigable 	TRUE)

+		    (object Role "$UNNAMED$47"

+			quid       	"43D56B2E0076"

+			supplier   	"Logical View::DatabaseModel::ColumnDefinition"

+			quidu      	"4001F5A8000D"

+			client_cardinality 	(value cardinality "1")

+			is_aggregate 	TRUE)))

+	    (object Association "$UNNAMED$48"

+		quid       	"4410B306018C"

+		roles      	(list role_list

+		    (object Role "debuggerDefinition"

+			quid       	"4410B307033C"

+			label      	"debuggerDefinition"

+			supplier   	"Logical View::DatabaseModel::DebuggerDefinition"

+			quidu      	"4410B2D600C4"

+			client_cardinality 	(value cardinality "1")

+			Containment 	"By Value"

+			is_navigable 	TRUE)

+		    (object Role "$UNNAMED$49"

+			quid       	"4410B3070346"

+			supplier   	"Logical View::DatabaseModel::DatabaseVendorDefinition"

+			quidu      	"3FCD44F30154"

+			client_cardinality 	(value cardinality "1")

+			is_aggregate 	TRUE)))

+	    (object Association "$UNNAMED$50"

+		quid       	"46315ABB01AE"

+		roles      	(list role_list

+		    (object Role "privilegedElementDefinitions"

+			quid       	"46315ABC029D"

+			label      	"privilegedElementDefinitions"

+			supplier   	"Logical View::DatabaseModel::PrivilegedElementDefinition"

+			quidu      	"46315A970300"

+			client_cardinality 	(value cardinality "0..n")

+			Containment 	"By Value"

+			is_navigable 	TRUE)

+		    (object Role "$UNNAMED$51"

+			quid       	"46315ABC02A7"

+			supplier   	"Logical View::DatabaseModel::DatabaseVendorDefinition"

+			quidu      	"3FCD44F30154"

+			client_cardinality 	(value cardinality "1")

+			is_aggregate 	TRUE)))

+	    (object Association "$UNNAMED$52"

+		quid       	"46315ABF011E"

+		roles      	(list role_list

+		    (object Role "privilegeDefinitions"

+			quid       	"46315ABF02D5"

+			label      	"privilegeDefinitions"

+			supplier   	"Logical View::DatabaseModel::PrivilegeDefinition"

+			quidu      	"46315AAA018E"

+			client_cardinality 	(value cardinality "0..n")

+			Containment 	"By Value"

+			is_navigable 	TRUE)

+		    (object Role "$UNNAMED$53"

+			quid       	"46315ABF02DF"

+			supplier   	"Logical View::DatabaseModel::PrivilegedElementDefinition"

+			quidu      	"46315A970300"

+			client_cardinality 	(value cardinality "1")

+			is_aggregate 	TRUE)))

+	    (object Association "$UNNAMED$54"

+		quid       	"46315B4E018A"

+		roles      	(list role_list

+		    (object Role "actionElementDefinitions"

+			quid       	"46315B510191"

+			label      	"actionElementDefinitions"

+			supplier   	"Logical View::DatabaseModel::PrivilegedElementDefinition"

+			quidu      	"46315A970300"

+			client_cardinality 	(value cardinality "0..n")

+			is_navigable 	TRUE)

+		    (object Role "$UNNAMED$55"

+			quid       	"46315B51019B"

+			supplier   	"Logical View::DatabaseModel::PrivilegeDefinition"

+			quidu      	"46315AAA018E")))

+	    (object Association "$UNNAMED$56"

+		quid       	"4B7349E40121"

+		roles      	(list role_list

+		    (object Role "constructedDataTypeDefinition"

+			quid       	"4B7349E70252"

+			label      	"constructedDataTypeDefinition"

+			supplier   	"Logical View::DatabaseModel::ConstructedDataTypeDefinition"

+			quidu      	"4B7349BF027C"

+			client_cardinality 	(value cardinality "1")

+			Containment 	"By Value"

+			is_navigable 	TRUE)

+		    (object Role "$UNNAMED$57"

+			quid       	"4B7349E7025C"

+			supplier   	"Logical View::DatabaseModel::DatabaseVendorDefinition"

+			quidu      	"3FCD44F30154"

+			client_cardinality 	(value cardinality "1")

+			is_aggregate 	TRUE)))

+	    (object Association "$UNNAMED$58"

+		quid       	"4B7508B60288"

+		roles      	(list role_list

+		    (object Role "predefinedDataTypeDefinitions"

+			quid       	"4B7508B80140"

+			label      	"predefinedDataTypeDefinitions"

+			supplier   	"Logical View::DatabaseModel::PredefinedDataTypeDefinition"

+			quidu      	"3FCE2B5F000B"

+			client_cardinality 	(value cardinality "0..n")

+			Containment 	"By Value"

+			is_navigable 	TRUE)

+		    (object Role "$UNNAMED$59"

+			quid       	"4B7508B80154"

+			supplier   	"Logical View::DatabaseModel::StoredProcedureDefinition"

+			quidu      	"3FFF660701D0"

+			client_cardinality 	(value cardinality "1")

+			is_aggregate 	TRUE)))

+	    (object Class_Category "DatabaseModel"

+		attributes 	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"basePackage"

+			value      	(value Text "org.eclipse.datatools.modelbase"))

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"prefix"

+			value      	(value Text "DatabaseDefinition"))

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"packageName"

+			value      	(value Text "dbdefinition"))

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"nsPrefix"

+			value      	(value Text "DBDefinition"))

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"nsURI"

+			value      	(value Text "http:///org/eclipse/datatools/modelbase/dbdefinition/dbdefinition.ecore")))

+		quid       	"3FA0659F0220"

+		exportControl 	"Public"

+		logical_models 	(list unit_reference_list

+		    (object Class "DatabaseVendorDefinition"

+			quid       	"3FCD44F30154"

+			class_attributes 	(list class_attribute_list

+			    (object ClassAttribute "vendor"

+				quid       	"3FCF909D02D0"

+				type       	"String")

+			    (object ClassAttribute "version"

+				quid       	"3FCF90AB00B3"

+				type       	"String")

+			    (object ClassAttribute "constraintsSupported"

+				quid       	"3FCE3EEF02B5"

+				type       	"boolean"

+				initv      	"true")

+			    (object ClassAttribute "maximumIdentifierLength"

+				quid       	"3FCE3EFF007D"

+				type       	"int")

+			    (object ClassAttribute "triggerSupported"

+				quid       	"3FCE4C420238"

+				type       	"boolean"

+				initv      	"true")

+			    (object ClassAttribute "snapshotViewSupported"

+				quid       	"3FCE4D9B013A"

+				type       	"boolean")

+			    (object ClassAttribute "joinSupported"

+				quid       	"3FCE4DB2018D"

+				type       	"boolean")

+			    (object ClassAttribute "viewTriggerSupported"

+				quid       	"3FCE4DC0001B"

+				type       	"boolean")

+			    (object ClassAttribute "tablespacesSupported"

+				quid       	"3FCE4DD902CA"

+				type       	"boolean"

+				initv      	"true")

+			    (object ClassAttribute "maximumCommentLength"

+				quid       	"400315B10287"

+				type       	"int")

+			    (object ClassAttribute "sequenceSupported"

+				quid       	"400D765C0002"

+				type       	"boolean")

+			    (object ClassAttribute "mQTSupported"

+				quid       	"400D7665009B"

+				type       	"boolean")

+			    (object ClassAttribute "schemaSupported"

+				quid       	"40453B1001DB"

+				type       	"boolean"

+				initv      	"true")

+			    (object ClassAttribute "aliasSupported"

+				quid       	"4059F5BA02B7"

+				type       	"boolean")

+			    (object ClassAttribute "synonymSupported"

+				quid       	"426E96B802A4"

+				type       	"boolean")

+			    (object ClassAttribute "userDefinedTypeSupported"

+				quid       	"4059F5D303E0"

+				type       	"boolean")

+			    (object ClassAttribute "domainSupported"

+				quid       	"416A1A4D01FA"

+				type       	"boolean")

+			    (object ClassAttribute "SQLStatementSupported"

+				quid       	"41DDF83100EB"

+				type       	"boolean")

+			    (object ClassAttribute "nicknameSupported"

+				quid       	"41F6BDE1010D"

+				type       	"boolean")

+			    (object ClassAttribute "quotedDMLSupported"

+				quid       	"42A0D231007D"

+				type       	"boolean"

+				initv      	"true")

+			    (object ClassAttribute "quotedDDLSupported"

+				quid       	"42A0D23D00E8"

+				type       	"boolean"

+				initv      	"true")

+			    (object ClassAttribute "xmlSupported"

+				quid       	"42DED6F2010A"

+				type       	"boolean")

+			    (object ClassAttribute "mQTIndexSupported"

+				quid       	"43D02C330280"

+				type       	"boolean")

+			    (object ClassAttribute "eventSupported"

+				quid       	"4410B35B01F2"

+				type       	"boolean")

+			    (object ClassAttribute "sqlUDFSupported"

+				quid       	"4410B36C028D"

+				type       	"boolean"

+				initv      	"true")

+			    (object ClassAttribute "storedProcedureSupported"

+				quid       	"4410B37C0217"

+				type       	"boolean"

+				initv      	"true")

+			    (object ClassAttribute "packageSupported"

+				quid       	"4631586F0162"

+				type       	"boolean")

+			    (object ClassAttribute "authorizationIdentifierSupported"

+				quid       	"4631587700CE"

+				type       	"boolean"

+				initv      	"true")

+			    (object ClassAttribute "roleSupported"

+				quid       	"4631588C039A"

+				type       	"boolean")

+			    (object ClassAttribute "groupSupported"

+				quid       	"46315893002E"

+				type       	"boolean")

+			    (object ClassAttribute "userSupported"

+				quid       	"463158A00048"

+				type       	"boolean")

+			    (object ClassAttribute "roleAuthorizationSupported"

+				quid       	"4631590100A9"

+				type       	"boolean")

+			    (object ClassAttribute "constructedDataTypeSupported"

+				quid       	"4B734A730235"

+				type       	"boolean")

+			    (object ClassAttribute "uDFSupported "

+				quid       	"4B75080B017D"

+				type       	"boolean"

+				initv      	"true")))

+		    (object Class "PredefinedDataTypeDefinition"

+			quid       	"3FCE2B5F000B"

+			class_attributes 	(list class_attribute_list

+			    (object ClassAttribute "lengthSupported"

+				quid       	"3FCE2C1403E1"

+				type       	"boolean")

+			    (object ClassAttribute "scaleSupported"

+				quid       	"3FCE2C2200BF"

+				type       	"boolean")

+			    (object ClassAttribute "precisionSupported"

+				quid       	"3FCE2C2C02A5"

+				type       	"boolean")

+			    (object ClassAttribute "keyConstraintSupported"

+				quid       	"3FCE2CCC02F5"

+				type       	"boolean")

+			    (object ClassAttribute "identitySupported"

+				quid       	"3FCE3A5F0360"

+				type       	"boolean")

+			    (object ClassAttribute "multipleColumnsSupported"

+				quid       	"3FCE3ABD0383"

+				type       	"boolean")

+			    (object ClassAttribute "nullableSupported"

+				quid       	"3FCE3ADB01D7"

+				type       	"boolean"

+				initv      	"true")

+			    (object ClassAttribute "defaultSupported"

+				quid       	"3FCE3AE201E2"

+				type       	"boolean"

+				initv      	"true")

+			    (object ClassAttribute "clusteringSupported"

+				quid       	"3FCE3AEB032F"

+				type       	"boolean")

+			    (object ClassAttribute "fillFactorSupported"

+				quid       	"3FCE3AEF03CB"

+				type       	"boolean")

+			    (object ClassAttribute "bitDataSupported"

+				quid       	"4185DC340010"

+				type       	"boolean")

+			    (object ClassAttribute "maximumValue"

+				quid       	"4060BF7D0363"

+				type       	"long")

+			    (object ClassAttribute "minimumValue"

+				quid       	"4060BF96021E"

+				type       	"long")

+			    (object ClassAttribute "maximumLength"

+				quid       	"3FCE3BAD007B"

+				type       	"int")

+			    (object ClassAttribute "maximumPrecision"

+				quid       	"3FCE3BB70043"

+				type       	"int")

+			    (object ClassAttribute "maximumScale"

+				quid       	"3FCE3BCA039E"

+				type       	"int")

+			    (object ClassAttribute "minimumScale"

+				quid       	"3FCE3BD2034F"

+				type       	"int")

+			    (object ClassAttribute "defaultValueTypes"

+				quid       	"3FCF892203B3"

+				stereotype 	"0..*"

+				type       	"String")

+			    (object ClassAttribute "primitiveType"

+				quid       	"3FD91F010368"

+				type       	"PrimitiveType"

+				quidu      	"3F54FBC4015A")

+			    (object ClassAttribute "name"

+				quid       	"3FDE057302C4"

+				stereotype 	"0..*"

+				type       	"String")

+			    (object ClassAttribute "jdbcEnumType"

+				quid       	"416A1AA803A0"

+				type       	"int")

+			    (object ClassAttribute "characterSet"

+				quid       	"41857C7001D3"

+				stereotype 	"0..*"

+				type       	"String")

+			    (object ClassAttribute "encodingScheme"

+				quid       	"41857C87035D"

+				stereotype 	"0..*"

+				type       	"String")

+			    (object ClassAttribute "characterSetSuffix"

+				quid       	"41857C9E0020"

+				type       	"String"

+				initv      	

+|""

+				)

+			    (object ClassAttribute "encodingSchemeSuffix"

+				quid       	"4185E5140085"

+				type       	"String"

+				initv      	

+|""

+				)

+			    (object ClassAttribute "javaClassName"

+				quid       	"41857F0F02DC"

+				type       	"String")

+			    (object ClassAttribute "defaultLength"

+				quid       	"41F6BF290277"

+				type       	"int")

+			    (object ClassAttribute "defaultPrecision"

+				quid       	"424868A0028D"

+				type       	"int")

+			    (object ClassAttribute "defaultScale"

+				quid       	"424868AF02C8"

+				type       	"int")

+			    (object ClassAttribute "cutoffPrecision"

+				quid       	"424DE3CE01BD"

+				type       	"int")

+			    (object ClassAttribute "lengthUnit"

+				quid       	"4256D25C02EB"

+				type       	"LengthUnit"

+				quidu      	"4256D194001D")

+			    (object ClassAttribute "orderingSupported"

+				quid       	"42B9FA820162"

+				type       	"boolean"

+				initv      	"true")

+			    (object ClassAttribute "groupingSupported"

+				quid       	"42B9FAA50221"

+				type       	"boolean"

+				initv      	"true")

+			    (object ClassAttribute "displayName"

+				quid       	"43383F42018A"

+				type       	"String")

+			    (object ClassAttribute "displayNameSupported"

+				quid       	"433844230186"

+				type       	"boolean")

+			    (object ClassAttribute "leadingFieldQualifierSupported"

+				quid       	"4339A05D0148"

+				type       	"boolean")

+			    (object ClassAttribute "trailingFieldQualifierSupported"

+				quid       	"4339A06B0118"

+				type       	"boolean")

+			    (object ClassAttribute "fieldQualifierSeparator"

+				quid       	"438406D900EF"

+				type       	"String")

+			    (object ClassAttribute "largeValueSpecifierSupported"

+				quid       	"47E2D22F0284"

+				type       	"boolean")

+			    (object ClassAttribute "largeValueSpecifierName"

+				quid       	"47E2D25C03D4"

+				type       	"String")

+			    (object ClassAttribute "largeValueSpecifierLength"

+				quid       	"47E2D26900D9"

+				type       	"int")

+			    (object ClassAttribute "lengthSemanticSupported"

+				quid       	"4888BFC002D0"

+				type       	"boolean")

+			    (object ClassAttribute "lengthSemantic"

+				quid       	"4888BFEF01C9"

+				stereotype 	"0..*"

+				type       	"String")

+			    (object ClassAttribute "languageType"

+				quid       	"4B75083203DC"

+				stereotype 	"0..*"

+				type       	"LanguageType"

+				quidu      	"3FCE524C024F")))

+		    (object Class "CheckOption"

+			quid       	"3FCE53C80166"

+			stereotype 	"enumeration"

+			class_attributes 	(list class_attribute_list

+			    (object ClassAttribute "NONE"

+				quid       	"3FCE53DA02AC"

+				type       	"int")

+			    (object ClassAttribute "CASCADE"

+				quid       	"3FCE53DD0288"

+				type       	"int")

+			    (object ClassAttribute "LOCAL"

+				quid       	"3FCE53E103BA"

+				type       	"int")))

+		    (object Class "LanguageType"

+			quid       	"3FCE524C024F"

+			stereotype 	"enumeration"

+			class_attributes 	(list class_attribute_list

+			    (object ClassAttribute "SQL"

+				quid       	"3FCE528302C7"

+				type       	"int")

+			    (object ClassAttribute "JAVA"

+				quid       	"3FCE5288001B"

+				type       	"int")

+			    (object ClassAttribute "C"

+				quid       	"3FCE528B014C"

+				type       	"int")

+			    (object ClassAttribute "OLE"

+				quid       	"3FCE528E02CD"

+				type       	"int")

+			    (object ClassAttribute "ASSEMBLY"

+				quid       	"3FCE5299017E"

+				type       	"int")

+			    (object ClassAttribute "COBOL"

+				quid       	"3FCE52A10266"

+				type       	"int")

+			    (object ClassAttribute "PLI"

+				quid       	"3FCE52A60096"

+				type       	"int")

+			    (object ClassAttribute "CPLUSPLUS"

+				quid       	"3FCE52AE003E"

+				type       	"int")

+			    (object ClassAttribute "CL"

+				quid       	"3FCE52C002ED"

+				type       	"int")

+			    (object ClassAttribute "COBOLLE"

+				quid       	"3FCE52C30391"

+				type       	"int")

+			    (object ClassAttribute "FORTRAN"

+				quid       	"3FCE52CD0345"

+				type       	"int")

+			    (object ClassAttribute "REXX"

+				quid       	"3FCE52D20112"

+				type       	"int")

+			    (object ClassAttribute "RPG"

+				quid       	"3FCE52D503BF"

+				type       	"int")

+			    (object ClassAttribute "RPGLE"

+				quid       	"3FCE52DD0226"

+				type       	"int")

+			    (object ClassAttribute "PLSQL"

+				quid       	"4B7508610073"

+				type       	"int")))

+		    (object Class "ParameterStyle"

+			quid       	"3FCE533B023F"

+			stereotype 	"enumeration"

+			class_attributes 	(list class_attribute_list

+			    (object ClassAttribute "DB2SQL"

+				quid       	"3FCE53540173"

+				type       	"int")

+			    (object ClassAttribute "GENERAL"

+				quid       	"3FCE5359021A"

+				type       	"int")

+			    (object ClassAttribute "GENERAL_WITH_NULLS"

+				quid       	"3FCE5360036F"

+				type       	"int")

+			    (object ClassAttribute "DB2GENRL"

+				quid       	"3FCE536D00B0"

+				type       	"int")

+			    (object ClassAttribute "DB2DARI"

+				quid       	"3FCE537F0016"

+				type       	"int")

+			    (object ClassAttribute "JAVA"

+				quid       	"3FCE5390009D"

+				type       	"int")

+			    (object ClassAttribute "SQL"

+				quid       	"3FCE5395037F"

+				type       	"int")))

+		    (object Class "ParentDeleteDRIRuleType"

+			quid       	"3FCE50F60334"

+			stereotype 	"enumeration"

+			class_attributes 	(list class_attribute_list

+			    (object ClassAttribute "NO_ACTION"

+				quid       	"3FCE51130141"

+				type       	"int")

+			    (object ClassAttribute "RESTRICT"

+				quid       	"3FCE51170273"

+				type       	"int")

+			    (object ClassAttribute "CASCADE"

+				quid       	"3FCE511B00A2"

+				type       	"int")

+			    (object ClassAttribute "SET_NULL"

+				quid       	"3FCE51220373"

+				type       	"int")

+			    (object ClassAttribute "SET_DEFAULT"

+				quid       	"3FCE5127029E"

+				type       	"int")))

+		    (object Class "ParentUpdateDRIRuleType"

+			quid       	"3FCE518201A5"

+			stereotype 	"enumeration"

+			class_attributes 	(list class_attribute_list

+			    (object ClassAttribute "NO_ACTION"

+				quid       	"3FCE51A201DD"

+				type       	"int")

+			    (object ClassAttribute "RESTRICT"

+				quid       	"3FCE51A80358"

+				type       	"int")

+			    (object ClassAttribute "CASCADE"

+				quid       	"3FCE51AC0368"

+				type       	"int")

+			    (object ClassAttribute "SET_NULL"

+				quid       	"3FCE51B303C2"

+				type       	"int")

+			    (object ClassAttribute "SET_DEFAULT"

+				quid       	"3FCE51B703C8"

+				type       	"int")))

+		    (object Class "ProcedureType"

+			quid       	"3FCE51E800B1"

+			stereotype 	"enumeration"

+			class_attributes 	(list class_attribute_list

+			    (object ClassAttribute "PROCEDURE"

+				quid       	"3FCE52020068"

+				type       	"int")

+			    (object ClassAttribute "FUNCTION"

+				quid       	"3FCE5208022A"

+				type       	"int")))

+		    (object Class "TableSpaceType"

+			quid       	"3FCE50550351"

+			stereotype 	"enumeration"

+			class_attributes 	(list class_attribute_list

+			    (object ClassAttribute "REGULAR"

+				quid       	"3FCE50810137"

+				type       	"int")

+			    (object ClassAttribute "LOB"

+				quid       	"3FCE508503E6"

+				type       	"int")

+			    (object ClassAttribute "SYSTEM_TEMPORARY"

+				quid       	"3FCE5089030F"

+				type       	"int")

+			    (object ClassAttribute "USER_TEMPORARY"

+				quid       	"3FCE50990308"

+				type       	"int")

+			    (object ClassAttribute "PERMANENT"

+				quid       	"3FCE50A700BA"

+				type       	"int")

+			    (object ClassAttribute "TEMPORARY"

+				quid       	"3FCE50AC0265"

+				type       	"int")

+			    (object ClassAttribute "LONG"

+				quid       	"3FCE50B5004C"

+				type       	"int")

+			    (object ClassAttribute "LARGE"

+				quid       	"3FCE50B80078"

+				type       	"int")))

+		    (object Class "TableSpaceDefinition"

+			quid       	"3FFF64120180"

+			class_attributes 	(list class_attribute_list

+			    (object ClassAttribute "typeSupported"

+				quid       	"3FFF6467013C"

+				type       	"boolean")

+			    (object ClassAttribute "extentSizeSupported"

+				quid       	"3FFF6467015A"

+				type       	"boolean")

+			    (object ClassAttribute "prefetchSizeSupported"

+				quid       	"3FFF64670178"

+				type       	"boolean")

+			    (object ClassAttribute "managedBySupported"

+				quid       	"3FFF64670196"

+				type       	"boolean")

+			    (object ClassAttribute "pageSizeSupported"

+				quid       	"3FFF646701C8"

+				type       	"boolean")

+			    (object ClassAttribute "bufferPoolSupported"

+				quid       	"3FFF646701E6"

+				type       	"boolean")

+			    (object ClassAttribute "defaultSupported"

+				quid       	"3FFF64670204"

+				type       	"boolean")

+			    (object ClassAttribute "containerMaximumSizeSupported"

+				quid       	"3FFF64CC017D"

+				type       	"boolean")

+			    (object ClassAttribute "containerInitialSizeSupported"

+				quid       	"3FFF64CC019B"

+				type       	"boolean")

+			    (object ClassAttribute "containerExtentSizeSupported"

+				quid       	"3FFF64CC01C4"

+				type       	"boolean")

+			    (object ClassAttribute "tableSpaceType"

+				quid       	"3FFF659201DC"

+				stereotype 	"0..*"

+				type       	"TableSpaceType"

+				quidu      	"3FCE50550351")

+			    (object ClassAttribute "maximumIdentifierLength"

+				quid       	"437A221B01D6"

+				type       	"int")))

+		    (object Class "StoredProcedureDefinition"

+			quid       	"3FFF660701D0"

+			class_attributes 	(list class_attribute_list

+			    (object ClassAttribute "nullInputActionSupported"

+				quid       	"3FFF6647001A"

+				type       	"boolean")

+			    (object ClassAttribute "packageGenerationSupported"

+				quid       	"3FFF66470024"

+				type       	"boolean")

+			    (object ClassAttribute "determininsticSupported"

+				quid       	"3FFF66470025"

+				type       	"boolean")

+			    (object ClassAttribute "returnedNullSupported"

+				quid       	"3FFF6647002E"

+				type       	"boolean")

+			    (object ClassAttribute "returnedTypeDeclarationConstraintSupported"

+				quid       	"3FFF6647002F"

+				type       	"boolean")

+			    (object ClassAttribute "parameterInitValueSupported"

+				quid       	"3FFF66470038"

+				type       	"boolean")

+			    (object ClassAttribute "parameterStyleSupported"

+				quid       	"3FFF66470039"

+				type       	"boolean")

+			    (object ClassAttribute "returnTypeSupported"

+				quid       	"3FFF66470042"

+				type       	"boolean")

+			    (object ClassAttribute "parameterDeclarationConstraintSupported"

+				quid       	"3FFF66470043"

+				type       	"boolean")

+			    (object ClassAttribute "maximumActionBodyLength"

+				quid       	"4001F4390240"

+				type       	"int")

+			    (object ClassAttribute "parameterStyle"

+				quid       	"4001F3B302F2"

+				stereotype 	"0..*"

+				type       	"ParameterStyle"

+				quidu      	"3FCE533B023F")

+			    (object ClassAttribute "languageType"

+				quid       	"4001F402011F"

+				stereotype 	"0..*"

+				type       	"LanguageType"

+				quidu      	"3FCE524C024F")

+			    (object ClassAttribute "functionLanguageType"

+				quid       	"41DDA1570394"

+				stereotype 	"0..*"

+				type       	"LanguageType"

+				quidu      	"3FCE524C024F")

+			    (object ClassAttribute "procedureType"

+				quid       	"4001F51901D4"

+				stereotype 	"0..*"

+				type       	"ProcedureType"

+				quidu      	"3FCE51E800B1")

+			    (object ClassAttribute "maximumIdentifierLength"

+				quid       	"437A222E0210"

+				type       	"int")))

+		    (object Class "TriggerDefinition"

+			quid       	"3FFF661C013A"

+			class_attributes 	(list class_attribute_list

+			    (object ClassAttribute "maximumReferencePartLength"

+				quid       	"4001F48602EB"

+				type       	"int")

+			    (object ClassAttribute "maximumActionBodyLength"

+				quid       	"4001F4860309"

+				type       	"int")

+			    (object ClassAttribute "typeSupported"

+				quid       	"4001F4A40316"

+				type       	"boolean")

+			    (object ClassAttribute "whenClauseSupported"

+				quid       	"4001F4E8033C"

+				type       	"boolean"

+				initv      	"true")

+			    (object ClassAttribute "granularitySupported"

+				quid       	"4001F4E80364"

+				type       	"boolean")

+			    (object ClassAttribute "referencesClauseSupported"

+				quid       	"4001F57E00A3"

+				type       	"boolean")

+			    (object ClassAttribute "perColumnUpdateTriggerSupported"

+				quid       	"4001F64B03D3"

+				type       	"boolean")

+			    (object ClassAttribute "insteadOfTriggerSupported"

+				quid       	"4001F64C0013"

+				type       	"boolean")

+			    (object ClassAttribute "rowTriggerReferenceSupported"

+				quid       	"4001F64C003B"

+				type       	"boolean")

+			    (object ClassAttribute "tableTriggerReferenceSupported"

+				quid       	"4001F64C0063"

+				type       	"boolean")

+			    (object ClassAttribute "maximumIdentifierLength"

+				quid       	"437A24FD00F8"

+				type       	"int")))

+		    (object Class "ColumnDefinition"

+			quid       	"4001F5A8000D"

+			class_attributes 	(list class_attribute_list

+			    (object ClassAttribute "identitySupported"

+				quid       	"4001F5DC01F2"

+				type       	"boolean")

+			    (object ClassAttribute "computedSupported"

+				quid       	"4001F5DC021A"

+				type       	"boolean"

+				initv      	"true")

+			    (object ClassAttribute "identityStartValueSupported"

+				quid       	"4046283D02BB"

+				type       	"boolean"

+				initv      	"false")

+			    (object ClassAttribute "identityIncrementSupported"

+				quid       	"404628430241"

+				type       	"boolean"

+				initv      	"false")

+			    (object ClassAttribute "identityMinimumSupported"

+				quid       	"4046475B03A0"

+				type       	"boolean"

+				initv      	"false")

+			    (object ClassAttribute "identityMaximumSupported"

+				quid       	"4046476502BE"

+				type       	"boolean"

+				initv      	"false")

+			    (object ClassAttribute "identityCycleSupported"

+				quid       	"4046477A00E7"

+				type       	"boolean"

+				initv      	"false")

+			    (object ClassAttribute "maximumIdentifierLength"

+				quid       	"437A21E600A0"

+				type       	"int")))

+		    (object Class "ConstraintDefinition"

+			quid       	"4001F5B400AA"

+			class_attributes 	(list class_attribute_list

+			    (object ClassAttribute "deferrableConstraintSupported"

+				quid       	"4001F60C0292"

+				type       	"boolean")

+			    (object ClassAttribute "informationalConstraintSupported"

+				quid       	"41F6BD6703E5"

+				type       	"boolean")

+			    (object ClassAttribute "clusteredPrimaryKeySupported"

+				quid       	"4001F60C02BA"

+				type       	"boolean")

+			    (object ClassAttribute "clusteredUniqueConstraintSupported"

+				quid       	"4001F60C02D8"

+				type       	"boolean")

+			    (object ClassAttribute "primaryKeyNullable"

+				quid       	"4001F60C0300"

+				type       	"boolean")

+			    (object ClassAttribute "uniqueKeyNullable"

+				quid       	"4001F60C0328"

+				type       	"boolean")

+			    (object ClassAttribute "maximumCheckExpressionLength"

+				quid       	"4001F67B0115"

+				type       	"int")

+			    (object ClassAttribute "parentUpdateDRIRuleType"

+				quid       	"4001F71E00F1"

+				stereotype 	"0..*"

+				type       	"ParentUpdateDRIRuleType"

+				quidu      	"3FCE518201A5")

+			    (object ClassAttribute "parentDeleteDRIRuleType"

+				quid       	"4001F71E0119"

+				stereotype 	"0..*"

+				type       	"ParentDeleteDRIRuleType"

+				quidu      	"3FCE50F60334")

+			    (object ClassAttribute "checkOption"

+				quid       	"4001F71E014B"

+				stereotype 	"0..*"

+				type       	"CheckOption"

+				quidu      	"3FCE53C80166")

+			    (object ClassAttribute "maximumPrimaryKeyIdentifierLength"

+				quid       	"437A21350359"

+				type       	"int")

+			    (object ClassAttribute "maximumForeignKeyIdentifierLength"

+				quid       	"437A216202B3"

+				type       	"int")

+			    (object ClassAttribute "maximumCheckConstraintIdentifierLength"

+				quid       	"437A217200FE"

+				type       	"int")))

+		    (object Class "PercentFreeTerminology"

+			quid       	"4001F81E03CA"

+			stereotype 	"enumeration"

+			class_attributes 	(list class_attribute_list

+			    (object ClassAttribute "PERCENT_FREE"

+				quid       	"400314E90366"

+				type       	"int")

+			    (object ClassAttribute "FILL_FACTOR"

+				quid       	"400315060000"

+				type       	"int")

+			    (object ClassAttribute "THRESHOLD"

+				quid       	"400315140213"

+				type       	"int")))

+		    (object Class "IndexDefinition"

+			quid       	"4001F947004C"

+			class_attributes 	(list class_attribute_list

+			    (object ClassAttribute "percentFreeTerminology"

+				quid       	"4001F96B036F"

+				type       	"PercentFreeTerminology"

+				quidu      	"4001F81E03CA")

+			    (object ClassAttribute "percentFreeChangeable"

+				quid       	"4001F97D0004"

+				type       	"boolean")

+			    (object ClassAttribute "clusteringSupported"

+				quid       	"4001F998005C"

+				type       	"boolean")

+			    (object ClassAttribute "clusterChangeable"

+				quid       	"4001F9AE0217"

+				type       	"boolean")

+			    (object ClassAttribute "fillFactorSupported"

+				quid       	"400315570364"

+				type       	"boolean")

+			    (object ClassAttribute "includedColumnsSupported"

+				quid       	"40450479012E"

+				type       	"boolean"

+				initv      	"false")

+			    (object ClassAttribute "maximumIdentifierLength"

+				quid       	"437A21FE031C"

+				type       	"int")))

+		    (object Class "ExtendedDefinition"

+			quid       	"4002024A0338"

+			class_attributes 	(list class_attribute_list

+			    (object ClassAttribute "name"

+				quid       	"4002028802A1"

+				type       	"String")

+			    (object ClassAttribute "value"

+				quid       	"4002028A00EC"

+				type       	"String")))

+		    (object Class "TableDefinition"

+			quid       	"40031D100032"

+			class_attributes 	(list class_attribute_list

+			    (object ClassAttribute "auditSupported"

+				quid       	"40031D39029E"

+				type       	"boolean")

+			    (object ClassAttribute "dataCaptureSupported"

+				quid       	"40031D4F035E"

+				type       	"boolean")

+			    (object ClassAttribute "editProcSupported"

+				quid       	"40031D5E0337"

+				type       	"boolean")

+			    (object ClassAttribute "encodingSupported"

+				quid       	"40031DC503D5"

+				type       	"boolean")

+			    (object ClassAttribute "validProcSupported"

+				quid       	"40031DCD00A2"

+				type       	"boolean")

+			    (object ClassAttribute "maximumIdentifierLength"

+				quid       	"437A21B90178"

+				type       	"int")))

+		    (object Class "SequenceDefinition"

+			quid       	"4045055E016A"

+			class_attributes 	(list class_attribute_list

+			    (object ClassAttribute "typeEnumerationSupported"

+				quid       	"404505D60158"

+				type       	"boolean")

+			    (object ClassAttribute "cacheSupported"

+				quid       	"405F6B12039F"

+				type       	"boolean")

+			    (object ClassAttribute "orderSupported"

+				quid       	"405F6B210115"

+				type       	"boolean")

+			    (object ClassAttribute "noMaximumValueString"

+				quid       	"405F71CD005D"

+				type       	"String")

+			    (object ClassAttribute "noMinimumValueString"

+				quid       	"405F71E00046"

+				type       	"String")

+			    (object ClassAttribute "noCacheString"

+				quid       	"4060C50E00C3"

+				type       	"String")

+			    (object ClassAttribute "cacheDefaultValue"

+				quid       	"4060C51A021E"

+				type       	"int")))

+		    (object Class "UserDefinedTypeDefinition"

+			quid       	"4059F90D036F"

+			class_attributes 	(list class_attribute_list

+			    (object ClassAttribute "defaultValueSupported"

+				quid       	"4060BE9C021F"

+				type       	"boolean")

+			    (object ClassAttribute "distinctTypeSupported"

+				quid       	"4060BEAE0058"

+				type       	"boolean")

+			    (object ClassAttribute "structuredTypeSupported"

+				quid       	"4060BEC0011C"

+				type       	"boolean")

+			    (object ClassAttribute "maximumIdentifierLength"

+				quid       	"437A22470383"

+				type       	"int")))

+		    (object Class "QueryDefinition"

+			quid       	"419A95AA012E"

+			class_attributes 	(list class_attribute_list

+			    (object ClassAttribute "identifierQuoteString"

+				quid       	"419A95C6036A"

+				type       	"String"

+				initv      	

+|\"

+				)

+			    (object ClassAttribute "hostVariableMarker"

+				quid       	"419A99BE0266"

+				type       	"String"

+				initv      	":")

+			    (object ClassAttribute "hostVariableMarkerSupported"

+				quid       	"419A9A0601F1"

+				type       	"boolean"

+				initv      	"false")

+			    (object ClassAttribute "castExpressionSupported"

+				quid       	"419A9FF8004B"

+				type       	"boolean"

+				initv      	"false")

+			    (object ClassAttribute "defaultKeywordForInsertValueSupported"

+				quid       	"419AA01F0106"

+				type       	"boolean"

+				initv      	"false")

+			    (object ClassAttribute "extendedGroupingSupported"

+				quid       	"419AA03403CD"

+				type       	"boolean"

+				initv      	"false")

+			    (object ClassAttribute "tableAliasInDeleteSupported"

+				quid       	"419AA0460351"

+				type       	"boolean"

+				initv      	"false")))

+		    (object Class "SQLSyntaxDefinition"

+			quid       	"41DDFC18014B"

+			class_attributes 	(list class_attribute_list

+			    (object ClassAttribute "keywords"

+				quid       	"41DDFCAD02FE"

+				stereotype 	"0..*"

+				type       	"String")

+			    (object ClassAttribute "operators"

+				quid       	"41DDFCB500ED"

+				stereotype 	"0..*"

+				type       	"String")

+			    (object ClassAttribute "terminationCharacter"

+				quid       	"4394DDB903AC"

+				type       	"String"

+				initv      	";")))

+		    (object Class "LengthUnit"

+			quid       	"4256D194001D"

+			stereotype 	"enumeration"

+			class_attributes 	(list class_attribute_list

+			    (object ClassAttribute "DECIMAL"

+				quid       	"4256D1A5039C"

+				type       	"int")

+			    (object ClassAttribute "BIT"

+				quid       	"42B5FDBE031E"

+				type       	"int")

+			    (object ClassAttribute "BYTE"

+				quid       	"4256D1AC02D4"

+				type       	"int")

+			    (object ClassAttribute "DOUBLE_BYTE"

+				quid       	"4256D1B3016C"

+				type       	"int")))

+		    (object Class "NicknameDefinition"

+			quid       	"427AC5EF0334"

+			class_attributes 	(list class_attribute_list

+			    (object ClassAttribute "constraintSupported"

+				quid       	"427AC603026A"

+				type       	"boolean")

+			    (object ClassAttribute "indexSupported"

+				quid       	"427AC60D02B5"

+				type       	"boolean")

+			    (object ClassAttribute "maximumIdentifierLength"

+				quid       	"437A21DA011B"

+				type       	"int")))

+		    (object Class "SchemaDefinition"

+			quid       	"437A206F001F"

+			class_attributes 	(list class_attribute_list

+			    (object ClassAttribute "maximumIdentifierLength"

+				quid       	"437A207F01D0"

+				type       	"int")))

+		    (object Class "ViewDefinition"

+			quid       	"437A2328010D"

+			class_attributes 	(list class_attribute_list

+			    (object ClassAttribute "maximumIdentifierLength"

+				quid       	"437A233F02C4"

+				type       	"int")

+			    (object ClassAttribute "indexSupported"

+				quid       	"472A21830330"

+				type       	"boolean")

+			    (object ClassAttribute "checkOptionSupported"

+				quid       	"4910E2E90231"

+				type       	"boolean"

+				initv      	"true")

+			    (object ClassAttribute "checkOptionLevelsSupported"

+				quid       	"4910EC8C021A"

+				type       	"boolean")))

+		    (object Class "FieldQualifierDefinition"

+			quid       	"4383D6E300C7"

+			class_attributes 	(list class_attribute_list

+			    (object ClassAttribute "name"

+				quid       	"438B6399027F"

+				type       	"IntervalQualifierType"

+				quidu      	"3F37E78C029F")

+			    (object ClassAttribute "maximumPrecision"

+				quid       	"4383D7FC0161"

+				type       	"int")

+			    (object ClassAttribute "defaultPrecision"

+				quid       	"4383D7FC016B"

+				type       	"int")

+			    (object ClassAttribute "precisionSupported"

+				quid       	"4383D7FC0175"

+				type       	"boolean")

+			    (object ClassAttribute "maximumScale"

+				quid       	"4396308E02FE"

+				type       	"int")

+			    (object ClassAttribute "defaultScale"

+				quid       	"43963098004F"

+				type       	"int")

+			    (object ClassAttribute "scaleSupported"

+				quid       	"4396309E0301"

+				type       	"boolean")))

+		    (object Class "DebuggerDefinition"

+			quid       	"4410B2D600C4"

+			class_attributes 	(list class_attribute_list

+			    (object ClassAttribute "conditionSupported"

+				quid       	"4410B2EB024B"

+				type       	"boolean")))

+		    (object Class "PrivilegedElementDefinition"

+			quid       	"46315A970300"

+			class_attributes 	(list class_attribute_list

+			    (object ClassAttribute "name"

+				quid       	"46315AF5017A"

+				type       	"String")))

+		    (object Class "PrivilegeDefinition"

+			quid       	"46315AAA018E"

+			class_attributes 	(list class_attribute_list

+			    (object ClassAttribute "name"

+				quid       	"46315AEB00D1"

+				type       	"String")))

+		    (object Class "ConstructedDataTypeDefinition"

+			quid       	"4B7349BF027C"

+			class_attributes 	(list class_attribute_list

+			    (object ClassAttribute "arrayDatatypeSupported"

+				quid       	"4B734AAC0151"

+				type       	"boolean")

+			    (object ClassAttribute "multisetDatatypeSupported"

+				quid       	"4B734AB70233"

+				type       	"boolean")

+			    (object ClassAttribute "rowDatatypeSupported"

+				quid       	"4B734AC0016D"

+				type       	"boolean")

+			    (object ClassAttribute "referenceDatatypeSupported"

+				quid       	"4B734AC90225"

+				type       	"boolean")

+			    (object ClassAttribute "cursorDatatypeSupported"

+				quid       	"4B73607A0201"

+				type       	"boolean"))))

+		logical_presentations 	(list unit_reference_list))

+	    (object Class_Category "SQLModel"

+		is_unit    	TRUE

+		is_loaded  	FALSE

+		file_name  	"$CDM_EXTRACT_PATH\\org.eclipse.datatools.modelbase.sql\\model\\SQLModel.cat"

+		quid       	"3E9B1F8201C1")

+	    (object Class_Category "ecore"

+		is_unit    	TRUE

+		is_loaded  	FALSE

+		file_name  	"$CDM_EXTRACT_PATH\\org.eclipse.emf.ecore\\model\\org.eclipse.emf.Ecore.cat"

+		quid       	"403541E00037"))

+	logical_presentations 	(list unit_reference_list

+	    (object ClassDiagram "Main"

+		quid       	"3FA0659201E5"

+		title      	"Main"

+		zoom       	71

+		max_height 	28350

+		max_width  	21600

+		origin_x   	5836

+		origin_y   	0

+		items      	(list diagram_item_list

+		    (object ClassView "Class" "Logical View::DatabaseModel::ParameterStyle" @1

+			ShowCompartmentStereotypes 	TRUE

+			IncludeAttribute 	TRUE

+			IncludeOperation 	TRUE

+			location   	(5688, 8588)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@1

+			    location   	(5218, 8275)

+			    fill_color 	13434879

+			    nlines     	1

+			    max_width  	940

+			    justify    	0

+			    label      	"ParameterStyle")

+			stereotype 	(object ItemLabel

+			    Parent_View 	@1

+			    location   	(5218, 8225)

+			    fill_color 	13434879

+			    anchor     	10

+			    nlines     	1

+			    max_width  	940

+			    justify    	0

+			    label      	"<<enumeration>>")

+			icon_style 	"Icon"

+			line_color 	3342489

+			fill_color 	12632256

+			quidu      	"3FCE533B023F"

+			compartment 	(object Compartment

+			    Parent_View 	@1

+			    location   	(5218, 8399)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    icon_style 	"Icon"

+			    fill_color 	16777215

+			    anchor     	2

+			    nlines     	8

+			    max_width  	798)

+			width      	958

+			height     	754

+			annotation 	8

+			autoResize 	TRUE)

+		    (object ClassView "Class" "Logical View::DatabaseModel::LanguageType" @2

+			ShowCompartmentStereotypes 	TRUE

+			IncludeAttribute 	TRUE

+			IncludeOperation 	TRUE

+			location   	(3695, 8265)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@2

+			    location   	(3440, 7770)

+			    fill_color 	13434879

+			    nlines     	1

+			    max_width  	510

+			    justify    	0

+			    label      	"LanguageType")

+			stereotype 	(object ItemLabel

+			    Parent_View 	@2

+			    location   	(3440, 7717)

+			    fill_color 	13434879

+			    anchor     	10

+			    nlines     	1

+			    max_width  	510

+			    justify    	0

+			    label      	"<<enumeration>>")

+			icon_style 	"Icon"

+			line_color 	3342489

+			fill_color 	12632256

+			quidu      	"3FCE524C024F"

+			compartment 	(object Compartment

+			    Parent_View 	@2

+			    location   	(3440, 7894)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    icon_style 	"Icon"

+			    fill_color 	16777215

+			    anchor     	2

+			    nlines     	16

+			    max_width  	431)

+			width      	528

+			height     	1124

+			annotation 	8

+			autoResize 	TRUE)

+		    (object ClassView "Class" "Logical View::DatabaseModel::ParentUpdateDRIRuleType" @3

+			ShowCompartmentStereotypes 	TRUE

+			IncludeAttribute 	TRUE

+			IncludeOperation 	TRUE

+			location   	(4594, 8510)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@3

+			    location   	(4226, 8278)

+			    fill_color 	13434879

+			    nlines     	1

+			    max_width  	736

+			    justify    	0

+			    label      	"ParentUpdateDRIRuleType")

+			stereotype 	(object ItemLabel

+			    Parent_View 	@3

+			    location   	(4226, 8228)

+			    fill_color 	13434879

+			    anchor     	10

+			    nlines     	1

+			    max_width  	736

+			    justify    	0

+			    label      	"<<enumeration>>")

+			icon_style 	"Icon"

+			line_color 	3342489

+			fill_color 	12632256

+			quidu      	"3FCE518201A5"

+			compartment 	(object Compartment

+			    Parent_View 	@3

+			    location   	(4226, 8402)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    icon_style 	"Icon"

+			    fill_color 	16777215

+			    anchor     	2

+			    nlines     	6

+			    max_width  	500)

+			width      	754

+			height     	592

+			annotation 	8

+			autoResize 	TRUE)

+		    (object ClassView "Class" "Logical View::DatabaseModel::ParentDeleteDRIRuleType" @4

+			ShowCompartmentStereotypes 	TRUE

+			IncludeAttribute 	TRUE

+			IncludeOperation 	TRUE

+			location   	(642, 7278)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@4

+			    location   	(286, 7071)

+			    fill_color 	13434879

+			    nlines     	1

+			    max_width  	712

+			    justify    	0

+			    label      	"ParentDeleteDRIRuleType")

+			stereotype 	(object ItemLabel

+			    Parent_View 	@4

+			    location   	(286, 7021)

+			    fill_color 	13434879

+			    anchor     	10

+			    nlines     	1

+			    max_width  	712

+			    justify    	0

+			    label      	"<<enumeration>>")

+			icon_style 	"Icon"

+			line_color 	3342489

+			fill_color 	12632256

+			quidu      	"3FCE50F60334"

+			compartment 	(object Compartment

+			    Parent_View 	@4

+			    location   	(286, 7195)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    icon_style 	"Icon"

+			    fill_color 	16777215

+			    anchor     	2

+			    nlines     	6

+			    max_width  	500)

+			width      	730

+			height     	542

+			annotation 	8

+			autoResize 	TRUE)

+		    (object ClassView "Class" "Logical View::DatabaseModel::TableSpaceType" @5

+			ShowCompartmentStereotypes 	TRUE

+			IncludeAttribute 	TRUE

+			IncludeOperation 	TRUE

+			location   	(1560, 7305)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@5

+			    location   	(1117, 6958)

+			    fill_color 	13434879

+			    nlines     	1

+			    max_width  	886

+			    justify    	0

+			    label      	"TableSpaceType")

+			stereotype 	(object ItemLabel

+			    Parent_View 	@5

+			    location   	(1117, 6908)

+			    fill_color 	13434879

+			    anchor     	10

+			    nlines     	1

+			    max_width  	886

+			    justify    	0

+			    label      	"<<enumeration>>")

+			icon_style 	"Icon"

+			line_color 	3342489

+			fill_color 	12632256

+			quidu      	"3FCE50550351"

+			compartment 	(object Compartment

+			    Parent_View 	@5

+			    location   	(1117, 7082)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    icon_style 	"Icon"

+			    fill_color 	16777215

+			    anchor     	2

+			    nlines     	9

+			    max_width  	753)

+			width      	904

+			height     	822

+			annotation 	8

+			autoResize 	TRUE)

+		    (object ClassView "Class" "Logical View::DatabaseModel::CheckOption" @6

+			ShowCompartmentStereotypes 	TRUE

+			IncludeAttribute 	TRUE

+			IncludeOperation 	TRUE

+			location   	(2393, 7924)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@6

+			    location   	(2129, 7745)

+			    fill_color 	13434879

+			    nlines     	1

+			    max_width  	528

+			    justify    	0

+			    label      	"CheckOption")

+			stereotype 	(object ItemLabel

+			    Parent_View 	@6

+			    location   	(2129, 7695)

+			    fill_color 	13434879

+			    anchor     	10

+			    nlines     	1

+			    max_width  	528

+			    justify    	0

+			    label      	"<<enumeration>>")

+			icon_style 	"Icon"

+			line_color 	3342489

+			fill_color 	12632256

+			quidu      	"3FCE53C80166"

+			compartment 	(object Compartment

+			    Parent_View 	@6

+			    location   	(2129, 7869)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    icon_style 	"Icon"

+			    fill_color 	16777215

+			    anchor     	2

+			    nlines     	4

+			    max_width  	446)

+			width      	546

+			height     	486

+			annotation 	8

+			autoResize 	TRUE)

+		    (object ClassView "Class" "Logical View::DatabaseModel::ProcedureType" @7

+			ShowCompartmentStereotypes 	TRUE

+			IncludeAttribute 	TRUE

+			IncludeOperation 	TRUE

+			location   	(3033, 7880)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@7

+			    location   	(2740, 7744)

+			    fill_color 	13434879

+			    nlines     	1

+			    max_width  	586

+			    justify    	0

+			    label      	"ProcedureType")

+			stereotype 	(object ItemLabel

+			    Parent_View 	@7

+			    location   	(2740, 7694)

+			    fill_color 	13434879

+			    anchor     	10

+			    nlines     	1

+			    max_width  	586

+			    justify    	0

+			    label      	"<<enumeration>>")

+			icon_style 	"Icon"

+			line_color 	3342489

+			fill_color 	12632256

+			quidu      	"3FCE51E800B1"

+			compartment 	(object Compartment

+			    Parent_View 	@7

+			    location   	(2740, 7868)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    icon_style 	"Icon"

+			    fill_color 	16777215

+			    anchor     	2

+			    nlines     	3

+			    max_width  	496)

+			width      	604

+			height     	400

+			annotation 	8

+			autoResize 	TRUE)

+		    (object ClassView "Class" "Logical View::DatabaseModel::PercentFreeTerminology" @8

+			ShowCompartmentStereotypes 	TRUE

+			IncludeAttribute 	TRUE

+			IncludeOperation 	TRUE

+			location   	(7781, 8399)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@8

+			    location   	(7440, 8225)

+			    fill_color 	13434879

+			    nlines     	1

+			    max_width  	682

+			    justify    	0

+			    label      	"PercentFreeTerminology")

+			stereotype 	(object ItemLabel

+			    Parent_View 	@8

+			    location   	(7440, 8175)

+			    fill_color 	13434879

+			    anchor     	10

+			    nlines     	1

+			    max_width  	682

+			    justify    	0

+			    label      	"<<enumeration>>")

+			icon_style 	"Icon"

+			line_color 	3342489

+			fill_color 	12632256

+			quidu      	"4001F81E03CA"

+			compartment 	(object Compartment

+			    Parent_View 	@8

+			    location   	(7440, 8349)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    icon_style 	"Icon"

+			    fill_color 	16777215

+			    anchor     	2

+			    nlines     	4

+			    max_width  	546)

+			width      	700

+			height     	476

+			annotation 	8

+			autoResize 	TRUE)

+		    (object ClassView "Class" "Logical View::SQLModel::DataTypes::PrimitiveType" @9

+			ShowCompartmentStereotypes 	TRUE

+			IncludeAttribute 	TRUE

+			location   	(8317, 2213)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@9

+			    location   	(7735, 1458)

+			    fill_color 	13434879

+			    nlines     	1

+			    max_width  	1164

+			    justify    	0

+			    label      	"PrimitiveType")

+			stereotype 	(object ItemLabel

+			    Parent_View 	@9

+			    location   	(7735, 1408)

+			    fill_color 	13434879

+			    anchor     	10

+			    nlines     	1

+			    max_width  	1164

+			    justify    	0

+			    label      	"<<enumeration>>")

+			icon_style 	"Icon"

+			line_color 	3342489

+			fill_color 	13434879

+			quidu      	"3F54FBC4015A"

+			compartment 	(object Compartment

+			    Parent_View 	@9

+			    location   	(7735, 1582)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    icon_style 	"Icon"

+			    fill_color 	16777215

+			    anchor     	2

+			    nlines     	25

+			    max_width  	1059)

+			width      	1182

+			height     	1638

+			annotation 	8

+			autoResize 	TRUE)

+		    (object ClassView "Class" "Logical View::DatabaseModel::LengthUnit" @10

+			ShowCompartmentStereotypes 	TRUE

+			IncludeAttribute 	TRUE

+			IncludeOperation 	TRUE

+			location   	(6792, 8413)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@10

+			    location   	(6508, 8219)

+			    fill_color 	13434879

+			    nlines     	1

+			    max_width  	568

+			    justify    	0

+			    label      	"LengthUnit")

+			stereotype 	(object ItemLabel

+			    Parent_View 	@10

+			    location   	(6508, 8169)

+			    fill_color 	13434879

+			    anchor     	10

+			    nlines     	1

+			    max_width  	568

+			    justify    	0

+			    label      	"<<enumeration>>")

+			icon_style 	"Icon"

+			line_color 	3342489

+			fill_color 	12632256

+			quidu      	"4256D194001D"

+			compartment 	(object Compartment

+			    Parent_View 	@10

+			    location   	(6508, 8343)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    icon_style 	"Icon"

+			    fill_color 	13434879

+			    anchor     	2

+			    nlines     	5

+			    max_width  	480)

+			width      	586

+			height     	516

+			annotation 	8

+			autoResize 	TRUE)

+		    (object NoteView @11

+			location   	(6104, 7513)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@11

+			    location   	(5817, 7440)

+			    fill_color 	13434879

+			    nlines     	2

+			    max_width  	539

+			    label      	"the allowed datatypes for identity column")

+			line_color 	3342489

+			fill_color 	13434879

+			width      	599

+			height     	159)

+		    (object ClassView "Class" "Logical View::DatabaseModel::FieldQualifierDefinition" @12

+			ShowCompartmentStereotypes 	TRUE

+			IncludeAttribute 	TRUE

+			location   	(8819, 3720)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@12

+			    location   	(8466, 3445)

+			    fill_color 	13434879

+			    nlines     	1

+			    max_width  	706

+			    justify    	0

+			    label      	"FieldQualifierDefinition")

+			icon_style 	"Icon"

+			line_color 	3342489

+			fill_color 	13434879

+			quidu      	"4383D6E300C7"

+			compartment 	(object Compartment

+			    Parent_View 	@12

+			    location   	(8466, 3569)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    icon_style 	"Icon"

+			    fill_color 	13434879

+			    anchor     	2

+			    nlines     	8

+			    max_width  	598)

+			width      	724

+			height     	578

+			annotation 	8

+			autoResize 	TRUE)

+		    (object AssociationViewNew "$UNNAMED$40" @13

+			location   	(9495, 4006)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			stereotype 	TRUE

+			line_color 	3342489

+			quidu      	"438DF8B40219"

+			roleview_list 	(list RoleViews

+			    (object RoleView "validTrailingFieldQualifierDefinitions" @14

+				Parent_View 	@13

+				location   	(687, 427)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				label      	(object SegLabel @15

+				    Parent_View 	@14

+				    location   	(9384, 4196)

+				    font       	(object Font

+					size       	12

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	1

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	817

+				    justify    	0

+				    label      	"+validTrailingFieldQualifierDefinitions"

+				    pctDist    	0.339286

+				    height     	47

+				    orientation 	0)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"438DF8BB011F"

+				client     	@13

+				supplier   	@12

+				vertices   	(list Points

+				    (9495, 4006)

+				    (9495, 4149)

+				    (9026, 4149)

+				    (9026, 4009))

+				line_style 	3

+				origin_attachment 	(9495, 4006)

+				terminal_attachment 	(9026, 4009)

+				label      	(object SegLabel @16

+				    Parent_View 	@14

+				    location   	(9096, 4107)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"0..n"

+				    pctDist    	0.722527

+				    height     	43

+				    orientation 	1))

+			    (object RoleView "$UNNAMED$41" @17

+				Parent_View 	@13

+				location   	(687, 427)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"438DF8BB0121"

+				client     	@13

+				supplier   	@12

+				vertices   	(list Points

+				    (9495, 4006)

+				    (9495, 3567)

+				    (9181, 3567))

+				line_style 	3

+				origin_attachment 	(9495, 4006)

+				terminal_attachment 	(9181, 3567)

+				label      	(object SegLabel @18

+				    Parent_View 	@17

+				    location   	(9257, 3621)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1"

+				    pctDist    	0.900000

+				    height     	54

+				    orientation 	0))))

+		    (object ClassView "Class" "Logical View::DatabaseModel::PrivilegeDefinition" @19

+			ShowCompartmentStereotypes 	TRUE

+			IncludeAttribute 	TRUE

+			IncludeOperation 	TRUE

+			location   	(502, 6055)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@19

+			    location   	(247, 5939)

+			    fill_color 	13434879

+			    nlines     	1

+			    max_width  	510

+			    justify    	0

+			    label      	"PrivilegeDefinition")

+			icon_style 	"Icon"

+			line_color 	3342489

+			fill_color 	13434879

+			quidu      	"46315AAA018E"

+			compartment 	(object Compartment

+			    Parent_View 	@19

+			    location   	(247, 6063)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    icon_style 	"Icon"

+			    fill_color 	13434879

+			    anchor     	2

+			    nlines     	2

+			    max_width  	317)

+			width      	528

+			height     	260

+			annotation 	8

+			autoResize 	TRUE)

+		    (object ClassView "Class" "Logical View::DatabaseModel::TableSpaceDefinition" @20

+			ShowCompartmentStereotypes 	TRUE

+			IncludeAttribute 	TRUE

+			location   	(5404, 1899)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@20

+			    location   	(4814, 1465)

+			    fill_color 	13434879

+			    nlines     	1

+			    max_width  	1180

+			    justify    	0

+			    label      	"TableSpaceDefinition")

+			icon_style 	"Icon"

+			line_color 	3342489

+			fill_color 	13434879

+			quidu      	"3FFF64120180"

+			compartment 	(object Compartment

+			    Parent_View 	@20

+			    location   	(4814, 1589)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    icon_style 	"Icon"

+			    fill_color 	16777215

+			    anchor     	2

+			    nlines     	13

+			    max_width  	1021)

+			width      	1198

+			height     	896

+			annotation 	8

+			autoResize 	TRUE)

+		    (object ClassView "Class" "Logical View::DatabaseModel::TriggerDefinition" @21

+			ShowCompartmentStereotypes 	TRUE

+			IncludeAttribute 	TRUE

+			location   	(1729, 1125)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@21

+			    location   	(1126, 720)

+			    fill_color 	13434879

+			    nlines     	1

+			    max_width  	1206

+			    justify    	0

+			    label      	"TriggerDefinition")

+			icon_style 	"Icon"

+			line_color 	3342489

+			fill_color 	13434879

+			quidu      	"3FFF661C013A"

+			compartment 	(object Compartment

+			    Parent_View 	@21

+			    location   	(1126, 844)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    icon_style 	"Icon"

+			    fill_color 	16777215

+			    anchor     	2

+			    nlines     	12

+			    max_width  	1053)

+			width      	1224

+			height     	838

+			annotation 	8

+			autoResize 	TRUE)

+		    (object ClassView "Class" "Logical View::DatabaseModel::ConstraintDefinition" @22

+			ShowCompartmentStereotypes 	TRUE

+			IncludeAttribute 	TRUE

+			location   	(1736, 2961)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@22

+			    location   	(901, 2499)

+			    fill_color 	13434879

+			    nlines     	1

+			    max_width  	1670

+			    justify    	0

+			    label      	"ConstraintDefinition")

+			icon_style 	"Icon"

+			line_color 	3342489

+			fill_color 	13434879

+			quidu      	"4001F5B400AA"

+			compartment 	(object Compartment

+			    Parent_View 	@22

+			    location   	(901, 2623)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    icon_style 	"Icon"

+			    fill_color 	16777215

+			    anchor     	2

+			    nlines     	14

+			    max_width  	1462)

+			width      	1688

+			height     	952

+			annotation 	8

+			autoResize 	TRUE)

+		    (object ClassView "Class" "Logical View::DatabaseModel::ExtendedDefinition" @23

+			ShowCompartmentStereotypes 	TRUE

+			IncludeAttribute 	TRUE

+			location   	(572, 3708)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@23

+			    location   	(312, 3559)

+			    fill_color 	13434879

+			    nlines     	1

+			    max_width  	520

+			    justify    	0

+			    label      	"ExtendedDefinition")

+			icon_style 	"Icon"

+			line_color 	3342489

+			fill_color 	13434879

+			quidu      	"4002024A0338"

+			compartment 	(object Compartment

+			    Parent_View 	@23

+			    location   	(312, 3683)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    icon_style 	"Icon"

+			    fill_color 	16777215

+			    anchor     	2

+			    nlines     	3

+			    max_width  	352)

+			width      	538

+			height     	326

+			annotation 	8

+			autoResize 	TRUE)

+		    (object ClassView "Class" "Logical View::DatabaseModel::IndexDefinition" @24

+			ShowCompartmentStereotypes 	TRUE

+			IncludeAttribute 	TRUE

+			location   	(5941, 6394)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@24

+			    location   	(5274, 6103)

+			    fill_color 	13434879

+			    nlines     	1

+			    max_width  	1334

+			    justify    	0

+			    label      	"IndexDefinition")

+			icon_style 	"Icon"

+			line_color 	3342489

+			fill_color 	13434879

+			quidu      	"4001F947004C"

+			compartment 	(object Compartment

+			    Parent_View 	@24

+			    location   	(5274, 6227)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    icon_style 	"Icon"

+			    fill_color 	16777215

+			    anchor     	2

+			    nlines     	8

+			    max_width  	1165)

+			width      	1352

+			height     	610

+			annotation 	8

+			autoResize 	TRUE)

+		    (object ClassView "Class" "Logical View::DatabaseModel::TableDefinition" @25

+			ShowCompartmentStereotypes 	TRUE

+			IncludeAttribute 	TRUE

+			location   	(944, 4551)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@25

+			    location   	(501, 4288)

+			    fill_color 	13434879

+			    nlines     	1

+			    max_width  	886

+			    justify    	0

+			    label      	"TableDefinition")

+			icon_style 	"Icon"

+			line_color 	3342489

+			fill_color 	13434879

+			quidu      	"40031D100032"

+			compartment 	(object Compartment

+			    Parent_View 	@25

+			    location   	(501, 4412)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    icon_style 	"Icon"

+			    fill_color 	16777215

+			    anchor     	2

+			    nlines     	7

+			    max_width  	771)

+			width      	904

+			height     	554

+			annotation 	8

+			autoResize 	TRUE)

+		    (object ClassView "Class" "Logical View::DatabaseModel::SequenceDefinition" @26

+			ShowCompartmentStereotypes 	TRUE

+			IncludeAttribute 	TRUE

+			location   	(5911, 5039)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@26

+			    location   	(5409, 4748)

+			    fill_color 	13434879

+			    nlines     	1

+			    max_width  	1004

+			    justify    	0

+			    label      	"SequenceDefinition")

+			icon_style 	"Icon"

+			line_color 	3342489

+			fill_color 	13434879

+			quidu      	"4045055E016A"

+			compartment 	(object Compartment

+			    Parent_View 	@26

+			    location   	(5409, 4872)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    icon_style 	"Icon"

+			    fill_color 	16777215

+			    anchor     	2

+			    nlines     	8

+			    max_width  	865)

+			width      	1022

+			height     	610

+			annotation 	8

+			autoResize 	TRUE)

+		    (object ClassView "Class" "Logical View::DatabaseModel::UserDefinedTypeDefinition" @27

+			ShowCompartmentStereotypes 	TRUE

+			IncludeAttribute 	TRUE

+			location   	(5905, 5719)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@27

+			    location   	(5433, 5513)

+			    fill_color 	13434879

+			    nlines     	1

+			    max_width  	944

+			    justify    	0

+			    label      	"UserDefinedTypeDefinition")

+			icon_style 	"Icon"

+			line_color 	3342489

+			fill_color 	13434879

+			quidu      	"4059F90D036F"

+			compartment 	(object Compartment

+			    Parent_View 	@27

+			    location   	(5433, 5637)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    icon_style 	"Icon"

+			    fill_color 	16777215

+			    anchor     	2

+			    nlines     	5

+			    max_width  	818)

+			width      	962

+			height     	440

+			annotation 	8

+			autoResize 	TRUE)

+		    (object ClassView "Class" "Logical View::DatabaseModel::QueryDefinition" @28

+			ShowCompartmentStereotypes 	TRUE

+			IncludeAttribute 	TRUE

+			location   	(730, 5302)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@28

+			    location   	(65, 5027)

+			    fill_color 	13434879

+			    nlines     	1

+			    max_width  	1330

+			    justify    	0

+			    label      	"QueryDefinition")

+			icon_style 	"Icon"

+			line_color 	3342489

+			fill_color 	13434879

+			quidu      	"419A95AA012E"

+			compartment 	(object Compartment

+			    Parent_View 	@28

+			    location   	(65, 5151)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    icon_style 	"Icon"

+			    fill_color 	13434879

+			    anchor     	2

+			    nlines     	8

+			    max_width  	1131)

+			width      	1348

+			height     	578

+			annotation 	8

+			autoResize 	TRUE)

+		    (object ClassView "Class" "Logical View::DatabaseModel::SQLSyntaxDefinition" @29

+			ShowCompartmentStereotypes 	TRUE

+			IncludeAttribute 	TRUE

+			location   	(3145, 6446)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@29

+			    location   	(2756, 6277)

+			    fill_color 	13434879

+			    nlines     	1

+			    max_width  	778

+			    justify    	0

+			    label      	"SQLSyntaxDefinition")

+			icon_style 	"Icon"

+			line_color 	3342489

+			fill_color 	13434879

+			quidu      	"41DDFC18014B"

+			compartment 	(object Compartment

+			    Parent_View 	@29

+			    location   	(2756, 6401)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    icon_style 	"Icon"

+			    fill_color 	13434879

+			    anchor     	2

+			    nlines     	4

+			    max_width  	660)

+			width      	796

+			height     	366

+			annotation 	8

+			autoResize 	TRUE)

+		    (object ClassView "Class" "Logical View::DatabaseModel::NicknameDefinition" @30

+			ShowCompartmentStereotypes 	TRUE

+			IncludeAttribute 	TRUE

+			location   	(3735, 5733)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@30

+			    location   	(3369, 5564)

+			    fill_color 	13434879

+			    nlines     	1

+			    max_width  	732

+			    justify    	0

+			    label      	"NicknameDefinition")

+			icon_style 	"Icon"

+			line_color 	3342489

+			fill_color 	13434879

+			quidu      	"427AC5EF0334"

+			compartment 	(object Compartment

+			    Parent_View 	@30

+			    location   	(3369, 5688)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    icon_style 	"Icon"

+			    fill_color 	13434879

+			    anchor     	2

+			    nlines     	4

+			    max_width  	620)

+			width      	750

+			height     	366

+			annotation 	8

+			autoResize 	TRUE)

+		    (object ClassView "Class" "Logical View::DatabaseModel::SchemaDefinition" @31

+			ShowCompartmentStereotypes 	TRUE

+			IncludeAttribute 	TRUE

+			IncludeOperation 	TRUE

+			location   	(1384, 1959)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@31

+			    location   	(1012, 1833)

+			    fill_color 	13434879

+			    nlines     	1

+			    max_width  	744

+			    justify    	0

+			    label      	"SchemaDefinition")

+			icon_style 	"Icon"

+			line_color 	3342489

+			fill_color 	13434879

+			quidu      	"437A206F001F"

+			compartment 	(object Compartment

+			    Parent_View 	@31

+			    location   	(1012, 1957)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    icon_style 	"Icon"

+			    fill_color 	13434879

+			    anchor     	2

+			    nlines     	2

+			    max_width  	630)

+			width      	762

+			height     	284

+			annotation 	8

+			autoResize 	TRUE)

+		    (object ClassView "Class" "Logical View::DatabaseModel::ViewDefinition" @32

+			ShowCompartmentStereotypes 	TRUE

+			IncludeAttribute 	TRUE

+			location   	(1602, 3977)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@32

+			    location   	(1139, 3782)

+			    fill_color 	13434879

+			    nlines     	1

+			    max_width  	926

+			    justify    	0

+			    label      	"ViewDefinition")

+			icon_style 	"Icon"

+			line_color 	3342489

+			fill_color 	13434879

+			quidu      	"437A2328010D"

+			compartment 	(object Compartment

+			    Parent_View 	@32

+			    location   	(1139, 3906)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    icon_style 	"Icon"

+			    fill_color 	13434879

+			    anchor     	2

+			    nlines     	5

+			    max_width  	787)

+			width      	944

+			height     	418

+			annotation 	8

+			autoResize 	TRUE)

+		    (object ClassView "Class" "Logical View::DatabaseModel::ColumnDefinition" @33

+			ShowCompartmentStereotypes 	TRUE

+			IncludeAttribute 	TRUE

+			location   	(4973, 7215)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@33

+			    location   	(4372, 6895)

+			    fill_color 	13434879

+			    nlines     	1

+			    max_width  	1202

+			    justify    	0

+			    label      	"ColumnDefinition")

+			icon_style 	"Icon"

+			line_color 	3342489

+			fill_color 	13434879

+			quidu      	"4001F5A8000D"

+			compartment 	(object Compartment

+			    Parent_View 	@33

+			    location   	(4372, 7019)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    icon_style 	"Icon"

+			    fill_color 	16777215

+			    anchor     	2

+			    nlines     	9

+			    max_width  	1037)

+			width      	1220

+			height     	668

+			annotation 	8

+			autoResize 	TRUE)

+		    (object ClassView "Class" "Logical View::DatabaseModel::DebuggerDefinition" @34

+			ShowCompartmentStereotypes 	TRUE

+			IncludeAttribute 	TRUE

+			IncludeOperation 	TRUE

+			location   	(2961, 1455)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@34

+			    location   	(2608, 1339)

+			    fill_color 	13434879

+			    nlines     	1

+			    max_width  	706

+			    justify    	0

+			    label      	"DebuggerDefinition")

+			icon_style 	"Icon"

+			line_color 	3342489

+			fill_color 	13434879

+			quidu      	"4410B2D600C4"

+			compartment 	(object Compartment

+			    Parent_View 	@34

+			    location   	(2608, 1463)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    icon_style 	"Icon"

+			    fill_color 	13434879

+			    anchor     	2

+			    nlines     	2

+			    max_width  	598)

+			width      	724

+			height     	260

+			annotation 	8

+			autoResize 	TRUE)

+		    (object ClassView "Class" "Logical View::DatabaseModel::PrivilegedElementDefinition" @35

+			ShowCompartmentStereotypes 	TRUE

+			IncludeAttribute 	TRUE

+			IncludeOperation 	TRUE

+			location   	(1963, 6046)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@35

+			    location   	(1588, 5930)

+			    fill_color 	13434879

+			    nlines     	1

+			    max_width  	750

+			    justify    	0

+			    label      	"PrivilegedElementDefinition")

+			icon_style 	"Icon"

+			line_color 	3342489

+			fill_color 	13434879

+			quidu      	"46315A970300"

+			compartment 	(object Compartment

+			    Parent_View 	@35

+			    location   	(1588, 6054)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    icon_style 	"Icon"

+			    fill_color 	13434879

+			    anchor     	2

+			    nlines     	2

+			    max_width  	317)

+			width      	768

+			height     	260

+			annotation 	8

+			autoResize 	TRUE)

+		    (object AssociationViewNew "$UNNAMED$52" @36

+			location   	(1172, 6057)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			stereotype 	TRUE

+			line_color 	3342489

+			quidu      	"46315ABF011E"

+			roleview_list 	(list RoleViews

+			    (object RoleView "privilegeDefinitions" @37

+				Parent_View 	@36

+				location   	(-791, 11)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				label      	(object SegLabel @38

+				    Parent_View 	@37

+				    location   	(1010, 6015)

+				    font       	(object Font

+					size       	12

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	1

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	447

+				    justify    	0

+				    label      	"+privilegeDefinitions"

+				    pctDist    	0.399015

+				    height     	42

+				    orientation 	1)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"46315ABF02D5"

+				client     	@36

+				supplier   	@19

+				line_style 	3

+				origin_attachment 	(1172, 6057)

+				terminal_attachment 	(766, 6057)

+				label      	(object SegLabel @39

+				    Parent_View 	@37

+				    location   	(808, 6111)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"0..n"

+				    pctDist    	0.900000

+				    height     	54

+				    orientation 	0))

+			    (object RoleView "$UNNAMED$53" @40

+				Parent_View 	@36

+				location   	(-791, 11)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"46315ABF02DF"

+				client     	@36

+				supplier   	@35

+				line_style 	3

+				origin_attachment 	(1172, 6057)

+				terminal_attachment 	(1579, 6057)

+				label      	(object SegLabel @41

+				    Parent_View 	@40

+				    location   	(1538, 6111)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1"

+				    pctDist    	0.900000

+				    height     	54

+				    orientation 	1))))

+		    (object AssociationViewNew "$UNNAMED$54" @42

+			location   	(1217, 6436)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			stereotype 	TRUE

+			line_color 	3342489

+			quidu      	"46315B4E018A"

+			roleview_list 	(list RoleViews

+			    (object RoleView "actionElementDefinitions" @43

+				Parent_View 	@42

+				location   	(715, 381)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				label      	(object SegLabel @44

+				    Parent_View 	@43

+				    location   	(1607, 6275)

+				    font       	(object Font

+					size       	12

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	1

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	576

+				    justify    	0

+				    label      	"+actionElementDefinitions"

+				    pctDist    	0.410095

+				    height     	161

+				    orientation 	1)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"46315B510191"

+				client     	@42

+				supplier   	@35

+				vertices   	(list Points

+				    (1217, 6436)

+				    (1908, 6436)

+				    (1908, 6176))

+				line_style 	3

+				origin_attachment 	(1217, 6436)

+				terminal_attachment 	(1908, 6176)

+				label      	(object SegLabel @45

+				    Parent_View 	@43

+				    location   	(1962, 6272)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"0..n"

+				    pctDist    	0.900000

+				    height     	54

+				    orientation 	1))

+			    (object RoleView "$UNNAMED$55" @46

+				Parent_View 	@42

+				location   	(715, 381)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"46315B51019B"

+				client     	@42

+				supplier   	@19

+				vertices   	(list Points

+				    (1217, 6436)

+				    (518, 6436)

+				    (518, 6185))

+				line_style 	3

+				origin_attachment 	(1217, 6436)

+				terminal_attachment 	(518, 6185))))

+		    (object ClassView "Class" "Logical View::DatabaseModel::ConstructedDataTypeDefinition" @47

+			ShowCompartmentStereotypes 	TRUE

+			IncludeAttribute 	TRUE

+			IncludeOperation 	TRUE

+			location   	(2781, 7093)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@47

+			    location   	(2320, 6871)

+			    fill_color 	13434879

+			    nlines     	1

+			    max_width  	922

+			    justify    	0

+			    label      	"ConstructedDataTypeDefinition")

+			icon_style 	"Icon"

+			line_color 	3342489

+			fill_color 	13434879

+			quidu      	"4B7349BF027C"

+			compartment 	(object Compartment

+			    Parent_View 	@47

+			    location   	(2320, 6995)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    icon_style 	"Icon"

+			    fill_color 	13434879

+			    anchor     	2

+			    nlines     	6

+			    max_width  	783)

+			width      	940

+			height     	472

+			annotation 	8

+			autoResize 	TRUE)

+		    (object ClassView "Class" "Logical View::DatabaseModel::DatabaseVendorDefinition" @48

+			ShowCompartmentStereotypes 	TRUE

+			IncludeAttribute 	TRUE

+			IncludeOperation 	TRUE

+			location   	(4286, 3712)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@48

+			    location   	(3647, 2652)

+			    fill_color 	13434879

+			    nlines     	1

+			    max_width  	1278

+			    justify    	0

+			    label      	"DatabaseVendorDefinition")

+			icon_style 	"Icon"

+			line_color 	3342489

+			fill_color 	13434879

+			quidu      	"3FCD44F30154"

+			compartment 	(object Compartment

+			    Parent_View 	@48

+			    location   	(3647, 2776)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    icon_style 	"Icon"

+			    fill_color 	16777215

+			    anchor     	2

+			    nlines     	35

+			    max_width  	1086)

+			width      	1296

+			height     	2148

+			annotation 	8

+			autoResize 	TRUE)

+		    (object AssociationViewNew "$UNNAMED$2" @49

+			location   	(5349, 2773)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			stereotype 	TRUE

+			line_color 	3342489

+			quidu      	"3FFF64EF0065"

+			roleview_list 	(list RoleViews

+			    (object RoleView "tableSpaceDefinition" @50

+				Parent_View 	@49

+				location   	(3699, 617)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				label      	(object SegLabel @51

+				    Parent_View 	@50

+				    location   	(5500, 2473)

+				    font       	(object Font

+					size       	12

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	1

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	526

+				    justify    	0

+				    label      	"+tableSpaceDefinition"

+				    pctDist    	0.741150

+				    height     	91

+				    orientation 	1)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"3FFF64F0027A"

+				client     	@49

+				supplier   	@20

+				vertices   	(list Points

+				    (5349, 2773)

+				    (5409, 2773)

+				    (5409, 2347))

+				line_style 	3

+				origin_attachment 	(5349, 2773)

+				terminal_attachment 	(5409, 2347)

+				label      	(object SegLabel @52

+				    Parent_View 	@50

+				    location   	(5463, 2397)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1"

+				    pctDist    	0.900000

+				    height     	54

+				    orientation 	1))

+			    (object RoleView "$UNNAMED$3" @53

+				Parent_View 	@49

+				location   	(3699, 617)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"3FFF64F00284"

+				client     	@49

+				supplier   	@48

+				line_style 	3

+				origin_attachment 	(5349, 2773)

+				terminal_attachment 	(4934, 2773)

+				label      	(object SegLabel @54

+				    Parent_View 	@53

+				    location   	(4976, 2827)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1"

+				    pctDist    	0.900000

+				    height     	54

+				    orientation 	0))))

+		    (object AssociationViewNew "$UNNAMED$6" @55

+			location   	(3036, 2008)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			stereotype 	TRUE

+			line_color 	3342489

+			quidu      	"3FFF66DE032E"

+			roleview_list 	(list RoleViews

+			    (object RoleView "triggerDefinition" @56

+				Parent_View 	@55

+				location   	(-975, -236)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				label      	(object SegLabel @57

+				    Parent_View 	@56

+				    location   	(2190, 1710)

+				    font       	(object Font

+					size       	12

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	1

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	402

+				    justify    	0

+				    label      	"+triggerDefinition"

+				    pctDist    	0.893053

+				    height     	231

+				    orientation 	1)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"3FFF66DF036C"

+				client     	@55

+				supplier   	@21

+				vertices   	(list Points

+				    (3036, 2008)

+				    (1959, 2008)

+				    (1959, 1544))

+				line_style 	3

+				origin_attachment 	(3036, 2008)

+				terminal_attachment 	(1959, 1544)

+				label      	(object SegLabel @58

+				    Parent_View 	@56

+				    location   	(1906, 1698)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1"

+				    pctDist    	0.900000

+				    height     	54

+				    orientation 	0))

+			    (object RoleView "$UNNAMED$7" @59

+				Parent_View 	@55

+				location   	(-975, -236)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"3FFF66DF0376"

+				client     	@55

+				supplier   	@48

+				vertices   	(list Points

+				    (3036, 2008)

+				    (3239, 2008)

+				    (3239, 2947)

+				    (3638, 2947))

+				line_style 	3

+				origin_attachment 	(3036, 2008)

+				terminal_attachment 	(3638, 2947)

+				label      	(object SegLabel @60

+				    Parent_View 	@59

+				    location   	(3483, 3001)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1"

+				    pctDist    	0.900000

+				    height     	54

+				    orientation 	1))))

+		    (object AssociationViewNew "$UNNAMED$10" @61

+			location   	(3109, 3381)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			stereotype 	TRUE

+			line_color 	3342489

+			quidu      	"4001F6D802BD"

+			roleview_list 	(list RoleViews

+			    (object RoleView "constraintDefinition" @62

+				Parent_View 	@61

+				location   	(-902, 1137)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				label      	(object SegLabel @63

+				    Parent_View 	@62

+				    location   	(2863, 3302)

+				    font       	(object Font

+					size       	12

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	1

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	484

+				    justify    	0

+				    label      	"+constraintDefinition"

+				    pctDist    	0.467308

+				    height     	80

+				    orientation 	1)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"4001F6D902D3"

+				client     	@61

+				supplier   	@22

+				line_style 	3

+				origin_attachment 	(3109, 3381)

+				terminal_attachment 	(2580, 3381)

+				label      	(object SegLabel @64

+				    Parent_View 	@62

+				    location   	(2633, 3435)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1"

+				    pctDist    	0.900000

+				    height     	54

+				    orientation 	0))

+			    (object RoleView "$UNNAMED$11" @65

+				Parent_View 	@61

+				location   	(-902, 1137)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"4001F6D902DD"

+				client     	@61

+				supplier   	@48

+				line_style 	3

+				origin_attachment 	(3109, 3381)

+				terminal_attachment 	(3638, 3381)

+				label      	(object SegLabel @66

+				    Parent_View 	@65

+				    location   	(3585, 3435)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1"

+				    pctDist    	0.900000

+				    height     	54

+				    orientation 	1))))

+		    (object AssociationViewNew "$UNNAMED$12" @67

+			location   	(2239, 3675)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			stereotype 	TRUE

+			line_color 	3342489

+			quidu      	"4002026203BF"

+			roleview_list 	(list RoleViews

+			    (object RoleView "extendedDefinitions" @68

+				Parent_View 	@67

+				location   	(-1772, 1431)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				label      	(object SegLabel @69

+				    Parent_View 	@68

+				    location   	(1178, 3606)

+				    font       	(object Font

+					size       	12

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	1

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	497

+				    justify    	0

+				    label      	"+extendedDefinitions"

+				    pctDist    	0.758741

+				    height     	70

+				    orientation 	1)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"4002026303AC"

+				client     	@67

+				supplier   	@23

+				line_style 	3

+				origin_attachment 	(2239, 3675)

+				terminal_attachment 	(841, 3675)

+				label      	(object SegLabel @70

+				    Parent_View 	@68

+				    location   	(982, 3729)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"0..n"

+				    pctDist    	0.900000

+				    height     	54

+				    orientation 	0))

+			    (object RoleView "$UNNAMED$13" @71

+				Parent_View 	@67

+				location   	(-1772, 1431)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"4002026303B7"

+				client     	@67

+				supplier   	@48

+				line_style 	3

+				origin_attachment 	(2239, 3675)

+				terminal_attachment 	(3638, 3675)

+				label      	(object SegLabel @72

+				    Parent_View 	@71

+				    location   	(3497, 3729)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1"

+				    pctDist    	0.900000

+				    height     	54

+				    orientation 	1))))

+		    (object AssociationViewNew "$UNNAMED$14" @73

+			location   	(4703, 5826)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			stereotype 	TRUE

+			line_color 	3342489

+			quidu      	"400313EC024A"

+			roleview_list 	(list RoleViews

+			    (object RoleView "indexDefinition" @74

+				Parent_View 	@73

+				location   	(692, 3582)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				label      	(object SegLabel @75

+				    Parent_View 	@74

+				    location   	(5059, 6243)

+				    font       	(object Font

+					size       	12

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	1

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	377

+				    justify    	0

+				    label      	"+indexDefinition"

+				    pctDist    	0.803309

+				    height     	62

+				    orientation 	0)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"400313EE0120"

+				client     	@73

+				supplier   	@24

+				vertices   	(list Points

+				    (4703, 5826)

+				    (4703, 6304)

+				    (5265, 6304))

+				line_style 	3

+				origin_attachment 	(4703, 5826)

+				terminal_attachment 	(5265, 6304)

+				label      	(object SegLabel @76

+				    Parent_View 	@74

+				    location   	(5189, 6357)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1"

+				    pctDist    	0.927390

+				    height     	53

+				    orientation 	1))

+			    (object RoleView "$UNNAMED$15" @77

+				Parent_View 	@73

+				location   	(692, 3582)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"400313EE0134"

+				client     	@73

+				supplier   	@48

+				line_style 	3

+				origin_attachment 	(4703, 5826)

+				terminal_attachment 	(4703, 4786)

+				label      	(object SegLabel @78

+				    Parent_View 	@77

+				    location   	(4650, 4891)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1"

+				    pctDist    	0.900000

+				    height     	54

+				    orientation 	0))))

+		    (object AssociationViewNew "$UNNAMED$16" @79

+			location   	(2589, 4386)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			stereotype 	TRUE

+			line_color 	3342489

+			quidu      	"40031DEA003F"

+			roleview_list 	(list RoleViews

+			    (object RoleView "tableDefinition" @80

+				Parent_View 	@79

+				location   	(-1422, 2142)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				label      	(object SegLabel @81

+				    Parent_View 	@80

+				    location   	(1629, 4437)

+				    font       	(object Font

+					size       	12

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	1

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	368

+				    justify    	0

+				    label      	"+tableDefinition"

+				    pctDist    	0.821953

+				    height     	66

+				    orientation 	1)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"40031DEB022B"

+				client     	@79

+				supplier   	@25

+				vertices   	(list Points

+				    (2589, 4386)

+				    (2589, 4502)

+				    (1396, 4502))

+				line_style 	3

+				origin_attachment 	(2589, 4386)

+				terminal_attachment 	(1396, 4502)

+				label      	(object SegLabel @82

+				    Parent_View 	@80

+				    location   	(1660, 4574)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1"

+				    pctDist    	0.799149

+				    height     	72

+				    orientation 	0))

+			    (object RoleView "$UNNAMED$17" @83

+				Parent_View 	@79

+				location   	(-1422, 2142)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"40031DEB023F"

+				client     	@79

+				supplier   	@48

+				vertices   	(list Points

+				    (2589, 4386)

+				    (2589, 4125)

+				    (3638, 4125))

+				line_style 	3

+				origin_attachment 	(2589, 4386)

+				terminal_attachment 	(3638, 4125)

+				label      	(object SegLabel @84

+				    Parent_View 	@83

+				    location   	(3506, 4179)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1"

+				    pctDist    	0.900000

+				    height     	54

+				    orientation 	1))))

+		    (object AssociationViewNew "$UNNAMED$18" @85

+			location   	(5599, 4136)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			stereotype 	TRUE

+			line_color 	3342489

+			quidu      	"404505700242"

+			roleview_list 	(list RoleViews

+			    (object RoleView "sequenceDefinition" @86

+				Parent_View 	@85

+				location   	(1588, 1892)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				label      	(object SegLabel @87

+				    Parent_View 	@86

+				    location   	(5394, 4669)

+				    font       	(object Font

+					size       	12

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	1

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	453

+				    justify    	0

+				    label      	"+sequenceDefinition"

+				    pctDist    	0.903577

+				    height     	272

+				    orientation 	1)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"4045057102A7"

+				client     	@85

+				supplier   	@26

+				vertices   	(list Points

+				    (5599, 4136)

+				    (5665, 4136)

+				    (5665, 4734))

+				line_style 	3

+				origin_attachment 	(5599, 4136)

+				terminal_attachment 	(5665, 4734)

+				label      	(object SegLabel @88

+				    Parent_View 	@86

+				    location   	(5719, 4667)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1"

+				    pctDist    	0.900000

+				    height     	54

+				    orientation 	0))

+			    (object RoleView "$UNNAMED$19" @89

+				Parent_View 	@85

+				location   	(1588, 1892)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				label      	(object SegLabel @90

+				    Parent_View 	@89

+				    location   	(5067, 4095)

+				    font       	(object Font

+					size       	12

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    hidden     	TRUE

+				    anchor     	1

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	295

+				    justify    	0

+				    label      	""

+				    pctDist    	0.800000

+				    height     	42

+				    orientation 	1)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"4045057102B1"

+				client     	@85

+				supplier   	@48

+				line_style 	3

+				origin_attachment 	(5599, 4136)

+				terminal_attachment 	(4934, 4136)

+				label      	(object SegLabel @91

+				    Parent_View 	@89

+				    location   	(5001, 4190)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1"

+				    pctDist    	0.900000

+				    height     	54

+				    orientation 	0))))

+		    (object AssociationViewNew "$UNNAMED$24" @92

+			location   	(4806, 5555)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			stereotype 	TRUE

+			line_color 	3342489

+			quidu      	"4060BEF10068"

+			roleview_list 	(list RoleViews

+			    (object RoleView "udtDefinition" @93

+				Parent_View 	@92

+				location   	(795, 3311)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				label      	(object SegLabel @94

+				    Parent_View 	@93

+				    location   	(5205, 5657)

+				    font       	(object Font

+					size       	12

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	1

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	306

+				    justify    	0

+				    label      	"+udtDefinition"

+				    pctDist    	0.714859

+				    height     	49

+				    orientation 	0)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"4060BEF301DE"

+				client     	@92

+				supplier   	@27

+				vertices   	(list Points

+				    (4806, 5555)

+				    (4806, 5705)

+				    (5424, 5705))

+				line_style 	3

+				origin_attachment 	(4806, 5555)

+				terminal_attachment 	(5424, 5705)

+				label      	(object SegLabel @95

+				    Parent_View 	@93

+				    location   	(5347, 5759)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1"

+				    pctDist    	0.900000

+				    height     	54

+				    orientation 	1))

+			    (object RoleView "$UNNAMED$25" @96

+				Parent_View 	@92

+				location   	(795, 3311)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"4060BEF301E0"

+				client     	@92

+				supplier   	@48

+				line_style 	3

+				origin_attachment 	(4806, 5555)

+				terminal_attachment 	(4806, 4786)

+				label      	(object SegLabel @97

+				    Parent_View 	@96

+				    location   	(4860, 4863)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1"

+				    pctDist    	0.900000

+				    height     	54

+				    orientation 	1))))

+		    (object AssociationViewNew "$UNNAMED$26" @98

+			location   	(2743, 4977)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			stereotype 	TRUE

+			line_color 	3342489

+			quidu      	"419A9A360287"

+			roleview_list 	(list RoleViews

+			    (object RoleView "queryDefinition" @99

+				Parent_View 	@98

+				location   	(-1268, 2733)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				label      	(object SegLabel @100

+				    Parent_View 	@99

+				    location   	(1695, 5154)

+				    font       	(object Font

+					size       	12

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	1

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	381

+				    justify    	0

+				    label      	"+queryDefinition"

+				    pctDist    	0.815697

+				    height     	58

+				    orientation 	1)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"419A9A3801CB"

+				client     	@98

+				supplier   	@28

+				vertices   	(list Points

+				    (2743, 4977)

+				    (2743, 5211)

+				    (1404, 5211))

+				line_style 	3

+				origin_attachment 	(2743, 4977)

+				terminal_attachment 	(1404, 5211)

+				label      	(object SegLabel @101

+				    Parent_View 	@99

+				    location   	(1644, 5272)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1"

+				    pctDist    	0.848276

+				    height     	61

+				    orientation 	0))

+			    (object RoleView "$UNNAMED$27" @102

+				Parent_View 	@98

+				location   	(-1268, 2733)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"419A9A3801CD"

+				client     	@98

+				supplier   	@48

+				vertices   	(list Points

+				    (2743, 4977)

+				    (2743, 4298)

+				    (3638, 4298))

+				line_style 	3

+				origin_attachment 	(2743, 4977)

+				terminal_attachment 	(3638, 4298)

+				label      	(object SegLabel @103

+				    Parent_View 	@102

+				    location   	(3481, 4352)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1"

+				    pctDist    	0.900000

+				    height     	54

+				    orientation 	1))))

+		    (object AssociationViewNew "$UNNAMED$28" @104

+			location   	(3214, 5269)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			stereotype 	TRUE

+			line_color 	3342489

+			quidu      	"41DDFC50008D"

+			roleview_list 	(list RoleViews

+			    (object RoleView "$UNNAMED$29" @105

+				Parent_View 	@104

+				location   	(-797, 3025)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"41DDFC51017F"

+				client     	@104

+				supplier   	@29

+				line_style 	3

+				origin_attachment 	(3214, 5269)

+				terminal_attachment 	(3214, 6263)

+				label      	(object SegLabel @106

+				    Parent_View 	@105

+				    location   	(3268, 6164)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1"

+				    pctDist    	0.900000

+				    height     	54

+				    orientation 	0))

+			    (object RoleView "SQLSyntaxDefinition" @107

+				Parent_View 	@104

+				location   	(-797, 3025)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				label      	(object SegLabel @108

+				    Parent_View 	@107

+				    location   	(2942, 11789)

+				    font       	(object Font

+					size       	12

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	1

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	505

+				    justify    	0

+				    label      	"+SQLSyntaxDefinition"

+				    pctDist    	-6.559749

+				    height     	272

+				    orientation 	0)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"41DDFC510181"

+				client     	@104

+				supplier   	@48

+				vertices   	(list Points

+				    (3214, 5269)

+				    (3214, 5000)

+				    (3725, 5000)

+				    (3725, 4786))

+				line_style 	3

+				origin_attachment 	(3214, 5269)

+				terminal_attachment 	(3725, 4786)

+				label      	(object SegLabel @109

+				    Parent_View 	@107

+				    location   	(3786, 4840)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1"

+				    pctDist    	0.945923

+				    height     	61

+				    orientation 	1))))

+		    (object AssociationViewNew "$UNNAMED$30" @110

+			location   	(3910, 5167)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			stereotype 	TRUE

+			line_color 	3342489

+			quidu      	"427AC62702B3"

+			roleview_list 	(list RoleViews

+			    (object RoleView "nicknameDefinition" @111

+				Parent_View 	@110

+				location   	(-439, 2202)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				label      	(object SegLabel @112

+				    Parent_View 	@111

+				    location   	(3869, 5473)

+				    font       	(object Font

+					size       	12

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	1

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	474

+				    justify    	0

+				    label      	"+nicknameDefinition"

+				    pctDist    	0.800000

+				    height     	42

+				    orientation 	1)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"427AC62803B9"

+				client     	@110

+				supplier   	@30

+				line_style 	3

+				origin_attachment 	(3910, 5167)

+				terminal_attachment 	(3910, 5549)

+				label      	(object SegLabel @113

+				    Parent_View 	@111

+				    location   	(3964, 5510)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1"

+				    pctDist    	0.900000

+				    height     	54

+				    orientation 	0))

+			    (object RoleView "$UNNAMED$31" @114

+				Parent_View 	@110

+				location   	(-439, 2202)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"427AC62803BB"

+				client     	@110

+				supplier   	@48

+				line_style 	3

+				origin_attachment 	(3910, 5167)

+				terminal_attachment 	(3910, 4786)

+				label      	(object SegLabel @115

+				    Parent_View 	@114

+				    location   	(3983, 4833)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1"

+				    pctDist    	0.878182

+				    height     	73

+				    orientation 	1))))

+		    (object AssociationViewNew "$UNNAMED$32" @116

+			location   	(2924, 2235)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			stereotype 	TRUE

+			line_color 	3342489

+			quidu      	"437A20B70145"

+			roleview_list 	(list RoleViews

+			    (object RoleView "schemaDefinition" @117

+				Parent_View 	@116

+				location   	(-1364, -1477)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				label      	(object SegLabel @118

+				    Parent_View 	@117

+				    location   	(1738, 2180)

+				    font       	(object Font

+					size       	12

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	1

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	435

+				    justify    	0

+				    label      	"+schemaDefinition"

+				    pctDist    	0.744681

+				    height     	56

+				    orientation 	1)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"437A20BC0192"

+				client     	@116

+				supplier   	@31

+				vertices   	(list Points

+				    (2924, 2235)

+				    (1464, 2235)

+				    (1464, 2101))

+				line_style 	3

+				origin_attachment 	(2924, 2235)

+				terminal_attachment 	(1464, 2101)

+				label      	(object SegLabel @119

+				    Parent_View 	@117

+				    location   	(1526, 2201)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1"

+				    pctDist    	0.938048

+				    height     	62

+				    orientation 	1))

+			    (object RoleView "$UNNAMED$33" @120

+				Parent_View 	@116

+				location   	(-1364, -1477)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"437A20BC019C"

+				client     	@116

+				supplier   	@48

+				vertices   	(list Points

+				    (2924, 2235)

+				    (2984, 2235)

+				    (2984, 3129)

+				    (3638, 3129))

+				line_style 	3

+				origin_attachment 	(2924, 2235)

+				terminal_attachment 	(3638, 3129)

+				label      	(object SegLabel @121

+				    Parent_View 	@120

+				    location   	(3476, 3183)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1"

+				    pctDist    	0.900000

+				    height     	54

+				    orientation 	1))))

+		    (object AssociationViewNew "$UNNAMED$34" @122

+			location   	(2856, 3931)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			stereotype 	TRUE

+			line_color 	3342489

+			quidu      	"437A234B02A3"

+			roleview_list 	(list RoleViews

+			    (object RoleView "viewDefinition" @123

+				Parent_View 	@122

+				location   	(-1432, 219)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				label      	(object SegLabel @124

+				    Parent_View 	@123

+				    location   	(2353, 3876)

+				    font       	(object Font

+					size       	12

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	1

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	357

+				    justify    	0

+				    label      	"+viewDefinition"

+				    pctDist    	0.643192

+				    height     	56

+				    orientation 	1)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"437A234F0122"

+				client     	@122

+				supplier   	@32

+				line_style 	3

+				origin_attachment 	(2856, 3931)

+				terminal_attachment 	(2074, 3931)

+				label      	(object SegLabel @125

+				    Parent_View 	@123

+				    location   	(2153, 3985)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1"

+				    pctDist    	0.900000

+				    height     	54

+				    orientation 	0))

+			    (object RoleView "$UNNAMED$35" @126

+				Parent_View 	@122

+				location   	(-1432, 219)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"437A234F0124"

+				client     	@122

+				supplier   	@48

+				line_style 	3

+				origin_attachment 	(2856, 3931)

+				terminal_attachment 	(3638, 3931)

+				label      	(object SegLabel @127

+				    Parent_View 	@126

+				    location   	(3559, 3985)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1"

+				    pctDist    	0.900000

+				    height     	54

+				    orientation 	1))))

+		    (object AssociationViewNew "$UNNAMED$8" @128

+			location   	(4542, 5833)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			stereotype 	TRUE

+			line_color 	3342489

+			quidu      	"4001F6BA026A"

+			roleview_list 	(list RoleViews

+			    (object RoleView "columnDefinition" @129

+				Parent_View 	@128

+				location   	(531, 3589)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				label      	(object SegLabel @130

+				    Parent_View 	@129

+				    location   	(4804, 6742)

+				    font       	(object Font

+					size       	12

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	1

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	428

+				    justify    	0

+				    label      	"+columnDefinition"

+				    pctDist    	0.868286

+				    height     	262

+				    orientation 	0)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"4001F6BC001E"

+				client     	@128

+				supplier   	@33

+				line_style 	3

+				origin_attachment 	(4542, 5833)

+				terminal_attachment 	(4542, 6881)

+				label      	(object SegLabel @131

+				    Parent_View 	@129

+				    location   	(4470, 6737)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1"

+				    pctDist    	0.863171

+				    height     	73

+				    orientation 	1))

+			    (object RoleView "$UNNAMED$9" @132

+				Parent_View 	@128

+				location   	(531, 3589)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"4001F6BC0028"

+				client     	@128

+				supplier   	@48

+				line_style 	3

+				origin_attachment 	(4542, 5833)

+				terminal_attachment 	(4542, 4786)

+				label      	(object SegLabel @133

+				    Parent_View 	@132

+				    location   	(4596, 4892)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1"

+				    pctDist    	0.900000

+				    height     	54

+				    orientation 	1))))

+		    (object AssociationViewNew "$UNNAMED$48" @134

+			location   	(3472, 2035)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			stereotype 	TRUE

+			line_color 	3342489

+			quidu      	"4410B306018C"

+			roleview_list 	(list RoleViews

+			    (object RoleView "debuggerDefinition" @135

+				Parent_View 	@134

+				location   	(-814, -1677)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				label      	(object SegLabel @136

+				    Parent_View 	@135

+				    location   	(2854, 1649)

+				    font       	(object Font

+					size       	12

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	1

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	443

+				    justify    	0

+				    label      	"+debuggerDefinition"

+				    pctDist    	0.924905

+				    height     	236

+				    orientation 	0)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"4410B307033C"

+				client     	@134

+				supplier   	@34

+				vertices   	(list Points

+				    (3472, 2035)

+				    (3472, 1849)

+				    (3089, 1849)

+				    (3089, 1585))

+				line_style 	3

+				origin_attachment 	(3472, 2035)

+				terminal_attachment 	(3089, 1585)

+				label      	(object SegLabel @137

+				    Parent_View 	@135

+				    location   	(3137, 1655)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1"

+				    pctDist    	0.916350

+				    height     	48

+				    orientation 	1))

+			    (object RoleView "$UNNAMED$49" @138

+				Parent_View 	@134

+				location   	(-814, -1677)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"4410B3070346"

+				client     	@134

+				supplier   	@48

+				vertices   	(list Points

+				    (3472, 2035)

+				    (3472, 2702)

+				    (3638, 2702))

+				line_style 	3

+				origin_attachment 	(3472, 2035)

+				terminal_attachment 	(3638, 2702)

+				label      	(object SegLabel @139

+				    Parent_View 	@138

+				    location   	(3555, 2649)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1"

+				    pctDist    	0.900000

+				    height     	54

+				    orientation 	0))))

+		    (object AssociationViewNew "$UNNAMED$50" @140

+			location   	(3038, 5346)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			stereotype 	TRUE

+			line_color 	3342489

+			quidu      	"46315ABB01AE"

+			roleview_list 	(list RoleViews

+			    (object RoleView "privilegedElementDefinitions" @141

+				Parent_View 	@140

+				location   	(-1248, 1634)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				label      	(object SegLabel @142

+				    Parent_View 	@141

+				    location   	(2703, 5992)

+				    font       	(object Font

+					size       	12

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	1

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	649

+				    justify    	0

+				    label      	"+privilegedElementDefinitions"

+				    pctDist    	0.742589

+				    height     	46

+				    orientation 	1)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"46315ABC029D"

+				client     	@140

+				supplier   	@35

+				vertices   	(list Points

+				    (3038, 5346)

+				    (3038, 6038)

+				    (2347, 6038))

+				line_style 	3

+				origin_attachment 	(3038, 5346)

+				terminal_attachment 	(2347, 6038)

+				label      	(object SegLabel @143

+				    Parent_View 	@141

+				    location   	(2485, 6092)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"0..n"

+				    pctDist    	0.900000

+				    height     	54

+				    orientation 	0))

+			    (object RoleView "$UNNAMED$51" @144

+				Parent_View 	@140

+				location   	(-1248, 1634)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"46315ABC02A7"

+				client     	@140

+				supplier   	@48

+				vertices   	(list Points

+				    (3038, 5346)

+				    (3038, 4563)

+				    (3638, 4563))

+				line_style 	3

+				origin_attachment 	(3038, 5346)

+				terminal_attachment 	(3638, 4563)

+				label      	(object SegLabel @145

+				    Parent_View 	@144

+				    location   	(3499, 4617)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1"

+				    pctDist    	0.900000

+				    height     	54

+				    orientation 	1))))

+		    (object AssociationViewNew "$UNNAMED$56" @146

+			location   	(4277, 6440)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			stereotype 	TRUE

+			line_color 	3342489

+			quidu      	"4B7349E40121"

+			roleview_list 	(list RoleViews

+			    (object RoleView "constructedDataTypeDefinition" @147

+				Parent_View 	@146

+				location   	(-9, 2728)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				label      	(object SegLabel @148

+				    Parent_View 	@147

+				    location   	(3621, 7119)

+				    font       	(object Font

+					size       	12

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	1

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	703

+				    justify    	0

+				    label      	"+constructedDataTypeDefinition"

+				    pctDist    	0.776048

+				    height     	52

+				    orientation 	0)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"4B7349E70252"

+				client     	@146

+				supplier   	@47

+				vertices   	(list Points

+				    (4277, 6440)

+				    (4277, 7067)

+				    (3251, 7067))

+				line_style 	3

+				origin_attachment 	(4277, 6440)

+				terminal_attachment 	(3251, 7067)

+				label      	(object SegLabel @149

+				    Parent_View 	@147

+				    location   	(3334, 7021)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1"

+				    pctDist    	0.949701

+				    height     	47

+				    orientation 	1))

+			    (object RoleView "$UNNAMED$57" @150

+				Parent_View 	@146

+				location   	(-9, 2728)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"4B7349E7025C"

+				client     	@146

+				supplier   	@48

+				line_style 	3

+				origin_attachment 	(4277, 6440)

+				terminal_attachment 	(4277, 4786)

+				label      	(object SegLabel @151

+				    Parent_View 	@150

+				    location   	(4331, 4951)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1"

+				    pctDist    	0.900000

+				    height     	54

+				    orientation 	1))))

+		    (object ClassView "Class" "Logical View::DatabaseModel::StoredProcedureDefinition" @152

+			ShowCompartmentStereotypes 	TRUE

+			IncludeAttribute 	TRUE

+			location   	(4337, 660)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@152

+			    location   	(3621, 141)

+			    fill_color 	13434879

+			    nlines     	1

+			    max_width  	1432

+			    justify    	0

+			    label      	"StoredProcedureDefinition")

+			icon_style 	"Icon"

+			line_color 	3342489

+			fill_color 	13434879

+			quidu      	"3FFF660701D0"

+			compartment 	(object Compartment

+			    Parent_View 	@152

+			    location   	(3621, 265)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    icon_style 	"Icon"

+			    fill_color 	16777215

+			    anchor     	2

+			    nlines     	16

+			    max_width  	1256)

+			width      	1450

+			height     	1066

+			annotation 	8

+			autoResize 	TRUE)

+		    (object AssociationViewNew "$UNNAMED$4" @153

+			location   	(4300, 1915)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			stereotype 	TRUE

+			line_color 	3342489

+			quidu      	"3FFF66B30228"

+			roleview_list 	(list RoleViews

+			    (object RoleView "storedProcedureDefinition" @154

+				Parent_View 	@153

+				location   	(289, -329)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				label      	(object SegLabel @155

+				    Parent_View 	@154

+				    location   	(3997, 1362)

+				    font       	(object Font

+					size       	12

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	1

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	646

+				    justify    	0

+				    label      	"+storedProcedureDefinition"

+				    pctDist    	0.766773

+				    height     	304

+				    orientation 	0)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"3FFF66B40229"

+				client     	@153

+				supplier   	@152

+				line_style 	3

+				origin_attachment 	(4300, 1915)

+				terminal_attachment 	(4300, 1193)

+				label      	(object SegLabel @156

+				    Parent_View 	@154

+				    location   	(4340, 1347)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1"

+				    pctDist    	0.788451

+				    height     	40

+				    orientation 	1))

+			    (object RoleView "$UNNAMED$5" @157

+				Parent_View 	@153

+				location   	(289, -329)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"3FFF66B40233"

+				client     	@153

+				supplier   	@48

+				line_style 	3

+				origin_attachment 	(4300, 1915)

+				terminal_attachment 	(4300, 2638)

+				label      	(object SegLabel @158

+				    Parent_View 	@157

+				    location   	(4247, 2566)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1"

+				    pctDist    	0.900000

+				    height     	54

+				    orientation 	1))))

+		    (object ClassView "Class" "Logical View::DatabaseModel::PredefinedDataTypeDefinition" @159

+			ShowCompartmentStereotypes 	TRUE

+			IncludeAttribute 	TRUE

+			location   	(6702, 2956)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@159

+			    location   	(6148, 1611)

+			    fill_color 	13434879

+			    nlines     	1

+			    max_width  	1108

+			    justify    	0

+			    label      	"PredefinedDataTypeDefinition")

+			icon_style 	"Icon"

+			line_color 	3342489

+			fill_color 	13434879

+			quidu      	"3FCE2B5F000B"

+			compartment 	(object Compartment

+			    Parent_View 	@159

+			    location   	(6148, 1735)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    icon_style 	"Icon"

+			    fill_color 	16777215

+			    anchor     	2

+			    nlines     	45

+			    max_width  	950)

+			width      	1126

+			height     	2718

+			annotation 	8

+			autoResize 	TRUE)

+		    (object AssociationViewNew "$UNNAMED$20" @160

+			location   	(6578, 4611)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			stereotype 	TRUE

+			line_color 	3342489

+			quidu      	"4045081E03C5"

+			roleview_list 	(list RoleViews

+			    (object RoleView "predefinedDataTypeDefinitions" @161

+				Parent_View 	@160

+				location   	(890, 1550)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				label      	(object SegLabel @162

+				    Parent_View 	@161

+				    location   	(6199, 4415)

+				    font       	(object Font

+					size       	12

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	1

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	715

+				    justify    	0

+				    label      	"+predefinedDataTypeDefinitions"

+				    pctDist    	0.666667

+				    height     	380

+				    orientation 	0)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"404508210030"

+				client     	@160

+				supplier   	@159

+				line_style 	3

+				origin_attachment 	(6578, 4611)

+				terminal_attachment 	(6578, 4315)

+				label      	(object SegLabel @163

+				    Parent_View 	@161

+				    location   	(6648, 4411)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1..n"

+				    pctDist    	0.675978

+				    height     	70

+				    orientation 	1))

+			    (object RoleView "$UNNAMED$21" @164

+				Parent_View 	@160

+				location   	(890, 1550)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"40450821003A"

+				client     	@160

+				supplier   	@26

+				vertices   	(list Points

+				    (6578, 4611)

+				    (6578, 4750)

+				    (6422, 4750))

+				line_style 	3

+				origin_attachment 	(6578, 4611)

+				terminal_attachment 	(6422, 4750)

+				label      	(object SegLabel @165

+				    Parent_View 	@164

+				    location   	(6453, 4804)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1"

+				    pctDist    	0.900000

+				    height     	54

+				    orientation 	0))))

+		    (object AssociationViewNew "$UNNAMED$22" @166

+			location   	(6799, 4787)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			stereotype 	TRUE

+			line_color 	3342489

+			quidu      	"404537DE0076"

+			roleview_list 	(list RoleViews

+			    (object RoleView "defaultDataTypeDefinition" @167

+				Parent_View 	@166

+				location   	(1111, 1726)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				label      	(object SegLabel @168

+				    Parent_View 	@167

+				    location   	(7131, 4413)

+				    font       	(object Font

+					size       	12

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	1

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	633

+				    justify    	0

+				    label      	"+defaultDataTypeDefinition"

+				    pctDist    	0.793319

+				    height     	332

+				    orientation 	1)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"404537E4018D"

+				client     	@166

+				supplier   	@159

+				line_style 	3

+				origin_attachment 	(6799, 4787)

+				terminal_attachment 	(6799, 4315)

+				label      	(object SegLabel @169

+				    Parent_View 	@167

+				    location   	(6764, 4413)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1"

+				    pctDist    	0.793319

+				    height     	36

+				    orientation 	0))

+			    (object RoleView "$UNNAMED$23" @170

+				Parent_View 	@166

+				location   	(1111, 1726)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"404537E40197"

+				client     	@166

+				supplier   	@26

+				vertices   	(list Points

+				    (6799, 4787)

+				    (6799, 4881)

+				    (6422, 4881))

+				line_style 	3

+				origin_attachment 	(6799, 4787)

+				terminal_attachment 	(6422, 4881)

+				label      	(object SegLabel @171

+				    Parent_View 	@170

+				    location   	(6469, 4935)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1"

+				    pctDist    	0.900000

+				    height     	54

+				    orientation 	0))))

+		    (object AssociationViewNew "$UNNAMED$36" @172

+			location   	(7861, 3596)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			stereotype 	TRUE

+			line_color 	3342489

+			quidu      	"4383D8A10263"

+			roleview_list 	(list RoleViews

+			    (object RoleView "leadingFieldQualifierDefinition" @173

+				Parent_View 	@172

+				location   	(1160, 640)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				label      	(object SegLabel @174

+				    Parent_View 	@173

+				    location   	(7965, 3546)

+				    font       	(object Font

+					size       	12

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	1

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	748

+				    justify    	0

+				    label      	"+leadingFieldQualifierDefinition"

+				    pctDist    	0.176471

+				    height     	51

+				    orientation 	0)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"4383D8A203C4"

+				client     	@172

+				supplier   	@12

+				line_style 	3

+				origin_attachment 	(7861, 3596)

+				terminal_attachment 	(8457, 3596)

+				label      	(object SegLabel @175

+				    Parent_View 	@173

+				    location   	(8319, 3650)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"0..n"

+				    pctDist    	0.767772

+				    height     	54

+				    orientation 	1))

+			    (object RoleView "$UNNAMED$37" @176

+				Parent_View 	@172

+				location   	(1160, 640)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"4383D8A203CE"

+				client     	@172

+				supplier   	@159

+				line_style 	3

+				origin_attachment 	(7861, 3596)

+				terminal_attachment 	(7265, 3596)

+				label      	(object SegLabel @177

+				    Parent_View 	@176

+				    location   	(7325, 3650)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1"

+				    pctDist    	0.900000

+				    height     	54

+				    orientation 	0))))

+		    (object AssociationViewNew "$UNNAMED$38" @178

+			location   	(7861, 3861)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			stereotype 	TRUE

+			line_color 	3342489

+			quidu      	"4383D8DC0302"

+			roleview_list 	(list RoleViews

+			    (object RoleView "trailingFieldQualifierDefinition" @179

+				Parent_View 	@178

+				location   	(1160, 905)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				label      	(object SegLabel @180

+				    Parent_View 	@179

+				    location   	(7998, 3817)

+				    font       	(object Font

+					size       	12

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	1

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	709

+				    justify    	0

+				    label      	"+trailingFieldQualifierDefinition"

+				    pctDist    	0.230068

+				    height     	45

+				    orientation 	0)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"4383D8DD01F6"

+				client     	@178

+				supplier   	@12

+				line_style 	3

+				origin_attachment 	(7861, 3861)

+				terminal_attachment 	(8457, 3861)

+				label      	(object SegLabel @181

+				    Parent_View 	@179

+				    location   	(8325, 3921)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"0..n"

+				    pctDist    	0.779180

+				    height     	60

+				    orientation 	1))

+			    (object RoleView "$UNNAMED$39" @182

+				Parent_View 	@178

+				location   	(1160, 905)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"4383D8DD01F8"

+				client     	@178

+				supplier   	@159

+				line_style 	3

+				origin_attachment 	(7861, 3861)

+				terminal_attachment 	(7265, 3861)

+				label      	(object SegLabel @183

+				    Parent_View 	@182

+				    location   	(7325, 3915)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1"

+				    pctDist    	0.900000

+				    height     	54

+				    orientation 	0))))

+		    (object AssociationViewNew "$UNNAMED$42" @184

+			location   	(8019, 4116)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			stereotype 	TRUE

+			line_color 	3342489

+			quidu      	"438DFF970192"

+			roleview_list 	(list RoleViews

+			    (object RoleView "defaultTrailingFieldQualifierDefinition" @185

+				Parent_View 	@184

+				location   	(1318, 1160)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				label      	(object SegLabel @186

+				    Parent_View 	@185

+				    location   	(8114, 4168)

+				    font       	(object Font

+					size       	12

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	1

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	833

+				    justify    	0

+				    label      	"+defaultTrailingFieldQualifierDefinition"

+				    pctDist    	0.126761

+				    height     	52

+				    orientation 	1)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"438DFF9C0171"

+				client     	@184

+				supplier   	@12

+				vertices   	(list Points

+				    (8019, 4116)

+				    (8665, 4116)

+				    (8665, 4009))

+				line_style 	3

+				origin_attachment 	(8019, 4116)

+				terminal_attachment 	(8665, 4009)

+				label      	(object SegLabel @187

+				    Parent_View 	@185

+				    location   	(8738, 4085)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"0..1"

+				    pctDist    	0.901049

+				    height     	73

+				    orientation 	1))

+			    (object RoleView "$UNNAMED$43" @188

+				Parent_View 	@184

+				location   	(1318, 1160)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"438DFF9C0173"

+				client     	@184

+				supplier   	@159

+				line_style 	3

+				origin_attachment 	(8019, 4116)

+				terminal_attachment 	(7265, 4116)

+				label      	(object SegLabel @189

+				    Parent_View 	@188

+				    location   	(7340, 4170)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1"

+				    pctDist    	0.900000

+				    height     	54

+				    orientation 	0))))

+		    (object AssociationViewNew "$UNNAMED$44" @190

+			location   	(8021, 3324)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			stereotype 	TRUE

+			line_color 	3342489

+			quidu      	"438DFFB00350"

+			roleview_list 	(list RoleViews

+			    (object RoleView "defaultLeadingFieldQualifierDefinition" @191

+				Parent_View 	@190

+				location   	(1320, 368)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				label      	(object SegLabel @192

+				    Parent_View 	@191

+				    location   	(8113, 3272)

+				    font       	(object Font

+					size       	12

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	1

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	899

+				    justify    	0

+				    label      	"+defaultLeadingFieldQualifierDefinition"

+				    pctDist    	0.121298

+				    height     	53

+				    orientation 	0)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"438DFFB4003F"

+				client     	@190

+				supplier   	@12

+				vertices   	(list Points

+				    (8021, 3324)

+				    (8669, 3324)

+				    (8669, 3431))

+				line_style 	3

+				origin_attachment 	(8021, 3324)

+				terminal_attachment 	(8669, 3431)

+				label      	(object SegLabel @193

+				    Parent_View 	@191

+				    location   	(8723, 3354)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"0..1"

+				    pctDist    	0.900000

+				    height     	54

+				    orientation 	0))

+			    (object RoleView "$UNNAMED$45" @194

+				Parent_View 	@190

+				location   	(1320, 368)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"438DFFB40041"

+				client     	@190

+				supplier   	@159

+				line_style 	3

+				origin_attachment 	(8021, 3324)

+				terminal_attachment 	(7265, 3324)

+				label      	(object SegLabel @195

+				    Parent_View 	@194

+				    location   	(7341, 3378)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1"

+				    pctDist    	0.900000

+				    height     	54

+				    orientation 	0))))

+		    (object AssociationViewNew "$UNNAMED$46" @196

+			location   	(7054, 6489)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			stereotype 	TRUE

+			line_color 	3342489

+			quidu      	"43D56B280059"

+			roleview_list 	(list RoleViews

+			    (object RoleView "identityColumnDataTypeDefinitions" @197

+				Parent_View 	@196

+				location   	(2081, -726)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				label      	(object SegLabel @198

+				    Parent_View 	@197

+				    location   	(7496, 4590)

+				    font       	(object Font

+					size       	12

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	1

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	798

+				    justify    	0

+				    label      	"+identityColumnDataTypeDefinitions"

+				    pctDist    	0.873907

+				    height     	442

+				    orientation 	1)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"43D56B2E006C"

+				client     	@196

+				supplier   	@159

+				line_style 	3

+				origin_attachment 	(7054, 6489)

+				terminal_attachment 	(7054, 4315)

+				label      	(object SegLabel @199

+				    Parent_View 	@197

+				    location   	(7000, 4590)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1..n"

+				    pctDist    	0.873907

+				    height     	55

+				    orientation 	0))

+			    (object RoleView "$UNNAMED$47" @200

+				Parent_View 	@196

+				location   	(2081, -726)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"43D56B2E0076"

+				client     	@196

+				supplier   	@33

+				vertices   	(list Points

+				    (7054, 6489)

+				    (7054, 7191)

+				    (5583, 7191))

+				line_style 	3

+				origin_attachment 	(7054, 6489)

+				terminal_attachment 	(5583, 7191)

+				label      	(object SegLabel @201

+				    Parent_View 	@200

+				    location   	(5800, 7245)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1"

+				    pctDist    	0.900000

+				    height     	54

+				    orientation 	0))))

+		    (object AttachView "" @202

+			stereotype 	TRUE

+			line_color 	3342489

+			client     	@11

+			supplier   	@196

+			line_style 	0)

+		    (object AssociationViewNew "$UNNAMED$0" @203

+			location   	(5536, 3214)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			stereotype 	TRUE

+			line_color 	3342489

+			quidu      	"3FCE2B720171"

+			roleview_list 	(list RoleViews

+			    (object RoleView "predefinedDataTypeDefinitions" @204

+				Parent_View 	@203

+				location   	(4780, 2464)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				label      	(object SegLabel @205

+				    Parent_View 	@204

+				    location   	(5662, 3147)

+				    font       	(object Font

+					size       	12

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	1

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	740

+				    justify    	0

+				    label      	"+predefinedDataTypeDefinitions"

+				    pctDist    	0.211416

+				    height     	68

+				    orientation 	0)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"3FCE2B7400C9"

+				client     	@203

+				supplier   	@159

+				line_style 	3

+				origin_attachment 	(5536, 3214)

+				terminal_attachment 	(6139, 3214)

+				label      	(object SegLabel @206

+				    Parent_View 	@204

+				    location   	(5976, 3268)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"0..n"

+				    pctDist    	0.731915

+				    height     	54

+				    orientation 	1))

+			    (object RoleView "$UNNAMED$1" @207

+				Parent_View 	@203

+				location   	(4780, 2464)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"3FCE2B7400D3"

+				client     	@203

+				supplier   	@48

+				line_style 	3

+				origin_attachment 	(5536, 3214)

+				terminal_attachment 	(4934, 3214)

+				label      	(object SegLabel @208

+				    Parent_View 	@207

+				    location   	(4995, 3268)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1"

+				    pctDist    	0.900000

+				    height     	54

+				    orientation 	0))))

+		    (object AssociationViewNew "$UNNAMED$58" @209

+			location   	(6343, 526)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			stereotype 	TRUE

+			line_color 	3342489

+			quidu      	"4B7508B60288"

+			roleview_list 	(list RoleViews

+			    (object RoleView "predefinedDataTypeDefinitions" @210

+				Parent_View 	@209

+				location   	(2006, -134)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				label      	(object SegLabel @211

+				    Parent_View 	@210

+				    location   	(6512, 1341)

+				    font       	(object Font

+					size       	12

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	1

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	713

+				    justify    	0

+				    label      	"+predefinedDataTypeDefinitions"

+				    pctDist    	0.800000

+				    height     	42

+				    orientation 	1)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"4B7508B80140"

+				client     	@209

+				supplier   	@159

+				vertices   	(list Points

+				    (6343, 526)

+				    (6553, 526)

+				    (6553, 1597))

+				line_style 	3

+				origin_attachment 	(6343, 526)

+				terminal_attachment 	(6553, 1597)

+				label      	(object SegLabel @212

+				    Parent_View 	@210

+				    location   	(6607, 1469)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"0..n"

+				    pctDist    	0.900000

+				    height     	54

+				    orientation 	0))

+			    (object RoleView "$UNNAMED$59" @213

+				Parent_View 	@209

+				location   	(2006, -134)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				stereotype 	TRUE

+				line_color 	3342489

+				quidu      	"4B7508B80154"

+				client     	@209

+				supplier   	@152

+				line_style 	3

+				origin_attachment 	(6343, 526)

+				terminal_attachment 	(5062, 526)

+				label      	(object SegLabel @214

+				    Parent_View 	@213

+				    location   	(5191, 580)

+				    font       	(object Font

+					size       	10

+					face       	"Arial"

+					bold       	FALSE

+					italics    	FALSE

+					underline  	FALSE

+					strike     	FALSE

+					color      	0

+					default_color 	TRUE)

+				    anchor     	2

+				    anchor_loc 	1

+				    nlines     	1

+				    max_width  	15

+				    justify    	0

+				    label      	"1"

+				    pctDist    	0.900000

+				    height     	54

+				    orientation 	0))))))))

+    root_subsystem 	(object SubSystem "Component View"

+	quid       	"3FA0657E0352"

+	physical_models 	(list unit_reference_list)

+	physical_presentations 	(list unit_reference_list

+	    (object Module_Diagram "Main"

+		quid       	"3FA0659201DB"

+		title      	"Main"

+		zoom       	100

+		max_height 	28350

+		max_width  	21600

+		origin_x   	0

+		origin_y   	0

+		items      	(list diagram_item_list))))

+    process_structure 	(object Processes

+	quid       	"3FA0657E0353"

+	ProcsNDevs 	(list

+	    (object Process_Diagram "Deployment View"

+		quid       	"3FA0657E0355"

+		title      	"Deployment View"

+		zoom       	100

+		max_height 	28350

+		max_width  	21600

+		origin_x   	0

+		origin_y   	0

+		items      	(list diagram_item_list))))

+    properties 	(object Properties

+	attributes 	(list Attribute_Set

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"propertyId"

+		value      	"809135966")

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"default__Role"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"Synchronize"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"InitialValue"

+			value      	"")))

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"default__Inherit"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"Synchronize"

+			value      	TRUE)))

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"default__Module-Spec"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"Synchronize"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"RevEngRootDirectory"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"RootPackage"

+			value      	"C++ Reverse Engineered")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"RevEngDirectoriesAsPackages"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"HeaderFileExtension"

+			value      	".h")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"ImplementationFileExtension"

+			value      	".cpp")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"NewHeaderFileDirectory"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"NewImplementationFileDirectory"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"FileCapitalization"

+			value      	("FileCapitalizationSet" 0))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CodeGenExtraDirectories"

+			value      	("CodeGenExtraDirectoriesSet" 0))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"StripClassPrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"UseTabs"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"TabWidth"

+			value      	8)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"IndentWidth"

+			value      	4)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"AccessIndentation"

+			value      	-2)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CreateBackupFiles"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"ModelIdCommentRules"

+			value      	("ModelIdCommentRulesSet" 1))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CommentRules"

+			value      	("CommentRulesSet" 1))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"PageWidth"

+			value      	80)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"ClassMemberOrder"

+			value      	("MemberOrderSet" 1))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"OneParameterPerLine"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"NamespaceBraceStyle"

+			value      	("BraceStyleSet" 2))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"ClassBraceStyle"

+			value      	("BraceStyleSet" 2))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"FunctionBraceStyle"

+			value      	("BraceStyleSet" 2))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"Copyright"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"InitialHeaderIncludes"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"InitialBodyIncludes"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CodeGenExtraDirectoriesSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"None"

+				value      	0)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Namespaces"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Packages"

+				value      	2)))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"FileCapitalizationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Same as model"

+				value      	0)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Lower case"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Upper case"

+				value      	2)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Lower case with underscores"

+				value      	3)))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"BraceStyleSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"B1"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"B2"

+				value      	2)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"B3"

+				value      	3)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"B4"

+				value      	4)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"B5"

+				value      	5)))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"MemberOrderSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Public First"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Private First"

+				value      	2)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Order by kind"

+				value      	3)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Unordered"

+				value      	4)))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"ModelIdCommentRulesSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Code generation only"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Code generation and reverse engineering"

+				value      	2)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Never generate model IDs"

+				value      	3)))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CommentRulesSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Always synchronize"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Code generation only"

+				value      	2)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Reverse engineering only"

+				value      	3)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Never synchronize"

+				value      	4)))))

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"default__Module-Body"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"Synchronize"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"RevEngRootDirectory"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"RootPackage"

+			value      	"C++ Reverse Engineered")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"RevEngDirectoriesAsPackages"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"HeaderFileExtension"

+			value      	".h")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"ImplementationFileExtension"

+			value      	".cpp")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"NewHeaderFileDirectory"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"NewImplementationFileDirectory"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"FileCapitalization"

+			value      	("FileCapitalizationSet" 0))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CodeGenExtraDirectories"

+			value      	("CodeGenExtraDirectoriesSet" 0))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"StripClassPrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"UseTabs"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"TabWidth"

+			value      	8)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"IndentWidth"

+			value      	4)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"AccessIndentation"

+			value      	-2)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CreateBackupFiles"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"ModelIdCommentRules"

+			value      	("ModelIdCommentRulesSet" 1))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CommentRules"

+			value      	("CommentRulesSet" 1))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"PageWidth"

+			value      	80)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"ClassMemberOrder"

+			value      	("MemberOrderSet" 1))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"OneParameterPerLine"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"NamespaceBraceStyle"

+			value      	("BraceStyleSet" 2))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"ClassBraceStyle"

+			value      	("BraceStyleSet" 2))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"FunctionBraceStyle"

+			value      	("BraceStyleSet" 2))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"Copyright"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"InitialHeaderIncludes"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"InitialBodyIncludes"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CodeGenExtraDirectoriesSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"None"

+				value      	0)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Namespaces"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Packages"

+				value      	2)))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"FileCapitalizationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Same as model"

+				value      	0)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Lower case"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Upper case"

+				value      	2)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Lower case with underscores"

+				value      	3)))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"BraceStyleSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"B1"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"B2"

+				value      	2)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"B3"

+				value      	3)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"B4"

+				value      	4)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"B5"

+				value      	5)))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"MemberOrderSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Public First"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Private First"

+				value      	2)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Order by kind"

+				value      	3)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Unordered"

+				value      	4)))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"ModelIdCommentRulesSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Code generation only"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Code generation and reverse engineering"

+				value      	2)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Never generate model IDs"

+				value      	3)))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CommentRulesSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Always synchronize"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Code generation only"

+				value      	2)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Reverse engineering only"

+				value      	3)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Never synchronize"

+				value      	4)))))

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"default__Param"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CodeName"

+			value      	"")))

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"default__Attribute"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"Synchronize"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CodeName"

+			value      	"")))

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"default__Operation"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"Synchronize"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"InitialCodeBody"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"Inline"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"GenerateFunctionBody"

+			value      	("GenerateFunctionBodySet" 2))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"GenerateFunctionBodySet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Default"

+				value      	2)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"True"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"False"

+				value      	0)))))

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"default__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"Synchronize"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"ImplementationType"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"HeaderSourceFile"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"BodySourceFile"

+			value      	"")))

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"default__Category"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"IsNamespace"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"default__Uses"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"BodyReferenceOnly"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"ANSIConvert"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"propertyId"

+		value      	"838326200")

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"default__Project"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SpecFileExtension"

+			value      	"1.ada")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SpecFileBackupExtension"

+			value      	"1.ad~")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SpecFileTemporaryExtension"

+			value      	"1.ad#")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"BodyFileExtension"

+			value      	"2.ada")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"BodyFileBackupExtension"

+			value      	"2.ad~")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"BodyFileTemporaryExtension"

+			value      	"2.ad#")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"CreateMissingDirectories"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GenerateBodies"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GenerateAccessorOperations"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GenerateStandardOperations"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"DefaultCodeBody"

+			value      	"[statement]")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ImplicitParameter"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"CommentWidth"

+			value      	60)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"StopOnError"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ErrorLimit"

+			value      	30)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"UseFileName"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Directory"

+			value      	"$ROSEADA83_SOURCE")))

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"default__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ClassName"

+			value      	"Object")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ClassAccess"

+			value      	("ImplementationSet" 43))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ImplementationType"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"IsSubtype"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"PolymorphicUnit"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"HandleName"

+			value      	"Handle")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"HandleAccess"

+			value      	("ImplementationSet" 45))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Discriminant"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Variant"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"EnumerationLiteralPrefix"

+			value      	"A_")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"RecordFieldPrefix"

+			value      	"The_")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GenerateAccessorOperations"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GenerateStandardOperations"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ImplicitParameter"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ClassParameterName"

+			value      	"This")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"DefaultConstructorKind"

+			value      	("ConstructorKindSet" 199))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"DefaultConstructorName"

+			value      	"Create")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineDefaultConstructor"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"CopyConstructorKind"

+			value      	("ConstructorKindSet" 199))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"CopyConstructorName"

+			value      	"Copy")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineCopyConstructor"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"DestructorName"

+			value      	"Free")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineDestructor"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ClassEqualityOperation"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"HandleEqualityOperation"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineEquality"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"IsTask"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Representation"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ImplementationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Public"

+				value      	45)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Private"

+				value      	43)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"LimitedPrivate"

+				value      	200)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"DoNotCreate"

+				value      	201)))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ConstructorKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Procedure"

+				value      	202)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Function"

+				value      	199)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"DoNotCreate"

+				value      	201)))))

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"default__Module-Spec"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Generate"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"CopyrightNotice"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"FileName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ReturnType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GenericFormalParameters"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"AdditionalWiths"

+			value      	(value Text ""))))

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"default__Module-Body"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Generate"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"CopyrightNotice"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"FileName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ReturnType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"AdditionalWiths"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"IsSubunit"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"default__Operation"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SubprogramImplementation"

+			value      	("SubprogramImplementationSet" 2))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Renames"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ClassParameterMode"

+			value      	("ParameterModeSet" 203))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Inline"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"EntryCode"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ExitCode"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InitialCodeBody"

+			value      	"${default}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Representation"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SubprogramImplementationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Spec"

+				value      	224)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Body"

+				value      	2)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Renaming"

+				value      	222)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Separate"

+				value      	223)))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ParameterModeSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Default"

+				value      	232)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"In"

+				value      	204)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Out"

+				value      	205)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"InOut"

+				value      	203)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"FunctionReturn"

+				value      	206)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"DoNotCreate"

+				value      	201)))))

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"default__Param"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Mode"

+			value      	("ParameterModeSet" 232))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ParameterModeSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Default"

+				value      	232)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"In"

+				value      	204)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Out"

+				value      	205)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"InOut"

+				value      	203)))))

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"default__Has"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"NameIfUnlabeled"

+			value      	"The_${supplier}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"DataMemberName"

+			value      	"${relationship}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GetName"

+			value      	"Get_${relationship}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineGet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SetName"

+			value      	"Set_${relationship}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineSet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"IsConstant"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InitialValue"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Declare"

+			value      	("DeclareSet" 234))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Variant"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ContainerGeneric"

+			value      	"List")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ContainerType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ContainerDeclarations"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SelectorName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SelectorType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"DeclareSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Before"

+				value      	233)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"After"

+				value      	234)))))

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"default__Attribute"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"DataMemberName"

+			value      	"${attribute}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GetName"

+			value      	"Get_${attribute}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineGet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SetName"

+			value      	"Set_${attribute}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineSet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"IsConstant"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InitialValue"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Declare"

+			value      	("DeclareSet" 234))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Variant"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Representation"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"DeclareSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Before"

+				value      	233)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"After"

+				value      	234)))))

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"default__Association"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"NameIfUnlabeled"

+			value      	"The_${targetClass}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GetName"

+			value      	"Get_${association}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineGet"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SetName"

+			value      	"Set_${association}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineSet"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GenerateAssociate"

+			value      	("ProcedureKindSet" 202))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"AssociateName"

+			value      	"Associate")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineAssociate"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GenerateDissociate"

+			value      	("ProcedureKindSet" 202))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"DissociateName"

+			value      	"Dissociate")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineDissociate"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ProcedureKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Procedure"

+				value      	202)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"DoNotCreate"

+				value      	201)))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"FunctionKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Function"

+				value      	199)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"DoNotCreate"

+				value      	201)))))

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"default__Role"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"NameIfUnlabeled"

+			value      	"The_${targetClass}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"DataMemberName"

+			value      	"${target}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GetName"

+			value      	"Get_${target}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineGet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SetName"

+			value      	"Set_${target}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineSet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"IsConstant"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InitialValue"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Declare"

+			value      	("DeclareSet" 234))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Representation"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ContainerGeneric"

+			value      	"List")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ContainerType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ContainerDeclarations"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SelectorName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SelectorType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ProcedureKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Procedure"

+				value      	202)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"DoNotCreate"

+				value      	201)))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"DeclareSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Before"

+				value      	233)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"After"

+				value      	234)))))

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"default__Subsystem"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Directory"

+			value      	"AUTO GENERATE")))

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"propertyId"

+		value      	"838326200")

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"default__Project"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SpecFileExtension"

+			value      	"1.ada")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SpecFileBackupExtension"

+			value      	"1.ad~")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SpecFileTemporaryExtension"

+			value      	"1.ad#")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"BodyFileExtension"

+			value      	"2.ada")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"BodyFileBackupExtension"

+			value      	"2.ad~")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"BodyFileTemporaryExtension"

+			value      	"2.ad#")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"CreateMissingDirectories"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"UseColonNotation"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateBodies"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAccessorOperations"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateStandardOperations"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"DefaultCodeBody"

+			value      	"[statement]")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ImplicitParameter"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"CommentWidth"

+			value      	60)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"StopOnError"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ErrorLimit"

+			value      	30)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"UseFileName"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Directory"

+			value      	"$ROSEADA95_SOURCE")))

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"default__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"TypeName"

+			value      	"Object")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"TypeVisibility"

+			value      	("TypeVisibilitySet" 43))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"TypeImplementation"

+			value      	("TypeImplementationSet" 208))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IncompleteType"

+			value      	("IncompleteTypeSet" 1))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"TypeControl"

+			value      	("TypeControlSet" 225))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"TypeControlName"

+			value      	"Controlled_${type}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"TypeControlVisibility"

+			value      	("TypeVisibilitySet" 43))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"TypeDefinition"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordImplementation"

+			value      	("RecordImplementationSet" 209))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordKindPackageName"

+			value      	"${class}_Record_Kinds")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IsLimited"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IsSubtype"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAccessType"

+			value      	("GenerateAccessTypeSet" 230))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AccessTypeName"

+			value      	"Handle")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AccessTypeVisibility"

+			value      	("TypeVisibilitySet" 45))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AccessTypeDefinition"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AccessClassWide"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"MaybeAliased"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ParameterizedImplementation"

+			value      	("ParameterizedImplementationSet" 11))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ParentClassName"

+			value      	"Superclass")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"EnumerationLiteralPrefix"

+			value      	"A_")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordFieldPrefix"

+			value      	"The_")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ArrayOfTypeName"

+			value      	"Array_Of_${type}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AccessArrayOfTypeName"

+			value      	"Access_Array_Of_${type}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ArrayOfAccessTypeName"

+			value      	"Array_Of_${access_type}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AccessArrayOfAccessTypeName"

+			value      	"Access_Array_Of_${access_type}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ArrayIndexDefinition"

+			value      	"Positive range <>")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAccessorOperations"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateStandardOperations"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ImplicitParameter"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ImplicitParameterName"

+			value      	"This")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateDefaultConstructor"

+			value      	("SubprogramKindSet" 199))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"DefaultConstructorName"

+			value      	"Create")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineDefaultConstructor"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateCopyConstructor"

+			value      	("SubprogramKindSet" 199))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"CopyConstructorName"

+			value      	"Copy")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineCopyConstructor"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateDestructor"

+			value      	("ProcedureKindSet" 202))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"DestructorName"

+			value      	"Free")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineDestructor"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateTypeEquality"

+			value      	("FunctionKindSet" 201))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"TypeEqualityName"

+			value      	(value Text 

+|"="

+			))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineEquality"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Representation"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"TypeImplementationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Tagged"

+				value      	208)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Record"

+				value      	210)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Mixin"

+				value      	211)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Protected"

+				value      	44)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Task"

+				value      	212)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IncompleteTypeSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotDeclare"

+				value      	1)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"NoDiscriminantPart"

+				value      	2)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"UnknownDiscriminantPart"

+				value      	3)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"KnownDiscriminantPart"

+				value      	4)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordImplementationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"SingleType"

+				value      	209)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"MultipleTypes"

+				value      	213)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ParameterizedImplementationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Generic"

+				value      	11)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Unconstrained"

+				value      	214)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"TypeVisibilitySet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Public"

+				value      	45)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Private"

+				value      	43)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SubprogramKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Procedure"

+				value      	202)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Function"

+				value      	199)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ProcedureKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Procedure"

+				value      	202)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"FunctionKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Function"

+				value      	199)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"TypeControlSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"None"

+				value      	225)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"InitializationOnly"

+				value      	226)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"AssignmentFinalizationOnly"

+				value      	227)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"All"

+				value      	228)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAccessTypeSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Always"

+				value      	229)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Auto"

+				value      	230)))))

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"default__Module-Spec"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Generate"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"CopyrightNotice"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"FileName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ReturnType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenericFormalParameters"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AdditionalWiths"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IsPrivate"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"default__Module-Body"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Generate"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"CopyrightNotice"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"FileName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ReturnType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AdditionalWiths"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IsSubunit"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"default__Operation"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SubprogramImplementation"

+			value      	("SubprogramImplementationSet" 2))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Renames"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateOverriding"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ImplicitParameterMode"

+			value      	("ParameterModeSet" 203))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ImplicitParameterClassWide"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAccessOperation"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Inline"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"EntryCode"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ExitCode"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InitialCodeBody"

+			value      	"${default}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"EntryBarrierCondition"

+			value      	"True")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Representation"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SubprogramImplementationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Spec"

+				value      	224)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Body"

+				value      	2)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Abstract"

+				value      	221)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Renaming"

+				value      	222)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"RenamingAsBody"

+				value      	231)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Separate"

+				value      	223)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ParameterModeSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Default"

+				value      	232)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"In"

+				value      	204)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Out"

+				value      	205)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"InOut"

+				value      	203)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Access"

+				value      	220)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))))

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"default__Param"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Mode"

+			value      	("ParameterModeSet" 232))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ParameterModeSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Default"

+				value      	232)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"In"

+				value      	204)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Out"

+				value      	205)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"InOut"

+				value      	203)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Access"

+				value      	220)))))

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"default__Has"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"NameIfUnlabeled"

+			value      	"The_${supplier}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordFieldImplementation"

+			value      	("RecordFieldImplementationSet" 216))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AccessDiscriminantClassWide"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordFieldName"

+			value      	"${relationship}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateGet"

+			value      	("FunctionKindSet" 199))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAccessGet"

+			value      	("FunctionKindSet" 201))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GetName"

+			value      	"Get_${relationship}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineGet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateSet"

+			value      	("ProcedureKindSet" 202))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAccessSet"

+			value      	("ProcedureKindSet" 201))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SetName"

+			value      	"Set_${relationship}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineSet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IsAliased"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IsConstant"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InitialValue"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Declare"

+			value      	("DeclareSet" 234))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ContainerImplementation"

+			value      	("ContainerImplementationSet" 217))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ContainerGeneric"

+			value      	"List")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ContainerType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ContainerDeclarations"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SelectorName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SelectorType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"DeclareSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Before"

+				value      	233)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"After"

+				value      	234)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordFieldImplementationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Component"

+				value      	216)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Discriminant"

+				value      	218)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"AccessDiscriminant"

+				value      	219)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ContainerImplementationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Array"

+				value      	217)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Generic"

+				value      	11)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ProcedureKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Procedure"

+				value      	202)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"FunctionKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Function"

+				value      	199)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))))

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"default__Attribute"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordFieldImplementation"

+			value      	("RecordFieldImplementationSet" 216))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AccessDiscriminantClassWide"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordFieldName"

+			value      	"${attribute}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateGet"

+			value      	("FunctionKindSet" 199))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAccessGet"

+			value      	("FunctionKindSet" 201))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GetName"

+			value      	"Get_${attribute}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineGet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateSet"

+			value      	("ProcedureKindSet" 202))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAccessSet"

+			value      	("ProcedureKindSet" 201))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SetName"

+			value      	"Set_${attribute}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineSet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IsAliased"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IsConstant"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InitialValue"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Declare"

+			value      	("DeclareSet" 234))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Representation"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"DeclareSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Before"

+				value      	233)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"After"

+				value      	234)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordFieldImplementationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Component"

+				value      	216)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Discriminant"

+				value      	218)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"AccessDiscriminant"

+				value      	219)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ProcedureKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Procedure"

+				value      	202)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"FunctionKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Function"

+				value      	199)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))))

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"default__Association"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"NameIfUnlabeled"

+			value      	"The_${targetClass}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateGet"

+			value      	("FunctionKindSet" 199))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GetName"

+			value      	"Get_${association}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineGet"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateSet"

+			value      	("ProcedureKindSet" 202))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SetName"

+			value      	"Set_${association}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineSet"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAssociate"

+			value      	("ProcedureKindSet" 202))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AssociateName"

+			value      	"Associate")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineAssociate"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateDissociate"

+			value      	("ProcedureKindSet" 202))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"DissociateName"

+			value      	"Dissociate")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineDissociate"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ProcedureKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Procedure"

+				value      	202)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"FunctionKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Function"

+				value      	199)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))))

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"default__Role"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"NameIfUnlabeled"

+			value      	"The_${targetClass}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordFieldImplementation"

+			value      	("RecordFieldImplementationSet" 216))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AccessDiscriminantClassWide"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordFieldName"

+			value      	"${target}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateGet"

+			value      	("FunctionKindSet" 199))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAccessGet"

+			value      	("FunctionKindSet" 201))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GetName"

+			value      	"Get_${target}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineGet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateSet"

+			value      	("ProcedureKindSet" 202))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAccessSet"

+			value      	("ProcedureKindSet" 201))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SetName"

+			value      	"Set_${target}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineSet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IsAliased"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IsConstant"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InitialValue"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Declare"

+			value      	("DeclareSet" 234))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Representation"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ContainerImplementation"

+			value      	("ContainerImplementationSet" 217))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ContainerGeneric"

+			value      	"List")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ContainerType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ContainerDeclarations"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SelectorName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SelectorType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ProcedureKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Procedure"

+				value      	202)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"DeclareSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Before"

+				value      	233)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"After"

+				value      	234)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordFieldImplementationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Component"

+				value      	216)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Discriminant"

+				value      	218)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"AccessDiscriminant"

+				value      	219)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ContainerImplementationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Array"

+				value      	217)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Generic"

+				value      	11)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"FunctionKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Function"

+				value      	199)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))))

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"default__Subsystem"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Directory"

+			value      	"AUTO GENERATE")))

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"CORBA"

+		name       	"propertyId"

+		value      	"809135966")

+	    (object Attribute

+		tool       	"CORBA"

+		name       	"default__Project"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"CreateMissingDirectories"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"Editor"

+			value      	("EditorType" 100))

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"IncludePath"

+			value      	"")

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"StopOnError"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"EditorType"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"CORBA"

+				name       	"BuiltIn"

+				value      	100)

+			    (object Attribute

+				tool       	"CORBA"

+				name       	"WindowsShell"

+				value      	101)))

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"PathSeparator"

+			value      	"")))

+	    (object Attribute

+		tool       	"CORBA"

+		name       	"default__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"ArrayDimensions"

+			value      	"")

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"ConstValue"

+			value      	"")

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"ImplementationType"

+			value      	"")))

+	    (object Attribute

+		tool       	"CORBA"

+		name       	"default__Module-Spec"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"AdditionalIncludes"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"CmIdentification"

+			value      	(value Text "  %X% %Q% %Z% %W%"))

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"CopyrightNotice"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"InclusionProtectionSymbol"

+			value      	"AUTO GENERATE")))

+	    (object Attribute

+		tool       	"CORBA"

+		name       	"default__Module-Body"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"AdditionalIncludes"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"CmIdentification"

+			value      	(value Text "  %X% %Q% %Z% %W%"))

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"CopyrightNotice"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"InclusionProtectionSymbol"

+			value      	"AUTO GENERATE")))

+	    (object Attribute

+		tool       	"CORBA"

+		name       	"default__Operation"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"Context"

+			value      	"")

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"OperationIsOneWay"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"CORBA"

+		name       	"default__Attribute"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"ArrayDimensions"

+			value      	"")

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"CaseSpecifier"

+			value      	"")

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"IsReadOnly"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"Order"

+			value      	"")))

+	    (object Attribute

+		tool       	"CORBA"

+		name       	"default__Role"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"ArrayDimensions"

+			value      	"")

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"CaseSpecifier"

+			value      	"")

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"GenerateForwardReference"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"IsReadOnly"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"Order"

+			value      	"")

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"BoundedRoleType"

+			value      	("AssocTypeSet" 47))

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"AssocTypeSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"CORBA"

+				name       	"Array"

+				value      	24)

+			    (object Attribute

+				tool       	"CORBA"

+				name       	"Sequence"

+				value      	47)))))

+	    (object Attribute

+		tool       	"CORBA"

+		name       	"default__Uses"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"GenerateForwardReference"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"CORBA"

+		name       	"default__Param"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"Direction"

+			value      	("ParamDirectionTypeSet" 102))

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"ParamDirectionTypeSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"CORBA"

+				name       	"in"

+				value      	102)

+			    (object Attribute

+				tool       	"CORBA"

+				name       	"inout"

+				value      	103)

+			    (object Attribute

+				tool       	"CORBA"

+				name       	"out"

+				value      	104)))))

+	    (object Attribute

+		tool       	"CORBA"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"ClearCase"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"Data Modeler"

+		name       	"propertyId"

+		value      	"809135966")

+	    (object Attribute

+		tool       	"Data Modeler"

+		name       	"default__Project"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"project"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"TableCounter"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ViewCounter"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DomainCounter"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"SPPackageCounter"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"TriggerCounter"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IndexCounter"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ConstraintCounter"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"StoreProcedureCounter"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"PrimaryKeyCounter"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ForeignKeyCounter"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"JoinCounter"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"TableSpaceCounter"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"cONTAINERCounter"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"TablePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ViewPrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DomainPrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"TriggerPrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IndexPrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ConstraintPrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"StoreProcedurePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"PrimaryKeyPrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ForeignKeyPrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"TableSpacePrefix"

+			value      	"")))

+	    (object Attribute

+		tool       	"Data Modeler"

+		name       	"default__Module-Spec"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"dmItem"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DMName"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsDatabase"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"TargetDatabase"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"Location"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsTableSpace"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"TableSpaceType"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsDeault"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"BufferPool"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ExtentSize"

+			value      	1)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"PrefetchSize"

+			value      	1)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"PageSize"

+			value      	4)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ManagedBy"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ContainerList"

+			value      	"")))

+	    (object Attribute

+		tool       	"Data Modeler"

+		name       	"default__Category"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"dmItem"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DMName"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"dmSchema"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"dmDomainPackage"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsSchema"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsDomainPackage"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsRootSchema"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsRootDomainPackage"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsSchemaPackage"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DatabaseID"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DBMS"

+			value      	"")))

+	    (object Attribute

+		tool       	"Data Modeler"

+		name       	"default__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"dmItem"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DMName"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsTable"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsView"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsDomain"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsSPPackage"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"Synonymns"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"TableSpaceID"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"SourceId"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"SourceType"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"CorrelationName"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"SelectClause"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsUpdateable"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"CheckOption"

+			value      	"None")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsSnapShot"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsDistinct"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"PersistToServer"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsPackage"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Data Modeler"

+		name       	"default__Attribute"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"dmItem"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DMName"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"Ordinal"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsIdentity"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsUnique"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"NullsAllowed"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"Length"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"Scale"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ColumnType"

+			value      	"Native")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ForBitData"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DefaultValueType"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DefaultValue"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"SourceId"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"SourceType"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"OID"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Data Modeler"

+		name       	"default__Association"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"dmItem"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DMName"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsRelationship"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"SourceId"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"SourceType"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"RIMethod"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ParentUpdateRule"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ParentUpdateRuleName"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ParentDeleteRule"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ParentDeleteRuleName"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ChildInsertRestrict"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ChildInsertRestrictName"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ChildMultiplicity"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ChildMultiplicityName"

+			value      	"")))

+	    (object Attribute

+		tool       	"Data Modeler"

+		name       	"default__Role"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"dmItem"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DMName"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ConstraintName"

+			value      	"")))

+	    (object Attribute

+		tool       	"Data Modeler"

+		name       	"default__Operation"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"dmItem"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DMName"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsConstraint"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ConstraintType"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsIndex"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsTrigger"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsStoredProcedure"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsCluster"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"TableSpace"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"FillFactor"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"KeyList"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"CheckPredicate"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsUnique"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DeferalMode"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"InitialCheckTime"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"TriggerType"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsInsertEvent"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsUpdateEvent"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsDeleteEvent"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"RefOldTable"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"RefNewTable"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"RefOldRow"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"RefNewRow"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsRow"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"WhenClause"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"Language"

+			value      	"SQL")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ProcType"

+			value      	"Procedure")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsDeterministic"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ParameterStyle"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ReturnedNull"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ExternalName"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"Length"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"Scale"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ForBitData"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DefaultValue"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DefaultValueType"

+			value      	"")))

+	    (object Attribute

+		tool       	"Data Modeler"

+		name       	"default__Parameter"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"dmItem"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DMName"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsInParameter"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsOutParameter"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"Ordinal"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"Length"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"Scale"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ForBitData"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DefaultValueType"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DefaultValue"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"OperationID"

+			value      	"")))

+	    (object Attribute

+		tool       	"Data Modeler"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"Data Modeler Communicator"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"Deploy"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"framework"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"Java"

+		name       	"propertyId"

+		value      	"809135966")

+	    (object Attribute

+		tool       	"Java"

+		name       	"default__Project"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Java"

+			name       	"RootDir"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"CreateMissingDirectories"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"StopOnError"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"UsePrefixes"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"AutoSync"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"NotShowRoseIDDlg"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"ShowCodegenDlg"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateRoseID"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateDefaultJ2EEJavadoc"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateDefaultReturnLine"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"JavadocDefaultAuthor"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"JavadocDefaultVersion"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"JavadocDefaultSince"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"UserDefineJavaDocTags"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"JavadocNumAsterisks"

+			value      	0)

+		    (object Attribute

+			tool       	"Java"

+			name       	"MaxNumChars"

+			value      	80)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Editor"

+			value      	("EditorType" 100))

+		    (object Attribute

+			tool       	"Java"

+			name       	"VM"

+			value      	("VMType" 200))

+		    (object Attribute

+			tool       	"Java"

+			name       	"ClassPath"

+			value      	".;C:\\PROGRA~1\\IBM\\SQLLIB\\java\\db2java.zip;C:\\PROGRA~1\\IBM\\SQLLIB\\java\\db2jcc.jar;C:\\PROGRA~1\\IBM\\SQLLIB\\java\\sqlj.zip;C:\\PROGRA~1\\IBM\\SQLLIB\\java\\db2jcc_license_cisuz.jar;C:\\PROGRA~1\\IBM\\SQLLIB\\java\\db2jcc_license_cu.jar;C:\\PROGRA~1\\IBM\\SQLLIB\\bin;C:\\PROGRA~1\\IBM\\SQLLIB\\java\\common.jar")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ReferenceClasspath"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"EditorType"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Java"

+				name       	"BuiltIn"

+				value      	100)))

+		    (object Attribute

+			tool       	"Java"

+			name       	"VMType"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Java"

+				name       	"Sun"

+				value      	200)))

+		    (object Attribute

+			tool       	"Java"

+			name       	"VAJavaWorkingFolder"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"InstanceVariablePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ClassVariablePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"DefaultAttributeDataType"

+			value      	"int")

+		    (object Attribute

+			tool       	"Java"

+			name       	"DefaultOperationReturnType"

+			value      	"void")

+		    (object Attribute

+			tool       	"Java"

+			name       	"NoClassCustomDlg"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"GlobalImports"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Java"

+			name       	"OpenBraceClassStyle"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"OpenBraceMethodStyle"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"UseTabs"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"UseSpaces"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"SpacingItems"

+			value      	3)

+		    (object Attribute

+			tool       	"Java"

+			name       	"RoseDefaultCommentStyle"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"AsteriskCommentStyle"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"JavaCommentStyle"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"JavadocAuthor"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"JavadocSince"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"JavadocVersion"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"BeanPrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"BeanSuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"RemotePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"RemoteSuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"HomePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"HomeSuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"LocalPrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"LocalSuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"LocalHomePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"LocalHomeSuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"PrimaryKeyPrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"PrimaryKeySuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBDTDLocation"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletDTDLocation"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"DefaultEJBVersion"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"DefaultServletVersion"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"SourceControl"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"SCCSelected"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"SCCProjectSourceRoot"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"SCCProjectName"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"SCCComment"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Java"

+		name       	"default__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Java"

+			name       	"Final"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Static"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateDefaultConstructor"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"ConstructorIs"

+			value      	("Ctor_Set" 62))

+		    (object Attribute

+			tool       	"Java"

+			name       	"Ctor_Set"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Java"

+				name       	"public"

+				value      	62)

+			    (object Attribute

+				tool       	"Java"

+				name       	"protected"

+				value      	63)

+			    (object Attribute

+				tool       	"Java"

+				name       	"private"

+				value      	64)

+			    (object Attribute

+				tool       	"Java"

+				name       	"package"

+				value      	65)))

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateFinalizer"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateStaticInitializer"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateInstanceInitializer"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateCode"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"DisableAutoSync"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"ReadOnly"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Strictfp"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Java"

+		name       	"Default_Servlet__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletName"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletContextRef"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"IsSingleThread"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletInitParameter"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletInitParameterNames"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletIsSecure"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletRequestDispatcher"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletRequestDispatcherPath"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"DispatcherInclude"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"DispatcherForward"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletSecurityRoles"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletgetInfo"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletXMLFilePath"

+			value      	"")))

+	    (object Attribute

+		tool       	"Java"

+		name       	"Http_Servlet__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletRequestAttribute"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletRequestAttributesNames"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"MethodForRequestAttributes"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletRequestParameter"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletRequestParameterNames"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"MethodForRequestParameters"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletHeader"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletHeaderNames"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"MethodForHeaders"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletIntHeader"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletDateHeader"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletCookie"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"MethodForCookie"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletContentType"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateHTML"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Java"

+		name       	"Default_EJB__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Java"

+			name       	"Generate_XML_DD"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBCmpField"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBEnvironmentProperties"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBCnxFactory"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBReferences"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBSecurityRoles"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBNameInJAR"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBSessionType"

+			value      	("EJBSessionType_Set" 200))

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBSessionType_Set"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Java"

+				name       	""

+				value      	200)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Stateless"

+				value      	201)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Stateful"

+				value      	202)))

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBTransactionType"

+			value      	("EJBTransactionType_Set" 211))

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBTransactionType_Set"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Java"

+				name       	"Container"

+				value      	211)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Bean"

+				value      	212)))

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBPersistenceType"

+			value      	("EJBPersistenceType_Set" 220))

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBPersistenceType_Set"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Java"

+				name       	""

+				value      	220)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Bean"

+				value      	221)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Container"

+				value      	222)))

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBReentrant"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBSessionSync"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBVersion"

+			value      	("EJBVersion_Set" 230))

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBVersion_Set"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Java"

+				name       	"2.0"

+				value      	230)

+			    (object Attribute

+				tool       	"Java"

+				name       	"1.x"

+				value      	231)))

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBXMLFilePath"

+			value      	"")))

+	    (object Attribute

+		tool       	"Java"

+		name       	"default__Module-Spec"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Java"

+			name       	"CmIdentification"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Java"

+			name       	"CopyrightNotice"

+			value      	(value Text ""))))

+	    (object Attribute

+		tool       	"Java"

+		name       	"default__Module-Body"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Java"

+			name       	"CmIdentification"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Java"

+			name       	"CopyrightNotice"

+			value      	(value Text ""))))

+	    (object Attribute

+		tool       	"Java"

+		name       	"default__Operation"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Java"

+			name       	"Abstract"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Static"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Final"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Native"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Synchronized"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateFullyQualifiedReturn"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"ReplaceExistingCode"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Strictfp"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Java"

+		name       	"default__Attribute"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Java"

+			name       	"Final"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Transient"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Volatile"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"PropertyType"

+			value      	("BeanProperty_Set" 71))

+		    (object Attribute

+			tool       	"Java"

+			name       	"BeanProperty_Set"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Java"

+				name       	"Not A Property"

+				value      	71)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Simple"

+				value      	72)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Bound"

+				value      	73)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Constrained"

+				value      	74)))

+		    (object Attribute

+			tool       	"Java"

+			name       	"IndividualChangeMgt"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Read/Write"

+			value      	("Read/Write_Set" 81))

+		    (object Attribute

+			tool       	"Java"

+			name       	"Read/Write_Set"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Java"

+				name       	"Read & Write"

+				value      	81)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Read Only"

+				value      	82)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Write Only"

+				value      	83)))

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateFullyQualifiedTypes"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Java"

+		name       	"default__Role"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Java"

+			name       	"ContainerClass"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"InitialValue"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"Final"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Transient"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Volatile"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"PropertyType"

+			value      	("BeanProperty_Set" 71))

+		    (object Attribute

+			tool       	"Java"

+			name       	"BeanProperty_Set"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Java"

+				name       	"Not A Property"

+				value      	71)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Simple"

+				value      	72)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Bound"

+				value      	73)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Constrained"

+				value      	74)))

+		    (object Attribute

+			tool       	"Java"

+			name       	"IndividualChangeMgt"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Read/Write"

+			value      	("Read/Write_Set" 81))

+		    (object Attribute

+			tool       	"Java"

+			name       	"Read/Write_Set"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Java"

+				name       	"Read & Write"

+				value      	81)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Read Only"

+				value      	82)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Write Only"

+				value      	83)))

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateFullyQualifiedTypes"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"IsNavigable"

+			value      	TRUE)))

+	    (object Attribute

+		tool       	"Java"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"Oracle8"

+		name       	"propertyId"

+		value      	"360000002")

+	    (object Attribute

+		tool       	"Oracle8"

+		name       	"default__Project"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"DDLScriptFilename"

+			value      	"DDL1.SQL")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"DropClause"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"PrimaryKeyColumnName"

+			value      	"_ID")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"PrimaryKeyColumnType"

+			value      	"NUMBER(5,0)")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"SchemaNamePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"SchemaNameSuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TableNamePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TableNameSuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TypeNamePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TypeNameSuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"ViewNamePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"ViewNameSuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"VarrayNamePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"VarrayNameSuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"NestedTableNamePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"NestedTableNameSuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"ObjectTableNamePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"ObjectTableNameSuffix"

+			value      	"")))

+	    (object Attribute

+		tool       	"Oracle8"

+		name       	"default__Module-Spec"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"IsSchema"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Oracle8"

+		name       	"default__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"OID"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"WhereClause"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"CheckConstraint"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"CollectionTypeLength"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"CollectionTypePrecision"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"CollectionTypeScale"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"CollectionOfREFS"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Oracle8"

+		name       	"default__Operation"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"MethodKind"

+			value      	("MethodKindSet" 1903))

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"OverloadID"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"OrderNumber"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"IsReadNoDataState"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"IsReadNoProcessState"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"IsWriteNoDataState"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"IsWriteNoProcessState"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"IsSelfish"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TriggerType"

+			value      	("TriggerTypeSet" 1801))

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TriggerEvent"

+			value      	("TriggerEventSet" 1601))

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TriggerText"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TriggerReferencingNames"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TriggerForEach"

+			value      	("TriggerForEachSet" 1701))

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TriggerWhenClause"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"MethodKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"MapMethod"

+				value      	1901)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"OrderMethod"

+				value      	1902)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"Function"

+				value      	1903)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"Procedure"

+				value      	1904)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"Operator"

+				value      	1905)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"Constructor"

+				value      	1906)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"Destructor"

+				value      	1907)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"Trigger"

+				value      	1908)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"Calculated"

+				value      	1909)))

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TriggerTypeSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"AFTER"

+				value      	1801)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"BEFORE"

+				value      	1802)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"INSTEAD OF"

+				value      	1803)))

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TriggerForEachSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"ROW"

+				value      	1701)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"STATEMENT"

+				value      	1702)))

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TriggerEventSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"INSERT"

+				value      	1601)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"UPDATE"

+				value      	1602)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"DELETE"

+				value      	1603)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"INSERT OR UPDATE"

+				value      	1604)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"INSERT OR DELETE"

+				value      	1605)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"UPDATE OR DELETE"

+				value      	1606)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"INSERT OR UPDATE OR DELETE"

+				value      	1607)))))

+	    (object Attribute

+		tool       	"Oracle8"

+		name       	"default__Role"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"OrderNumber"

+			value      	"")))

+	    (object Attribute

+		tool       	"Oracle8"

+		name       	"default__Attribute"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"OrderNumber"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"IsUnique"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"NullsAllowed"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"Length"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"Precision"

+			value      	"2")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"Scale"

+			value      	"6")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"IsIndex"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"IsPrimaryKey"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"CompositeUnique"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"CheckConstraint"

+			value      	"")))

+	    (object Attribute

+		tool       	"Oracle8"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"ComponentTest"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"Rose Model Integrator"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"Rose Web Publisher"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"TopLink"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"COM"

+		name       	"propertyId"

+		value      	"783606378")

+	    (object Attribute

+		tool       	"COM"

+		name       	"default__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"COM"

+			name       	"TypeKinds"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"COM"

+				name       	"enum"

+				value      	100)

+			    (object Attribute

+				tool       	"COM"

+				name       	"record"

+				value      	101)

+			    (object Attribute

+				tool       	"COM"

+				name       	"module"

+				value      	102)

+			    (object Attribute

+				tool       	"COM"

+				name       	"interface"

+				value      	103)

+			    (object Attribute

+				tool       	"COM"

+				name       	"dispinterface"

+				value      	104)

+			    (object Attribute

+				tool       	"COM"

+				name       	"coclass"

+				value      	105)

+			    (object Attribute

+				tool       	"COM"

+				name       	"alias"

+				value      	106)

+			    (object Attribute

+				tool       	"COM"

+				name       	"union"

+				value      	107)

+			    (object Attribute

+				tool       	"COM"

+				name       	"max"

+				value      	108)

+			    (object Attribute

+				tool       	"COM"

+				name       	"(none)"

+				value      	109)))

+		    (object Attribute

+			tool       	"COM"

+			name       	"Generate"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"COM"

+			name       	"kind"

+			value      	("TypeKinds" 109))

+		    (object Attribute

+			tool       	"COM"

+			name       	"uuid"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"version"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"helpstring"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"helpcontext"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"attributes"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"dllname"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"alias"

+			value      	"")))

+	    (object Attribute

+		tool       	"COM"

+		name       	"default__Operation"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"COM"

+			name       	"Generate"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"COM"

+			name       	"id"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"helpstring"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"attributes"

+			value      	"")))

+	    (object Attribute

+		tool       	"COM"

+		name       	"default__Attribute"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"COM"

+			name       	"Generate"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"COM"

+			name       	"id"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"helpstring"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"attributes"

+			value      	"")))

+	    (object Attribute

+		tool       	"COM"

+		name       	"default__Module-Spec"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"COM"

+			name       	"Generate"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"COM"

+			name       	"filename"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"library"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"uuid"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"version"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"helpstring"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"helpfile"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"helpcontext"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"lcid"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"attributes"

+			value      	"")))

+	    (object Attribute

+		tool       	"COM"

+		name       	"default__Param"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"COM"

+			name       	"attributes"

+			value      	"")))

+	    (object Attribute

+		tool       	"COM"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"VC++"

+		name       	"propertyId"

+		value      	"809135966")

+	    (object Attribute

+		tool       	"VC++"

+		name       	"default__Project"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"VC++"

+			name       	"UpdateATL"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"VC++"

+			name       	"SmartPointersOnAssoc"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"VC++"

+			name       	"GenerateImports"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"VC++"

+			name       	"PutImportsIn"

+			value      	"stdafx.h")

+		    (object Attribute

+			tool       	"VC++"

+			name       	"FullPathInImports"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"VC++"

+			name       	"UseImportAttributes"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"VC++"

+			name       	"ImportAttributes"

+			value      	"no_namespace named_guids")

+		    (object Attribute

+			tool       	"VC++"

+			name       	"ImportProjTypeLib"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"VC++"

+			name       	"DefaultTypeLib"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"VC++"

+			name       	"TypeLibLocation"

+			value      	"")

+		    (object Attribute

+			tool       	"VC++"

+			name       	"CompileProjTypeLib"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"VC++"

+			name       	"IdlInterfaceAttributes"

+			value      	(value Text 

+|endpoint("")

+|local

+|object

+|pointer_default()

+|uuid("")

+|version("")

+|encode

+|decode

+|auto_handle

+|implicit_handle("")

+|code

+|nocode

+			))

+		    (object Attribute

+			tool       	"VC++"

+			name       	"IdlCoClassAttributes"

+			value      	(value Text 

+|uuid("")

+|helpstring("")

+|helpcontext("")

+|licensed

+|version("")

+|control

+|hidden

+|appobject

+			))

+		    (object Attribute

+			tool       	"VC++"

+			name       	"IdlCoClassInterfaceAttributes"

+			value      	(value Text 

+|default

+|source

+			))

+		    (object Attribute

+			tool       	"VC++"

+			name       	"IdlParameterAttributes"

+			value      	(value Text 

+|in

+|out

+|retval

+			))

+		    (object Attribute

+			tool       	"VC++"

+			name       	"IdlMethodAttributes"

+			value      	(value Text 

+|id(1)

+|helpstring("")

+|call_as("")

+|callback

+|helpcontext("")

+|hidden

+|local

+|restricted

+|source

+|vararg

+			))

+		    (object Attribute

+			tool       	"VC++"

+			name       	"IdlPropertyAttributes"

+			value      	(value Text 

+|id()

+|helpstring("")

+|call_as("")

+|helpcontext("")

+|hidden

+|local

+|restricted

+|source

+|vararg

+|bindable

+|defaultbind

+|defaultcallelem

+|displaybind

+|immediatebind

+|nonbrowseable

+|requestedit

+			))

+		    (object Attribute

+			tool       	"VC++"

+			name       	"RvcPtyVersion"

+			value      	"1.4")

+		    (object Attribute

+			tool       	"VC++"

+			name       	"ModelIDStyle"

+			value      	2)

+		    (object Attribute

+			tool       	"VC++"

+			name       	"DocStyle"

+			value      	1)

+		    (object Attribute

+			tool       	"VC++"

+			name       	"GenerateIncludes"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"VC++"

+			name       	"ApplyPattern"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"VC++"

+			name       	"CreateBackupFiles"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"VC++"

+			name       	"SupportCodeName"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"VC++"

+			name       	"DocRevEngineer"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"VC++"

+			name       	"CreateOverviewDiagrams"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"VC++"

+			name       	"UpdateModelIDsInCode"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"VC++"

+			name       	"AttributeTypes"

+			value      	(value Text 

+|attr1=bool

+|attr2=short

+|attr3=int

+|attr4=long

+|attr5=char

+|attr6=float

+|attr7=double

+|attr8=void

+|attr9=clock_t

+|attr10=_complex

+|attr11=_dev_t

+|attr12=div_t

+|attr13=_exception

+|attr14=FILE

+|attr15=_finddata_t

+|attr16=_FPIEEE_RECORD

+|attr17=fpos_t

+|attr18=_HEAPINFO

+|attr19=jmp_buf

+|attr20=lconv

+|attr21=ldiv_t

+|attr22=_off_t

+|attr23=_onexit_t

+|attr24=_PNH

+|attr25=ptrdiff_t

+|attr26=sig_atomic_t

+|attr27=size_t

+|attr28=_stat

+|attr29=time_t

+|attr30=_timeb

+|attr31=tm

+|attr32=_utimbuf

+|attr33=va_list

+|attr34=wchar_t

+|attr35=wctrans_t

+|attr36=wctype_t

+|attr37=_wfinddata_t

+|attr38=_wfinddatai64_t

+|attr39=wint_t

+|attr40=ABORTPROC

+|attr41=ACMDRIVERENUMCB

+|attr42=ACMDRIVERPROC

+|attr43=ACMFILTERCHOOSEHOOKPROC

+|attr44=ACMFILTERENUMCB

+|attr45=ACMFILTERTAGENUMCB

+|attr46=ACMFORMATCHOOSEHOOKPROC

+|attr47=ACMFORMATENUMCB

+|attr48=ACMFORMATTAGENUMCB

+|attr49=APPLET_PROC

+|attr50=ATOM

+|attr51=BOOL

+|attr52=BOOLEAN

+|attr53=BYTE

+|attr54=CALINFO_ENUMPROC

+|attr55=CALLBACK

+|attr56=CHAR

+|attr57=COLORREF

+|attr58=CONST

+|attr59=CRITICAL_SECTION

+|attr60=CTRYID

+|attr61=DATEFMT_ENUMPROC

+|attr62=DESKTOPENUMPROC

+|attr63=DLGPROC

+|attr64=DRAWSTATEPROC

+|attr65=DWORD

+|attr66=EDITWORDBREAKPROC

+|attr67=ENHMFENUMPROC

+|attr68=ENUMRESLANGPROC

+|attr69=ENUMRESNAMEPROC

+|attr70=ENUMRESTYPEPROC

+|attr71=FARPROC

+|attr72=FILE_SEGMENT_ELEMENT

+|attr73=FLOAT

+|attr74=FONTENUMPROC

+|attr75=GOBJENUMPROC

+|attr76=GRAYSTRINGPROC

+|attr77=HACCEL

+|attr78=HANDLE

+|attr79=HBITMAP

+|attr80=HBRUSH

+|attr81=HCOLORSPACE

+|attr82=HCONV

+|attr83=HCONVLIST

+|attr84=HCURSOR

+|attr85=HDC

+|attr86=HDDEDATA

+|attr87=HDESK

+|attr88=HDROP

+|attr89=HDWP

+|attr90=HENHMETAFILE

+|attr91=HFILE

+|attr92=HFONT

+|attr93=HGDIOBJ

+|attr94=HGLOBAL

+|attr95=HHOOK

+|attr96=HICON

+|attr97=HIMAGELIST

+|attr98=HIMC

+|attr99=HINSTANCE

+|attr100=HKEY

+|attr101=HKL

+|attr102=HLOCAL

+|attr103=HMENU

+|attr104=HMETAFILE

+|attr105=HMODULE

+|attr106=HMONITOR

+|attr107=HOOKPROC

+|attr108=HPALETTE

+|attr109=HPEN

+|attr110=HRGN

+|attr111=HRSRC

+|attr112=HSZ

+|attr113=HTREEITEM

+|attr114=HWINSTA

+|attr115=HWND

+|attr116=INT

+|attr117=IPADDR

+|attr118=LANGID

+|attr119=LCID

+|attr120=LCSCSTYPE

+|attr121=LCSGAMUTMATCH

+|attr122=LCTYPE

+|attr123=LINEDDAPROC

+|attr124=LOCALE_ENUMPROC

+|attr125=LONG

+|attr126=LONGLONG

+|attr127=LPARAM

+|attr128=LPBOOL

+|attr129=LPBYTE

+|attr130=LPCCHOOKPROC

+|attr131=LPCFHOOKPROC

+|attr132=LPCOLORREF

+|attr133=LPCRITICAL_SECTION

+|attr134=LPCSTR

+|attr135=LPCTSTR

+|attr136=LPCVOID

+|attr137=LPCWSTR

+|attr138=LPDWORD

+|attr139=LPFIBER_START_ROUTINE

+|attr140=LPFRHOOKPROC

+|attr141=LPHANDLE

+|attr142=LPHANDLER_FUNCTION

+|attr143=LPINT

+|attr144=LPLONG

+|attr145=LPOFNHOOKPROC

+|attr146=LPPAGEPAINTHOOK

+|attr147=LPPAGESETUPHOOK

+|attr148=LPPRINTHOOKPROC

+|attr149=LPPROGRESS_ROUTINE

+|attr150=LPSETUPHOOKPROC

+|attr151=LPSTR

+|attr152=LPSTREAM

+|attr153=LPTHREAD_START_ROUTINE

+|attr154=LPTSTR

+|attr155=LPVOID

+|attr156=LPWORD

+|attr157=LPWSTR

+|attr158=LRESULT

+|attr159=LUID

+|attr160=PBOOL

+|attr161=PBOOLEAN

+|attr162=PBYTE

+|attr163=PCHAR

+|attr164=PCRITICAL_SECTION

+|attr165=PCSTR

+|attr166=PCTSTR

+|attr167=PCWCH

+|attr168=PCWSTR

+|attr169=PDWORD

+|attr170=PFLOAT

+|attr171=PFNCALLBACK

+|attr172=PHANDLE

+|attr173=PHANDLER_ROUTINE

+|attr174=PHKEY

+|attr175=PINT

+|attr176=PLCID

+|attr177=PLONG

+|attr178=PLUID

+|attr179=PROPENUMPROC

+|attr180=PROPENUMPROCEX

+|attr181=PSHORT

+|attr182=PSTR

+|attr183=PTBYTE

+|attr184=PTCHAR

+|attr185=PTIMERAPCROUTINE

+|attr186=PTSTR

+|attr187=PUCHAR

+|attr188=PUINT

+|attr189=PULONG

+|attr190=PUSHORT

+|attr191=PVOID

+|attr192=PWCHAR

+|attr193=PWORD

+|attr194=PWSTR

+|attr195=REGISTERWORDENUMPROC

+|attr196=REGSAM

+|attr197=SC_HANDLE

+|attr198=SC_LOCK

+|attr199=SENDASYNCPROC

+|attr200=SERVICE_STATUS_HANDLE

+|attr201=SHORT

+|attr202=TBYTE

+|attr203=TCHAR

+|attr204=TIMEFMT_ENUMPROC

+|attr205=TIMERPROC

+|attr206=UCHAR

+|attr207=UINT

+|attr208=ULONG

+|attr209=ULONGLONG

+|attr210=UNSIGNED

+|attr211=USHORT

+|attr212=VOID

+|attr213=WCHAR

+|attr214=WINAPI

+|attr215=WINSTAENUMPROC

+|attr216=WNDENUMPROC

+|attr217=WNDPROC

+|attr218=WORD

+|attr219=WPARAM

+|attr220=YIELDPROC

+|attr221=CPoint

+|attr222=CRect

+|attr223=CSize

+|attr224=CString

+|attr225=CTime

+|attr226=CTimeSpan

+|attr227=CCreateContext

+|attr228=CMemoryState

+|attr229=COleSafeArray

+|attr230=CPrintInfo

+|attr231=HRESULT

+			))

+		    (object Attribute

+			tool       	"VC++"

+			name       	"Containers"

+			value      	(value Text 

+|cont1=CArray<$TYPE, $TYPE&>

+|cont2=CByteArray

+|cont3=CDWordArray

+|cont4=CObArray

+|cont5=CPtrArray

+|cont6=CStringArray

+|cont7=CUIntArray

+|cont8=CWordArray

+|cont9=CList<$TYPE, $TYPE&>

+|cont10=CPtrList

+|cont11=CObList

+|cont12=CStringList

+|cont13=CMapWordToPtr

+|cont14=CMapPtrToWord

+|cont15=CMapPtrToPtr

+|cont16=CMapWordToOb

+|cont17=CMapStringToPtr

+|cont18=CMapStringToOb

+|cont19=CMapStringToString

+|cont20=CTypedPtrArray<CPtrArray, $TYPE*>

+|cont21=CTypedPtrArray<CObArray, $TYPE*>

+|cont22=CTypedPtrList<CObList, $TYPE*>

+|cont23=CTypedPtrList<CPtrList, $TYPE*>

+|cont24=CComObject<$TYPE>

+|cont25=CComPtr<$TYPE>

+|cont26=CComQIPtr<$TYPE>

+|cont27=CComQIPtr<$TYPE, IID*>

+			))

+		    (object Attribute

+			tool       	"VC++"

+			name       	"ClassMethods"

+			value      	(value Text 

+|*_body=// ToDo: Add your specialized code here and/or call the base class

+|cm1=$NAME()

+|cm2=$NAME(orig:const $NAME&)

+|cm3=<<virtual>> ~$NAME()

+|cm4=operator=(rhs:$NAME&):$NAME&

+|cm4_body=// ToDo: Add your specialized code here and/or call the base class||return rhs;

+|cm5=<<const>> operator==(rhs:const $NAME&):bool

+|cm5_body=// ToDo: Add your specialized code here and/or call the base class||return false;

+|cm6=<<const>> operator!=(rhs:$NAME&):bool

+|cm6_body=// ToDo: Add your specialized code here and/or call the base class||return false;

+|cm7=<<const>> operator<(rhs:$NAME&):bool

+|cm7_body=// ToDo: Add your specialized code here and/or call the base class||return false;

+|cm8=<<const>> operator>(rhs:$NAME&):bool

+|cm8_body=// ToDo: Add your specialized code here and/or call the base class||return false;

+|cm9=<<const>> operator<=(rhs:$NAME&):bool

+|cm9_body=// ToDo: Add your specialized code here and/or call the base class||return false;

+|cm10=<<const>> operator>=(rhs:$NAME&):bool

+|cm10_body=// ToDo: Add your specialized code here and/or call the base class||return false;

+|cm11=<<friend>> operator>>(i:istream&, rhs:$NAME&):istream&

+|cm11_body=// ToDo: Add your specialized code here and/or call the base class||return i;

+|cm12=<<friend>> operator<<(o:ostream&, rhs:const $NAME&):ostream&

+|cm12_body=// ToDo: Add your specialized code here and/or call the base class||return o;

+			))

+		    (object Attribute

+			tool       	"VC++"

+			name       	"Accessors"

+			value      	(value Text 

+|agf=<<const>> get_$BASICNAME():const $TYPE

+|agf_body=return $NAME;

+|asf=set_$BASICNAME(value:$TYPE):void

+|asf_body=$NAME = value;|return;

+|agv=<<const>> get_$BASICNAME():const $TYPE&

+|agv_body=return $NAME;

+|asv=set_$BASICNAME(value:$TYPE&):void

+|asv_body=$NAME = value;|return;

+|agp=<<const>> get_$BASICNAME():const $TYPE

+|agp_body=return $NAME;

+|asp=set_$BASICNAME(value:$TYPE):void

+|asp_body=$NAME = value;|return;

+|agr=<<const>> get_$BASICNAME():const $TYPE

+|agr_body=return $NAME;

+|asr=set_$BASICNAME(value:$TYPE):void

+|asr_body=$NAME = value;|return;

+|aga=<<const>> get_$BASICNAME(index:int):const $TYPE

+|aga_body=return $NAME[index];

+|asa=set_$BASICNAME(index:int, value:$TYPE):void

+|asa_body=$NAME[index] = value;|return;

+			))

+		    (object Attribute

+			tool       	"VC++"

+			name       	"Conditionals"

+			value      	(value Text 

+|*_decl=#ifdef _DEBUG

+|*_base=CObject

+|cond1=<<virtual, const>> AssertValid():void

+|cond1_body=$SUPERNAME::AssertValid();

+|cond2=<<virtual, const>> Dump(dc:CDumpContext&):void

+|cond2_body=$SUPERNAME::Dump(dc);

+			))

+		    (object Attribute

+			tool       	"VC++"

+			name       	"Patterns"

+			value      	(value Text 

+|patrn1=cm1,cm3,cond1,cond2

+|Patrn1_name=Default

+			))

+		    (object Attribute

+			tool       	"VC++"

+			name       	"AtlClassPrefix"

+			value      	"C")

+		    (object Attribute

+			tool       	"VC++"

+			name       	"AtlInterfacePrefix"

+			value      	"I")

+		    (object Attribute

+			tool       	"VC++"

+			name       	"AtlTypeDescription"

+			value      	"Class")

+		    (object Attribute

+			tool       	"VC++"

+			name       	"DefaultLogicalPackage"

+			value      	"$language Reverse Engineered/$component")

+		    (object Attribute

+			tool       	"VC++"

+			name       	"DefaultComponentPackage"

+			value      	"")))

+	    (object Attribute

+		tool       	"VC++"

+		name       	"default__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"VC++"

+			name       	"Generate"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"VC++"

+			name       	"HeaderFileName"

+			value      	"")

+		    (object Attribute

+			tool       	"VC++"

+			name       	"CodeFileName"

+			value      	"")))

+	    (object Attribute

+		tool       	"VC++"

+		name       	"default__Module-Spec"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"VC++"

+			name       	"InternalMap"

+			value      	(value Text 

+|*:AUTO:AUTO

+|

+			))

+		    (object Attribute

+			tool       	"VC++"

+			name       	"ExportMap"

+			value      	(value Text 

+|*:AUTO:AUTO

+|

+			))

+		    (object Attribute

+			tool       	"VC++"

+			name       	"InitialSourceIncludes"

+			value      	(value Text 

+|"stdafx.h"

+			))

+		    (object Attribute

+			tool       	"VC++"

+			name       	"InitialHeaderIncludes"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"VC++"

+			name       	"Copyright"

+			value      	(value Text "Copyright (C) 1991 - 1999 Rational Software Corporation"))

+		    (object Attribute

+			tool       	"VC++"

+			name       	"KindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"VC++"

+				name       	"(none)"

+				value      	300)

+			    (object Attribute

+				tool       	"VC++"

+				name       	"DLL"

+				value      	301)

+			    (object Attribute

+				tool       	"VC++"

+				name       	"EXE"

+				value      	302)

+			    (object Attribute

+				tool       	"VC++"

+				name       	"MIDL"

+				value      	303)))

+		    (object Attribute

+			tool       	"VC++"

+			name       	"Kind"

+			value      	("KindSet" 300))

+		    (object Attribute

+			tool       	"VC++"

+			name       	"BodyExtensions"

+			value      	(value Text 

+|.cpp

+|.cxx

+|.inl

+			))

+		    (object Attribute

+			tool       	"VC++"

+			name       	"HeaderExtensions"

+			value      	(value Text 

+|.h

+|.hpp

+|.hxx

+|inl

+			))

+		    (object Attribute

+			tool       	"VC++"

+			name       	"ProjectFolders"

+			value      	(value Text 

+|Source Files

+|Header Files

+			))

+		    (object Attribute

+			tool       	"VC++"

+			name       	"UsePathMap"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"VC++"

+		name       	"default__Role"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"VC++"

+			name       	"Const"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"VC++"

+			name       	"Generate"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"VC++"

+			name       	"InitialValue"

+			value      	"")))

+	    (object Attribute

+		tool       	"VC++"

+		name       	"default__Uses"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"VC++"

+			name       	"Generate"

+			value      	TRUE)))

+	    (object Attribute

+		tool       	"VC++"

+		name       	"default__Category"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"VC++"

+			name       	"IsDirectory"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"VC++"

+			name       	"Directory"

+			value      	"")))

+	    (object Attribute

+		tool       	"VC++"

+		name       	"default__Attribute"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"VC++"

+			name       	"Generate"

+			value      	TRUE)))

+	    (object Attribute

+		tool       	"VC++"

+		name       	"default__Operation"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"VC++"

+			name       	"Generate"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"VC++"

+			name       	"Inline"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"VC++"

+			name       	"DefaultBody"

+			value      	(value Text ""))))

+	    (object Attribute

+		tool       	"VC++"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"Visual Basic"

+		name       	"propertyId"

+		value      	"783606378")

+	    (object Attribute

+		tool       	"Visual Basic"

+		name       	"default__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"UpdateCode"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"UpdateModel"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"InstancingSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Visual Basic"

+				name       	"Private"

+				value      	221)

+			    (object Attribute

+				tool       	"Visual Basic"

+				name       	"PublicNotCreatable"

+				value      	213)

+			    (object Attribute

+				tool       	"Visual Basic"

+				name       	"SingleUse"

+				value      	214)

+			    (object Attribute

+				tool       	"Visual Basic"

+				name       	"GlobalSingleUse"

+				value      	215)

+			    (object Attribute

+				tool       	"Visual Basic"

+				name       	"MultiUse"

+				value      	219)

+			    (object Attribute

+				tool       	"Visual Basic"

+				name       	"GlobalMultiUse"

+				value      	220)))

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"BaseSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Visual Basic"

+				name       	"(none)"

+				value      	222)

+			    (object Attribute

+				tool       	"Visual Basic"

+				name       	"0"

+				value      	223)

+			    (object Attribute

+				tool       	"Visual Basic"

+				name       	"1"

+				value      	224)))

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"OptionBase"

+			value      	("BaseSet" 222))

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"OptionExplicit"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"OptionCompare"

+			value      	("CompareSet" 202))

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"Instancing"

+			value      	("InstancingSet" 219))

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"CompareSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Visual Basic"

+				name       	"(none)"

+				value      	202)

+			    (object Attribute

+				tool       	"Visual Basic"

+				name       	"Binary"

+				value      	203)

+			    (object Attribute

+				tool       	"Visual Basic"

+				name       	"Text"

+				value      	204)))))

+	    (object Attribute

+		tool       	"Visual Basic"

+		name       	"default__Operation"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"LibraryName"

+			value      	"")

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"AliasName"

+			value      	"")

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"IsStatic"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"ProcedureID"

+			value      	"")

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"ReplaceExistingBody"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"DefaultBody"

+			value      	(value Text ""))))

+	    (object Attribute

+		tool       	"Visual Basic"

+		name       	"default__Attribute"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"New"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"WithEvents"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"ProcedureID"

+			value      	"")

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"PropertyName"

+			value      	"")

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"Subscript"

+			value      	"")))

+	    (object Attribute

+		tool       	"Visual Basic"

+		name       	"default__Role"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"UpdateCode"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"New"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"WithEvents"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"FullName"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"ProcedureID"

+			value      	"")

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"PropertyName"

+			value      	"")

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"Subscript"

+			value      	"")))

+	    (object Attribute

+		tool       	"Visual Basic"

+		name       	"default__Inherit"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"ImplementsDelegation"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"FullName"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Visual Basic"

+		name       	"default__Param"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"ByVal"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"ByRef"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"Optional"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"ParamArray"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Visual Basic"

+		name       	"default__Module-Spec"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"ProjectFile"

+			value      	"")

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"UpdateCode"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"UpdateModel"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"ImportReferences"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"QuickImport"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"ImportBinary"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Visual Basic"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"VisualStudio"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"Web Modeler"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"XML_DTD"

+		name       	"propertyId"

+		value      	"809135966")

+	    (object Attribute

+		tool       	"XML_DTD"

+		name       	"default__Project"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"CreateMissingDirectories"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"Editor"

+			value      	("EditorType" 100))

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"StopOnError"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"EditorType"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"XML_DTD"

+				name       	"BuiltIn"

+				value      	100)

+			    (object Attribute

+				tool       	"XML_DTD"

+				name       	"WindowsShell"

+				value      	101)))))

+	    (object Attribute

+		tool       	"XML_DTD"

+		name       	"default__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"Entity_SystemID"

+			value      	"")

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"Entity_PublicID"

+			value      	"")

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"NotationValue"

+			value      	"")

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"InternalValue"

+			value      	"")

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"ParameterEntity"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"ExternalEntity"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"Notation_SystemID"

+			value      	"")

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"Notation_PublicID"

+			value      	"")))

+	    (object Attribute

+		tool       	"XML_DTD"

+		name       	"default__Attribute"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"DefaultDeclType"

+			value      	"")))

+	    (object Attribute

+		tool       	"XML_DTD"

+		name       	"default__Module-Spec"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"Assign All"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"ComponentPath"

+			value      	"")))

+	    (object Attribute

+		tool       	"XML_DTD"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"Ecore"

+		name       	"propertyId"

+		value      	"809135969")

+	    (object Attribute

+		tool       	"Ecore"

+		name       	"default__Category"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"packageName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"nsPrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"nsURI"

+			value      	"")

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"basePackage"

+			value      	"")

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"prefix"

+			value      	"")))

+	    (object Attribute

+		tool       	"Ecore"

+		name       	"default__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"classifierName"

+			value      	"")))

+	    (object Attribute

+		tool       	"Ecore"

+		name       	"default__Operation"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"operationName"

+			value      	"")))

+	    (object Attribute

+		tool       	"Ecore"

+		name       	"default__Attribute"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"attributeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"isTransient"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"isVolatile"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"isChangeable"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"isUnsettable"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"isUnique"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"isID"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Ecore"

+		name       	"default__Role"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"referenceName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"isTransient"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"isVolatile"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"isChangeable"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"isUnsettable"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"isResolveProxies"

+			value      	TRUE)))

+	    (object Attribute

+		tool       	"CRMTooling"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"Version Control"

+		name       	"HiddenTool"

+		value      	FALSE))

+	quid       	"3FA0657E0354"))

diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/model/dbdefinition.ecore b/plugins/org.eclipse.datatools.modelbase.dbdefinition/model/dbdefinition.ecore
new file mode 100644
index 0000000..f3f9187
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/model/dbdefinition.ecore
@@ -0,0 +1,489 @@
+<?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="dbdefinition"
+    nsURI="http:///org/eclipse/datatools/modelbase/dbdefinition/dbdefinition.ecore"
+    nsPrefix="DBDefinition">
+  <eClassifiers xsi:type="ecore:EClass" name="DatabaseVendorDefinition">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="predefinedDataTypeDefinitions"
+        upperBound="-1" eType="#//PredefinedDataTypeDefinition" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="tableSpaceDefinition" lowerBound="1"
+        eType="#//TableSpaceDefinition" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="storedProcedureDefinition"
+        lowerBound="1" eType="#//StoredProcedureDefinition" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="triggerDefinition" lowerBound="1"
+        eType="#//TriggerDefinition" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="columnDefinition" lowerBound="1"
+        eType="#//ColumnDefinition" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="constraintDefinition" lowerBound="1"
+        eType="#//ConstraintDefinition" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="extendedDefinitions" upperBound="-1"
+        eType="#//ExtendedDefinition" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="indexDefinition" lowerBound="1"
+        eType="#//IndexDefinition" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="tableDefinition" lowerBound="1"
+        eType="#//TableDefinition" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="sequenceDefinition" lowerBound="1"
+        eType="#//SequenceDefinition" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="udtDefinition" lowerBound="1"
+        eType="#//UserDefinedTypeDefinition" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="queryDefinition" lowerBound="1"
+        eType="#//QueryDefinition" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="SQLSyntaxDefinition" lowerBound="1"
+        eType="#//SQLSyntaxDefinition" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="nicknameDefinition" lowerBound="1"
+        eType="#//NicknameDefinition" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="schemaDefinition" lowerBound="1"
+        eType="#//SchemaDefinition" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="viewDefinition" lowerBound="1"
+        eType="#//ViewDefinition" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="debuggerDefinition" lowerBound="1"
+        eType="#//DebuggerDefinition" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="privilegedElementDefinitions"
+        upperBound="-1" eType="#//PrivilegedElementDefinition" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="constructedDataTypeDefinition"
+        lowerBound="1" eType="#//ConstructedDataTypeDefinition" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="vendor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="version" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="constraintsSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+        defaultValueLiteral="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="maximumIdentifierLength"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="triggerSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+        defaultValueLiteral="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="snapshotViewSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="joinSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="viewTriggerSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="tablespacesSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+        defaultValueLiteral="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="maximumCommentLength" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="sequenceSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="mQTSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="schemaSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+        defaultValueLiteral="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="aliasSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="synonymSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="userDefinedTypeSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="domainSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="SQLStatementSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="nicknameSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="quotedDMLSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+        defaultValueLiteral="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="quotedDDLSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+        defaultValueLiteral="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="xmlSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="mQTIndexSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="eventSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="sqlUDFSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+        defaultValueLiteral="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="storedProcedureSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="packageSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="authorizationIdentifierSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="roleSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="groupSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="userSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="roleAuthorizationSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="constructedDataTypeSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="uDFSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+        defaultValueLiteral="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="PredefinedDataTypeDefinition">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="leadingFieldQualifierDefinition"
+        upperBound="-1" eType="#//FieldQualifierDefinition" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="trailingFieldQualifierDefinition"
+        upperBound="-1" eType="#//FieldQualifierDefinition" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="defaultTrailingFieldQualifierDefinition"
+        eType="#//FieldQualifierDefinition"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="defaultLeadingFieldQualifierDefinition"
+        eType="#//FieldQualifierDefinition"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="lengthSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="scaleSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="precisionSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="keyConstraintSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="identitySupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="multipleColumnsSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="nullableSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+        defaultValueLiteral="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+        defaultValueLiteral="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="clusteringSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="fillFactorSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="bitDataSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="maximumValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELong"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="minimumValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELong"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="maximumLength" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="maximumPrecision" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="maximumScale" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="minimumScale" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultValueTypes" upperBound="-1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="primitiveType" eType="ecore:EEnum ../../org.eclipse.datatools.modelbase.sql/model/sqlmodel.ecore#//datatypes/PrimitiveType"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="jdbcEnumType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="characterSet" upperBound="-1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="encodingScheme" upperBound="-1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="characterSetSuffix" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+        defaultValueLiteral=""/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="encodingSchemeSuffix" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+        defaultValueLiteral=""/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="javaClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultLength" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultPrecision" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultScale" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="cutoffPrecision" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="lengthUnit" eType="#//LengthUnit"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="orderingSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+        defaultValueLiteral="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="groupingSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+        defaultValueLiteral="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="displayName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="displayNameSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="leadingFieldQualifierSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="trailingFieldQualifierSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="fieldQualifierSeparator"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="largeValueSpecifierSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="largeValueSpecifierName"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="largeValueSpecifierLength"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="lengthSemanticSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="lengthSemantic" upperBound="-1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="languageType" upperBound="-1"
+        eType="#//LanguageType"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="CheckOption">
+    <eLiterals name="NONE"/>
+    <eLiterals name="CASCADE" value="1"/>
+    <eLiterals name="LOCAL" value="2"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="LanguageType">
+    <eLiterals name="SQL"/>
+    <eLiterals name="JAVA" value="1"/>
+    <eLiterals name="C" value="2"/>
+    <eLiterals name="OLE" value="3"/>
+    <eLiterals name="ASSEMBLY" value="4"/>
+    <eLiterals name="COBOL" value="5"/>
+    <eLiterals name="PLI" value="6"/>
+    <eLiterals name="CPLUSPLUS" value="7"/>
+    <eLiterals name="CL" value="8"/>
+    <eLiterals name="COBOLLE" value="9"/>
+    <eLiterals name="FORTRAN" value="10"/>
+    <eLiterals name="REXX" value="11"/>
+    <eLiterals name="RPG" value="12"/>
+    <eLiterals name="RPGLE" value="13"/>
+    <eLiterals name="PLSQL" value="14"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="ParameterStyle">
+    <eLiterals name="DB2SQL"/>
+    <eLiterals name="GENERAL" value="1"/>
+    <eLiterals name="GENERAL_WITH_NULLS" value="2"/>
+    <eLiterals name="DB2GENRL" value="3"/>
+    <eLiterals name="DB2DARI" value="4"/>
+    <eLiterals name="JAVA" value="5"/>
+    <eLiterals name="SQL" value="6"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="ParentDeleteDRIRuleType">
+    <eLiterals name="NO_ACTION"/>
+    <eLiterals name="RESTRICT" value="1"/>
+    <eLiterals name="CASCADE" value="2"/>
+    <eLiterals name="SET_NULL" value="3"/>
+    <eLiterals name="SET_DEFAULT" value="4"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="ParentUpdateDRIRuleType">
+    <eLiterals name="NO_ACTION"/>
+    <eLiterals name="RESTRICT" value="1"/>
+    <eLiterals name="CASCADE" value="2"/>
+    <eLiterals name="SET_NULL" value="3"/>
+    <eLiterals name="SET_DEFAULT" value="4"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="ProcedureType">
+    <eLiterals name="PROCEDURE"/>
+    <eLiterals name="FUNCTION" value="1"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="TableSpaceType">
+    <eLiterals name="REGULAR"/>
+    <eLiterals name="LOB" value="1"/>
+    <eLiterals name="SYSTEM_TEMPORARY" value="2"/>
+    <eLiterals name="USER_TEMPORARY" value="3"/>
+    <eLiterals name="PERMANENT" value="4"/>
+    <eLiterals name="TEMPORARY" value="5"/>
+    <eLiterals name="LONG" value="6"/>
+    <eLiterals name="LARGE" value="7"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="TableSpaceDefinition">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="typeSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="extentSizeSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="prefetchSizeSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="managedBySupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="pageSizeSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="bufferPoolSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="containerMaximumSizeSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="containerInitialSizeSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="containerExtentSizeSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="tableSpaceType" upperBound="-1"
+        eType="#//TableSpaceType"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="maximumIdentifierLength"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="StoredProcedureDefinition">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="predefinedDataTypeDefinitions"
+        upperBound="-1" eType="#//PredefinedDataTypeDefinition" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="nullInputActionSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="packageGenerationSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="determininsticSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="returnedNullSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="returnedTypeDeclarationConstraintSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="parameterInitValueSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="parameterStyleSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="returnTypeSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="parameterDeclarationConstraintSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="maximumActionBodyLength"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="parameterStyle" upperBound="-1"
+        eType="#//ParameterStyle"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="languageType" upperBound="-1"
+        eType="#//LanguageType"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="functionLanguageType" upperBound="-1"
+        eType="#//LanguageType"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="procedureType" upperBound="-1"
+        eType="#//ProcedureType"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="maximumIdentifierLength"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="TriggerDefinition">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="maximumReferencePartLength"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="maximumActionBodyLength"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="typeSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="whenClauseSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+        defaultValueLiteral="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="granularitySupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="referencesClauseSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="perColumnUpdateTriggerSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="insteadOfTriggerSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="rowTriggerReferenceSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="tableTriggerReferenceSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="maximumIdentifierLength"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="ColumnDefinition">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="identityColumnDataTypeDefinitions"
+        lowerBound="1" upperBound="-1" eType="#//PredefinedDataTypeDefinition"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="identitySupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="computedSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+        defaultValueLiteral="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="identityStartValueSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="identityIncrementSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="identityMinimumSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="identityMaximumSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="identityCycleSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="maximumIdentifierLength"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="ConstraintDefinition">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="deferrableConstraintSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="informationalConstraintSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="clusteredPrimaryKeySupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="clusteredUniqueConstraintSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="primaryKeyNullable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="uniqueKeyNullable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="maximumCheckExpressionLength"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="parentUpdateDRIRuleType"
+        upperBound="-1" eType="#//ParentUpdateDRIRuleType"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="parentDeleteDRIRuleType"
+        upperBound="-1" eType="#//ParentDeleteDRIRuleType"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="checkOption" upperBound="-1"
+        eType="#//CheckOption"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="maximumPrimaryKeyIdentifierLength"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="maximumForeignKeyIdentifierLength"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="maximumCheckConstraintIdentifierLength"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="PercentFreeTerminology">
+    <eLiterals name="PERCENT_FREE"/>
+    <eLiterals name="FILL_FACTOR" value="1"/>
+    <eLiterals name="THRESHOLD" value="2"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="IndexDefinition">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="percentFreeTerminology"
+        eType="#//PercentFreeTerminology"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="percentFreeChangeable"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="clusteringSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="clusterChangeable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="fillFactorSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="includedColumnsSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="maximumIdentifierLength"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="ExtendedDefinition">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="TableDefinition">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="auditSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="dataCaptureSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="editProcSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="encodingSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="validProcSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="maximumIdentifierLength"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="SequenceDefinition">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="predefinedDataTypeDefinitions"
+        lowerBound="1" upperBound="-1" eType="#//PredefinedDataTypeDefinition"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="defaultDataTypeDefinition"
+        lowerBound="1" eType="#//PredefinedDataTypeDefinition"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="typeEnumerationSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="cacheSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="orderSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="noMaximumValueString" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="noMinimumValueString" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="noCacheString" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="cacheDefaultValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="UserDefinedTypeDefinition">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultValueSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="distinctTypeSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="structuredTypeSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="maximumIdentifierLength"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="QueryDefinition">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="identifierQuoteString"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" defaultValueLiteral="\&quot;"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="hostVariableMarker" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+        defaultValueLiteral=":"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="hostVariableMarkerSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="castExpressionSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultKeywordForInsertValueSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="extendedGroupingSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="tableAliasInDeleteSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="SQLSyntaxDefinition">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="keywords" upperBound="-1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="operators" upperBound="-1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="terminationCharacter" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+        defaultValueLiteral=";"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="LengthUnit">
+    <eLiterals name="DECIMAL"/>
+    <eLiterals name="BIT" value="1"/>
+    <eLiterals name="BYTE" value="2"/>
+    <eLiterals name="DOUBLE_BYTE" value="3"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="NicknameDefinition">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="constraintSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="indexSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="maximumIdentifierLength"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="SchemaDefinition">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="maximumIdentifierLength"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="ViewDefinition">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="maximumIdentifierLength"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="indexSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="checkOptionSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+        defaultValueLiteral="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="checkOptionLevelsSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="FieldQualifierDefinition">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="validTrailingFieldQualifierDefinitions"
+        upperBound="-1" eType="#//FieldQualifierDefinition"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EEnum ../../org.eclipse.datatools.modelbase.sql/model/sqlmodel.ecore#//datatypes/IntervalQualifierType"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="maximumPrecision" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultPrecision" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="precisionSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="maximumScale" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultScale" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="scaleSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="DebuggerDefinition">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="conditionSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="PrivilegedElementDefinition">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="privilegeDefinitions" upperBound="-1"
+        eType="#//PrivilegeDefinition" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="PrivilegeDefinition">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="actionElementDefinitions"
+        upperBound="-1" eType="#//PrivilegedElementDefinition"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="ConstructedDataTypeDefinition">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="arrayDatatypeSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="multisetDatatypeSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="rowDatatypeSupported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="referenceDatatypeSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="cursorDatatypeSupported"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+  </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/model/dbdefinition.genmodel b/plugins/org.eclipse.datatools.modelbase.dbdefinition/model/dbdefinition.genmodel
new file mode 100644
index 0000000..a8524d0
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/model/dbdefinition.genmodel
@@ -0,0 +1,356 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0"
+    xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+    xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.datatools.modelbase.dbdefinition/src"
+    editDirectory="/org.eclipse.datatools.modelbase.dbdefinition.edit/src" editorDirectory="/org.eclipse.datatools.modelbase.dbdefinition.editor/src"
+    modelPluginID="org.eclipse.datatools.modelbase.dbdefinition" runtimeJar="true"
+    modelName="Dbdefinition" editPluginClass="org.eclipse.datatools.modelbase.dbdefinition.provider.DbdefinitionEditPlugin"
+    editorPluginClass="org.eclipse.datatools.modelbase.dbdefinition.presentation.DbdefinitionEditorPlugin"
+    nonNLSMarkers="true" importerID="org.eclipse.emf.importer.rose" usedGenPackages="../../org.eclipse.datatools.modelbase.sql/model/sqlmodel.genmodel#//sqlmodel ../../org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore">
+  <foreignModel>DatabaseDefinitionModel.mdl</foreignModel>
+  <foreignModel>CDM_EXTRACT_PATH</foreignModel>
+  <foreignModel>../../</foreignModel>
+  <genPackages prefix="DatabaseDefinition" basePackage="org.eclipse.datatools.modelbase"
+      ecorePackage="dbdefinition.ecore#/">
+    <genEnums ecoreEnum="dbdefinition.ecore#//CheckOption">
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//CheckOption/NONE"/>
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//CheckOption/CASCADE"/>
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//CheckOption/LOCAL"/>
+    </genEnums>
+    <genEnums ecoreEnum="dbdefinition.ecore#//LanguageType">
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//LanguageType/SQL"/>
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//LanguageType/JAVA"/>
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//LanguageType/C"/>
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//LanguageType/OLE"/>
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//LanguageType/ASSEMBLY"/>
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//LanguageType/COBOL"/>
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//LanguageType/PLI"/>
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//LanguageType/CPLUSPLUS"/>
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//LanguageType/CL"/>
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//LanguageType/COBOLLE"/>
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//LanguageType/FORTRAN"/>
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//LanguageType/REXX"/>
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//LanguageType/RPG"/>
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//LanguageType/RPGLE"/>
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//LanguageType/PLSQL"/>
+    </genEnums>
+    <genEnums ecoreEnum="dbdefinition.ecore#//ParameterStyle">
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//ParameterStyle/DB2SQL"/>
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//ParameterStyle/GENERAL"/>
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//ParameterStyle/GENERAL_WITH_NULLS"/>
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//ParameterStyle/DB2GENRL"/>
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//ParameterStyle/DB2DARI"/>
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//ParameterStyle/JAVA"/>
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//ParameterStyle/SQL"/>
+    </genEnums>
+    <genEnums ecoreEnum="dbdefinition.ecore#//ParentDeleteDRIRuleType">
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//ParentDeleteDRIRuleType/NO_ACTION"/>
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//ParentDeleteDRIRuleType/RESTRICT"/>
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//ParentDeleteDRIRuleType/CASCADE"/>
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//ParentDeleteDRIRuleType/SET_NULL"/>
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//ParentDeleteDRIRuleType/SET_DEFAULT"/>
+    </genEnums>
+    <genEnums ecoreEnum="dbdefinition.ecore#//ParentUpdateDRIRuleType">
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//ParentUpdateDRIRuleType/NO_ACTION"/>
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//ParentUpdateDRIRuleType/RESTRICT"/>
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//ParentUpdateDRIRuleType/CASCADE"/>
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//ParentUpdateDRIRuleType/SET_NULL"/>
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//ParentUpdateDRIRuleType/SET_DEFAULT"/>
+    </genEnums>
+    <genEnums ecoreEnum="dbdefinition.ecore#//ProcedureType">
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//ProcedureType/PROCEDURE"/>
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//ProcedureType/FUNCTION"/>
+    </genEnums>
+    <genEnums ecoreEnum="dbdefinition.ecore#//TableSpaceType">
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//TableSpaceType/REGULAR"/>
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//TableSpaceType/LOB"/>
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//TableSpaceType/SYSTEM_TEMPORARY"/>
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//TableSpaceType/USER_TEMPORARY"/>
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//TableSpaceType/PERMANENT"/>
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//TableSpaceType/TEMPORARY"/>
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//TableSpaceType/LONG"/>
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//TableSpaceType/LARGE"/>
+    </genEnums>
+    <genEnums ecoreEnum="dbdefinition.ecore#//PercentFreeTerminology">
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//PercentFreeTerminology/PERCENT_FREE"/>
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//PercentFreeTerminology/FILL_FACTOR"/>
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//PercentFreeTerminology/THRESHOLD"/>
+    </genEnums>
+    <genEnums ecoreEnum="dbdefinition.ecore#//LengthUnit">
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//LengthUnit/DECIMAL"/>
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//LengthUnit/BIT"/>
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//LengthUnit/BYTE"/>
+      <genEnumLiterals ecoreEnumLiteral="dbdefinition.ecore#//LengthUnit/DOUBLE_BYTE"/>
+    </genEnums>
+    <genClasses ecoreClass="dbdefinition.ecore#//DatabaseVendorDefinition">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dbdefinition.ecore#//DatabaseVendorDefinition/predefinedDataTypeDefinitions"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dbdefinition.ecore#//DatabaseVendorDefinition/tableSpaceDefinition"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dbdefinition.ecore#//DatabaseVendorDefinition/storedProcedureDefinition"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dbdefinition.ecore#//DatabaseVendorDefinition/triggerDefinition"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dbdefinition.ecore#//DatabaseVendorDefinition/columnDefinition"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dbdefinition.ecore#//DatabaseVendorDefinition/constraintDefinition"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dbdefinition.ecore#//DatabaseVendorDefinition/extendedDefinitions"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dbdefinition.ecore#//DatabaseVendorDefinition/indexDefinition"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dbdefinition.ecore#//DatabaseVendorDefinition/tableDefinition"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dbdefinition.ecore#//DatabaseVendorDefinition/sequenceDefinition"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dbdefinition.ecore#//DatabaseVendorDefinition/udtDefinition"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dbdefinition.ecore#//DatabaseVendorDefinition/queryDefinition"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dbdefinition.ecore#//DatabaseVendorDefinition/SQLSyntaxDefinition"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dbdefinition.ecore#//DatabaseVendorDefinition/nicknameDefinition"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dbdefinition.ecore#//DatabaseVendorDefinition/schemaDefinition"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dbdefinition.ecore#//DatabaseVendorDefinition/viewDefinition"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dbdefinition.ecore#//DatabaseVendorDefinition/debuggerDefinition"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dbdefinition.ecore#//DatabaseVendorDefinition/privilegedElementDefinitions"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dbdefinition.ecore#//DatabaseVendorDefinition/constructedDataTypeDefinition"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//DatabaseVendorDefinition/vendor"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//DatabaseVendorDefinition/version"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//DatabaseVendorDefinition/constraintsSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//DatabaseVendorDefinition/maximumIdentifierLength"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//DatabaseVendorDefinition/triggerSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//DatabaseVendorDefinition/snapshotViewSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//DatabaseVendorDefinition/joinSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//DatabaseVendorDefinition/viewTriggerSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//DatabaseVendorDefinition/tablespacesSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//DatabaseVendorDefinition/maximumCommentLength"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//DatabaseVendorDefinition/sequenceSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//DatabaseVendorDefinition/mQTSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//DatabaseVendorDefinition/schemaSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//DatabaseVendorDefinition/aliasSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//DatabaseVendorDefinition/synonymSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//DatabaseVendorDefinition/userDefinedTypeSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//DatabaseVendorDefinition/domainSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//DatabaseVendorDefinition/SQLStatementSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//DatabaseVendorDefinition/nicknameSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//DatabaseVendorDefinition/quotedDMLSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//DatabaseVendorDefinition/quotedDDLSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//DatabaseVendorDefinition/xmlSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//DatabaseVendorDefinition/mQTIndexSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//DatabaseVendorDefinition/eventSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//DatabaseVendorDefinition/sqlUDFSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//DatabaseVendorDefinition/storedProcedureSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//DatabaseVendorDefinition/packageSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//DatabaseVendorDefinition/authorizationIdentifierSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//DatabaseVendorDefinition/roleSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//DatabaseVendorDefinition/groupSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//DatabaseVendorDefinition/userSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//DatabaseVendorDefinition/roleAuthorizationSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//DatabaseVendorDefinition/constructedDataTypeSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//DatabaseVendorDefinition/uDFSupported"/>
+    </genClasses>
+    <genClasses ecoreClass="dbdefinition.ecore#//PredefinedDataTypeDefinition">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dbdefinition.ecore#//PredefinedDataTypeDefinition/leadingFieldQualifierDefinition"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dbdefinition.ecore#//PredefinedDataTypeDefinition/trailingFieldQualifierDefinition"/>
+      <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference dbdefinition.ecore#//PredefinedDataTypeDefinition/defaultTrailingFieldQualifierDefinition"/>
+      <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference dbdefinition.ecore#//PredefinedDataTypeDefinition/defaultLeadingFieldQualifierDefinition"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//PredefinedDataTypeDefinition/lengthSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//PredefinedDataTypeDefinition/scaleSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//PredefinedDataTypeDefinition/precisionSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//PredefinedDataTypeDefinition/keyConstraintSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//PredefinedDataTypeDefinition/identitySupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//PredefinedDataTypeDefinition/multipleColumnsSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//PredefinedDataTypeDefinition/nullableSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//PredefinedDataTypeDefinition/defaultSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//PredefinedDataTypeDefinition/clusteringSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//PredefinedDataTypeDefinition/fillFactorSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//PredefinedDataTypeDefinition/bitDataSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//PredefinedDataTypeDefinition/maximumValue"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//PredefinedDataTypeDefinition/minimumValue"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//PredefinedDataTypeDefinition/maximumLength"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//PredefinedDataTypeDefinition/maximumPrecision"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//PredefinedDataTypeDefinition/maximumScale"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//PredefinedDataTypeDefinition/minimumScale"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//PredefinedDataTypeDefinition/defaultValueTypes"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//PredefinedDataTypeDefinition/primitiveType"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//PredefinedDataTypeDefinition/name"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//PredefinedDataTypeDefinition/jdbcEnumType"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//PredefinedDataTypeDefinition/characterSet"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//PredefinedDataTypeDefinition/encodingScheme"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//PredefinedDataTypeDefinition/characterSetSuffix"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//PredefinedDataTypeDefinition/encodingSchemeSuffix"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//PredefinedDataTypeDefinition/javaClassName"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//PredefinedDataTypeDefinition/defaultLength"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//PredefinedDataTypeDefinition/defaultPrecision"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//PredefinedDataTypeDefinition/defaultScale"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//PredefinedDataTypeDefinition/cutoffPrecision"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//PredefinedDataTypeDefinition/lengthUnit"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//PredefinedDataTypeDefinition/orderingSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//PredefinedDataTypeDefinition/groupingSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//PredefinedDataTypeDefinition/displayName"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//PredefinedDataTypeDefinition/displayNameSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//PredefinedDataTypeDefinition/leadingFieldQualifierSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//PredefinedDataTypeDefinition/trailingFieldQualifierSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//PredefinedDataTypeDefinition/fieldQualifierSeparator"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//PredefinedDataTypeDefinition/largeValueSpecifierSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//PredefinedDataTypeDefinition/largeValueSpecifierName"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//PredefinedDataTypeDefinition/largeValueSpecifierLength"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//PredefinedDataTypeDefinition/lengthSemanticSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//PredefinedDataTypeDefinition/lengthSemantic"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//PredefinedDataTypeDefinition/languageType"/>
+    </genClasses>
+    <genClasses ecoreClass="dbdefinition.ecore#//TableSpaceDefinition">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//TableSpaceDefinition/typeSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//TableSpaceDefinition/extentSizeSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//TableSpaceDefinition/prefetchSizeSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//TableSpaceDefinition/managedBySupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//TableSpaceDefinition/pageSizeSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//TableSpaceDefinition/bufferPoolSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//TableSpaceDefinition/defaultSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//TableSpaceDefinition/containerMaximumSizeSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//TableSpaceDefinition/containerInitialSizeSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//TableSpaceDefinition/containerExtentSizeSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//TableSpaceDefinition/tableSpaceType"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//TableSpaceDefinition/maximumIdentifierLength"/>
+    </genClasses>
+    <genClasses ecoreClass="dbdefinition.ecore#//StoredProcedureDefinition">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dbdefinition.ecore#//StoredProcedureDefinition/predefinedDataTypeDefinitions"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//StoredProcedureDefinition/nullInputActionSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//StoredProcedureDefinition/packageGenerationSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//StoredProcedureDefinition/determininsticSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//StoredProcedureDefinition/returnedNullSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//StoredProcedureDefinition/returnedTypeDeclarationConstraintSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//StoredProcedureDefinition/parameterInitValueSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//StoredProcedureDefinition/parameterStyleSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//StoredProcedureDefinition/returnTypeSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//StoredProcedureDefinition/parameterDeclarationConstraintSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//StoredProcedureDefinition/maximumActionBodyLength"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//StoredProcedureDefinition/parameterStyle"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//StoredProcedureDefinition/languageType"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//StoredProcedureDefinition/functionLanguageType"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//StoredProcedureDefinition/procedureType"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//StoredProcedureDefinition/maximumIdentifierLength"/>
+    </genClasses>
+    <genClasses ecoreClass="dbdefinition.ecore#//TriggerDefinition">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//TriggerDefinition/maximumReferencePartLength"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//TriggerDefinition/maximumActionBodyLength"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//TriggerDefinition/typeSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//TriggerDefinition/whenClauseSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//TriggerDefinition/granularitySupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//TriggerDefinition/referencesClauseSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//TriggerDefinition/perColumnUpdateTriggerSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//TriggerDefinition/insteadOfTriggerSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//TriggerDefinition/rowTriggerReferenceSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//TriggerDefinition/tableTriggerReferenceSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//TriggerDefinition/maximumIdentifierLength"/>
+    </genClasses>
+    <genClasses ecoreClass="dbdefinition.ecore#//ColumnDefinition">
+      <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference dbdefinition.ecore#//ColumnDefinition/identityColumnDataTypeDefinitions"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//ColumnDefinition/identitySupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//ColumnDefinition/computedSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//ColumnDefinition/identityStartValueSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//ColumnDefinition/identityIncrementSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//ColumnDefinition/identityMinimumSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//ColumnDefinition/identityMaximumSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//ColumnDefinition/identityCycleSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//ColumnDefinition/maximumIdentifierLength"/>
+    </genClasses>
+    <genClasses ecoreClass="dbdefinition.ecore#//ConstraintDefinition">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//ConstraintDefinition/deferrableConstraintSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//ConstraintDefinition/informationalConstraintSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//ConstraintDefinition/clusteredPrimaryKeySupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//ConstraintDefinition/clusteredUniqueConstraintSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//ConstraintDefinition/primaryKeyNullable"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//ConstraintDefinition/uniqueKeyNullable"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//ConstraintDefinition/maximumCheckExpressionLength"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//ConstraintDefinition/parentUpdateDRIRuleType"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//ConstraintDefinition/parentDeleteDRIRuleType"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//ConstraintDefinition/checkOption"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//ConstraintDefinition/maximumPrimaryKeyIdentifierLength"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//ConstraintDefinition/maximumForeignKeyIdentifierLength"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//ConstraintDefinition/maximumCheckConstraintIdentifierLength"/>
+    </genClasses>
+    <genClasses ecoreClass="dbdefinition.ecore#//IndexDefinition">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//IndexDefinition/percentFreeTerminology"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//IndexDefinition/percentFreeChangeable"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//IndexDefinition/clusteringSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//IndexDefinition/clusterChangeable"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//IndexDefinition/fillFactorSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//IndexDefinition/includedColumnsSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//IndexDefinition/maximumIdentifierLength"/>
+    </genClasses>
+    <genClasses ecoreClass="dbdefinition.ecore#//ExtendedDefinition">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//ExtendedDefinition/name"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//ExtendedDefinition/value"/>
+    </genClasses>
+    <genClasses ecoreClass="dbdefinition.ecore#//TableDefinition">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//TableDefinition/auditSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//TableDefinition/dataCaptureSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//TableDefinition/editProcSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//TableDefinition/encodingSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//TableDefinition/validProcSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//TableDefinition/maximumIdentifierLength"/>
+    </genClasses>
+    <genClasses ecoreClass="dbdefinition.ecore#//SequenceDefinition">
+      <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference dbdefinition.ecore#//SequenceDefinition/predefinedDataTypeDefinitions"/>
+      <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference dbdefinition.ecore#//SequenceDefinition/defaultDataTypeDefinition"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//SequenceDefinition/typeEnumerationSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//SequenceDefinition/cacheSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//SequenceDefinition/orderSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//SequenceDefinition/noMaximumValueString"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//SequenceDefinition/noMinimumValueString"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//SequenceDefinition/noCacheString"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//SequenceDefinition/cacheDefaultValue"/>
+    </genClasses>
+    <genClasses ecoreClass="dbdefinition.ecore#//UserDefinedTypeDefinition">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//UserDefinedTypeDefinition/defaultValueSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//UserDefinedTypeDefinition/distinctTypeSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//UserDefinedTypeDefinition/structuredTypeSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//UserDefinedTypeDefinition/maximumIdentifierLength"/>
+    </genClasses>
+    <genClasses ecoreClass="dbdefinition.ecore#//QueryDefinition">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//QueryDefinition/identifierQuoteString"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//QueryDefinition/hostVariableMarker"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//QueryDefinition/hostVariableMarkerSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//QueryDefinition/castExpressionSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//QueryDefinition/defaultKeywordForInsertValueSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//QueryDefinition/extendedGroupingSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//QueryDefinition/tableAliasInDeleteSupported"/>
+    </genClasses>
+    <genClasses ecoreClass="dbdefinition.ecore#//SQLSyntaxDefinition">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//SQLSyntaxDefinition/keywords"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//SQLSyntaxDefinition/operators"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//SQLSyntaxDefinition/terminationCharacter"/>
+    </genClasses>
+    <genClasses ecoreClass="dbdefinition.ecore#//NicknameDefinition">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//NicknameDefinition/constraintSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//NicknameDefinition/indexSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//NicknameDefinition/maximumIdentifierLength"/>
+    </genClasses>
+    <genClasses ecoreClass="dbdefinition.ecore#//SchemaDefinition">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//SchemaDefinition/maximumIdentifierLength"/>
+    </genClasses>
+    <genClasses ecoreClass="dbdefinition.ecore#//ViewDefinition">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//ViewDefinition/maximumIdentifierLength"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//ViewDefinition/indexSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//ViewDefinition/checkOptionSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//ViewDefinition/checkOptionLevelsSupported"/>
+    </genClasses>
+    <genClasses ecoreClass="dbdefinition.ecore#//FieldQualifierDefinition">
+      <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference dbdefinition.ecore#//FieldQualifierDefinition/validTrailingFieldQualifierDefinitions"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//FieldQualifierDefinition/name"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//FieldQualifierDefinition/maximumPrecision"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//FieldQualifierDefinition/defaultPrecision"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//FieldQualifierDefinition/precisionSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//FieldQualifierDefinition/maximumScale"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//FieldQualifierDefinition/defaultScale"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//FieldQualifierDefinition/scaleSupported"/>
+    </genClasses>
+    <genClasses ecoreClass="dbdefinition.ecore#//DebuggerDefinition">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//DebuggerDefinition/conditionSupported"/>
+    </genClasses>
+    <genClasses ecoreClass="dbdefinition.ecore#//PrivilegedElementDefinition">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dbdefinition.ecore#//PrivilegedElementDefinition/privilegeDefinitions"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//PrivilegedElementDefinition/name"/>
+    </genClasses>
+    <genClasses ecoreClass="dbdefinition.ecore#//PrivilegeDefinition">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference dbdefinition.ecore#//PrivilegeDefinition/actionElementDefinitions"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//PrivilegeDefinition/name"/>
+    </genClasses>
+    <genClasses ecoreClass="dbdefinition.ecore#//ConstructedDataTypeDefinition">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//ConstructedDataTypeDefinition/arrayDatatypeSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//ConstructedDataTypeDefinition/multisetDatatypeSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//ConstructedDataTypeDefinition/rowDatatypeSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//ConstructedDataTypeDefinition/referenceDatatypeSupported"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute dbdefinition.ecore#//ConstructedDataTypeDefinition/cursorDatatypeSupported"/>
+    </genClasses>
+  </genPackages>
+</genmodel:GenModel>
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/plugin.properties b/plugins/org.eclipse.datatools.modelbase.dbdefinition/plugin.properties
new file mode 100644
index 0000000..28216fe
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/plugin.properties
@@ -0,0 +1,33 @@
+###############################################################################
+# Copyright (c) 2001, 2004 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+# 
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+
+#
+# <copyright>
+# </copyright>
+#
+# %W%
+# @version %I% %H%
+#
+
+# ====================================================================
+# To code developer:
+#   Do NOT change the properties between this line and the
+#   "%%% END OF TRANSLATED PROPERTIES %%%" line.
+#   Make a new property name, append to the end of the file and change
+#   the code to use the new property.
+# ====================================================================
+
+# ====================================================================
+# %%% END OF TRANSLATED PROPERTIES %%%
+# ====================================================================
+
+pluginName = Eclipse Data Tools Platform DBDefinition Model
+providerName = Eclipse Data Tools Platform
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/plugin.xml b/plugins/org.eclipse.datatools.modelbase.dbdefinition/plugin.xml
new file mode 100644
index 0000000..55071a3
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/plugin.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?> 
+<plugin>
+
+     <extension
+         point="org.eclipse.emf.ecore.generated_package">
+      <package
+            uri="http:///org/eclipse/datatools/modelbase/dbdefinition/dbdefinition.ecore"
+            class="org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage">
+      </package>
+   </extension>
+
+</plugin>
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/CheckOption.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/CheckOption.java
new file mode 100644
index 0000000..b7d6865
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/CheckOption.java
@@ -0,0 +1,178 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: CheckOption.java,v 1.3 2006/10/11 20:34:55 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.dbdefinition;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Check Option</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getCheckOption()
+ * @model
+ * @generated
+ */
+public final class CheckOption extends AbstractEnumerator {
+	/**
+	 * The '<em><b>NONE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NONE_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NONE = 0;
+
+	/**
+	 * The '<em><b>CASCADE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #CASCADE_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int CASCADE = 1;
+
+	/**
+	 * The '<em><b>LOCAL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #LOCAL_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int LOCAL = 2;
+
+	/**
+	 * The '<em><b>NONE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NONE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #NONE
+	 * @generated
+	 * @ordered
+	 */
+	public static final CheckOption NONE_LITERAL = new CheckOption(NONE, "NONE", "NONE"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>CASCADE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>CASCADE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #CASCADE
+	 * @generated
+	 * @ordered
+	 */
+	public static final CheckOption CASCADE_LITERAL = new CheckOption(CASCADE, "CASCADE", "CASCADE"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>LOCAL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>LOCAL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #LOCAL
+	 * @generated
+	 * @ordered
+	 */
+	public static final CheckOption LOCAL_LITERAL = new CheckOption(LOCAL, "LOCAL", "LOCAL"); //$NON-NLS-1$
+
+	/**
+	 * An array of all the '<em><b>Check Option</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final CheckOption[] VALUES_ARRAY =
+		new CheckOption[] {
+			NONE_LITERAL,
+			CASCADE_LITERAL,
+			LOCAL_LITERAL,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Check Option</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Check Option</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static CheckOption get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			CheckOption result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Check Option</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static CheckOption getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			CheckOption result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Check Option</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static CheckOption get(int value) {
+		switch (value) {
+			case NONE: return NONE_LITERAL;
+			case CASCADE: return CASCADE_LITERAL;
+			case LOCAL: return LOCAL_LITERAL;
+		}
+		return null;
+	}
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private CheckOption(int value, String name, String literal) {
+		super(value, name, literal);
+	}
+
+} //CheckOption
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/ColumnDefinition.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/ColumnDefinition.java
new file mode 100644
index 0000000..0236115
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/ColumnDefinition.java
@@ -0,0 +1,272 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.dbdefinition;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Column Definition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.ColumnDefinition#getIdentityColumnDataTypeDefinitions <em>Identity Column Data Type Definitions</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.ColumnDefinition#isIdentitySupported <em>Identity Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.ColumnDefinition#isComputedSupported <em>Computed Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.ColumnDefinition#isIdentityStartValueSupported <em>Identity Start Value Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.ColumnDefinition#isIdentityIncrementSupported <em>Identity Increment Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.ColumnDefinition#isIdentityMinimumSupported <em>Identity Minimum Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.ColumnDefinition#isIdentityMaximumSupported <em>Identity Maximum Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.ColumnDefinition#isIdentityCycleSupported <em>Identity Cycle Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.ColumnDefinition#getMaximumIdentifierLength <em>Maximum Identifier Length</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getColumnDefinition()
+ * @model
+ * @generated
+ */
+public interface ColumnDefinition extends EObject{
+	/**
+	 * Returns the value of the '<em><b>Identity Column Data Type Definitions</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Identity Column Data Type Definitions</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Identity Column Data Type Definitions</em>' reference list.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getColumnDefinition_IdentityColumnDataTypeDefinitions()
+	 * @model type="org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition" required="true"
+	 * @generated
+	 */
+	EList getIdentityColumnDataTypeDefinitions();
+
+	/**
+	 * Returns the value of the '<em><b>Identity Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Identity Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Identity Supported</em>' attribute.
+	 * @see #setIdentitySupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getColumnDefinition_IdentitySupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isIdentitySupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.ColumnDefinition#isIdentitySupported <em>Identity Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Identity Supported</em>' attribute.
+	 * @see #isIdentitySupported()
+	 * @generated
+	 */
+	void setIdentitySupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Computed Supported</b></em>' attribute.
+	 * The default value is <code>"true"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Computed Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Computed Supported</em>' attribute.
+	 * @see #setComputedSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getColumnDefinition_ComputedSupported()
+	 * @model default="true"
+	 * @generated
+	 */
+	boolean isComputedSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.ColumnDefinition#isComputedSupported <em>Computed Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Computed Supported</em>' attribute.
+	 * @see #isComputedSupported()
+	 * @generated
+	 */
+	void setComputedSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Identity Start Value Supported</b></em>' attribute.
+	 * The default value is <code>"false"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Identity Start Value Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Identity Start Value Supported</em>' attribute.
+	 * @see #setIdentityStartValueSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getColumnDefinition_IdentityStartValueSupported()
+	 * @model default="false"
+	 * @generated
+	 */
+	boolean isIdentityStartValueSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.ColumnDefinition#isIdentityStartValueSupported <em>Identity Start Value Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Identity Start Value Supported</em>' attribute.
+	 * @see #isIdentityStartValueSupported()
+	 * @generated
+	 */
+	void setIdentityStartValueSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Identity Increment Supported</b></em>' attribute.
+	 * The default value is <code>"false"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Identity Increment Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Identity Increment Supported</em>' attribute.
+	 * @see #setIdentityIncrementSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getColumnDefinition_IdentityIncrementSupported()
+	 * @model default="false"
+	 * @generated
+	 */
+	boolean isIdentityIncrementSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.ColumnDefinition#isIdentityIncrementSupported <em>Identity Increment Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Identity Increment Supported</em>' attribute.
+	 * @see #isIdentityIncrementSupported()
+	 * @generated
+	 */
+	void setIdentityIncrementSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Identity Minimum Supported</b></em>' attribute.
+	 * The default value is <code>"false"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Identity Minimum Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Identity Minimum Supported</em>' attribute.
+	 * @see #setIdentityMinimumSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getColumnDefinition_IdentityMinimumSupported()
+	 * @model default="false"
+	 * @generated
+	 */
+	boolean isIdentityMinimumSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.ColumnDefinition#isIdentityMinimumSupported <em>Identity Minimum Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Identity Minimum Supported</em>' attribute.
+	 * @see #isIdentityMinimumSupported()
+	 * @generated
+	 */
+	void setIdentityMinimumSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Identity Maximum Supported</b></em>' attribute.
+	 * The default value is <code>"false"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Identity Maximum Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Identity Maximum Supported</em>' attribute.
+	 * @see #setIdentityMaximumSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getColumnDefinition_IdentityMaximumSupported()
+	 * @model default="false"
+	 * @generated
+	 */
+	boolean isIdentityMaximumSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.ColumnDefinition#isIdentityMaximumSupported <em>Identity Maximum Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Identity Maximum Supported</em>' attribute.
+	 * @see #isIdentityMaximumSupported()
+	 * @generated
+	 */
+	void setIdentityMaximumSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Identity Cycle Supported</b></em>' attribute.
+	 * The default value is <code>"false"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Identity Cycle Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Identity Cycle Supported</em>' attribute.
+	 * @see #setIdentityCycleSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getColumnDefinition_IdentityCycleSupported()
+	 * @model default="false"
+	 * @generated
+	 */
+	boolean isIdentityCycleSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.ColumnDefinition#isIdentityCycleSupported <em>Identity Cycle Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Identity Cycle Supported</em>' attribute.
+	 * @see #isIdentityCycleSupported()
+	 * @generated
+	 */
+	void setIdentityCycleSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Maximum Identifier Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Maximum Identifier Length</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Maximum Identifier Length</em>' attribute.
+	 * @see #setMaximumIdentifierLength(int)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getColumnDefinition_MaximumIdentifierLength()
+	 * @model
+	 * @generated
+	 */
+	int getMaximumIdentifierLength();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.ColumnDefinition#getMaximumIdentifierLength <em>Maximum Identifier Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Maximum Identifier Length</em>' attribute.
+	 * @see #getMaximumIdentifierLength()
+	 * @generated
+	 */
+	void setMaximumIdentifierLength(int value);
+
+} // ColumnDefinition
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/ConstraintDefinition.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/ConstraintDefinition.java
new file mode 100644
index 0000000..9cf5c0c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/ConstraintDefinition.java
@@ -0,0 +1,359 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.dbdefinition;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Constraint Definition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#isDeferrableConstraintSupported <em>Deferrable Constraint Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#isInformationalConstraintSupported <em>Informational Constraint Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#isClusteredPrimaryKeySupported <em>Clustered Primary Key Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#isClusteredUniqueConstraintSupported <em>Clustered Unique Constraint Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#isPrimaryKeyNullable <em>Primary Key Nullable</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#isUniqueKeyNullable <em>Unique Key Nullable</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#getMaximumCheckExpressionLength <em>Maximum Check Expression Length</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#getParentUpdateDRIRuleType <em>Parent Update DRI Rule Type</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#getParentDeleteDRIRuleType <em>Parent Delete DRI Rule Type</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#getCheckOption <em>Check Option</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#getMaximumPrimaryKeyIdentifierLength <em>Maximum Primary Key Identifier Length</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#getMaximumForeignKeyIdentifierLength <em>Maximum Foreign Key Identifier Length</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#getMaximumCheckConstraintIdentifierLength <em>Maximum Check Constraint Identifier Length</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getConstraintDefinition()
+ * @model
+ * @generated
+ */
+public interface ConstraintDefinition extends EObject{
+	/**
+	 * Returns the value of the '<em><b>Deferrable Constraint Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Deferrable Constraint Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Deferrable Constraint Supported</em>' attribute.
+	 * @see #setDeferrableConstraintSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getConstraintDefinition_DeferrableConstraintSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isDeferrableConstraintSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#isDeferrableConstraintSupported <em>Deferrable Constraint Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Deferrable Constraint Supported</em>' attribute.
+	 * @see #isDeferrableConstraintSupported()
+	 * @generated
+	 */
+	void setDeferrableConstraintSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Informational Constraint Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Informational Constraint Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Informational Constraint Supported</em>' attribute.
+	 * @see #setInformationalConstraintSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getConstraintDefinition_InformationalConstraintSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isInformationalConstraintSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#isInformationalConstraintSupported <em>Informational Constraint Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Informational Constraint Supported</em>' attribute.
+	 * @see #isInformationalConstraintSupported()
+	 * @generated
+	 */
+	void setInformationalConstraintSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Clustered Primary Key Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Clustered Primary Key Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Clustered Primary Key Supported</em>' attribute.
+	 * @see #setClusteredPrimaryKeySupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getConstraintDefinition_ClusteredPrimaryKeySupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isClusteredPrimaryKeySupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#isClusteredPrimaryKeySupported <em>Clustered Primary Key Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Clustered Primary Key Supported</em>' attribute.
+	 * @see #isClusteredPrimaryKeySupported()
+	 * @generated
+	 */
+	void setClusteredPrimaryKeySupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Clustered Unique Constraint Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Clustered Unique Constraint Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Clustered Unique Constraint Supported</em>' attribute.
+	 * @see #setClusteredUniqueConstraintSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getConstraintDefinition_ClusteredUniqueConstraintSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isClusteredUniqueConstraintSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#isClusteredUniqueConstraintSupported <em>Clustered Unique Constraint Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Clustered Unique Constraint Supported</em>' attribute.
+	 * @see #isClusteredUniqueConstraintSupported()
+	 * @generated
+	 */
+	void setClusteredUniqueConstraintSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Primary Key Nullable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Primary Key Nullable</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Primary Key Nullable</em>' attribute.
+	 * @see #setPrimaryKeyNullable(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getConstraintDefinition_PrimaryKeyNullable()
+	 * @model
+	 * @generated
+	 */
+	boolean isPrimaryKeyNullable();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#isPrimaryKeyNullable <em>Primary Key Nullable</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Primary Key Nullable</em>' attribute.
+	 * @see #isPrimaryKeyNullable()
+	 * @generated
+	 */
+	void setPrimaryKeyNullable(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Unique Key Nullable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Unique Key Nullable</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Unique Key Nullable</em>' attribute.
+	 * @see #setUniqueKeyNullable(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getConstraintDefinition_UniqueKeyNullable()
+	 * @model
+	 * @generated
+	 */
+	boolean isUniqueKeyNullable();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#isUniqueKeyNullable <em>Unique Key Nullable</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Unique Key Nullable</em>' attribute.
+	 * @see #isUniqueKeyNullable()
+	 * @generated
+	 */
+	void setUniqueKeyNullable(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Maximum Check Expression Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Maximum Check Expression Length</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Maximum Check Expression Length</em>' attribute.
+	 * @see #setMaximumCheckExpressionLength(int)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getConstraintDefinition_MaximumCheckExpressionLength()
+	 * @model
+	 * @generated
+	 */
+	int getMaximumCheckExpressionLength();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#getMaximumCheckExpressionLength <em>Maximum Check Expression Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Maximum Check Expression Length</em>' attribute.
+	 * @see #getMaximumCheckExpressionLength()
+	 * @generated
+	 */
+	void setMaximumCheckExpressionLength(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Parent Update DRI Rule Type</b></em>' attribute list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.dbdefinition.ParentUpdateDRIRuleType}.
+	 * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.dbdefinition.ParentUpdateDRIRuleType}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Parent Update DRI Rule Type</em>' attribute list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Parent Update DRI Rule Type</em>' attribute list.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ParentUpdateDRIRuleType
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getConstraintDefinition_ParentUpdateDRIRuleType()
+	 * @model dataType="org.eclipse.datatools.modelbase.dbdefinition.ParentUpdateDRIRuleType"
+	 * @generated
+	 */
+	EList getParentUpdateDRIRuleType();
+
+	/**
+	 * Returns the value of the '<em><b>Parent Delete DRI Rule Type</b></em>' attribute list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.dbdefinition.ParentDeleteDRIRuleType}.
+	 * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.dbdefinition.ParentDeleteDRIRuleType}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Parent Delete DRI Rule Type</em>' attribute list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Parent Delete DRI Rule Type</em>' attribute list.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ParentDeleteDRIRuleType
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getConstraintDefinition_ParentDeleteDRIRuleType()
+	 * @model dataType="org.eclipse.datatools.modelbase.dbdefinition.ParentDeleteDRIRuleType"
+	 * @generated
+	 */
+	EList getParentDeleteDRIRuleType();
+
+	/**
+	 * Returns the value of the '<em><b>Check Option</b></em>' attribute list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.dbdefinition.CheckOption}.
+	 * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.dbdefinition.CheckOption}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Check Option</em>' attribute list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Check Option</em>' attribute list.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.CheckOption
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getConstraintDefinition_CheckOption()
+	 * @model dataType="org.eclipse.datatools.modelbase.dbdefinition.CheckOption"
+	 * @generated
+	 */
+	EList getCheckOption();
+
+	/**
+	 * Returns the value of the '<em><b>Maximum Primary Key Identifier Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Maximum Primary Key Identifier Length</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Maximum Primary Key Identifier Length</em>' attribute.
+	 * @see #setMaximumPrimaryKeyIdentifierLength(int)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getConstraintDefinition_MaximumPrimaryKeyIdentifierLength()
+	 * @model
+	 * @generated
+	 */
+	int getMaximumPrimaryKeyIdentifierLength();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#getMaximumPrimaryKeyIdentifierLength <em>Maximum Primary Key Identifier Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Maximum Primary Key Identifier Length</em>' attribute.
+	 * @see #getMaximumPrimaryKeyIdentifierLength()
+	 * @generated
+	 */
+	void setMaximumPrimaryKeyIdentifierLength(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Maximum Foreign Key Identifier Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Maximum Foreign Key Identifier Length</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Maximum Foreign Key Identifier Length</em>' attribute.
+	 * @see #setMaximumForeignKeyIdentifierLength(int)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getConstraintDefinition_MaximumForeignKeyIdentifierLength()
+	 * @model
+	 * @generated
+	 */
+	int getMaximumForeignKeyIdentifierLength();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#getMaximumForeignKeyIdentifierLength <em>Maximum Foreign Key Identifier Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Maximum Foreign Key Identifier Length</em>' attribute.
+	 * @see #getMaximumForeignKeyIdentifierLength()
+	 * @generated
+	 */
+	void setMaximumForeignKeyIdentifierLength(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Maximum Check Constraint Identifier Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Maximum Check Constraint Identifier Length</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Maximum Check Constraint Identifier Length</em>' attribute.
+	 * @see #setMaximumCheckConstraintIdentifierLength(int)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getConstraintDefinition_MaximumCheckConstraintIdentifierLength()
+	 * @model
+	 * @generated
+	 */
+	int getMaximumCheckConstraintIdentifierLength();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#getMaximumCheckConstraintIdentifierLength <em>Maximum Check Constraint Identifier Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Maximum Check Constraint Identifier Length</em>' attribute.
+	 * @see #getMaximumCheckConstraintIdentifierLength()
+	 * @generated
+	 */
+	void setMaximumCheckConstraintIdentifierLength(int value);
+
+} // ConstraintDefinition
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/ConstructedDataTypeDefinition.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/ConstructedDataTypeDefinition.java
new file mode 100644
index 0000000..af4341f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/ConstructedDataTypeDefinition.java
@@ -0,0 +1,162 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.modelbase.dbdefinition;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Constructed Data Type Definition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.ConstructedDataTypeDefinition#isArrayDatatypeSupported <em>Array Datatype Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.ConstructedDataTypeDefinition#isMultisetDatatypeSupported <em>Multiset Datatype Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.ConstructedDataTypeDefinition#isRowDatatypeSupported <em>Row Datatype Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.ConstructedDataTypeDefinition#isReferenceDatatypeSupported <em>Reference Datatype Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.ConstructedDataTypeDefinition#isCursorDatatypeSupported <em>Cursor Datatype Supported</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getConstructedDataTypeDefinition()
+ * @model
+ * @generated
+ */
+public interface ConstructedDataTypeDefinition extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Array Datatype Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Array Datatype Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Array Datatype Supported</em>' attribute.
+	 * @see #setArrayDatatypeSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getConstructedDataTypeDefinition_ArrayDatatypeSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isArrayDatatypeSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.ConstructedDataTypeDefinition#isArrayDatatypeSupported <em>Array Datatype Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Array Datatype Supported</em>' attribute.
+	 * @see #isArrayDatatypeSupported()
+	 * @generated
+	 */
+	void setArrayDatatypeSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Multiset Datatype Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Multiset Datatype Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Multiset Datatype Supported</em>' attribute.
+	 * @see #setMultisetDatatypeSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getConstructedDataTypeDefinition_MultisetDatatypeSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isMultisetDatatypeSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.ConstructedDataTypeDefinition#isMultisetDatatypeSupported <em>Multiset Datatype Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Multiset Datatype Supported</em>' attribute.
+	 * @see #isMultisetDatatypeSupported()
+	 * @generated
+	 */
+	void setMultisetDatatypeSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Row Datatype Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Row Datatype Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Row Datatype Supported</em>' attribute.
+	 * @see #setRowDatatypeSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getConstructedDataTypeDefinition_RowDatatypeSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isRowDatatypeSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.ConstructedDataTypeDefinition#isRowDatatypeSupported <em>Row Datatype Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Row Datatype Supported</em>' attribute.
+	 * @see #isRowDatatypeSupported()
+	 * @generated
+	 */
+	void setRowDatatypeSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Reference Datatype Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Reference Datatype Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Reference Datatype Supported</em>' attribute.
+	 * @see #setReferenceDatatypeSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getConstructedDataTypeDefinition_ReferenceDatatypeSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isReferenceDatatypeSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.ConstructedDataTypeDefinition#isReferenceDatatypeSupported <em>Reference Datatype Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Reference Datatype Supported</em>' attribute.
+	 * @see #isReferenceDatatypeSupported()
+	 * @generated
+	 */
+	void setReferenceDatatypeSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Cursor Datatype Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Cursor Datatype Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Cursor Datatype Supported</em>' attribute.
+	 * @see #setCursorDatatypeSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getConstructedDataTypeDefinition_CursorDatatypeSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isCursorDatatypeSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.ConstructedDataTypeDefinition#isCursorDatatypeSupported <em>Cursor Datatype Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Cursor Datatype Supported</em>' attribute.
+	 * @see #isCursorDatatypeSupported()
+	 * @generated
+	 */
+	void setCursorDatatypeSupported(boolean value);
+
+} // ConstructedDataTypeDefinition
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/DatabaseDefinitionFactory.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/DatabaseDefinitionFactory.java
new file mode 100644
index 0000000..a02ab58
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/DatabaseDefinitionFactory.java
@@ -0,0 +1,239 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.dbdefinition;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage
+ * @generated
+ */
+public interface DatabaseDefinitionFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	DatabaseDefinitionFactory eINSTANCE = org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionFactoryImpl.init();
+
+	/**
+	 * Returns a new object of class '<em>Database Vendor Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Database Vendor Definition</em>'.
+	 * @generated
+	 */
+	DatabaseVendorDefinition createDatabaseVendorDefinition();
+
+	/**
+	 * Returns a new object of class '<em>Predefined Data Type Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Predefined Data Type Definition</em>'.
+	 * @generated
+	 */
+	PredefinedDataTypeDefinition createPredefinedDataTypeDefinition();
+
+	/**
+	 * Returns a new object of class '<em>Table Space Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Table Space Definition</em>'.
+	 * @generated
+	 */
+	TableSpaceDefinition createTableSpaceDefinition();
+
+	/**
+	 * Returns a new object of class '<em>Stored Procedure Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Stored Procedure Definition</em>'.
+	 * @generated
+	 */
+	StoredProcedureDefinition createStoredProcedureDefinition();
+
+	/**
+	 * Returns a new object of class '<em>Trigger Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Trigger Definition</em>'.
+	 * @generated
+	 */
+	TriggerDefinition createTriggerDefinition();
+
+	/**
+	 * Returns a new object of class '<em>Column Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Column Definition</em>'.
+	 * @generated
+	 */
+	ColumnDefinition createColumnDefinition();
+
+	/**
+	 * Returns a new object of class '<em>Constraint Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Constraint Definition</em>'.
+	 * @generated
+	 */
+	ConstraintDefinition createConstraintDefinition();
+
+	/**
+	 * Returns a new object of class '<em>Index Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Index Definition</em>'.
+	 * @generated
+	 */
+	IndexDefinition createIndexDefinition();
+
+	/**
+	 * Returns a new object of class '<em>Extended Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Extended Definition</em>'.
+	 * @generated
+	 */
+	ExtendedDefinition createExtendedDefinition();
+
+	/**
+	 * Returns a new object of class '<em>Table Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Table Definition</em>'.
+	 * @generated
+	 */
+	TableDefinition createTableDefinition();
+
+	/**
+	 * Returns a new object of class '<em>Sequence Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Sequence Definition</em>'.
+	 * @generated
+	 */
+	SequenceDefinition createSequenceDefinition();
+
+	/**
+	 * Returns a new object of class '<em>User Defined Type Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>User Defined Type Definition</em>'.
+	 * @generated
+	 */
+	UserDefinedTypeDefinition createUserDefinedTypeDefinition();
+
+	/**
+	 * Returns a new object of class '<em>Query Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Query Definition</em>'.
+	 * @generated
+	 */
+	QueryDefinition createQueryDefinition();
+
+	/**
+	 * Returns a new object of class '<em>SQL Syntax Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>SQL Syntax Definition</em>'.
+	 * @generated
+	 */
+	SQLSyntaxDefinition createSQLSyntaxDefinition();
+
+	/**
+	 * Returns a new object of class '<em>Nickname Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Nickname Definition</em>'.
+	 * @generated
+	 */
+	NicknameDefinition createNicknameDefinition();
+
+	/**
+	 * Returns a new object of class '<em>Schema Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Schema Definition</em>'.
+	 * @generated
+	 */
+	SchemaDefinition createSchemaDefinition();
+
+	/**
+	 * Returns a new object of class '<em>View Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>View Definition</em>'.
+	 * @generated
+	 */
+	ViewDefinition createViewDefinition();
+
+	/**
+	 * Returns a new object of class '<em>Field Qualifier Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Field Qualifier Definition</em>'.
+	 * @generated
+	 */
+	FieldQualifierDefinition createFieldQualifierDefinition();
+
+	/**
+	 * Returns a new object of class '<em>Debugger Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Debugger Definition</em>'.
+	 * @generated
+	 */
+	DebuggerDefinition createDebuggerDefinition();
+
+	/**
+	 * Returns a new object of class '<em>Privileged Element Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Privileged Element Definition</em>'.
+	 * @generated
+	 */
+	PrivilegedElementDefinition createPrivilegedElementDefinition();
+
+	/**
+	 * Returns a new object of class '<em>Privilege Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Privilege Definition</em>'.
+	 * @generated
+	 */
+	PrivilegeDefinition createPrivilegeDefinition();
+
+	/**
+	 * Returns a new object of class '<em>Constructed Data Type Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Constructed Data Type Definition</em>'.
+	 * @generated
+	 */
+	ConstructedDataTypeDefinition createConstructedDataTypeDefinition();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	DatabaseDefinitionPackage getDatabaseDefinitionPackage();
+
+} //DatabaseDefinitionFactory
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/DatabaseDefinitionPackage.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/DatabaseDefinitionPackage.java
new file mode 100644
index 0000000..d3c4810
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/DatabaseDefinitionPackage.java
@@ -0,0 +1,7549 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.dbdefinition;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ *   <li>each class,</li>
+ *   <li>each feature of each class,</li>
+ *   <li>each enum,</li>
+ *   <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface DatabaseDefinitionPackage extends EPackage {
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNAME = "dbdefinition"; //$NON-NLS-1$
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_URI = "http:///org/eclipse/datatools/modelbase/dbdefinition/dbdefinition.ecore"; //$NON-NLS-1$
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_PREFIX = "DBDefinition"; //$NON-NLS-1$
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	DatabaseDefinitionPackage eINSTANCE = org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl.init();
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl <em>Database Vendor Definition</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	int DATABASE_VENDOR_DEFINITION = 0;
+
+	/**
+	 * The feature id for the '<em><b>Predefined Data Type Definitions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__PREDEFINED_DATA_TYPE_DEFINITIONS = 0;
+
+	/**
+	 * The feature id for the '<em><b>Table Space Definition</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__TABLE_SPACE_DEFINITION = 1;
+
+	/**
+	 * The feature id for the '<em><b>Stored Procedure Definition</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__STORED_PROCEDURE_DEFINITION = 2;
+
+	/**
+	 * The feature id for the '<em><b>Trigger Definition</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__TRIGGER_DEFINITION = 3;
+
+	/**
+	 * The feature id for the '<em><b>Column Definition</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__COLUMN_DEFINITION = 4;
+
+	/**
+	 * The feature id for the '<em><b>Constraint Definition</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__CONSTRAINT_DEFINITION = 5;
+
+	/**
+	 * The feature id for the '<em><b>Extended Definitions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__EXTENDED_DEFINITIONS = 6;
+
+	/**
+	 * The feature id for the '<em><b>Index Definition</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__INDEX_DEFINITION = 7;
+
+	/**
+	 * The feature id for the '<em><b>Table Definition</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__TABLE_DEFINITION = 8;
+
+	/**
+	 * The feature id for the '<em><b>Sequence Definition</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__SEQUENCE_DEFINITION = 9;
+
+	/**
+	 * The feature id for the '<em><b>Udt Definition</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__UDT_DEFINITION = 10;
+
+	/**
+	 * The feature id for the '<em><b>Query Definition</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__QUERY_DEFINITION = 11;
+
+	/**
+	 * The feature id for the '<em><b>SQL Syntax Definition</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__SQL_SYNTAX_DEFINITION = 12;
+
+	/**
+	 * The feature id for the '<em><b>Nickname Definition</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__NICKNAME_DEFINITION = 13;
+
+	/**
+	 * The feature id for the '<em><b>Schema Definition</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__SCHEMA_DEFINITION = 14;
+
+	/**
+	 * The feature id for the '<em><b>View Definition</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__VIEW_DEFINITION = 15;
+
+	/**
+	 * The feature id for the '<em><b>Debugger Definition</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__DEBUGGER_DEFINITION = 16;
+
+	/**
+	 * The feature id for the '<em><b>Privileged Element Definitions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__PRIVILEGED_ELEMENT_DEFINITIONS = 17;
+
+	/**
+	 * The feature id for the '<em><b>Constructed Data Type Definition</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__CONSTRUCTED_DATA_TYPE_DEFINITION = 18;
+
+	/**
+	 * The feature id for the '<em><b>Vendor</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__VENDOR = 19;
+
+	/**
+	 * The feature id for the '<em><b>Version</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__VERSION = 20;
+
+	/**
+	 * The feature id for the '<em><b>Constraints Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__CONSTRAINTS_SUPPORTED = 21;
+
+	/**
+	 * The feature id for the '<em><b>Maximum Identifier Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH = 22;
+
+	/**
+	 * The feature id for the '<em><b>Trigger Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__TRIGGER_SUPPORTED = 23;
+
+	/**
+	 * The feature id for the '<em><b>Snapshot View Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__SNAPSHOT_VIEW_SUPPORTED = 24;
+
+	/**
+	 * The feature id for the '<em><b>Join Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__JOIN_SUPPORTED = 25;
+
+	/**
+	 * The feature id for the '<em><b>View Trigger Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__VIEW_TRIGGER_SUPPORTED = 26;
+
+	/**
+	 * The feature id for the '<em><b>Tablespaces Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__TABLESPACES_SUPPORTED = 27;
+
+	/**
+	 * The feature id for the '<em><b>Maximum Comment Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__MAXIMUM_COMMENT_LENGTH = 28;
+
+	/**
+	 * The feature id for the '<em><b>Sequence Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__SEQUENCE_SUPPORTED = 29;
+
+	/**
+	 * The feature id for the '<em><b>MQT Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__MQT_SUPPORTED = 30;
+
+	/**
+	 * The feature id for the '<em><b>Schema Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__SCHEMA_SUPPORTED = 31;
+
+	/**
+	 * The feature id for the '<em><b>Alias Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__ALIAS_SUPPORTED = 32;
+
+	/**
+	 * The feature id for the '<em><b>Synonym Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__SYNONYM_SUPPORTED = 33;
+
+	/**
+	 * The feature id for the '<em><b>User Defined Type Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__USER_DEFINED_TYPE_SUPPORTED = 34;
+
+	/**
+	 * The feature id for the '<em><b>Domain Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__DOMAIN_SUPPORTED = 35;
+
+	/**
+	 * The feature id for the '<em><b>SQL Statement Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__SQL_STATEMENT_SUPPORTED = 36;
+
+	/**
+	 * The feature id for the '<em><b>Nickname Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__NICKNAME_SUPPORTED = 37;
+
+	/**
+	 * The feature id for the '<em><b>Quoted DML Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__QUOTED_DML_SUPPORTED = 38;
+
+	/**
+	 * The feature id for the '<em><b>Quoted DDL Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__QUOTED_DDL_SUPPORTED = 39;
+
+	/**
+	 * The feature id for the '<em><b>Xml Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__XML_SUPPORTED = 40;
+
+	/**
+	 * The feature id for the '<em><b>MQT Index Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__MQT_INDEX_SUPPORTED = 41;
+
+	/**
+	 * The feature id for the '<em><b>Event Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__EVENT_SUPPORTED = 42;
+
+	/**
+	 * The feature id for the '<em><b>Sql UDF Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__SQL_UDF_SUPPORTED = 43;
+
+	/**
+	 * The feature id for the '<em><b>Stored Procedure Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__STORED_PROCEDURE_SUPPORTED = 44;
+
+	/**
+	 * The feature id for the '<em><b>Package Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__PACKAGE_SUPPORTED = 45;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Identifier Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__AUTHORIZATION_IDENTIFIER_SUPPORTED = 46;
+
+	/**
+	 * The feature id for the '<em><b>Role Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__ROLE_SUPPORTED = 47;
+
+	/**
+	 * The feature id for the '<em><b>Group Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__GROUP_SUPPORTED = 48;
+
+	/**
+	 * The feature id for the '<em><b>User Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__USER_SUPPORTED = 49;
+
+	/**
+	 * The feature id for the '<em><b>Role Authorization Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__ROLE_AUTHORIZATION_SUPPORTED = 50;
+
+	/**
+	 * The feature id for the '<em><b>Constructed Data Type Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__CONSTRUCTED_DATA_TYPE_SUPPORTED = 51;
+
+	/**
+	 * The feature id for the '<em><b>UDF Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION__UDF_SUPPORTED = 52;
+
+	/**
+	 * The number of structural features of the '<em>Database Vendor Definition</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_VENDOR_DEFINITION_FEATURE_COUNT = 53;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl <em>Predefined Data Type Definition</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION = 1;
+
+	/**
+	 * The feature id for the '<em><b>Leading Field Qualifier Definition</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__LEADING_FIELD_QUALIFIER_DEFINITION = 0;
+
+	/**
+	 * The feature id for the '<em><b>Trailing Field Qualifier Definition</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__TRAILING_FIELD_QUALIFIER_DEFINITION = 1;
+
+	/**
+	 * The feature id for the '<em><b>Default Trailing Field Qualifier Definition</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_TRAILING_FIELD_QUALIFIER_DEFINITION = 2;
+
+	/**
+	 * The feature id for the '<em><b>Default Leading Field Qualifier Definition</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_LEADING_FIELD_QUALIFIER_DEFINITION = 3;
+
+	/**
+	 * The feature id for the '<em><b>Length Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__LENGTH_SUPPORTED = 4;
+
+	/**
+	 * The feature id for the '<em><b>Scale Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__SCALE_SUPPORTED = 5;
+
+	/**
+	 * The feature id for the '<em><b>Precision Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__PRECISION_SUPPORTED = 6;
+
+	/**
+	 * The feature id for the '<em><b>Key Constraint Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__KEY_CONSTRAINT_SUPPORTED = 7;
+
+	/**
+	 * The feature id for the '<em><b>Identity Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__IDENTITY_SUPPORTED = 8;
+
+	/**
+	 * The feature id for the '<em><b>Multiple Columns Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__MULTIPLE_COLUMNS_SUPPORTED = 9;
+
+	/**
+	 * The feature id for the '<em><b>Nullable Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__NULLABLE_SUPPORTED = 10;
+
+	/**
+	 * The feature id for the '<em><b>Default Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_SUPPORTED = 11;
+
+	/**
+	 * The feature id for the '<em><b>Clustering Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__CLUSTERING_SUPPORTED = 12;
+
+	/**
+	 * The feature id for the '<em><b>Fill Factor Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__FILL_FACTOR_SUPPORTED = 13;
+
+	/**
+	 * The feature id for the '<em><b>Bit Data Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__BIT_DATA_SUPPORTED = 14;
+
+	/**
+	 * The feature id for the '<em><b>Maximum Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__MAXIMUM_VALUE = 15;
+
+	/**
+	 * The feature id for the '<em><b>Minimum Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__MINIMUM_VALUE = 16;
+
+	/**
+	 * The feature id for the '<em><b>Maximum Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__MAXIMUM_LENGTH = 17;
+
+	/**
+	 * The feature id for the '<em><b>Maximum Precision</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__MAXIMUM_PRECISION = 18;
+
+	/**
+	 * The feature id for the '<em><b>Maximum Scale</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__MAXIMUM_SCALE = 19;
+
+	/**
+	 * The feature id for the '<em><b>Minimum Scale</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__MINIMUM_SCALE = 20;
+
+	/**
+	 * The feature id for the '<em><b>Default Value Types</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_VALUE_TYPES = 21;
+
+	/**
+	 * The feature id for the '<em><b>Primitive Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__PRIMITIVE_TYPE = 22;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__NAME = 23;
+
+	/**
+	 * The feature id for the '<em><b>Jdbc Enum Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__JDBC_ENUM_TYPE = 24;
+
+	/**
+	 * The feature id for the '<em><b>Character Set</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__CHARACTER_SET = 25;
+
+	/**
+	 * The feature id for the '<em><b>Encoding Scheme</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__ENCODING_SCHEME = 26;
+
+	/**
+	 * The feature id for the '<em><b>Character Set Suffix</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__CHARACTER_SET_SUFFIX = 27;
+
+	/**
+	 * The feature id for the '<em><b>Encoding Scheme Suffix</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__ENCODING_SCHEME_SUFFIX = 28;
+
+	/**
+	 * The feature id for the '<em><b>Java Class Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__JAVA_CLASS_NAME = 29;
+
+	/**
+	 * The feature id for the '<em><b>Default Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_LENGTH = 30;
+
+	/**
+	 * The feature id for the '<em><b>Default Precision</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_PRECISION = 31;
+
+	/**
+	 * The feature id for the '<em><b>Default Scale</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_SCALE = 32;
+
+	/**
+	 * The feature id for the '<em><b>Cutoff Precision</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__CUTOFF_PRECISION = 33;
+
+	/**
+	 * The feature id for the '<em><b>Length Unit</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__LENGTH_UNIT = 34;
+
+	/**
+	 * The feature id for the '<em><b>Ordering Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__ORDERING_SUPPORTED = 35;
+
+	/**
+	 * The feature id for the '<em><b>Grouping Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__GROUPING_SUPPORTED = 36;
+
+	/**
+	 * The feature id for the '<em><b>Display Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__DISPLAY_NAME = 37;
+
+	/**
+	 * The feature id for the '<em><b>Display Name Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__DISPLAY_NAME_SUPPORTED = 38;
+
+	/**
+	 * The feature id for the '<em><b>Leading Field Qualifier Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__LEADING_FIELD_QUALIFIER_SUPPORTED = 39;
+
+	/**
+	 * The feature id for the '<em><b>Trailing Field Qualifier Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__TRAILING_FIELD_QUALIFIER_SUPPORTED = 40;
+
+	/**
+	 * The feature id for the '<em><b>Field Qualifier Separator</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__FIELD_QUALIFIER_SEPARATOR = 41;
+
+	/**
+	 * The feature id for the '<em><b>Large Value Specifier Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__LARGE_VALUE_SPECIFIER_SUPPORTED = 42;
+
+	/**
+	 * The feature id for the '<em><b>Large Value Specifier Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__LARGE_VALUE_SPECIFIER_NAME = 43;
+
+	/**
+	 * The feature id for the '<em><b>Large Value Specifier Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__LARGE_VALUE_SPECIFIER_LENGTH = 44;
+
+	/**
+	 * The feature id for the '<em><b>Length Semantic Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__LENGTH_SEMANTIC_SUPPORTED = 45;
+
+	/**
+	 * The feature id for the '<em><b>Length Semantic</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__LENGTH_SEMANTIC = 46;
+
+	/**
+	 * The feature id for the '<em><b>Language Type</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION__LANGUAGE_TYPE = 47;
+
+	/**
+	 * The number of structural features of the '<em>Predefined Data Type Definition</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_DEFINITION_FEATURE_COUNT = 48;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.dbdefinition.impl.TableSpaceDefinitionImpl <em>Table Space Definition</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.TableSpaceDefinitionImpl
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getTableSpaceDefinition()
+	 * @generated
+	 */
+	int TABLE_SPACE_DEFINITION = 2;
+
+	/**
+	 * The feature id for the '<em><b>Type Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_SPACE_DEFINITION__TYPE_SUPPORTED = 0;
+
+	/**
+	 * The feature id for the '<em><b>Extent Size Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_SPACE_DEFINITION__EXTENT_SIZE_SUPPORTED = 1;
+
+	/**
+	 * The feature id for the '<em><b>Prefetch Size Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_SPACE_DEFINITION__PREFETCH_SIZE_SUPPORTED = 2;
+
+	/**
+	 * The feature id for the '<em><b>Managed By Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_SPACE_DEFINITION__MANAGED_BY_SUPPORTED = 3;
+
+	/**
+	 * The feature id for the '<em><b>Page Size Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_SPACE_DEFINITION__PAGE_SIZE_SUPPORTED = 4;
+
+	/**
+	 * The feature id for the '<em><b>Buffer Pool Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_SPACE_DEFINITION__BUFFER_POOL_SUPPORTED = 5;
+
+	/**
+	 * The feature id for the '<em><b>Default Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_SPACE_DEFINITION__DEFAULT_SUPPORTED = 6;
+
+	/**
+	 * The feature id for the '<em><b>Container Maximum Size Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_SPACE_DEFINITION__CONTAINER_MAXIMUM_SIZE_SUPPORTED = 7;
+
+	/**
+	 * The feature id for the '<em><b>Container Initial Size Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_SPACE_DEFINITION__CONTAINER_INITIAL_SIZE_SUPPORTED = 8;
+
+	/**
+	 * The feature id for the '<em><b>Container Extent Size Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_SPACE_DEFINITION__CONTAINER_EXTENT_SIZE_SUPPORTED = 9;
+
+	/**
+	 * The feature id for the '<em><b>Table Space Type</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_SPACE_DEFINITION__TABLE_SPACE_TYPE = 10;
+
+	/**
+	 * The feature id for the '<em><b>Maximum Identifier Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_SPACE_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH = 11;
+
+	/**
+	 * The number of structural features of the '<em>Table Space Definition</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_SPACE_DEFINITION_FEATURE_COUNT = 12;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.dbdefinition.impl.StoredProcedureDefinitionImpl <em>Stored Procedure Definition</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.StoredProcedureDefinitionImpl
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getStoredProcedureDefinition()
+	 * @generated
+	 */
+	int STORED_PROCEDURE_DEFINITION = 3;
+
+	/**
+	 * The feature id for the '<em><b>Predefined Data Type Definitions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STORED_PROCEDURE_DEFINITION__PREDEFINED_DATA_TYPE_DEFINITIONS = 0;
+
+	/**
+	 * The feature id for the '<em><b>Null Input Action Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STORED_PROCEDURE_DEFINITION__NULL_INPUT_ACTION_SUPPORTED = 1;
+
+	/**
+	 * The feature id for the '<em><b>Package Generation Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STORED_PROCEDURE_DEFINITION__PACKAGE_GENERATION_SUPPORTED = 2;
+
+	/**
+	 * The feature id for the '<em><b>Determininstic Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STORED_PROCEDURE_DEFINITION__DETERMININSTIC_SUPPORTED = 3;
+
+	/**
+	 * The feature id for the '<em><b>Returned Null Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STORED_PROCEDURE_DEFINITION__RETURNED_NULL_SUPPORTED = 4;
+
+	/**
+	 * The feature id for the '<em><b>Returned Type Declaration Constraint Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STORED_PROCEDURE_DEFINITION__RETURNED_TYPE_DECLARATION_CONSTRAINT_SUPPORTED = 5;
+
+	/**
+	 * The feature id for the '<em><b>Parameter Init Value Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STORED_PROCEDURE_DEFINITION__PARAMETER_INIT_VALUE_SUPPORTED = 6;
+
+	/**
+	 * The feature id for the '<em><b>Parameter Style Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STORED_PROCEDURE_DEFINITION__PARAMETER_STYLE_SUPPORTED = 7;
+
+	/**
+	 * The feature id for the '<em><b>Return Type Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STORED_PROCEDURE_DEFINITION__RETURN_TYPE_SUPPORTED = 8;
+
+	/**
+	 * The feature id for the '<em><b>Parameter Declaration Constraint Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STORED_PROCEDURE_DEFINITION__PARAMETER_DECLARATION_CONSTRAINT_SUPPORTED = 9;
+
+	/**
+	 * The feature id for the '<em><b>Maximum Action Body Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STORED_PROCEDURE_DEFINITION__MAXIMUM_ACTION_BODY_LENGTH = 10;
+
+	/**
+	 * The feature id for the '<em><b>Parameter Style</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STORED_PROCEDURE_DEFINITION__PARAMETER_STYLE = 11;
+
+	/**
+	 * The feature id for the '<em><b>Language Type</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STORED_PROCEDURE_DEFINITION__LANGUAGE_TYPE = 12;
+
+	/**
+	 * The feature id for the '<em><b>Function Language Type</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STORED_PROCEDURE_DEFINITION__FUNCTION_LANGUAGE_TYPE = 13;
+
+	/**
+	 * The feature id for the '<em><b>Procedure Type</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STORED_PROCEDURE_DEFINITION__PROCEDURE_TYPE = 14;
+
+	/**
+	 * The feature id for the '<em><b>Maximum Identifier Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STORED_PROCEDURE_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH = 15;
+
+	/**
+	 * The number of structural features of the '<em>Stored Procedure Definition</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STORED_PROCEDURE_DEFINITION_FEATURE_COUNT = 16;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.dbdefinition.impl.TriggerDefinitionImpl <em>Trigger Definition</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.TriggerDefinitionImpl
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getTriggerDefinition()
+	 * @generated
+	 */
+	int TRIGGER_DEFINITION = 4;
+
+	/**
+	 * The feature id for the '<em><b>Maximum Reference Part Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRIGGER_DEFINITION__MAXIMUM_REFERENCE_PART_LENGTH = 0;
+
+	/**
+	 * The feature id for the '<em><b>Maximum Action Body Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRIGGER_DEFINITION__MAXIMUM_ACTION_BODY_LENGTH = 1;
+
+	/**
+	 * The feature id for the '<em><b>Type Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRIGGER_DEFINITION__TYPE_SUPPORTED = 2;
+
+	/**
+	 * The feature id for the '<em><b>When Clause Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRIGGER_DEFINITION__WHEN_CLAUSE_SUPPORTED = 3;
+
+	/**
+	 * The feature id for the '<em><b>Granularity Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRIGGER_DEFINITION__GRANULARITY_SUPPORTED = 4;
+
+	/**
+	 * The feature id for the '<em><b>References Clause Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRIGGER_DEFINITION__REFERENCES_CLAUSE_SUPPORTED = 5;
+
+	/**
+	 * The feature id for the '<em><b>Per Column Update Trigger Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRIGGER_DEFINITION__PER_COLUMN_UPDATE_TRIGGER_SUPPORTED = 6;
+
+	/**
+	 * The feature id for the '<em><b>Instead Of Trigger Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRIGGER_DEFINITION__INSTEAD_OF_TRIGGER_SUPPORTED = 7;
+
+	/**
+	 * The feature id for the '<em><b>Row Trigger Reference Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRIGGER_DEFINITION__ROW_TRIGGER_REFERENCE_SUPPORTED = 8;
+
+	/**
+	 * The feature id for the '<em><b>Table Trigger Reference Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRIGGER_DEFINITION__TABLE_TRIGGER_REFERENCE_SUPPORTED = 9;
+
+	/**
+	 * The feature id for the '<em><b>Maximum Identifier Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRIGGER_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH = 10;
+
+	/**
+	 * The number of structural features of the '<em>Trigger Definition</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRIGGER_DEFINITION_FEATURE_COUNT = 11;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.dbdefinition.impl.ColumnDefinitionImpl <em>Column Definition</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.ColumnDefinitionImpl
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getColumnDefinition()
+	 * @generated
+	 */
+	int COLUMN_DEFINITION = 5;
+
+	/**
+	 * The feature id for the '<em><b>Identity Column Data Type Definitions</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLUMN_DEFINITION__IDENTITY_COLUMN_DATA_TYPE_DEFINITIONS = 0;
+
+	/**
+	 * The feature id for the '<em><b>Identity Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLUMN_DEFINITION__IDENTITY_SUPPORTED = 1;
+
+	/**
+	 * The feature id for the '<em><b>Computed Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLUMN_DEFINITION__COMPUTED_SUPPORTED = 2;
+
+	/**
+	 * The feature id for the '<em><b>Identity Start Value Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLUMN_DEFINITION__IDENTITY_START_VALUE_SUPPORTED = 3;
+
+	/**
+	 * The feature id for the '<em><b>Identity Increment Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLUMN_DEFINITION__IDENTITY_INCREMENT_SUPPORTED = 4;
+
+	/**
+	 * The feature id for the '<em><b>Identity Minimum Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLUMN_DEFINITION__IDENTITY_MINIMUM_SUPPORTED = 5;
+
+	/**
+	 * The feature id for the '<em><b>Identity Maximum Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLUMN_DEFINITION__IDENTITY_MAXIMUM_SUPPORTED = 6;
+
+	/**
+	 * The feature id for the '<em><b>Identity Cycle Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLUMN_DEFINITION__IDENTITY_CYCLE_SUPPORTED = 7;
+
+	/**
+	 * The feature id for the '<em><b>Maximum Identifier Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLUMN_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH = 8;
+
+	/**
+	 * The number of structural features of the '<em>Column Definition</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLUMN_DEFINITION_FEATURE_COUNT = 9;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.dbdefinition.impl.ConstraintDefinitionImpl <em>Constraint Definition</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.ConstraintDefinitionImpl
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getConstraintDefinition()
+	 * @generated
+	 */
+	int CONSTRAINT_DEFINITION = 6;
+
+	/**
+	 * The feature id for the '<em><b>Deferrable Constraint Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT_DEFINITION__DEFERRABLE_CONSTRAINT_SUPPORTED = 0;
+
+	/**
+	 * The feature id for the '<em><b>Informational Constraint Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT_DEFINITION__INFORMATIONAL_CONSTRAINT_SUPPORTED = 1;
+
+	/**
+	 * The feature id for the '<em><b>Clustered Primary Key Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT_DEFINITION__CLUSTERED_PRIMARY_KEY_SUPPORTED = 2;
+
+	/**
+	 * The feature id for the '<em><b>Clustered Unique Constraint Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT_DEFINITION__CLUSTERED_UNIQUE_CONSTRAINT_SUPPORTED = 3;
+
+	/**
+	 * The feature id for the '<em><b>Primary Key Nullable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT_DEFINITION__PRIMARY_KEY_NULLABLE = 4;
+
+	/**
+	 * The feature id for the '<em><b>Unique Key Nullable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT_DEFINITION__UNIQUE_KEY_NULLABLE = 5;
+
+	/**
+	 * The feature id for the '<em><b>Maximum Check Expression Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT_DEFINITION__MAXIMUM_CHECK_EXPRESSION_LENGTH = 6;
+
+	/**
+	 * The feature id for the '<em><b>Parent Update DRI Rule Type</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT_DEFINITION__PARENT_UPDATE_DRI_RULE_TYPE = 7;
+
+	/**
+	 * The feature id for the '<em><b>Parent Delete DRI Rule Type</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT_DEFINITION__PARENT_DELETE_DRI_RULE_TYPE = 8;
+
+	/**
+	 * The feature id for the '<em><b>Check Option</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT_DEFINITION__CHECK_OPTION = 9;
+
+	/**
+	 * The feature id for the '<em><b>Maximum Primary Key Identifier Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT_DEFINITION__MAXIMUM_PRIMARY_KEY_IDENTIFIER_LENGTH = 10;
+
+	/**
+	 * The feature id for the '<em><b>Maximum Foreign Key Identifier Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT_DEFINITION__MAXIMUM_FOREIGN_KEY_IDENTIFIER_LENGTH = 11;
+
+	/**
+	 * The feature id for the '<em><b>Maximum Check Constraint Identifier Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT_DEFINITION__MAXIMUM_CHECK_CONSTRAINT_IDENTIFIER_LENGTH = 12;
+
+	/**
+	 * The number of structural features of the '<em>Constraint Definition</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT_DEFINITION_FEATURE_COUNT = 13;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.dbdefinition.impl.IndexDefinitionImpl <em>Index Definition</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.IndexDefinitionImpl
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getIndexDefinition()
+	 * @generated
+	 */
+	int INDEX_DEFINITION = 7;
+
+	/**
+	 * The feature id for the '<em><b>Percent Free Terminology</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX_DEFINITION__PERCENT_FREE_TERMINOLOGY = 0;
+
+	/**
+	 * The feature id for the '<em><b>Percent Free Changeable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX_DEFINITION__PERCENT_FREE_CHANGEABLE = 1;
+
+	/**
+	 * The feature id for the '<em><b>Clustering Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX_DEFINITION__CLUSTERING_SUPPORTED = 2;
+
+	/**
+	 * The feature id for the '<em><b>Cluster Changeable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX_DEFINITION__CLUSTER_CHANGEABLE = 3;
+
+	/**
+	 * The feature id for the '<em><b>Fill Factor Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX_DEFINITION__FILL_FACTOR_SUPPORTED = 4;
+
+	/**
+	 * The feature id for the '<em><b>Included Columns Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX_DEFINITION__INCLUDED_COLUMNS_SUPPORTED = 5;
+
+	/**
+	 * The feature id for the '<em><b>Maximum Identifier Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH = 6;
+
+	/**
+	 * The number of structural features of the '<em>Index Definition</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX_DEFINITION_FEATURE_COUNT = 7;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.dbdefinition.impl.ExtendedDefinitionImpl <em>Extended Definition</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.ExtendedDefinitionImpl
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getExtendedDefinition()
+	 * @generated
+	 */
+	int EXTENDED_DEFINITION = 8;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXTENDED_DEFINITION__NAME = 0;
+
+	/**
+	 * The feature id for the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXTENDED_DEFINITION__VALUE = 1;
+
+	/**
+	 * The number of structural features of the '<em>Extended Definition</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXTENDED_DEFINITION_FEATURE_COUNT = 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.dbdefinition.impl.TableDefinitionImpl <em>Table Definition</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.TableDefinitionImpl
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getTableDefinition()
+	 * @generated
+	 */
+	int TABLE_DEFINITION = 9;
+
+	/**
+	 * The feature id for the '<em><b>Audit Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_DEFINITION__AUDIT_SUPPORTED = 0;
+
+	/**
+	 * The feature id for the '<em><b>Data Capture Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_DEFINITION__DATA_CAPTURE_SUPPORTED = 1;
+
+	/**
+	 * The feature id for the '<em><b>Edit Proc Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_DEFINITION__EDIT_PROC_SUPPORTED = 2;
+
+	/**
+	 * The feature id for the '<em><b>Encoding Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_DEFINITION__ENCODING_SUPPORTED = 3;
+
+	/**
+	 * The feature id for the '<em><b>Valid Proc Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_DEFINITION__VALID_PROC_SUPPORTED = 4;
+
+	/**
+	 * The feature id for the '<em><b>Maximum Identifier Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH = 5;
+
+	/**
+	 * The number of structural features of the '<em>Table Definition</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_DEFINITION_FEATURE_COUNT = 6;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.dbdefinition.impl.SequenceDefinitionImpl <em>Sequence Definition</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.SequenceDefinitionImpl
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getSequenceDefinition()
+	 * @generated
+	 */
+	int SEQUENCE_DEFINITION = 10;
+
+	/**
+	 * The feature id for the '<em><b>Predefined Data Type Definitions</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEQUENCE_DEFINITION__PREDEFINED_DATA_TYPE_DEFINITIONS = 0;
+
+	/**
+	 * The feature id for the '<em><b>Default Data Type Definition</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEQUENCE_DEFINITION__DEFAULT_DATA_TYPE_DEFINITION = 1;
+
+	/**
+	 * The feature id for the '<em><b>Type Enumeration Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEQUENCE_DEFINITION__TYPE_ENUMERATION_SUPPORTED = 2;
+
+	/**
+	 * The feature id for the '<em><b>Cache Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEQUENCE_DEFINITION__CACHE_SUPPORTED = 3;
+
+	/**
+	 * The feature id for the '<em><b>Order Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEQUENCE_DEFINITION__ORDER_SUPPORTED = 4;
+
+	/**
+	 * The feature id for the '<em><b>No Maximum Value String</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEQUENCE_DEFINITION__NO_MAXIMUM_VALUE_STRING = 5;
+
+	/**
+	 * The feature id for the '<em><b>No Minimum Value String</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEQUENCE_DEFINITION__NO_MINIMUM_VALUE_STRING = 6;
+
+	/**
+	 * The feature id for the '<em><b>No Cache String</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEQUENCE_DEFINITION__NO_CACHE_STRING = 7;
+
+	/**
+	 * The feature id for the '<em><b>Cache Default Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEQUENCE_DEFINITION__CACHE_DEFAULT_VALUE = 8;
+
+	/**
+	 * The number of structural features of the '<em>Sequence Definition</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEQUENCE_DEFINITION_FEATURE_COUNT = 9;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.dbdefinition.impl.UserDefinedTypeDefinitionImpl <em>User Defined Type Definition</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.UserDefinedTypeDefinitionImpl
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getUserDefinedTypeDefinition()
+	 * @generated
+	 */
+	int USER_DEFINED_TYPE_DEFINITION = 11;
+
+	/**
+	 * The feature id for the '<em><b>Default Value Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_TYPE_DEFINITION__DEFAULT_VALUE_SUPPORTED = 0;
+
+	/**
+	 * The feature id for the '<em><b>Distinct Type Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_TYPE_DEFINITION__DISTINCT_TYPE_SUPPORTED = 1;
+
+	/**
+	 * The feature id for the '<em><b>Structured Type Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_TYPE_DEFINITION__STRUCTURED_TYPE_SUPPORTED = 2;
+
+	/**
+	 * The feature id for the '<em><b>Maximum Identifier Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_TYPE_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH = 3;
+
+	/**
+	 * The number of structural features of the '<em>User Defined Type Definition</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_TYPE_DEFINITION_FEATURE_COUNT = 4;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.dbdefinition.impl.QueryDefinitionImpl <em>Query Definition</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.QueryDefinitionImpl
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getQueryDefinition()
+	 * @generated
+	 */
+	int QUERY_DEFINITION = 12;
+
+	/**
+	 * The feature id for the '<em><b>Identifier Quote String</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int QUERY_DEFINITION__IDENTIFIER_QUOTE_STRING = 0;
+
+	/**
+	 * The feature id for the '<em><b>Host Variable Marker</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int QUERY_DEFINITION__HOST_VARIABLE_MARKER = 1;
+
+	/**
+	 * The feature id for the '<em><b>Host Variable Marker Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int QUERY_DEFINITION__HOST_VARIABLE_MARKER_SUPPORTED = 2;
+
+	/**
+	 * The feature id for the '<em><b>Cast Expression Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int QUERY_DEFINITION__CAST_EXPRESSION_SUPPORTED = 3;
+
+	/**
+	 * The feature id for the '<em><b>Default Keyword For Insert Value Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int QUERY_DEFINITION__DEFAULT_KEYWORD_FOR_INSERT_VALUE_SUPPORTED = 4;
+
+	/**
+	 * The feature id for the '<em><b>Extended Grouping Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int QUERY_DEFINITION__EXTENDED_GROUPING_SUPPORTED = 5;
+
+	/**
+	 * The feature id for the '<em><b>Table Alias In Delete Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int QUERY_DEFINITION__TABLE_ALIAS_IN_DELETE_SUPPORTED = 6;
+
+	/**
+	 * The number of structural features of the '<em>Query Definition</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int QUERY_DEFINITION_FEATURE_COUNT = 7;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.dbdefinition.impl.SQLSyntaxDefinitionImpl <em>SQL Syntax Definition</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.SQLSyntaxDefinitionImpl
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getSQLSyntaxDefinition()
+	 * @generated
+	 */
+	int SQL_SYNTAX_DEFINITION = 13;
+
+	/**
+	 * The feature id for the '<em><b>Keywords</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SQL_SYNTAX_DEFINITION__KEYWORDS = 0;
+
+	/**
+	 * The feature id for the '<em><b>Operators</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SQL_SYNTAX_DEFINITION__OPERATORS = 1;
+
+	/**
+	 * The feature id for the '<em><b>Termination Character</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SQL_SYNTAX_DEFINITION__TERMINATION_CHARACTER = 2;
+
+	/**
+	 * The number of structural features of the '<em>SQL Syntax Definition</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SQL_SYNTAX_DEFINITION_FEATURE_COUNT = 3;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.dbdefinition.impl.NicknameDefinitionImpl <em>Nickname Definition</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.NicknameDefinitionImpl
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getNicknameDefinition()
+	 * @generated
+	 */
+	int NICKNAME_DEFINITION = 14;
+
+	/**
+	 * The feature id for the '<em><b>Constraint Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NICKNAME_DEFINITION__CONSTRAINT_SUPPORTED = 0;
+
+	/**
+	 * The feature id for the '<em><b>Index Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NICKNAME_DEFINITION__INDEX_SUPPORTED = 1;
+
+	/**
+	 * The feature id for the '<em><b>Maximum Identifier Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NICKNAME_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH = 2;
+
+	/**
+	 * The number of structural features of the '<em>Nickname Definition</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NICKNAME_DEFINITION_FEATURE_COUNT = 3;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.dbdefinition.impl.SchemaDefinitionImpl <em>Schema Definition</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.SchemaDefinitionImpl
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getSchemaDefinition()
+	 * @generated
+	 */
+	int SCHEMA_DEFINITION = 15;
+
+	/**
+	 * The feature id for the '<em><b>Maximum Identifier Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SCHEMA_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH = 0;
+
+	/**
+	 * The number of structural features of the '<em>Schema Definition</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SCHEMA_DEFINITION_FEATURE_COUNT = 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.dbdefinition.impl.ViewDefinitionImpl <em>View Definition</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.ViewDefinitionImpl
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getViewDefinition()
+	 * @generated
+	 */
+	int VIEW_DEFINITION = 16;
+
+	/**
+	 * The feature id for the '<em><b>Maximum Identifier Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VIEW_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH = 0;
+
+	/**
+	 * The feature id for the '<em><b>Index Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VIEW_DEFINITION__INDEX_SUPPORTED = 1;
+
+	/**
+	 * The feature id for the '<em><b>Check Option Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VIEW_DEFINITION__CHECK_OPTION_SUPPORTED = 2;
+
+	/**
+	 * The feature id for the '<em><b>Check Option Levels Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VIEW_DEFINITION__CHECK_OPTION_LEVELS_SUPPORTED = 3;
+
+	/**
+	 * The number of structural features of the '<em>View Definition</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VIEW_DEFINITION_FEATURE_COUNT = 4;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.dbdefinition.impl.FieldQualifierDefinitionImpl <em>Field Qualifier Definition</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.FieldQualifierDefinitionImpl
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getFieldQualifierDefinition()
+	 * @generated
+	 */
+	int FIELD_QUALIFIER_DEFINITION = 17;
+
+	/**
+	 * The feature id for the '<em><b>Valid Trailing Field Qualifier Definitions</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FIELD_QUALIFIER_DEFINITION__VALID_TRAILING_FIELD_QUALIFIER_DEFINITIONS = 0;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FIELD_QUALIFIER_DEFINITION__NAME = 1;
+
+	/**
+	 * The feature id for the '<em><b>Maximum Precision</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FIELD_QUALIFIER_DEFINITION__MAXIMUM_PRECISION = 2;
+
+	/**
+	 * The feature id for the '<em><b>Default Precision</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FIELD_QUALIFIER_DEFINITION__DEFAULT_PRECISION = 3;
+
+	/**
+	 * The feature id for the '<em><b>Precision Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FIELD_QUALIFIER_DEFINITION__PRECISION_SUPPORTED = 4;
+
+	/**
+	 * The feature id for the '<em><b>Maximum Scale</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FIELD_QUALIFIER_DEFINITION__MAXIMUM_SCALE = 5;
+
+	/**
+	 * The feature id for the '<em><b>Default Scale</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FIELD_QUALIFIER_DEFINITION__DEFAULT_SCALE = 6;
+
+	/**
+	 * The feature id for the '<em><b>Scale Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FIELD_QUALIFIER_DEFINITION__SCALE_SUPPORTED = 7;
+
+	/**
+	 * The number of structural features of the '<em>Field Qualifier Definition</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FIELD_QUALIFIER_DEFINITION_FEATURE_COUNT = 8;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DebuggerDefinitionImpl <em>Debugger Definition</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DebuggerDefinitionImpl
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getDebuggerDefinition()
+	 * @generated
+	 */
+	int DEBUGGER_DEFINITION = 18;
+
+	/**
+	 * The feature id for the '<em><b>Condition Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DEBUGGER_DEFINITION__CONDITION_SUPPORTED = 0;
+
+	/**
+	 * The number of structural features of the '<em>Debugger Definition</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DEBUGGER_DEFINITION_FEATURE_COUNT = 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PrivilegedElementDefinitionImpl <em>Privileged Element Definition</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.PrivilegedElementDefinitionImpl
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getPrivilegedElementDefinition()
+	 * @generated
+	 */
+	int PRIVILEGED_ELEMENT_DEFINITION = 19;
+
+	/**
+	 * The feature id for the '<em><b>Privilege Definitions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PRIVILEGED_ELEMENT_DEFINITION__PRIVILEGE_DEFINITIONS = 0;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PRIVILEGED_ELEMENT_DEFINITION__NAME = 1;
+
+	/**
+	 * The number of structural features of the '<em>Privileged Element Definition</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PRIVILEGED_ELEMENT_DEFINITION_FEATURE_COUNT = 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PrivilegeDefinitionImpl <em>Privilege Definition</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.PrivilegeDefinitionImpl
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getPrivilegeDefinition()
+	 * @generated
+	 */
+	int PRIVILEGE_DEFINITION = 20;
+
+	/**
+	 * The feature id for the '<em><b>Action Element Definitions</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PRIVILEGE_DEFINITION__ACTION_ELEMENT_DEFINITIONS = 0;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PRIVILEGE_DEFINITION__NAME = 1;
+
+	/**
+	 * The number of structural features of the '<em>Privilege Definition</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PRIVILEGE_DEFINITION_FEATURE_COUNT = 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.dbdefinition.impl.ConstructedDataTypeDefinitionImpl <em>Constructed Data Type Definition</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.ConstructedDataTypeDefinitionImpl
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getConstructedDataTypeDefinition()
+	 * @generated
+	 */
+	int CONSTRUCTED_DATA_TYPE_DEFINITION = 21;
+
+	/**
+	 * The feature id for the '<em><b>Array Datatype Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRUCTED_DATA_TYPE_DEFINITION__ARRAY_DATATYPE_SUPPORTED = 0;
+
+	/**
+	 * The feature id for the '<em><b>Multiset Datatype Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRUCTED_DATA_TYPE_DEFINITION__MULTISET_DATATYPE_SUPPORTED = 1;
+
+	/**
+	 * The feature id for the '<em><b>Row Datatype Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRUCTED_DATA_TYPE_DEFINITION__ROW_DATATYPE_SUPPORTED = 2;
+
+	/**
+	 * The feature id for the '<em><b>Reference Datatype Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRUCTED_DATA_TYPE_DEFINITION__REFERENCE_DATATYPE_SUPPORTED = 3;
+
+	/**
+	 * The feature id for the '<em><b>Cursor Datatype Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRUCTED_DATA_TYPE_DEFINITION__CURSOR_DATATYPE_SUPPORTED = 4;
+
+	/**
+	 * The number of structural features of the '<em>Constructed Data Type Definition</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRUCTED_DATA_TYPE_DEFINITION_FEATURE_COUNT = 5;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.dbdefinition.CheckOption <em>Check Option</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.CheckOption
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getCheckOption()
+	 * @generated
+	 */
+	int CHECK_OPTION = 22;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.dbdefinition.LanguageType <em>Language Type</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.LanguageType
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getLanguageType()
+	 * @generated
+	 */
+	int LANGUAGE_TYPE = 23;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.dbdefinition.ParameterStyle <em>Parameter Style</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ParameterStyle
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getParameterStyle()
+	 * @generated
+	 */
+	int PARAMETER_STYLE = 24;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.dbdefinition.ParentDeleteDRIRuleType <em>Parent Delete DRI Rule Type</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ParentDeleteDRIRuleType
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getParentDeleteDRIRuleType()
+	 * @generated
+	 */
+	int PARENT_DELETE_DRI_RULE_TYPE = 25;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.dbdefinition.ParentUpdateDRIRuleType <em>Parent Update DRI Rule Type</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ParentUpdateDRIRuleType
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getParentUpdateDRIRuleType()
+	 * @generated
+	 */
+	int PARENT_UPDATE_DRI_RULE_TYPE = 26;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.dbdefinition.ProcedureType <em>Procedure Type</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ProcedureType
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getProcedureType()
+	 * @generated
+	 */
+	int PROCEDURE_TYPE = 27;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.dbdefinition.TableSpaceType <em>Table Space Type</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.TableSpaceType
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getTableSpaceType()
+	 * @generated
+	 */
+	int TABLE_SPACE_TYPE = 28;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.dbdefinition.PercentFreeTerminology <em>Percent Free Terminology</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PercentFreeTerminology
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getPercentFreeTerminology()
+	 * @generated
+	 */
+	int PERCENT_FREE_TERMINOLOGY = 29;
+
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.dbdefinition.LengthUnit <em>Length Unit</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.LengthUnit
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getLengthUnit()
+	 * @generated
+	 */
+	int LENGTH_UNIT = 30;
+
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition <em>Database Vendor Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Database Vendor Definition</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition
+	 * @generated
+	 */
+	EClass getDatabaseVendorDefinition();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getVendor <em>Vendor</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Vendor</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getVendor()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EAttribute getDatabaseVendorDefinition_Vendor();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getVersion <em>Version</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Version</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getVersion()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EAttribute getDatabaseVendorDefinition_Version();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isConstraintsSupported <em>Constraints Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Constraints Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isConstraintsSupported()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EAttribute getDatabaseVendorDefinition_ConstraintsSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getMaximumIdentifierLength <em>Maximum Identifier Length</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Maximum Identifier Length</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getMaximumIdentifierLength()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EAttribute getDatabaseVendorDefinition_MaximumIdentifierLength();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isTriggerSupported <em>Trigger Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Trigger Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isTriggerSupported()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EAttribute getDatabaseVendorDefinition_TriggerSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isSnapshotViewSupported <em>Snapshot View Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Snapshot View Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isSnapshotViewSupported()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EAttribute getDatabaseVendorDefinition_SnapshotViewSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isJoinSupported <em>Join Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Join Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isJoinSupported()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EAttribute getDatabaseVendorDefinition_JoinSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isViewTriggerSupported <em>View Trigger Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>View Trigger Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isViewTriggerSupported()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EAttribute getDatabaseVendorDefinition_ViewTriggerSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isTablespacesSupported <em>Tablespaces Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Tablespaces Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isTablespacesSupported()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EAttribute getDatabaseVendorDefinition_TablespacesSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getMaximumCommentLength <em>Maximum Comment Length</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Maximum Comment Length</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getMaximumCommentLength()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EAttribute getDatabaseVendorDefinition_MaximumCommentLength();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isSequenceSupported <em>Sequence Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Sequence Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isSequenceSupported()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EAttribute getDatabaseVendorDefinition_SequenceSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isMQTSupported <em>MQT Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>MQT Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isMQTSupported()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EAttribute getDatabaseVendorDefinition_MQTSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isSchemaSupported <em>Schema Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Schema Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isSchemaSupported()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EAttribute getDatabaseVendorDefinition_SchemaSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isAliasSupported <em>Alias Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Alias Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isAliasSupported()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EAttribute getDatabaseVendorDefinition_AliasSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isSynonymSupported <em>Synonym Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Synonym Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isSynonymSupported()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EAttribute getDatabaseVendorDefinition_SynonymSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isUserDefinedTypeSupported <em>User Defined Type Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>User Defined Type Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isUserDefinedTypeSupported()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EAttribute getDatabaseVendorDefinition_UserDefinedTypeSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isDomainSupported <em>Domain Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Domain Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isDomainSupported()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EAttribute getDatabaseVendorDefinition_DomainSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isSQLStatementSupported <em>SQL Statement Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>SQL Statement Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isSQLStatementSupported()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EAttribute getDatabaseVendorDefinition_SQLStatementSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isNicknameSupported <em>Nickname Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Nickname Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isNicknameSupported()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EAttribute getDatabaseVendorDefinition_NicknameSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isQuotedDMLSupported <em>Quoted DML Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Quoted DML Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isQuotedDMLSupported()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EAttribute getDatabaseVendorDefinition_QuotedDMLSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isQuotedDDLSupported <em>Quoted DDL Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Quoted DDL Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isQuotedDDLSupported()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EAttribute getDatabaseVendorDefinition_QuotedDDLSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isXmlSupported <em>Xml Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Xml Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isXmlSupported()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EAttribute getDatabaseVendorDefinition_XmlSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isMQTIndexSupported <em>MQT Index Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>MQT Index Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isMQTIndexSupported()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EAttribute getDatabaseVendorDefinition_MQTIndexSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isEventSupported <em>Event Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Event Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isEventSupported()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EAttribute getDatabaseVendorDefinition_EventSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isSqlUDFSupported <em>Sql UDF Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Sql UDF Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isSqlUDFSupported()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EAttribute getDatabaseVendorDefinition_SqlUDFSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isStoredProcedureSupported <em>Stored Procedure Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Stored Procedure Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isStoredProcedureSupported()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EAttribute getDatabaseVendorDefinition_StoredProcedureSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isPackageSupported <em>Package Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Package Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isPackageSupported()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EAttribute getDatabaseVendorDefinition_PackageSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isAuthorizationIdentifierSupported <em>Authorization Identifier Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Authorization Identifier Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isAuthorizationIdentifierSupported()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EAttribute getDatabaseVendorDefinition_AuthorizationIdentifierSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isRoleSupported <em>Role Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Role Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isRoleSupported()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EAttribute getDatabaseVendorDefinition_RoleSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isGroupSupported <em>Group Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Group Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isGroupSupported()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EAttribute getDatabaseVendorDefinition_GroupSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isUserSupported <em>User Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>User Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isUserSupported()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EAttribute getDatabaseVendorDefinition_UserSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isRoleAuthorizationSupported <em>Role Authorization Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Role Authorization Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isRoleAuthorizationSupported()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EAttribute getDatabaseVendorDefinition_RoleAuthorizationSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isConstructedDataTypeSupported <em>Constructed Data Type Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Constructed Data Type Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isConstructedDataTypeSupported()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EAttribute getDatabaseVendorDefinition_ConstructedDataTypeSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isUDFSupported <em>UDF Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>UDF Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isUDFSupported()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EAttribute getDatabaseVendorDefinition_UDFSupported();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getPredefinedDataTypeDefinitions <em>Predefined Data Type Definitions</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Predefined Data Type Definitions</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getPredefinedDataTypeDefinitions()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EReference getDatabaseVendorDefinition_PredefinedDataTypeDefinitions();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getTableSpaceDefinition <em>Table Space Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Table Space Definition</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getTableSpaceDefinition()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EReference getDatabaseVendorDefinition_TableSpaceDefinition();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getStoredProcedureDefinition <em>Stored Procedure Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Stored Procedure Definition</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getStoredProcedureDefinition()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EReference getDatabaseVendorDefinition_StoredProcedureDefinition();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getTriggerDefinition <em>Trigger Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Trigger Definition</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getTriggerDefinition()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EReference getDatabaseVendorDefinition_TriggerDefinition();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getColumnDefinition <em>Column Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Column Definition</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getColumnDefinition()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EReference getDatabaseVendorDefinition_ColumnDefinition();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getConstraintDefinition <em>Constraint Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Constraint Definition</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getConstraintDefinition()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EReference getDatabaseVendorDefinition_ConstraintDefinition();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getExtendedDefinitions <em>Extended Definitions</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Extended Definitions</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getExtendedDefinitions()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EReference getDatabaseVendorDefinition_ExtendedDefinitions();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getIndexDefinition <em>Index Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Index Definition</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getIndexDefinition()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EReference getDatabaseVendorDefinition_IndexDefinition();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getTableDefinition <em>Table Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Table Definition</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getTableDefinition()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EReference getDatabaseVendorDefinition_TableDefinition();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getSequenceDefinition <em>Sequence Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Sequence Definition</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getSequenceDefinition()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EReference getDatabaseVendorDefinition_SequenceDefinition();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getUdtDefinition <em>Udt Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Udt Definition</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getUdtDefinition()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EReference getDatabaseVendorDefinition_UdtDefinition();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getQueryDefinition <em>Query Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Query Definition</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getQueryDefinition()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EReference getDatabaseVendorDefinition_QueryDefinition();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getSQLSyntaxDefinition <em>SQL Syntax Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>SQL Syntax Definition</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getSQLSyntaxDefinition()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EReference getDatabaseVendorDefinition_SQLSyntaxDefinition();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getNicknameDefinition <em>Nickname Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Nickname Definition</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getNicknameDefinition()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EReference getDatabaseVendorDefinition_NicknameDefinition();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getSchemaDefinition <em>Schema Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Schema Definition</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getSchemaDefinition()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EReference getDatabaseVendorDefinition_SchemaDefinition();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getViewDefinition <em>View Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>View Definition</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getViewDefinition()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EReference getDatabaseVendorDefinition_ViewDefinition();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getDebuggerDefinition <em>Debugger Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Debugger Definition</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getDebuggerDefinition()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EReference getDatabaseVendorDefinition_DebuggerDefinition();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getPrivilegedElementDefinitions <em>Privileged Element Definitions</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Privileged Element Definitions</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getPrivilegedElementDefinitions()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EReference getDatabaseVendorDefinition_PrivilegedElementDefinitions();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getConstructedDataTypeDefinition <em>Constructed Data Type Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Constructed Data Type Definition</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getConstructedDataTypeDefinition()
+	 * @see #getDatabaseVendorDefinition()
+	 * @generated
+	 */
+	EReference getDatabaseVendorDefinition_ConstructedDataTypeDefinition();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition <em>Predefined Data Type Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Predefined Data Type Definition</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition
+	 * @generated
+	 */
+	EClass getPredefinedDataTypeDefinition();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getLeadingFieldQualifierDefinition <em>Leading Field Qualifier Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Leading Field Qualifier Definition</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getLeadingFieldQualifierDefinition()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EReference getPredefinedDataTypeDefinition_LeadingFieldQualifierDefinition();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getTrailingFieldQualifierDefinition <em>Trailing Field Qualifier Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Trailing Field Qualifier Definition</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getTrailingFieldQualifierDefinition()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EReference getPredefinedDataTypeDefinition_TrailingFieldQualifierDefinition();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getDefaultTrailingFieldQualifierDefinition <em>Default Trailing Field Qualifier Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Default Trailing Field Qualifier Definition</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getDefaultTrailingFieldQualifierDefinition()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EReference getPredefinedDataTypeDefinition_DefaultTrailingFieldQualifierDefinition();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getDefaultLeadingFieldQualifierDefinition <em>Default Leading Field Qualifier Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Default Leading Field Qualifier Definition</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getDefaultLeadingFieldQualifierDefinition()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EReference getPredefinedDataTypeDefinition_DefaultLeadingFieldQualifierDefinition();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isLengthSupported <em>Length Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Length Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isLengthSupported()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getPredefinedDataTypeDefinition_LengthSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isScaleSupported <em>Scale Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Scale Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isScaleSupported()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getPredefinedDataTypeDefinition_ScaleSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isPrecisionSupported <em>Precision Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Precision Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isPrecisionSupported()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getPredefinedDataTypeDefinition_PrecisionSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isKeyConstraintSupported <em>Key Constraint Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Key Constraint Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isKeyConstraintSupported()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getPredefinedDataTypeDefinition_KeyConstraintSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isIdentitySupported <em>Identity Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Identity Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isIdentitySupported()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getPredefinedDataTypeDefinition_IdentitySupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isMultipleColumnsSupported <em>Multiple Columns Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Multiple Columns Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isMultipleColumnsSupported()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getPredefinedDataTypeDefinition_MultipleColumnsSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isNullableSupported <em>Nullable Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Nullable Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isNullableSupported()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getPredefinedDataTypeDefinition_NullableSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isDefaultSupported <em>Default Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Default Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isDefaultSupported()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getPredefinedDataTypeDefinition_DefaultSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isClusteringSupported <em>Clustering Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Clustering Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isClusteringSupported()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getPredefinedDataTypeDefinition_ClusteringSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isFillFactorSupported <em>Fill Factor Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Fill Factor Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isFillFactorSupported()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getPredefinedDataTypeDefinition_FillFactorSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isBitDataSupported <em>Bit Data Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Bit Data Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isBitDataSupported()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getPredefinedDataTypeDefinition_BitDataSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getMaximumValue <em>Maximum Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Maximum Value</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getMaximumValue()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getPredefinedDataTypeDefinition_MaximumValue();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getMinimumValue <em>Minimum Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Minimum Value</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getMinimumValue()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getPredefinedDataTypeDefinition_MinimumValue();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getMaximumLength <em>Maximum Length</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Maximum Length</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getMaximumLength()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getPredefinedDataTypeDefinition_MaximumLength();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getMaximumPrecision <em>Maximum Precision</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Maximum Precision</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getMaximumPrecision()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getPredefinedDataTypeDefinition_MaximumPrecision();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getMaximumScale <em>Maximum Scale</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Maximum Scale</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getMaximumScale()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getPredefinedDataTypeDefinition_MaximumScale();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getMinimumScale <em>Minimum Scale</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Minimum Scale</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getMinimumScale()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getPredefinedDataTypeDefinition_MinimumScale();
+
+	/**
+	 * Returns the meta object for the attribute list '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getDefaultValueTypes <em>Default Value Types</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute list '<em>Default Value Types</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getDefaultValueTypes()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getPredefinedDataTypeDefinition_DefaultValueTypes();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getPrimitiveType <em>Primitive Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Primitive Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getPrimitiveType()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getPredefinedDataTypeDefinition_PrimitiveType();
+
+	/**
+	 * Returns the meta object for the attribute list '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getName <em>Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute list '<em>Name</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getName()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getPredefinedDataTypeDefinition_Name();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getJdbcEnumType <em>Jdbc Enum Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Jdbc Enum Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getJdbcEnumType()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getPredefinedDataTypeDefinition_JdbcEnumType();
+
+	/**
+	 * Returns the meta object for the attribute list '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getCharacterSet <em>Character Set</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute list '<em>Character Set</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getCharacterSet()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getPredefinedDataTypeDefinition_CharacterSet();
+
+	/**
+	 * Returns the meta object for the attribute list '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getEncodingScheme <em>Encoding Scheme</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute list '<em>Encoding Scheme</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getEncodingScheme()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getPredefinedDataTypeDefinition_EncodingScheme();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getCharacterSetSuffix <em>Character Set Suffix</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Character Set Suffix</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getCharacterSetSuffix()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getPredefinedDataTypeDefinition_CharacterSetSuffix();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getEncodingSchemeSuffix <em>Encoding Scheme Suffix</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Encoding Scheme Suffix</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getEncodingSchemeSuffix()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getPredefinedDataTypeDefinition_EncodingSchemeSuffix();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getJavaClassName <em>Java Class Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Java Class Name</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getJavaClassName()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getPredefinedDataTypeDefinition_JavaClassName();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getDefaultLength <em>Default Length</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Default Length</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getDefaultLength()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getPredefinedDataTypeDefinition_DefaultLength();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getDefaultPrecision <em>Default Precision</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Default Precision</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getDefaultPrecision()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getPredefinedDataTypeDefinition_DefaultPrecision();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getDefaultScale <em>Default Scale</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Default Scale</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getDefaultScale()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getPredefinedDataTypeDefinition_DefaultScale();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getCutoffPrecision <em>Cutoff Precision</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Cutoff Precision</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getCutoffPrecision()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getPredefinedDataTypeDefinition_CutoffPrecision();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getLengthUnit <em>Length Unit</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Length Unit</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getLengthUnit()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getPredefinedDataTypeDefinition_LengthUnit();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isOrderingSupported <em>Ordering Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Ordering Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isOrderingSupported()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getPredefinedDataTypeDefinition_OrderingSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isGroupingSupported <em>Grouping Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Grouping Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isGroupingSupported()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getPredefinedDataTypeDefinition_GroupingSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getDisplayName <em>Display Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Display Name</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getDisplayName()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getPredefinedDataTypeDefinition_DisplayName();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isDisplayNameSupported <em>Display Name Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Display Name Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isDisplayNameSupported()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getPredefinedDataTypeDefinition_DisplayNameSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isLeadingFieldQualifierSupported <em>Leading Field Qualifier Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Leading Field Qualifier Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isLeadingFieldQualifierSupported()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getPredefinedDataTypeDefinition_LeadingFieldQualifierSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isTrailingFieldQualifierSupported <em>Trailing Field Qualifier Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Trailing Field Qualifier Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isTrailingFieldQualifierSupported()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getPredefinedDataTypeDefinition_TrailingFieldQualifierSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getFieldQualifierSeparator <em>Field Qualifier Separator</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Field Qualifier Separator</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getFieldQualifierSeparator()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getPredefinedDataTypeDefinition_FieldQualifierSeparator();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isLargeValueSpecifierSupported <em>Large Value Specifier Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Large Value Specifier Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isLargeValueSpecifierSupported()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getPredefinedDataTypeDefinition_LargeValueSpecifierSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getLargeValueSpecifierName <em>Large Value Specifier Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Large Value Specifier Name</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getLargeValueSpecifierName()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getPredefinedDataTypeDefinition_LargeValueSpecifierName();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getLargeValueSpecifierLength <em>Large Value Specifier Length</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Large Value Specifier Length</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getLargeValueSpecifierLength()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getPredefinedDataTypeDefinition_LargeValueSpecifierLength();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isLengthSemanticSupported <em>Length Semantic Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Length Semantic Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isLengthSemanticSupported()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getPredefinedDataTypeDefinition_LengthSemanticSupported();
+
+	/**
+	 * Returns the meta object for the attribute list '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getLengthSemantic <em>Length Semantic</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute list '<em>Length Semantic</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getLengthSemantic()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getPredefinedDataTypeDefinition_LengthSemantic();
+
+	/**
+	 * Returns the meta object for the attribute list '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getLanguageType <em>Language Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute list '<em>Language Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getLanguageType()
+	 * @see #getPredefinedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getPredefinedDataTypeDefinition_LanguageType();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition <em>Table Space Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Table Space Definition</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition
+	 * @generated
+	 */
+	EClass getTableSpaceDefinition();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition#isTypeSupported <em>Type Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition#isTypeSupported()
+	 * @see #getTableSpaceDefinition()
+	 * @generated
+	 */
+	EAttribute getTableSpaceDefinition_TypeSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition#isExtentSizeSupported <em>Extent Size Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Extent Size Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition#isExtentSizeSupported()
+	 * @see #getTableSpaceDefinition()
+	 * @generated
+	 */
+	EAttribute getTableSpaceDefinition_ExtentSizeSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition#isPrefetchSizeSupported <em>Prefetch Size Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Prefetch Size Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition#isPrefetchSizeSupported()
+	 * @see #getTableSpaceDefinition()
+	 * @generated
+	 */
+	EAttribute getTableSpaceDefinition_PrefetchSizeSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition#isManagedBySupported <em>Managed By Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Managed By Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition#isManagedBySupported()
+	 * @see #getTableSpaceDefinition()
+	 * @generated
+	 */
+	EAttribute getTableSpaceDefinition_ManagedBySupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition#isPageSizeSupported <em>Page Size Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Page Size Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition#isPageSizeSupported()
+	 * @see #getTableSpaceDefinition()
+	 * @generated
+	 */
+	EAttribute getTableSpaceDefinition_PageSizeSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition#isBufferPoolSupported <em>Buffer Pool Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Buffer Pool Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition#isBufferPoolSupported()
+	 * @see #getTableSpaceDefinition()
+	 * @generated
+	 */
+	EAttribute getTableSpaceDefinition_BufferPoolSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition#isDefaultSupported <em>Default Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Default Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition#isDefaultSupported()
+	 * @see #getTableSpaceDefinition()
+	 * @generated
+	 */
+	EAttribute getTableSpaceDefinition_DefaultSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition#isContainerMaximumSizeSupported <em>Container Maximum Size Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Container Maximum Size Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition#isContainerMaximumSizeSupported()
+	 * @see #getTableSpaceDefinition()
+	 * @generated
+	 */
+	EAttribute getTableSpaceDefinition_ContainerMaximumSizeSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition#isContainerInitialSizeSupported <em>Container Initial Size Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Container Initial Size Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition#isContainerInitialSizeSupported()
+	 * @see #getTableSpaceDefinition()
+	 * @generated
+	 */
+	EAttribute getTableSpaceDefinition_ContainerInitialSizeSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition#isContainerExtentSizeSupported <em>Container Extent Size Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Container Extent Size Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition#isContainerExtentSizeSupported()
+	 * @see #getTableSpaceDefinition()
+	 * @generated
+	 */
+	EAttribute getTableSpaceDefinition_ContainerExtentSizeSupported();
+
+	/**
+	 * Returns the meta object for the attribute list '{@link org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition#getTableSpaceType <em>Table Space Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute list '<em>Table Space Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition#getTableSpaceType()
+	 * @see #getTableSpaceDefinition()
+	 * @generated
+	 */
+	EAttribute getTableSpaceDefinition_TableSpaceType();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition#getMaximumIdentifierLength <em>Maximum Identifier Length</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Maximum Identifier Length</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition#getMaximumIdentifierLength()
+	 * @see #getTableSpaceDefinition()
+	 * @generated
+	 */
+	EAttribute getTableSpaceDefinition_MaximumIdentifierLength();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition <em>Stored Procedure Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Stored Procedure Definition</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition
+	 * @generated
+	 */
+	EClass getStoredProcedureDefinition();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#getPredefinedDataTypeDefinitions <em>Predefined Data Type Definitions</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Predefined Data Type Definitions</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#getPredefinedDataTypeDefinitions()
+	 * @see #getStoredProcedureDefinition()
+	 * @generated
+	 */
+	EReference getStoredProcedureDefinition_PredefinedDataTypeDefinitions();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#isNullInputActionSupported <em>Null Input Action Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Null Input Action Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#isNullInputActionSupported()
+	 * @see #getStoredProcedureDefinition()
+	 * @generated
+	 */
+	EAttribute getStoredProcedureDefinition_NullInputActionSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#isPackageGenerationSupported <em>Package Generation Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Package Generation Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#isPackageGenerationSupported()
+	 * @see #getStoredProcedureDefinition()
+	 * @generated
+	 */
+	EAttribute getStoredProcedureDefinition_PackageGenerationSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#isDetermininsticSupported <em>Determininstic Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Determininstic Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#isDetermininsticSupported()
+	 * @see #getStoredProcedureDefinition()
+	 * @generated
+	 */
+	EAttribute getStoredProcedureDefinition_DetermininsticSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#isReturnedNullSupported <em>Returned Null Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Returned Null Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#isReturnedNullSupported()
+	 * @see #getStoredProcedureDefinition()
+	 * @generated
+	 */
+	EAttribute getStoredProcedureDefinition_ReturnedNullSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#isReturnedTypeDeclarationConstraintSupported <em>Returned Type Declaration Constraint Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Returned Type Declaration Constraint Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#isReturnedTypeDeclarationConstraintSupported()
+	 * @see #getStoredProcedureDefinition()
+	 * @generated
+	 */
+	EAttribute getStoredProcedureDefinition_ReturnedTypeDeclarationConstraintSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#isParameterInitValueSupported <em>Parameter Init Value Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Parameter Init Value Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#isParameterInitValueSupported()
+	 * @see #getStoredProcedureDefinition()
+	 * @generated
+	 */
+	EAttribute getStoredProcedureDefinition_ParameterInitValueSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#isParameterStyleSupported <em>Parameter Style Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Parameter Style Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#isParameterStyleSupported()
+	 * @see #getStoredProcedureDefinition()
+	 * @generated
+	 */
+	EAttribute getStoredProcedureDefinition_ParameterStyleSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#isReturnTypeSupported <em>Return Type Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Return Type Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#isReturnTypeSupported()
+	 * @see #getStoredProcedureDefinition()
+	 * @generated
+	 */
+	EAttribute getStoredProcedureDefinition_ReturnTypeSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#isParameterDeclarationConstraintSupported <em>Parameter Declaration Constraint Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Parameter Declaration Constraint Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#isParameterDeclarationConstraintSupported()
+	 * @see #getStoredProcedureDefinition()
+	 * @generated
+	 */
+	EAttribute getStoredProcedureDefinition_ParameterDeclarationConstraintSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#getMaximumActionBodyLength <em>Maximum Action Body Length</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Maximum Action Body Length</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#getMaximumActionBodyLength()
+	 * @see #getStoredProcedureDefinition()
+	 * @generated
+	 */
+	EAttribute getStoredProcedureDefinition_MaximumActionBodyLength();
+
+	/**
+	 * Returns the meta object for the attribute list '{@link org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#getParameterStyle <em>Parameter Style</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute list '<em>Parameter Style</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#getParameterStyle()
+	 * @see #getStoredProcedureDefinition()
+	 * @generated
+	 */
+	EAttribute getStoredProcedureDefinition_ParameterStyle();
+
+	/**
+	 * Returns the meta object for the attribute list '{@link org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#getLanguageType <em>Language Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute list '<em>Language Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#getLanguageType()
+	 * @see #getStoredProcedureDefinition()
+	 * @generated
+	 */
+	EAttribute getStoredProcedureDefinition_LanguageType();
+
+	/**
+	 * Returns the meta object for the attribute list '{@link org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#getFunctionLanguageType <em>Function Language Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute list '<em>Function Language Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#getFunctionLanguageType()
+	 * @see #getStoredProcedureDefinition()
+	 * @generated
+	 */
+	EAttribute getStoredProcedureDefinition_FunctionLanguageType();
+
+	/**
+	 * Returns the meta object for the attribute list '{@link org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#getProcedureType <em>Procedure Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute list '<em>Procedure Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#getProcedureType()
+	 * @see #getStoredProcedureDefinition()
+	 * @generated
+	 */
+	EAttribute getStoredProcedureDefinition_ProcedureType();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#getMaximumIdentifierLength <em>Maximum Identifier Length</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Maximum Identifier Length</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#getMaximumIdentifierLength()
+	 * @see #getStoredProcedureDefinition()
+	 * @generated
+	 */
+	EAttribute getStoredProcedureDefinition_MaximumIdentifierLength();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition <em>Trigger Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Trigger Definition</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition
+	 * @generated
+	 */
+	EClass getTriggerDefinition();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition#getMaximumReferencePartLength <em>Maximum Reference Part Length</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Maximum Reference Part Length</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition#getMaximumReferencePartLength()
+	 * @see #getTriggerDefinition()
+	 * @generated
+	 */
+	EAttribute getTriggerDefinition_MaximumReferencePartLength();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition#getMaximumActionBodyLength <em>Maximum Action Body Length</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Maximum Action Body Length</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition#getMaximumActionBodyLength()
+	 * @see #getTriggerDefinition()
+	 * @generated
+	 */
+	EAttribute getTriggerDefinition_MaximumActionBodyLength();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition#isTypeSupported <em>Type Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition#isTypeSupported()
+	 * @see #getTriggerDefinition()
+	 * @generated
+	 */
+	EAttribute getTriggerDefinition_TypeSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition#isWhenClauseSupported <em>When Clause Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>When Clause Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition#isWhenClauseSupported()
+	 * @see #getTriggerDefinition()
+	 * @generated
+	 */
+	EAttribute getTriggerDefinition_WhenClauseSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition#isGranularitySupported <em>Granularity Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Granularity Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition#isGranularitySupported()
+	 * @see #getTriggerDefinition()
+	 * @generated
+	 */
+	EAttribute getTriggerDefinition_GranularitySupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition#isReferencesClauseSupported <em>References Clause Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>References Clause Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition#isReferencesClauseSupported()
+	 * @see #getTriggerDefinition()
+	 * @generated
+	 */
+	EAttribute getTriggerDefinition_ReferencesClauseSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition#isPerColumnUpdateTriggerSupported <em>Per Column Update Trigger Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Per Column Update Trigger Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition#isPerColumnUpdateTriggerSupported()
+	 * @see #getTriggerDefinition()
+	 * @generated
+	 */
+	EAttribute getTriggerDefinition_PerColumnUpdateTriggerSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition#isInsteadOfTriggerSupported <em>Instead Of Trigger Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Instead Of Trigger Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition#isInsteadOfTriggerSupported()
+	 * @see #getTriggerDefinition()
+	 * @generated
+	 */
+	EAttribute getTriggerDefinition_InsteadOfTriggerSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition#isRowTriggerReferenceSupported <em>Row Trigger Reference Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Row Trigger Reference Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition#isRowTriggerReferenceSupported()
+	 * @see #getTriggerDefinition()
+	 * @generated
+	 */
+	EAttribute getTriggerDefinition_RowTriggerReferenceSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition#isTableTriggerReferenceSupported <em>Table Trigger Reference Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Table Trigger Reference Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition#isTableTriggerReferenceSupported()
+	 * @see #getTriggerDefinition()
+	 * @generated
+	 */
+	EAttribute getTriggerDefinition_TableTriggerReferenceSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition#getMaximumIdentifierLength <em>Maximum Identifier Length</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Maximum Identifier Length</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition#getMaximumIdentifierLength()
+	 * @see #getTriggerDefinition()
+	 * @generated
+	 */
+	EAttribute getTriggerDefinition_MaximumIdentifierLength();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.dbdefinition.ColumnDefinition <em>Column Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Column Definition</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ColumnDefinition
+	 * @generated
+	 */
+	EClass getColumnDefinition();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.dbdefinition.ColumnDefinition#getIdentityColumnDataTypeDefinitions <em>Identity Column Data Type Definitions</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Identity Column Data Type Definitions</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ColumnDefinition#getIdentityColumnDataTypeDefinitions()
+	 * @see #getColumnDefinition()
+	 * @generated
+	 */
+	EReference getColumnDefinition_IdentityColumnDataTypeDefinitions();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.ColumnDefinition#isIdentitySupported <em>Identity Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Identity Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ColumnDefinition#isIdentitySupported()
+	 * @see #getColumnDefinition()
+	 * @generated
+	 */
+	EAttribute getColumnDefinition_IdentitySupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.ColumnDefinition#isComputedSupported <em>Computed Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Computed Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ColumnDefinition#isComputedSupported()
+	 * @see #getColumnDefinition()
+	 * @generated
+	 */
+	EAttribute getColumnDefinition_ComputedSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.ColumnDefinition#isIdentityStartValueSupported <em>Identity Start Value Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Identity Start Value Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ColumnDefinition#isIdentityStartValueSupported()
+	 * @see #getColumnDefinition()
+	 * @generated
+	 */
+	EAttribute getColumnDefinition_IdentityStartValueSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.ColumnDefinition#isIdentityIncrementSupported <em>Identity Increment Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Identity Increment Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ColumnDefinition#isIdentityIncrementSupported()
+	 * @see #getColumnDefinition()
+	 * @generated
+	 */
+	EAttribute getColumnDefinition_IdentityIncrementSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.ColumnDefinition#isIdentityMinimumSupported <em>Identity Minimum Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Identity Minimum Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ColumnDefinition#isIdentityMinimumSupported()
+	 * @see #getColumnDefinition()
+	 * @generated
+	 */
+	EAttribute getColumnDefinition_IdentityMinimumSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.ColumnDefinition#isIdentityMaximumSupported <em>Identity Maximum Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Identity Maximum Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ColumnDefinition#isIdentityMaximumSupported()
+	 * @see #getColumnDefinition()
+	 * @generated
+	 */
+	EAttribute getColumnDefinition_IdentityMaximumSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.ColumnDefinition#isIdentityCycleSupported <em>Identity Cycle Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Identity Cycle Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ColumnDefinition#isIdentityCycleSupported()
+	 * @see #getColumnDefinition()
+	 * @generated
+	 */
+	EAttribute getColumnDefinition_IdentityCycleSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.ColumnDefinition#getMaximumIdentifierLength <em>Maximum Identifier Length</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Maximum Identifier Length</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ColumnDefinition#getMaximumIdentifierLength()
+	 * @see #getColumnDefinition()
+	 * @generated
+	 */
+	EAttribute getColumnDefinition_MaximumIdentifierLength();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition <em>Constraint Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Constraint Definition</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition
+	 * @generated
+	 */
+	EClass getConstraintDefinition();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#isDeferrableConstraintSupported <em>Deferrable Constraint Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Deferrable Constraint Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#isDeferrableConstraintSupported()
+	 * @see #getConstraintDefinition()
+	 * @generated
+	 */
+	EAttribute getConstraintDefinition_DeferrableConstraintSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#isInformationalConstraintSupported <em>Informational Constraint Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Informational Constraint Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#isInformationalConstraintSupported()
+	 * @see #getConstraintDefinition()
+	 * @generated
+	 */
+	EAttribute getConstraintDefinition_InformationalConstraintSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#isClusteredPrimaryKeySupported <em>Clustered Primary Key Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Clustered Primary Key Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#isClusteredPrimaryKeySupported()
+	 * @see #getConstraintDefinition()
+	 * @generated
+	 */
+	EAttribute getConstraintDefinition_ClusteredPrimaryKeySupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#isClusteredUniqueConstraintSupported <em>Clustered Unique Constraint Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Clustered Unique Constraint Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#isClusteredUniqueConstraintSupported()
+	 * @see #getConstraintDefinition()
+	 * @generated
+	 */
+	EAttribute getConstraintDefinition_ClusteredUniqueConstraintSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#isPrimaryKeyNullable <em>Primary Key Nullable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Primary Key Nullable</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#isPrimaryKeyNullable()
+	 * @see #getConstraintDefinition()
+	 * @generated
+	 */
+	EAttribute getConstraintDefinition_PrimaryKeyNullable();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#isUniqueKeyNullable <em>Unique Key Nullable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Unique Key Nullable</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#isUniqueKeyNullable()
+	 * @see #getConstraintDefinition()
+	 * @generated
+	 */
+	EAttribute getConstraintDefinition_UniqueKeyNullable();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#getMaximumCheckExpressionLength <em>Maximum Check Expression Length</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Maximum Check Expression Length</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#getMaximumCheckExpressionLength()
+	 * @see #getConstraintDefinition()
+	 * @generated
+	 */
+	EAttribute getConstraintDefinition_MaximumCheckExpressionLength();
+
+	/**
+	 * Returns the meta object for the attribute list '{@link org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#getParentUpdateDRIRuleType <em>Parent Update DRI Rule Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute list '<em>Parent Update DRI Rule Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#getParentUpdateDRIRuleType()
+	 * @see #getConstraintDefinition()
+	 * @generated
+	 */
+	EAttribute getConstraintDefinition_ParentUpdateDRIRuleType();
+
+	/**
+	 * Returns the meta object for the attribute list '{@link org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#getParentDeleteDRIRuleType <em>Parent Delete DRI Rule Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute list '<em>Parent Delete DRI Rule Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#getParentDeleteDRIRuleType()
+	 * @see #getConstraintDefinition()
+	 * @generated
+	 */
+	EAttribute getConstraintDefinition_ParentDeleteDRIRuleType();
+
+	/**
+	 * Returns the meta object for the attribute list '{@link org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#getCheckOption <em>Check Option</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute list '<em>Check Option</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#getCheckOption()
+	 * @see #getConstraintDefinition()
+	 * @generated
+	 */
+	EAttribute getConstraintDefinition_CheckOption();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#getMaximumPrimaryKeyIdentifierLength <em>Maximum Primary Key Identifier Length</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Maximum Primary Key Identifier Length</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#getMaximumPrimaryKeyIdentifierLength()
+	 * @see #getConstraintDefinition()
+	 * @generated
+	 */
+	EAttribute getConstraintDefinition_MaximumPrimaryKeyIdentifierLength();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#getMaximumForeignKeyIdentifierLength <em>Maximum Foreign Key Identifier Length</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Maximum Foreign Key Identifier Length</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#getMaximumForeignKeyIdentifierLength()
+	 * @see #getConstraintDefinition()
+	 * @generated
+	 */
+	EAttribute getConstraintDefinition_MaximumForeignKeyIdentifierLength();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#getMaximumCheckConstraintIdentifierLength <em>Maximum Check Constraint Identifier Length</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Maximum Check Constraint Identifier Length</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition#getMaximumCheckConstraintIdentifierLength()
+	 * @see #getConstraintDefinition()
+	 * @generated
+	 */
+	EAttribute getConstraintDefinition_MaximumCheckConstraintIdentifierLength();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.dbdefinition.IndexDefinition <em>Index Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Index Definition</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.IndexDefinition
+	 * @generated
+	 */
+	EClass getIndexDefinition();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.IndexDefinition#getPercentFreeTerminology <em>Percent Free Terminology</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Percent Free Terminology</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.IndexDefinition#getPercentFreeTerminology()
+	 * @see #getIndexDefinition()
+	 * @generated
+	 */
+	EAttribute getIndexDefinition_PercentFreeTerminology();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.IndexDefinition#isPercentFreeChangeable <em>Percent Free Changeable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Percent Free Changeable</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.IndexDefinition#isPercentFreeChangeable()
+	 * @see #getIndexDefinition()
+	 * @generated
+	 */
+	EAttribute getIndexDefinition_PercentFreeChangeable();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.IndexDefinition#isClusteringSupported <em>Clustering Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Clustering Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.IndexDefinition#isClusteringSupported()
+	 * @see #getIndexDefinition()
+	 * @generated
+	 */
+	EAttribute getIndexDefinition_ClusteringSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.IndexDefinition#isClusterChangeable <em>Cluster Changeable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Cluster Changeable</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.IndexDefinition#isClusterChangeable()
+	 * @see #getIndexDefinition()
+	 * @generated
+	 */
+	EAttribute getIndexDefinition_ClusterChangeable();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.IndexDefinition#isFillFactorSupported <em>Fill Factor Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Fill Factor Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.IndexDefinition#isFillFactorSupported()
+	 * @see #getIndexDefinition()
+	 * @generated
+	 */
+	EAttribute getIndexDefinition_FillFactorSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.IndexDefinition#isIncludedColumnsSupported <em>Included Columns Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Included Columns Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.IndexDefinition#isIncludedColumnsSupported()
+	 * @see #getIndexDefinition()
+	 * @generated
+	 */
+	EAttribute getIndexDefinition_IncludedColumnsSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.IndexDefinition#getMaximumIdentifierLength <em>Maximum Identifier Length</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Maximum Identifier Length</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.IndexDefinition#getMaximumIdentifierLength()
+	 * @see #getIndexDefinition()
+	 * @generated
+	 */
+	EAttribute getIndexDefinition_MaximumIdentifierLength();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.dbdefinition.ExtendedDefinition <em>Extended Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Extended Definition</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ExtendedDefinition
+	 * @generated
+	 */
+	EClass getExtendedDefinition();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.ExtendedDefinition#getName <em>Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Name</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ExtendedDefinition#getName()
+	 * @see #getExtendedDefinition()
+	 * @generated
+	 */
+	EAttribute getExtendedDefinition_Name();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.ExtendedDefinition#getValue <em>Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Value</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ExtendedDefinition#getValue()
+	 * @see #getExtendedDefinition()
+	 * @generated
+	 */
+	EAttribute getExtendedDefinition_Value();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.dbdefinition.TableDefinition <em>Table Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Table Definition</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.TableDefinition
+	 * @generated
+	 */
+	EClass getTableDefinition();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.TableDefinition#isAuditSupported <em>Audit Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Audit Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.TableDefinition#isAuditSupported()
+	 * @see #getTableDefinition()
+	 * @generated
+	 */
+	EAttribute getTableDefinition_AuditSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.TableDefinition#isDataCaptureSupported <em>Data Capture Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Data Capture Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.TableDefinition#isDataCaptureSupported()
+	 * @see #getTableDefinition()
+	 * @generated
+	 */
+	EAttribute getTableDefinition_DataCaptureSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.TableDefinition#isEditProcSupported <em>Edit Proc Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Edit Proc Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.TableDefinition#isEditProcSupported()
+	 * @see #getTableDefinition()
+	 * @generated
+	 */
+	EAttribute getTableDefinition_EditProcSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.TableDefinition#isEncodingSupported <em>Encoding Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Encoding Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.TableDefinition#isEncodingSupported()
+	 * @see #getTableDefinition()
+	 * @generated
+	 */
+	EAttribute getTableDefinition_EncodingSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.TableDefinition#isValidProcSupported <em>Valid Proc Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Valid Proc Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.TableDefinition#isValidProcSupported()
+	 * @see #getTableDefinition()
+	 * @generated
+	 */
+	EAttribute getTableDefinition_ValidProcSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.TableDefinition#getMaximumIdentifierLength <em>Maximum Identifier Length</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Maximum Identifier Length</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.TableDefinition#getMaximumIdentifierLength()
+	 * @see #getTableDefinition()
+	 * @generated
+	 */
+	EAttribute getTableDefinition_MaximumIdentifierLength();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.dbdefinition.SequenceDefinition <em>Sequence Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Sequence Definition</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.SequenceDefinition
+	 * @generated
+	 */
+	EClass getSequenceDefinition();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.dbdefinition.SequenceDefinition#getPredefinedDataTypeDefinitions <em>Predefined Data Type Definitions</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Predefined Data Type Definitions</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.SequenceDefinition#getPredefinedDataTypeDefinitions()
+	 * @see #getSequenceDefinition()
+	 * @generated
+	 */
+	EReference getSequenceDefinition_PredefinedDataTypeDefinitions();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.SequenceDefinition#isTypeEnumerationSupported <em>Type Enumeration Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type Enumeration Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.SequenceDefinition#isTypeEnumerationSupported()
+	 * @see #getSequenceDefinition()
+	 * @generated
+	 */
+	EAttribute getSequenceDefinition_TypeEnumerationSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.SequenceDefinition#isCacheSupported <em>Cache Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Cache Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.SequenceDefinition#isCacheSupported()
+	 * @see #getSequenceDefinition()
+	 * @generated
+	 */
+	EAttribute getSequenceDefinition_CacheSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.SequenceDefinition#isOrderSupported <em>Order Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Order Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.SequenceDefinition#isOrderSupported()
+	 * @see #getSequenceDefinition()
+	 * @generated
+	 */
+	EAttribute getSequenceDefinition_OrderSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.SequenceDefinition#getNoMaximumValueString <em>No Maximum Value String</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>No Maximum Value String</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.SequenceDefinition#getNoMaximumValueString()
+	 * @see #getSequenceDefinition()
+	 * @generated
+	 */
+	EAttribute getSequenceDefinition_NoMaximumValueString();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.SequenceDefinition#getNoMinimumValueString <em>No Minimum Value String</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>No Minimum Value String</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.SequenceDefinition#getNoMinimumValueString()
+	 * @see #getSequenceDefinition()
+	 * @generated
+	 */
+	EAttribute getSequenceDefinition_NoMinimumValueString();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.SequenceDefinition#getNoCacheString <em>No Cache String</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>No Cache String</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.SequenceDefinition#getNoCacheString()
+	 * @see #getSequenceDefinition()
+	 * @generated
+	 */
+	EAttribute getSequenceDefinition_NoCacheString();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.SequenceDefinition#getCacheDefaultValue <em>Cache Default Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Cache Default Value</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.SequenceDefinition#getCacheDefaultValue()
+	 * @see #getSequenceDefinition()
+	 * @generated
+	 */
+	EAttribute getSequenceDefinition_CacheDefaultValue();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.dbdefinition.UserDefinedTypeDefinition <em>User Defined Type Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>User Defined Type Definition</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.UserDefinedTypeDefinition
+	 * @generated
+	 */
+	EClass getUserDefinedTypeDefinition();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.UserDefinedTypeDefinition#isDefaultValueSupported <em>Default Value Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Default Value Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.UserDefinedTypeDefinition#isDefaultValueSupported()
+	 * @see #getUserDefinedTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getUserDefinedTypeDefinition_DefaultValueSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.UserDefinedTypeDefinition#isDistinctTypeSupported <em>Distinct Type Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Distinct Type Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.UserDefinedTypeDefinition#isDistinctTypeSupported()
+	 * @see #getUserDefinedTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getUserDefinedTypeDefinition_DistinctTypeSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.UserDefinedTypeDefinition#isStructuredTypeSupported <em>Structured Type Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Structured Type Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.UserDefinedTypeDefinition#isStructuredTypeSupported()
+	 * @see #getUserDefinedTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getUserDefinedTypeDefinition_StructuredTypeSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.UserDefinedTypeDefinition#getMaximumIdentifierLength <em>Maximum Identifier Length</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Maximum Identifier Length</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.UserDefinedTypeDefinition#getMaximumIdentifierLength()
+	 * @see #getUserDefinedTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getUserDefinedTypeDefinition_MaximumIdentifierLength();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.dbdefinition.QueryDefinition <em>Query Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Query Definition</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.QueryDefinition
+	 * @generated
+	 */
+	EClass getQueryDefinition();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.QueryDefinition#getIdentifierQuoteString <em>Identifier Quote String</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Identifier Quote String</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.QueryDefinition#getIdentifierQuoteString()
+	 * @see #getQueryDefinition()
+	 * @generated
+	 */
+	EAttribute getQueryDefinition_IdentifierQuoteString();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.QueryDefinition#getHostVariableMarker <em>Host Variable Marker</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Host Variable Marker</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.QueryDefinition#getHostVariableMarker()
+	 * @see #getQueryDefinition()
+	 * @generated
+	 */
+	EAttribute getQueryDefinition_HostVariableMarker();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.QueryDefinition#isHostVariableMarkerSupported <em>Host Variable Marker Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Host Variable Marker Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.QueryDefinition#isHostVariableMarkerSupported()
+	 * @see #getQueryDefinition()
+	 * @generated
+	 */
+	EAttribute getQueryDefinition_HostVariableMarkerSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.QueryDefinition#isCastExpressionSupported <em>Cast Expression Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Cast Expression Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.QueryDefinition#isCastExpressionSupported()
+	 * @see #getQueryDefinition()
+	 * @generated
+	 */
+	EAttribute getQueryDefinition_CastExpressionSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.QueryDefinition#isDefaultKeywordForInsertValueSupported <em>Default Keyword For Insert Value Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Default Keyword For Insert Value Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.QueryDefinition#isDefaultKeywordForInsertValueSupported()
+	 * @see #getQueryDefinition()
+	 * @generated
+	 */
+	EAttribute getQueryDefinition_DefaultKeywordForInsertValueSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.QueryDefinition#isExtendedGroupingSupported <em>Extended Grouping Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Extended Grouping Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.QueryDefinition#isExtendedGroupingSupported()
+	 * @see #getQueryDefinition()
+	 * @generated
+	 */
+	EAttribute getQueryDefinition_ExtendedGroupingSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.QueryDefinition#isTableAliasInDeleteSupported <em>Table Alias In Delete Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Table Alias In Delete Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.QueryDefinition#isTableAliasInDeleteSupported()
+	 * @see #getQueryDefinition()
+	 * @generated
+	 */
+	EAttribute getQueryDefinition_TableAliasInDeleteSupported();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.dbdefinition.SQLSyntaxDefinition <em>SQL Syntax Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>SQL Syntax Definition</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.SQLSyntaxDefinition
+	 * @generated
+	 */
+	EClass getSQLSyntaxDefinition();
+
+	/**
+	 * Returns the meta object for the attribute list '{@link org.eclipse.datatools.modelbase.dbdefinition.SQLSyntaxDefinition#getKeywords <em>Keywords</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute list '<em>Keywords</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.SQLSyntaxDefinition#getKeywords()
+	 * @see #getSQLSyntaxDefinition()
+	 * @generated
+	 */
+	EAttribute getSQLSyntaxDefinition_Keywords();
+
+	/**
+	 * Returns the meta object for the attribute list '{@link org.eclipse.datatools.modelbase.dbdefinition.SQLSyntaxDefinition#getOperators <em>Operators</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute list '<em>Operators</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.SQLSyntaxDefinition#getOperators()
+	 * @see #getSQLSyntaxDefinition()
+	 * @generated
+	 */
+	EAttribute getSQLSyntaxDefinition_Operators();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.SQLSyntaxDefinition#getTerminationCharacter <em>Termination Character</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Termination Character</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.SQLSyntaxDefinition#getTerminationCharacter()
+	 * @see #getSQLSyntaxDefinition()
+	 * @generated
+	 */
+	EAttribute getSQLSyntaxDefinition_TerminationCharacter();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.dbdefinition.NicknameDefinition <em>Nickname Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Nickname Definition</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.NicknameDefinition
+	 * @generated
+	 */
+	EClass getNicknameDefinition();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.NicknameDefinition#isConstraintSupported <em>Constraint Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Constraint Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.NicknameDefinition#isConstraintSupported()
+	 * @see #getNicknameDefinition()
+	 * @generated
+	 */
+	EAttribute getNicknameDefinition_ConstraintSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.NicknameDefinition#isIndexSupported <em>Index Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Index Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.NicknameDefinition#isIndexSupported()
+	 * @see #getNicknameDefinition()
+	 * @generated
+	 */
+	EAttribute getNicknameDefinition_IndexSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.NicknameDefinition#getMaximumIdentifierLength <em>Maximum Identifier Length</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Maximum Identifier Length</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.NicknameDefinition#getMaximumIdentifierLength()
+	 * @see #getNicknameDefinition()
+	 * @generated
+	 */
+	EAttribute getNicknameDefinition_MaximumIdentifierLength();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.dbdefinition.SchemaDefinition <em>Schema Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Schema Definition</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.SchemaDefinition
+	 * @generated
+	 */
+	EClass getSchemaDefinition();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.SchemaDefinition#getMaximumIdentifierLength <em>Maximum Identifier Length</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Maximum Identifier Length</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.SchemaDefinition#getMaximumIdentifierLength()
+	 * @see #getSchemaDefinition()
+	 * @generated
+	 */
+	EAttribute getSchemaDefinition_MaximumIdentifierLength();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.dbdefinition.ViewDefinition <em>View Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>View Definition</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ViewDefinition
+	 * @generated
+	 */
+	EClass getViewDefinition();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.ViewDefinition#getMaximumIdentifierLength <em>Maximum Identifier Length</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Maximum Identifier Length</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ViewDefinition#getMaximumIdentifierLength()
+	 * @see #getViewDefinition()
+	 * @generated
+	 */
+	EAttribute getViewDefinition_MaximumIdentifierLength();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.ViewDefinition#isIndexSupported <em>Index Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Index Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ViewDefinition#isIndexSupported()
+	 * @see #getViewDefinition()
+	 * @generated
+	 */
+	EAttribute getViewDefinition_IndexSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.ViewDefinition#isCheckOptionSupported <em>Check Option Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Check Option Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ViewDefinition#isCheckOptionSupported()
+	 * @see #getViewDefinition()
+	 * @generated
+	 */
+	EAttribute getViewDefinition_CheckOptionSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.ViewDefinition#isCheckOptionLevelsSupported <em>Check Option Levels Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Check Option Levels Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ViewDefinition#isCheckOptionLevelsSupported()
+	 * @see #getViewDefinition()
+	 * @generated
+	 */
+	EAttribute getViewDefinition_CheckOptionLevelsSupported();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.dbdefinition.FieldQualifierDefinition <em>Field Qualifier Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Field Qualifier Definition</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.FieldQualifierDefinition
+	 * @generated
+	 */
+	EClass getFieldQualifierDefinition();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.dbdefinition.FieldQualifierDefinition#getValidTrailingFieldQualifierDefinitions <em>Valid Trailing Field Qualifier Definitions</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Valid Trailing Field Qualifier Definitions</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.FieldQualifierDefinition#getValidTrailingFieldQualifierDefinitions()
+	 * @see #getFieldQualifierDefinition()
+	 * @generated
+	 */
+	EReference getFieldQualifierDefinition_ValidTrailingFieldQualifierDefinitions();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.FieldQualifierDefinition#getName <em>Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Name</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.FieldQualifierDefinition#getName()
+	 * @see #getFieldQualifierDefinition()
+	 * @generated
+	 */
+	EAttribute getFieldQualifierDefinition_Name();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.FieldQualifierDefinition#getMaximumPrecision <em>Maximum Precision</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Maximum Precision</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.FieldQualifierDefinition#getMaximumPrecision()
+	 * @see #getFieldQualifierDefinition()
+	 * @generated
+	 */
+	EAttribute getFieldQualifierDefinition_MaximumPrecision();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.FieldQualifierDefinition#getDefaultPrecision <em>Default Precision</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Default Precision</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.FieldQualifierDefinition#getDefaultPrecision()
+	 * @see #getFieldQualifierDefinition()
+	 * @generated
+	 */
+	EAttribute getFieldQualifierDefinition_DefaultPrecision();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.FieldQualifierDefinition#isPrecisionSupported <em>Precision Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Precision Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.FieldQualifierDefinition#isPrecisionSupported()
+	 * @see #getFieldQualifierDefinition()
+	 * @generated
+	 */
+	EAttribute getFieldQualifierDefinition_PrecisionSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.FieldQualifierDefinition#getMaximumScale <em>Maximum Scale</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Maximum Scale</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.FieldQualifierDefinition#getMaximumScale()
+	 * @see #getFieldQualifierDefinition()
+	 * @generated
+	 */
+	EAttribute getFieldQualifierDefinition_MaximumScale();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.FieldQualifierDefinition#getDefaultScale <em>Default Scale</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Default Scale</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.FieldQualifierDefinition#getDefaultScale()
+	 * @see #getFieldQualifierDefinition()
+	 * @generated
+	 */
+	EAttribute getFieldQualifierDefinition_DefaultScale();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.FieldQualifierDefinition#isScaleSupported <em>Scale Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Scale Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.FieldQualifierDefinition#isScaleSupported()
+	 * @see #getFieldQualifierDefinition()
+	 * @generated
+	 */
+	EAttribute getFieldQualifierDefinition_ScaleSupported();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.dbdefinition.DebuggerDefinition <em>Debugger Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Debugger Definition</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DebuggerDefinition
+	 * @generated
+	 */
+	EClass getDebuggerDefinition();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.DebuggerDefinition#isConditionSupported <em>Condition Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Condition Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DebuggerDefinition#isConditionSupported()
+	 * @see #getDebuggerDefinition()
+	 * @generated
+	 */
+	EAttribute getDebuggerDefinition_ConditionSupported();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.dbdefinition.PrivilegedElementDefinition <em>Privileged Element Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Privileged Element Definition</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PrivilegedElementDefinition
+	 * @generated
+	 */
+	EClass getPrivilegedElementDefinition();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.dbdefinition.PrivilegedElementDefinition#getPrivilegeDefinitions <em>Privilege Definitions</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Privilege Definitions</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PrivilegedElementDefinition#getPrivilegeDefinitions()
+	 * @see #getPrivilegedElementDefinition()
+	 * @generated
+	 */
+	EReference getPrivilegedElementDefinition_PrivilegeDefinitions();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.PrivilegedElementDefinition#getName <em>Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Name</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PrivilegedElementDefinition#getName()
+	 * @see #getPrivilegedElementDefinition()
+	 * @generated
+	 */
+	EAttribute getPrivilegedElementDefinition_Name();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.dbdefinition.PrivilegeDefinition <em>Privilege Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Privilege Definition</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PrivilegeDefinition
+	 * @generated
+	 */
+	EClass getPrivilegeDefinition();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.dbdefinition.PrivilegeDefinition#getActionElementDefinitions <em>Action Element Definitions</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Action Element Definitions</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PrivilegeDefinition#getActionElementDefinitions()
+	 * @see #getPrivilegeDefinition()
+	 * @generated
+	 */
+	EReference getPrivilegeDefinition_ActionElementDefinitions();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.PrivilegeDefinition#getName <em>Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Name</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PrivilegeDefinition#getName()
+	 * @see #getPrivilegeDefinition()
+	 * @generated
+	 */
+	EAttribute getPrivilegeDefinition_Name();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.dbdefinition.ConstructedDataTypeDefinition <em>Constructed Data Type Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Constructed Data Type Definition</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ConstructedDataTypeDefinition
+	 * @generated
+	 */
+	EClass getConstructedDataTypeDefinition();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.ConstructedDataTypeDefinition#isArrayDatatypeSupported <em>Array Datatype Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Array Datatype Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ConstructedDataTypeDefinition#isArrayDatatypeSupported()
+	 * @see #getConstructedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getConstructedDataTypeDefinition_ArrayDatatypeSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.ConstructedDataTypeDefinition#isMultisetDatatypeSupported <em>Multiset Datatype Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Multiset Datatype Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ConstructedDataTypeDefinition#isMultisetDatatypeSupported()
+	 * @see #getConstructedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getConstructedDataTypeDefinition_MultisetDatatypeSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.ConstructedDataTypeDefinition#isRowDatatypeSupported <em>Row Datatype Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Row Datatype Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ConstructedDataTypeDefinition#isRowDatatypeSupported()
+	 * @see #getConstructedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getConstructedDataTypeDefinition_RowDatatypeSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.ConstructedDataTypeDefinition#isReferenceDatatypeSupported <em>Reference Datatype Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Reference Datatype Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ConstructedDataTypeDefinition#isReferenceDatatypeSupported()
+	 * @see #getConstructedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getConstructedDataTypeDefinition_ReferenceDatatypeSupported();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.dbdefinition.ConstructedDataTypeDefinition#isCursorDatatypeSupported <em>Cursor Datatype Supported</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Cursor Datatype Supported</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ConstructedDataTypeDefinition#isCursorDatatypeSupported()
+	 * @see #getConstructedDataTypeDefinition()
+	 * @generated
+	 */
+	EAttribute getConstructedDataTypeDefinition_CursorDatatypeSupported();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.dbdefinition.SequenceDefinition#getDefaultDataTypeDefinition <em>Default Data Type Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Default Data Type Definition</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.SequenceDefinition#getDefaultDataTypeDefinition()
+	 * @see #getSequenceDefinition()
+	 * @generated
+	 */
+	EReference getSequenceDefinition_DefaultDataTypeDefinition();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.dbdefinition.CheckOption <em>Check Option</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Check Option</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.CheckOption
+	 * @generated
+	 */
+	EEnum getCheckOption();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.dbdefinition.LanguageType <em>Language Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Language Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.LanguageType
+	 * @generated
+	 */
+	EEnum getLanguageType();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.dbdefinition.ParameterStyle <em>Parameter Style</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Parameter Style</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ParameterStyle
+	 * @generated
+	 */
+	EEnum getParameterStyle();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.dbdefinition.ParentDeleteDRIRuleType <em>Parent Delete DRI Rule Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Parent Delete DRI Rule Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ParentDeleteDRIRuleType
+	 * @generated
+	 */
+	EEnum getParentDeleteDRIRuleType();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.dbdefinition.ParentUpdateDRIRuleType <em>Parent Update DRI Rule Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Parent Update DRI Rule Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ParentUpdateDRIRuleType
+	 * @generated
+	 */
+	EEnum getParentUpdateDRIRuleType();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.dbdefinition.ProcedureType <em>Procedure Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Procedure Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ProcedureType
+	 * @generated
+	 */
+	EEnum getProcedureType();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.dbdefinition.TableSpaceType <em>Table Space Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Table Space Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.TableSpaceType
+	 * @generated
+	 */
+	EEnum getTableSpaceType();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.dbdefinition.PercentFreeTerminology <em>Percent Free Terminology</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Percent Free Terminology</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PercentFreeTerminology
+	 * @generated
+	 */
+	EEnum getPercentFreeTerminology();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.dbdefinition.LengthUnit <em>Length Unit</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Length Unit</em>'.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.LengthUnit
+	 * @generated
+	 */
+	EEnum getLengthUnit();
+
+	/**
+	 * Returns the factory that creates the instances of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the factory that creates the instances of the model.
+	 * @generated
+	 */
+	DatabaseDefinitionFactory getDatabaseDefinitionFactory();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * Defines literals for the meta objects that represent
+	 * <ul>
+	 *   <li>each class,</li>
+	 *   <li>each feature of each class,</li>
+	 *   <li>each enum,</li>
+	 *   <li>and each data type</li>
+	 * </ul>
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	interface Literals  {
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl <em>Database Vendor Definition</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getDatabaseVendorDefinition()
+		 * @generated
+		 */
+		EClass DATABASE_VENDOR_DEFINITION = eINSTANCE.getDatabaseVendorDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Predefined Data Type Definitions</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATABASE_VENDOR_DEFINITION__PREDEFINED_DATA_TYPE_DEFINITIONS = eINSTANCE.getDatabaseVendorDefinition_PredefinedDataTypeDefinitions();
+
+		/**
+		 * The meta object literal for the '<em><b>Table Space Definition</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATABASE_VENDOR_DEFINITION__TABLE_SPACE_DEFINITION = eINSTANCE.getDatabaseVendorDefinition_TableSpaceDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Stored Procedure Definition</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATABASE_VENDOR_DEFINITION__STORED_PROCEDURE_DEFINITION = eINSTANCE.getDatabaseVendorDefinition_StoredProcedureDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Trigger Definition</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATABASE_VENDOR_DEFINITION__TRIGGER_DEFINITION = eINSTANCE.getDatabaseVendorDefinition_TriggerDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Column Definition</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATABASE_VENDOR_DEFINITION__COLUMN_DEFINITION = eINSTANCE.getDatabaseVendorDefinition_ColumnDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Constraint Definition</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATABASE_VENDOR_DEFINITION__CONSTRAINT_DEFINITION = eINSTANCE.getDatabaseVendorDefinition_ConstraintDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Extended Definitions</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATABASE_VENDOR_DEFINITION__EXTENDED_DEFINITIONS = eINSTANCE.getDatabaseVendorDefinition_ExtendedDefinitions();
+
+		/**
+		 * The meta object literal for the '<em><b>Index Definition</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATABASE_VENDOR_DEFINITION__INDEX_DEFINITION = eINSTANCE.getDatabaseVendorDefinition_IndexDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Table Definition</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATABASE_VENDOR_DEFINITION__TABLE_DEFINITION = eINSTANCE.getDatabaseVendorDefinition_TableDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Sequence Definition</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATABASE_VENDOR_DEFINITION__SEQUENCE_DEFINITION = eINSTANCE.getDatabaseVendorDefinition_SequenceDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Udt Definition</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATABASE_VENDOR_DEFINITION__UDT_DEFINITION = eINSTANCE.getDatabaseVendorDefinition_UdtDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Query Definition</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATABASE_VENDOR_DEFINITION__QUERY_DEFINITION = eINSTANCE.getDatabaseVendorDefinition_QueryDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>SQL Syntax Definition</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATABASE_VENDOR_DEFINITION__SQL_SYNTAX_DEFINITION = eINSTANCE.getDatabaseVendorDefinition_SQLSyntaxDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Nickname Definition</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATABASE_VENDOR_DEFINITION__NICKNAME_DEFINITION = eINSTANCE.getDatabaseVendorDefinition_NicknameDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Schema Definition</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATABASE_VENDOR_DEFINITION__SCHEMA_DEFINITION = eINSTANCE.getDatabaseVendorDefinition_SchemaDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>View Definition</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATABASE_VENDOR_DEFINITION__VIEW_DEFINITION = eINSTANCE.getDatabaseVendorDefinition_ViewDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Debugger Definition</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATABASE_VENDOR_DEFINITION__DEBUGGER_DEFINITION = eINSTANCE.getDatabaseVendorDefinition_DebuggerDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Privileged Element Definitions</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATABASE_VENDOR_DEFINITION__PRIVILEGED_ELEMENT_DEFINITIONS = eINSTANCE.getDatabaseVendorDefinition_PrivilegedElementDefinitions();
+
+		/**
+		 * The meta object literal for the '<em><b>Constructed Data Type Definition</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATABASE_VENDOR_DEFINITION__CONSTRUCTED_DATA_TYPE_DEFINITION = eINSTANCE.getDatabaseVendorDefinition_ConstructedDataTypeDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Vendor</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATABASE_VENDOR_DEFINITION__VENDOR = eINSTANCE.getDatabaseVendorDefinition_Vendor();
+
+		/**
+		 * The meta object literal for the '<em><b>Version</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATABASE_VENDOR_DEFINITION__VERSION = eINSTANCE.getDatabaseVendorDefinition_Version();
+
+		/**
+		 * The meta object literal for the '<em><b>Constraints Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATABASE_VENDOR_DEFINITION__CONSTRAINTS_SUPPORTED = eINSTANCE.getDatabaseVendorDefinition_ConstraintsSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Maximum Identifier Length</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATABASE_VENDOR_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH = eINSTANCE.getDatabaseVendorDefinition_MaximumIdentifierLength();
+
+		/**
+		 * The meta object literal for the '<em><b>Trigger Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATABASE_VENDOR_DEFINITION__TRIGGER_SUPPORTED = eINSTANCE.getDatabaseVendorDefinition_TriggerSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Snapshot View Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATABASE_VENDOR_DEFINITION__SNAPSHOT_VIEW_SUPPORTED = eINSTANCE.getDatabaseVendorDefinition_SnapshotViewSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Join Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATABASE_VENDOR_DEFINITION__JOIN_SUPPORTED = eINSTANCE.getDatabaseVendorDefinition_JoinSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>View Trigger Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATABASE_VENDOR_DEFINITION__VIEW_TRIGGER_SUPPORTED = eINSTANCE.getDatabaseVendorDefinition_ViewTriggerSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Tablespaces Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATABASE_VENDOR_DEFINITION__TABLESPACES_SUPPORTED = eINSTANCE.getDatabaseVendorDefinition_TablespacesSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Maximum Comment Length</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATABASE_VENDOR_DEFINITION__MAXIMUM_COMMENT_LENGTH = eINSTANCE.getDatabaseVendorDefinition_MaximumCommentLength();
+
+		/**
+		 * The meta object literal for the '<em><b>Sequence Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATABASE_VENDOR_DEFINITION__SEQUENCE_SUPPORTED = eINSTANCE.getDatabaseVendorDefinition_SequenceSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>MQT Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATABASE_VENDOR_DEFINITION__MQT_SUPPORTED = eINSTANCE.getDatabaseVendorDefinition_MQTSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Schema Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATABASE_VENDOR_DEFINITION__SCHEMA_SUPPORTED = eINSTANCE.getDatabaseVendorDefinition_SchemaSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Alias Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATABASE_VENDOR_DEFINITION__ALIAS_SUPPORTED = eINSTANCE.getDatabaseVendorDefinition_AliasSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Synonym Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATABASE_VENDOR_DEFINITION__SYNONYM_SUPPORTED = eINSTANCE.getDatabaseVendorDefinition_SynonymSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>User Defined Type Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATABASE_VENDOR_DEFINITION__USER_DEFINED_TYPE_SUPPORTED = eINSTANCE.getDatabaseVendorDefinition_UserDefinedTypeSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Domain Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATABASE_VENDOR_DEFINITION__DOMAIN_SUPPORTED = eINSTANCE.getDatabaseVendorDefinition_DomainSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>SQL Statement Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATABASE_VENDOR_DEFINITION__SQL_STATEMENT_SUPPORTED = eINSTANCE.getDatabaseVendorDefinition_SQLStatementSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Nickname Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATABASE_VENDOR_DEFINITION__NICKNAME_SUPPORTED = eINSTANCE.getDatabaseVendorDefinition_NicknameSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Quoted DML Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATABASE_VENDOR_DEFINITION__QUOTED_DML_SUPPORTED = eINSTANCE.getDatabaseVendorDefinition_QuotedDMLSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Quoted DDL Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATABASE_VENDOR_DEFINITION__QUOTED_DDL_SUPPORTED = eINSTANCE.getDatabaseVendorDefinition_QuotedDDLSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Xml Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATABASE_VENDOR_DEFINITION__XML_SUPPORTED = eINSTANCE.getDatabaseVendorDefinition_XmlSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>MQT Index Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATABASE_VENDOR_DEFINITION__MQT_INDEX_SUPPORTED = eINSTANCE.getDatabaseVendorDefinition_MQTIndexSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Event Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATABASE_VENDOR_DEFINITION__EVENT_SUPPORTED = eINSTANCE.getDatabaseVendorDefinition_EventSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Sql UDF Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATABASE_VENDOR_DEFINITION__SQL_UDF_SUPPORTED = eINSTANCE.getDatabaseVendorDefinition_SqlUDFSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Stored Procedure Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATABASE_VENDOR_DEFINITION__STORED_PROCEDURE_SUPPORTED = eINSTANCE.getDatabaseVendorDefinition_StoredProcedureSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Package Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATABASE_VENDOR_DEFINITION__PACKAGE_SUPPORTED = eINSTANCE.getDatabaseVendorDefinition_PackageSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Authorization Identifier Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATABASE_VENDOR_DEFINITION__AUTHORIZATION_IDENTIFIER_SUPPORTED = eINSTANCE.getDatabaseVendorDefinition_AuthorizationIdentifierSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Role Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATABASE_VENDOR_DEFINITION__ROLE_SUPPORTED = eINSTANCE.getDatabaseVendorDefinition_RoleSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Group Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATABASE_VENDOR_DEFINITION__GROUP_SUPPORTED = eINSTANCE.getDatabaseVendorDefinition_GroupSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>User Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATABASE_VENDOR_DEFINITION__USER_SUPPORTED = eINSTANCE.getDatabaseVendorDefinition_UserSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Role Authorization Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATABASE_VENDOR_DEFINITION__ROLE_AUTHORIZATION_SUPPORTED = eINSTANCE.getDatabaseVendorDefinition_RoleAuthorizationSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Constructed Data Type Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATABASE_VENDOR_DEFINITION__CONSTRUCTED_DATA_TYPE_SUPPORTED = eINSTANCE.getDatabaseVendorDefinition_ConstructedDataTypeSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>UDF Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATABASE_VENDOR_DEFINITION__UDF_SUPPORTED = eINSTANCE.getDatabaseVendorDefinition_UDFSupported();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl <em>Predefined Data Type Definition</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getPredefinedDataTypeDefinition()
+		 * @generated
+		 */
+		EClass PREDEFINED_DATA_TYPE_DEFINITION = eINSTANCE.getPredefinedDataTypeDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Leading Field Qualifier Definition</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference PREDEFINED_DATA_TYPE_DEFINITION__LEADING_FIELD_QUALIFIER_DEFINITION = eINSTANCE.getPredefinedDataTypeDefinition_LeadingFieldQualifierDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Trailing Field Qualifier Definition</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference PREDEFINED_DATA_TYPE_DEFINITION__TRAILING_FIELD_QUALIFIER_DEFINITION = eINSTANCE.getPredefinedDataTypeDefinition_TrailingFieldQualifierDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Default Trailing Field Qualifier Definition</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_TRAILING_FIELD_QUALIFIER_DEFINITION = eINSTANCE.getPredefinedDataTypeDefinition_DefaultTrailingFieldQualifierDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Default Leading Field Qualifier Definition</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_LEADING_FIELD_QUALIFIER_DEFINITION = eINSTANCE.getPredefinedDataTypeDefinition_DefaultLeadingFieldQualifierDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Length Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PREDEFINED_DATA_TYPE_DEFINITION__LENGTH_SUPPORTED = eINSTANCE.getPredefinedDataTypeDefinition_LengthSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Scale Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PREDEFINED_DATA_TYPE_DEFINITION__SCALE_SUPPORTED = eINSTANCE.getPredefinedDataTypeDefinition_ScaleSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Precision Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PREDEFINED_DATA_TYPE_DEFINITION__PRECISION_SUPPORTED = eINSTANCE.getPredefinedDataTypeDefinition_PrecisionSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Key Constraint Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PREDEFINED_DATA_TYPE_DEFINITION__KEY_CONSTRAINT_SUPPORTED = eINSTANCE.getPredefinedDataTypeDefinition_KeyConstraintSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Identity Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PREDEFINED_DATA_TYPE_DEFINITION__IDENTITY_SUPPORTED = eINSTANCE.getPredefinedDataTypeDefinition_IdentitySupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Multiple Columns Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PREDEFINED_DATA_TYPE_DEFINITION__MULTIPLE_COLUMNS_SUPPORTED = eINSTANCE.getPredefinedDataTypeDefinition_MultipleColumnsSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Nullable Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PREDEFINED_DATA_TYPE_DEFINITION__NULLABLE_SUPPORTED = eINSTANCE.getPredefinedDataTypeDefinition_NullableSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Default Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_SUPPORTED = eINSTANCE.getPredefinedDataTypeDefinition_DefaultSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Clustering Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PREDEFINED_DATA_TYPE_DEFINITION__CLUSTERING_SUPPORTED = eINSTANCE.getPredefinedDataTypeDefinition_ClusteringSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Fill Factor Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PREDEFINED_DATA_TYPE_DEFINITION__FILL_FACTOR_SUPPORTED = eINSTANCE.getPredefinedDataTypeDefinition_FillFactorSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Bit Data Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PREDEFINED_DATA_TYPE_DEFINITION__BIT_DATA_SUPPORTED = eINSTANCE.getPredefinedDataTypeDefinition_BitDataSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Maximum Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PREDEFINED_DATA_TYPE_DEFINITION__MAXIMUM_VALUE = eINSTANCE.getPredefinedDataTypeDefinition_MaximumValue();
+
+		/**
+		 * The meta object literal for the '<em><b>Minimum Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PREDEFINED_DATA_TYPE_DEFINITION__MINIMUM_VALUE = eINSTANCE.getPredefinedDataTypeDefinition_MinimumValue();
+
+		/**
+		 * The meta object literal for the '<em><b>Maximum Length</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PREDEFINED_DATA_TYPE_DEFINITION__MAXIMUM_LENGTH = eINSTANCE.getPredefinedDataTypeDefinition_MaximumLength();
+
+		/**
+		 * The meta object literal for the '<em><b>Maximum Precision</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PREDEFINED_DATA_TYPE_DEFINITION__MAXIMUM_PRECISION = eINSTANCE.getPredefinedDataTypeDefinition_MaximumPrecision();
+
+		/**
+		 * The meta object literal for the '<em><b>Maximum Scale</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PREDEFINED_DATA_TYPE_DEFINITION__MAXIMUM_SCALE = eINSTANCE.getPredefinedDataTypeDefinition_MaximumScale();
+
+		/**
+		 * The meta object literal for the '<em><b>Minimum Scale</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PREDEFINED_DATA_TYPE_DEFINITION__MINIMUM_SCALE = eINSTANCE.getPredefinedDataTypeDefinition_MinimumScale();
+
+		/**
+		 * The meta object literal for the '<em><b>Default Value Types</b></em>' attribute list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_VALUE_TYPES = eINSTANCE.getPredefinedDataTypeDefinition_DefaultValueTypes();
+
+		/**
+		 * The meta object literal for the '<em><b>Primitive Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PREDEFINED_DATA_TYPE_DEFINITION__PRIMITIVE_TYPE = eINSTANCE.getPredefinedDataTypeDefinition_PrimitiveType();
+
+		/**
+		 * The meta object literal for the '<em><b>Name</b></em>' attribute list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PREDEFINED_DATA_TYPE_DEFINITION__NAME = eINSTANCE.getPredefinedDataTypeDefinition_Name();
+
+		/**
+		 * The meta object literal for the '<em><b>Jdbc Enum Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PREDEFINED_DATA_TYPE_DEFINITION__JDBC_ENUM_TYPE = eINSTANCE.getPredefinedDataTypeDefinition_JdbcEnumType();
+
+		/**
+		 * The meta object literal for the '<em><b>Character Set</b></em>' attribute list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PREDEFINED_DATA_TYPE_DEFINITION__CHARACTER_SET = eINSTANCE.getPredefinedDataTypeDefinition_CharacterSet();
+
+		/**
+		 * The meta object literal for the '<em><b>Encoding Scheme</b></em>' attribute list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PREDEFINED_DATA_TYPE_DEFINITION__ENCODING_SCHEME = eINSTANCE.getPredefinedDataTypeDefinition_EncodingScheme();
+
+		/**
+		 * The meta object literal for the '<em><b>Character Set Suffix</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PREDEFINED_DATA_TYPE_DEFINITION__CHARACTER_SET_SUFFIX = eINSTANCE.getPredefinedDataTypeDefinition_CharacterSetSuffix();
+
+		/**
+		 * The meta object literal for the '<em><b>Encoding Scheme Suffix</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PREDEFINED_DATA_TYPE_DEFINITION__ENCODING_SCHEME_SUFFIX = eINSTANCE.getPredefinedDataTypeDefinition_EncodingSchemeSuffix();
+
+		/**
+		 * The meta object literal for the '<em><b>Java Class Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PREDEFINED_DATA_TYPE_DEFINITION__JAVA_CLASS_NAME = eINSTANCE.getPredefinedDataTypeDefinition_JavaClassName();
+
+		/**
+		 * The meta object literal for the '<em><b>Default Length</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_LENGTH = eINSTANCE.getPredefinedDataTypeDefinition_DefaultLength();
+
+		/**
+		 * The meta object literal for the '<em><b>Default Precision</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_PRECISION = eINSTANCE.getPredefinedDataTypeDefinition_DefaultPrecision();
+
+		/**
+		 * The meta object literal for the '<em><b>Default Scale</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_SCALE = eINSTANCE.getPredefinedDataTypeDefinition_DefaultScale();
+
+		/**
+		 * The meta object literal for the '<em><b>Cutoff Precision</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PREDEFINED_DATA_TYPE_DEFINITION__CUTOFF_PRECISION = eINSTANCE.getPredefinedDataTypeDefinition_CutoffPrecision();
+
+		/**
+		 * The meta object literal for the '<em><b>Length Unit</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PREDEFINED_DATA_TYPE_DEFINITION__LENGTH_UNIT = eINSTANCE.getPredefinedDataTypeDefinition_LengthUnit();
+
+		/**
+		 * The meta object literal for the '<em><b>Ordering Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PREDEFINED_DATA_TYPE_DEFINITION__ORDERING_SUPPORTED = eINSTANCE.getPredefinedDataTypeDefinition_OrderingSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Grouping Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PREDEFINED_DATA_TYPE_DEFINITION__GROUPING_SUPPORTED = eINSTANCE.getPredefinedDataTypeDefinition_GroupingSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Display Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PREDEFINED_DATA_TYPE_DEFINITION__DISPLAY_NAME = eINSTANCE.getPredefinedDataTypeDefinition_DisplayName();
+
+		/**
+		 * The meta object literal for the '<em><b>Display Name Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PREDEFINED_DATA_TYPE_DEFINITION__DISPLAY_NAME_SUPPORTED = eINSTANCE.getPredefinedDataTypeDefinition_DisplayNameSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Leading Field Qualifier Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PREDEFINED_DATA_TYPE_DEFINITION__LEADING_FIELD_QUALIFIER_SUPPORTED = eINSTANCE.getPredefinedDataTypeDefinition_LeadingFieldQualifierSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Trailing Field Qualifier Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PREDEFINED_DATA_TYPE_DEFINITION__TRAILING_FIELD_QUALIFIER_SUPPORTED = eINSTANCE.getPredefinedDataTypeDefinition_TrailingFieldQualifierSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Field Qualifier Separator</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PREDEFINED_DATA_TYPE_DEFINITION__FIELD_QUALIFIER_SEPARATOR = eINSTANCE.getPredefinedDataTypeDefinition_FieldQualifierSeparator();
+
+		/**
+		 * The meta object literal for the '<em><b>Large Value Specifier Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PREDEFINED_DATA_TYPE_DEFINITION__LARGE_VALUE_SPECIFIER_SUPPORTED = eINSTANCE.getPredefinedDataTypeDefinition_LargeValueSpecifierSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Large Value Specifier Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PREDEFINED_DATA_TYPE_DEFINITION__LARGE_VALUE_SPECIFIER_NAME = eINSTANCE.getPredefinedDataTypeDefinition_LargeValueSpecifierName();
+
+		/**
+		 * The meta object literal for the '<em><b>Large Value Specifier Length</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PREDEFINED_DATA_TYPE_DEFINITION__LARGE_VALUE_SPECIFIER_LENGTH = eINSTANCE.getPredefinedDataTypeDefinition_LargeValueSpecifierLength();
+
+		/**
+		 * The meta object literal for the '<em><b>Length Semantic Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PREDEFINED_DATA_TYPE_DEFINITION__LENGTH_SEMANTIC_SUPPORTED = eINSTANCE.getPredefinedDataTypeDefinition_LengthSemanticSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Length Semantic</b></em>' attribute list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PREDEFINED_DATA_TYPE_DEFINITION__LENGTH_SEMANTIC = eINSTANCE.getPredefinedDataTypeDefinition_LengthSemantic();
+
+		/**
+		 * The meta object literal for the '<em><b>Language Type</b></em>' attribute list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PREDEFINED_DATA_TYPE_DEFINITION__LANGUAGE_TYPE = eINSTANCE.getPredefinedDataTypeDefinition_LanguageType();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.dbdefinition.impl.TableSpaceDefinitionImpl <em>Table Space Definition</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.TableSpaceDefinitionImpl
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getTableSpaceDefinition()
+		 * @generated
+		 */
+		EClass TABLE_SPACE_DEFINITION = eINSTANCE.getTableSpaceDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Type Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TABLE_SPACE_DEFINITION__TYPE_SUPPORTED = eINSTANCE.getTableSpaceDefinition_TypeSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Extent Size Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TABLE_SPACE_DEFINITION__EXTENT_SIZE_SUPPORTED = eINSTANCE.getTableSpaceDefinition_ExtentSizeSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Prefetch Size Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TABLE_SPACE_DEFINITION__PREFETCH_SIZE_SUPPORTED = eINSTANCE.getTableSpaceDefinition_PrefetchSizeSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Managed By Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TABLE_SPACE_DEFINITION__MANAGED_BY_SUPPORTED = eINSTANCE.getTableSpaceDefinition_ManagedBySupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Page Size Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TABLE_SPACE_DEFINITION__PAGE_SIZE_SUPPORTED = eINSTANCE.getTableSpaceDefinition_PageSizeSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Buffer Pool Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TABLE_SPACE_DEFINITION__BUFFER_POOL_SUPPORTED = eINSTANCE.getTableSpaceDefinition_BufferPoolSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Default Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TABLE_SPACE_DEFINITION__DEFAULT_SUPPORTED = eINSTANCE.getTableSpaceDefinition_DefaultSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Container Maximum Size Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TABLE_SPACE_DEFINITION__CONTAINER_MAXIMUM_SIZE_SUPPORTED = eINSTANCE.getTableSpaceDefinition_ContainerMaximumSizeSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Container Initial Size Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TABLE_SPACE_DEFINITION__CONTAINER_INITIAL_SIZE_SUPPORTED = eINSTANCE.getTableSpaceDefinition_ContainerInitialSizeSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Container Extent Size Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TABLE_SPACE_DEFINITION__CONTAINER_EXTENT_SIZE_SUPPORTED = eINSTANCE.getTableSpaceDefinition_ContainerExtentSizeSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Table Space Type</b></em>' attribute list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TABLE_SPACE_DEFINITION__TABLE_SPACE_TYPE = eINSTANCE.getTableSpaceDefinition_TableSpaceType();
+
+		/**
+		 * The meta object literal for the '<em><b>Maximum Identifier Length</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TABLE_SPACE_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH = eINSTANCE.getTableSpaceDefinition_MaximumIdentifierLength();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.dbdefinition.impl.StoredProcedureDefinitionImpl <em>Stored Procedure Definition</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.StoredProcedureDefinitionImpl
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getStoredProcedureDefinition()
+		 * @generated
+		 */
+		EClass STORED_PROCEDURE_DEFINITION = eINSTANCE.getStoredProcedureDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Predefined Data Type Definitions</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference STORED_PROCEDURE_DEFINITION__PREDEFINED_DATA_TYPE_DEFINITIONS = eINSTANCE.getStoredProcedureDefinition_PredefinedDataTypeDefinitions();
+
+		/**
+		 * The meta object literal for the '<em><b>Null Input Action Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute STORED_PROCEDURE_DEFINITION__NULL_INPUT_ACTION_SUPPORTED = eINSTANCE.getStoredProcedureDefinition_NullInputActionSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Package Generation Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute STORED_PROCEDURE_DEFINITION__PACKAGE_GENERATION_SUPPORTED = eINSTANCE.getStoredProcedureDefinition_PackageGenerationSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Determininstic Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute STORED_PROCEDURE_DEFINITION__DETERMININSTIC_SUPPORTED = eINSTANCE.getStoredProcedureDefinition_DetermininsticSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Returned Null Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute STORED_PROCEDURE_DEFINITION__RETURNED_NULL_SUPPORTED = eINSTANCE.getStoredProcedureDefinition_ReturnedNullSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Returned Type Declaration Constraint Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute STORED_PROCEDURE_DEFINITION__RETURNED_TYPE_DECLARATION_CONSTRAINT_SUPPORTED = eINSTANCE.getStoredProcedureDefinition_ReturnedTypeDeclarationConstraintSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Parameter Init Value Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute STORED_PROCEDURE_DEFINITION__PARAMETER_INIT_VALUE_SUPPORTED = eINSTANCE.getStoredProcedureDefinition_ParameterInitValueSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Parameter Style Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute STORED_PROCEDURE_DEFINITION__PARAMETER_STYLE_SUPPORTED = eINSTANCE.getStoredProcedureDefinition_ParameterStyleSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Return Type Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute STORED_PROCEDURE_DEFINITION__RETURN_TYPE_SUPPORTED = eINSTANCE.getStoredProcedureDefinition_ReturnTypeSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Parameter Declaration Constraint Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute STORED_PROCEDURE_DEFINITION__PARAMETER_DECLARATION_CONSTRAINT_SUPPORTED = eINSTANCE.getStoredProcedureDefinition_ParameterDeclarationConstraintSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Maximum Action Body Length</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute STORED_PROCEDURE_DEFINITION__MAXIMUM_ACTION_BODY_LENGTH = eINSTANCE.getStoredProcedureDefinition_MaximumActionBodyLength();
+
+		/**
+		 * The meta object literal for the '<em><b>Parameter Style</b></em>' attribute list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute STORED_PROCEDURE_DEFINITION__PARAMETER_STYLE = eINSTANCE.getStoredProcedureDefinition_ParameterStyle();
+
+		/**
+		 * The meta object literal for the '<em><b>Language Type</b></em>' attribute list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute STORED_PROCEDURE_DEFINITION__LANGUAGE_TYPE = eINSTANCE.getStoredProcedureDefinition_LanguageType();
+
+		/**
+		 * The meta object literal for the '<em><b>Function Language Type</b></em>' attribute list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute STORED_PROCEDURE_DEFINITION__FUNCTION_LANGUAGE_TYPE = eINSTANCE.getStoredProcedureDefinition_FunctionLanguageType();
+
+		/**
+		 * The meta object literal for the '<em><b>Procedure Type</b></em>' attribute list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute STORED_PROCEDURE_DEFINITION__PROCEDURE_TYPE = eINSTANCE.getStoredProcedureDefinition_ProcedureType();
+
+		/**
+		 * The meta object literal for the '<em><b>Maximum Identifier Length</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute STORED_PROCEDURE_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH = eINSTANCE.getStoredProcedureDefinition_MaximumIdentifierLength();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.dbdefinition.impl.TriggerDefinitionImpl <em>Trigger Definition</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.TriggerDefinitionImpl
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getTriggerDefinition()
+		 * @generated
+		 */
+		EClass TRIGGER_DEFINITION = eINSTANCE.getTriggerDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Maximum Reference Part Length</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TRIGGER_DEFINITION__MAXIMUM_REFERENCE_PART_LENGTH = eINSTANCE.getTriggerDefinition_MaximumReferencePartLength();
+
+		/**
+		 * The meta object literal for the '<em><b>Maximum Action Body Length</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TRIGGER_DEFINITION__MAXIMUM_ACTION_BODY_LENGTH = eINSTANCE.getTriggerDefinition_MaximumActionBodyLength();
+
+		/**
+		 * The meta object literal for the '<em><b>Type Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TRIGGER_DEFINITION__TYPE_SUPPORTED = eINSTANCE.getTriggerDefinition_TypeSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>When Clause Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TRIGGER_DEFINITION__WHEN_CLAUSE_SUPPORTED = eINSTANCE.getTriggerDefinition_WhenClauseSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Granularity Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TRIGGER_DEFINITION__GRANULARITY_SUPPORTED = eINSTANCE.getTriggerDefinition_GranularitySupported();
+
+		/**
+		 * The meta object literal for the '<em><b>References Clause Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TRIGGER_DEFINITION__REFERENCES_CLAUSE_SUPPORTED = eINSTANCE.getTriggerDefinition_ReferencesClauseSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Per Column Update Trigger Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TRIGGER_DEFINITION__PER_COLUMN_UPDATE_TRIGGER_SUPPORTED = eINSTANCE.getTriggerDefinition_PerColumnUpdateTriggerSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Instead Of Trigger Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TRIGGER_DEFINITION__INSTEAD_OF_TRIGGER_SUPPORTED = eINSTANCE.getTriggerDefinition_InsteadOfTriggerSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Row Trigger Reference Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TRIGGER_DEFINITION__ROW_TRIGGER_REFERENCE_SUPPORTED = eINSTANCE.getTriggerDefinition_RowTriggerReferenceSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Table Trigger Reference Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TRIGGER_DEFINITION__TABLE_TRIGGER_REFERENCE_SUPPORTED = eINSTANCE.getTriggerDefinition_TableTriggerReferenceSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Maximum Identifier Length</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TRIGGER_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH = eINSTANCE.getTriggerDefinition_MaximumIdentifierLength();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.dbdefinition.impl.ColumnDefinitionImpl <em>Column Definition</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.ColumnDefinitionImpl
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getColumnDefinition()
+		 * @generated
+		 */
+		EClass COLUMN_DEFINITION = eINSTANCE.getColumnDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Identity Column Data Type Definitions</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference COLUMN_DEFINITION__IDENTITY_COLUMN_DATA_TYPE_DEFINITIONS = eINSTANCE.getColumnDefinition_IdentityColumnDataTypeDefinitions();
+
+		/**
+		 * The meta object literal for the '<em><b>Identity Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute COLUMN_DEFINITION__IDENTITY_SUPPORTED = eINSTANCE.getColumnDefinition_IdentitySupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Computed Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute COLUMN_DEFINITION__COMPUTED_SUPPORTED = eINSTANCE.getColumnDefinition_ComputedSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Identity Start Value Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute COLUMN_DEFINITION__IDENTITY_START_VALUE_SUPPORTED = eINSTANCE.getColumnDefinition_IdentityStartValueSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Identity Increment Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute COLUMN_DEFINITION__IDENTITY_INCREMENT_SUPPORTED = eINSTANCE.getColumnDefinition_IdentityIncrementSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Identity Minimum Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute COLUMN_DEFINITION__IDENTITY_MINIMUM_SUPPORTED = eINSTANCE.getColumnDefinition_IdentityMinimumSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Identity Maximum Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute COLUMN_DEFINITION__IDENTITY_MAXIMUM_SUPPORTED = eINSTANCE.getColumnDefinition_IdentityMaximumSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Identity Cycle Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute COLUMN_DEFINITION__IDENTITY_CYCLE_SUPPORTED = eINSTANCE.getColumnDefinition_IdentityCycleSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Maximum Identifier Length</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute COLUMN_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH = eINSTANCE.getColumnDefinition_MaximumIdentifierLength();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.dbdefinition.impl.ConstraintDefinitionImpl <em>Constraint Definition</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.ConstraintDefinitionImpl
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getConstraintDefinition()
+		 * @generated
+		 */
+		EClass CONSTRAINT_DEFINITION = eINSTANCE.getConstraintDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Deferrable Constraint Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CONSTRAINT_DEFINITION__DEFERRABLE_CONSTRAINT_SUPPORTED = eINSTANCE.getConstraintDefinition_DeferrableConstraintSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Informational Constraint Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CONSTRAINT_DEFINITION__INFORMATIONAL_CONSTRAINT_SUPPORTED = eINSTANCE.getConstraintDefinition_InformationalConstraintSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Clustered Primary Key Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CONSTRAINT_DEFINITION__CLUSTERED_PRIMARY_KEY_SUPPORTED = eINSTANCE.getConstraintDefinition_ClusteredPrimaryKeySupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Clustered Unique Constraint Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CONSTRAINT_DEFINITION__CLUSTERED_UNIQUE_CONSTRAINT_SUPPORTED = eINSTANCE.getConstraintDefinition_ClusteredUniqueConstraintSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Primary Key Nullable</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CONSTRAINT_DEFINITION__PRIMARY_KEY_NULLABLE = eINSTANCE.getConstraintDefinition_PrimaryKeyNullable();
+
+		/**
+		 * The meta object literal for the '<em><b>Unique Key Nullable</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CONSTRAINT_DEFINITION__UNIQUE_KEY_NULLABLE = eINSTANCE.getConstraintDefinition_UniqueKeyNullable();
+
+		/**
+		 * The meta object literal for the '<em><b>Maximum Check Expression Length</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CONSTRAINT_DEFINITION__MAXIMUM_CHECK_EXPRESSION_LENGTH = eINSTANCE.getConstraintDefinition_MaximumCheckExpressionLength();
+
+		/**
+		 * The meta object literal for the '<em><b>Parent Update DRI Rule Type</b></em>' attribute list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CONSTRAINT_DEFINITION__PARENT_UPDATE_DRI_RULE_TYPE = eINSTANCE.getConstraintDefinition_ParentUpdateDRIRuleType();
+
+		/**
+		 * The meta object literal for the '<em><b>Parent Delete DRI Rule Type</b></em>' attribute list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CONSTRAINT_DEFINITION__PARENT_DELETE_DRI_RULE_TYPE = eINSTANCE.getConstraintDefinition_ParentDeleteDRIRuleType();
+
+		/**
+		 * The meta object literal for the '<em><b>Check Option</b></em>' attribute list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CONSTRAINT_DEFINITION__CHECK_OPTION = eINSTANCE.getConstraintDefinition_CheckOption();
+
+		/**
+		 * The meta object literal for the '<em><b>Maximum Primary Key Identifier Length</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CONSTRAINT_DEFINITION__MAXIMUM_PRIMARY_KEY_IDENTIFIER_LENGTH = eINSTANCE.getConstraintDefinition_MaximumPrimaryKeyIdentifierLength();
+
+		/**
+		 * The meta object literal for the '<em><b>Maximum Foreign Key Identifier Length</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CONSTRAINT_DEFINITION__MAXIMUM_FOREIGN_KEY_IDENTIFIER_LENGTH = eINSTANCE.getConstraintDefinition_MaximumForeignKeyIdentifierLength();
+
+		/**
+		 * The meta object literal for the '<em><b>Maximum Check Constraint Identifier Length</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CONSTRAINT_DEFINITION__MAXIMUM_CHECK_CONSTRAINT_IDENTIFIER_LENGTH = eINSTANCE.getConstraintDefinition_MaximumCheckConstraintIdentifierLength();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.dbdefinition.impl.IndexDefinitionImpl <em>Index Definition</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.IndexDefinitionImpl
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getIndexDefinition()
+		 * @generated
+		 */
+		EClass INDEX_DEFINITION = eINSTANCE.getIndexDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Percent Free Terminology</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute INDEX_DEFINITION__PERCENT_FREE_TERMINOLOGY = eINSTANCE.getIndexDefinition_PercentFreeTerminology();
+
+		/**
+		 * The meta object literal for the '<em><b>Percent Free Changeable</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute INDEX_DEFINITION__PERCENT_FREE_CHANGEABLE = eINSTANCE.getIndexDefinition_PercentFreeChangeable();
+
+		/**
+		 * The meta object literal for the '<em><b>Clustering Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute INDEX_DEFINITION__CLUSTERING_SUPPORTED = eINSTANCE.getIndexDefinition_ClusteringSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Cluster Changeable</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute INDEX_DEFINITION__CLUSTER_CHANGEABLE = eINSTANCE.getIndexDefinition_ClusterChangeable();
+
+		/**
+		 * The meta object literal for the '<em><b>Fill Factor Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute INDEX_DEFINITION__FILL_FACTOR_SUPPORTED = eINSTANCE.getIndexDefinition_FillFactorSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Included Columns Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute INDEX_DEFINITION__INCLUDED_COLUMNS_SUPPORTED = eINSTANCE.getIndexDefinition_IncludedColumnsSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Maximum Identifier Length</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute INDEX_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH = eINSTANCE.getIndexDefinition_MaximumIdentifierLength();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.dbdefinition.impl.ExtendedDefinitionImpl <em>Extended Definition</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.ExtendedDefinitionImpl
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getExtendedDefinition()
+		 * @generated
+		 */
+		EClass EXTENDED_DEFINITION = eINSTANCE.getExtendedDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute EXTENDED_DEFINITION__NAME = eINSTANCE.getExtendedDefinition_Name();
+
+		/**
+		 * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute EXTENDED_DEFINITION__VALUE = eINSTANCE.getExtendedDefinition_Value();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.dbdefinition.impl.TableDefinitionImpl <em>Table Definition</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.TableDefinitionImpl
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getTableDefinition()
+		 * @generated
+		 */
+		EClass TABLE_DEFINITION = eINSTANCE.getTableDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Audit Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TABLE_DEFINITION__AUDIT_SUPPORTED = eINSTANCE.getTableDefinition_AuditSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Data Capture Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TABLE_DEFINITION__DATA_CAPTURE_SUPPORTED = eINSTANCE.getTableDefinition_DataCaptureSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Edit Proc Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TABLE_DEFINITION__EDIT_PROC_SUPPORTED = eINSTANCE.getTableDefinition_EditProcSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Encoding Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TABLE_DEFINITION__ENCODING_SUPPORTED = eINSTANCE.getTableDefinition_EncodingSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Valid Proc Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TABLE_DEFINITION__VALID_PROC_SUPPORTED = eINSTANCE.getTableDefinition_ValidProcSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Maximum Identifier Length</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TABLE_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH = eINSTANCE.getTableDefinition_MaximumIdentifierLength();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.dbdefinition.impl.SequenceDefinitionImpl <em>Sequence Definition</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.SequenceDefinitionImpl
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getSequenceDefinition()
+		 * @generated
+		 */
+		EClass SEQUENCE_DEFINITION = eINSTANCE.getSequenceDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Predefined Data Type Definitions</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference SEQUENCE_DEFINITION__PREDEFINED_DATA_TYPE_DEFINITIONS = eINSTANCE.getSequenceDefinition_PredefinedDataTypeDefinitions();
+
+		/**
+		 * The meta object literal for the '<em><b>Default Data Type Definition</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference SEQUENCE_DEFINITION__DEFAULT_DATA_TYPE_DEFINITION = eINSTANCE.getSequenceDefinition_DefaultDataTypeDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Type Enumeration Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute SEQUENCE_DEFINITION__TYPE_ENUMERATION_SUPPORTED = eINSTANCE.getSequenceDefinition_TypeEnumerationSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Cache Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute SEQUENCE_DEFINITION__CACHE_SUPPORTED = eINSTANCE.getSequenceDefinition_CacheSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Order Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute SEQUENCE_DEFINITION__ORDER_SUPPORTED = eINSTANCE.getSequenceDefinition_OrderSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>No Maximum Value String</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute SEQUENCE_DEFINITION__NO_MAXIMUM_VALUE_STRING = eINSTANCE.getSequenceDefinition_NoMaximumValueString();
+
+		/**
+		 * The meta object literal for the '<em><b>No Minimum Value String</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute SEQUENCE_DEFINITION__NO_MINIMUM_VALUE_STRING = eINSTANCE.getSequenceDefinition_NoMinimumValueString();
+
+		/**
+		 * The meta object literal for the '<em><b>No Cache String</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute SEQUENCE_DEFINITION__NO_CACHE_STRING = eINSTANCE.getSequenceDefinition_NoCacheString();
+
+		/**
+		 * The meta object literal for the '<em><b>Cache Default Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute SEQUENCE_DEFINITION__CACHE_DEFAULT_VALUE = eINSTANCE.getSequenceDefinition_CacheDefaultValue();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.dbdefinition.impl.UserDefinedTypeDefinitionImpl <em>User Defined Type Definition</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.UserDefinedTypeDefinitionImpl
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getUserDefinedTypeDefinition()
+		 * @generated
+		 */
+		EClass USER_DEFINED_TYPE_DEFINITION = eINSTANCE.getUserDefinedTypeDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Default Value Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute USER_DEFINED_TYPE_DEFINITION__DEFAULT_VALUE_SUPPORTED = eINSTANCE.getUserDefinedTypeDefinition_DefaultValueSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Distinct Type Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute USER_DEFINED_TYPE_DEFINITION__DISTINCT_TYPE_SUPPORTED = eINSTANCE.getUserDefinedTypeDefinition_DistinctTypeSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Structured Type Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute USER_DEFINED_TYPE_DEFINITION__STRUCTURED_TYPE_SUPPORTED = eINSTANCE.getUserDefinedTypeDefinition_StructuredTypeSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Maximum Identifier Length</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute USER_DEFINED_TYPE_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH = eINSTANCE.getUserDefinedTypeDefinition_MaximumIdentifierLength();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.dbdefinition.impl.QueryDefinitionImpl <em>Query Definition</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.QueryDefinitionImpl
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getQueryDefinition()
+		 * @generated
+		 */
+		EClass QUERY_DEFINITION = eINSTANCE.getQueryDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Identifier Quote String</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute QUERY_DEFINITION__IDENTIFIER_QUOTE_STRING = eINSTANCE.getQueryDefinition_IdentifierQuoteString();
+
+		/**
+		 * The meta object literal for the '<em><b>Host Variable Marker</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute QUERY_DEFINITION__HOST_VARIABLE_MARKER = eINSTANCE.getQueryDefinition_HostVariableMarker();
+
+		/**
+		 * The meta object literal for the '<em><b>Host Variable Marker Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute QUERY_DEFINITION__HOST_VARIABLE_MARKER_SUPPORTED = eINSTANCE.getQueryDefinition_HostVariableMarkerSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Cast Expression Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute QUERY_DEFINITION__CAST_EXPRESSION_SUPPORTED = eINSTANCE.getQueryDefinition_CastExpressionSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Default Keyword For Insert Value Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute QUERY_DEFINITION__DEFAULT_KEYWORD_FOR_INSERT_VALUE_SUPPORTED = eINSTANCE.getQueryDefinition_DefaultKeywordForInsertValueSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Extended Grouping Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute QUERY_DEFINITION__EXTENDED_GROUPING_SUPPORTED = eINSTANCE.getQueryDefinition_ExtendedGroupingSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Table Alias In Delete Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute QUERY_DEFINITION__TABLE_ALIAS_IN_DELETE_SUPPORTED = eINSTANCE.getQueryDefinition_TableAliasInDeleteSupported();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.dbdefinition.impl.SQLSyntaxDefinitionImpl <em>SQL Syntax Definition</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.SQLSyntaxDefinitionImpl
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getSQLSyntaxDefinition()
+		 * @generated
+		 */
+		EClass SQL_SYNTAX_DEFINITION = eINSTANCE.getSQLSyntaxDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Keywords</b></em>' attribute list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute SQL_SYNTAX_DEFINITION__KEYWORDS = eINSTANCE.getSQLSyntaxDefinition_Keywords();
+
+		/**
+		 * The meta object literal for the '<em><b>Operators</b></em>' attribute list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute SQL_SYNTAX_DEFINITION__OPERATORS = eINSTANCE.getSQLSyntaxDefinition_Operators();
+
+		/**
+		 * The meta object literal for the '<em><b>Termination Character</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute SQL_SYNTAX_DEFINITION__TERMINATION_CHARACTER = eINSTANCE.getSQLSyntaxDefinition_TerminationCharacter();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.dbdefinition.impl.NicknameDefinitionImpl <em>Nickname Definition</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.NicknameDefinitionImpl
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getNicknameDefinition()
+		 * @generated
+		 */
+		EClass NICKNAME_DEFINITION = eINSTANCE.getNicknameDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Constraint Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute NICKNAME_DEFINITION__CONSTRAINT_SUPPORTED = eINSTANCE.getNicknameDefinition_ConstraintSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Index Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute NICKNAME_DEFINITION__INDEX_SUPPORTED = eINSTANCE.getNicknameDefinition_IndexSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Maximum Identifier Length</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute NICKNAME_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH = eINSTANCE.getNicknameDefinition_MaximumIdentifierLength();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.dbdefinition.impl.SchemaDefinitionImpl <em>Schema Definition</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.SchemaDefinitionImpl
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getSchemaDefinition()
+		 * @generated
+		 */
+		EClass SCHEMA_DEFINITION = eINSTANCE.getSchemaDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Maximum Identifier Length</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute SCHEMA_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH = eINSTANCE.getSchemaDefinition_MaximumIdentifierLength();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.dbdefinition.impl.ViewDefinitionImpl <em>View Definition</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.ViewDefinitionImpl
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getViewDefinition()
+		 * @generated
+		 */
+		EClass VIEW_DEFINITION = eINSTANCE.getViewDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Maximum Identifier Length</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute VIEW_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH = eINSTANCE.getViewDefinition_MaximumIdentifierLength();
+
+		/**
+		 * The meta object literal for the '<em><b>Index Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute VIEW_DEFINITION__INDEX_SUPPORTED = eINSTANCE.getViewDefinition_IndexSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Check Option Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute VIEW_DEFINITION__CHECK_OPTION_SUPPORTED = eINSTANCE.getViewDefinition_CheckOptionSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Check Option Levels Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute VIEW_DEFINITION__CHECK_OPTION_LEVELS_SUPPORTED = eINSTANCE.getViewDefinition_CheckOptionLevelsSupported();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.dbdefinition.impl.FieldQualifierDefinitionImpl <em>Field Qualifier Definition</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.FieldQualifierDefinitionImpl
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getFieldQualifierDefinition()
+		 * @generated
+		 */
+		EClass FIELD_QUALIFIER_DEFINITION = eINSTANCE.getFieldQualifierDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Valid Trailing Field Qualifier Definitions</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference FIELD_QUALIFIER_DEFINITION__VALID_TRAILING_FIELD_QUALIFIER_DEFINITIONS = eINSTANCE.getFieldQualifierDefinition_ValidTrailingFieldQualifierDefinitions();
+
+		/**
+		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute FIELD_QUALIFIER_DEFINITION__NAME = eINSTANCE.getFieldQualifierDefinition_Name();
+
+		/**
+		 * The meta object literal for the '<em><b>Maximum Precision</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute FIELD_QUALIFIER_DEFINITION__MAXIMUM_PRECISION = eINSTANCE.getFieldQualifierDefinition_MaximumPrecision();
+
+		/**
+		 * The meta object literal for the '<em><b>Default Precision</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute FIELD_QUALIFIER_DEFINITION__DEFAULT_PRECISION = eINSTANCE.getFieldQualifierDefinition_DefaultPrecision();
+
+		/**
+		 * The meta object literal for the '<em><b>Precision Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute FIELD_QUALIFIER_DEFINITION__PRECISION_SUPPORTED = eINSTANCE.getFieldQualifierDefinition_PrecisionSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Maximum Scale</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute FIELD_QUALIFIER_DEFINITION__MAXIMUM_SCALE = eINSTANCE.getFieldQualifierDefinition_MaximumScale();
+
+		/**
+		 * The meta object literal for the '<em><b>Default Scale</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute FIELD_QUALIFIER_DEFINITION__DEFAULT_SCALE = eINSTANCE.getFieldQualifierDefinition_DefaultScale();
+
+		/**
+		 * The meta object literal for the '<em><b>Scale Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute FIELD_QUALIFIER_DEFINITION__SCALE_SUPPORTED = eINSTANCE.getFieldQualifierDefinition_ScaleSupported();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DebuggerDefinitionImpl <em>Debugger Definition</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DebuggerDefinitionImpl
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getDebuggerDefinition()
+		 * @generated
+		 */
+		EClass DEBUGGER_DEFINITION = eINSTANCE.getDebuggerDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Condition Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DEBUGGER_DEFINITION__CONDITION_SUPPORTED = eINSTANCE.getDebuggerDefinition_ConditionSupported();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PrivilegedElementDefinitionImpl <em>Privileged Element Definition</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.PrivilegedElementDefinitionImpl
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getPrivilegedElementDefinition()
+		 * @generated
+		 */
+		EClass PRIVILEGED_ELEMENT_DEFINITION = eINSTANCE.getPrivilegedElementDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Privilege Definitions</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference PRIVILEGED_ELEMENT_DEFINITION__PRIVILEGE_DEFINITIONS = eINSTANCE.getPrivilegedElementDefinition_PrivilegeDefinitions();
+
+		/**
+		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PRIVILEGED_ELEMENT_DEFINITION__NAME = eINSTANCE.getPrivilegedElementDefinition_Name();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PrivilegeDefinitionImpl <em>Privilege Definition</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.PrivilegeDefinitionImpl
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getPrivilegeDefinition()
+		 * @generated
+		 */
+		EClass PRIVILEGE_DEFINITION = eINSTANCE.getPrivilegeDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Action Element Definitions</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference PRIVILEGE_DEFINITION__ACTION_ELEMENT_DEFINITIONS = eINSTANCE.getPrivilegeDefinition_ActionElementDefinitions();
+
+		/**
+		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PRIVILEGE_DEFINITION__NAME = eINSTANCE.getPrivilegeDefinition_Name();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.dbdefinition.impl.ConstructedDataTypeDefinitionImpl <em>Constructed Data Type Definition</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.ConstructedDataTypeDefinitionImpl
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getConstructedDataTypeDefinition()
+		 * @generated
+		 */
+		EClass CONSTRUCTED_DATA_TYPE_DEFINITION = eINSTANCE.getConstructedDataTypeDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Array Datatype Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CONSTRUCTED_DATA_TYPE_DEFINITION__ARRAY_DATATYPE_SUPPORTED = eINSTANCE.getConstructedDataTypeDefinition_ArrayDatatypeSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Multiset Datatype Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CONSTRUCTED_DATA_TYPE_DEFINITION__MULTISET_DATATYPE_SUPPORTED = eINSTANCE.getConstructedDataTypeDefinition_MultisetDatatypeSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Row Datatype Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CONSTRUCTED_DATA_TYPE_DEFINITION__ROW_DATATYPE_SUPPORTED = eINSTANCE.getConstructedDataTypeDefinition_RowDatatypeSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Reference Datatype Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CONSTRUCTED_DATA_TYPE_DEFINITION__REFERENCE_DATATYPE_SUPPORTED = eINSTANCE.getConstructedDataTypeDefinition_ReferenceDatatypeSupported();
+
+		/**
+		 * The meta object literal for the '<em><b>Cursor Datatype Supported</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CONSTRUCTED_DATA_TYPE_DEFINITION__CURSOR_DATATYPE_SUPPORTED = eINSTANCE.getConstructedDataTypeDefinition_CursorDatatypeSupported();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.dbdefinition.CheckOption <em>Check Option</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.CheckOption
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getCheckOption()
+		 * @generated
+		 */
+		EEnum CHECK_OPTION = eINSTANCE.getCheckOption();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.dbdefinition.LanguageType <em>Language Type</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.LanguageType
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getLanguageType()
+		 * @generated
+		 */
+		EEnum LANGUAGE_TYPE = eINSTANCE.getLanguageType();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.dbdefinition.ParameterStyle <em>Parameter Style</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.ParameterStyle
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getParameterStyle()
+		 * @generated
+		 */
+		EEnum PARAMETER_STYLE = eINSTANCE.getParameterStyle();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.dbdefinition.ParentDeleteDRIRuleType <em>Parent Delete DRI Rule Type</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.ParentDeleteDRIRuleType
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getParentDeleteDRIRuleType()
+		 * @generated
+		 */
+		EEnum PARENT_DELETE_DRI_RULE_TYPE = eINSTANCE.getParentDeleteDRIRuleType();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.dbdefinition.ParentUpdateDRIRuleType <em>Parent Update DRI Rule Type</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.ParentUpdateDRIRuleType
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getParentUpdateDRIRuleType()
+		 * @generated
+		 */
+		EEnum PARENT_UPDATE_DRI_RULE_TYPE = eINSTANCE.getParentUpdateDRIRuleType();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.dbdefinition.ProcedureType <em>Procedure Type</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.ProcedureType
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getProcedureType()
+		 * @generated
+		 */
+		EEnum PROCEDURE_TYPE = eINSTANCE.getProcedureType();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.dbdefinition.TableSpaceType <em>Table Space Type</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.TableSpaceType
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getTableSpaceType()
+		 * @generated
+		 */
+		EEnum TABLE_SPACE_TYPE = eINSTANCE.getTableSpaceType();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.dbdefinition.PercentFreeTerminology <em>Percent Free Terminology</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.PercentFreeTerminology
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getPercentFreeTerminology()
+		 * @generated
+		 */
+		EEnum PERCENT_FREE_TERMINOLOGY = eINSTANCE.getPercentFreeTerminology();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.dbdefinition.LengthUnit <em>Length Unit</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.LengthUnit
+		 * @see org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseDefinitionPackageImpl#getLengthUnit()
+		 * @generated
+		 */
+		EEnum LENGTH_UNIT = eINSTANCE.getLengthUnit();
+
+	}
+
+} //DatabaseDefinitionPackage
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/DatabaseVendorDefinition.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/DatabaseVendorDefinition.java
new file mode 100644
index 0000000..7f4989f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/DatabaseVendorDefinition.java
@@ -0,0 +1,1443 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.dbdefinition;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Database Vendor Definition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getPredefinedDataTypeDefinitions <em>Predefined Data Type Definitions</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getTableSpaceDefinition <em>Table Space Definition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getStoredProcedureDefinition <em>Stored Procedure Definition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getTriggerDefinition <em>Trigger Definition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getColumnDefinition <em>Column Definition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getConstraintDefinition <em>Constraint Definition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getExtendedDefinitions <em>Extended Definitions</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getIndexDefinition <em>Index Definition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getTableDefinition <em>Table Definition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getSequenceDefinition <em>Sequence Definition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getUdtDefinition <em>Udt Definition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getQueryDefinition <em>Query Definition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getSQLSyntaxDefinition <em>SQL Syntax Definition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getNicknameDefinition <em>Nickname Definition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getSchemaDefinition <em>Schema Definition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getViewDefinition <em>View Definition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getDebuggerDefinition <em>Debugger Definition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getPrivilegedElementDefinitions <em>Privileged Element Definitions</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getConstructedDataTypeDefinition <em>Constructed Data Type Definition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getVendor <em>Vendor</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getVersion <em>Version</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isConstraintsSupported <em>Constraints Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getMaximumIdentifierLength <em>Maximum Identifier Length</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isTriggerSupported <em>Trigger Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isSnapshotViewSupported <em>Snapshot View Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isJoinSupported <em>Join Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isViewTriggerSupported <em>View Trigger Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isTablespacesSupported <em>Tablespaces Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getMaximumCommentLength <em>Maximum Comment Length</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isSequenceSupported <em>Sequence Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isMQTSupported <em>MQT Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isSchemaSupported <em>Schema Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isAliasSupported <em>Alias Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isSynonymSupported <em>Synonym Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isUserDefinedTypeSupported <em>User Defined Type Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isDomainSupported <em>Domain Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isSQLStatementSupported <em>SQL Statement Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isNicknameSupported <em>Nickname Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isQuotedDMLSupported <em>Quoted DML Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isQuotedDDLSupported <em>Quoted DDL Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isXmlSupported <em>Xml Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isMQTIndexSupported <em>MQT Index Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isEventSupported <em>Event Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isSqlUDFSupported <em>Sql UDF Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isStoredProcedureSupported <em>Stored Procedure Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isPackageSupported <em>Package Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isAuthorizationIdentifierSupported <em>Authorization Identifier Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isRoleSupported <em>Role Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isGroupSupported <em>Group Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isUserSupported <em>User Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isRoleAuthorizationSupported <em>Role Authorization Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isConstructedDataTypeSupported <em>Constructed Data Type Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isUDFSupported <em>UDF Supported</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition()
+ * @model
+ * @generated
+ */
+public interface DatabaseVendorDefinition extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Vendor</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Vendor</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Vendor</em>' attribute.
+	 * @see #setVendor(String)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_Vendor()
+	 * @model
+	 * @generated
+	 */
+	String getVendor();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getVendor <em>Vendor</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Vendor</em>' attribute.
+	 * @see #getVendor()
+	 * @generated
+	 */
+	void setVendor(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Version</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Version</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Version</em>' attribute.
+	 * @see #setVersion(String)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_Version()
+	 * @model
+	 * @generated
+	 */
+	String getVersion();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getVersion <em>Version</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Version</em>' attribute.
+	 * @see #getVersion()
+	 * @generated
+	 */
+	void setVersion(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Constraints Supported</b></em>' attribute.
+	 * The default value is <code>"true"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Constraints Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Constraints Supported</em>' attribute.
+	 * @see #setConstraintsSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_ConstraintsSupported()
+	 * @model default="true"
+	 * @generated
+	 */
+	boolean isConstraintsSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isConstraintsSupported <em>Constraints Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Constraints Supported</em>' attribute.
+	 * @see #isConstraintsSupported()
+	 * @generated
+	 */
+	void setConstraintsSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Maximum Identifier Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Maximum Identifier Length</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Maximum Identifier Length</em>' attribute.
+	 * @see #setMaximumIdentifierLength(int)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_MaximumIdentifierLength()
+	 * @model
+	 * @generated
+	 */
+	int getMaximumIdentifierLength();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getMaximumIdentifierLength <em>Maximum Identifier Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Maximum Identifier Length</em>' attribute.
+	 * @see #getMaximumIdentifierLength()
+	 * @generated
+	 */
+	void setMaximumIdentifierLength(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Trigger Supported</b></em>' attribute.
+	 * The default value is <code>"true"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Trigger Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Trigger Supported</em>' attribute.
+	 * @see #setTriggerSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_TriggerSupported()
+	 * @model default="true"
+	 * @generated
+	 */
+	boolean isTriggerSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isTriggerSupported <em>Trigger Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Trigger Supported</em>' attribute.
+	 * @see #isTriggerSupported()
+	 * @generated
+	 */
+	void setTriggerSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Snapshot View Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Snapshot View Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Snapshot View Supported</em>' attribute.
+	 * @see #setSnapshotViewSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_SnapshotViewSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isSnapshotViewSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isSnapshotViewSupported <em>Snapshot View Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Snapshot View Supported</em>' attribute.
+	 * @see #isSnapshotViewSupported()
+	 * @generated
+	 */
+	void setSnapshotViewSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Join Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Join Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Join Supported</em>' attribute.
+	 * @see #setJoinSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_JoinSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isJoinSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isJoinSupported <em>Join Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Join Supported</em>' attribute.
+	 * @see #isJoinSupported()
+	 * @generated
+	 */
+	void setJoinSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>View Trigger Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>View Trigger Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>View Trigger Supported</em>' attribute.
+	 * @see #setViewTriggerSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_ViewTriggerSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isViewTriggerSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isViewTriggerSupported <em>View Trigger Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>View Trigger Supported</em>' attribute.
+	 * @see #isViewTriggerSupported()
+	 * @generated
+	 */
+	void setViewTriggerSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Tablespaces Supported</b></em>' attribute.
+	 * The default value is <code>"true"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Tablespaces Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Tablespaces Supported</em>' attribute.
+	 * @see #setTablespacesSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_TablespacesSupported()
+	 * @model default="true"
+	 * @generated
+	 */
+	boolean isTablespacesSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isTablespacesSupported <em>Tablespaces Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Tablespaces Supported</em>' attribute.
+	 * @see #isTablespacesSupported()
+	 * @generated
+	 */
+	void setTablespacesSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Maximum Comment Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Maximum Comment Length</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Maximum Comment Length</em>' attribute.
+	 * @see #setMaximumCommentLength(int)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_MaximumCommentLength()
+	 * @model
+	 * @generated
+	 */
+	int getMaximumCommentLength();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getMaximumCommentLength <em>Maximum Comment Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Maximum Comment Length</em>' attribute.
+	 * @see #getMaximumCommentLength()
+	 * @generated
+	 */
+	void setMaximumCommentLength(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Sequence Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Sequence Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Sequence Supported</em>' attribute.
+	 * @see #setSequenceSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_SequenceSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isSequenceSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isSequenceSupported <em>Sequence Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Sequence Supported</em>' attribute.
+	 * @see #isSequenceSupported()
+	 * @generated
+	 */
+	void setSequenceSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>MQT Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>MQT Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>MQT Supported</em>' attribute.
+	 * @see #setMQTSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_MQTSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isMQTSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isMQTSupported <em>MQT Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>MQT Supported</em>' attribute.
+	 * @see #isMQTSupported()
+	 * @generated
+	 */
+	void setMQTSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Schema Supported</b></em>' attribute.
+	 * The default value is <code>"true"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Schema Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Schema Supported</em>' attribute.
+	 * @see #setSchemaSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_SchemaSupported()
+	 * @model default="true"
+	 * @generated
+	 */
+	boolean isSchemaSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isSchemaSupported <em>Schema Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Schema Supported</em>' attribute.
+	 * @see #isSchemaSupported()
+	 * @generated
+	 */
+	void setSchemaSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Alias Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Alias Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Alias Supported</em>' attribute.
+	 * @see #setAliasSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_AliasSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isAliasSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isAliasSupported <em>Alias Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Alias Supported</em>' attribute.
+	 * @see #isAliasSupported()
+	 * @generated
+	 */
+	void setAliasSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Synonym Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Synonym Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Synonym Supported</em>' attribute.
+	 * @see #setSynonymSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_SynonymSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isSynonymSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isSynonymSupported <em>Synonym Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Synonym Supported</em>' attribute.
+	 * @see #isSynonymSupported()
+	 * @generated
+	 */
+	void setSynonymSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>User Defined Type Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>User Defined Type Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>User Defined Type Supported</em>' attribute.
+	 * @see #setUserDefinedTypeSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_UserDefinedTypeSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isUserDefinedTypeSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isUserDefinedTypeSupported <em>User Defined Type Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>User Defined Type Supported</em>' attribute.
+	 * @see #isUserDefinedTypeSupported()
+	 * @generated
+	 */
+	void setUserDefinedTypeSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Domain Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Domain Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Domain Supported</em>' attribute.
+	 * @see #setDomainSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_DomainSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isDomainSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isDomainSupported <em>Domain Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Domain Supported</em>' attribute.
+	 * @see #isDomainSupported()
+	 * @generated
+	 */
+	void setDomainSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>SQL Statement Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>SQL Statement Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>SQL Statement Supported</em>' attribute.
+	 * @see #setSQLStatementSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_SQLStatementSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isSQLStatementSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isSQLStatementSupported <em>SQL Statement Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>SQL Statement Supported</em>' attribute.
+	 * @see #isSQLStatementSupported()
+	 * @generated
+	 */
+	void setSQLStatementSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Nickname Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Nickname Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Nickname Supported</em>' attribute.
+	 * @see #setNicknameSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_NicknameSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isNicknameSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isNicknameSupported <em>Nickname Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Nickname Supported</em>' attribute.
+	 * @see #isNicknameSupported()
+	 * @generated
+	 */
+	void setNicknameSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Quoted DML Supported</b></em>' attribute.
+	 * The default value is <code>"true"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Quoted DML Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Quoted DML Supported</em>' attribute.
+	 * @see #setQuotedDMLSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_QuotedDMLSupported()
+	 * @model default="true"
+	 * @generated
+	 */
+	boolean isQuotedDMLSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isQuotedDMLSupported <em>Quoted DML Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Quoted DML Supported</em>' attribute.
+	 * @see #isQuotedDMLSupported()
+	 * @generated
+	 */
+	void setQuotedDMLSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Quoted DDL Supported</b></em>' attribute.
+	 * The default value is <code>"true"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Quoted DDL Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Quoted DDL Supported</em>' attribute.
+	 * @see #setQuotedDDLSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_QuotedDDLSupported()
+	 * @model default="true"
+	 * @generated
+	 */
+	boolean isQuotedDDLSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isQuotedDDLSupported <em>Quoted DDL Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Quoted DDL Supported</em>' attribute.
+	 * @see #isQuotedDDLSupported()
+	 * @generated
+	 */
+	void setQuotedDDLSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Xml Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Xml Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Xml Supported</em>' attribute.
+	 * @see #setXmlSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_XmlSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isXmlSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isXmlSupported <em>Xml Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Xml Supported</em>' attribute.
+	 * @see #isXmlSupported()
+	 * @generated
+	 */
+	void setXmlSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>MQT Index Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>MQT Index Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>MQT Index Supported</em>' attribute.
+	 * @see #setMQTIndexSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_MQTIndexSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isMQTIndexSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isMQTIndexSupported <em>MQT Index Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>MQT Index Supported</em>' attribute.
+	 * @see #isMQTIndexSupported()
+	 * @generated
+	 */
+	void setMQTIndexSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Event Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Event Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Event Supported</em>' attribute.
+	 * @see #setEventSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_EventSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isEventSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isEventSupported <em>Event Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Event Supported</em>' attribute.
+	 * @see #isEventSupported()
+	 * @generated
+	 */
+	void setEventSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Sql UDF Supported</b></em>' attribute.
+	 * The default value is <code>"true"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Sql UDF Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Sql UDF Supported</em>' attribute.
+	 * @see #setSqlUDFSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_SqlUDFSupported()
+	 * @model default="true"
+	 * @generated
+	 */
+	boolean isSqlUDFSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isSqlUDFSupported <em>Sql UDF Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Sql UDF Supported</em>' attribute.
+	 * @see #isSqlUDFSupported()
+	 * @generated
+	 */
+	void setSqlUDFSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Stored Procedure Supported</b></em>' attribute.
+	 * The default value is <code>"true"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Stored Procedure Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Stored Procedure Supported</em>' attribute.
+	 * @see #setStoredProcedureSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_StoredProcedureSupported()
+	 * @model default="true"
+	 * @generated
+	 */
+	boolean isStoredProcedureSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isStoredProcedureSupported <em>Stored Procedure Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Stored Procedure Supported</em>' attribute.
+	 * @see #isStoredProcedureSupported()
+	 * @generated
+	 */
+	void setStoredProcedureSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Package Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Package Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Package Supported</em>' attribute.
+	 * @see #setPackageSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_PackageSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isPackageSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isPackageSupported <em>Package Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Package Supported</em>' attribute.
+	 * @see #isPackageSupported()
+	 * @generated
+	 */
+	void setPackageSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Authorization Identifier Supported</b></em>' attribute.
+	 * The default value is <code>"true"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Authorization Identifier Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Authorization Identifier Supported</em>' attribute.
+	 * @see #setAuthorizationIdentifierSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_AuthorizationIdentifierSupported()
+	 * @model default="true"
+	 * @generated
+	 */
+	boolean isAuthorizationIdentifierSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isAuthorizationIdentifierSupported <em>Authorization Identifier Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Authorization Identifier Supported</em>' attribute.
+	 * @see #isAuthorizationIdentifierSupported()
+	 * @generated
+	 */
+	void setAuthorizationIdentifierSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Role Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Role Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Role Supported</em>' attribute.
+	 * @see #setRoleSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_RoleSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isRoleSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isRoleSupported <em>Role Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Role Supported</em>' attribute.
+	 * @see #isRoleSupported()
+	 * @generated
+	 */
+	void setRoleSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Group Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Group Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Group Supported</em>' attribute.
+	 * @see #setGroupSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_GroupSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isGroupSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isGroupSupported <em>Group Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Group Supported</em>' attribute.
+	 * @see #isGroupSupported()
+	 * @generated
+	 */
+	void setGroupSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>User Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>User Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>User Supported</em>' attribute.
+	 * @see #setUserSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_UserSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isUserSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isUserSupported <em>User Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>User Supported</em>' attribute.
+	 * @see #isUserSupported()
+	 * @generated
+	 */
+	void setUserSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Role Authorization Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Role Authorization Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Role Authorization Supported</em>' attribute.
+	 * @see #setRoleAuthorizationSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_RoleAuthorizationSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isRoleAuthorizationSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isRoleAuthorizationSupported <em>Role Authorization Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Role Authorization Supported</em>' attribute.
+	 * @see #isRoleAuthorizationSupported()
+	 * @generated
+	 */
+	void setRoleAuthorizationSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Constructed Data Type Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Constructed Data Type Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Constructed Data Type Supported</em>' attribute.
+	 * @see #setConstructedDataTypeSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_ConstructedDataTypeSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isConstructedDataTypeSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isConstructedDataTypeSupported <em>Constructed Data Type Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Constructed Data Type Supported</em>' attribute.
+	 * @see #isConstructedDataTypeSupported()
+	 * @generated
+	 */
+	void setConstructedDataTypeSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>UDF Supported</b></em>' attribute.
+	 * The default value is <code>"true"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>UDF Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>UDF Supported</em>' attribute.
+	 * @see #setUDFSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_UDFSupported()
+	 * @model default="true"
+	 * @generated
+	 */
+	boolean isUDFSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#isUDFSupported <em>UDF Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>UDF Supported</em>' attribute.
+	 * @see #isUDFSupported()
+	 * @generated
+	 */
+	void setUDFSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Predefined Data Type Definitions</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Predefined Data Type Definitions</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Predefined Data Type Definitions</em>' containment reference list.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_PredefinedDataTypeDefinitions()
+	 * @model type="org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition" containment="true"
+	 * @generated
+	 */
+	EList getPredefinedDataTypeDefinitions();
+
+	/**
+	 * Returns the value of the '<em><b>Table Space Definition</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Table Space Definition</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Table Space Definition</em>' containment reference.
+	 * @see #setTableSpaceDefinition(TableSpaceDefinition)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_TableSpaceDefinition()
+	 * @model containment="true" required="true"
+	 * @generated
+	 */
+	TableSpaceDefinition getTableSpaceDefinition();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getTableSpaceDefinition <em>Table Space Definition</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Table Space Definition</em>' containment reference.
+	 * @see #getTableSpaceDefinition()
+	 * @generated
+	 */
+	void setTableSpaceDefinition(TableSpaceDefinition value);
+
+	/**
+	 * Returns the value of the '<em><b>Stored Procedure Definition</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Stored Procedure Definition</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Stored Procedure Definition</em>' containment reference.
+	 * @see #setStoredProcedureDefinition(StoredProcedureDefinition)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_StoredProcedureDefinition()
+	 * @model containment="true" required="true"
+	 * @generated
+	 */
+	StoredProcedureDefinition getStoredProcedureDefinition();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getStoredProcedureDefinition <em>Stored Procedure Definition</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Stored Procedure Definition</em>' containment reference.
+	 * @see #getStoredProcedureDefinition()
+	 * @generated
+	 */
+	void setStoredProcedureDefinition(StoredProcedureDefinition value);
+
+	/**
+	 * Returns the value of the '<em><b>Trigger Definition</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Trigger Definition</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Trigger Definition</em>' containment reference.
+	 * @see #setTriggerDefinition(TriggerDefinition)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_TriggerDefinition()
+	 * @model containment="true" required="true"
+	 * @generated
+	 */
+	TriggerDefinition getTriggerDefinition();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getTriggerDefinition <em>Trigger Definition</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Trigger Definition</em>' containment reference.
+	 * @see #getTriggerDefinition()
+	 * @generated
+	 */
+	void setTriggerDefinition(TriggerDefinition value);
+
+	/**
+	 * Returns the value of the '<em><b>Column Definition</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Column Definition</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Column Definition</em>' containment reference.
+	 * @see #setColumnDefinition(ColumnDefinition)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_ColumnDefinition()
+	 * @model containment="true" required="true"
+	 * @generated
+	 */
+	ColumnDefinition getColumnDefinition();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getColumnDefinition <em>Column Definition</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Column Definition</em>' containment reference.
+	 * @see #getColumnDefinition()
+	 * @generated
+	 */
+	void setColumnDefinition(ColumnDefinition value);
+
+	/**
+	 * Returns the value of the '<em><b>Constraint Definition</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Constraint Definition</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Constraint Definition</em>' containment reference.
+	 * @see #setConstraintDefinition(ConstraintDefinition)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_ConstraintDefinition()
+	 * @model containment="true" required="true"
+	 * @generated
+	 */
+	ConstraintDefinition getConstraintDefinition();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getConstraintDefinition <em>Constraint Definition</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Constraint Definition</em>' containment reference.
+	 * @see #getConstraintDefinition()
+	 * @generated
+	 */
+	void setConstraintDefinition(ConstraintDefinition value);
+
+	/**
+	 * Returns the value of the '<em><b>Extended Definitions</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.dbdefinition.ExtendedDefinition}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Extended Definitions</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Extended Definitions</em>' containment reference list.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_ExtendedDefinitions()
+	 * @model type="org.eclipse.datatools.modelbase.dbdefinition.ExtendedDefinition" containment="true"
+	 * @generated
+	 */
+	EList getExtendedDefinitions();
+
+	/**
+	 * Returns the value of the '<em><b>Index Definition</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Index Definition</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Index Definition</em>' containment reference.
+	 * @see #setIndexDefinition(IndexDefinition)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_IndexDefinition()
+	 * @model containment="true" required="true"
+	 * @generated
+	 */
+	IndexDefinition getIndexDefinition();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getIndexDefinition <em>Index Definition</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Index Definition</em>' containment reference.
+	 * @see #getIndexDefinition()
+	 * @generated
+	 */
+	void setIndexDefinition(IndexDefinition value);
+
+	/**
+	 * Returns the value of the '<em><b>Table Definition</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Table Definition</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Table Definition</em>' containment reference.
+	 * @see #setTableDefinition(TableDefinition)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_TableDefinition()
+	 * @model containment="true" required="true"
+	 * @generated
+	 */
+	TableDefinition getTableDefinition();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getTableDefinition <em>Table Definition</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Table Definition</em>' containment reference.
+	 * @see #getTableDefinition()
+	 * @generated
+	 */
+	void setTableDefinition(TableDefinition value);
+
+	/**
+	 * Returns the value of the '<em><b>Sequence Definition</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Sequence Definition</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Sequence Definition</em>' containment reference.
+	 * @see #setSequenceDefinition(SequenceDefinition)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_SequenceDefinition()
+	 * @model containment="true" required="true"
+	 * @generated
+	 */
+	SequenceDefinition getSequenceDefinition();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getSequenceDefinition <em>Sequence Definition</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Sequence Definition</em>' containment reference.
+	 * @see #getSequenceDefinition()
+	 * @generated
+	 */
+	void setSequenceDefinition(SequenceDefinition value);
+
+	/**
+	 * Returns the value of the '<em><b>Udt Definition</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Udt Definition</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Udt Definition</em>' containment reference.
+	 * @see #setUdtDefinition(UserDefinedTypeDefinition)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_UdtDefinition()
+	 * @model containment="true" required="true"
+	 * @generated
+	 */
+	UserDefinedTypeDefinition getUdtDefinition();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getUdtDefinition <em>Udt Definition</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Udt Definition</em>' containment reference.
+	 * @see #getUdtDefinition()
+	 * @generated
+	 */
+	void setUdtDefinition(UserDefinedTypeDefinition value);
+
+	/**
+	 * Returns the value of the '<em><b>Query Definition</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Query Definition</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Query Definition</em>' containment reference.
+	 * @see #setQueryDefinition(QueryDefinition)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_QueryDefinition()
+	 * @model containment="true" required="true"
+	 * @generated
+	 */
+	QueryDefinition getQueryDefinition();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getQueryDefinition <em>Query Definition</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Query Definition</em>' containment reference.
+	 * @see #getQueryDefinition()
+	 * @generated
+	 */
+	void setQueryDefinition(QueryDefinition value);
+
+	/**
+	 * Returns the value of the '<em><b>SQL Syntax Definition</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>SQL Syntax Definition</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>SQL Syntax Definition</em>' containment reference.
+	 * @see #setSQLSyntaxDefinition(SQLSyntaxDefinition)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_SQLSyntaxDefinition()
+	 * @model containment="true" required="true"
+	 * @generated
+	 */
+	SQLSyntaxDefinition getSQLSyntaxDefinition();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getSQLSyntaxDefinition <em>SQL Syntax Definition</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>SQL Syntax Definition</em>' containment reference.
+	 * @see #getSQLSyntaxDefinition()
+	 * @generated
+	 */
+	void setSQLSyntaxDefinition(SQLSyntaxDefinition value);
+
+	/**
+	 * Returns the value of the '<em><b>Nickname Definition</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Nickname Definition</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Nickname Definition</em>' containment reference.
+	 * @see #setNicknameDefinition(NicknameDefinition)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_NicknameDefinition()
+	 * @model containment="true" required="true"
+	 * @generated
+	 */
+	NicknameDefinition getNicknameDefinition();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getNicknameDefinition <em>Nickname Definition</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Nickname Definition</em>' containment reference.
+	 * @see #getNicknameDefinition()
+	 * @generated
+	 */
+	void setNicknameDefinition(NicknameDefinition value);
+
+	/**
+	 * Returns the value of the '<em><b>Schema Definition</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Schema Definition</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Schema Definition</em>' containment reference.
+	 * @see #setSchemaDefinition(SchemaDefinition)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_SchemaDefinition()
+	 * @model containment="true" required="true"
+	 * @generated
+	 */
+	SchemaDefinition getSchemaDefinition();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getSchemaDefinition <em>Schema Definition</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Schema Definition</em>' containment reference.
+	 * @see #getSchemaDefinition()
+	 * @generated
+	 */
+	void setSchemaDefinition(SchemaDefinition value);
+
+	/**
+	 * Returns the value of the '<em><b>View Definition</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>View Definition</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>View Definition</em>' containment reference.
+	 * @see #setViewDefinition(ViewDefinition)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_ViewDefinition()
+	 * @model containment="true" required="true"
+	 * @generated
+	 */
+	ViewDefinition getViewDefinition();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getViewDefinition <em>View Definition</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>View Definition</em>' containment reference.
+	 * @see #getViewDefinition()
+	 * @generated
+	 */
+	void setViewDefinition(ViewDefinition value);
+
+	/**
+	 * Returns the value of the '<em><b>Debugger Definition</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Debugger Definition</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Debugger Definition</em>' containment reference.
+	 * @see #setDebuggerDefinition(DebuggerDefinition)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_DebuggerDefinition()
+	 * @model containment="true" required="true"
+	 * @generated
+	 */
+	DebuggerDefinition getDebuggerDefinition();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getDebuggerDefinition <em>Debugger Definition</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Debugger Definition</em>' containment reference.
+	 * @see #getDebuggerDefinition()
+	 * @generated
+	 */
+	void setDebuggerDefinition(DebuggerDefinition value);
+
+	/**
+	 * Returns the value of the '<em><b>Privileged Element Definitions</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.dbdefinition.PrivilegedElementDefinition}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Privileged Element Definitions</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Privileged Element Definitions</em>' containment reference list.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_PrivilegedElementDefinitions()
+	 * @model type="org.eclipse.datatools.modelbase.dbdefinition.PrivilegedElementDefinition" containment="true"
+	 * @generated
+	 */
+	EList getPrivilegedElementDefinitions();
+
+	/**
+	 * Returns the value of the '<em><b>Constructed Data Type Definition</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Constructed Data Type Definition</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Constructed Data Type Definition</em>' containment reference.
+	 * @see #setConstructedDataTypeDefinition(ConstructedDataTypeDefinition)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDatabaseVendorDefinition_ConstructedDataTypeDefinition()
+	 * @model containment="true" required="true"
+	 * @generated
+	 */
+	ConstructedDataTypeDefinition getConstructedDataTypeDefinition();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition#getConstructedDataTypeDefinition <em>Constructed Data Type Definition</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Constructed Data Type Definition</em>' containment reference.
+	 * @see #getConstructedDataTypeDefinition()
+	 * @generated
+	 */
+	void setConstructedDataTypeDefinition(ConstructedDataTypeDefinition value);
+
+} // DatabaseVendorDefinition
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/DebuggerDefinition.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/DebuggerDefinition.java
new file mode 100644
index 0000000..de9f319
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/DebuggerDefinition.java
@@ -0,0 +1,54 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.modelbase.dbdefinition;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Debugger Definition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.DebuggerDefinition#isConditionSupported <em>Condition Supported</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDebuggerDefinition()
+ * @model
+ * @generated
+ */
+public interface DebuggerDefinition extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Condition Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Condition Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Condition Supported</em>' attribute.
+	 * @see #setConditionSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDebuggerDefinition_ConditionSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isConditionSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.DebuggerDefinition#isConditionSupported <em>Condition Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Condition Supported</em>' attribute.
+	 * @see #isConditionSupported()
+	 * @generated
+	 */
+	void setConditionSupported(boolean value);
+
+} // DebuggerDefinition
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/DefaultValueType.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/DefaultValueType.java
new file mode 100644
index 0000000..9fc8f0f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/DefaultValueType.java
@@ -0,0 +1,351 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DefaultValueType.java,v 1.1 2005/08/02 22:56:24 ledunnel Exp $
+ */
+package org.eclipse.datatools.modelbase.dbdefinition;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Default Value Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getDefaultValueType()
+ * @model
+ * @generated
+ */
+public final class DefaultValueType extends AbstractEnumerator {
+	/**
+	 * The '<em><b>CURRENT DATE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #CURRENT_DATE_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int CURRENT_DATE = 0;
+
+	/**
+	 * The '<em><b>CURRENT ID</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #CURRENT_ID_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int CURRENT_ID = 1;
+
+	/**
+	 * The '<em><b>CURRENT PATH</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #CURRENT_PATH_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int CURRENT_PATH = 2;
+
+	/**
+	 * The '<em><b>CURRENT TIME STAMP</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #CURRENT_TIME_STAMP_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int CURRENT_TIME_STAMP = 3;
+
+	/**
+	 * The '<em><b>CURRENT TIME</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #CURRENT_TIME_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int CURRENT_TIME = 4;
+
+	/**
+	 * The '<em><b>CURRENT USER</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #CURRENT_USER_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int CURRENT_USER = 5;
+
+	/**
+	 * The '<em><b>EXPRESSION</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #EXPRESSION_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int EXPRESSION = 6;
+
+	/**
+	 * The '<em><b>LITERAL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #LITERAL_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int LITERAL = 7;
+
+	/**
+	 * The '<em><b>NO DEFAULT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NO_DEFAULT_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NO_DEFAULT = 8;
+
+	/**
+	 * The '<em><b>NULL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NULL_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NULL = 9;
+
+	/**
+	 * The '<em><b>CURRENT DATE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>CURRENT DATE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #CURRENT_DATE
+	 * @generated
+	 * @ordered
+	 */
+	public static final DefaultValueType CURRENT_DATE_LITERAL = new DefaultValueType(CURRENT_DATE, "CURRENT_DATE"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>CURRENT ID</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>CURRENT ID</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #CURRENT_ID
+	 * @generated
+	 * @ordered
+	 */
+	public static final DefaultValueType CURRENT_ID_LITERAL = new DefaultValueType(CURRENT_ID, "CURRENT_ID"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>CURRENT PATH</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>CURRENT PATH</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #CURRENT_PATH
+	 * @generated
+	 * @ordered
+	 */
+	public static final DefaultValueType CURRENT_PATH_LITERAL = new DefaultValueType(CURRENT_PATH, "CURRENT_PATH"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>CURRENT TIME STAMP</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>CURRENT TIME STAMP</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #CURRENT_TIME_STAMP
+	 * @generated
+	 * @ordered
+	 */
+	public static final DefaultValueType CURRENT_TIME_STAMP_LITERAL = new DefaultValueType(CURRENT_TIME_STAMP, "CURRENT_TIME_STAMP"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>CURRENT TIME</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>CURRENT TIME</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #CURRENT_TIME
+	 * @generated
+	 * @ordered
+	 */
+	public static final DefaultValueType CURRENT_TIME_LITERAL = new DefaultValueType(CURRENT_TIME, "CURRENT_TIME"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>CURRENT USER</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>CURRENT USER</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #CURRENT_USER
+	 * @generated
+	 * @ordered
+	 */
+	public static final DefaultValueType CURRENT_USER_LITERAL = new DefaultValueType(CURRENT_USER, "CURRENT_USER"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>EXPRESSION</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>EXPRESSION</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #EXPRESSION
+	 * @generated
+	 * @ordered
+	 */
+	public static final DefaultValueType EXPRESSION_LITERAL = new DefaultValueType(EXPRESSION, "EXPRESSION"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>LITERAL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>LITERAL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #LITERAL
+	 * @generated
+	 * @ordered
+	 */
+	public static final DefaultValueType LITERAL_LITERAL = new DefaultValueType(LITERAL, "LITERAL"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>NO DEFAULT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NO DEFAULT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #NO_DEFAULT
+	 * @generated
+	 * @ordered
+	 */
+	public static final DefaultValueType NO_DEFAULT_LITERAL = new DefaultValueType(NO_DEFAULT, "NO_DEFAULT"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>NULL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NULL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #NULL
+	 * @generated
+	 * @ordered
+	 */
+	public static final DefaultValueType NULL_LITERAL = new DefaultValueType(NULL, "NULL"); //$NON-NLS-1$
+
+	/**
+	 * An array of all the '<em><b>Default Value Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final DefaultValueType[] VALUES_ARRAY =
+		new DefaultValueType[] {
+			CURRENT_DATE_LITERAL,
+			CURRENT_ID_LITERAL,
+			CURRENT_PATH_LITERAL,
+			CURRENT_TIME_STAMP_LITERAL,
+			CURRENT_TIME_LITERAL,
+			CURRENT_USER_LITERAL,
+			EXPRESSION_LITERAL,
+			LITERAL_LITERAL,
+			NO_DEFAULT_LITERAL,
+			NULL_LITERAL,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Default Value Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Default Value Type</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static DefaultValueType get(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			DefaultValueType result = VALUES_ARRAY[i];
+			if (result.toString().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Default Value Type</b></em>' literal with the specified value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static DefaultValueType get(int value) {
+		switch (value) {
+			case CURRENT_DATE: return CURRENT_DATE_LITERAL;
+			case CURRENT_ID: return CURRENT_ID_LITERAL;
+			case CURRENT_PATH: return CURRENT_PATH_LITERAL;
+			case CURRENT_TIME_STAMP: return CURRENT_TIME_STAMP_LITERAL;
+			case CURRENT_TIME: return CURRENT_TIME_LITERAL;
+			case CURRENT_USER: return CURRENT_USER_LITERAL;
+			case EXPRESSION: return EXPRESSION_LITERAL;
+			case LITERAL: return LITERAL_LITERAL;
+			case NO_DEFAULT: return NO_DEFAULT_LITERAL;
+			case NULL: return NULL_LITERAL;
+		}
+		return null;	
+	}
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private DefaultValueType(int value, String name) {
+		super(value, name);
+	}
+
+} //DefaultValueType
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/ExtendedDefinition.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/ExtendedDefinition.java
new file mode 100644
index 0000000..abbba7b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/ExtendedDefinition.java
@@ -0,0 +1,85 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.dbdefinition;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Extended Definition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.ExtendedDefinition#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.ExtendedDefinition#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getExtendedDefinition()
+ * @model
+ * @generated
+ */
+public interface ExtendedDefinition extends EObject{
+	/**
+	 * Returns the value of the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Name</em>' attribute.
+	 * @see #setName(String)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getExtendedDefinition_Name()
+	 * @model
+	 * @generated
+	 */
+	String getName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.ExtendedDefinition#getName <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Name</em>' attribute.
+	 * @see #getName()
+	 * @generated
+	 */
+	void setName(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Value</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Value</em>' attribute.
+	 * @see #setValue(String)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getExtendedDefinition_Value()
+	 * @model
+	 * @generated
+	 */
+	String getValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.ExtendedDefinition#getValue <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Value</em>' attribute.
+	 * @see #getValue()
+	 * @generated
+	 */
+	void setValue(String value);
+
+} // ExtendedDefinition
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/FieldQualifierDefinition.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/FieldQualifierDefinition.java
new file mode 100644
index 0000000..f9516b0
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/FieldQualifierDefinition.java
@@ -0,0 +1,240 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.modelbase.dbdefinition;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.IntervalQualifierType;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Field Qualifier Definition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.FieldQualifierDefinition#getValidTrailingFieldQualifierDefinitions <em>Valid Trailing Field Qualifier Definitions</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.FieldQualifierDefinition#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.FieldQualifierDefinition#getMaximumPrecision <em>Maximum Precision</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.FieldQualifierDefinition#getDefaultPrecision <em>Default Precision</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.FieldQualifierDefinition#isPrecisionSupported <em>Precision Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.FieldQualifierDefinition#getMaximumScale <em>Maximum Scale</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.FieldQualifierDefinition#getDefaultScale <em>Default Scale</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.FieldQualifierDefinition#isScaleSupported <em>Scale Supported</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getFieldQualifierDefinition()
+ * @model
+ * @generated
+ */
+public interface FieldQualifierDefinition extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Valid Trailing Field Qualifier Definitions</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.dbdefinition.FieldQualifierDefinition}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Valid Trailing Field Qualifier Definitions</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Valid Trailing Field Qualifier Definitions</em>' reference list.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getFieldQualifierDefinition_ValidTrailingFieldQualifierDefinitions()
+	 * @model type="org.eclipse.datatools.modelbase.dbdefinition.FieldQualifierDefinition"
+	 * @generated
+	 */
+	EList getValidTrailingFieldQualifierDefinitions();
+
+	/**
+	 * Returns the value of the '<em><b>Name</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.datatypes.IntervalQualifierType}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Name</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.IntervalQualifierType
+	 * @see #setName(IntervalQualifierType)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getFieldQualifierDefinition_Name()
+	 * @model
+	 * @generated
+	 */
+	IntervalQualifierType getName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.FieldQualifierDefinition#getName <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Name</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.IntervalQualifierType
+	 * @see #getName()
+	 * @generated
+	 */
+	void setName(IntervalQualifierType value);
+
+	/**
+	 * Returns the value of the '<em><b>Maximum Precision</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Maximum Precision</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Maximum Precision</em>' attribute.
+	 * @see #setMaximumPrecision(int)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getFieldQualifierDefinition_MaximumPrecision()
+	 * @model
+	 * @generated
+	 */
+	int getMaximumPrecision();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.FieldQualifierDefinition#getMaximumPrecision <em>Maximum Precision</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Maximum Precision</em>' attribute.
+	 * @see #getMaximumPrecision()
+	 * @generated
+	 */
+	void setMaximumPrecision(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Default Precision</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Default Precision</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Default Precision</em>' attribute.
+	 * @see #setDefaultPrecision(int)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getFieldQualifierDefinition_DefaultPrecision()
+	 * @model
+	 * @generated
+	 */
+	int getDefaultPrecision();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.FieldQualifierDefinition#getDefaultPrecision <em>Default Precision</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Default Precision</em>' attribute.
+	 * @see #getDefaultPrecision()
+	 * @generated
+	 */
+	void setDefaultPrecision(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Precision Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Precision Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Precision Supported</em>' attribute.
+	 * @see #setPrecisionSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getFieldQualifierDefinition_PrecisionSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isPrecisionSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.FieldQualifierDefinition#isPrecisionSupported <em>Precision Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Precision Supported</em>' attribute.
+	 * @see #isPrecisionSupported()
+	 * @generated
+	 */
+	void setPrecisionSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Maximum Scale</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Maximum Scale</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Maximum Scale</em>' attribute.
+	 * @see #setMaximumScale(int)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getFieldQualifierDefinition_MaximumScale()
+	 * @model
+	 * @generated
+	 */
+	int getMaximumScale();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.FieldQualifierDefinition#getMaximumScale <em>Maximum Scale</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Maximum Scale</em>' attribute.
+	 * @see #getMaximumScale()
+	 * @generated
+	 */
+	void setMaximumScale(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Default Scale</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Default Scale</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Default Scale</em>' attribute.
+	 * @see #setDefaultScale(int)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getFieldQualifierDefinition_DefaultScale()
+	 * @model
+	 * @generated
+	 */
+	int getDefaultScale();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.FieldQualifierDefinition#getDefaultScale <em>Default Scale</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Default Scale</em>' attribute.
+	 * @see #getDefaultScale()
+	 * @generated
+	 */
+	void setDefaultScale(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Scale Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Scale Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Scale Supported</em>' attribute.
+	 * @see #setScaleSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getFieldQualifierDefinition_ScaleSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isScaleSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.FieldQualifierDefinition#isScaleSupported <em>Scale Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Scale Supported</em>' attribute.
+	 * @see #isScaleSupported()
+	 * @generated
+	 */
+	void setScaleSupported(boolean value);
+
+} // FieldQualifierDefinition
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/IndexDefinition.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/IndexDefinition.java
new file mode 100644
index 0000000..14a4a09
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/IndexDefinition.java
@@ -0,0 +1,224 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.dbdefinition;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Index Definition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.IndexDefinition#getPercentFreeTerminology <em>Percent Free Terminology</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.IndexDefinition#isPercentFreeChangeable <em>Percent Free Changeable</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.IndexDefinition#isClusteringSupported <em>Clustering Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.IndexDefinition#isClusterChangeable <em>Cluster Changeable</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.IndexDefinition#isFillFactorSupported <em>Fill Factor Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.IndexDefinition#isIncludedColumnsSupported <em>Included Columns Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.IndexDefinition#getMaximumIdentifierLength <em>Maximum Identifier Length</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getIndexDefinition()
+ * @model
+ * @generated
+ */
+public interface IndexDefinition extends EObject{
+	/**
+	 * Returns the value of the '<em><b>Percent Free Terminology</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.dbdefinition.PercentFreeTerminology}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Percent Free Terminology</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Percent Free Terminology</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PercentFreeTerminology
+	 * @see #setPercentFreeTerminology(PercentFreeTerminology)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getIndexDefinition_PercentFreeTerminology()
+	 * @model
+	 * @generated
+	 */
+	PercentFreeTerminology getPercentFreeTerminology();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.IndexDefinition#getPercentFreeTerminology <em>Percent Free Terminology</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Percent Free Terminology</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PercentFreeTerminology
+	 * @see #getPercentFreeTerminology()
+	 * @generated
+	 */
+	void setPercentFreeTerminology(PercentFreeTerminology value);
+
+	/**
+	 * Returns the value of the '<em><b>Percent Free Changeable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Percent Free Changeable</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Percent Free Changeable</em>' attribute.
+	 * @see #setPercentFreeChangeable(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getIndexDefinition_PercentFreeChangeable()
+	 * @model
+	 * @generated
+	 */
+	boolean isPercentFreeChangeable();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.IndexDefinition#isPercentFreeChangeable <em>Percent Free Changeable</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Percent Free Changeable</em>' attribute.
+	 * @see #isPercentFreeChangeable()
+	 * @generated
+	 */
+	void setPercentFreeChangeable(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Clustering Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Clustering Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Clustering Supported</em>' attribute.
+	 * @see #setClusteringSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getIndexDefinition_ClusteringSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isClusteringSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.IndexDefinition#isClusteringSupported <em>Clustering Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Clustering Supported</em>' attribute.
+	 * @see #isClusteringSupported()
+	 * @generated
+	 */
+	void setClusteringSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Cluster Changeable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Cluster Changeable</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Cluster Changeable</em>' attribute.
+	 * @see #setClusterChangeable(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getIndexDefinition_ClusterChangeable()
+	 * @model
+	 * @generated
+	 */
+	boolean isClusterChangeable();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.IndexDefinition#isClusterChangeable <em>Cluster Changeable</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Cluster Changeable</em>' attribute.
+	 * @see #isClusterChangeable()
+	 * @generated
+	 */
+	void setClusterChangeable(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Fill Factor Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Fill Factor Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Fill Factor Supported</em>' attribute.
+	 * @see #setFillFactorSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getIndexDefinition_FillFactorSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isFillFactorSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.IndexDefinition#isFillFactorSupported <em>Fill Factor Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Fill Factor Supported</em>' attribute.
+	 * @see #isFillFactorSupported()
+	 * @generated
+	 */
+	void setFillFactorSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Included Columns Supported</b></em>' attribute.
+	 * The default value is <code>"false"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Included Columns Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Included Columns Supported</em>' attribute.
+	 * @see #setIncludedColumnsSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getIndexDefinition_IncludedColumnsSupported()
+	 * @model default="false"
+	 * @generated
+	 */
+	boolean isIncludedColumnsSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.IndexDefinition#isIncludedColumnsSupported <em>Included Columns Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Included Columns Supported</em>' attribute.
+	 * @see #isIncludedColumnsSupported()
+	 * @generated
+	 */
+	void setIncludedColumnsSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Maximum Identifier Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Maximum Identifier Length</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Maximum Identifier Length</em>' attribute.
+	 * @see #setMaximumIdentifierLength(int)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getIndexDefinition_MaximumIdentifierLength()
+	 * @model
+	 * @generated
+	 */
+	int getMaximumIdentifierLength();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.IndexDefinition#getMaximumIdentifierLength <em>Maximum Identifier Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Maximum Identifier Length</em>' attribute.
+	 * @see #getMaximumIdentifierLength()
+	 * @generated
+	 */
+	void setMaximumIdentifierLength(int value);
+
+} // IndexDefinition
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/LanguageType.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/LanguageType.java
new file mode 100644
index 0000000..959c6fe
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/LanguageType.java
@@ -0,0 +1,502 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LanguageType.java,v 1.3 2006/10/11 20:34:55 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.dbdefinition;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Language Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getLanguageType()
+ * @model
+ * @generated
+ */
+public final class LanguageType extends AbstractEnumerator {
+	/**
+	 * The '<em><b>SQL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #SQL_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int SQL = 0;
+
+	/**
+	 * The '<em><b>JAVA</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #JAVA_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int JAVA = 1;
+
+	/**
+	 * The '<em><b>C</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #C_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int C = 2;
+
+	/**
+	 * The '<em><b>OLE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #OLE_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int OLE = 3;
+
+	/**
+	 * The '<em><b>ASSEMBLY</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #ASSEMBLY_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int ASSEMBLY = 4;
+
+	/**
+	 * The '<em><b>COBOL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #COBOL_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int COBOL = 5;
+
+	/**
+	 * The '<em><b>PLI</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #PLI_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int PLI = 6;
+
+	/**
+	 * The '<em><b>CPLUSPLUS</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #CPLUSPLUS_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int CPLUSPLUS = 7;
+
+	/**
+	 * The '<em><b>CL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #CL_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int CL = 8;
+
+	/**
+	 * The '<em><b>COBOLLE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #COBOLLE_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int COBOLLE = 9;
+
+	/**
+	 * The '<em><b>FORTRAN</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #FORTRAN_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int FORTRAN = 10;
+
+	/**
+	 * The '<em><b>REXX</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #REXX_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int REXX = 11;
+
+	/**
+	 * The '<em><b>RPG</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #RPG_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int RPG = 12;
+
+	/**
+	 * The '<em><b>RPGLE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #RPGLE_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int RPGLE = 13;
+
+	/**
+	 * The '<em><b>PLSQL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>PLSQL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #PLSQL_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int PLSQL = 14;
+
+	/**
+	 * The '<em><b>SQL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>SQL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #SQL
+	 * @generated
+	 * @ordered
+	 */
+	public static final LanguageType SQL_LITERAL = new LanguageType(SQL, "SQL", "SQL"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>JAVA</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>JAVA</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #JAVA
+	 * @generated
+	 * @ordered
+	 */
+	public static final LanguageType JAVA_LITERAL = new LanguageType(JAVA, "JAVA", "JAVA"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>C</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>C</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #C
+	 * @generated
+	 * @ordered
+	 */
+	public static final LanguageType C_LITERAL = new LanguageType(C, "C", "C"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>OLE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>OLE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #OLE
+	 * @generated
+	 * @ordered
+	 */
+	public static final LanguageType OLE_LITERAL = new LanguageType(OLE, "OLE", "OLE"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>ASSEMBLY</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>ASSEMBLY</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #ASSEMBLY
+	 * @generated
+	 * @ordered
+	 */
+	public static final LanguageType ASSEMBLY_LITERAL = new LanguageType(ASSEMBLY, "ASSEMBLY", "ASSEMBLY"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>COBOL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>COBOL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #COBOL
+	 * @generated
+	 * @ordered
+	 */
+	public static final LanguageType COBOL_LITERAL = new LanguageType(COBOL, "COBOL", "COBOL"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>PLI</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>PLI</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #PLI
+	 * @generated
+	 * @ordered
+	 */
+	public static final LanguageType PLI_LITERAL = new LanguageType(PLI, "PLI", "PLI"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>CPLUSPLUS</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>CPLUSPLUS</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #CPLUSPLUS
+	 * @generated
+	 * @ordered
+	 */
+	public static final LanguageType CPLUSPLUS_LITERAL = new LanguageType(CPLUSPLUS, "CPLUSPLUS", "CPLUSPLUS"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>CL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>CL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #CL
+	 * @generated
+	 * @ordered
+	 */
+	public static final LanguageType CL_LITERAL = new LanguageType(CL, "CL", "CL"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>COBOLLE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>COBOLLE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #COBOLLE
+	 * @generated
+	 * @ordered
+	 */
+	public static final LanguageType COBOLLE_LITERAL = new LanguageType(COBOLLE, "COBOLLE", "COBOLLE"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>FORTRAN</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>FORTRAN</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #FORTRAN
+	 * @generated
+	 * @ordered
+	 */
+	public static final LanguageType FORTRAN_LITERAL = new LanguageType(FORTRAN, "FORTRAN", "FORTRAN"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>REXX</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>REXX</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #REXX
+	 * @generated
+	 * @ordered
+	 */
+	public static final LanguageType REXX_LITERAL = new LanguageType(REXX, "REXX", "REXX"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>RPG</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>RPG</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #RPG
+	 * @generated
+	 * @ordered
+	 */
+	public static final LanguageType RPG_LITERAL = new LanguageType(RPG, "RPG", "RPG"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>RPGLE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>RPGLE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #RPGLE
+	 * @generated
+	 * @ordered
+	 */
+	public static final LanguageType RPGLE_LITERAL = new LanguageType(RPGLE, "RPGLE", "RPGLE"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>PLSQL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #PLSQL
+	 * @generated
+	 * @ordered
+	 */
+	public static final LanguageType PLSQL_LITERAL = new LanguageType(PLSQL, "PLSQL", "PLSQL"); //$NON-NLS-1$ //$NON-NLS-2$
+
+	/**
+	 * An array of all the '<em><b>Language Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final LanguageType[] VALUES_ARRAY =
+		new LanguageType[] {
+			SQL_LITERAL,
+			JAVA_LITERAL,
+			C_LITERAL,
+			OLE_LITERAL,
+			ASSEMBLY_LITERAL,
+			COBOL_LITERAL,
+			PLI_LITERAL,
+			CPLUSPLUS_LITERAL,
+			CL_LITERAL,
+			COBOLLE_LITERAL,
+			FORTRAN_LITERAL,
+			REXX_LITERAL,
+			RPG_LITERAL,
+			RPGLE_LITERAL,
+			PLSQL_LITERAL,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Language Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Language Type</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static LanguageType get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			LanguageType result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Language Type</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static LanguageType getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			LanguageType result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Language Type</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static LanguageType get(int value) {
+		switch (value) {
+			case SQL: return SQL_LITERAL;
+			case JAVA: return JAVA_LITERAL;
+			case C: return C_LITERAL;
+			case OLE: return OLE_LITERAL;
+			case ASSEMBLY: return ASSEMBLY_LITERAL;
+			case COBOL: return COBOL_LITERAL;
+			case PLI: return PLI_LITERAL;
+			case CPLUSPLUS: return CPLUSPLUS_LITERAL;
+			case CL: return CL_LITERAL;
+			case COBOLLE: return COBOLLE_LITERAL;
+			case FORTRAN: return FORTRAN_LITERAL;
+			case REXX: return REXX_LITERAL;
+			case RPG: return RPG_LITERAL;
+			case RPGLE: return RPGLE_LITERAL;
+			case PLSQL: return PLSQL_LITERAL;
+		}
+		return null;
+	}
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private LanguageType(int value, String name, String literal) {
+		super(value, name, literal);
+	}
+
+} //LanguageType
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/LengthUnit.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/LengthUnit.java
new file mode 100644
index 0000000..07c5ce0
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/LengthUnit.java
@@ -0,0 +1,205 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LengthUnit.java,v 1.3 2006/10/11 20:34:55 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.dbdefinition;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Length Unit</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getLengthUnit()
+ * @model
+ * @generated
+ */
+public final class LengthUnit extends AbstractEnumerator {
+	/**
+	 * The '<em><b>DECIMAL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #DECIMAL_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int DECIMAL = 0;
+
+	/**
+	 * The '<em><b>BIT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #BIT_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int BIT = 1;
+
+	/**
+	 * The '<em><b>BYTE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #BYTE_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int BYTE = 2;
+
+	/**
+	 * The '<em><b>DOUBLE BYTE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #DOUBLE_BYTE_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int DOUBLE_BYTE = 3;
+
+	/**
+	 * The '<em><b>DECIMAL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>DECIMAL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #DECIMAL
+	 * @generated
+	 * @ordered
+	 */
+	public static final LengthUnit DECIMAL_LITERAL = new LengthUnit(DECIMAL, "DECIMAL", "DECIMAL"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>BIT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>BIT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #BIT
+	 * @generated
+	 * @ordered
+	 */
+	public static final LengthUnit BIT_LITERAL = new LengthUnit(BIT, "BIT", "BIT"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>BYTE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>BYTE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #BYTE
+	 * @generated
+	 * @ordered
+	 */
+	public static final LengthUnit BYTE_LITERAL = new LengthUnit(BYTE, "BYTE", "BYTE"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>DOUBLE BYTE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>DOUBLE BYTE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #DOUBLE_BYTE
+	 * @generated
+	 * @ordered
+	 */
+	public static final LengthUnit DOUBLE_BYTE_LITERAL = new LengthUnit(DOUBLE_BYTE, "DOUBLE_BYTE", "DOUBLE_BYTE"); //$NON-NLS-1$
+
+	/**
+	 * An array of all the '<em><b>Length Unit</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final LengthUnit[] VALUES_ARRAY =
+		new LengthUnit[] {
+			DECIMAL_LITERAL,
+			BIT_LITERAL,
+			BYTE_LITERAL,
+			DOUBLE_BYTE_LITERAL,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Length Unit</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Length Unit</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static LengthUnit get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			LengthUnit result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Length Unit</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static LengthUnit getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			LengthUnit result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Length Unit</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static LengthUnit get(int value) {
+		switch (value) {
+			case DECIMAL: return DECIMAL_LITERAL;
+			case BIT: return BIT_LITERAL;
+			case BYTE: return BYTE_LITERAL;
+			case DOUBLE_BYTE: return DOUBLE_BYTE_LITERAL;
+		}
+		return null;
+	}
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private LengthUnit(int value, String name, String literal) {
+		super(value, name, literal);
+	}
+
+} //LengthUnit
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/NicknameDefinition.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/NicknameDefinition.java
new file mode 100644
index 0000000..c2c0620
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/NicknameDefinition.java
@@ -0,0 +1,108 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: NicknameDefinition.java,v 1.2 2005/12/22 23:32:56 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.dbdefinition;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Nickname Definition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.NicknameDefinition#isConstraintSupported <em>Constraint Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.NicknameDefinition#isIndexSupported <em>Index Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.NicknameDefinition#getMaximumIdentifierLength <em>Maximum Identifier Length</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getNicknameDefinition()
+ * @model
+ * @generated
+ */
+public interface NicknameDefinition extends EObject{
+	/**
+	 * Returns the value of the '<em><b>Constraint Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Constraint Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Constraint Supported</em>' attribute.
+	 * @see #setConstraintSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getNicknameDefinition_ConstraintSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isConstraintSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.NicknameDefinition#isConstraintSupported <em>Constraint Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Constraint Supported</em>' attribute.
+	 * @see #isConstraintSupported()
+	 * @generated
+	 */
+	void setConstraintSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Index Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Index Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Index Supported</em>' attribute.
+	 * @see #setIndexSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getNicknameDefinition_IndexSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isIndexSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.NicknameDefinition#isIndexSupported <em>Index Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Index Supported</em>' attribute.
+	 * @see #isIndexSupported()
+	 * @generated
+	 */
+	void setIndexSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Maximum Identifier Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Maximum Identifier Length</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Maximum Identifier Length</em>' attribute.
+	 * @see #setMaximumIdentifierLength(int)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getNicknameDefinition_MaximumIdentifierLength()
+	 * @model
+	 * @generated
+	 */
+	int getMaximumIdentifierLength();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.NicknameDefinition#getMaximumIdentifierLength <em>Maximum Identifier Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Maximum Identifier Length</em>' attribute.
+	 * @see #getMaximumIdentifierLength()
+	 * @generated
+	 */
+	void setMaximumIdentifierLength(int value);
+
+} // NicknameDefinition
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/ParameterStyle.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/ParameterStyle.java
new file mode 100644
index 0000000..753be86
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/ParameterStyle.java
@@ -0,0 +1,286 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ParameterStyle.java,v 1.3 2006/10/11 20:34:54 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.dbdefinition;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Parameter Style</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getParameterStyle()
+ * @model
+ * @generated
+ */
+public final class ParameterStyle extends AbstractEnumerator {
+	/**
+	 * The '<em><b>DB2SQL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #DB2SQL_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int DB2SQL = 0;
+
+	/**
+	 * The '<em><b>GENERAL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #GENERAL_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int GENERAL = 1;
+
+	/**
+	 * The '<em><b>GENERAL WITH NULLS</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #GENERAL_WITH_NULLS_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int GENERAL_WITH_NULLS = 2;
+
+	/**
+	 * The '<em><b>DB2GENRL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #DB2GENRL_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int DB2GENRL = 3;
+
+	/**
+	 * The '<em><b>DB2DARI</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #DB2DARI_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int DB2DARI = 4;
+
+	/**
+	 * The '<em><b>JAVA</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #JAVA_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int JAVA = 5;
+
+	/**
+	 * The '<em><b>SQL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #SQL_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int SQL = 6;
+
+	/**
+	 * The '<em><b>DB2SQL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>DB2SQL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #DB2SQL
+	 * @generated
+	 * @ordered
+	 */
+	public static final ParameterStyle DB2SQL_LITERAL = new ParameterStyle(DB2SQL, "DB2SQL", "DB2SQL"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>GENERAL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>GENERAL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #GENERAL
+	 * @generated
+	 * @ordered
+	 */
+	public static final ParameterStyle GENERAL_LITERAL = new ParameterStyle(GENERAL, "GENERAL", "GENERAL"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>GENERAL WITH NULLS</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>GENERAL WITH NULLS</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #GENERAL_WITH_NULLS
+	 * @generated
+	 * @ordered
+	 */
+	public static final ParameterStyle GENERAL_WITH_NULLS_LITERAL = new ParameterStyle(GENERAL_WITH_NULLS, "GENERAL_WITH_NULLS", "GENERAL_WITH_NULLS"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>DB2GENRL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>DB2GENRL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #DB2GENRL
+	 * @generated
+	 * @ordered
+	 */
+	public static final ParameterStyle DB2GENRL_LITERAL = new ParameterStyle(DB2GENRL, "DB2GENRL", "DB2GENRL"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>DB2DARI</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>DB2DARI</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #DB2DARI
+	 * @generated
+	 * @ordered
+	 */
+	public static final ParameterStyle DB2DARI_LITERAL = new ParameterStyle(DB2DARI, "DB2DARI", "DB2DARI"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>JAVA</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>JAVA</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #JAVA
+	 * @generated
+	 * @ordered
+	 */
+	public static final ParameterStyle JAVA_LITERAL = new ParameterStyle(JAVA, "JAVA", "JAVA"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>SQL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>SQL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #SQL
+	 * @generated
+	 * @ordered
+	 */
+	public static final ParameterStyle SQL_LITERAL = new ParameterStyle(SQL, "SQL", "SQL"); //$NON-NLS-1$
+
+	/**
+	 * An array of all the '<em><b>Parameter Style</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final ParameterStyle[] VALUES_ARRAY =
+		new ParameterStyle[] {
+			DB2SQL_LITERAL,
+			GENERAL_LITERAL,
+			GENERAL_WITH_NULLS_LITERAL,
+			DB2GENRL_LITERAL,
+			DB2DARI_LITERAL,
+			JAVA_LITERAL,
+			SQL_LITERAL,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Parameter Style</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Parameter Style</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ParameterStyle get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			ParameterStyle result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Parameter Style</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ParameterStyle getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			ParameterStyle result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Parameter Style</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ParameterStyle get(int value) {
+		switch (value) {
+			case DB2SQL: return DB2SQL_LITERAL;
+			case GENERAL: return GENERAL_LITERAL;
+			case GENERAL_WITH_NULLS: return GENERAL_WITH_NULLS_LITERAL;
+			case DB2GENRL: return DB2GENRL_LITERAL;
+			case DB2DARI: return DB2DARI_LITERAL;
+			case JAVA: return JAVA_LITERAL;
+			case SQL: return SQL_LITERAL;
+		}
+		return null;
+	}
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private ParameterStyle(int value, String name, String literal) {
+		super(value, name, literal);
+	}
+
+} //ParameterStyle
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/ParentDeleteDRIRuleType.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/ParentDeleteDRIRuleType.java
new file mode 100644
index 0000000..a630ba9
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/ParentDeleteDRIRuleType.java
@@ -0,0 +1,232 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ParentDeleteDRIRuleType.java,v 1.3 2006/10/11 20:34:55 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.dbdefinition;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Parent Delete DRI Rule Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getParentDeleteDRIRuleType()
+ * @model
+ * @generated
+ */
+public final class ParentDeleteDRIRuleType extends AbstractEnumerator {
+	/**
+	 * The '<em><b>NO ACTION</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NO_ACTION_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NO_ACTION = 0;
+
+	/**
+	 * The '<em><b>RESTRICT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #RESTRICT_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int RESTRICT = 1;
+
+	/**
+	 * The '<em><b>CASCADE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #CASCADE_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int CASCADE = 2;
+
+	/**
+	 * The '<em><b>SET NULL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #SET_NULL_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int SET_NULL = 3;
+
+	/**
+	 * The '<em><b>SET DEFAULT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #SET_DEFAULT_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int SET_DEFAULT = 4;
+
+	/**
+	 * The '<em><b>NO ACTION</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NO ACTION</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #NO_ACTION
+	 * @generated
+	 * @ordered
+	 */
+	public static final ParentDeleteDRIRuleType NO_ACTION_LITERAL = new ParentDeleteDRIRuleType(NO_ACTION, "NO_ACTION", "NO_ACTION"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>RESTRICT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>RESTRICT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #RESTRICT
+	 * @generated
+	 * @ordered
+	 */
+	public static final ParentDeleteDRIRuleType RESTRICT_LITERAL = new ParentDeleteDRIRuleType(RESTRICT, "RESTRICT", "RESTRICT"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>CASCADE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>CASCADE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #CASCADE
+	 * @generated
+	 * @ordered
+	 */
+	public static final ParentDeleteDRIRuleType CASCADE_LITERAL = new ParentDeleteDRIRuleType(CASCADE, "CASCADE", "CASCADE"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>SET NULL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>SET NULL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #SET_NULL
+	 * @generated
+	 * @ordered
+	 */
+	public static final ParentDeleteDRIRuleType SET_NULL_LITERAL = new ParentDeleteDRIRuleType(SET_NULL, "SET_NULL", "SET_NULL"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>SET DEFAULT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>SET DEFAULT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #SET_DEFAULT
+	 * @generated
+	 * @ordered
+	 */
+	public static final ParentDeleteDRIRuleType SET_DEFAULT_LITERAL = new ParentDeleteDRIRuleType(SET_DEFAULT, "SET_DEFAULT", "SET_DEFAULT"); //$NON-NLS-1$
+
+	/**
+	 * An array of all the '<em><b>Parent Delete DRI Rule Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final ParentDeleteDRIRuleType[] VALUES_ARRAY =
+		new ParentDeleteDRIRuleType[] {
+			NO_ACTION_LITERAL,
+			RESTRICT_LITERAL,
+			CASCADE_LITERAL,
+			SET_NULL_LITERAL,
+			SET_DEFAULT_LITERAL,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Parent Delete DRI Rule Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Parent Delete DRI Rule Type</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ParentDeleteDRIRuleType get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			ParentDeleteDRIRuleType result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Parent Delete DRI Rule Type</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ParentDeleteDRIRuleType getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			ParentDeleteDRIRuleType result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Parent Delete DRI Rule Type</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ParentDeleteDRIRuleType get(int value) {
+		switch (value) {
+			case NO_ACTION: return NO_ACTION_LITERAL;
+			case RESTRICT: return RESTRICT_LITERAL;
+			case CASCADE: return CASCADE_LITERAL;
+			case SET_NULL: return SET_NULL_LITERAL;
+			case SET_DEFAULT: return SET_DEFAULT_LITERAL;
+		}
+		return null;
+	}
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private ParentDeleteDRIRuleType(int value, String name, String literal) {
+		super(value, name, literal);
+	}
+
+} //ParentDeleteDRIRuleType
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/ParentUpdateDRIRuleType.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/ParentUpdateDRIRuleType.java
new file mode 100644
index 0000000..cb33d68
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/ParentUpdateDRIRuleType.java
@@ -0,0 +1,232 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ParentUpdateDRIRuleType.java,v 1.3 2006/10/11 20:34:55 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.dbdefinition;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Parent Update DRI Rule Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getParentUpdateDRIRuleType()
+ * @model
+ * @generated
+ */
+public final class ParentUpdateDRIRuleType extends AbstractEnumerator {
+	/**
+	 * The '<em><b>NO ACTION</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NO_ACTION_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NO_ACTION = 0;
+
+	/**
+	 * The '<em><b>RESTRICT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #RESTRICT_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int RESTRICT = 1;
+
+	/**
+	 * The '<em><b>CASCADE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #CASCADE_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int CASCADE = 2;
+
+	/**
+	 * The '<em><b>SET NULL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #SET_NULL_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int SET_NULL = 3;
+
+	/**
+	 * The '<em><b>SET DEFAULT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #SET_DEFAULT_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int SET_DEFAULT = 4;
+
+	/**
+	 * The '<em><b>NO ACTION</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NO ACTION</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #NO_ACTION
+	 * @generated
+	 * @ordered
+	 */
+	public static final ParentUpdateDRIRuleType NO_ACTION_LITERAL = new ParentUpdateDRIRuleType(NO_ACTION, "NO_ACTION", "NO_ACTION"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>RESTRICT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>RESTRICT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #RESTRICT
+	 * @generated
+	 * @ordered
+	 */
+	public static final ParentUpdateDRIRuleType RESTRICT_LITERAL = new ParentUpdateDRIRuleType(RESTRICT, "RESTRICT", "RESTRICT"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>CASCADE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>CASCADE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #CASCADE
+	 * @generated
+	 * @ordered
+	 */
+	public static final ParentUpdateDRIRuleType CASCADE_LITERAL = new ParentUpdateDRIRuleType(CASCADE, "CASCADE", "CASCADE"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>SET NULL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>SET NULL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #SET_NULL
+	 * @generated
+	 * @ordered
+	 */
+	public static final ParentUpdateDRIRuleType SET_NULL_LITERAL = new ParentUpdateDRIRuleType(SET_NULL, "SET_NULL", "SET_NULL"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>SET DEFAULT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>SET DEFAULT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #SET_DEFAULT
+	 * @generated
+	 * @ordered
+	 */
+	public static final ParentUpdateDRIRuleType SET_DEFAULT_LITERAL = new ParentUpdateDRIRuleType(SET_DEFAULT, "SET_DEFAULT", "SET_DEFAULT"); //$NON-NLS-1$
+
+	/**
+	 * An array of all the '<em><b>Parent Update DRI Rule Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final ParentUpdateDRIRuleType[] VALUES_ARRAY =
+		new ParentUpdateDRIRuleType[] {
+			NO_ACTION_LITERAL,
+			RESTRICT_LITERAL,
+			CASCADE_LITERAL,
+			SET_NULL_LITERAL,
+			SET_DEFAULT_LITERAL,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Parent Update DRI Rule Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Parent Update DRI Rule Type</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ParentUpdateDRIRuleType get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			ParentUpdateDRIRuleType result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Parent Update DRI Rule Type</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ParentUpdateDRIRuleType getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			ParentUpdateDRIRuleType result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Parent Update DRI Rule Type</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ParentUpdateDRIRuleType get(int value) {
+		switch (value) {
+			case NO_ACTION: return NO_ACTION_LITERAL;
+			case RESTRICT: return RESTRICT_LITERAL;
+			case CASCADE: return CASCADE_LITERAL;
+			case SET_NULL: return SET_NULL_LITERAL;
+			case SET_DEFAULT: return SET_DEFAULT_LITERAL;
+		}
+		return null;
+	}
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private ParentUpdateDRIRuleType(int value, String name, String literal) {
+		super(value, name, literal);
+	}
+
+} //ParentUpdateDRIRuleType
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/PercentFreeTerminology.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/PercentFreeTerminology.java
new file mode 100644
index 0000000..2773fc0
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/PercentFreeTerminology.java
@@ -0,0 +1,178 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PercentFreeTerminology.java,v 1.3 2006/10/11 20:34:55 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.dbdefinition;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Percent Free Terminology</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPercentFreeTerminology()
+ * @model
+ * @generated
+ */
+public final class PercentFreeTerminology extends AbstractEnumerator {
+	/**
+	 * The '<em><b>PERCENT FREE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #PERCENT_FREE_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int PERCENT_FREE = 0;
+
+	/**
+	 * The '<em><b>FILL FACTOR</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #FILL_FACTOR_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int FILL_FACTOR = 1;
+
+	/**
+	 * The '<em><b>THRESHOLD</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #THRESHOLD_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int THRESHOLD = 2;
+
+	/**
+	 * The '<em><b>PERCENT FREE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>PERCENT FREE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #PERCENT_FREE
+	 * @generated
+	 * @ordered
+	 */
+	public static final PercentFreeTerminology PERCENT_FREE_LITERAL = new PercentFreeTerminology(PERCENT_FREE, "PERCENT_FREE", "PERCENT_FREE"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>FILL FACTOR</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>FILL FACTOR</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #FILL_FACTOR
+	 * @generated
+	 * @ordered
+	 */
+	public static final PercentFreeTerminology FILL_FACTOR_LITERAL = new PercentFreeTerminology(FILL_FACTOR, "FILL_FACTOR", "FILL_FACTOR"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>THRESHOLD</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>THRESHOLD</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #THRESHOLD
+	 * @generated
+	 * @ordered
+	 */
+	public static final PercentFreeTerminology THRESHOLD_LITERAL = new PercentFreeTerminology(THRESHOLD, "THRESHOLD", "THRESHOLD"); //$NON-NLS-1$
+
+	/**
+	 * An array of all the '<em><b>Percent Free Terminology</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final PercentFreeTerminology[] VALUES_ARRAY =
+		new PercentFreeTerminology[] {
+			PERCENT_FREE_LITERAL,
+			FILL_FACTOR_LITERAL,
+			THRESHOLD_LITERAL,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Percent Free Terminology</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Percent Free Terminology</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static PercentFreeTerminology get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			PercentFreeTerminology result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Percent Free Terminology</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static PercentFreeTerminology getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			PercentFreeTerminology result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Percent Free Terminology</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static PercentFreeTerminology get(int value) {
+		switch (value) {
+			case PERCENT_FREE: return PERCENT_FREE_LITERAL;
+			case FILL_FACTOR: return FILL_FACTOR_LITERAL;
+			case THRESHOLD: return THRESHOLD_LITERAL;
+		}
+		return null;
+	}
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private PercentFreeTerminology(int value, String name, String literal) {
+		super(value, name, literal);
+	}
+
+} //PercentFreeTerminology
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/PredefinedDataTypeDefinition.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/PredefinedDataTypeDefinition.java
new file mode 100644
index 0000000..1c8ce0b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/PredefinedDataTypeDefinition.java
@@ -0,0 +1,1263 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.dbdefinition;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.PrimitiveType;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Predefined Data Type Definition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getLeadingFieldQualifierDefinition <em>Leading Field Qualifier Definition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getTrailingFieldQualifierDefinition <em>Trailing Field Qualifier Definition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getDefaultTrailingFieldQualifierDefinition <em>Default Trailing Field Qualifier Definition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getDefaultLeadingFieldQualifierDefinition <em>Default Leading Field Qualifier Definition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isLengthSupported <em>Length Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isScaleSupported <em>Scale Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isPrecisionSupported <em>Precision Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isKeyConstraintSupported <em>Key Constraint Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isIdentitySupported <em>Identity Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isMultipleColumnsSupported <em>Multiple Columns Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isNullableSupported <em>Nullable Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isDefaultSupported <em>Default Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isClusteringSupported <em>Clustering Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isFillFactorSupported <em>Fill Factor Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isBitDataSupported <em>Bit Data Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getMaximumValue <em>Maximum Value</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getMinimumValue <em>Minimum Value</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getMaximumLength <em>Maximum Length</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getMaximumPrecision <em>Maximum Precision</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getMaximumScale <em>Maximum Scale</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getMinimumScale <em>Minimum Scale</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getDefaultValueTypes <em>Default Value Types</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getPrimitiveType <em>Primitive Type</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getJdbcEnumType <em>Jdbc Enum Type</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getCharacterSet <em>Character Set</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getEncodingScheme <em>Encoding Scheme</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getCharacterSetSuffix <em>Character Set Suffix</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getEncodingSchemeSuffix <em>Encoding Scheme Suffix</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getJavaClassName <em>Java Class Name</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getDefaultLength <em>Default Length</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getDefaultPrecision <em>Default Precision</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getDefaultScale <em>Default Scale</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getCutoffPrecision <em>Cutoff Precision</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getLengthUnit <em>Length Unit</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isOrderingSupported <em>Ordering Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isGroupingSupported <em>Grouping Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getDisplayName <em>Display Name</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isDisplayNameSupported <em>Display Name Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isLeadingFieldQualifierSupported <em>Leading Field Qualifier Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isTrailingFieldQualifierSupported <em>Trailing Field Qualifier Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getFieldQualifierSeparator <em>Field Qualifier Separator</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isLargeValueSpecifierSupported <em>Large Value Specifier Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getLargeValueSpecifierName <em>Large Value Specifier Name</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getLargeValueSpecifierLength <em>Large Value Specifier Length</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isLengthSemanticSupported <em>Length Semantic Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getLengthSemantic <em>Length Semantic</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getLanguageType <em>Language Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition()
+ * @model
+ * @generated
+ */
+public interface PredefinedDataTypeDefinition extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Leading Field Qualifier Definition</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.dbdefinition.FieldQualifierDefinition}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Leading Field Qualifier Definition</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Leading Field Qualifier Definition</em>' containment reference list.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_LeadingFieldQualifierDefinition()
+	 * @model type="org.eclipse.datatools.modelbase.dbdefinition.FieldQualifierDefinition" containment="true"
+	 * @generated
+	 */
+	EList getLeadingFieldQualifierDefinition();
+
+	/**
+	 * Returns the value of the '<em><b>Trailing Field Qualifier Definition</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.dbdefinition.FieldQualifierDefinition}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Trailing Field Qualifier Definition</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Trailing Field Qualifier Definition</em>' containment reference list.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_TrailingFieldQualifierDefinition()
+	 * @model type="org.eclipse.datatools.modelbase.dbdefinition.FieldQualifierDefinition" containment="true"
+	 * @generated
+	 */
+	EList getTrailingFieldQualifierDefinition();
+
+	/**
+	 * Returns the value of the '<em><b>Default Trailing Field Qualifier Definition</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Default Trailing Field Qualifier Definition</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Default Trailing Field Qualifier Definition</em>' reference.
+	 * @see #setDefaultTrailingFieldQualifierDefinition(FieldQualifierDefinition)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_DefaultTrailingFieldQualifierDefinition()
+	 * @model
+	 * @generated
+	 */
+	FieldQualifierDefinition getDefaultTrailingFieldQualifierDefinition();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getDefaultTrailingFieldQualifierDefinition <em>Default Trailing Field Qualifier Definition</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Default Trailing Field Qualifier Definition</em>' reference.
+	 * @see #getDefaultTrailingFieldQualifierDefinition()
+	 * @generated
+	 */
+	void setDefaultTrailingFieldQualifierDefinition(FieldQualifierDefinition value);
+
+	/**
+	 * Returns the value of the '<em><b>Default Leading Field Qualifier Definition</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Default Leading Field Qualifier Definition</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Default Leading Field Qualifier Definition</em>' reference.
+	 * @see #setDefaultLeadingFieldQualifierDefinition(FieldQualifierDefinition)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_DefaultLeadingFieldQualifierDefinition()
+	 * @model
+	 * @generated
+	 */
+	FieldQualifierDefinition getDefaultLeadingFieldQualifierDefinition();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getDefaultLeadingFieldQualifierDefinition <em>Default Leading Field Qualifier Definition</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Default Leading Field Qualifier Definition</em>' reference.
+	 * @see #getDefaultLeadingFieldQualifierDefinition()
+	 * @generated
+	 */
+	void setDefaultLeadingFieldQualifierDefinition(FieldQualifierDefinition value);
+
+	/**
+	 * Returns the value of the '<em><b>Length Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Length Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Length Supported</em>' attribute.
+	 * @see #setLengthSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_LengthSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isLengthSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isLengthSupported <em>Length Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Length Supported</em>' attribute.
+	 * @see #isLengthSupported()
+	 * @generated
+	 */
+	void setLengthSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Scale Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Scale Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Scale Supported</em>' attribute.
+	 * @see #setScaleSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_ScaleSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isScaleSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isScaleSupported <em>Scale Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Scale Supported</em>' attribute.
+	 * @see #isScaleSupported()
+	 * @generated
+	 */
+	void setScaleSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Precision Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Precision Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Precision Supported</em>' attribute.
+	 * @see #setPrecisionSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_PrecisionSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isPrecisionSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isPrecisionSupported <em>Precision Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Precision Supported</em>' attribute.
+	 * @see #isPrecisionSupported()
+	 * @generated
+	 */
+	void setPrecisionSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Key Constraint Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Key Constraint Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Key Constraint Supported</em>' attribute.
+	 * @see #setKeyConstraintSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_KeyConstraintSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isKeyConstraintSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isKeyConstraintSupported <em>Key Constraint Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Key Constraint Supported</em>' attribute.
+	 * @see #isKeyConstraintSupported()
+	 * @generated
+	 */
+	void setKeyConstraintSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Identity Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Identity Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Identity Supported</em>' attribute.
+	 * @see #setIdentitySupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_IdentitySupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isIdentitySupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isIdentitySupported <em>Identity Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Identity Supported</em>' attribute.
+	 * @see #isIdentitySupported()
+	 * @generated
+	 */
+	void setIdentitySupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Multiple Columns Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Multiple Columns Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Multiple Columns Supported</em>' attribute.
+	 * @see #setMultipleColumnsSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_MultipleColumnsSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isMultipleColumnsSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isMultipleColumnsSupported <em>Multiple Columns Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Multiple Columns Supported</em>' attribute.
+	 * @see #isMultipleColumnsSupported()
+	 * @generated
+	 */
+	void setMultipleColumnsSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Nullable Supported</b></em>' attribute.
+	 * The default value is <code>"true"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Nullable Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Nullable Supported</em>' attribute.
+	 * @see #setNullableSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_NullableSupported()
+	 * @model default="true"
+	 * @generated
+	 */
+	boolean isNullableSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isNullableSupported <em>Nullable Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Nullable Supported</em>' attribute.
+	 * @see #isNullableSupported()
+	 * @generated
+	 */
+	void setNullableSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Default Supported</b></em>' attribute.
+	 * The default value is <code>"true"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Default Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Default Supported</em>' attribute.
+	 * @see #setDefaultSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_DefaultSupported()
+	 * @model default="true"
+	 * @generated
+	 */
+	boolean isDefaultSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isDefaultSupported <em>Default Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Default Supported</em>' attribute.
+	 * @see #isDefaultSupported()
+	 * @generated
+	 */
+	void setDefaultSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Clustering Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Clustering Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Clustering Supported</em>' attribute.
+	 * @see #setClusteringSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_ClusteringSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isClusteringSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isClusteringSupported <em>Clustering Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Clustering Supported</em>' attribute.
+	 * @see #isClusteringSupported()
+	 * @generated
+	 */
+	void setClusteringSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Fill Factor Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Fill Factor Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Fill Factor Supported</em>' attribute.
+	 * @see #setFillFactorSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_FillFactorSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isFillFactorSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isFillFactorSupported <em>Fill Factor Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Fill Factor Supported</em>' attribute.
+	 * @see #isFillFactorSupported()
+	 * @generated
+	 */
+	void setFillFactorSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Bit Data Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Bit Data Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Bit Data Supported</em>' attribute.
+	 * @see #setBitDataSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_BitDataSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isBitDataSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isBitDataSupported <em>Bit Data Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Bit Data Supported</em>' attribute.
+	 * @see #isBitDataSupported()
+	 * @generated
+	 */
+	void setBitDataSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Maximum Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Maximum Value</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Maximum Value</em>' attribute.
+	 * @see #setMaximumValue(long)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_MaximumValue()
+	 * @model
+	 * @generated
+	 */
+	long getMaximumValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getMaximumValue <em>Maximum Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Maximum Value</em>' attribute.
+	 * @see #getMaximumValue()
+	 * @generated
+	 */
+	void setMaximumValue(long value);
+
+	/**
+	 * Returns the value of the '<em><b>Minimum Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Minimum Value</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Minimum Value</em>' attribute.
+	 * @see #setMinimumValue(long)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_MinimumValue()
+	 * @model
+	 * @generated
+	 */
+	long getMinimumValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getMinimumValue <em>Minimum Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Minimum Value</em>' attribute.
+	 * @see #getMinimumValue()
+	 * @generated
+	 */
+	void setMinimumValue(long value);
+
+	/**
+	 * Returns the value of the '<em><b>Maximum Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Maximum Length</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Maximum Length</em>' attribute.
+	 * @see #setMaximumLength(int)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_MaximumLength()
+	 * @model
+	 * @generated
+	 */
+	int getMaximumLength();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getMaximumLength <em>Maximum Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Maximum Length</em>' attribute.
+	 * @see #getMaximumLength()
+	 * @generated
+	 */
+	void setMaximumLength(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Maximum Precision</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Maximum Precision</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Maximum Precision</em>' attribute.
+	 * @see #setMaximumPrecision(int)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_MaximumPrecision()
+	 * @model
+	 * @generated
+	 */
+	int getMaximumPrecision();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getMaximumPrecision <em>Maximum Precision</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Maximum Precision</em>' attribute.
+	 * @see #getMaximumPrecision()
+	 * @generated
+	 */
+	void setMaximumPrecision(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Maximum Scale</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Maximum Scale</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Maximum Scale</em>' attribute.
+	 * @see #setMaximumScale(int)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_MaximumScale()
+	 * @model
+	 * @generated
+	 */
+	int getMaximumScale();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getMaximumScale <em>Maximum Scale</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Maximum Scale</em>' attribute.
+	 * @see #getMaximumScale()
+	 * @generated
+	 */
+	void setMaximumScale(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Minimum Scale</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Minimum Scale</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Minimum Scale</em>' attribute.
+	 * @see #setMinimumScale(int)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_MinimumScale()
+	 * @model
+	 * @generated
+	 */
+	int getMinimumScale();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getMinimumScale <em>Minimum Scale</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Minimum Scale</em>' attribute.
+	 * @see #getMinimumScale()
+	 * @generated
+	 */
+	void setMinimumScale(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Default Value Types</b></em>' attribute list.
+	 * The list contents are of type {@link java.lang.String}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Default Value Types</em>' attribute list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Default Value Types</em>' attribute list.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_DefaultValueTypes()
+	 * @model
+	 * @generated
+	 */
+	EList getDefaultValueTypes();
+
+	/**
+	 * Returns the value of the '<em><b>Primitive Type</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.datatypes.PrimitiveType}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Primitive Type</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Primitive Type</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.PrimitiveType
+	 * @see #setPrimitiveType(PrimitiveType)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_PrimitiveType()
+	 * @model
+	 * @generated
+	 */
+	PrimitiveType getPrimitiveType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getPrimitiveType <em>Primitive Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Primitive Type</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.PrimitiveType
+	 * @see #getPrimitiveType()
+	 * @generated
+	 */
+	void setPrimitiveType(PrimitiveType value);
+
+	/**
+	 * Returns the value of the '<em><b>Name</b></em>' attribute list.
+	 * The list contents are of type {@link java.lang.String}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Name</em>' attribute list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Name</em>' attribute list.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_Name()
+	 * @model
+	 * @generated
+	 */
+	EList getName();
+
+	/**
+	 * Returns the value of the '<em><b>Jdbc Enum Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Jdbc Enum Type</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Jdbc Enum Type</em>' attribute.
+	 * @see #setJdbcEnumType(int)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_JdbcEnumType()
+	 * @model
+	 * @generated
+	 */
+	int getJdbcEnumType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getJdbcEnumType <em>Jdbc Enum Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Jdbc Enum Type</em>' attribute.
+	 * @see #getJdbcEnumType()
+	 * @generated
+	 */
+	void setJdbcEnumType(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Character Set</b></em>' attribute list.
+	 * The list contents are of type {@link java.lang.String}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Character Set</em>' attribute list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Character Set</em>' attribute list.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_CharacterSet()
+	 * @model
+	 * @generated
+	 */
+	EList getCharacterSet();
+
+	/**
+	 * Returns the value of the '<em><b>Encoding Scheme</b></em>' attribute list.
+	 * The list contents are of type {@link java.lang.String}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Encoding Scheme</em>' attribute list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Encoding Scheme</em>' attribute list.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_EncodingScheme()
+	 * @model
+	 * @generated
+	 */
+	EList getEncodingScheme();
+
+	/**
+	 * Returns the value of the '<em><b>Character Set Suffix</b></em>' attribute.
+	 * The default value is <code>""</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Character Set Suffix</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Character Set Suffix</em>' attribute.
+	 * @see #setCharacterSetSuffix(String)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_CharacterSetSuffix()
+	 * @model default=""
+	 * @generated
+	 */
+	String getCharacterSetSuffix();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getCharacterSetSuffix <em>Character Set Suffix</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Character Set Suffix</em>' attribute.
+	 * @see #getCharacterSetSuffix()
+	 * @generated
+	 */
+	void setCharacterSetSuffix(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Encoding Scheme Suffix</b></em>' attribute.
+	 * The default value is <code>""</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Encoding Scheme Suffix</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Encoding Scheme Suffix</em>' attribute.
+	 * @see #setEncodingSchemeSuffix(String)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_EncodingSchemeSuffix()
+	 * @model default=""
+	 * @generated
+	 */
+	String getEncodingSchemeSuffix();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getEncodingSchemeSuffix <em>Encoding Scheme Suffix</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Encoding Scheme Suffix</em>' attribute.
+	 * @see #getEncodingSchemeSuffix()
+	 * @generated
+	 */
+	void setEncodingSchemeSuffix(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Java Class Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Java Class Name</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Java Class Name</em>' attribute.
+	 * @see #setJavaClassName(String)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_JavaClassName()
+	 * @model
+	 * @generated
+	 */
+	String getJavaClassName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getJavaClassName <em>Java Class Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Java Class Name</em>' attribute.
+	 * @see #getJavaClassName()
+	 * @generated
+	 */
+	void setJavaClassName(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Default Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Default Length</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Default Length</em>' attribute.
+	 * @see #setDefaultLength(int)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_DefaultLength()
+	 * @model
+	 * @generated
+	 */
+	int getDefaultLength();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getDefaultLength <em>Default Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Default Length</em>' attribute.
+	 * @see #getDefaultLength()
+	 * @generated
+	 */
+	void setDefaultLength(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Default Precision</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Default Precision</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Default Precision</em>' attribute.
+	 * @see #setDefaultPrecision(int)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_DefaultPrecision()
+	 * @model
+	 * @generated
+	 */
+	int getDefaultPrecision();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getDefaultPrecision <em>Default Precision</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Default Precision</em>' attribute.
+	 * @see #getDefaultPrecision()
+	 * @generated
+	 */
+	void setDefaultPrecision(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Default Scale</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Default Scale</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Default Scale</em>' attribute.
+	 * @see #setDefaultScale(int)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_DefaultScale()
+	 * @model
+	 * @generated
+	 */
+	int getDefaultScale();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getDefaultScale <em>Default Scale</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Default Scale</em>' attribute.
+	 * @see #getDefaultScale()
+	 * @generated
+	 */
+	void setDefaultScale(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Cutoff Precision</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Cutoff Precision</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Cutoff Precision</em>' attribute.
+	 * @see #setCutoffPrecision(int)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_CutoffPrecision()
+	 * @model
+	 * @generated
+	 */
+	int getCutoffPrecision();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getCutoffPrecision <em>Cutoff Precision</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Cutoff Precision</em>' attribute.
+	 * @see #getCutoffPrecision()
+	 * @generated
+	 */
+	void setCutoffPrecision(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Length Unit</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.dbdefinition.LengthUnit}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Length Unit</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Length Unit</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.LengthUnit
+	 * @see #setLengthUnit(LengthUnit)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_LengthUnit()
+	 * @model
+	 * @generated
+	 */
+	LengthUnit getLengthUnit();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getLengthUnit <em>Length Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Length Unit</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.LengthUnit
+	 * @see #getLengthUnit()
+	 * @generated
+	 */
+	void setLengthUnit(LengthUnit value);
+
+	/**
+	 * Returns the value of the '<em><b>Ordering Supported</b></em>' attribute.
+	 * The default value is <code>"true"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Ordering Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Ordering Supported</em>' attribute.
+	 * @see #setOrderingSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_OrderingSupported()
+	 * @model default="true"
+	 * @generated
+	 */
+	boolean isOrderingSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isOrderingSupported <em>Ordering Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Ordering Supported</em>' attribute.
+	 * @see #isOrderingSupported()
+	 * @generated
+	 */
+	void setOrderingSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Grouping Supported</b></em>' attribute.
+	 * The default value is <code>"true"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Grouping Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Grouping Supported</em>' attribute.
+	 * @see #setGroupingSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_GroupingSupported()
+	 * @model default="true"
+	 * @generated
+	 */
+	boolean isGroupingSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isGroupingSupported <em>Grouping Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Grouping Supported</em>' attribute.
+	 * @see #isGroupingSupported()
+	 * @generated
+	 */
+	void setGroupingSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Display Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Display Name</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Display Name</em>' attribute.
+	 * @see #setDisplayName(String)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_DisplayName()
+	 * @model
+	 * @generated
+	 */
+	String getDisplayName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getDisplayName <em>Display Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Display Name</em>' attribute.
+	 * @see #getDisplayName()
+	 * @generated
+	 */
+	void setDisplayName(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Display Name Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Display Name Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Display Name Supported</em>' attribute.
+	 * @see #setDisplayNameSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_DisplayNameSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isDisplayNameSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isDisplayNameSupported <em>Display Name Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Display Name Supported</em>' attribute.
+	 * @see #isDisplayNameSupported()
+	 * @generated
+	 */
+	void setDisplayNameSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Leading Field Qualifier Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Leading Field Qualifier Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Leading Field Qualifier Supported</em>' attribute.
+	 * @see #setLeadingFieldQualifierSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_LeadingFieldQualifierSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isLeadingFieldQualifierSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isLeadingFieldQualifierSupported <em>Leading Field Qualifier Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Leading Field Qualifier Supported</em>' attribute.
+	 * @see #isLeadingFieldQualifierSupported()
+	 * @generated
+	 */
+	void setLeadingFieldQualifierSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Trailing Field Qualifier Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Trailing Field Qualifier Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Trailing Field Qualifier Supported</em>' attribute.
+	 * @see #setTrailingFieldQualifierSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_TrailingFieldQualifierSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isTrailingFieldQualifierSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isTrailingFieldQualifierSupported <em>Trailing Field Qualifier Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Trailing Field Qualifier Supported</em>' attribute.
+	 * @see #isTrailingFieldQualifierSupported()
+	 * @generated
+	 */
+	void setTrailingFieldQualifierSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Field Qualifier Separator</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Field Qualifier Separator</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Field Qualifier Separator</em>' attribute.
+	 * @see #setFieldQualifierSeparator(String)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_FieldQualifierSeparator()
+	 * @model
+	 * @generated
+	 */
+	String getFieldQualifierSeparator();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getFieldQualifierSeparator <em>Field Qualifier Separator</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Field Qualifier Separator</em>' attribute.
+	 * @see #getFieldQualifierSeparator()
+	 * @generated
+	 */
+	void setFieldQualifierSeparator(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Large Value Specifier Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Large Value Specifier Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Large Value Specifier Supported</em>' attribute.
+	 * @see #setLargeValueSpecifierSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_LargeValueSpecifierSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isLargeValueSpecifierSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isLargeValueSpecifierSupported <em>Large Value Specifier Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Large Value Specifier Supported</em>' attribute.
+	 * @see #isLargeValueSpecifierSupported()
+	 * @generated
+	 */
+	void setLargeValueSpecifierSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Large Value Specifier Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Large Value Specifier Name</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Large Value Specifier Name</em>' attribute.
+	 * @see #setLargeValueSpecifierName(String)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_LargeValueSpecifierName()
+	 * @model
+	 * @generated
+	 */
+	String getLargeValueSpecifierName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getLargeValueSpecifierName <em>Large Value Specifier Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Large Value Specifier Name</em>' attribute.
+	 * @see #getLargeValueSpecifierName()
+	 * @generated
+	 */
+	void setLargeValueSpecifierName(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Large Value Specifier Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Large Value Specifier Length</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Large Value Specifier Length</em>' attribute.
+	 * @see #setLargeValueSpecifierLength(int)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_LargeValueSpecifierLength()
+	 * @model
+	 * @generated
+	 */
+	int getLargeValueSpecifierLength();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#getLargeValueSpecifierLength <em>Large Value Specifier Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Large Value Specifier Length</em>' attribute.
+	 * @see #getLargeValueSpecifierLength()
+	 * @generated
+	 */
+	void setLargeValueSpecifierLength(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Length Semantic Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Length Semantic Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Length Semantic Supported</em>' attribute.
+	 * @see #setLengthSemanticSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_LengthSemanticSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isLengthSemanticSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition#isLengthSemanticSupported <em>Length Semantic Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Length Semantic Supported</em>' attribute.
+	 * @see #isLengthSemanticSupported()
+	 * @generated
+	 */
+	void setLengthSemanticSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Length Semantic</b></em>' attribute list.
+	 * The list contents are of type {@link java.lang.String}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Length Semantic</em>' attribute list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Length Semantic</em>' attribute list.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_LengthSemantic()
+	 * @model
+	 * @generated
+	 */
+	EList getLengthSemantic();
+
+	/**
+	 * Returns the value of the '<em><b>Language Type</b></em>' attribute list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.dbdefinition.LanguageType}.
+	 * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.dbdefinition.LanguageType}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Language Type</em>' attribute list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Language Type</em>' attribute list.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.LanguageType
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPredefinedDataTypeDefinition_LanguageType()
+	 * @model dataType="org.eclipse.datatools.modelbase.dbdefinition.LanguageType"
+	 * @generated
+	 */
+	EList getLanguageType();
+
+} // PredefinedDataTypeDefinition
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/PrivilegeDefinition.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/PrivilegeDefinition.java
new file mode 100644
index 0000000..453923c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/PrivilegeDefinition.java
@@ -0,0 +1,73 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.modelbase.dbdefinition;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Privilege Definition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PrivilegeDefinition#getActionElementDefinitions <em>Action Element Definitions</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PrivilegeDefinition#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPrivilegeDefinition()
+ * @model
+ * @generated
+ */
+public interface PrivilegeDefinition extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Action Element Definitions</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.dbdefinition.PrivilegedElementDefinition}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Action Element Definitions</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Action Element Definitions</em>' reference list.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPrivilegeDefinition_ActionElementDefinitions()
+	 * @model type="org.eclipse.datatools.modelbase.dbdefinition.PrivilegedElementDefinition"
+	 * @generated
+	 */
+	EList getActionElementDefinitions();
+
+	/**
+	 * Returns the value of the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Name</em>' attribute.
+	 * @see #setName(String)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPrivilegeDefinition_Name()
+	 * @model
+	 * @generated
+	 */
+	String getName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.PrivilegeDefinition#getName <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Name</em>' attribute.
+	 * @see #getName()
+	 * @generated
+	 */
+	void setName(String value);
+
+} // PrivilegeDefinition
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/PrivilegedElementDefinition.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/PrivilegedElementDefinition.java
new file mode 100644
index 0000000..1e04d0e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/PrivilegedElementDefinition.java
@@ -0,0 +1,73 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.modelbase.dbdefinition;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Privileged Element Definition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PrivilegedElementDefinition#getPrivilegeDefinitions <em>Privilege Definitions</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.PrivilegedElementDefinition#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPrivilegedElementDefinition()
+ * @model
+ * @generated
+ */
+public interface PrivilegedElementDefinition extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Privilege Definitions</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.dbdefinition.PrivilegeDefinition}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Privilege Definitions</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Privilege Definitions</em>' containment reference list.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPrivilegedElementDefinition_PrivilegeDefinitions()
+	 * @model type="org.eclipse.datatools.modelbase.dbdefinition.PrivilegeDefinition" containment="true"
+	 * @generated
+	 */
+	EList getPrivilegeDefinitions();
+
+	/**
+	 * Returns the value of the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Name</em>' attribute.
+	 * @see #setName(String)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getPrivilegedElementDefinition_Name()
+	 * @model
+	 * @generated
+	 */
+	String getName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.PrivilegedElementDefinition#getName <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Name</em>' attribute.
+	 * @see #getName()
+	 * @generated
+	 */
+	void setName(String value);
+
+} // PrivilegedElementDefinition
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/ProcedureType.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/ProcedureType.java
new file mode 100644
index 0000000..ffa4a9c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/ProcedureType.java
@@ -0,0 +1,151 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ProcedureType.java,v 1.3 2006/10/11 20:34:54 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.dbdefinition;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Procedure Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getProcedureType()
+ * @model
+ * @generated
+ */
+public final class ProcedureType extends AbstractEnumerator {
+	/**
+	 * The '<em><b>PROCEDURE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #PROCEDURE_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int PROCEDURE = 0;
+
+	/**
+	 * The '<em><b>FUNCTION</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #FUNCTION_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int FUNCTION = 1;
+
+	/**
+	 * The '<em><b>PROCEDURE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>PROCEDURE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #PROCEDURE
+	 * @generated
+	 * @ordered
+	 */
+	public static final ProcedureType PROCEDURE_LITERAL = new ProcedureType(PROCEDURE, "PROCEDURE", "PROCEDURE"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>FUNCTION</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>FUNCTION</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #FUNCTION
+	 * @generated
+	 * @ordered
+	 */
+	public static final ProcedureType FUNCTION_LITERAL = new ProcedureType(FUNCTION, "FUNCTION", "FUNCTION"); //$NON-NLS-1$
+
+	/**
+	 * An array of all the '<em><b>Procedure Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final ProcedureType[] VALUES_ARRAY =
+		new ProcedureType[] {
+			PROCEDURE_LITERAL,
+			FUNCTION_LITERAL,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Procedure Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Procedure Type</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ProcedureType get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			ProcedureType result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Procedure Type</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ProcedureType getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			ProcedureType result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Procedure Type</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ProcedureType get(int value) {
+		switch (value) {
+			case PROCEDURE: return PROCEDURE_LITERAL;
+			case FUNCTION: return FUNCTION_LITERAL;
+		}
+		return null;
+	}
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private ProcedureType(int value, String name, String literal) {
+		super(value, name, literal);
+	}
+
+} //ProcedureType
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/QueryDefinition.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/QueryDefinition.java
new file mode 100644
index 0000000..54039e7
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/QueryDefinition.java
@@ -0,0 +1,223 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QueryDefinition.java,v 1.2 2005/12/22 23:32:55 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.dbdefinition;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Query Definition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.QueryDefinition#getIdentifierQuoteString <em>Identifier Quote String</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.QueryDefinition#getHostVariableMarker <em>Host Variable Marker</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.QueryDefinition#isHostVariableMarkerSupported <em>Host Variable Marker Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.QueryDefinition#isCastExpressionSupported <em>Cast Expression Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.QueryDefinition#isDefaultKeywordForInsertValueSupported <em>Default Keyword For Insert Value Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.QueryDefinition#isExtendedGroupingSupported <em>Extended Grouping Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.QueryDefinition#isTableAliasInDeleteSupported <em>Table Alias In Delete Supported</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getQueryDefinition()
+ * @model
+ * @generated
+ */
+public interface QueryDefinition extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Identifier Quote String</b></em>' attribute.
+	 * The default value is <code>"\\\""</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Identifier Quote String</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Identifier Quote String</em>' attribute.
+	 * @see #setIdentifierQuoteString(String)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getQueryDefinition_IdentifierQuoteString()
+	 * @model default="\\\""
+	 * @generated
+	 */
+	String getIdentifierQuoteString();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.QueryDefinition#getIdentifierQuoteString <em>Identifier Quote String</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Identifier Quote String</em>' attribute.
+	 * @see #getIdentifierQuoteString()
+	 * @generated
+	 */
+	void setIdentifierQuoteString(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Host Variable Marker</b></em>' attribute.
+	 * The default value is <code>":"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Host Variable Marker</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Host Variable Marker</em>' attribute.
+	 * @see #setHostVariableMarker(String)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getQueryDefinition_HostVariableMarker()
+	 * @model default=":"
+	 * @generated
+	 */
+	String getHostVariableMarker();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.QueryDefinition#getHostVariableMarker <em>Host Variable Marker</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Host Variable Marker</em>' attribute.
+	 * @see #getHostVariableMarker()
+	 * @generated
+	 */
+	void setHostVariableMarker(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Host Variable Marker Supported</b></em>' attribute.
+	 * The default value is <code>"false"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Host Variable Marker Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Host Variable Marker Supported</em>' attribute.
+	 * @see #setHostVariableMarkerSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getQueryDefinition_HostVariableMarkerSupported()
+	 * @model default="false"
+	 * @generated
+	 */
+	boolean isHostVariableMarkerSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.QueryDefinition#isHostVariableMarkerSupported <em>Host Variable Marker Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Host Variable Marker Supported</em>' attribute.
+	 * @see #isHostVariableMarkerSupported()
+	 * @generated
+	 */
+	void setHostVariableMarkerSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Cast Expression Supported</b></em>' attribute.
+	 * The default value is <code>"false"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Cast Expression Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Cast Expression Supported</em>' attribute.
+	 * @see #setCastExpressionSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getQueryDefinition_CastExpressionSupported()
+	 * @model default="false"
+	 * @generated
+	 */
+	boolean isCastExpressionSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.QueryDefinition#isCastExpressionSupported <em>Cast Expression Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Cast Expression Supported</em>' attribute.
+	 * @see #isCastExpressionSupported()
+	 * @generated
+	 */
+	void setCastExpressionSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Default Keyword For Insert Value Supported</b></em>' attribute.
+	 * The default value is <code>"false"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Default Keyword For Insert Value Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Default Keyword For Insert Value Supported</em>' attribute.
+	 * @see #setDefaultKeywordForInsertValueSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getQueryDefinition_DefaultKeywordForInsertValueSupported()
+	 * @model default="false"
+	 * @generated
+	 */
+	boolean isDefaultKeywordForInsertValueSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.QueryDefinition#isDefaultKeywordForInsertValueSupported <em>Default Keyword For Insert Value Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Default Keyword For Insert Value Supported</em>' attribute.
+	 * @see #isDefaultKeywordForInsertValueSupported()
+	 * @generated
+	 */
+	void setDefaultKeywordForInsertValueSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Extended Grouping Supported</b></em>' attribute.
+	 * The default value is <code>"false"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Extended Grouping Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Extended Grouping Supported</em>' attribute.
+	 * @see #setExtendedGroupingSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getQueryDefinition_ExtendedGroupingSupported()
+	 * @model default="false"
+	 * @generated
+	 */
+	boolean isExtendedGroupingSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.QueryDefinition#isExtendedGroupingSupported <em>Extended Grouping Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Extended Grouping Supported</em>' attribute.
+	 * @see #isExtendedGroupingSupported()
+	 * @generated
+	 */
+	void setExtendedGroupingSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Table Alias In Delete Supported</b></em>' attribute.
+	 * The default value is <code>"false"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Table Alias In Delete Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Table Alias In Delete Supported</em>' attribute.
+	 * @see #setTableAliasInDeleteSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getQueryDefinition_TableAliasInDeleteSupported()
+	 * @model default="false"
+	 * @generated
+	 */
+	boolean isTableAliasInDeleteSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.QueryDefinition#isTableAliasInDeleteSupported <em>Table Alias In Delete Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Table Alias In Delete Supported</em>' attribute.
+	 * @see #isTableAliasInDeleteSupported()
+	 * @generated
+	 */
+	void setTableAliasInDeleteSupported(boolean value);
+
+} // QueryDefinition
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/SQLSyntaxDefinition.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/SQLSyntaxDefinition.java
new file mode 100644
index 0000000..4443d81
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/SQLSyntaxDefinition.java
@@ -0,0 +1,91 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SQLSyntaxDefinition.java,v 1.3 2006/03/09 23:48:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.dbdefinition;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Syntax Definition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.SQLSyntaxDefinition#getKeywords <em>Keywords</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.SQLSyntaxDefinition#getOperators <em>Operators</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.SQLSyntaxDefinition#getTerminationCharacter <em>Termination Character</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getSQLSyntaxDefinition()
+ * @model
+ * @generated
+ */
+public interface SQLSyntaxDefinition extends EObject{
+	/**
+	 * Returns the value of the '<em><b>Keywords</b></em>' attribute list.
+	 * The list contents are of type {@link java.lang.String}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Keywords</em>' attribute list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Keywords</em>' attribute list.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getSQLSyntaxDefinition_Keywords()
+	 * @model
+	 * @generated
+	 */
+	EList getKeywords();
+
+	/**
+	 * Returns the value of the '<em><b>Operators</b></em>' attribute list.
+	 * The list contents are of type {@link java.lang.String}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Operators</em>' attribute list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Operators</em>' attribute list.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getSQLSyntaxDefinition_Operators()
+	 * @model
+	 * @generated
+	 */
+	EList getOperators();
+
+	/**
+	 * Returns the value of the '<em><b>Termination Character</b></em>' attribute.
+	 * The default value is <code>";"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Termination Character</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Termination Character</em>' attribute.
+	 * @see #setTerminationCharacter(String)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getSQLSyntaxDefinition_TerminationCharacter()
+	 * @model default=";"
+	 * @generated
+	 */
+	String getTerminationCharacter();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.SQLSyntaxDefinition#getTerminationCharacter <em>Termination Character</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Termination Character</em>' attribute.
+	 * @see #getTerminationCharacter()
+	 * @generated
+	 */
+	void setTerminationCharacter(String value);
+
+} // SQLSyntaxDefinition
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/SchemaDefinition.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/SchemaDefinition.java
new file mode 100644
index 0000000..29b15e3
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/SchemaDefinition.java
@@ -0,0 +1,54 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.modelbase.dbdefinition;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Schema Definition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.SchemaDefinition#getMaximumIdentifierLength <em>Maximum Identifier Length</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getSchemaDefinition()
+ * @model
+ * @generated
+ */
+public interface SchemaDefinition extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Maximum Identifier Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Maximum Identifier Length</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Maximum Identifier Length</em>' attribute.
+	 * @see #setMaximumIdentifierLength(int)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getSchemaDefinition_MaximumIdentifierLength()
+	 * @model
+	 * @generated
+	 */
+	int getMaximumIdentifierLength();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.SchemaDefinition#getMaximumIdentifierLength <em>Maximum Identifier Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Maximum Identifier Length</em>' attribute.
+	 * @see #getMaximumIdentifierLength()
+	 * @generated
+	 */
+	void setMaximumIdentifierLength(int value);
+
+} // SchemaDefinition
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/SequenceDefinition.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/SequenceDefinition.java
new file mode 100644
index 0000000..5ecf2e5
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/SequenceDefinition.java
@@ -0,0 +1,265 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.dbdefinition;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Sequence Definition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.SequenceDefinition#getPredefinedDataTypeDefinitions <em>Predefined Data Type Definitions</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.SequenceDefinition#getDefaultDataTypeDefinition <em>Default Data Type Definition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.SequenceDefinition#isTypeEnumerationSupported <em>Type Enumeration Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.SequenceDefinition#isCacheSupported <em>Cache Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.SequenceDefinition#isOrderSupported <em>Order Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.SequenceDefinition#getNoMaximumValueString <em>No Maximum Value String</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.SequenceDefinition#getNoMinimumValueString <em>No Minimum Value String</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.SequenceDefinition#getNoCacheString <em>No Cache String</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.SequenceDefinition#getCacheDefaultValue <em>Cache Default Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getSequenceDefinition()
+ * @model
+ * @generated
+ */
+public interface SequenceDefinition extends EObject{
+	/**
+	 * Returns the value of the '<em><b>Predefined Data Type Definitions</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Predefined Data Type Definitions</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Predefined Data Type Definitions</em>' reference list.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getSequenceDefinition_PredefinedDataTypeDefinitions()
+	 * @model type="org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition" required="true"
+	 * @generated
+	 */
+	EList getPredefinedDataTypeDefinitions();
+
+	/**
+	 * Returns the value of the '<em><b>Type Enumeration Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type Enumeration Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type Enumeration Supported</em>' attribute.
+	 * @see #setTypeEnumerationSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getSequenceDefinition_TypeEnumerationSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isTypeEnumerationSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.SequenceDefinition#isTypeEnumerationSupported <em>Type Enumeration Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type Enumeration Supported</em>' attribute.
+	 * @see #isTypeEnumerationSupported()
+	 * @generated
+	 */
+	void setTypeEnumerationSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Cache Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Cache Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Cache Supported</em>' attribute.
+	 * @see #setCacheSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getSequenceDefinition_CacheSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isCacheSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.SequenceDefinition#isCacheSupported <em>Cache Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Cache Supported</em>' attribute.
+	 * @see #isCacheSupported()
+	 * @generated
+	 */
+	void setCacheSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Order Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Order Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Order Supported</em>' attribute.
+	 * @see #setOrderSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getSequenceDefinition_OrderSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isOrderSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.SequenceDefinition#isOrderSupported <em>Order Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Order Supported</em>' attribute.
+	 * @see #isOrderSupported()
+	 * @generated
+	 */
+	void setOrderSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>No Maximum Value String</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>No Maximum Value String</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>No Maximum Value String</em>' attribute.
+	 * @see #setNoMaximumValueString(String)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getSequenceDefinition_NoMaximumValueString()
+	 * @model
+	 * @generated
+	 */
+	String getNoMaximumValueString();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.SequenceDefinition#getNoMaximumValueString <em>No Maximum Value String</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>No Maximum Value String</em>' attribute.
+	 * @see #getNoMaximumValueString()
+	 * @generated
+	 */
+	void setNoMaximumValueString(String value);
+
+	/**
+	 * Returns the value of the '<em><b>No Minimum Value String</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>No Minimum Value String</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>No Minimum Value String</em>' attribute.
+	 * @see #setNoMinimumValueString(String)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getSequenceDefinition_NoMinimumValueString()
+	 * @model
+	 * @generated
+	 */
+	String getNoMinimumValueString();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.SequenceDefinition#getNoMinimumValueString <em>No Minimum Value String</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>No Minimum Value String</em>' attribute.
+	 * @see #getNoMinimumValueString()
+	 * @generated
+	 */
+	void setNoMinimumValueString(String value);
+
+	/**
+	 * Returns the value of the '<em><b>No Cache String</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>No Cache String</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>No Cache String</em>' attribute.
+	 * @see #setNoCacheString(String)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getSequenceDefinition_NoCacheString()
+	 * @model
+	 * @generated
+	 */
+	String getNoCacheString();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.SequenceDefinition#getNoCacheString <em>No Cache String</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>No Cache String</em>' attribute.
+	 * @see #getNoCacheString()
+	 * @generated
+	 */
+	void setNoCacheString(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Cache Default Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Cache Default Value</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Cache Default Value</em>' attribute.
+	 * @see #setCacheDefaultValue(int)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getSequenceDefinition_CacheDefaultValue()
+	 * @model
+	 * @generated
+	 */
+	int getCacheDefaultValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.SequenceDefinition#getCacheDefaultValue <em>Cache Default Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Cache Default Value</em>' attribute.
+	 * @see #getCacheDefaultValue()
+	 * @generated
+	 */
+	void setCacheDefaultValue(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Default Data Type Definition</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Default Data Type Definition</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Default Data Type Definition</em>' reference.
+	 * @see #setDefaultDataTypeDefinition(PredefinedDataTypeDefinition)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getSequenceDefinition_DefaultDataTypeDefinition()
+	 * @model required="true"
+	 * @generated
+	 */
+	PredefinedDataTypeDefinition getDefaultDataTypeDefinition();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.SequenceDefinition#getDefaultDataTypeDefinition <em>Default Data Type Definition</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Default Data Type Definition</em>' reference.
+	 * @see #getDefaultDataTypeDefinition()
+	 * @generated
+	 */
+	void setDefaultDataTypeDefinition(PredefinedDataTypeDefinition value);
+
+} // SequenceDefinition
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/StoredProcedureDefinition.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/StoredProcedureDefinition.java
new file mode 100644
index 0000000..ae66dcc
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/StoredProcedureDefinition.java
@@ -0,0 +1,422 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.dbdefinition;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Stored Procedure Definition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#getPredefinedDataTypeDefinitions <em>Predefined Data Type Definitions</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#isNullInputActionSupported <em>Null Input Action Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#isPackageGenerationSupported <em>Package Generation Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#isDetermininsticSupported <em>Determininstic Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#isReturnedNullSupported <em>Returned Null Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#isReturnedTypeDeclarationConstraintSupported <em>Returned Type Declaration Constraint Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#isParameterInitValueSupported <em>Parameter Init Value Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#isParameterStyleSupported <em>Parameter Style Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#isReturnTypeSupported <em>Return Type Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#isParameterDeclarationConstraintSupported <em>Parameter Declaration Constraint Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#getMaximumActionBodyLength <em>Maximum Action Body Length</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#getParameterStyle <em>Parameter Style</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#getLanguageType <em>Language Type</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#getFunctionLanguageType <em>Function Language Type</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#getProcedureType <em>Procedure Type</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#getMaximumIdentifierLength <em>Maximum Identifier Length</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getStoredProcedureDefinition()
+ * @model
+ * @generated
+ */
+public interface StoredProcedureDefinition extends EObject{
+	/**
+	 * Returns the value of the '<em><b>Predefined Data Type Definitions</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Predefined Data Type Definitions</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Predefined Data Type Definitions</em>' containment reference list.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getStoredProcedureDefinition_PredefinedDataTypeDefinitions()
+	 * @model type="org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition" containment="true"
+	 * @generated
+	 */
+	EList getPredefinedDataTypeDefinitions();
+
+	/**
+	 * Returns the value of the '<em><b>Null Input Action Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Null Input Action Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Null Input Action Supported</em>' attribute.
+	 * @see #setNullInputActionSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getStoredProcedureDefinition_NullInputActionSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isNullInputActionSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#isNullInputActionSupported <em>Null Input Action Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Null Input Action Supported</em>' attribute.
+	 * @see #isNullInputActionSupported()
+	 * @generated
+	 */
+	void setNullInputActionSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Package Generation Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Package Generation Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Package Generation Supported</em>' attribute.
+	 * @see #setPackageGenerationSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getStoredProcedureDefinition_PackageGenerationSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isPackageGenerationSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#isPackageGenerationSupported <em>Package Generation Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Package Generation Supported</em>' attribute.
+	 * @see #isPackageGenerationSupported()
+	 * @generated
+	 */
+	void setPackageGenerationSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Determininstic Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Determininstic Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Determininstic Supported</em>' attribute.
+	 * @see #setDetermininsticSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getStoredProcedureDefinition_DetermininsticSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isDetermininsticSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#isDetermininsticSupported <em>Determininstic Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Determininstic Supported</em>' attribute.
+	 * @see #isDetermininsticSupported()
+	 * @generated
+	 */
+	void setDetermininsticSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Returned Null Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Returned Null Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Returned Null Supported</em>' attribute.
+	 * @see #setReturnedNullSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getStoredProcedureDefinition_ReturnedNullSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isReturnedNullSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#isReturnedNullSupported <em>Returned Null Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Returned Null Supported</em>' attribute.
+	 * @see #isReturnedNullSupported()
+	 * @generated
+	 */
+	void setReturnedNullSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Returned Type Declaration Constraint Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Returned Type Declaration Constraint Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Returned Type Declaration Constraint Supported</em>' attribute.
+	 * @see #setReturnedTypeDeclarationConstraintSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getStoredProcedureDefinition_ReturnedTypeDeclarationConstraintSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isReturnedTypeDeclarationConstraintSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#isReturnedTypeDeclarationConstraintSupported <em>Returned Type Declaration Constraint Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Returned Type Declaration Constraint Supported</em>' attribute.
+	 * @see #isReturnedTypeDeclarationConstraintSupported()
+	 * @generated
+	 */
+	void setReturnedTypeDeclarationConstraintSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Parameter Init Value Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Parameter Init Value Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Parameter Init Value Supported</em>' attribute.
+	 * @see #setParameterInitValueSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getStoredProcedureDefinition_ParameterInitValueSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isParameterInitValueSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#isParameterInitValueSupported <em>Parameter Init Value Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Parameter Init Value Supported</em>' attribute.
+	 * @see #isParameterInitValueSupported()
+	 * @generated
+	 */
+	void setParameterInitValueSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Parameter Style Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Parameter Style Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Parameter Style Supported</em>' attribute.
+	 * @see #setParameterStyleSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getStoredProcedureDefinition_ParameterStyleSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isParameterStyleSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#isParameterStyleSupported <em>Parameter Style Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Parameter Style Supported</em>' attribute.
+	 * @see #isParameterStyleSupported()
+	 * @generated
+	 */
+	void setParameterStyleSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Return Type Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Return Type Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Return Type Supported</em>' attribute.
+	 * @see #setReturnTypeSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getStoredProcedureDefinition_ReturnTypeSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isReturnTypeSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#isReturnTypeSupported <em>Return Type Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Return Type Supported</em>' attribute.
+	 * @see #isReturnTypeSupported()
+	 * @generated
+	 */
+	void setReturnTypeSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Parameter Declaration Constraint Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Parameter Declaration Constraint Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Parameter Declaration Constraint Supported</em>' attribute.
+	 * @see #setParameterDeclarationConstraintSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getStoredProcedureDefinition_ParameterDeclarationConstraintSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isParameterDeclarationConstraintSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#isParameterDeclarationConstraintSupported <em>Parameter Declaration Constraint Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Parameter Declaration Constraint Supported</em>' attribute.
+	 * @see #isParameterDeclarationConstraintSupported()
+	 * @generated
+	 */
+	void setParameterDeclarationConstraintSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Maximum Action Body Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Maximum Action Body Length</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Maximum Action Body Length</em>' attribute.
+	 * @see #setMaximumActionBodyLength(int)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getStoredProcedureDefinition_MaximumActionBodyLength()
+	 * @model
+	 * @generated
+	 */
+	int getMaximumActionBodyLength();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#getMaximumActionBodyLength <em>Maximum Action Body Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Maximum Action Body Length</em>' attribute.
+	 * @see #getMaximumActionBodyLength()
+	 * @generated
+	 */
+	void setMaximumActionBodyLength(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Parameter Style</b></em>' attribute list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.dbdefinition.ParameterStyle}.
+	 * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.dbdefinition.ParameterStyle}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Parameter Style</em>' attribute list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Parameter Style</em>' attribute list.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ParameterStyle
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getStoredProcedureDefinition_ParameterStyle()
+	 * @model dataType="org.eclipse.datatools.modelbase.dbdefinition.ParameterStyle"
+	 * @generated
+	 */
+	EList getParameterStyle();
+
+	/**
+	 * Returns the value of the '<em><b>Language Type</b></em>' attribute list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.dbdefinition.LanguageType}.
+	 * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.dbdefinition.LanguageType}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Language Type</em>' attribute list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Language Type</em>' attribute list.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.LanguageType
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getStoredProcedureDefinition_LanguageType()
+	 * @model dataType="org.eclipse.datatools.modelbase.dbdefinition.LanguageType"
+	 * @generated
+	 */
+	EList getLanguageType();
+
+	/**
+	 * Returns the value of the '<em><b>Function Language Type</b></em>' attribute list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.dbdefinition.LanguageType}.
+	 * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.dbdefinition.LanguageType}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Function Language Type</em>' attribute list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Function Language Type</em>' attribute list.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.LanguageType
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getStoredProcedureDefinition_FunctionLanguageType()
+	 * @model dataType="org.eclipse.datatools.modelbase.dbdefinition.LanguageType"
+	 * @generated
+	 */
+	EList getFunctionLanguageType();
+
+	/**
+	 * Returns the value of the '<em><b>Procedure Type</b></em>' attribute list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.dbdefinition.ProcedureType}.
+	 * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.dbdefinition.ProcedureType}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Procedure Type</em>' attribute list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Procedure Type</em>' attribute list.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ProcedureType
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getStoredProcedureDefinition_ProcedureType()
+	 * @model dataType="org.eclipse.datatools.modelbase.dbdefinition.ProcedureType"
+	 * @generated
+	 */
+	EList getProcedureType();
+
+	/**
+	 * Returns the value of the '<em><b>Maximum Identifier Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Maximum Identifier Length</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Maximum Identifier Length</em>' attribute.
+	 * @see #setMaximumIdentifierLength(int)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getStoredProcedureDefinition_MaximumIdentifierLength()
+	 * @model
+	 * @generated
+	 */
+	int getMaximumIdentifierLength();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition#getMaximumIdentifierLength <em>Maximum Identifier Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Maximum Identifier Length</em>' attribute.
+	 * @see #getMaximumIdentifierLength()
+	 * @generated
+	 */
+	void setMaximumIdentifierLength(int value);
+
+} // StoredProcedureDefinition
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/TableDefinition.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/TableDefinition.java
new file mode 100644
index 0000000..03afb54
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/TableDefinition.java
@@ -0,0 +1,193 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.dbdefinition;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Table Definition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.TableDefinition#isAuditSupported <em>Audit Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.TableDefinition#isDataCaptureSupported <em>Data Capture Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.TableDefinition#isEditProcSupported <em>Edit Proc Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.TableDefinition#isEncodingSupported <em>Encoding Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.TableDefinition#isValidProcSupported <em>Valid Proc Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.TableDefinition#getMaximumIdentifierLength <em>Maximum Identifier Length</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getTableDefinition()
+ * @model
+ * @generated
+ */
+public interface TableDefinition extends EObject{
+	/**
+	 * Returns the value of the '<em><b>Audit Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Audit Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Audit Supported</em>' attribute.
+	 * @see #setAuditSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getTableDefinition_AuditSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isAuditSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.TableDefinition#isAuditSupported <em>Audit Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Audit Supported</em>' attribute.
+	 * @see #isAuditSupported()
+	 * @generated
+	 */
+	void setAuditSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Data Capture Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Data Capture Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Data Capture Supported</em>' attribute.
+	 * @see #setDataCaptureSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getTableDefinition_DataCaptureSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isDataCaptureSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.TableDefinition#isDataCaptureSupported <em>Data Capture Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Data Capture Supported</em>' attribute.
+	 * @see #isDataCaptureSupported()
+	 * @generated
+	 */
+	void setDataCaptureSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Edit Proc Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Edit Proc Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Edit Proc Supported</em>' attribute.
+	 * @see #setEditProcSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getTableDefinition_EditProcSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isEditProcSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.TableDefinition#isEditProcSupported <em>Edit Proc Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Edit Proc Supported</em>' attribute.
+	 * @see #isEditProcSupported()
+	 * @generated
+	 */
+	void setEditProcSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Encoding Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Encoding Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Encoding Supported</em>' attribute.
+	 * @see #setEncodingSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getTableDefinition_EncodingSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isEncodingSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.TableDefinition#isEncodingSupported <em>Encoding Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Encoding Supported</em>' attribute.
+	 * @see #isEncodingSupported()
+	 * @generated
+	 */
+	void setEncodingSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Valid Proc Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Valid Proc Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Valid Proc Supported</em>' attribute.
+	 * @see #setValidProcSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getTableDefinition_ValidProcSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isValidProcSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.TableDefinition#isValidProcSupported <em>Valid Proc Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Valid Proc Supported</em>' attribute.
+	 * @see #isValidProcSupported()
+	 * @generated
+	 */
+	void setValidProcSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Maximum Identifier Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Maximum Identifier Length</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Maximum Identifier Length</em>' attribute.
+	 * @see #setMaximumIdentifierLength(int)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getTableDefinition_MaximumIdentifierLength()
+	 * @model
+	 * @generated
+	 */
+	int getMaximumIdentifierLength();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.TableDefinition#getMaximumIdentifierLength <em>Maximum Identifier Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Maximum Identifier Length</em>' attribute.
+	 * @see #getMaximumIdentifierLength()
+	 * @generated
+	 */
+	void setMaximumIdentifierLength(int value);
+
+} // TableDefinition
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/TableSpaceDefinition.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/TableSpaceDefinition.java
new file mode 100644
index 0000000..87a4267
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/TableSpaceDefinition.java
@@ -0,0 +1,348 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.dbdefinition;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Table Space Definition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition#isTypeSupported <em>Type Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition#isExtentSizeSupported <em>Extent Size Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition#isPrefetchSizeSupported <em>Prefetch Size Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition#isManagedBySupported <em>Managed By Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition#isPageSizeSupported <em>Page Size Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition#isBufferPoolSupported <em>Buffer Pool Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition#isDefaultSupported <em>Default Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition#isContainerMaximumSizeSupported <em>Container Maximum Size Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition#isContainerInitialSizeSupported <em>Container Initial Size Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition#isContainerExtentSizeSupported <em>Container Extent Size Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition#getTableSpaceType <em>Table Space Type</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition#getMaximumIdentifierLength <em>Maximum Identifier Length</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getTableSpaceDefinition()
+ * @model
+ * @generated
+ */
+public interface TableSpaceDefinition extends EObject{
+	/**
+	 * Returns the value of the '<em><b>Type Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type Supported</em>' attribute.
+	 * @see #setTypeSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getTableSpaceDefinition_TypeSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isTypeSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition#isTypeSupported <em>Type Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type Supported</em>' attribute.
+	 * @see #isTypeSupported()
+	 * @generated
+	 */
+	void setTypeSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Extent Size Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Extent Size Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Extent Size Supported</em>' attribute.
+	 * @see #setExtentSizeSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getTableSpaceDefinition_ExtentSizeSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isExtentSizeSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition#isExtentSizeSupported <em>Extent Size Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Extent Size Supported</em>' attribute.
+	 * @see #isExtentSizeSupported()
+	 * @generated
+	 */
+	void setExtentSizeSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Prefetch Size Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Prefetch Size Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Prefetch Size Supported</em>' attribute.
+	 * @see #setPrefetchSizeSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getTableSpaceDefinition_PrefetchSizeSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isPrefetchSizeSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition#isPrefetchSizeSupported <em>Prefetch Size Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Prefetch Size Supported</em>' attribute.
+	 * @see #isPrefetchSizeSupported()
+	 * @generated
+	 */
+	void setPrefetchSizeSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Managed By Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Managed By Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Managed By Supported</em>' attribute.
+	 * @see #setManagedBySupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getTableSpaceDefinition_ManagedBySupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isManagedBySupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition#isManagedBySupported <em>Managed By Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Managed By Supported</em>' attribute.
+	 * @see #isManagedBySupported()
+	 * @generated
+	 */
+	void setManagedBySupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Page Size Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Page Size Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Page Size Supported</em>' attribute.
+	 * @see #setPageSizeSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getTableSpaceDefinition_PageSizeSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isPageSizeSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition#isPageSizeSupported <em>Page Size Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Page Size Supported</em>' attribute.
+	 * @see #isPageSizeSupported()
+	 * @generated
+	 */
+	void setPageSizeSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Buffer Pool Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Buffer Pool Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Buffer Pool Supported</em>' attribute.
+	 * @see #setBufferPoolSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getTableSpaceDefinition_BufferPoolSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isBufferPoolSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition#isBufferPoolSupported <em>Buffer Pool Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Buffer Pool Supported</em>' attribute.
+	 * @see #isBufferPoolSupported()
+	 * @generated
+	 */
+	void setBufferPoolSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Default Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Default Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Default Supported</em>' attribute.
+	 * @see #setDefaultSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getTableSpaceDefinition_DefaultSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isDefaultSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition#isDefaultSupported <em>Default Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Default Supported</em>' attribute.
+	 * @see #isDefaultSupported()
+	 * @generated
+	 */
+	void setDefaultSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Container Maximum Size Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Container Maximum Size Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Container Maximum Size Supported</em>' attribute.
+	 * @see #setContainerMaximumSizeSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getTableSpaceDefinition_ContainerMaximumSizeSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isContainerMaximumSizeSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition#isContainerMaximumSizeSupported <em>Container Maximum Size Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Container Maximum Size Supported</em>' attribute.
+	 * @see #isContainerMaximumSizeSupported()
+	 * @generated
+	 */
+	void setContainerMaximumSizeSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Container Initial Size Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Container Initial Size Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Container Initial Size Supported</em>' attribute.
+	 * @see #setContainerInitialSizeSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getTableSpaceDefinition_ContainerInitialSizeSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isContainerInitialSizeSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition#isContainerInitialSizeSupported <em>Container Initial Size Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Container Initial Size Supported</em>' attribute.
+	 * @see #isContainerInitialSizeSupported()
+	 * @generated
+	 */
+	void setContainerInitialSizeSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Container Extent Size Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Container Extent Size Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Container Extent Size Supported</em>' attribute.
+	 * @see #setContainerExtentSizeSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getTableSpaceDefinition_ContainerExtentSizeSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isContainerExtentSizeSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition#isContainerExtentSizeSupported <em>Container Extent Size Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Container Extent Size Supported</em>' attribute.
+	 * @see #isContainerExtentSizeSupported()
+	 * @generated
+	 */
+	void setContainerExtentSizeSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Table Space Type</b></em>' attribute list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.dbdefinition.TableSpaceType}.
+	 * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.dbdefinition.TableSpaceType}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Table Space Type</em>' attribute list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Table Space Type</em>' attribute list.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.TableSpaceType
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getTableSpaceDefinition_TableSpaceType()
+	 * @model dataType="org.eclipse.datatools.modelbase.dbdefinition.TableSpaceType"
+	 * @generated
+	 */
+	EList getTableSpaceType();
+
+	/**
+	 * Returns the value of the '<em><b>Maximum Identifier Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Maximum Identifier Length</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Maximum Identifier Length</em>' attribute.
+	 * @see #setMaximumIdentifierLength(int)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getTableSpaceDefinition_MaximumIdentifierLength()
+	 * @model
+	 * @generated
+	 */
+	int getMaximumIdentifierLength();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition#getMaximumIdentifierLength <em>Maximum Identifier Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Maximum Identifier Length</em>' attribute.
+	 * @see #getMaximumIdentifierLength()
+	 * @generated
+	 */
+	void setMaximumIdentifierLength(int value);
+
+} // TableSpaceDefinition
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/TableSpaceType.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/TableSpaceType.java
new file mode 100644
index 0000000..7588a97
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/TableSpaceType.java
@@ -0,0 +1,313 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: TableSpaceType.java,v 1.3 2006/10/11 20:34:55 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.dbdefinition;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Table Space Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getTableSpaceType()
+ * @model
+ * @generated
+ */
+public final class TableSpaceType extends AbstractEnumerator {
+	/**
+	 * The '<em><b>REGULAR</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #REGULAR_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int REGULAR = 0;
+
+	/**
+	 * The '<em><b>LOB</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #LOB_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int LOB = 1;
+
+	/**
+	 * The '<em><b>SYSTEM TEMPORARY</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #SYSTEM_TEMPORARY_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int SYSTEM_TEMPORARY = 2;
+
+	/**
+	 * The '<em><b>USER TEMPORARY</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #USER_TEMPORARY_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int USER_TEMPORARY = 3;
+
+	/**
+	 * The '<em><b>PERMANENT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #PERMANENT_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int PERMANENT = 4;
+
+	/**
+	 * The '<em><b>TEMPORARY</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #TEMPORARY_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int TEMPORARY = 5;
+
+	/**
+	 * The '<em><b>LONG</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #LONG_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int LONG = 6;
+
+	/**
+	 * The '<em><b>LARGE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #LARGE_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int LARGE = 7;
+
+	/**
+	 * The '<em><b>REGULAR</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>REGULAR</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #REGULAR
+	 * @generated
+	 * @ordered
+	 */
+	public static final TableSpaceType REGULAR_LITERAL = new TableSpaceType(REGULAR, "REGULAR", "REGULAR"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>LOB</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>LOB</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #LOB
+	 * @generated
+	 * @ordered
+	 */
+	public static final TableSpaceType LOB_LITERAL = new TableSpaceType(LOB, "LOB", "LOB"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>SYSTEM TEMPORARY</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>SYSTEM TEMPORARY</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #SYSTEM_TEMPORARY
+	 * @generated
+	 * @ordered
+	 */
+	public static final TableSpaceType SYSTEM_TEMPORARY_LITERAL = new TableSpaceType(SYSTEM_TEMPORARY, "SYSTEM_TEMPORARY", "SYSTEM_TEMPORARY"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>USER TEMPORARY</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>USER TEMPORARY</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #USER_TEMPORARY
+	 * @generated
+	 * @ordered
+	 */
+	public static final TableSpaceType USER_TEMPORARY_LITERAL = new TableSpaceType(USER_TEMPORARY, "USER_TEMPORARY", "USER_TEMPORARY"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>PERMANENT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>PERMANENT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #PERMANENT
+	 * @generated
+	 * @ordered
+	 */
+	public static final TableSpaceType PERMANENT_LITERAL = new TableSpaceType(PERMANENT, "PERMANENT", "PERMANENT"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>TEMPORARY</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>TEMPORARY</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #TEMPORARY
+	 * @generated
+	 * @ordered
+	 */
+	public static final TableSpaceType TEMPORARY_LITERAL = new TableSpaceType(TEMPORARY, "TEMPORARY", "TEMPORARY"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>LONG</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>LONG</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #LONG
+	 * @generated
+	 * @ordered
+	 */
+	public static final TableSpaceType LONG_LITERAL = new TableSpaceType(LONG, "LONG", "LONG"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>LARGE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>LARGE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #LARGE
+	 * @generated
+	 * @ordered
+	 */
+	public static final TableSpaceType LARGE_LITERAL = new TableSpaceType(LARGE, "LARGE", "LARGE"); //$NON-NLS-1$
+
+	/**
+	 * An array of all the '<em><b>Table Space Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final TableSpaceType[] VALUES_ARRAY =
+		new TableSpaceType[] {
+			REGULAR_LITERAL,
+			LOB_LITERAL,
+			SYSTEM_TEMPORARY_LITERAL,
+			USER_TEMPORARY_LITERAL,
+			PERMANENT_LITERAL,
+			TEMPORARY_LITERAL,
+			LONG_LITERAL,
+			LARGE_LITERAL,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Table Space Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Table Space Type</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static TableSpaceType get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			TableSpaceType result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Table Space Type</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static TableSpaceType getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			TableSpaceType result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Table Space Type</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static TableSpaceType get(int value) {
+		switch (value) {
+			case REGULAR: return REGULAR_LITERAL;
+			case LOB: return LOB_LITERAL;
+			case SYSTEM_TEMPORARY: return SYSTEM_TEMPORARY_LITERAL;
+			case USER_TEMPORARY: return USER_TEMPORARY_LITERAL;
+			case PERMANENT: return PERMANENT_LITERAL;
+			case TEMPORARY: return TEMPORARY_LITERAL;
+			case LONG: return LONG_LITERAL;
+			case LARGE: return LARGE_LITERAL;
+		}
+		return null;
+	}
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private TableSpaceType(int value, String name, String literal) {
+		super(value, name, literal);
+	}
+
+} //TableSpaceType
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/TriggerDefinition.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/TriggerDefinition.java
new file mode 100644
index 0000000..6f64952
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/TriggerDefinition.java
@@ -0,0 +1,329 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.dbdefinition;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Trigger Definition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition#getMaximumReferencePartLength <em>Maximum Reference Part Length</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition#getMaximumActionBodyLength <em>Maximum Action Body Length</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition#isTypeSupported <em>Type Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition#isWhenClauseSupported <em>When Clause Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition#isGranularitySupported <em>Granularity Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition#isReferencesClauseSupported <em>References Clause Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition#isPerColumnUpdateTriggerSupported <em>Per Column Update Trigger Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition#isInsteadOfTriggerSupported <em>Instead Of Trigger Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition#isRowTriggerReferenceSupported <em>Row Trigger Reference Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition#isTableTriggerReferenceSupported <em>Table Trigger Reference Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition#getMaximumIdentifierLength <em>Maximum Identifier Length</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getTriggerDefinition()
+ * @model
+ * @generated
+ */
+public interface TriggerDefinition extends EObject{
+	/**
+	 * Returns the value of the '<em><b>Maximum Reference Part Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Maximum Reference Part Length</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Maximum Reference Part Length</em>' attribute.
+	 * @see #setMaximumReferencePartLength(int)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getTriggerDefinition_MaximumReferencePartLength()
+	 * @model
+	 * @generated
+	 */
+	int getMaximumReferencePartLength();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition#getMaximumReferencePartLength <em>Maximum Reference Part Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Maximum Reference Part Length</em>' attribute.
+	 * @see #getMaximumReferencePartLength()
+	 * @generated
+	 */
+	void setMaximumReferencePartLength(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Maximum Action Body Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Maximum Action Body Length</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Maximum Action Body Length</em>' attribute.
+	 * @see #setMaximumActionBodyLength(int)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getTriggerDefinition_MaximumActionBodyLength()
+	 * @model
+	 * @generated
+	 */
+	int getMaximumActionBodyLength();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition#getMaximumActionBodyLength <em>Maximum Action Body Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Maximum Action Body Length</em>' attribute.
+	 * @see #getMaximumActionBodyLength()
+	 * @generated
+	 */
+	void setMaximumActionBodyLength(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Type Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type Supported</em>' attribute.
+	 * @see #setTypeSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getTriggerDefinition_TypeSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isTypeSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition#isTypeSupported <em>Type Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type Supported</em>' attribute.
+	 * @see #isTypeSupported()
+	 * @generated
+	 */
+	void setTypeSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>When Clause Supported</b></em>' attribute.
+	 * The default value is <code>"true"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>When Clause Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>When Clause Supported</em>' attribute.
+	 * @see #setWhenClauseSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getTriggerDefinition_WhenClauseSupported()
+	 * @model default="true"
+	 * @generated
+	 */
+	boolean isWhenClauseSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition#isWhenClauseSupported <em>When Clause Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>When Clause Supported</em>' attribute.
+	 * @see #isWhenClauseSupported()
+	 * @generated
+	 */
+	void setWhenClauseSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Granularity Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Granularity Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Granularity Supported</em>' attribute.
+	 * @see #setGranularitySupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getTriggerDefinition_GranularitySupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isGranularitySupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition#isGranularitySupported <em>Granularity Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Granularity Supported</em>' attribute.
+	 * @see #isGranularitySupported()
+	 * @generated
+	 */
+	void setGranularitySupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>References Clause Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>References Clause Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>References Clause Supported</em>' attribute.
+	 * @see #setReferencesClauseSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getTriggerDefinition_ReferencesClauseSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isReferencesClauseSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition#isReferencesClauseSupported <em>References Clause Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>References Clause Supported</em>' attribute.
+	 * @see #isReferencesClauseSupported()
+	 * @generated
+	 */
+	void setReferencesClauseSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Per Column Update Trigger Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Per Column Update Trigger Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Per Column Update Trigger Supported</em>' attribute.
+	 * @see #setPerColumnUpdateTriggerSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getTriggerDefinition_PerColumnUpdateTriggerSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isPerColumnUpdateTriggerSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition#isPerColumnUpdateTriggerSupported <em>Per Column Update Trigger Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Per Column Update Trigger Supported</em>' attribute.
+	 * @see #isPerColumnUpdateTriggerSupported()
+	 * @generated
+	 */
+	void setPerColumnUpdateTriggerSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Instead Of Trigger Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Instead Of Trigger Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Instead Of Trigger Supported</em>' attribute.
+	 * @see #setInsteadOfTriggerSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getTriggerDefinition_InsteadOfTriggerSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isInsteadOfTriggerSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition#isInsteadOfTriggerSupported <em>Instead Of Trigger Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Instead Of Trigger Supported</em>' attribute.
+	 * @see #isInsteadOfTriggerSupported()
+	 * @generated
+	 */
+	void setInsteadOfTriggerSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Row Trigger Reference Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Row Trigger Reference Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Row Trigger Reference Supported</em>' attribute.
+	 * @see #setRowTriggerReferenceSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getTriggerDefinition_RowTriggerReferenceSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isRowTriggerReferenceSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition#isRowTriggerReferenceSupported <em>Row Trigger Reference Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Row Trigger Reference Supported</em>' attribute.
+	 * @see #isRowTriggerReferenceSupported()
+	 * @generated
+	 */
+	void setRowTriggerReferenceSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Table Trigger Reference Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Table Trigger Reference Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Table Trigger Reference Supported</em>' attribute.
+	 * @see #setTableTriggerReferenceSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getTriggerDefinition_TableTriggerReferenceSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isTableTriggerReferenceSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition#isTableTriggerReferenceSupported <em>Table Trigger Reference Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Table Trigger Reference Supported</em>' attribute.
+	 * @see #isTableTriggerReferenceSupported()
+	 * @generated
+	 */
+	void setTableTriggerReferenceSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Maximum Identifier Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Maximum Identifier Length</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Maximum Identifier Length</em>' attribute.
+	 * @see #setMaximumIdentifierLength(int)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getTriggerDefinition_MaximumIdentifierLength()
+	 * @model
+	 * @generated
+	 */
+	int getMaximumIdentifierLength();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition#getMaximumIdentifierLength <em>Maximum Identifier Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Maximum Identifier Length</em>' attribute.
+	 * @see #getMaximumIdentifierLength()
+	 * @generated
+	 */
+	void setMaximumIdentifierLength(int value);
+
+} // TriggerDefinition
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/UserDefinedTypeDefinition.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/UserDefinedTypeDefinition.java
new file mode 100644
index 0000000..c328318
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/UserDefinedTypeDefinition.java
@@ -0,0 +1,139 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.dbdefinition;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>User Defined Type Definition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.UserDefinedTypeDefinition#isDefaultValueSupported <em>Default Value Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.UserDefinedTypeDefinition#isDistinctTypeSupported <em>Distinct Type Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.UserDefinedTypeDefinition#isStructuredTypeSupported <em>Structured Type Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.UserDefinedTypeDefinition#getMaximumIdentifierLength <em>Maximum Identifier Length</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getUserDefinedTypeDefinition()
+ * @model
+ * @generated
+ */
+public interface UserDefinedTypeDefinition extends EObject{
+	/**
+	 * Returns the value of the '<em><b>Default Value Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Default Value Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Default Value Supported</em>' attribute.
+	 * @see #setDefaultValueSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getUserDefinedTypeDefinition_DefaultValueSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isDefaultValueSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.UserDefinedTypeDefinition#isDefaultValueSupported <em>Default Value Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Default Value Supported</em>' attribute.
+	 * @see #isDefaultValueSupported()
+	 * @generated
+	 */
+	void setDefaultValueSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Distinct Type Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Distinct Type Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Distinct Type Supported</em>' attribute.
+	 * @see #setDistinctTypeSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getUserDefinedTypeDefinition_DistinctTypeSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isDistinctTypeSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.UserDefinedTypeDefinition#isDistinctTypeSupported <em>Distinct Type Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Distinct Type Supported</em>' attribute.
+	 * @see #isDistinctTypeSupported()
+	 * @generated
+	 */
+	void setDistinctTypeSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Structured Type Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Structured Type Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Structured Type Supported</em>' attribute.
+	 * @see #setStructuredTypeSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getUserDefinedTypeDefinition_StructuredTypeSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isStructuredTypeSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.UserDefinedTypeDefinition#isStructuredTypeSupported <em>Structured Type Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Structured Type Supported</em>' attribute.
+	 * @see #isStructuredTypeSupported()
+	 * @generated
+	 */
+	void setStructuredTypeSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Maximum Identifier Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Maximum Identifier Length</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Maximum Identifier Length</em>' attribute.
+	 * @see #setMaximumIdentifierLength(int)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getUserDefinedTypeDefinition_MaximumIdentifierLength()
+	 * @model
+	 * @generated
+	 */
+	int getMaximumIdentifierLength();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.UserDefinedTypeDefinition#getMaximumIdentifierLength <em>Maximum Identifier Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Maximum Identifier Length</em>' attribute.
+	 * @see #getMaximumIdentifierLength()
+	 * @generated
+	 */
+	void setMaximumIdentifierLength(int value);
+
+} // UserDefinedTypeDefinition
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/ViewDefinition.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/ViewDefinition.java
new file mode 100644
index 0000000..de59131
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/ViewDefinition.java
@@ -0,0 +1,136 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ViewDefinition.java,v 1.2 2007/11/01 23:08:39 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.dbdefinition;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>View Definition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.ViewDefinition#getMaximumIdentifierLength <em>Maximum Identifier Length</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.ViewDefinition#isIndexSupported <em>Index Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.ViewDefinition#isCheckOptionSupported <em>Check Option Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.ViewDefinition#isCheckOptionLevelsSupported <em>Check Option Levels Supported</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getViewDefinition()
+ * @model
+ * @generated
+ */
+public interface ViewDefinition extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Maximum Identifier Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Maximum Identifier Length</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Maximum Identifier Length</em>' attribute.
+	 * @see #setMaximumIdentifierLength(int)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getViewDefinition_MaximumIdentifierLength()
+	 * @model
+	 * @generated
+	 */
+	int getMaximumIdentifierLength();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.ViewDefinition#getMaximumIdentifierLength <em>Maximum Identifier Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Maximum Identifier Length</em>' attribute.
+	 * @see #getMaximumIdentifierLength()
+	 * @generated
+	 */
+	void setMaximumIdentifierLength(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Index Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Index Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Index Supported</em>' attribute.
+	 * @see #setIndexSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getViewDefinition_IndexSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isIndexSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.ViewDefinition#isIndexSupported <em>Index Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Index Supported</em>' attribute.
+	 * @see #isIndexSupported()
+	 * @generated
+	 */
+	void setIndexSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Check Option Supported</b></em>' attribute.
+	 * The default value is <code>"true"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Check Option Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Check Option Supported</em>' attribute.
+	 * @see #setCheckOptionSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getViewDefinition_CheckOptionSupported()
+	 * @model default="true"
+	 * @generated
+	 */
+	boolean isCheckOptionSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.ViewDefinition#isCheckOptionSupported <em>Check Option Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Check Option Supported</em>' attribute.
+	 * @see #isCheckOptionSupported()
+	 * @generated
+	 */
+	void setCheckOptionSupported(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Check Option Levels Supported</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Check Option Levels Supported</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Check Option Levels Supported</em>' attribute.
+	 * @see #setCheckOptionLevelsSupported(boolean)
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#getViewDefinition_CheckOptionLevelsSupported()
+	 * @model
+	 * @generated
+	 */
+	boolean isCheckOptionLevelsSupported();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.dbdefinition.ViewDefinition#isCheckOptionLevelsSupported <em>Check Option Levels Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Check Option Levels Supported</em>' attribute.
+	 * @see #isCheckOptionLevelsSupported()
+	 * @generated
+	 */
+	void setCheckOptionLevelsSupported(boolean value);
+
+} // ViewDefinition
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/ColumnDefinitionImpl.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/ColumnDefinitionImpl.java
new file mode 100644
index 0000000..34db946
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/ColumnDefinitionImpl.java
@@ -0,0 +1,583 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.dbdefinition.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.dbdefinition.ColumnDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage;
+import org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Column Definition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.ColumnDefinitionImpl#getIdentityColumnDataTypeDefinitions <em>Identity Column Data Type Definitions</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.ColumnDefinitionImpl#isIdentitySupported <em>Identity Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.ColumnDefinitionImpl#isComputedSupported <em>Computed Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.ColumnDefinitionImpl#isIdentityStartValueSupported <em>Identity Start Value Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.ColumnDefinitionImpl#isIdentityIncrementSupported <em>Identity Increment Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.ColumnDefinitionImpl#isIdentityMinimumSupported <em>Identity Minimum Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.ColumnDefinitionImpl#isIdentityMaximumSupported <em>Identity Maximum Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.ColumnDefinitionImpl#isIdentityCycleSupported <em>Identity Cycle Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.ColumnDefinitionImpl#getMaximumIdentifierLength <em>Maximum Identifier Length</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ColumnDefinitionImpl extends EObjectImpl implements ColumnDefinition {
+	/**
+	 * The cached value of the '{@link #getIdentityColumnDataTypeDefinitions() <em>Identity Column Data Type Definitions</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getIdentityColumnDataTypeDefinitions()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList identityColumnDataTypeDefinitions;
+
+	/**
+	 * The default value of the '{@link #isIdentitySupported() <em>Identity Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isIdentitySupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean IDENTITY_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isIdentitySupported() <em>Identity Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isIdentitySupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean identitySupported = IDENTITY_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isComputedSupported() <em>Computed Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isComputedSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean COMPUTED_SUPPORTED_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isComputedSupported() <em>Computed Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isComputedSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean computedSupported = COMPUTED_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isIdentityStartValueSupported() <em>Identity Start Value Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isIdentityStartValueSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean IDENTITY_START_VALUE_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isIdentityStartValueSupported() <em>Identity Start Value Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isIdentityStartValueSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean identityStartValueSupported = IDENTITY_START_VALUE_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isIdentityIncrementSupported() <em>Identity Increment Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isIdentityIncrementSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean IDENTITY_INCREMENT_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isIdentityIncrementSupported() <em>Identity Increment Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isIdentityIncrementSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean identityIncrementSupported = IDENTITY_INCREMENT_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isIdentityMinimumSupported() <em>Identity Minimum Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isIdentityMinimumSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean IDENTITY_MINIMUM_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isIdentityMinimumSupported() <em>Identity Minimum Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isIdentityMinimumSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean identityMinimumSupported = IDENTITY_MINIMUM_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isIdentityMaximumSupported() <em>Identity Maximum Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isIdentityMaximumSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean IDENTITY_MAXIMUM_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isIdentityMaximumSupported() <em>Identity Maximum Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isIdentityMaximumSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean identityMaximumSupported = IDENTITY_MAXIMUM_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isIdentityCycleSupported() <em>Identity Cycle Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isIdentityCycleSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean IDENTITY_CYCLE_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isIdentityCycleSupported() <em>Identity Cycle Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isIdentityCycleSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean identityCycleSupported = IDENTITY_CYCLE_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMaximumIdentifierLength() <em>Maximum Identifier Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumIdentifierLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int MAXIMUM_IDENTIFIER_LENGTH_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getMaximumIdentifierLength() <em>Maximum Identifier Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumIdentifierLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected int maximumIdentifierLength = MAXIMUM_IDENTIFIER_LENGTH_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ColumnDefinitionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return DatabaseDefinitionPackage.Literals.COLUMN_DEFINITION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getIdentityColumnDataTypeDefinitions() {
+		if (identityColumnDataTypeDefinitions == null) {
+			identityColumnDataTypeDefinitions = new EObjectResolvingEList(PredefinedDataTypeDefinition.class, this, DatabaseDefinitionPackage.COLUMN_DEFINITION__IDENTITY_COLUMN_DATA_TYPE_DEFINITIONS);
+		}
+		return identityColumnDataTypeDefinitions;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isIdentitySupported() {
+		return identitySupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setIdentitySupported(boolean newIdentitySupported) {
+		boolean oldIdentitySupported = identitySupported;
+		identitySupported = newIdentitySupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.COLUMN_DEFINITION__IDENTITY_SUPPORTED, oldIdentitySupported, identitySupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isComputedSupported() {
+		return computedSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setComputedSupported(boolean newComputedSupported) {
+		boolean oldComputedSupported = computedSupported;
+		computedSupported = newComputedSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.COLUMN_DEFINITION__COMPUTED_SUPPORTED, oldComputedSupported, computedSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isIdentityStartValueSupported() {
+		return identityStartValueSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setIdentityStartValueSupported(boolean newIdentityStartValueSupported) {
+		boolean oldIdentityStartValueSupported = identityStartValueSupported;
+		identityStartValueSupported = newIdentityStartValueSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.COLUMN_DEFINITION__IDENTITY_START_VALUE_SUPPORTED, oldIdentityStartValueSupported, identityStartValueSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isIdentityIncrementSupported() {
+		return identityIncrementSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setIdentityIncrementSupported(boolean newIdentityIncrementSupported) {
+		boolean oldIdentityIncrementSupported = identityIncrementSupported;
+		identityIncrementSupported = newIdentityIncrementSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.COLUMN_DEFINITION__IDENTITY_INCREMENT_SUPPORTED, oldIdentityIncrementSupported, identityIncrementSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isIdentityMinimumSupported() {
+		return identityMinimumSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setIdentityMinimumSupported(boolean newIdentityMinimumSupported) {
+		boolean oldIdentityMinimumSupported = identityMinimumSupported;
+		identityMinimumSupported = newIdentityMinimumSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.COLUMN_DEFINITION__IDENTITY_MINIMUM_SUPPORTED, oldIdentityMinimumSupported, identityMinimumSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isIdentityMaximumSupported() {
+		return identityMaximumSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setIdentityMaximumSupported(boolean newIdentityMaximumSupported) {
+		boolean oldIdentityMaximumSupported = identityMaximumSupported;
+		identityMaximumSupported = newIdentityMaximumSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.COLUMN_DEFINITION__IDENTITY_MAXIMUM_SUPPORTED, oldIdentityMaximumSupported, identityMaximumSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isIdentityCycleSupported() {
+		return identityCycleSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setIdentityCycleSupported(boolean newIdentityCycleSupported) {
+		boolean oldIdentityCycleSupported = identityCycleSupported;
+		identityCycleSupported = newIdentityCycleSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.COLUMN_DEFINITION__IDENTITY_CYCLE_SUPPORTED, oldIdentityCycleSupported, identityCycleSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getMaximumIdentifierLength() {
+		return maximumIdentifierLength;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMaximumIdentifierLength(int newMaximumIdentifierLength) {
+		int oldMaximumIdentifierLength = maximumIdentifierLength;
+		maximumIdentifierLength = newMaximumIdentifierLength;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.COLUMN_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH, oldMaximumIdentifierLength, maximumIdentifierLength));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.COLUMN_DEFINITION__IDENTITY_COLUMN_DATA_TYPE_DEFINITIONS:
+				return getIdentityColumnDataTypeDefinitions();
+			case DatabaseDefinitionPackage.COLUMN_DEFINITION__IDENTITY_SUPPORTED:
+				return isIdentitySupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.COLUMN_DEFINITION__COMPUTED_SUPPORTED:
+				return isComputedSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.COLUMN_DEFINITION__IDENTITY_START_VALUE_SUPPORTED:
+				return isIdentityStartValueSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.COLUMN_DEFINITION__IDENTITY_INCREMENT_SUPPORTED:
+				return isIdentityIncrementSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.COLUMN_DEFINITION__IDENTITY_MINIMUM_SUPPORTED:
+				return isIdentityMinimumSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.COLUMN_DEFINITION__IDENTITY_MAXIMUM_SUPPORTED:
+				return isIdentityMaximumSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.COLUMN_DEFINITION__IDENTITY_CYCLE_SUPPORTED:
+				return isIdentityCycleSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.COLUMN_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH:
+				return new Integer(getMaximumIdentifierLength());
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.COLUMN_DEFINITION__IDENTITY_COLUMN_DATA_TYPE_DEFINITIONS:
+				getIdentityColumnDataTypeDefinitions().clear();
+				getIdentityColumnDataTypeDefinitions().addAll((Collection)newValue);
+				return;
+			case DatabaseDefinitionPackage.COLUMN_DEFINITION__IDENTITY_SUPPORTED:
+				setIdentitySupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.COLUMN_DEFINITION__COMPUTED_SUPPORTED:
+				setComputedSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.COLUMN_DEFINITION__IDENTITY_START_VALUE_SUPPORTED:
+				setIdentityStartValueSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.COLUMN_DEFINITION__IDENTITY_INCREMENT_SUPPORTED:
+				setIdentityIncrementSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.COLUMN_DEFINITION__IDENTITY_MINIMUM_SUPPORTED:
+				setIdentityMinimumSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.COLUMN_DEFINITION__IDENTITY_MAXIMUM_SUPPORTED:
+				setIdentityMaximumSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.COLUMN_DEFINITION__IDENTITY_CYCLE_SUPPORTED:
+				setIdentityCycleSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.COLUMN_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH:
+				setMaximumIdentifierLength(((Integer)newValue).intValue());
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.COLUMN_DEFINITION__IDENTITY_COLUMN_DATA_TYPE_DEFINITIONS:
+				getIdentityColumnDataTypeDefinitions().clear();
+				return;
+			case DatabaseDefinitionPackage.COLUMN_DEFINITION__IDENTITY_SUPPORTED:
+				setIdentitySupported(IDENTITY_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.COLUMN_DEFINITION__COMPUTED_SUPPORTED:
+				setComputedSupported(COMPUTED_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.COLUMN_DEFINITION__IDENTITY_START_VALUE_SUPPORTED:
+				setIdentityStartValueSupported(IDENTITY_START_VALUE_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.COLUMN_DEFINITION__IDENTITY_INCREMENT_SUPPORTED:
+				setIdentityIncrementSupported(IDENTITY_INCREMENT_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.COLUMN_DEFINITION__IDENTITY_MINIMUM_SUPPORTED:
+				setIdentityMinimumSupported(IDENTITY_MINIMUM_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.COLUMN_DEFINITION__IDENTITY_MAXIMUM_SUPPORTED:
+				setIdentityMaximumSupported(IDENTITY_MAXIMUM_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.COLUMN_DEFINITION__IDENTITY_CYCLE_SUPPORTED:
+				setIdentityCycleSupported(IDENTITY_CYCLE_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.COLUMN_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH:
+				setMaximumIdentifierLength(MAXIMUM_IDENTIFIER_LENGTH_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.COLUMN_DEFINITION__IDENTITY_COLUMN_DATA_TYPE_DEFINITIONS:
+				return identityColumnDataTypeDefinitions != null && !identityColumnDataTypeDefinitions.isEmpty();
+			case DatabaseDefinitionPackage.COLUMN_DEFINITION__IDENTITY_SUPPORTED:
+				return identitySupported != IDENTITY_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.COLUMN_DEFINITION__COMPUTED_SUPPORTED:
+				return computedSupported != COMPUTED_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.COLUMN_DEFINITION__IDENTITY_START_VALUE_SUPPORTED:
+				return identityStartValueSupported != IDENTITY_START_VALUE_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.COLUMN_DEFINITION__IDENTITY_INCREMENT_SUPPORTED:
+				return identityIncrementSupported != IDENTITY_INCREMENT_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.COLUMN_DEFINITION__IDENTITY_MINIMUM_SUPPORTED:
+				return identityMinimumSupported != IDENTITY_MINIMUM_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.COLUMN_DEFINITION__IDENTITY_MAXIMUM_SUPPORTED:
+				return identityMaximumSupported != IDENTITY_MAXIMUM_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.COLUMN_DEFINITION__IDENTITY_CYCLE_SUPPORTED:
+				return identityCycleSupported != IDENTITY_CYCLE_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.COLUMN_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH:
+				return maximumIdentifierLength != MAXIMUM_IDENTIFIER_LENGTH_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (identitySupported: "); //$NON-NLS-1$
+		result.append(identitySupported);
+		result.append(", computedSupported: "); //$NON-NLS-1$
+		result.append(computedSupported);
+		result.append(", identityStartValueSupported: "); //$NON-NLS-1$
+		result.append(identityStartValueSupported);
+		result.append(", identityIncrementSupported: "); //$NON-NLS-1$
+		result.append(identityIncrementSupported);
+		result.append(", identityMinimumSupported: "); //$NON-NLS-1$
+		result.append(identityMinimumSupported);
+		result.append(", identityMaximumSupported: "); //$NON-NLS-1$
+		result.append(identityMaximumSupported);
+		result.append(", identityCycleSupported: "); //$NON-NLS-1$
+		result.append(identityCycleSupported);
+		result.append(", maximumIdentifierLength: "); //$NON-NLS-1$
+		result.append(maximumIdentifierLength);
+		result.append(')');
+		return result.toString();
+	}
+
+} //ColumnDefinitionImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/ConstraintDefinitionImpl.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/ConstraintDefinitionImpl.java
new file mode 100644
index 0000000..a74a18f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/ConstraintDefinitionImpl.java
@@ -0,0 +1,764 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.dbdefinition.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.dbdefinition.CheckOption;
+import org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage;
+import org.eclipse.datatools.modelbase.dbdefinition.ParentDeleteDRIRuleType;
+import org.eclipse.datatools.modelbase.dbdefinition.ParentUpdateDRIRuleType;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Constraint Definition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.ConstraintDefinitionImpl#isDeferrableConstraintSupported <em>Deferrable Constraint Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.ConstraintDefinitionImpl#isInformationalConstraintSupported <em>Informational Constraint Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.ConstraintDefinitionImpl#isClusteredPrimaryKeySupported <em>Clustered Primary Key Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.ConstraintDefinitionImpl#isClusteredUniqueConstraintSupported <em>Clustered Unique Constraint Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.ConstraintDefinitionImpl#isPrimaryKeyNullable <em>Primary Key Nullable</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.ConstraintDefinitionImpl#isUniqueKeyNullable <em>Unique Key Nullable</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.ConstraintDefinitionImpl#getMaximumCheckExpressionLength <em>Maximum Check Expression Length</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.ConstraintDefinitionImpl#getParentUpdateDRIRuleType <em>Parent Update DRI Rule Type</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.ConstraintDefinitionImpl#getParentDeleteDRIRuleType <em>Parent Delete DRI Rule Type</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.ConstraintDefinitionImpl#getCheckOption <em>Check Option</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.ConstraintDefinitionImpl#getMaximumPrimaryKeyIdentifierLength <em>Maximum Primary Key Identifier Length</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.ConstraintDefinitionImpl#getMaximumForeignKeyIdentifierLength <em>Maximum Foreign Key Identifier Length</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.ConstraintDefinitionImpl#getMaximumCheckConstraintIdentifierLength <em>Maximum Check Constraint Identifier Length</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ConstraintDefinitionImpl extends EObjectImpl implements ConstraintDefinition {
+	/**
+	 * The default value of the '{@link #isDeferrableConstraintSupported() <em>Deferrable Constraint Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isDeferrableConstraintSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean DEFERRABLE_CONSTRAINT_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isDeferrableConstraintSupported() <em>Deferrable Constraint Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isDeferrableConstraintSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean deferrableConstraintSupported = DEFERRABLE_CONSTRAINT_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isInformationalConstraintSupported() <em>Informational Constraint Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isInformationalConstraintSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean INFORMATIONAL_CONSTRAINT_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isInformationalConstraintSupported() <em>Informational Constraint Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isInformationalConstraintSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean informationalConstraintSupported = INFORMATIONAL_CONSTRAINT_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isClusteredPrimaryKeySupported() <em>Clustered Primary Key Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isClusteredPrimaryKeySupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean CLUSTERED_PRIMARY_KEY_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isClusteredPrimaryKeySupported() <em>Clustered Primary Key Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isClusteredPrimaryKeySupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean clusteredPrimaryKeySupported = CLUSTERED_PRIMARY_KEY_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isClusteredUniqueConstraintSupported() <em>Clustered Unique Constraint Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isClusteredUniqueConstraintSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean CLUSTERED_UNIQUE_CONSTRAINT_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isClusteredUniqueConstraintSupported() <em>Clustered Unique Constraint Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isClusteredUniqueConstraintSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean clusteredUniqueConstraintSupported = CLUSTERED_UNIQUE_CONSTRAINT_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isPrimaryKeyNullable() <em>Primary Key Nullable</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isPrimaryKeyNullable()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean PRIMARY_KEY_NULLABLE_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isPrimaryKeyNullable() <em>Primary Key Nullable</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isPrimaryKeyNullable()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean primaryKeyNullable = PRIMARY_KEY_NULLABLE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isUniqueKeyNullable() <em>Unique Key Nullable</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isUniqueKeyNullable()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean UNIQUE_KEY_NULLABLE_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isUniqueKeyNullable() <em>Unique Key Nullable</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isUniqueKeyNullable()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean uniqueKeyNullable = UNIQUE_KEY_NULLABLE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMaximumCheckExpressionLength() <em>Maximum Check Expression Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumCheckExpressionLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int MAXIMUM_CHECK_EXPRESSION_LENGTH_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getMaximumCheckExpressionLength() <em>Maximum Check Expression Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumCheckExpressionLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected int maximumCheckExpressionLength = MAXIMUM_CHECK_EXPRESSION_LENGTH_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getParentUpdateDRIRuleType() <em>Parent Update DRI Rule Type</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getParentUpdateDRIRuleType()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList parentUpdateDRIRuleType;
+
+	/**
+	 * The cached value of the '{@link #getParentDeleteDRIRuleType() <em>Parent Delete DRI Rule Type</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getParentDeleteDRIRuleType()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList parentDeleteDRIRuleType;
+
+	/**
+	 * The cached value of the '{@link #getCheckOption() <em>Check Option</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCheckOption()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList checkOption;
+
+	/**
+	 * The default value of the '{@link #getMaximumPrimaryKeyIdentifierLength() <em>Maximum Primary Key Identifier Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumPrimaryKeyIdentifierLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int MAXIMUM_PRIMARY_KEY_IDENTIFIER_LENGTH_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getMaximumPrimaryKeyIdentifierLength() <em>Maximum Primary Key Identifier Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumPrimaryKeyIdentifierLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected int maximumPrimaryKeyIdentifierLength = MAXIMUM_PRIMARY_KEY_IDENTIFIER_LENGTH_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMaximumForeignKeyIdentifierLength() <em>Maximum Foreign Key Identifier Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumForeignKeyIdentifierLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int MAXIMUM_FOREIGN_KEY_IDENTIFIER_LENGTH_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getMaximumForeignKeyIdentifierLength() <em>Maximum Foreign Key Identifier Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumForeignKeyIdentifierLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected int maximumForeignKeyIdentifierLength = MAXIMUM_FOREIGN_KEY_IDENTIFIER_LENGTH_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMaximumCheckConstraintIdentifierLength() <em>Maximum Check Constraint Identifier Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumCheckConstraintIdentifierLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int MAXIMUM_CHECK_CONSTRAINT_IDENTIFIER_LENGTH_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getMaximumCheckConstraintIdentifierLength() <em>Maximum Check Constraint Identifier Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumCheckConstraintIdentifierLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected int maximumCheckConstraintIdentifierLength = MAXIMUM_CHECK_CONSTRAINT_IDENTIFIER_LENGTH_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ConstraintDefinitionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return DatabaseDefinitionPackage.Literals.CONSTRAINT_DEFINITION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isDeferrableConstraintSupported() {
+		return deferrableConstraintSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDeferrableConstraintSupported(boolean newDeferrableConstraintSupported) {
+		boolean oldDeferrableConstraintSupported = deferrableConstraintSupported;
+		deferrableConstraintSupported = newDeferrableConstraintSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__DEFERRABLE_CONSTRAINT_SUPPORTED, oldDeferrableConstraintSupported, deferrableConstraintSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isInformationalConstraintSupported() {
+		return informationalConstraintSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setInformationalConstraintSupported(boolean newInformationalConstraintSupported) {
+		boolean oldInformationalConstraintSupported = informationalConstraintSupported;
+		informationalConstraintSupported = newInformationalConstraintSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__INFORMATIONAL_CONSTRAINT_SUPPORTED, oldInformationalConstraintSupported, informationalConstraintSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isClusteredPrimaryKeySupported() {
+		return clusteredPrimaryKeySupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setClusteredPrimaryKeySupported(boolean newClusteredPrimaryKeySupported) {
+		boolean oldClusteredPrimaryKeySupported = clusteredPrimaryKeySupported;
+		clusteredPrimaryKeySupported = newClusteredPrimaryKeySupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__CLUSTERED_PRIMARY_KEY_SUPPORTED, oldClusteredPrimaryKeySupported, clusteredPrimaryKeySupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isClusteredUniqueConstraintSupported() {
+		return clusteredUniqueConstraintSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setClusteredUniqueConstraintSupported(boolean newClusteredUniqueConstraintSupported) {
+		boolean oldClusteredUniqueConstraintSupported = clusteredUniqueConstraintSupported;
+		clusteredUniqueConstraintSupported = newClusteredUniqueConstraintSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__CLUSTERED_UNIQUE_CONSTRAINT_SUPPORTED, oldClusteredUniqueConstraintSupported, clusteredUniqueConstraintSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isPrimaryKeyNullable() {
+		return primaryKeyNullable;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPrimaryKeyNullable(boolean newPrimaryKeyNullable) {
+		boolean oldPrimaryKeyNullable = primaryKeyNullable;
+		primaryKeyNullable = newPrimaryKeyNullable;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__PRIMARY_KEY_NULLABLE, oldPrimaryKeyNullable, primaryKeyNullable));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isUniqueKeyNullable() {
+		return uniqueKeyNullable;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setUniqueKeyNullable(boolean newUniqueKeyNullable) {
+		boolean oldUniqueKeyNullable = uniqueKeyNullable;
+		uniqueKeyNullable = newUniqueKeyNullable;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__UNIQUE_KEY_NULLABLE, oldUniqueKeyNullable, uniqueKeyNullable));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getMaximumCheckExpressionLength() {
+		return maximumCheckExpressionLength;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMaximumCheckExpressionLength(int newMaximumCheckExpressionLength) {
+		int oldMaximumCheckExpressionLength = maximumCheckExpressionLength;
+		maximumCheckExpressionLength = newMaximumCheckExpressionLength;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__MAXIMUM_CHECK_EXPRESSION_LENGTH, oldMaximumCheckExpressionLength, maximumCheckExpressionLength));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getParentUpdateDRIRuleType() {
+		if (parentUpdateDRIRuleType == null) {
+			parentUpdateDRIRuleType = new EDataTypeUniqueEList(ParentUpdateDRIRuleType.class, this, DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__PARENT_UPDATE_DRI_RULE_TYPE);
+		}
+		return parentUpdateDRIRuleType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getParentDeleteDRIRuleType() {
+		if (parentDeleteDRIRuleType == null) {
+			parentDeleteDRIRuleType = new EDataTypeUniqueEList(ParentDeleteDRIRuleType.class, this, DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__PARENT_DELETE_DRI_RULE_TYPE);
+		}
+		return parentDeleteDRIRuleType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getCheckOption() {
+		if (checkOption == null) {
+			checkOption = new EDataTypeUniqueEList(CheckOption.class, this, DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__CHECK_OPTION);
+		}
+		return checkOption;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getMaximumPrimaryKeyIdentifierLength() {
+		return maximumPrimaryKeyIdentifierLength;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMaximumPrimaryKeyIdentifierLength(int newMaximumPrimaryKeyIdentifierLength) {
+		int oldMaximumPrimaryKeyIdentifierLength = maximumPrimaryKeyIdentifierLength;
+		maximumPrimaryKeyIdentifierLength = newMaximumPrimaryKeyIdentifierLength;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__MAXIMUM_PRIMARY_KEY_IDENTIFIER_LENGTH, oldMaximumPrimaryKeyIdentifierLength, maximumPrimaryKeyIdentifierLength));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getMaximumForeignKeyIdentifierLength() {
+		return maximumForeignKeyIdentifierLength;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMaximumForeignKeyIdentifierLength(int newMaximumForeignKeyIdentifierLength) {
+		int oldMaximumForeignKeyIdentifierLength = maximumForeignKeyIdentifierLength;
+		maximumForeignKeyIdentifierLength = newMaximumForeignKeyIdentifierLength;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__MAXIMUM_FOREIGN_KEY_IDENTIFIER_LENGTH, oldMaximumForeignKeyIdentifierLength, maximumForeignKeyIdentifierLength));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getMaximumCheckConstraintIdentifierLength() {
+		return maximumCheckConstraintIdentifierLength;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMaximumCheckConstraintIdentifierLength(int newMaximumCheckConstraintIdentifierLength) {
+		int oldMaximumCheckConstraintIdentifierLength = maximumCheckConstraintIdentifierLength;
+		maximumCheckConstraintIdentifierLength = newMaximumCheckConstraintIdentifierLength;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__MAXIMUM_CHECK_CONSTRAINT_IDENTIFIER_LENGTH, oldMaximumCheckConstraintIdentifierLength, maximumCheckConstraintIdentifierLength));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__DEFERRABLE_CONSTRAINT_SUPPORTED:
+				return isDeferrableConstraintSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__INFORMATIONAL_CONSTRAINT_SUPPORTED:
+				return isInformationalConstraintSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__CLUSTERED_PRIMARY_KEY_SUPPORTED:
+				return isClusteredPrimaryKeySupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__CLUSTERED_UNIQUE_CONSTRAINT_SUPPORTED:
+				return isClusteredUniqueConstraintSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__PRIMARY_KEY_NULLABLE:
+				return isPrimaryKeyNullable() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__UNIQUE_KEY_NULLABLE:
+				return isUniqueKeyNullable() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__MAXIMUM_CHECK_EXPRESSION_LENGTH:
+				return new Integer(getMaximumCheckExpressionLength());
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__PARENT_UPDATE_DRI_RULE_TYPE:
+				return getParentUpdateDRIRuleType();
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__PARENT_DELETE_DRI_RULE_TYPE:
+				return getParentDeleteDRIRuleType();
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__CHECK_OPTION:
+				return getCheckOption();
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__MAXIMUM_PRIMARY_KEY_IDENTIFIER_LENGTH:
+				return new Integer(getMaximumPrimaryKeyIdentifierLength());
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__MAXIMUM_FOREIGN_KEY_IDENTIFIER_LENGTH:
+				return new Integer(getMaximumForeignKeyIdentifierLength());
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__MAXIMUM_CHECK_CONSTRAINT_IDENTIFIER_LENGTH:
+				return new Integer(getMaximumCheckConstraintIdentifierLength());
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__DEFERRABLE_CONSTRAINT_SUPPORTED:
+				setDeferrableConstraintSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__INFORMATIONAL_CONSTRAINT_SUPPORTED:
+				setInformationalConstraintSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__CLUSTERED_PRIMARY_KEY_SUPPORTED:
+				setClusteredPrimaryKeySupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__CLUSTERED_UNIQUE_CONSTRAINT_SUPPORTED:
+				setClusteredUniqueConstraintSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__PRIMARY_KEY_NULLABLE:
+				setPrimaryKeyNullable(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__UNIQUE_KEY_NULLABLE:
+				setUniqueKeyNullable(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__MAXIMUM_CHECK_EXPRESSION_LENGTH:
+				setMaximumCheckExpressionLength(((Integer)newValue).intValue());
+				return;
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__PARENT_UPDATE_DRI_RULE_TYPE:
+				getParentUpdateDRIRuleType().clear();
+				getParentUpdateDRIRuleType().addAll((Collection)newValue);
+				return;
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__PARENT_DELETE_DRI_RULE_TYPE:
+				getParentDeleteDRIRuleType().clear();
+				getParentDeleteDRIRuleType().addAll((Collection)newValue);
+				return;
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__CHECK_OPTION:
+				getCheckOption().clear();
+				getCheckOption().addAll((Collection)newValue);
+				return;
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__MAXIMUM_PRIMARY_KEY_IDENTIFIER_LENGTH:
+				setMaximumPrimaryKeyIdentifierLength(((Integer)newValue).intValue());
+				return;
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__MAXIMUM_FOREIGN_KEY_IDENTIFIER_LENGTH:
+				setMaximumForeignKeyIdentifierLength(((Integer)newValue).intValue());
+				return;
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__MAXIMUM_CHECK_CONSTRAINT_IDENTIFIER_LENGTH:
+				setMaximumCheckConstraintIdentifierLength(((Integer)newValue).intValue());
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__DEFERRABLE_CONSTRAINT_SUPPORTED:
+				setDeferrableConstraintSupported(DEFERRABLE_CONSTRAINT_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__INFORMATIONAL_CONSTRAINT_SUPPORTED:
+				setInformationalConstraintSupported(INFORMATIONAL_CONSTRAINT_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__CLUSTERED_PRIMARY_KEY_SUPPORTED:
+				setClusteredPrimaryKeySupported(CLUSTERED_PRIMARY_KEY_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__CLUSTERED_UNIQUE_CONSTRAINT_SUPPORTED:
+				setClusteredUniqueConstraintSupported(CLUSTERED_UNIQUE_CONSTRAINT_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__PRIMARY_KEY_NULLABLE:
+				setPrimaryKeyNullable(PRIMARY_KEY_NULLABLE_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__UNIQUE_KEY_NULLABLE:
+				setUniqueKeyNullable(UNIQUE_KEY_NULLABLE_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__MAXIMUM_CHECK_EXPRESSION_LENGTH:
+				setMaximumCheckExpressionLength(MAXIMUM_CHECK_EXPRESSION_LENGTH_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__PARENT_UPDATE_DRI_RULE_TYPE:
+				getParentUpdateDRIRuleType().clear();
+				return;
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__PARENT_DELETE_DRI_RULE_TYPE:
+				getParentDeleteDRIRuleType().clear();
+				return;
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__CHECK_OPTION:
+				getCheckOption().clear();
+				return;
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__MAXIMUM_PRIMARY_KEY_IDENTIFIER_LENGTH:
+				setMaximumPrimaryKeyIdentifierLength(MAXIMUM_PRIMARY_KEY_IDENTIFIER_LENGTH_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__MAXIMUM_FOREIGN_KEY_IDENTIFIER_LENGTH:
+				setMaximumForeignKeyIdentifierLength(MAXIMUM_FOREIGN_KEY_IDENTIFIER_LENGTH_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__MAXIMUM_CHECK_CONSTRAINT_IDENTIFIER_LENGTH:
+				setMaximumCheckConstraintIdentifierLength(MAXIMUM_CHECK_CONSTRAINT_IDENTIFIER_LENGTH_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__DEFERRABLE_CONSTRAINT_SUPPORTED:
+				return deferrableConstraintSupported != DEFERRABLE_CONSTRAINT_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__INFORMATIONAL_CONSTRAINT_SUPPORTED:
+				return informationalConstraintSupported != INFORMATIONAL_CONSTRAINT_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__CLUSTERED_PRIMARY_KEY_SUPPORTED:
+				return clusteredPrimaryKeySupported != CLUSTERED_PRIMARY_KEY_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__CLUSTERED_UNIQUE_CONSTRAINT_SUPPORTED:
+				return clusteredUniqueConstraintSupported != CLUSTERED_UNIQUE_CONSTRAINT_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__PRIMARY_KEY_NULLABLE:
+				return primaryKeyNullable != PRIMARY_KEY_NULLABLE_EDEFAULT;
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__UNIQUE_KEY_NULLABLE:
+				return uniqueKeyNullable != UNIQUE_KEY_NULLABLE_EDEFAULT;
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__MAXIMUM_CHECK_EXPRESSION_LENGTH:
+				return maximumCheckExpressionLength != MAXIMUM_CHECK_EXPRESSION_LENGTH_EDEFAULT;
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__PARENT_UPDATE_DRI_RULE_TYPE:
+				return parentUpdateDRIRuleType != null && !parentUpdateDRIRuleType.isEmpty();
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__PARENT_DELETE_DRI_RULE_TYPE:
+				return parentDeleteDRIRuleType != null && !parentDeleteDRIRuleType.isEmpty();
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__CHECK_OPTION:
+				return checkOption != null && !checkOption.isEmpty();
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__MAXIMUM_PRIMARY_KEY_IDENTIFIER_LENGTH:
+				return maximumPrimaryKeyIdentifierLength != MAXIMUM_PRIMARY_KEY_IDENTIFIER_LENGTH_EDEFAULT;
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__MAXIMUM_FOREIGN_KEY_IDENTIFIER_LENGTH:
+				return maximumForeignKeyIdentifierLength != MAXIMUM_FOREIGN_KEY_IDENTIFIER_LENGTH_EDEFAULT;
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION__MAXIMUM_CHECK_CONSTRAINT_IDENTIFIER_LENGTH:
+				return maximumCheckConstraintIdentifierLength != MAXIMUM_CHECK_CONSTRAINT_IDENTIFIER_LENGTH_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (deferrableConstraintSupported: "); //$NON-NLS-1$
+		result.append(deferrableConstraintSupported);
+		result.append(", informationalConstraintSupported: "); //$NON-NLS-1$
+		result.append(informationalConstraintSupported);
+		result.append(", clusteredPrimaryKeySupported: "); //$NON-NLS-1$
+		result.append(clusteredPrimaryKeySupported);
+		result.append(", clusteredUniqueConstraintSupported: "); //$NON-NLS-1$
+		result.append(clusteredUniqueConstraintSupported);
+		result.append(", primaryKeyNullable: "); //$NON-NLS-1$
+		result.append(primaryKeyNullable);
+		result.append(", uniqueKeyNullable: "); //$NON-NLS-1$
+		result.append(uniqueKeyNullable);
+		result.append(", maximumCheckExpressionLength: "); //$NON-NLS-1$
+		result.append(maximumCheckExpressionLength);
+		result.append(", parentUpdateDRIRuleType: "); //$NON-NLS-1$
+		result.append(parentUpdateDRIRuleType);
+		result.append(", parentDeleteDRIRuleType: "); //$NON-NLS-1$
+		result.append(parentDeleteDRIRuleType);
+		result.append(", checkOption: "); //$NON-NLS-1$
+		result.append(checkOption);
+		result.append(", maximumPrimaryKeyIdentifierLength: "); //$NON-NLS-1$
+		result.append(maximumPrimaryKeyIdentifierLength);
+		result.append(", maximumForeignKeyIdentifierLength: "); //$NON-NLS-1$
+		result.append(maximumForeignKeyIdentifierLength);
+		result.append(", maximumCheckConstraintIdentifierLength: "); //$NON-NLS-1$
+		result.append(maximumCheckConstraintIdentifierLength);
+		result.append(')');
+		return result.toString();
+	}
+
+} //ConstraintDefinitionImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/ConstructedDataTypeDefinitionImpl.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/ConstructedDataTypeDefinitionImpl.java
new file mode 100644
index 0000000..c554bdf
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/ConstructedDataTypeDefinitionImpl.java
@@ -0,0 +1,377 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.modelbase.dbdefinition.impl;
+
+import org.eclipse.datatools.modelbase.dbdefinition.ConstructedDataTypeDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Constructed Data Type Definition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.ConstructedDataTypeDefinitionImpl#isArrayDatatypeSupported <em>Array Datatype Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.ConstructedDataTypeDefinitionImpl#isMultisetDatatypeSupported <em>Multiset Datatype Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.ConstructedDataTypeDefinitionImpl#isRowDatatypeSupported <em>Row Datatype Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.ConstructedDataTypeDefinitionImpl#isReferenceDatatypeSupported <em>Reference Datatype Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.ConstructedDataTypeDefinitionImpl#isCursorDatatypeSupported <em>Cursor Datatype Supported</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ConstructedDataTypeDefinitionImpl extends EObjectImpl implements ConstructedDataTypeDefinition {
+	/**
+	 * The default value of the '{@link #isArrayDatatypeSupported() <em>Array Datatype Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isArrayDatatypeSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean ARRAY_DATATYPE_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isArrayDatatypeSupported() <em>Array Datatype Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isArrayDatatypeSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean arrayDatatypeSupported = ARRAY_DATATYPE_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isMultisetDatatypeSupported() <em>Multiset Datatype Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isMultisetDatatypeSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean MULTISET_DATATYPE_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isMultisetDatatypeSupported() <em>Multiset Datatype Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isMultisetDatatypeSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean multisetDatatypeSupported = MULTISET_DATATYPE_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isRowDatatypeSupported() <em>Row Datatype Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isRowDatatypeSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean ROW_DATATYPE_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isRowDatatypeSupported() <em>Row Datatype Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isRowDatatypeSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean rowDatatypeSupported = ROW_DATATYPE_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isReferenceDatatypeSupported() <em>Reference Datatype Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isReferenceDatatypeSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean REFERENCE_DATATYPE_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isReferenceDatatypeSupported() <em>Reference Datatype Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isReferenceDatatypeSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean referenceDatatypeSupported = REFERENCE_DATATYPE_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isCursorDatatypeSupported() <em>Cursor Datatype Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isCursorDatatypeSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean CURSOR_DATATYPE_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isCursorDatatypeSupported() <em>Cursor Datatype Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isCursorDatatypeSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean cursorDatatypeSupported = CURSOR_DATATYPE_SUPPORTED_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ConstructedDataTypeDefinitionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return DatabaseDefinitionPackage.Literals.CONSTRUCTED_DATA_TYPE_DEFINITION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isArrayDatatypeSupported() {
+		return arrayDatatypeSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setArrayDatatypeSupported(boolean newArrayDatatypeSupported) {
+		boolean oldArrayDatatypeSupported = arrayDatatypeSupported;
+		arrayDatatypeSupported = newArrayDatatypeSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.CONSTRUCTED_DATA_TYPE_DEFINITION__ARRAY_DATATYPE_SUPPORTED, oldArrayDatatypeSupported, arrayDatatypeSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isMultisetDatatypeSupported() {
+		return multisetDatatypeSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMultisetDatatypeSupported(boolean newMultisetDatatypeSupported) {
+		boolean oldMultisetDatatypeSupported = multisetDatatypeSupported;
+		multisetDatatypeSupported = newMultisetDatatypeSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.CONSTRUCTED_DATA_TYPE_DEFINITION__MULTISET_DATATYPE_SUPPORTED, oldMultisetDatatypeSupported, multisetDatatypeSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isRowDatatypeSupported() {
+		return rowDatatypeSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setRowDatatypeSupported(boolean newRowDatatypeSupported) {
+		boolean oldRowDatatypeSupported = rowDatatypeSupported;
+		rowDatatypeSupported = newRowDatatypeSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.CONSTRUCTED_DATA_TYPE_DEFINITION__ROW_DATATYPE_SUPPORTED, oldRowDatatypeSupported, rowDatatypeSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isReferenceDatatypeSupported() {
+		return referenceDatatypeSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setReferenceDatatypeSupported(boolean newReferenceDatatypeSupported) {
+		boolean oldReferenceDatatypeSupported = referenceDatatypeSupported;
+		referenceDatatypeSupported = newReferenceDatatypeSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.CONSTRUCTED_DATA_TYPE_DEFINITION__REFERENCE_DATATYPE_SUPPORTED, oldReferenceDatatypeSupported, referenceDatatypeSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isCursorDatatypeSupported() {
+		return cursorDatatypeSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCursorDatatypeSupported(boolean newCursorDatatypeSupported) {
+		boolean oldCursorDatatypeSupported = cursorDatatypeSupported;
+		cursorDatatypeSupported = newCursorDatatypeSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.CONSTRUCTED_DATA_TYPE_DEFINITION__CURSOR_DATATYPE_SUPPORTED, oldCursorDatatypeSupported, cursorDatatypeSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.CONSTRUCTED_DATA_TYPE_DEFINITION__ARRAY_DATATYPE_SUPPORTED:
+				return isArrayDatatypeSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.CONSTRUCTED_DATA_TYPE_DEFINITION__MULTISET_DATATYPE_SUPPORTED:
+				return isMultisetDatatypeSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.CONSTRUCTED_DATA_TYPE_DEFINITION__ROW_DATATYPE_SUPPORTED:
+				return isRowDatatypeSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.CONSTRUCTED_DATA_TYPE_DEFINITION__REFERENCE_DATATYPE_SUPPORTED:
+				return isReferenceDatatypeSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.CONSTRUCTED_DATA_TYPE_DEFINITION__CURSOR_DATATYPE_SUPPORTED:
+				return isCursorDatatypeSupported() ? Boolean.TRUE : Boolean.FALSE;
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.CONSTRUCTED_DATA_TYPE_DEFINITION__ARRAY_DATATYPE_SUPPORTED:
+				setArrayDatatypeSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.CONSTRUCTED_DATA_TYPE_DEFINITION__MULTISET_DATATYPE_SUPPORTED:
+				setMultisetDatatypeSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.CONSTRUCTED_DATA_TYPE_DEFINITION__ROW_DATATYPE_SUPPORTED:
+				setRowDatatypeSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.CONSTRUCTED_DATA_TYPE_DEFINITION__REFERENCE_DATATYPE_SUPPORTED:
+				setReferenceDatatypeSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.CONSTRUCTED_DATA_TYPE_DEFINITION__CURSOR_DATATYPE_SUPPORTED:
+				setCursorDatatypeSupported(((Boolean)newValue).booleanValue());
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.CONSTRUCTED_DATA_TYPE_DEFINITION__ARRAY_DATATYPE_SUPPORTED:
+				setArrayDatatypeSupported(ARRAY_DATATYPE_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.CONSTRUCTED_DATA_TYPE_DEFINITION__MULTISET_DATATYPE_SUPPORTED:
+				setMultisetDatatypeSupported(MULTISET_DATATYPE_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.CONSTRUCTED_DATA_TYPE_DEFINITION__ROW_DATATYPE_SUPPORTED:
+				setRowDatatypeSupported(ROW_DATATYPE_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.CONSTRUCTED_DATA_TYPE_DEFINITION__REFERENCE_DATATYPE_SUPPORTED:
+				setReferenceDatatypeSupported(REFERENCE_DATATYPE_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.CONSTRUCTED_DATA_TYPE_DEFINITION__CURSOR_DATATYPE_SUPPORTED:
+				setCursorDatatypeSupported(CURSOR_DATATYPE_SUPPORTED_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.CONSTRUCTED_DATA_TYPE_DEFINITION__ARRAY_DATATYPE_SUPPORTED:
+				return arrayDatatypeSupported != ARRAY_DATATYPE_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.CONSTRUCTED_DATA_TYPE_DEFINITION__MULTISET_DATATYPE_SUPPORTED:
+				return multisetDatatypeSupported != MULTISET_DATATYPE_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.CONSTRUCTED_DATA_TYPE_DEFINITION__ROW_DATATYPE_SUPPORTED:
+				return rowDatatypeSupported != ROW_DATATYPE_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.CONSTRUCTED_DATA_TYPE_DEFINITION__REFERENCE_DATATYPE_SUPPORTED:
+				return referenceDatatypeSupported != REFERENCE_DATATYPE_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.CONSTRUCTED_DATA_TYPE_DEFINITION__CURSOR_DATATYPE_SUPPORTED:
+				return cursorDatatypeSupported != CURSOR_DATATYPE_SUPPORTED_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (arrayDatatypeSupported: "); //$NON-NLS-1$
+		result.append(arrayDatatypeSupported);
+		result.append(", multisetDatatypeSupported: "); //$NON-NLS-1$
+		result.append(multisetDatatypeSupported);
+		result.append(", rowDatatypeSupported: "); //$NON-NLS-1$
+		result.append(rowDatatypeSupported);
+		result.append(", referenceDatatypeSupported: "); //$NON-NLS-1$
+		result.append(referenceDatatypeSupported);
+		result.append(", cursorDatatypeSupported: "); //$NON-NLS-1$
+		result.append(cursorDatatypeSupported);
+		result.append(')');
+		return result.toString();
+	}
+
+} //ConstructedDataTypeDefinitionImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/DatabaseDefinitionFactoryImpl.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/DatabaseDefinitionFactoryImpl.java
new file mode 100644
index 0000000..10c778e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/DatabaseDefinitionFactoryImpl.java
@@ -0,0 +1,574 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.dbdefinition.impl;
+
+import org.eclipse.datatools.modelbase.dbdefinition.*;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class DatabaseDefinitionFactoryImpl extends EFactoryImpl implements DatabaseDefinitionFactory {
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static DatabaseDefinitionFactory init() {
+		try {
+			DatabaseDefinitionFactory theDatabaseDefinitionFactory = (DatabaseDefinitionFactory)EPackage.Registry.INSTANCE.getEFactory("http:///org/eclipse/datatools/modelbase/dbdefinition/dbdefinition.ecore"); //$NON-NLS-1$ 
+			if (theDatabaseDefinitionFactory != null) {
+				return theDatabaseDefinitionFactory;
+			}
+		}
+		catch (Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new DatabaseDefinitionFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DatabaseDefinitionFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION: return createDatabaseVendorDefinition();
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION: return createPredefinedDataTypeDefinition();
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION: return createTableSpaceDefinition();
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION: return createStoredProcedureDefinition();
+			case DatabaseDefinitionPackage.TRIGGER_DEFINITION: return createTriggerDefinition();
+			case DatabaseDefinitionPackage.COLUMN_DEFINITION: return createColumnDefinition();
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION: return createConstraintDefinition();
+			case DatabaseDefinitionPackage.INDEX_DEFINITION: return createIndexDefinition();
+			case DatabaseDefinitionPackage.EXTENDED_DEFINITION: return createExtendedDefinition();
+			case DatabaseDefinitionPackage.TABLE_DEFINITION: return createTableDefinition();
+			case DatabaseDefinitionPackage.SEQUENCE_DEFINITION: return createSequenceDefinition();
+			case DatabaseDefinitionPackage.USER_DEFINED_TYPE_DEFINITION: return createUserDefinedTypeDefinition();
+			case DatabaseDefinitionPackage.QUERY_DEFINITION: return createQueryDefinition();
+			case DatabaseDefinitionPackage.SQL_SYNTAX_DEFINITION: return createSQLSyntaxDefinition();
+			case DatabaseDefinitionPackage.NICKNAME_DEFINITION: return createNicknameDefinition();
+			case DatabaseDefinitionPackage.SCHEMA_DEFINITION: return createSchemaDefinition();
+			case DatabaseDefinitionPackage.VIEW_DEFINITION: return createViewDefinition();
+			case DatabaseDefinitionPackage.FIELD_QUALIFIER_DEFINITION: return createFieldQualifierDefinition();
+			case DatabaseDefinitionPackage.DEBUGGER_DEFINITION: return createDebuggerDefinition();
+			case DatabaseDefinitionPackage.PRIVILEGED_ELEMENT_DEFINITION: return createPrivilegedElementDefinition();
+			case DatabaseDefinitionPackage.PRIVILEGE_DEFINITION: return createPrivilegeDefinition();
+			case DatabaseDefinitionPackage.CONSTRUCTED_DATA_TYPE_DEFINITION: return createConstructedDataTypeDefinition();
+			default:
+				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object createFromString(EDataType eDataType, String initialValue) {
+		switch (eDataType.getClassifierID()) {
+			case DatabaseDefinitionPackage.CHECK_OPTION:
+				return createCheckOptionFromString(eDataType, initialValue);
+			case DatabaseDefinitionPackage.LANGUAGE_TYPE:
+				return createLanguageTypeFromString(eDataType, initialValue);
+			case DatabaseDefinitionPackage.PARAMETER_STYLE:
+				return createParameterStyleFromString(eDataType, initialValue);
+			case DatabaseDefinitionPackage.PARENT_DELETE_DRI_RULE_TYPE:
+				return createParentDeleteDRIRuleTypeFromString(eDataType, initialValue);
+			case DatabaseDefinitionPackage.PARENT_UPDATE_DRI_RULE_TYPE:
+				return createParentUpdateDRIRuleTypeFromString(eDataType, initialValue);
+			case DatabaseDefinitionPackage.PROCEDURE_TYPE:
+				return createProcedureTypeFromString(eDataType, initialValue);
+			case DatabaseDefinitionPackage.TABLE_SPACE_TYPE:
+				return createTableSpaceTypeFromString(eDataType, initialValue);
+			case DatabaseDefinitionPackage.PERCENT_FREE_TERMINOLOGY:
+				return createPercentFreeTerminologyFromString(eDataType, initialValue);
+			case DatabaseDefinitionPackage.LENGTH_UNIT:
+				return createLengthUnitFromString(eDataType, initialValue);
+			default:
+				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertToString(EDataType eDataType, Object instanceValue) {
+		switch (eDataType.getClassifierID()) {
+			case DatabaseDefinitionPackage.CHECK_OPTION:
+				return convertCheckOptionToString(eDataType, instanceValue);
+			case DatabaseDefinitionPackage.LANGUAGE_TYPE:
+				return convertLanguageTypeToString(eDataType, instanceValue);
+			case DatabaseDefinitionPackage.PARAMETER_STYLE:
+				return convertParameterStyleToString(eDataType, instanceValue);
+			case DatabaseDefinitionPackage.PARENT_DELETE_DRI_RULE_TYPE:
+				return convertParentDeleteDRIRuleTypeToString(eDataType, instanceValue);
+			case DatabaseDefinitionPackage.PARENT_UPDATE_DRI_RULE_TYPE:
+				return convertParentUpdateDRIRuleTypeToString(eDataType, instanceValue);
+			case DatabaseDefinitionPackage.PROCEDURE_TYPE:
+				return convertProcedureTypeToString(eDataType, instanceValue);
+			case DatabaseDefinitionPackage.TABLE_SPACE_TYPE:
+				return convertTableSpaceTypeToString(eDataType, instanceValue);
+			case DatabaseDefinitionPackage.PERCENT_FREE_TERMINOLOGY:
+				return convertPercentFreeTerminologyToString(eDataType, instanceValue);
+			case DatabaseDefinitionPackage.LENGTH_UNIT:
+				return convertLengthUnitToString(eDataType, instanceValue);
+			default:
+				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DatabaseVendorDefinition createDatabaseVendorDefinition() {
+		DatabaseVendorDefinitionImpl databaseVendorDefinition = new DatabaseVendorDefinitionImpl();
+		return databaseVendorDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PredefinedDataTypeDefinition createPredefinedDataTypeDefinition() {
+		PredefinedDataTypeDefinitionImpl predefinedDataTypeDefinition = new PredefinedDataTypeDefinitionImpl();
+		return predefinedDataTypeDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TableSpaceDefinition createTableSpaceDefinition() {
+		TableSpaceDefinitionImpl tableSpaceDefinition = new TableSpaceDefinitionImpl();
+		return tableSpaceDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public StoredProcedureDefinition createStoredProcedureDefinition() {
+		StoredProcedureDefinitionImpl storedProcedureDefinition = new StoredProcedureDefinitionImpl();
+		return storedProcedureDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TriggerDefinition createTriggerDefinition() {
+		TriggerDefinitionImpl triggerDefinition = new TriggerDefinitionImpl();
+		return triggerDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ColumnDefinition createColumnDefinition() {
+		ColumnDefinitionImpl columnDefinition = new ColumnDefinitionImpl();
+		return columnDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ConstraintDefinition createConstraintDefinition() {
+		ConstraintDefinitionImpl constraintDefinition = new ConstraintDefinitionImpl();
+		return constraintDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IndexDefinition createIndexDefinition() {
+		IndexDefinitionImpl indexDefinition = new IndexDefinitionImpl();
+		return indexDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ExtendedDefinition createExtendedDefinition() {
+		ExtendedDefinitionImpl extendedDefinition = new ExtendedDefinitionImpl();
+		return extendedDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TableDefinition createTableDefinition() {
+		TableDefinitionImpl tableDefinition = new TableDefinitionImpl();
+		return tableDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SequenceDefinition createSequenceDefinition() {
+		SequenceDefinitionImpl sequenceDefinition = new SequenceDefinitionImpl();
+		return sequenceDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UserDefinedTypeDefinition createUserDefinedTypeDefinition() {
+		UserDefinedTypeDefinitionImpl userDefinedTypeDefinition = new UserDefinedTypeDefinitionImpl();
+		return userDefinedTypeDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public QueryDefinition createQueryDefinition() {
+		QueryDefinitionImpl queryDefinition = new QueryDefinitionImpl();
+		return queryDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLSyntaxDefinition createSQLSyntaxDefinition() {
+		SQLSyntaxDefinitionImpl sqlSyntaxDefinition = new SQLSyntaxDefinitionImpl();
+		return sqlSyntaxDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NicknameDefinition createNicknameDefinition() {
+		NicknameDefinitionImpl nicknameDefinition = new NicknameDefinitionImpl();
+		return nicknameDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SchemaDefinition createSchemaDefinition() {
+		SchemaDefinitionImpl schemaDefinition = new SchemaDefinitionImpl();
+		return schemaDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ViewDefinition createViewDefinition() {
+		ViewDefinitionImpl viewDefinition = new ViewDefinitionImpl();
+		return viewDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public FieldQualifierDefinition createFieldQualifierDefinition() {
+		FieldQualifierDefinitionImpl fieldQualifierDefinition = new FieldQualifierDefinitionImpl();
+		return fieldQualifierDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DebuggerDefinition createDebuggerDefinition() {
+		DebuggerDefinitionImpl debuggerDefinition = new DebuggerDefinitionImpl();
+		return debuggerDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PrivilegedElementDefinition createPrivilegedElementDefinition() {
+		PrivilegedElementDefinitionImpl privilegedElementDefinition = new PrivilegedElementDefinitionImpl();
+		return privilegedElementDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PrivilegeDefinition createPrivilegeDefinition() {
+		PrivilegeDefinitionImpl privilegeDefinition = new PrivilegeDefinitionImpl();
+		return privilegeDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ConstructedDataTypeDefinition createConstructedDataTypeDefinition() {
+		ConstructedDataTypeDefinitionImpl constructedDataTypeDefinition = new ConstructedDataTypeDefinitionImpl();
+		return constructedDataTypeDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public CheckOption createCheckOptionFromString(EDataType eDataType, String initialValue) {
+		CheckOption result = CheckOption.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertCheckOptionToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public LanguageType createLanguageTypeFromString(EDataType eDataType, String initialValue) {
+		LanguageType result = LanguageType.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertLanguageTypeToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ParameterStyle createParameterStyleFromString(EDataType eDataType, String initialValue) {
+		ParameterStyle result = ParameterStyle.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertParameterStyleToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ParentDeleteDRIRuleType createParentDeleteDRIRuleTypeFromString(EDataType eDataType, String initialValue) {
+		ParentDeleteDRIRuleType result = ParentDeleteDRIRuleType.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertParentDeleteDRIRuleTypeToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ParentUpdateDRIRuleType createParentUpdateDRIRuleTypeFromString(EDataType eDataType, String initialValue) {
+		ParentUpdateDRIRuleType result = ParentUpdateDRIRuleType.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertParentUpdateDRIRuleTypeToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ProcedureType createProcedureTypeFromString(EDataType eDataType, String initialValue) {
+		ProcedureType result = ProcedureType.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertProcedureTypeToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TableSpaceType createTableSpaceTypeFromString(EDataType eDataType, String initialValue) {
+		TableSpaceType result = TableSpaceType.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertTableSpaceTypeToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PercentFreeTerminology createPercentFreeTerminologyFromString(EDataType eDataType, String initialValue) {
+		PercentFreeTerminology result = PercentFreeTerminology.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertPercentFreeTerminologyToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public LengthUnit createLengthUnitFromString(EDataType eDataType, String initialValue) {
+		LengthUnit result = LengthUnit.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertLengthUnitToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DatabaseDefinitionPackage getDatabaseDefinitionPackage() {
+		return (DatabaseDefinitionPackage)getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @deprecated
+	 * @generated
+	 */
+	public static DatabaseDefinitionPackage getPackage() {
+		return DatabaseDefinitionPackage.eINSTANCE;
+	}
+
+} //DatabaseDefinitionFactoryImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/DatabaseDefinitionPackageImpl.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/DatabaseDefinitionPackageImpl.java
new file mode 100644
index 0000000..a17e80b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/DatabaseDefinitionPackageImpl.java
@@ -0,0 +1,3380 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.dbdefinition.impl;
+
+import org.eclipse.datatools.modelbase.dbdefinition.CheckOption;
+import org.eclipse.datatools.modelbase.dbdefinition.ColumnDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.ConstructedDataTypeDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionFactory;
+import org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage;
+import org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.DebuggerDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.DefaultValueType;
+import org.eclipse.datatools.modelbase.dbdefinition.ExtendedDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.FieldQualifierDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.IndexDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.LanguageType;
+import org.eclipse.datatools.modelbase.dbdefinition.LengthUnit;
+import org.eclipse.datatools.modelbase.dbdefinition.NicknameDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.ParameterStyle;
+import org.eclipse.datatools.modelbase.dbdefinition.ParentDeleteDRIRuleType;
+import org.eclipse.datatools.modelbase.dbdefinition.ParentUpdateDRIRuleType;
+import org.eclipse.datatools.modelbase.dbdefinition.PercentFreeTerminology;
+import org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.PrivilegeDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.PrivilegedElementDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.ProcedureType;
+import org.eclipse.datatools.modelbase.dbdefinition.QueryDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.SQLSyntaxDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.SchemaDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.SequenceDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.TableDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.TableSpaceType;
+import org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.UserDefinedTypeDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.ViewDefinition;
+
+import org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage;
+
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;
+
+import org.eclipse.datatools.modelbase.sql.accesscontrol.impl.SQLAccessControlPackageImpl;
+import org.eclipse.datatools.modelbase.sql.constraints.impl.SQLConstraintsPackageImpl;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsPackage;
+
+import org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+
+import org.eclipse.datatools.modelbase.sql.statements.SQLStatementsPackage;
+
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl;
+import org.eclipse.datatools.modelbase.sql.expressions.impl.SQLExpressionsPackageImpl;
+import org.eclipse.datatools.modelbase.sql.routines.impl.SQLRoutinesPackageImpl;
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLSchemaPackageImpl;
+import org.eclipse.datatools.modelbase.sql.statements.impl.SQLStatementsPackageImpl;
+import org.eclipse.datatools.modelbase.sql.tables.impl.SQLTablesPackageImpl;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcorePackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.emf.ecore.impl.EcorePackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class DatabaseDefinitionPackageImpl extends EPackageImpl implements DatabaseDefinitionPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass databaseVendorDefinitionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass predefinedDataTypeDefinitionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass tableSpaceDefinitionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass storedProcedureDefinitionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass triggerDefinitionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass columnDefinitionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass constraintDefinitionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass indexDefinitionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass extendedDefinitionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass tableDefinitionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass sequenceDefinitionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass userDefinedTypeDefinitionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass queryDefinitionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass sqlSyntaxDefinitionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass nicknameDefinitionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass schemaDefinitionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass viewDefinitionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass fieldQualifierDefinitionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass debuggerDefinitionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass privilegedElementDefinitionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass privilegeDefinitionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass constructedDataTypeDefinitionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum checkOptionEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum languageTypeEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum parameterStyleEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum parentDeleteDRIRuleTypeEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum parentUpdateDRIRuleTypeEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum procedureTypeEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum tableSpaceTypeEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum percentFreeTerminologyEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum lengthUnitEEnum = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with
+	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+	 * package URI value.
+	 * <p>Note: the correct way to create the package is via the static
+	 * factory method {@link #init init()}, which also performs
+	 * initialization of the package, or returns the registered package,
+	 * if one already exists.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private DatabaseDefinitionPackageImpl() {
+		super(eNS_URI, DatabaseDefinitionFactory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this
+	 * model, and for any others upon which it depends.  Simple
+	 * dependencies are satisfied by calling this method on all
+	 * dependent packages before doing anything else.  This method drives
+	 * initialization for interdependent packages directly, in parallel
+	 * with this package, itself.
+	 * <p>Of this package and its interdependencies, all packages which
+	 * have not yet been registered by their URI values are first created
+	 * and registered.  The packages are then initialized in two steps:
+	 * meta-model objects for all of the packages are created before any
+	 * are initialized, since one package's meta-model objects may refer to
+	 * those of another.
+	 * <p>Invocation of this method will not affect any packages that have
+	 * already been initialized.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static DatabaseDefinitionPackage init() {
+		if (isInited) return (DatabaseDefinitionPackage)EPackage.Registry.INSTANCE.getEPackage(DatabaseDefinitionPackage.eNS_URI);
+
+		// Obtain or create and register package
+		DatabaseDefinitionPackageImpl theDatabaseDefinitionPackage = (DatabaseDefinitionPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(eNS_URI) instanceof DatabaseDefinitionPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(eNS_URI) : new DatabaseDefinitionPackageImpl());
+
+		isInited = true;
+
+		// Initialize simple dependencies
+		SQLSchemaPackage.eINSTANCE.eClass();
+		SQLConstraintsPackage.eINSTANCE.eClass();
+		SQLDataTypesPackage.eINSTANCE.eClass();
+		SQLExpressionsPackage.eINSTANCE.eClass();
+		SQLRoutinesPackage.eINSTANCE.eClass();
+		SQLStatementsPackage.eINSTANCE.eClass();
+		SQLTablesPackage.eINSTANCE.eClass();
+		SQLAccessControlPackage.eINSTANCE.eClass();
+
+		// Create package meta-data objects
+		theDatabaseDefinitionPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theDatabaseDefinitionPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theDatabaseDefinitionPackage.freeze();
+
+		return theDatabaseDefinitionPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getDatabaseVendorDefinition() {
+		return databaseVendorDefinitionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDatabaseVendorDefinition_Vendor() {
+		return (EAttribute)databaseVendorDefinitionEClass.getEStructuralFeatures().get(19);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDatabaseVendorDefinition_Version() {
+		return (EAttribute)databaseVendorDefinitionEClass.getEStructuralFeatures().get(20);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDatabaseVendorDefinition_ConstraintsSupported() {
+		return (EAttribute)databaseVendorDefinitionEClass.getEStructuralFeatures().get(21);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDatabaseVendorDefinition_MaximumIdentifierLength() {
+		return (EAttribute)databaseVendorDefinitionEClass.getEStructuralFeatures().get(22);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDatabaseVendorDefinition_TriggerSupported() {
+		return (EAttribute)databaseVendorDefinitionEClass.getEStructuralFeatures().get(23);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDatabaseVendorDefinition_SnapshotViewSupported() {
+		return (EAttribute)databaseVendorDefinitionEClass.getEStructuralFeatures().get(24);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDatabaseVendorDefinition_JoinSupported() {
+		return (EAttribute)databaseVendorDefinitionEClass.getEStructuralFeatures().get(25);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDatabaseVendorDefinition_ViewTriggerSupported() {
+		return (EAttribute)databaseVendorDefinitionEClass.getEStructuralFeatures().get(26);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDatabaseVendorDefinition_TablespacesSupported() {
+		return (EAttribute)databaseVendorDefinitionEClass.getEStructuralFeatures().get(27);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDatabaseVendorDefinition_MaximumCommentLength() {
+		return (EAttribute)databaseVendorDefinitionEClass.getEStructuralFeatures().get(28);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDatabaseVendorDefinition_SequenceSupported() {
+		return (EAttribute)databaseVendorDefinitionEClass.getEStructuralFeatures().get(29);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDatabaseVendorDefinition_MQTSupported() {
+		return (EAttribute)databaseVendorDefinitionEClass.getEStructuralFeatures().get(30);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDatabaseVendorDefinition_SchemaSupported() {
+		return (EAttribute)databaseVendorDefinitionEClass.getEStructuralFeatures().get(31);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDatabaseVendorDefinition_AliasSupported() {
+		return (EAttribute)databaseVendorDefinitionEClass.getEStructuralFeatures().get(32);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDatabaseVendorDefinition_SynonymSupported() {
+		return (EAttribute)databaseVendorDefinitionEClass.getEStructuralFeatures().get(33);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDatabaseVendorDefinition_UserDefinedTypeSupported() {
+		return (EAttribute)databaseVendorDefinitionEClass.getEStructuralFeatures().get(34);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDatabaseVendorDefinition_DomainSupported() {
+		return (EAttribute)databaseVendorDefinitionEClass.getEStructuralFeatures().get(35);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDatabaseVendorDefinition_SQLStatementSupported() {
+		return (EAttribute)databaseVendorDefinitionEClass.getEStructuralFeatures().get(36);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDatabaseVendorDefinition_NicknameSupported() {
+		return (EAttribute)databaseVendorDefinitionEClass.getEStructuralFeatures().get(37);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDatabaseVendorDefinition_QuotedDMLSupported() {
+		return (EAttribute)databaseVendorDefinitionEClass.getEStructuralFeatures().get(38);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDatabaseVendorDefinition_QuotedDDLSupported() {
+		return (EAttribute)databaseVendorDefinitionEClass.getEStructuralFeatures().get(39);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDatabaseVendorDefinition_XmlSupported() {
+		return (EAttribute)databaseVendorDefinitionEClass.getEStructuralFeatures().get(40);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDatabaseVendorDefinition_MQTIndexSupported() {
+		return (EAttribute)databaseVendorDefinitionEClass.getEStructuralFeatures().get(41);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDatabaseVendorDefinition_EventSupported() {
+		return (EAttribute)databaseVendorDefinitionEClass.getEStructuralFeatures().get(42);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDatabaseVendorDefinition_SqlUDFSupported() {
+		return (EAttribute)databaseVendorDefinitionEClass.getEStructuralFeatures().get(43);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDatabaseVendorDefinition_StoredProcedureSupported() {
+		return (EAttribute)databaseVendorDefinitionEClass.getEStructuralFeatures().get(44);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDatabaseVendorDefinition_PackageSupported() {
+		return (EAttribute)databaseVendorDefinitionEClass.getEStructuralFeatures().get(45);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDatabaseVendorDefinition_AuthorizationIdentifierSupported() {
+		return (EAttribute)databaseVendorDefinitionEClass.getEStructuralFeatures().get(46);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDatabaseVendorDefinition_RoleSupported() {
+		return (EAttribute)databaseVendorDefinitionEClass.getEStructuralFeatures().get(47);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDatabaseVendorDefinition_GroupSupported() {
+		return (EAttribute)databaseVendorDefinitionEClass.getEStructuralFeatures().get(48);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDatabaseVendorDefinition_UserSupported() {
+		return (EAttribute)databaseVendorDefinitionEClass.getEStructuralFeatures().get(49);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDatabaseVendorDefinition_RoleAuthorizationSupported() {
+		return (EAttribute)databaseVendorDefinitionEClass.getEStructuralFeatures().get(50);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDatabaseVendorDefinition_ConstructedDataTypeSupported() {
+		return (EAttribute)databaseVendorDefinitionEClass.getEStructuralFeatures().get(51);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDatabaseVendorDefinition_UDFSupported() {
+		return (EAttribute)databaseVendorDefinitionEClass.getEStructuralFeatures().get(52);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDatabaseVendorDefinition_PredefinedDataTypeDefinitions() {
+		return (EReference)databaseVendorDefinitionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDatabaseVendorDefinition_TableSpaceDefinition() {
+		return (EReference)databaseVendorDefinitionEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDatabaseVendorDefinition_StoredProcedureDefinition() {
+		return (EReference)databaseVendorDefinitionEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDatabaseVendorDefinition_TriggerDefinition() {
+		return (EReference)databaseVendorDefinitionEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDatabaseVendorDefinition_ColumnDefinition() {
+		return (EReference)databaseVendorDefinitionEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDatabaseVendorDefinition_ConstraintDefinition() {
+		return (EReference)databaseVendorDefinitionEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDatabaseVendorDefinition_ExtendedDefinitions() {
+		return (EReference)databaseVendorDefinitionEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDatabaseVendorDefinition_IndexDefinition() {
+		return (EReference)databaseVendorDefinitionEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDatabaseVendorDefinition_TableDefinition() {
+		return (EReference)databaseVendorDefinitionEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDatabaseVendorDefinition_SequenceDefinition() {
+		return (EReference)databaseVendorDefinitionEClass.getEStructuralFeatures().get(9);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDatabaseVendorDefinition_UdtDefinition() {
+		return (EReference)databaseVendorDefinitionEClass.getEStructuralFeatures().get(10);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDatabaseVendorDefinition_QueryDefinition() {
+		return (EReference)databaseVendorDefinitionEClass.getEStructuralFeatures().get(11);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDatabaseVendorDefinition_SQLSyntaxDefinition() {
+		return (EReference)databaseVendorDefinitionEClass.getEStructuralFeatures().get(12);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDatabaseVendorDefinition_NicknameDefinition() {
+		return (EReference)databaseVendorDefinitionEClass.getEStructuralFeatures().get(13);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDatabaseVendorDefinition_SchemaDefinition() {
+		return (EReference)databaseVendorDefinitionEClass.getEStructuralFeatures().get(14);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDatabaseVendorDefinition_ViewDefinition() {
+		return (EReference)databaseVendorDefinitionEClass.getEStructuralFeatures().get(15);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDatabaseVendorDefinition_DebuggerDefinition() {
+		return (EReference)databaseVendorDefinitionEClass.getEStructuralFeatures().get(16);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDatabaseVendorDefinition_PrivilegedElementDefinitions() {
+		return (EReference)databaseVendorDefinitionEClass.getEStructuralFeatures().get(17);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDatabaseVendorDefinition_ConstructedDataTypeDefinition() {
+		return (EReference)databaseVendorDefinitionEClass.getEStructuralFeatures().get(18);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getPredefinedDataTypeDefinition() {
+		return predefinedDataTypeDefinitionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getPredefinedDataTypeDefinition_LeadingFieldQualifierDefinition() {
+		return (EReference)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getPredefinedDataTypeDefinition_TrailingFieldQualifierDefinition() {
+		return (EReference)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getPredefinedDataTypeDefinition_DefaultTrailingFieldQualifierDefinition() {
+		return (EReference)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getPredefinedDataTypeDefinition_DefaultLeadingFieldQualifierDefinition() {
+		return (EReference)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPredefinedDataTypeDefinition_LengthSupported() {
+		return (EAttribute)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPredefinedDataTypeDefinition_ScaleSupported() {
+		return (EAttribute)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPredefinedDataTypeDefinition_PrecisionSupported() {
+		return (EAttribute)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPredefinedDataTypeDefinition_KeyConstraintSupported() {
+		return (EAttribute)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPredefinedDataTypeDefinition_IdentitySupported() {
+		return (EAttribute)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPredefinedDataTypeDefinition_MultipleColumnsSupported() {
+		return (EAttribute)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(9);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPredefinedDataTypeDefinition_NullableSupported() {
+		return (EAttribute)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(10);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPredefinedDataTypeDefinition_DefaultSupported() {
+		return (EAttribute)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(11);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPredefinedDataTypeDefinition_ClusteringSupported() {
+		return (EAttribute)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(12);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPredefinedDataTypeDefinition_FillFactorSupported() {
+		return (EAttribute)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(13);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPredefinedDataTypeDefinition_BitDataSupported() {
+		return (EAttribute)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(14);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPredefinedDataTypeDefinition_MaximumValue() {
+		return (EAttribute)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(15);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPredefinedDataTypeDefinition_MinimumValue() {
+		return (EAttribute)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(16);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPredefinedDataTypeDefinition_MaximumLength() {
+		return (EAttribute)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(17);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPredefinedDataTypeDefinition_MaximumPrecision() {
+		return (EAttribute)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(18);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPredefinedDataTypeDefinition_MaximumScale() {
+		return (EAttribute)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(19);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPredefinedDataTypeDefinition_MinimumScale() {
+		return (EAttribute)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(20);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPredefinedDataTypeDefinition_DefaultValueTypes() {
+		return (EAttribute)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(21);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPredefinedDataTypeDefinition_PrimitiveType() {
+		return (EAttribute)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(22);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPredefinedDataTypeDefinition_Name() {
+		return (EAttribute)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(23);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPredefinedDataTypeDefinition_JdbcEnumType() {
+		return (EAttribute)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(24);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPredefinedDataTypeDefinition_CharacterSet() {
+		return (EAttribute)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(25);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPredefinedDataTypeDefinition_EncodingScheme() {
+		return (EAttribute)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(26);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPredefinedDataTypeDefinition_CharacterSetSuffix() {
+		return (EAttribute)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(27);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPredefinedDataTypeDefinition_EncodingSchemeSuffix() {
+		return (EAttribute)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(28);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPredefinedDataTypeDefinition_JavaClassName() {
+		return (EAttribute)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(29);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPredefinedDataTypeDefinition_DefaultLength() {
+		return (EAttribute)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(30);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPredefinedDataTypeDefinition_DefaultPrecision() {
+		return (EAttribute)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(31);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPredefinedDataTypeDefinition_DefaultScale() {
+		return (EAttribute)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(32);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPredefinedDataTypeDefinition_CutoffPrecision() {
+		return (EAttribute)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(33);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPredefinedDataTypeDefinition_LengthUnit() {
+		return (EAttribute)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(34);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPredefinedDataTypeDefinition_OrderingSupported() {
+		return (EAttribute)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(35);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPredefinedDataTypeDefinition_GroupingSupported() {
+		return (EAttribute)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(36);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPredefinedDataTypeDefinition_DisplayName() {
+		return (EAttribute)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(37);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPredefinedDataTypeDefinition_DisplayNameSupported() {
+		return (EAttribute)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(38);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPredefinedDataTypeDefinition_LeadingFieldQualifierSupported() {
+		return (EAttribute)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(39);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPredefinedDataTypeDefinition_TrailingFieldQualifierSupported() {
+		return (EAttribute)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(40);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPredefinedDataTypeDefinition_FieldQualifierSeparator() {
+		return (EAttribute)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(41);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPredefinedDataTypeDefinition_LargeValueSpecifierSupported() {
+		return (EAttribute)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(42);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPredefinedDataTypeDefinition_LargeValueSpecifierName() {
+		return (EAttribute)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(43);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPredefinedDataTypeDefinition_LargeValueSpecifierLength() {
+		return (EAttribute)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(44);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPredefinedDataTypeDefinition_LengthSemanticSupported() {
+		return (EAttribute)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(45);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPredefinedDataTypeDefinition_LengthSemantic() {
+		return (EAttribute)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(46);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPredefinedDataTypeDefinition_LanguageType() {
+		return (EAttribute)predefinedDataTypeDefinitionEClass.getEStructuralFeatures().get(47);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTableSpaceDefinition() {
+		return tableSpaceDefinitionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTableSpaceDefinition_TypeSupported() {
+		return (EAttribute)tableSpaceDefinitionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTableSpaceDefinition_ExtentSizeSupported() {
+		return (EAttribute)tableSpaceDefinitionEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTableSpaceDefinition_PrefetchSizeSupported() {
+		return (EAttribute)tableSpaceDefinitionEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTableSpaceDefinition_ManagedBySupported() {
+		return (EAttribute)tableSpaceDefinitionEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTableSpaceDefinition_PageSizeSupported() {
+		return (EAttribute)tableSpaceDefinitionEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTableSpaceDefinition_BufferPoolSupported() {
+		return (EAttribute)tableSpaceDefinitionEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTableSpaceDefinition_DefaultSupported() {
+		return (EAttribute)tableSpaceDefinitionEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTableSpaceDefinition_ContainerMaximumSizeSupported() {
+		return (EAttribute)tableSpaceDefinitionEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTableSpaceDefinition_ContainerInitialSizeSupported() {
+		return (EAttribute)tableSpaceDefinitionEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTableSpaceDefinition_ContainerExtentSizeSupported() {
+		return (EAttribute)tableSpaceDefinitionEClass.getEStructuralFeatures().get(9);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTableSpaceDefinition_TableSpaceType() {
+		return (EAttribute)tableSpaceDefinitionEClass.getEStructuralFeatures().get(10);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTableSpaceDefinition_MaximumIdentifierLength() {
+		return (EAttribute)tableSpaceDefinitionEClass.getEStructuralFeatures().get(11);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getStoredProcedureDefinition() {
+		return storedProcedureDefinitionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getStoredProcedureDefinition_PredefinedDataTypeDefinitions() {
+		return (EReference)storedProcedureDefinitionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getStoredProcedureDefinition_NullInputActionSupported() {
+		return (EAttribute)storedProcedureDefinitionEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getStoredProcedureDefinition_PackageGenerationSupported() {
+		return (EAttribute)storedProcedureDefinitionEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getStoredProcedureDefinition_DetermininsticSupported() {
+		return (EAttribute)storedProcedureDefinitionEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getStoredProcedureDefinition_ReturnedNullSupported() {
+		return (EAttribute)storedProcedureDefinitionEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getStoredProcedureDefinition_ReturnedTypeDeclarationConstraintSupported() {
+		return (EAttribute)storedProcedureDefinitionEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getStoredProcedureDefinition_ParameterInitValueSupported() {
+		return (EAttribute)storedProcedureDefinitionEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getStoredProcedureDefinition_ParameterStyleSupported() {
+		return (EAttribute)storedProcedureDefinitionEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getStoredProcedureDefinition_ReturnTypeSupported() {
+		return (EAttribute)storedProcedureDefinitionEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getStoredProcedureDefinition_ParameterDeclarationConstraintSupported() {
+		return (EAttribute)storedProcedureDefinitionEClass.getEStructuralFeatures().get(9);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getStoredProcedureDefinition_MaximumActionBodyLength() {
+		return (EAttribute)storedProcedureDefinitionEClass.getEStructuralFeatures().get(10);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getStoredProcedureDefinition_ParameterStyle() {
+		return (EAttribute)storedProcedureDefinitionEClass.getEStructuralFeatures().get(11);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getStoredProcedureDefinition_LanguageType() {
+		return (EAttribute)storedProcedureDefinitionEClass.getEStructuralFeatures().get(12);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getStoredProcedureDefinition_FunctionLanguageType() {
+		return (EAttribute)storedProcedureDefinitionEClass.getEStructuralFeatures().get(13);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getStoredProcedureDefinition_ProcedureType() {
+		return (EAttribute)storedProcedureDefinitionEClass.getEStructuralFeatures().get(14);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getStoredProcedureDefinition_MaximumIdentifierLength() {
+		return (EAttribute)storedProcedureDefinitionEClass.getEStructuralFeatures().get(15);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTriggerDefinition() {
+		return triggerDefinitionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTriggerDefinition_MaximumReferencePartLength() {
+		return (EAttribute)triggerDefinitionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTriggerDefinition_MaximumActionBodyLength() {
+		return (EAttribute)triggerDefinitionEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTriggerDefinition_TypeSupported() {
+		return (EAttribute)triggerDefinitionEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTriggerDefinition_WhenClauseSupported() {
+		return (EAttribute)triggerDefinitionEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTriggerDefinition_GranularitySupported() {
+		return (EAttribute)triggerDefinitionEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTriggerDefinition_ReferencesClauseSupported() {
+		return (EAttribute)triggerDefinitionEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTriggerDefinition_PerColumnUpdateTriggerSupported() {
+		return (EAttribute)triggerDefinitionEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTriggerDefinition_InsteadOfTriggerSupported() {
+		return (EAttribute)triggerDefinitionEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTriggerDefinition_RowTriggerReferenceSupported() {
+		return (EAttribute)triggerDefinitionEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTriggerDefinition_TableTriggerReferenceSupported() {
+		return (EAttribute)triggerDefinitionEClass.getEStructuralFeatures().get(9);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTriggerDefinition_MaximumIdentifierLength() {
+		return (EAttribute)triggerDefinitionEClass.getEStructuralFeatures().get(10);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getColumnDefinition() {
+		return columnDefinitionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getColumnDefinition_IdentityColumnDataTypeDefinitions() {
+		return (EReference)columnDefinitionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getColumnDefinition_IdentitySupported() {
+		return (EAttribute)columnDefinitionEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getColumnDefinition_ComputedSupported() {
+		return (EAttribute)columnDefinitionEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getColumnDefinition_IdentityStartValueSupported() {
+		return (EAttribute)columnDefinitionEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getColumnDefinition_IdentityIncrementSupported() {
+		return (EAttribute)columnDefinitionEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getColumnDefinition_IdentityMinimumSupported() {
+		return (EAttribute)columnDefinitionEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getColumnDefinition_IdentityMaximumSupported() {
+		return (EAttribute)columnDefinitionEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getColumnDefinition_IdentityCycleSupported() {
+		return (EAttribute)columnDefinitionEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getColumnDefinition_MaximumIdentifierLength() {
+		return (EAttribute)columnDefinitionEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getConstraintDefinition() {
+		return constraintDefinitionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getConstraintDefinition_DeferrableConstraintSupported() {
+		return (EAttribute)constraintDefinitionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getConstraintDefinition_InformationalConstraintSupported() {
+		return (EAttribute)constraintDefinitionEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getConstraintDefinition_ClusteredPrimaryKeySupported() {
+		return (EAttribute)constraintDefinitionEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getConstraintDefinition_ClusteredUniqueConstraintSupported() {
+		return (EAttribute)constraintDefinitionEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getConstraintDefinition_PrimaryKeyNullable() {
+		return (EAttribute)constraintDefinitionEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getConstraintDefinition_UniqueKeyNullable() {
+		return (EAttribute)constraintDefinitionEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getConstraintDefinition_MaximumCheckExpressionLength() {
+		return (EAttribute)constraintDefinitionEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getConstraintDefinition_ParentUpdateDRIRuleType() {
+		return (EAttribute)constraintDefinitionEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getConstraintDefinition_ParentDeleteDRIRuleType() {
+		return (EAttribute)constraintDefinitionEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getConstraintDefinition_CheckOption() {
+		return (EAttribute)constraintDefinitionEClass.getEStructuralFeatures().get(9);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getConstraintDefinition_MaximumPrimaryKeyIdentifierLength() {
+		return (EAttribute)constraintDefinitionEClass.getEStructuralFeatures().get(10);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getConstraintDefinition_MaximumForeignKeyIdentifierLength() {
+		return (EAttribute)constraintDefinitionEClass.getEStructuralFeatures().get(11);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getConstraintDefinition_MaximumCheckConstraintIdentifierLength() {
+		return (EAttribute)constraintDefinitionEClass.getEStructuralFeatures().get(12);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getIndexDefinition() {
+		return indexDefinitionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIndexDefinition_PercentFreeTerminology() {
+		return (EAttribute)indexDefinitionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIndexDefinition_PercentFreeChangeable() {
+		return (EAttribute)indexDefinitionEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIndexDefinition_ClusteringSupported() {
+		return (EAttribute)indexDefinitionEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIndexDefinition_ClusterChangeable() {
+		return (EAttribute)indexDefinitionEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIndexDefinition_FillFactorSupported() {
+		return (EAttribute)indexDefinitionEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIndexDefinition_IncludedColumnsSupported() {
+		return (EAttribute)indexDefinitionEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIndexDefinition_MaximumIdentifierLength() {
+		return (EAttribute)indexDefinitionEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getExtendedDefinition() {
+		return extendedDefinitionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getExtendedDefinition_Name() {
+		return (EAttribute)extendedDefinitionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getExtendedDefinition_Value() {
+		return (EAttribute)extendedDefinitionEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTableDefinition() {
+		return tableDefinitionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTableDefinition_AuditSupported() {
+		return (EAttribute)tableDefinitionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTableDefinition_DataCaptureSupported() {
+		return (EAttribute)tableDefinitionEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTableDefinition_EditProcSupported() {
+		return (EAttribute)tableDefinitionEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTableDefinition_EncodingSupported() {
+		return (EAttribute)tableDefinitionEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTableDefinition_ValidProcSupported() {
+		return (EAttribute)tableDefinitionEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTableDefinition_MaximumIdentifierLength() {
+		return (EAttribute)tableDefinitionEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getSequenceDefinition() {
+		return sequenceDefinitionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getSequenceDefinition_PredefinedDataTypeDefinitions() {
+		return (EReference)sequenceDefinitionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getSequenceDefinition_TypeEnumerationSupported() {
+		return (EAttribute)sequenceDefinitionEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getSequenceDefinition_CacheSupported() {
+		return (EAttribute)sequenceDefinitionEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getSequenceDefinition_OrderSupported() {
+		return (EAttribute)sequenceDefinitionEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getSequenceDefinition_NoMaximumValueString() {
+		return (EAttribute)sequenceDefinitionEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getSequenceDefinition_NoMinimumValueString() {
+		return (EAttribute)sequenceDefinitionEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getSequenceDefinition_NoCacheString() {
+		return (EAttribute)sequenceDefinitionEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getSequenceDefinition_CacheDefaultValue() {
+		return (EAttribute)sequenceDefinitionEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getUserDefinedTypeDefinition() {
+		return userDefinedTypeDefinitionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getUserDefinedTypeDefinition_DefaultValueSupported() {
+		return (EAttribute)userDefinedTypeDefinitionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getUserDefinedTypeDefinition_DistinctTypeSupported() {
+		return (EAttribute)userDefinedTypeDefinitionEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getUserDefinedTypeDefinition_StructuredTypeSupported() {
+		return (EAttribute)userDefinedTypeDefinitionEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getUserDefinedTypeDefinition_MaximumIdentifierLength() {
+		return (EAttribute)userDefinedTypeDefinitionEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getQueryDefinition() {
+		return queryDefinitionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getQueryDefinition_IdentifierQuoteString() {
+		return (EAttribute)queryDefinitionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getQueryDefinition_HostVariableMarker() {
+		return (EAttribute)queryDefinitionEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getQueryDefinition_HostVariableMarkerSupported() {
+		return (EAttribute)queryDefinitionEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getQueryDefinition_CastExpressionSupported() {
+		return (EAttribute)queryDefinitionEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getQueryDefinition_DefaultKeywordForInsertValueSupported() {
+		return (EAttribute)queryDefinitionEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getQueryDefinition_ExtendedGroupingSupported() {
+		return (EAttribute)queryDefinitionEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getQueryDefinition_TableAliasInDeleteSupported() {
+		return (EAttribute)queryDefinitionEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getSQLSyntaxDefinition() {
+		return sqlSyntaxDefinitionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getSQLSyntaxDefinition_Keywords() {
+		return (EAttribute)sqlSyntaxDefinitionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getSQLSyntaxDefinition_Operators() {
+		return (EAttribute)sqlSyntaxDefinitionEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getSQLSyntaxDefinition_TerminationCharacter() {
+		return (EAttribute)sqlSyntaxDefinitionEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getNicknameDefinition() {
+		return nicknameDefinitionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getNicknameDefinition_ConstraintSupported() {
+		return (EAttribute)nicknameDefinitionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getNicknameDefinition_IndexSupported() {
+		return (EAttribute)nicknameDefinitionEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getNicknameDefinition_MaximumIdentifierLength() {
+		return (EAttribute)nicknameDefinitionEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getSchemaDefinition() {
+		return schemaDefinitionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getSchemaDefinition_MaximumIdentifierLength() {
+		return (EAttribute)schemaDefinitionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getViewDefinition() {
+		return viewDefinitionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getViewDefinition_MaximumIdentifierLength() {
+		return (EAttribute)viewDefinitionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getViewDefinition_IndexSupported() {
+		return (EAttribute)viewDefinitionEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getViewDefinition_CheckOptionSupported() {
+		return (EAttribute)viewDefinitionEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getViewDefinition_CheckOptionLevelsSupported() {
+		return (EAttribute)viewDefinitionEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getFieldQualifierDefinition() {
+		return fieldQualifierDefinitionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getFieldQualifierDefinition_ValidTrailingFieldQualifierDefinitions() {
+		return (EReference)fieldQualifierDefinitionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getFieldQualifierDefinition_Name() {
+		return (EAttribute)fieldQualifierDefinitionEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getFieldQualifierDefinition_MaximumPrecision() {
+		return (EAttribute)fieldQualifierDefinitionEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getFieldQualifierDefinition_DefaultPrecision() {
+		return (EAttribute)fieldQualifierDefinitionEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getFieldQualifierDefinition_PrecisionSupported() {
+		return (EAttribute)fieldQualifierDefinitionEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getFieldQualifierDefinition_MaximumScale() {
+		return (EAttribute)fieldQualifierDefinitionEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getFieldQualifierDefinition_DefaultScale() {
+		return (EAttribute)fieldQualifierDefinitionEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getFieldQualifierDefinition_ScaleSupported() {
+		return (EAttribute)fieldQualifierDefinitionEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getDebuggerDefinition() {
+		return debuggerDefinitionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDebuggerDefinition_ConditionSupported() {
+		return (EAttribute)debuggerDefinitionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getPrivilegedElementDefinition() {
+		return privilegedElementDefinitionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getPrivilegedElementDefinition_PrivilegeDefinitions() {
+		return (EReference)privilegedElementDefinitionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPrivilegedElementDefinition_Name() {
+		return (EAttribute)privilegedElementDefinitionEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getPrivilegeDefinition() {
+		return privilegeDefinitionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getPrivilegeDefinition_ActionElementDefinitions() {
+		return (EReference)privilegeDefinitionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPrivilegeDefinition_Name() {
+		return (EAttribute)privilegeDefinitionEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getConstructedDataTypeDefinition() {
+		return constructedDataTypeDefinitionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getConstructedDataTypeDefinition_ArrayDatatypeSupported() {
+		return (EAttribute)constructedDataTypeDefinitionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getConstructedDataTypeDefinition_MultisetDatatypeSupported() {
+		return (EAttribute)constructedDataTypeDefinitionEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getConstructedDataTypeDefinition_RowDatatypeSupported() {
+		return (EAttribute)constructedDataTypeDefinitionEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getConstructedDataTypeDefinition_ReferenceDatatypeSupported() {
+		return (EAttribute)constructedDataTypeDefinitionEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getConstructedDataTypeDefinition_CursorDatatypeSupported() {
+		return (EAttribute)constructedDataTypeDefinitionEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getSequenceDefinition_DefaultDataTypeDefinition() {
+		return (EReference)sequenceDefinitionEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getCheckOption() {
+		return checkOptionEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getLanguageType() {
+		return languageTypeEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getParameterStyle() {
+		return parameterStyleEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getParentDeleteDRIRuleType() {
+		return parentDeleteDRIRuleTypeEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getParentUpdateDRIRuleType() {
+		return parentUpdateDRIRuleTypeEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getProcedureType() {
+		return procedureTypeEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getTableSpaceType() {
+		return tableSpaceTypeEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getPercentFreeTerminology() {
+		return percentFreeTerminologyEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getLengthUnit() {
+		return lengthUnitEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DatabaseDefinitionFactory getDatabaseDefinitionFactory() {
+		return (DatabaseDefinitionFactory)getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package.  This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated) return;
+		isCreated = true;
+
+		// Create classes and their features
+		databaseVendorDefinitionEClass = createEClass(DATABASE_VENDOR_DEFINITION);
+		createEReference(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__PREDEFINED_DATA_TYPE_DEFINITIONS);
+		createEReference(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__TABLE_SPACE_DEFINITION);
+		createEReference(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__STORED_PROCEDURE_DEFINITION);
+		createEReference(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__TRIGGER_DEFINITION);
+		createEReference(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__COLUMN_DEFINITION);
+		createEReference(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__CONSTRAINT_DEFINITION);
+		createEReference(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__EXTENDED_DEFINITIONS);
+		createEReference(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__INDEX_DEFINITION);
+		createEReference(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__TABLE_DEFINITION);
+		createEReference(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__SEQUENCE_DEFINITION);
+		createEReference(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__UDT_DEFINITION);
+		createEReference(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__QUERY_DEFINITION);
+		createEReference(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__SQL_SYNTAX_DEFINITION);
+		createEReference(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__NICKNAME_DEFINITION);
+		createEReference(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__SCHEMA_DEFINITION);
+		createEReference(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__VIEW_DEFINITION);
+		createEReference(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__DEBUGGER_DEFINITION);
+		createEReference(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__PRIVILEGED_ELEMENT_DEFINITIONS);
+		createEReference(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__CONSTRUCTED_DATA_TYPE_DEFINITION);
+		createEAttribute(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__VENDOR);
+		createEAttribute(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__VERSION);
+		createEAttribute(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__CONSTRAINTS_SUPPORTED);
+		createEAttribute(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH);
+		createEAttribute(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__TRIGGER_SUPPORTED);
+		createEAttribute(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__SNAPSHOT_VIEW_SUPPORTED);
+		createEAttribute(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__JOIN_SUPPORTED);
+		createEAttribute(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__VIEW_TRIGGER_SUPPORTED);
+		createEAttribute(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__TABLESPACES_SUPPORTED);
+		createEAttribute(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__MAXIMUM_COMMENT_LENGTH);
+		createEAttribute(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__SEQUENCE_SUPPORTED);
+		createEAttribute(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__MQT_SUPPORTED);
+		createEAttribute(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__SCHEMA_SUPPORTED);
+		createEAttribute(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__ALIAS_SUPPORTED);
+		createEAttribute(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__SYNONYM_SUPPORTED);
+		createEAttribute(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__USER_DEFINED_TYPE_SUPPORTED);
+		createEAttribute(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__DOMAIN_SUPPORTED);
+		createEAttribute(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__SQL_STATEMENT_SUPPORTED);
+		createEAttribute(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__NICKNAME_SUPPORTED);
+		createEAttribute(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__QUOTED_DML_SUPPORTED);
+		createEAttribute(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__QUOTED_DDL_SUPPORTED);
+		createEAttribute(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__XML_SUPPORTED);
+		createEAttribute(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__MQT_INDEX_SUPPORTED);
+		createEAttribute(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__EVENT_SUPPORTED);
+		createEAttribute(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__SQL_UDF_SUPPORTED);
+		createEAttribute(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__STORED_PROCEDURE_SUPPORTED);
+		createEAttribute(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__PACKAGE_SUPPORTED);
+		createEAttribute(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__AUTHORIZATION_IDENTIFIER_SUPPORTED);
+		createEAttribute(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__ROLE_SUPPORTED);
+		createEAttribute(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__GROUP_SUPPORTED);
+		createEAttribute(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__USER_SUPPORTED);
+		createEAttribute(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__ROLE_AUTHORIZATION_SUPPORTED);
+		createEAttribute(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__CONSTRUCTED_DATA_TYPE_SUPPORTED);
+		createEAttribute(databaseVendorDefinitionEClass, DATABASE_VENDOR_DEFINITION__UDF_SUPPORTED);
+
+		predefinedDataTypeDefinitionEClass = createEClass(PREDEFINED_DATA_TYPE_DEFINITION);
+		createEReference(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__LEADING_FIELD_QUALIFIER_DEFINITION);
+		createEReference(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__TRAILING_FIELD_QUALIFIER_DEFINITION);
+		createEReference(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_TRAILING_FIELD_QUALIFIER_DEFINITION);
+		createEReference(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_LEADING_FIELD_QUALIFIER_DEFINITION);
+		createEAttribute(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__LENGTH_SUPPORTED);
+		createEAttribute(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__SCALE_SUPPORTED);
+		createEAttribute(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__PRECISION_SUPPORTED);
+		createEAttribute(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__KEY_CONSTRAINT_SUPPORTED);
+		createEAttribute(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__IDENTITY_SUPPORTED);
+		createEAttribute(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__MULTIPLE_COLUMNS_SUPPORTED);
+		createEAttribute(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__NULLABLE_SUPPORTED);
+		createEAttribute(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_SUPPORTED);
+		createEAttribute(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__CLUSTERING_SUPPORTED);
+		createEAttribute(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__FILL_FACTOR_SUPPORTED);
+		createEAttribute(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__BIT_DATA_SUPPORTED);
+		createEAttribute(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__MAXIMUM_VALUE);
+		createEAttribute(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__MINIMUM_VALUE);
+		createEAttribute(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__MAXIMUM_LENGTH);
+		createEAttribute(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__MAXIMUM_PRECISION);
+		createEAttribute(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__MAXIMUM_SCALE);
+		createEAttribute(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__MINIMUM_SCALE);
+		createEAttribute(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_VALUE_TYPES);
+		createEAttribute(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__PRIMITIVE_TYPE);
+		createEAttribute(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__NAME);
+		createEAttribute(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__JDBC_ENUM_TYPE);
+		createEAttribute(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__CHARACTER_SET);
+		createEAttribute(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__ENCODING_SCHEME);
+		createEAttribute(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__CHARACTER_SET_SUFFIX);
+		createEAttribute(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__ENCODING_SCHEME_SUFFIX);
+		createEAttribute(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__JAVA_CLASS_NAME);
+		createEAttribute(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_LENGTH);
+		createEAttribute(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_PRECISION);
+		createEAttribute(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_SCALE);
+		createEAttribute(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__CUTOFF_PRECISION);
+		createEAttribute(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__LENGTH_UNIT);
+		createEAttribute(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__ORDERING_SUPPORTED);
+		createEAttribute(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__GROUPING_SUPPORTED);
+		createEAttribute(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__DISPLAY_NAME);
+		createEAttribute(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__DISPLAY_NAME_SUPPORTED);
+		createEAttribute(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__LEADING_FIELD_QUALIFIER_SUPPORTED);
+		createEAttribute(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__TRAILING_FIELD_QUALIFIER_SUPPORTED);
+		createEAttribute(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__FIELD_QUALIFIER_SEPARATOR);
+		createEAttribute(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__LARGE_VALUE_SPECIFIER_SUPPORTED);
+		createEAttribute(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__LARGE_VALUE_SPECIFIER_NAME);
+		createEAttribute(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__LARGE_VALUE_SPECIFIER_LENGTH);
+		createEAttribute(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__LENGTH_SEMANTIC_SUPPORTED);
+		createEAttribute(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__LENGTH_SEMANTIC);
+		createEAttribute(predefinedDataTypeDefinitionEClass, PREDEFINED_DATA_TYPE_DEFINITION__LANGUAGE_TYPE);
+
+		tableSpaceDefinitionEClass = createEClass(TABLE_SPACE_DEFINITION);
+		createEAttribute(tableSpaceDefinitionEClass, TABLE_SPACE_DEFINITION__TYPE_SUPPORTED);
+		createEAttribute(tableSpaceDefinitionEClass, TABLE_SPACE_DEFINITION__EXTENT_SIZE_SUPPORTED);
+		createEAttribute(tableSpaceDefinitionEClass, TABLE_SPACE_DEFINITION__PREFETCH_SIZE_SUPPORTED);
+		createEAttribute(tableSpaceDefinitionEClass, TABLE_SPACE_DEFINITION__MANAGED_BY_SUPPORTED);
+		createEAttribute(tableSpaceDefinitionEClass, TABLE_SPACE_DEFINITION__PAGE_SIZE_SUPPORTED);
+		createEAttribute(tableSpaceDefinitionEClass, TABLE_SPACE_DEFINITION__BUFFER_POOL_SUPPORTED);
+		createEAttribute(tableSpaceDefinitionEClass, TABLE_SPACE_DEFINITION__DEFAULT_SUPPORTED);
+		createEAttribute(tableSpaceDefinitionEClass, TABLE_SPACE_DEFINITION__CONTAINER_MAXIMUM_SIZE_SUPPORTED);
+		createEAttribute(tableSpaceDefinitionEClass, TABLE_SPACE_DEFINITION__CONTAINER_INITIAL_SIZE_SUPPORTED);
+		createEAttribute(tableSpaceDefinitionEClass, TABLE_SPACE_DEFINITION__CONTAINER_EXTENT_SIZE_SUPPORTED);
+		createEAttribute(tableSpaceDefinitionEClass, TABLE_SPACE_DEFINITION__TABLE_SPACE_TYPE);
+		createEAttribute(tableSpaceDefinitionEClass, TABLE_SPACE_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH);
+
+		storedProcedureDefinitionEClass = createEClass(STORED_PROCEDURE_DEFINITION);
+		createEReference(storedProcedureDefinitionEClass, STORED_PROCEDURE_DEFINITION__PREDEFINED_DATA_TYPE_DEFINITIONS);
+		createEAttribute(storedProcedureDefinitionEClass, STORED_PROCEDURE_DEFINITION__NULL_INPUT_ACTION_SUPPORTED);
+		createEAttribute(storedProcedureDefinitionEClass, STORED_PROCEDURE_DEFINITION__PACKAGE_GENERATION_SUPPORTED);
+		createEAttribute(storedProcedureDefinitionEClass, STORED_PROCEDURE_DEFINITION__DETERMININSTIC_SUPPORTED);
+		createEAttribute(storedProcedureDefinitionEClass, STORED_PROCEDURE_DEFINITION__RETURNED_NULL_SUPPORTED);
+		createEAttribute(storedProcedureDefinitionEClass, STORED_PROCEDURE_DEFINITION__RETURNED_TYPE_DECLARATION_CONSTRAINT_SUPPORTED);
+		createEAttribute(storedProcedureDefinitionEClass, STORED_PROCEDURE_DEFINITION__PARAMETER_INIT_VALUE_SUPPORTED);
+		createEAttribute(storedProcedureDefinitionEClass, STORED_PROCEDURE_DEFINITION__PARAMETER_STYLE_SUPPORTED);
+		createEAttribute(storedProcedureDefinitionEClass, STORED_PROCEDURE_DEFINITION__RETURN_TYPE_SUPPORTED);
+		createEAttribute(storedProcedureDefinitionEClass, STORED_PROCEDURE_DEFINITION__PARAMETER_DECLARATION_CONSTRAINT_SUPPORTED);
+		createEAttribute(storedProcedureDefinitionEClass, STORED_PROCEDURE_DEFINITION__MAXIMUM_ACTION_BODY_LENGTH);
+		createEAttribute(storedProcedureDefinitionEClass, STORED_PROCEDURE_DEFINITION__PARAMETER_STYLE);
+		createEAttribute(storedProcedureDefinitionEClass, STORED_PROCEDURE_DEFINITION__LANGUAGE_TYPE);
+		createEAttribute(storedProcedureDefinitionEClass, STORED_PROCEDURE_DEFINITION__FUNCTION_LANGUAGE_TYPE);
+		createEAttribute(storedProcedureDefinitionEClass, STORED_PROCEDURE_DEFINITION__PROCEDURE_TYPE);
+		createEAttribute(storedProcedureDefinitionEClass, STORED_PROCEDURE_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH);
+
+		triggerDefinitionEClass = createEClass(TRIGGER_DEFINITION);
+		createEAttribute(triggerDefinitionEClass, TRIGGER_DEFINITION__MAXIMUM_REFERENCE_PART_LENGTH);
+		createEAttribute(triggerDefinitionEClass, TRIGGER_DEFINITION__MAXIMUM_ACTION_BODY_LENGTH);
+		createEAttribute(triggerDefinitionEClass, TRIGGER_DEFINITION__TYPE_SUPPORTED);
+		createEAttribute(triggerDefinitionEClass, TRIGGER_DEFINITION__WHEN_CLAUSE_SUPPORTED);
+		createEAttribute(triggerDefinitionEClass, TRIGGER_DEFINITION__GRANULARITY_SUPPORTED);
+		createEAttribute(triggerDefinitionEClass, TRIGGER_DEFINITION__REFERENCES_CLAUSE_SUPPORTED);
+		createEAttribute(triggerDefinitionEClass, TRIGGER_DEFINITION__PER_COLUMN_UPDATE_TRIGGER_SUPPORTED);
+		createEAttribute(triggerDefinitionEClass, TRIGGER_DEFINITION__INSTEAD_OF_TRIGGER_SUPPORTED);
+		createEAttribute(triggerDefinitionEClass, TRIGGER_DEFINITION__ROW_TRIGGER_REFERENCE_SUPPORTED);
+		createEAttribute(triggerDefinitionEClass, TRIGGER_DEFINITION__TABLE_TRIGGER_REFERENCE_SUPPORTED);
+		createEAttribute(triggerDefinitionEClass, TRIGGER_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH);
+
+		columnDefinitionEClass = createEClass(COLUMN_DEFINITION);
+		createEReference(columnDefinitionEClass, COLUMN_DEFINITION__IDENTITY_COLUMN_DATA_TYPE_DEFINITIONS);
+		createEAttribute(columnDefinitionEClass, COLUMN_DEFINITION__IDENTITY_SUPPORTED);
+		createEAttribute(columnDefinitionEClass, COLUMN_DEFINITION__COMPUTED_SUPPORTED);
+		createEAttribute(columnDefinitionEClass, COLUMN_DEFINITION__IDENTITY_START_VALUE_SUPPORTED);
+		createEAttribute(columnDefinitionEClass, COLUMN_DEFINITION__IDENTITY_INCREMENT_SUPPORTED);
+		createEAttribute(columnDefinitionEClass, COLUMN_DEFINITION__IDENTITY_MINIMUM_SUPPORTED);
+		createEAttribute(columnDefinitionEClass, COLUMN_DEFINITION__IDENTITY_MAXIMUM_SUPPORTED);
+		createEAttribute(columnDefinitionEClass, COLUMN_DEFINITION__IDENTITY_CYCLE_SUPPORTED);
+		createEAttribute(columnDefinitionEClass, COLUMN_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH);
+
+		constraintDefinitionEClass = createEClass(CONSTRAINT_DEFINITION);
+		createEAttribute(constraintDefinitionEClass, CONSTRAINT_DEFINITION__DEFERRABLE_CONSTRAINT_SUPPORTED);
+		createEAttribute(constraintDefinitionEClass, CONSTRAINT_DEFINITION__INFORMATIONAL_CONSTRAINT_SUPPORTED);
+		createEAttribute(constraintDefinitionEClass, CONSTRAINT_DEFINITION__CLUSTERED_PRIMARY_KEY_SUPPORTED);
+		createEAttribute(constraintDefinitionEClass, CONSTRAINT_DEFINITION__CLUSTERED_UNIQUE_CONSTRAINT_SUPPORTED);
+		createEAttribute(constraintDefinitionEClass, CONSTRAINT_DEFINITION__PRIMARY_KEY_NULLABLE);
+		createEAttribute(constraintDefinitionEClass, CONSTRAINT_DEFINITION__UNIQUE_KEY_NULLABLE);
+		createEAttribute(constraintDefinitionEClass, CONSTRAINT_DEFINITION__MAXIMUM_CHECK_EXPRESSION_LENGTH);
+		createEAttribute(constraintDefinitionEClass, CONSTRAINT_DEFINITION__PARENT_UPDATE_DRI_RULE_TYPE);
+		createEAttribute(constraintDefinitionEClass, CONSTRAINT_DEFINITION__PARENT_DELETE_DRI_RULE_TYPE);
+		createEAttribute(constraintDefinitionEClass, CONSTRAINT_DEFINITION__CHECK_OPTION);
+		createEAttribute(constraintDefinitionEClass, CONSTRAINT_DEFINITION__MAXIMUM_PRIMARY_KEY_IDENTIFIER_LENGTH);
+		createEAttribute(constraintDefinitionEClass, CONSTRAINT_DEFINITION__MAXIMUM_FOREIGN_KEY_IDENTIFIER_LENGTH);
+		createEAttribute(constraintDefinitionEClass, CONSTRAINT_DEFINITION__MAXIMUM_CHECK_CONSTRAINT_IDENTIFIER_LENGTH);
+
+		indexDefinitionEClass = createEClass(INDEX_DEFINITION);
+		createEAttribute(indexDefinitionEClass, INDEX_DEFINITION__PERCENT_FREE_TERMINOLOGY);
+		createEAttribute(indexDefinitionEClass, INDEX_DEFINITION__PERCENT_FREE_CHANGEABLE);
+		createEAttribute(indexDefinitionEClass, INDEX_DEFINITION__CLUSTERING_SUPPORTED);
+		createEAttribute(indexDefinitionEClass, INDEX_DEFINITION__CLUSTER_CHANGEABLE);
+		createEAttribute(indexDefinitionEClass, INDEX_DEFINITION__FILL_FACTOR_SUPPORTED);
+		createEAttribute(indexDefinitionEClass, INDEX_DEFINITION__INCLUDED_COLUMNS_SUPPORTED);
+		createEAttribute(indexDefinitionEClass, INDEX_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH);
+
+		extendedDefinitionEClass = createEClass(EXTENDED_DEFINITION);
+		createEAttribute(extendedDefinitionEClass, EXTENDED_DEFINITION__NAME);
+		createEAttribute(extendedDefinitionEClass, EXTENDED_DEFINITION__VALUE);
+
+		tableDefinitionEClass = createEClass(TABLE_DEFINITION);
+		createEAttribute(tableDefinitionEClass, TABLE_DEFINITION__AUDIT_SUPPORTED);
+		createEAttribute(tableDefinitionEClass, TABLE_DEFINITION__DATA_CAPTURE_SUPPORTED);
+		createEAttribute(tableDefinitionEClass, TABLE_DEFINITION__EDIT_PROC_SUPPORTED);
+		createEAttribute(tableDefinitionEClass, TABLE_DEFINITION__ENCODING_SUPPORTED);
+		createEAttribute(tableDefinitionEClass, TABLE_DEFINITION__VALID_PROC_SUPPORTED);
+		createEAttribute(tableDefinitionEClass, TABLE_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH);
+
+		sequenceDefinitionEClass = createEClass(SEQUENCE_DEFINITION);
+		createEReference(sequenceDefinitionEClass, SEQUENCE_DEFINITION__PREDEFINED_DATA_TYPE_DEFINITIONS);
+		createEReference(sequenceDefinitionEClass, SEQUENCE_DEFINITION__DEFAULT_DATA_TYPE_DEFINITION);
+		createEAttribute(sequenceDefinitionEClass, SEQUENCE_DEFINITION__TYPE_ENUMERATION_SUPPORTED);
+		createEAttribute(sequenceDefinitionEClass, SEQUENCE_DEFINITION__CACHE_SUPPORTED);
+		createEAttribute(sequenceDefinitionEClass, SEQUENCE_DEFINITION__ORDER_SUPPORTED);
+		createEAttribute(sequenceDefinitionEClass, SEQUENCE_DEFINITION__NO_MAXIMUM_VALUE_STRING);
+		createEAttribute(sequenceDefinitionEClass, SEQUENCE_DEFINITION__NO_MINIMUM_VALUE_STRING);
+		createEAttribute(sequenceDefinitionEClass, SEQUENCE_DEFINITION__NO_CACHE_STRING);
+		createEAttribute(sequenceDefinitionEClass, SEQUENCE_DEFINITION__CACHE_DEFAULT_VALUE);
+
+		userDefinedTypeDefinitionEClass = createEClass(USER_DEFINED_TYPE_DEFINITION);
+		createEAttribute(userDefinedTypeDefinitionEClass, USER_DEFINED_TYPE_DEFINITION__DEFAULT_VALUE_SUPPORTED);
+		createEAttribute(userDefinedTypeDefinitionEClass, USER_DEFINED_TYPE_DEFINITION__DISTINCT_TYPE_SUPPORTED);
+		createEAttribute(userDefinedTypeDefinitionEClass, USER_DEFINED_TYPE_DEFINITION__STRUCTURED_TYPE_SUPPORTED);
+		createEAttribute(userDefinedTypeDefinitionEClass, USER_DEFINED_TYPE_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH);
+
+		queryDefinitionEClass = createEClass(QUERY_DEFINITION);
+		createEAttribute(queryDefinitionEClass, QUERY_DEFINITION__IDENTIFIER_QUOTE_STRING);
+		createEAttribute(queryDefinitionEClass, QUERY_DEFINITION__HOST_VARIABLE_MARKER);
+		createEAttribute(queryDefinitionEClass, QUERY_DEFINITION__HOST_VARIABLE_MARKER_SUPPORTED);
+		createEAttribute(queryDefinitionEClass, QUERY_DEFINITION__CAST_EXPRESSION_SUPPORTED);
+		createEAttribute(queryDefinitionEClass, QUERY_DEFINITION__DEFAULT_KEYWORD_FOR_INSERT_VALUE_SUPPORTED);
+		createEAttribute(queryDefinitionEClass, QUERY_DEFINITION__EXTENDED_GROUPING_SUPPORTED);
+		createEAttribute(queryDefinitionEClass, QUERY_DEFINITION__TABLE_ALIAS_IN_DELETE_SUPPORTED);
+
+		sqlSyntaxDefinitionEClass = createEClass(SQL_SYNTAX_DEFINITION);
+		createEAttribute(sqlSyntaxDefinitionEClass, SQL_SYNTAX_DEFINITION__KEYWORDS);
+		createEAttribute(sqlSyntaxDefinitionEClass, SQL_SYNTAX_DEFINITION__OPERATORS);
+		createEAttribute(sqlSyntaxDefinitionEClass, SQL_SYNTAX_DEFINITION__TERMINATION_CHARACTER);
+
+		nicknameDefinitionEClass = createEClass(NICKNAME_DEFINITION);
+		createEAttribute(nicknameDefinitionEClass, NICKNAME_DEFINITION__CONSTRAINT_SUPPORTED);
+		createEAttribute(nicknameDefinitionEClass, NICKNAME_DEFINITION__INDEX_SUPPORTED);
+		createEAttribute(nicknameDefinitionEClass, NICKNAME_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH);
+
+		schemaDefinitionEClass = createEClass(SCHEMA_DEFINITION);
+		createEAttribute(schemaDefinitionEClass, SCHEMA_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH);
+
+		viewDefinitionEClass = createEClass(VIEW_DEFINITION);
+		createEAttribute(viewDefinitionEClass, VIEW_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH);
+		createEAttribute(viewDefinitionEClass, VIEW_DEFINITION__INDEX_SUPPORTED);
+		createEAttribute(viewDefinitionEClass, VIEW_DEFINITION__CHECK_OPTION_SUPPORTED);
+		createEAttribute(viewDefinitionEClass, VIEW_DEFINITION__CHECK_OPTION_LEVELS_SUPPORTED);
+
+		fieldQualifierDefinitionEClass = createEClass(FIELD_QUALIFIER_DEFINITION);
+		createEReference(fieldQualifierDefinitionEClass, FIELD_QUALIFIER_DEFINITION__VALID_TRAILING_FIELD_QUALIFIER_DEFINITIONS);
+		createEAttribute(fieldQualifierDefinitionEClass, FIELD_QUALIFIER_DEFINITION__NAME);
+		createEAttribute(fieldQualifierDefinitionEClass, FIELD_QUALIFIER_DEFINITION__MAXIMUM_PRECISION);
+		createEAttribute(fieldQualifierDefinitionEClass, FIELD_QUALIFIER_DEFINITION__DEFAULT_PRECISION);
+		createEAttribute(fieldQualifierDefinitionEClass, FIELD_QUALIFIER_DEFINITION__PRECISION_SUPPORTED);
+		createEAttribute(fieldQualifierDefinitionEClass, FIELD_QUALIFIER_DEFINITION__MAXIMUM_SCALE);
+		createEAttribute(fieldQualifierDefinitionEClass, FIELD_QUALIFIER_DEFINITION__DEFAULT_SCALE);
+		createEAttribute(fieldQualifierDefinitionEClass, FIELD_QUALIFIER_DEFINITION__SCALE_SUPPORTED);
+
+		debuggerDefinitionEClass = createEClass(DEBUGGER_DEFINITION);
+		createEAttribute(debuggerDefinitionEClass, DEBUGGER_DEFINITION__CONDITION_SUPPORTED);
+
+		privilegedElementDefinitionEClass = createEClass(PRIVILEGED_ELEMENT_DEFINITION);
+		createEReference(privilegedElementDefinitionEClass, PRIVILEGED_ELEMENT_DEFINITION__PRIVILEGE_DEFINITIONS);
+		createEAttribute(privilegedElementDefinitionEClass, PRIVILEGED_ELEMENT_DEFINITION__NAME);
+
+		privilegeDefinitionEClass = createEClass(PRIVILEGE_DEFINITION);
+		createEReference(privilegeDefinitionEClass, PRIVILEGE_DEFINITION__ACTION_ELEMENT_DEFINITIONS);
+		createEAttribute(privilegeDefinitionEClass, PRIVILEGE_DEFINITION__NAME);
+
+		constructedDataTypeDefinitionEClass = createEClass(CONSTRUCTED_DATA_TYPE_DEFINITION);
+		createEAttribute(constructedDataTypeDefinitionEClass, CONSTRUCTED_DATA_TYPE_DEFINITION__ARRAY_DATATYPE_SUPPORTED);
+		createEAttribute(constructedDataTypeDefinitionEClass, CONSTRUCTED_DATA_TYPE_DEFINITION__MULTISET_DATATYPE_SUPPORTED);
+		createEAttribute(constructedDataTypeDefinitionEClass, CONSTRUCTED_DATA_TYPE_DEFINITION__ROW_DATATYPE_SUPPORTED);
+		createEAttribute(constructedDataTypeDefinitionEClass, CONSTRUCTED_DATA_TYPE_DEFINITION__REFERENCE_DATATYPE_SUPPORTED);
+		createEAttribute(constructedDataTypeDefinitionEClass, CONSTRUCTED_DATA_TYPE_DEFINITION__CURSOR_DATATYPE_SUPPORTED);
+
+		// Create enums
+		checkOptionEEnum = createEEnum(CHECK_OPTION);
+		languageTypeEEnum = createEEnum(LANGUAGE_TYPE);
+		parameterStyleEEnum = createEEnum(PARAMETER_STYLE);
+		parentDeleteDRIRuleTypeEEnum = createEEnum(PARENT_DELETE_DRI_RULE_TYPE);
+		parentUpdateDRIRuleTypeEEnum = createEEnum(PARENT_UPDATE_DRI_RULE_TYPE);
+		procedureTypeEEnum = createEEnum(PROCEDURE_TYPE);
+		tableSpaceTypeEEnum = createEEnum(TABLE_SPACE_TYPE);
+		percentFreeTerminologyEEnum = createEEnum(PERCENT_FREE_TERMINOLOGY);
+		lengthUnitEEnum = createEEnum(LENGTH_UNIT);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model.  This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized) return;
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Obtain other dependent packages
+		SQLDataTypesPackage theSQLDataTypesPackage = (SQLDataTypesPackage)EPackage.Registry.INSTANCE.getEPackage(SQLDataTypesPackage.eNS_URI);
+
+		// Add supertypes to classes
+
+		// Initialize classes and features; add operations and parameters
+		initEClass(databaseVendorDefinitionEClass, DatabaseVendorDefinition.class, "DatabaseVendorDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEReference(getDatabaseVendorDefinition_PredefinedDataTypeDefinitions(), this.getPredefinedDataTypeDefinition(), null, "predefinedDataTypeDefinitions", null, 0, -1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getDatabaseVendorDefinition_TableSpaceDefinition(), this.getTableSpaceDefinition(), null, "tableSpaceDefinition", null, 1, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getDatabaseVendorDefinition_StoredProcedureDefinition(), this.getStoredProcedureDefinition(), null, "storedProcedureDefinition", null, 1, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getDatabaseVendorDefinition_TriggerDefinition(), this.getTriggerDefinition(), null, "triggerDefinition", null, 1, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getDatabaseVendorDefinition_ColumnDefinition(), this.getColumnDefinition(), null, "columnDefinition", null, 1, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getDatabaseVendorDefinition_ConstraintDefinition(), this.getConstraintDefinition(), null, "constraintDefinition", null, 1, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getDatabaseVendorDefinition_ExtendedDefinitions(), this.getExtendedDefinition(), null, "extendedDefinitions", null, 0, -1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getDatabaseVendorDefinition_IndexDefinition(), this.getIndexDefinition(), null, "indexDefinition", null, 1, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getDatabaseVendorDefinition_TableDefinition(), this.getTableDefinition(), null, "tableDefinition", null, 1, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getDatabaseVendorDefinition_SequenceDefinition(), this.getSequenceDefinition(), null, "sequenceDefinition", null, 1, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getDatabaseVendorDefinition_UdtDefinition(), this.getUserDefinedTypeDefinition(), null, "udtDefinition", null, 1, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getDatabaseVendorDefinition_QueryDefinition(), this.getQueryDefinition(), null, "queryDefinition", null, 1, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getDatabaseVendorDefinition_SQLSyntaxDefinition(), this.getSQLSyntaxDefinition(), null, "SQLSyntaxDefinition", null, 1, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getDatabaseVendorDefinition_NicknameDefinition(), this.getNicknameDefinition(), null, "nicknameDefinition", null, 1, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getDatabaseVendorDefinition_SchemaDefinition(), this.getSchemaDefinition(), null, "schemaDefinition", null, 1, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getDatabaseVendorDefinition_ViewDefinition(), this.getViewDefinition(), null, "viewDefinition", null, 1, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getDatabaseVendorDefinition_DebuggerDefinition(), this.getDebuggerDefinition(), null, "debuggerDefinition", null, 1, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getDatabaseVendorDefinition_PrivilegedElementDefinitions(), this.getPrivilegedElementDefinition(), null, "privilegedElementDefinitions", null, 0, -1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getDatabaseVendorDefinition_ConstructedDataTypeDefinition(), this.getConstructedDataTypeDefinition(), null, "constructedDataTypeDefinition", null, 1, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getDatabaseVendorDefinition_Vendor(), ecorePackage.getEString(), "vendor", null, 0, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getDatabaseVendorDefinition_Version(), ecorePackage.getEString(), "version", null, 0, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getDatabaseVendorDefinition_ConstraintsSupported(), ecorePackage.getEBoolean(), "constraintsSupported", "true", 0, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+		initEAttribute(getDatabaseVendorDefinition_MaximumIdentifierLength(), ecorePackage.getEInt(), "maximumIdentifierLength", null, 0, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getDatabaseVendorDefinition_TriggerSupported(), ecorePackage.getEBoolean(), "triggerSupported", "true", 0, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+		initEAttribute(getDatabaseVendorDefinition_SnapshotViewSupported(), ecorePackage.getEBoolean(), "snapshotViewSupported", null, 0, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getDatabaseVendorDefinition_JoinSupported(), ecorePackage.getEBoolean(), "joinSupported", null, 0, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getDatabaseVendorDefinition_ViewTriggerSupported(), ecorePackage.getEBoolean(), "viewTriggerSupported", null, 0, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getDatabaseVendorDefinition_TablespacesSupported(), ecorePackage.getEBoolean(), "tablespacesSupported", "true", 0, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+		initEAttribute(getDatabaseVendorDefinition_MaximumCommentLength(), ecorePackage.getEInt(), "maximumCommentLength", null, 0, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getDatabaseVendorDefinition_SequenceSupported(), ecorePackage.getEBoolean(), "sequenceSupported", null, 0, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getDatabaseVendorDefinition_MQTSupported(), ecorePackage.getEBoolean(), "mQTSupported", null, 0, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getDatabaseVendorDefinition_SchemaSupported(), ecorePackage.getEBoolean(), "schemaSupported", "true", 0, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+		initEAttribute(getDatabaseVendorDefinition_AliasSupported(), ecorePackage.getEBoolean(), "aliasSupported", null, 0, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getDatabaseVendorDefinition_SynonymSupported(), ecorePackage.getEBoolean(), "synonymSupported", null, 0, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getDatabaseVendorDefinition_UserDefinedTypeSupported(), ecorePackage.getEBoolean(), "userDefinedTypeSupported", null, 0, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getDatabaseVendorDefinition_DomainSupported(), ecorePackage.getEBoolean(), "domainSupported", null, 0, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getDatabaseVendorDefinition_SQLStatementSupported(), ecorePackage.getEBoolean(), "SQLStatementSupported", null, 0, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getDatabaseVendorDefinition_NicknameSupported(), ecorePackage.getEBoolean(), "nicknameSupported", null, 0, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getDatabaseVendorDefinition_QuotedDMLSupported(), ecorePackage.getEBoolean(), "quotedDMLSupported", "true", 0, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+		initEAttribute(getDatabaseVendorDefinition_QuotedDDLSupported(), ecorePackage.getEBoolean(), "quotedDDLSupported", "true", 0, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+		initEAttribute(getDatabaseVendorDefinition_XmlSupported(), ecorePackage.getEBoolean(), "xmlSupported", null, 0, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getDatabaseVendorDefinition_MQTIndexSupported(), ecorePackage.getEBoolean(), "mQTIndexSupported", null, 0, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getDatabaseVendorDefinition_EventSupported(), ecorePackage.getEBoolean(), "eventSupported", null, 0, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getDatabaseVendorDefinition_SqlUDFSupported(), ecorePackage.getEBoolean(), "sqlUDFSupported", "true", 0, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+		initEAttribute(getDatabaseVendorDefinition_StoredProcedureSupported(), ecorePackage.getEBoolean(), "storedProcedureSupported", "true", 0, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+		initEAttribute(getDatabaseVendorDefinition_PackageSupported(), ecorePackage.getEBoolean(), "packageSupported", null, 0, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getDatabaseVendorDefinition_AuthorizationIdentifierSupported(), ecorePackage.getEBoolean(), "authorizationIdentifierSupported", "true", 0, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+		initEAttribute(getDatabaseVendorDefinition_RoleSupported(), ecorePackage.getEBoolean(), "roleSupported", null, 0, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getDatabaseVendorDefinition_GroupSupported(), ecorePackage.getEBoolean(), "groupSupported", null, 0, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getDatabaseVendorDefinition_UserSupported(), ecorePackage.getEBoolean(), "userSupported", null, 0, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getDatabaseVendorDefinition_RoleAuthorizationSupported(), ecorePackage.getEBoolean(), "roleAuthorizationSupported", null, 0, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getDatabaseVendorDefinition_ConstructedDataTypeSupported(), ecorePackage.getEBoolean(), "constructedDataTypeSupported", null, 0, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getDatabaseVendorDefinition_UDFSupported(), ecorePackage.getEBoolean(), "uDFSupported", "true", 0, 1, DatabaseVendorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+
+		initEClass(predefinedDataTypeDefinitionEClass, PredefinedDataTypeDefinition.class, "PredefinedDataTypeDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEReference(getPredefinedDataTypeDefinition_LeadingFieldQualifierDefinition(), this.getFieldQualifierDefinition(), null, "leadingFieldQualifierDefinition", null, 0, -1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getPredefinedDataTypeDefinition_TrailingFieldQualifierDefinition(), this.getFieldQualifierDefinition(), null, "trailingFieldQualifierDefinition", null, 0, -1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getPredefinedDataTypeDefinition_DefaultTrailingFieldQualifierDefinition(), this.getFieldQualifierDefinition(), null, "defaultTrailingFieldQualifierDefinition", null, 0, 1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getPredefinedDataTypeDefinition_DefaultLeadingFieldQualifierDefinition(), this.getFieldQualifierDefinition(), null, "defaultLeadingFieldQualifierDefinition", null, 0, 1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getPredefinedDataTypeDefinition_LengthSupported(), ecorePackage.getEBoolean(), "lengthSupported", null, 0, 1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getPredefinedDataTypeDefinition_ScaleSupported(), ecorePackage.getEBoolean(), "scaleSupported", null, 0, 1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getPredefinedDataTypeDefinition_PrecisionSupported(), ecorePackage.getEBoolean(), "precisionSupported", null, 0, 1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getPredefinedDataTypeDefinition_KeyConstraintSupported(), ecorePackage.getEBoolean(), "keyConstraintSupported", null, 0, 1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getPredefinedDataTypeDefinition_IdentitySupported(), ecorePackage.getEBoolean(), "identitySupported", null, 0, 1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getPredefinedDataTypeDefinition_MultipleColumnsSupported(), ecorePackage.getEBoolean(), "multipleColumnsSupported", null, 0, 1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getPredefinedDataTypeDefinition_NullableSupported(), ecorePackage.getEBoolean(), "nullableSupported", "true", 0, 1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+		initEAttribute(getPredefinedDataTypeDefinition_DefaultSupported(), ecorePackage.getEBoolean(), "defaultSupported", "true", 0, 1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+		initEAttribute(getPredefinedDataTypeDefinition_ClusteringSupported(), ecorePackage.getEBoolean(), "clusteringSupported", null, 0, 1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getPredefinedDataTypeDefinition_FillFactorSupported(), ecorePackage.getEBoolean(), "fillFactorSupported", null, 0, 1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getPredefinedDataTypeDefinition_BitDataSupported(), ecorePackage.getEBoolean(), "bitDataSupported", null, 0, 1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getPredefinedDataTypeDefinition_MaximumValue(), ecorePackage.getELong(), "maximumValue", null, 0, 1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getPredefinedDataTypeDefinition_MinimumValue(), ecorePackage.getELong(), "minimumValue", null, 0, 1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getPredefinedDataTypeDefinition_MaximumLength(), ecorePackage.getEInt(), "maximumLength", null, 0, 1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getPredefinedDataTypeDefinition_MaximumPrecision(), ecorePackage.getEInt(), "maximumPrecision", null, 0, 1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getPredefinedDataTypeDefinition_MaximumScale(), ecorePackage.getEInt(), "maximumScale", null, 0, 1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getPredefinedDataTypeDefinition_MinimumScale(), ecorePackage.getEInt(), "minimumScale", null, 0, 1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getPredefinedDataTypeDefinition_DefaultValueTypes(), ecorePackage.getEString(), "defaultValueTypes", null, 0, -1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getPredefinedDataTypeDefinition_PrimitiveType(), theSQLDataTypesPackage.getPrimitiveType(), "primitiveType", null, 0, 1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getPredefinedDataTypeDefinition_Name(), ecorePackage.getEString(), "name", null, 0, -1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getPredefinedDataTypeDefinition_JdbcEnumType(), ecorePackage.getEInt(), "jdbcEnumType", null, 0, 1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getPredefinedDataTypeDefinition_CharacterSet(), ecorePackage.getEString(), "characterSet", null, 0, -1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getPredefinedDataTypeDefinition_EncodingScheme(), ecorePackage.getEString(), "encodingScheme", null, 0, -1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getPredefinedDataTypeDefinition_CharacterSetSuffix(), ecorePackage.getEString(), "characterSetSuffix", "", 0, 1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+		initEAttribute(getPredefinedDataTypeDefinition_EncodingSchemeSuffix(), ecorePackage.getEString(), "encodingSchemeSuffix", "", 0, 1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+		initEAttribute(getPredefinedDataTypeDefinition_JavaClassName(), ecorePackage.getEString(), "javaClassName", null, 0, 1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getPredefinedDataTypeDefinition_DefaultLength(), ecorePackage.getEInt(), "defaultLength", null, 0, 1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getPredefinedDataTypeDefinition_DefaultPrecision(), ecorePackage.getEInt(), "defaultPrecision", null, 0, 1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getPredefinedDataTypeDefinition_DefaultScale(), ecorePackage.getEInt(), "defaultScale", null, 0, 1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getPredefinedDataTypeDefinition_CutoffPrecision(), ecorePackage.getEInt(), "cutoffPrecision", null, 0, 1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getPredefinedDataTypeDefinition_LengthUnit(), this.getLengthUnit(), "lengthUnit", null, 0, 1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getPredefinedDataTypeDefinition_OrderingSupported(), ecorePackage.getEBoolean(), "orderingSupported", "true", 0, 1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+		initEAttribute(getPredefinedDataTypeDefinition_GroupingSupported(), ecorePackage.getEBoolean(), "groupingSupported", "true", 0, 1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+		initEAttribute(getPredefinedDataTypeDefinition_DisplayName(), ecorePackage.getEString(), "displayName", null, 0, 1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getPredefinedDataTypeDefinition_DisplayNameSupported(), ecorePackage.getEBoolean(), "displayNameSupported", null, 0, 1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getPredefinedDataTypeDefinition_LeadingFieldQualifierSupported(), ecorePackage.getEBoolean(), "leadingFieldQualifierSupported", null, 0, 1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getPredefinedDataTypeDefinition_TrailingFieldQualifierSupported(), ecorePackage.getEBoolean(), "trailingFieldQualifierSupported", null, 0, 1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getPredefinedDataTypeDefinition_FieldQualifierSeparator(), ecorePackage.getEString(), "fieldQualifierSeparator", null, 0, 1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getPredefinedDataTypeDefinition_LargeValueSpecifierSupported(), ecorePackage.getEBoolean(), "largeValueSpecifierSupported", null, 0, 1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getPredefinedDataTypeDefinition_LargeValueSpecifierName(), ecorePackage.getEString(), "largeValueSpecifierName", null, 0, 1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getPredefinedDataTypeDefinition_LargeValueSpecifierLength(), ecorePackage.getEInt(), "largeValueSpecifierLength", null, 0, 1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getPredefinedDataTypeDefinition_LengthSemanticSupported(), ecorePackage.getEBoolean(), "lengthSemanticSupported", null, 0, 1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getPredefinedDataTypeDefinition_LengthSemantic(), ecorePackage.getEString(), "lengthSemantic", null, 0, -1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getPredefinedDataTypeDefinition_LanguageType(), this.getLanguageType(), "languageType", null, 0, -1, PredefinedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(tableSpaceDefinitionEClass, TableSpaceDefinition.class, "TableSpaceDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getTableSpaceDefinition_TypeSupported(), ecorePackage.getEBoolean(), "typeSupported", null, 0, 1, TableSpaceDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getTableSpaceDefinition_ExtentSizeSupported(), ecorePackage.getEBoolean(), "extentSizeSupported", null, 0, 1, TableSpaceDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getTableSpaceDefinition_PrefetchSizeSupported(), ecorePackage.getEBoolean(), "prefetchSizeSupported", null, 0, 1, TableSpaceDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getTableSpaceDefinition_ManagedBySupported(), ecorePackage.getEBoolean(), "managedBySupported", null, 0, 1, TableSpaceDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getTableSpaceDefinition_PageSizeSupported(), ecorePackage.getEBoolean(), "pageSizeSupported", null, 0, 1, TableSpaceDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getTableSpaceDefinition_BufferPoolSupported(), ecorePackage.getEBoolean(), "bufferPoolSupported", null, 0, 1, TableSpaceDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getTableSpaceDefinition_DefaultSupported(), ecorePackage.getEBoolean(), "defaultSupported", null, 0, 1, TableSpaceDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getTableSpaceDefinition_ContainerMaximumSizeSupported(), ecorePackage.getEBoolean(), "containerMaximumSizeSupported", null, 0, 1, TableSpaceDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getTableSpaceDefinition_ContainerInitialSizeSupported(), ecorePackage.getEBoolean(), "containerInitialSizeSupported", null, 0, 1, TableSpaceDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getTableSpaceDefinition_ContainerExtentSizeSupported(), ecorePackage.getEBoolean(), "containerExtentSizeSupported", null, 0, 1, TableSpaceDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getTableSpaceDefinition_TableSpaceType(), this.getTableSpaceType(), "tableSpaceType", null, 0, -1, TableSpaceDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getTableSpaceDefinition_MaximumIdentifierLength(), ecorePackage.getEInt(), "maximumIdentifierLength", null, 0, 1, TableSpaceDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(storedProcedureDefinitionEClass, StoredProcedureDefinition.class, "StoredProcedureDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEReference(getStoredProcedureDefinition_PredefinedDataTypeDefinitions(), this.getPredefinedDataTypeDefinition(), null, "predefinedDataTypeDefinitions", null, 0, -1, StoredProcedureDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getStoredProcedureDefinition_NullInputActionSupported(), ecorePackage.getEBoolean(), "nullInputActionSupported", null, 0, 1, StoredProcedureDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getStoredProcedureDefinition_PackageGenerationSupported(), ecorePackage.getEBoolean(), "packageGenerationSupported", null, 0, 1, StoredProcedureDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getStoredProcedureDefinition_DetermininsticSupported(), ecorePackage.getEBoolean(), "determininsticSupported", null, 0, 1, StoredProcedureDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getStoredProcedureDefinition_ReturnedNullSupported(), ecorePackage.getEBoolean(), "returnedNullSupported", null, 0, 1, StoredProcedureDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getStoredProcedureDefinition_ReturnedTypeDeclarationConstraintSupported(), ecorePackage.getEBoolean(), "returnedTypeDeclarationConstraintSupported", null, 0, 1, StoredProcedureDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getStoredProcedureDefinition_ParameterInitValueSupported(), ecorePackage.getEBoolean(), "parameterInitValueSupported", null, 0, 1, StoredProcedureDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getStoredProcedureDefinition_ParameterStyleSupported(), ecorePackage.getEBoolean(), "parameterStyleSupported", null, 0, 1, StoredProcedureDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getStoredProcedureDefinition_ReturnTypeSupported(), ecorePackage.getEBoolean(), "returnTypeSupported", null, 0, 1, StoredProcedureDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getStoredProcedureDefinition_ParameterDeclarationConstraintSupported(), ecorePackage.getEBoolean(), "parameterDeclarationConstraintSupported", null, 0, 1, StoredProcedureDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getStoredProcedureDefinition_MaximumActionBodyLength(), ecorePackage.getEInt(), "maximumActionBodyLength", null, 0, 1, StoredProcedureDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getStoredProcedureDefinition_ParameterStyle(), this.getParameterStyle(), "parameterStyle", null, 0, -1, StoredProcedureDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getStoredProcedureDefinition_LanguageType(), this.getLanguageType(), "languageType", null, 0, -1, StoredProcedureDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getStoredProcedureDefinition_FunctionLanguageType(), this.getLanguageType(), "functionLanguageType", null, 0, -1, StoredProcedureDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getStoredProcedureDefinition_ProcedureType(), this.getProcedureType(), "procedureType", null, 0, -1, StoredProcedureDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getStoredProcedureDefinition_MaximumIdentifierLength(), ecorePackage.getEInt(), "maximumIdentifierLength", null, 0, 1, StoredProcedureDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(triggerDefinitionEClass, TriggerDefinition.class, "TriggerDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getTriggerDefinition_MaximumReferencePartLength(), ecorePackage.getEInt(), "maximumReferencePartLength", null, 0, 1, TriggerDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getTriggerDefinition_MaximumActionBodyLength(), ecorePackage.getEInt(), "maximumActionBodyLength", null, 0, 1, TriggerDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getTriggerDefinition_TypeSupported(), ecorePackage.getEBoolean(), "typeSupported", null, 0, 1, TriggerDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getTriggerDefinition_WhenClauseSupported(), ecorePackage.getEBoolean(), "whenClauseSupported", "true", 0, 1, TriggerDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+		initEAttribute(getTriggerDefinition_GranularitySupported(), ecorePackage.getEBoolean(), "granularitySupported", null, 0, 1, TriggerDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getTriggerDefinition_ReferencesClauseSupported(), ecorePackage.getEBoolean(), "referencesClauseSupported", null, 0, 1, TriggerDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getTriggerDefinition_PerColumnUpdateTriggerSupported(), ecorePackage.getEBoolean(), "perColumnUpdateTriggerSupported", null, 0, 1, TriggerDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getTriggerDefinition_InsteadOfTriggerSupported(), ecorePackage.getEBoolean(), "insteadOfTriggerSupported", null, 0, 1, TriggerDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getTriggerDefinition_RowTriggerReferenceSupported(), ecorePackage.getEBoolean(), "rowTriggerReferenceSupported", null, 0, 1, TriggerDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getTriggerDefinition_TableTriggerReferenceSupported(), ecorePackage.getEBoolean(), "tableTriggerReferenceSupported", null, 0, 1, TriggerDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getTriggerDefinition_MaximumIdentifierLength(), ecorePackage.getEInt(), "maximumIdentifierLength", null, 0, 1, TriggerDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(columnDefinitionEClass, ColumnDefinition.class, "ColumnDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEReference(getColumnDefinition_IdentityColumnDataTypeDefinitions(), this.getPredefinedDataTypeDefinition(), null, "identityColumnDataTypeDefinitions", null, 1, -1, ColumnDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getColumnDefinition_IdentitySupported(), ecorePackage.getEBoolean(), "identitySupported", null, 0, 1, ColumnDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getColumnDefinition_ComputedSupported(), ecorePackage.getEBoolean(), "computedSupported", "true", 0, 1, ColumnDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+		initEAttribute(getColumnDefinition_IdentityStartValueSupported(), ecorePackage.getEBoolean(), "identityStartValueSupported", "false", 0, 1, ColumnDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+		initEAttribute(getColumnDefinition_IdentityIncrementSupported(), ecorePackage.getEBoolean(), "identityIncrementSupported", "false", 0, 1, ColumnDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+		initEAttribute(getColumnDefinition_IdentityMinimumSupported(), ecorePackage.getEBoolean(), "identityMinimumSupported", "false", 0, 1, ColumnDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+		initEAttribute(getColumnDefinition_IdentityMaximumSupported(), ecorePackage.getEBoolean(), "identityMaximumSupported", "false", 0, 1, ColumnDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+		initEAttribute(getColumnDefinition_IdentityCycleSupported(), ecorePackage.getEBoolean(), "identityCycleSupported", "false", 0, 1, ColumnDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+		initEAttribute(getColumnDefinition_MaximumIdentifierLength(), ecorePackage.getEInt(), "maximumIdentifierLength", null, 0, 1, ColumnDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(constraintDefinitionEClass, ConstraintDefinition.class, "ConstraintDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getConstraintDefinition_DeferrableConstraintSupported(), ecorePackage.getEBoolean(), "deferrableConstraintSupported", null, 0, 1, ConstraintDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getConstraintDefinition_InformationalConstraintSupported(), ecorePackage.getEBoolean(), "informationalConstraintSupported", null, 0, 1, ConstraintDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getConstraintDefinition_ClusteredPrimaryKeySupported(), ecorePackage.getEBoolean(), "clusteredPrimaryKeySupported", null, 0, 1, ConstraintDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getConstraintDefinition_ClusteredUniqueConstraintSupported(), ecorePackage.getEBoolean(), "clusteredUniqueConstraintSupported", null, 0, 1, ConstraintDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getConstraintDefinition_PrimaryKeyNullable(), ecorePackage.getEBoolean(), "primaryKeyNullable", null, 0, 1, ConstraintDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getConstraintDefinition_UniqueKeyNullable(), ecorePackage.getEBoolean(), "uniqueKeyNullable", null, 0, 1, ConstraintDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getConstraintDefinition_MaximumCheckExpressionLength(), ecorePackage.getEInt(), "maximumCheckExpressionLength", null, 0, 1, ConstraintDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getConstraintDefinition_ParentUpdateDRIRuleType(), this.getParentUpdateDRIRuleType(), "parentUpdateDRIRuleType", null, 0, -1, ConstraintDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getConstraintDefinition_ParentDeleteDRIRuleType(), this.getParentDeleteDRIRuleType(), "parentDeleteDRIRuleType", null, 0, -1, ConstraintDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getConstraintDefinition_CheckOption(), this.getCheckOption(), "checkOption", null, 0, -1, ConstraintDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getConstraintDefinition_MaximumPrimaryKeyIdentifierLength(), ecorePackage.getEInt(), "maximumPrimaryKeyIdentifierLength", null, 0, 1, ConstraintDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getConstraintDefinition_MaximumForeignKeyIdentifierLength(), ecorePackage.getEInt(), "maximumForeignKeyIdentifierLength", null, 0, 1, ConstraintDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getConstraintDefinition_MaximumCheckConstraintIdentifierLength(), ecorePackage.getEInt(), "maximumCheckConstraintIdentifierLength", null, 0, 1, ConstraintDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(indexDefinitionEClass, IndexDefinition.class, "IndexDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getIndexDefinition_PercentFreeTerminology(), this.getPercentFreeTerminology(), "percentFreeTerminology", null, 0, 1, IndexDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getIndexDefinition_PercentFreeChangeable(), ecorePackage.getEBoolean(), "percentFreeChangeable", null, 0, 1, IndexDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getIndexDefinition_ClusteringSupported(), ecorePackage.getEBoolean(), "clusteringSupported", null, 0, 1, IndexDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getIndexDefinition_ClusterChangeable(), ecorePackage.getEBoolean(), "clusterChangeable", null, 0, 1, IndexDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getIndexDefinition_FillFactorSupported(), ecorePackage.getEBoolean(), "fillFactorSupported", null, 0, 1, IndexDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getIndexDefinition_IncludedColumnsSupported(), ecorePackage.getEBoolean(), "includedColumnsSupported", "false", 0, 1, IndexDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+		initEAttribute(getIndexDefinition_MaximumIdentifierLength(), ecorePackage.getEInt(), "maximumIdentifierLength", null, 0, 1, IndexDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(extendedDefinitionEClass, ExtendedDefinition.class, "ExtendedDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getExtendedDefinition_Name(), ecorePackage.getEString(), "name", null, 0, 1, ExtendedDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getExtendedDefinition_Value(), ecorePackage.getEString(), "value", null, 0, 1, ExtendedDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(tableDefinitionEClass, TableDefinition.class, "TableDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getTableDefinition_AuditSupported(), ecorePackage.getEBoolean(), "auditSupported", null, 0, 1, TableDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getTableDefinition_DataCaptureSupported(), ecorePackage.getEBoolean(), "dataCaptureSupported", null, 0, 1, TableDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getTableDefinition_EditProcSupported(), ecorePackage.getEBoolean(), "editProcSupported", null, 0, 1, TableDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getTableDefinition_EncodingSupported(), ecorePackage.getEBoolean(), "encodingSupported", null, 0, 1, TableDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getTableDefinition_ValidProcSupported(), ecorePackage.getEBoolean(), "validProcSupported", null, 0, 1, TableDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getTableDefinition_MaximumIdentifierLength(), ecorePackage.getEInt(), "maximumIdentifierLength", null, 0, 1, TableDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(sequenceDefinitionEClass, SequenceDefinition.class, "SequenceDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEReference(getSequenceDefinition_PredefinedDataTypeDefinitions(), this.getPredefinedDataTypeDefinition(), null, "predefinedDataTypeDefinitions", null, 1, -1, SequenceDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getSequenceDefinition_DefaultDataTypeDefinition(), this.getPredefinedDataTypeDefinition(), null, "defaultDataTypeDefinition", null, 1, 1, SequenceDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getSequenceDefinition_TypeEnumerationSupported(), ecorePackage.getEBoolean(), "typeEnumerationSupported", null, 0, 1, SequenceDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getSequenceDefinition_CacheSupported(), ecorePackage.getEBoolean(), "cacheSupported", null, 0, 1, SequenceDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getSequenceDefinition_OrderSupported(), ecorePackage.getEBoolean(), "orderSupported", null, 0, 1, SequenceDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getSequenceDefinition_NoMaximumValueString(), ecorePackage.getEString(), "noMaximumValueString", null, 0, 1, SequenceDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getSequenceDefinition_NoMinimumValueString(), ecorePackage.getEString(), "noMinimumValueString", null, 0, 1, SequenceDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getSequenceDefinition_NoCacheString(), ecorePackage.getEString(), "noCacheString", null, 0, 1, SequenceDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getSequenceDefinition_CacheDefaultValue(), ecorePackage.getEInt(), "cacheDefaultValue", null, 0, 1, SequenceDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(userDefinedTypeDefinitionEClass, UserDefinedTypeDefinition.class, "UserDefinedTypeDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getUserDefinedTypeDefinition_DefaultValueSupported(), ecorePackage.getEBoolean(), "defaultValueSupported", null, 0, 1, UserDefinedTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getUserDefinedTypeDefinition_DistinctTypeSupported(), ecorePackage.getEBoolean(), "distinctTypeSupported", null, 0, 1, UserDefinedTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getUserDefinedTypeDefinition_StructuredTypeSupported(), ecorePackage.getEBoolean(), "structuredTypeSupported", null, 0, 1, UserDefinedTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getUserDefinedTypeDefinition_MaximumIdentifierLength(), ecorePackage.getEInt(), "maximumIdentifierLength", null, 0, 1, UserDefinedTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(queryDefinitionEClass, QueryDefinition.class, "QueryDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getQueryDefinition_IdentifierQuoteString(), ecorePackage.getEString(), "identifierQuoteString", "\\\"", 0, 1, QueryDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		initEAttribute(getQueryDefinition_HostVariableMarker(), ecorePackage.getEString(), "hostVariableMarker", ":", 0, 1, QueryDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+		initEAttribute(getQueryDefinition_HostVariableMarkerSupported(), ecorePackage.getEBoolean(), "hostVariableMarkerSupported", "false", 0, 1, QueryDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+		initEAttribute(getQueryDefinition_CastExpressionSupported(), ecorePackage.getEBoolean(), "castExpressionSupported", "false", 0, 1, QueryDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+		initEAttribute(getQueryDefinition_DefaultKeywordForInsertValueSupported(), ecorePackage.getEBoolean(), "defaultKeywordForInsertValueSupported", "false", 0, 1, QueryDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+		initEAttribute(getQueryDefinition_ExtendedGroupingSupported(), ecorePackage.getEBoolean(), "extendedGroupingSupported", "false", 0, 1, QueryDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+		initEAttribute(getQueryDefinition_TableAliasInDeleteSupported(), ecorePackage.getEBoolean(), "tableAliasInDeleteSupported", "false", 0, 1, QueryDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+
+		initEClass(sqlSyntaxDefinitionEClass, SQLSyntaxDefinition.class, "SQLSyntaxDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getSQLSyntaxDefinition_Keywords(), ecorePackage.getEString(), "keywords", null, 0, -1, SQLSyntaxDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getSQLSyntaxDefinition_Operators(), ecorePackage.getEString(), "operators", null, 0, -1, SQLSyntaxDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getSQLSyntaxDefinition_TerminationCharacter(), ecorePackage.getEString(), "terminationCharacter", ";", 0, 1, SQLSyntaxDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+
+		initEClass(nicknameDefinitionEClass, NicknameDefinition.class, "NicknameDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getNicknameDefinition_ConstraintSupported(), ecorePackage.getEBoolean(), "constraintSupported", null, 0, 1, NicknameDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getNicknameDefinition_IndexSupported(), ecorePackage.getEBoolean(), "indexSupported", null, 0, 1, NicknameDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getNicknameDefinition_MaximumIdentifierLength(), ecorePackage.getEInt(), "maximumIdentifierLength", null, 0, 1, NicknameDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(schemaDefinitionEClass, SchemaDefinition.class, "SchemaDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getSchemaDefinition_MaximumIdentifierLength(), ecorePackage.getEInt(), "maximumIdentifierLength", null, 0, 1, SchemaDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(viewDefinitionEClass, ViewDefinition.class, "ViewDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getViewDefinition_MaximumIdentifierLength(), ecorePackage.getEInt(), "maximumIdentifierLength", null, 0, 1, ViewDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getViewDefinition_IndexSupported(), ecorePackage.getEBoolean(), "indexSupported", null, 0, 1, ViewDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getViewDefinition_CheckOptionSupported(), ecorePackage.getEBoolean(), "checkOptionSupported", "true", 0, 1, ViewDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+		initEAttribute(getViewDefinition_CheckOptionLevelsSupported(), ecorePackage.getEBoolean(), "checkOptionLevelsSupported", null, 0, 1, ViewDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(fieldQualifierDefinitionEClass, FieldQualifierDefinition.class, "FieldQualifierDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEReference(getFieldQualifierDefinition_ValidTrailingFieldQualifierDefinitions(), this.getFieldQualifierDefinition(), null, "validTrailingFieldQualifierDefinitions", null, 0, -1, FieldQualifierDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getFieldQualifierDefinition_Name(), theSQLDataTypesPackage.getIntervalQualifierType(), "name", null, 0, 1, FieldQualifierDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getFieldQualifierDefinition_MaximumPrecision(), ecorePackage.getEInt(), "maximumPrecision", null, 0, 1, FieldQualifierDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getFieldQualifierDefinition_DefaultPrecision(), ecorePackage.getEInt(), "defaultPrecision", null, 0, 1, FieldQualifierDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getFieldQualifierDefinition_PrecisionSupported(), ecorePackage.getEBoolean(), "precisionSupported", null, 0, 1, FieldQualifierDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getFieldQualifierDefinition_MaximumScale(), ecorePackage.getEInt(), "maximumScale", null, 0, 1, FieldQualifierDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getFieldQualifierDefinition_DefaultScale(), ecorePackage.getEInt(), "defaultScale", null, 0, 1, FieldQualifierDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getFieldQualifierDefinition_ScaleSupported(), ecorePackage.getEBoolean(), "scaleSupported", null, 0, 1, FieldQualifierDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(debuggerDefinitionEClass, DebuggerDefinition.class, "DebuggerDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getDebuggerDefinition_ConditionSupported(), ecorePackage.getEBoolean(), "conditionSupported", null, 0, 1, DebuggerDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(privilegedElementDefinitionEClass, PrivilegedElementDefinition.class, "PrivilegedElementDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEReference(getPrivilegedElementDefinition_PrivilegeDefinitions(), this.getPrivilegeDefinition(), null, "privilegeDefinitions", null, 0, -1, PrivilegedElementDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getPrivilegedElementDefinition_Name(), ecorePackage.getEString(), "name", null, 0, 1, PrivilegedElementDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(privilegeDefinitionEClass, PrivilegeDefinition.class, "PrivilegeDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEReference(getPrivilegeDefinition_ActionElementDefinitions(), this.getPrivilegedElementDefinition(), null, "actionElementDefinitions", null, 0, -1, PrivilegeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getPrivilegeDefinition_Name(), ecorePackage.getEString(), "name", null, 0, 1, PrivilegeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(constructedDataTypeDefinitionEClass, ConstructedDataTypeDefinition.class, "ConstructedDataTypeDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getConstructedDataTypeDefinition_ArrayDatatypeSupported(), ecorePackage.getEBoolean(), "arrayDatatypeSupported", null, 0, 1, ConstructedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getConstructedDataTypeDefinition_MultisetDatatypeSupported(), ecorePackage.getEBoolean(), "multisetDatatypeSupported", null, 0, 1, ConstructedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getConstructedDataTypeDefinition_RowDatatypeSupported(), ecorePackage.getEBoolean(), "rowDatatypeSupported", null, 0, 1, ConstructedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getConstructedDataTypeDefinition_ReferenceDatatypeSupported(), ecorePackage.getEBoolean(), "referenceDatatypeSupported", null, 0, 1, ConstructedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getConstructedDataTypeDefinition_CursorDatatypeSupported(), ecorePackage.getEBoolean(), "cursorDatatypeSupported", null, 0, 1, ConstructedDataTypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		// Initialize enums and add enum literals
+		initEEnum(checkOptionEEnum, CheckOption.class, "CheckOption"); //$NON-NLS-1$
+		addEEnumLiteral(checkOptionEEnum, CheckOption.NONE_LITERAL);
+		addEEnumLiteral(checkOptionEEnum, CheckOption.CASCADE_LITERAL);
+		addEEnumLiteral(checkOptionEEnum, CheckOption.LOCAL_LITERAL);
+
+		initEEnum(languageTypeEEnum, LanguageType.class, "LanguageType"); //$NON-NLS-1$
+		addEEnumLiteral(languageTypeEEnum, LanguageType.SQL_LITERAL);
+		addEEnumLiteral(languageTypeEEnum, LanguageType.JAVA_LITERAL);
+		addEEnumLiteral(languageTypeEEnum, LanguageType.C_LITERAL);
+		addEEnumLiteral(languageTypeEEnum, LanguageType.OLE_LITERAL);
+		addEEnumLiteral(languageTypeEEnum, LanguageType.ASSEMBLY_LITERAL);
+		addEEnumLiteral(languageTypeEEnum, LanguageType.COBOL_LITERAL);
+		addEEnumLiteral(languageTypeEEnum, LanguageType.PLI_LITERAL);
+		addEEnumLiteral(languageTypeEEnum, LanguageType.CPLUSPLUS_LITERAL);
+		addEEnumLiteral(languageTypeEEnum, LanguageType.CL_LITERAL);
+		addEEnumLiteral(languageTypeEEnum, LanguageType.COBOLLE_LITERAL);
+		addEEnumLiteral(languageTypeEEnum, LanguageType.FORTRAN_LITERAL);
+		addEEnumLiteral(languageTypeEEnum, LanguageType.REXX_LITERAL);
+		addEEnumLiteral(languageTypeEEnum, LanguageType.RPG_LITERAL);
+		addEEnumLiteral(languageTypeEEnum, LanguageType.RPGLE_LITERAL);
+		addEEnumLiteral(languageTypeEEnum, LanguageType.PLSQL_LITERAL);
+
+		initEEnum(parameterStyleEEnum, ParameterStyle.class, "ParameterStyle"); //$NON-NLS-1$
+		addEEnumLiteral(parameterStyleEEnum, ParameterStyle.DB2SQL_LITERAL);
+		addEEnumLiteral(parameterStyleEEnum, ParameterStyle.GENERAL_LITERAL);
+		addEEnumLiteral(parameterStyleEEnum, ParameterStyle.GENERAL_WITH_NULLS_LITERAL);
+		addEEnumLiteral(parameterStyleEEnum, ParameterStyle.DB2GENRL_LITERAL);
+		addEEnumLiteral(parameterStyleEEnum, ParameterStyle.DB2DARI_LITERAL);
+		addEEnumLiteral(parameterStyleEEnum, ParameterStyle.JAVA_LITERAL);
+		addEEnumLiteral(parameterStyleEEnum, ParameterStyle.SQL_LITERAL);
+
+		initEEnum(parentDeleteDRIRuleTypeEEnum, ParentDeleteDRIRuleType.class, "ParentDeleteDRIRuleType"); //$NON-NLS-1$
+		addEEnumLiteral(parentDeleteDRIRuleTypeEEnum, ParentDeleteDRIRuleType.NO_ACTION_LITERAL);
+		addEEnumLiteral(parentDeleteDRIRuleTypeEEnum, ParentDeleteDRIRuleType.RESTRICT_LITERAL);
+		addEEnumLiteral(parentDeleteDRIRuleTypeEEnum, ParentDeleteDRIRuleType.CASCADE_LITERAL);
+		addEEnumLiteral(parentDeleteDRIRuleTypeEEnum, ParentDeleteDRIRuleType.SET_NULL_LITERAL);
+		addEEnumLiteral(parentDeleteDRIRuleTypeEEnum, ParentDeleteDRIRuleType.SET_DEFAULT_LITERAL);
+
+		initEEnum(parentUpdateDRIRuleTypeEEnum, ParentUpdateDRIRuleType.class, "ParentUpdateDRIRuleType"); //$NON-NLS-1$
+		addEEnumLiteral(parentUpdateDRIRuleTypeEEnum, ParentUpdateDRIRuleType.NO_ACTION_LITERAL);
+		addEEnumLiteral(parentUpdateDRIRuleTypeEEnum, ParentUpdateDRIRuleType.RESTRICT_LITERAL);
+		addEEnumLiteral(parentUpdateDRIRuleTypeEEnum, ParentUpdateDRIRuleType.CASCADE_LITERAL);
+		addEEnumLiteral(parentUpdateDRIRuleTypeEEnum, ParentUpdateDRIRuleType.SET_NULL_LITERAL);
+		addEEnumLiteral(parentUpdateDRIRuleTypeEEnum, ParentUpdateDRIRuleType.SET_DEFAULT_LITERAL);
+
+		initEEnum(procedureTypeEEnum, ProcedureType.class, "ProcedureType"); //$NON-NLS-1$
+		addEEnumLiteral(procedureTypeEEnum, ProcedureType.PROCEDURE_LITERAL);
+		addEEnumLiteral(procedureTypeEEnum, ProcedureType.FUNCTION_LITERAL);
+
+		initEEnum(tableSpaceTypeEEnum, TableSpaceType.class, "TableSpaceType"); //$NON-NLS-1$
+		addEEnumLiteral(tableSpaceTypeEEnum, TableSpaceType.REGULAR_LITERAL);
+		addEEnumLiteral(tableSpaceTypeEEnum, TableSpaceType.LOB_LITERAL);
+		addEEnumLiteral(tableSpaceTypeEEnum, TableSpaceType.SYSTEM_TEMPORARY_LITERAL);
+		addEEnumLiteral(tableSpaceTypeEEnum, TableSpaceType.USER_TEMPORARY_LITERAL);
+		addEEnumLiteral(tableSpaceTypeEEnum, TableSpaceType.PERMANENT_LITERAL);
+		addEEnumLiteral(tableSpaceTypeEEnum, TableSpaceType.TEMPORARY_LITERAL);
+		addEEnumLiteral(tableSpaceTypeEEnum, TableSpaceType.LONG_LITERAL);
+		addEEnumLiteral(tableSpaceTypeEEnum, TableSpaceType.LARGE_LITERAL);
+
+		initEEnum(percentFreeTerminologyEEnum, PercentFreeTerminology.class, "PercentFreeTerminology"); //$NON-NLS-1$
+		addEEnumLiteral(percentFreeTerminologyEEnum, PercentFreeTerminology.PERCENT_FREE_LITERAL);
+		addEEnumLiteral(percentFreeTerminologyEEnum, PercentFreeTerminology.FILL_FACTOR_LITERAL);
+		addEEnumLiteral(percentFreeTerminologyEEnum, PercentFreeTerminology.THRESHOLD_LITERAL);
+
+		initEEnum(lengthUnitEEnum, LengthUnit.class, "LengthUnit"); //$NON-NLS-1$
+		addEEnumLiteral(lengthUnitEEnum, LengthUnit.DECIMAL_LITERAL);
+		addEEnumLiteral(lengthUnitEEnum, LengthUnit.BIT_LITERAL);
+		addEEnumLiteral(lengthUnitEEnum, LengthUnit.BYTE_LITERAL);
+		addEEnumLiteral(lengthUnitEEnum, LengthUnit.DOUBLE_BYTE_LITERAL);
+
+		// Create resource
+		createResource(eNS_URI);
+	}
+
+} //DatabaseDefinitionPackageImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/DatabaseVendorDefinitionImpl.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/DatabaseVendorDefinitionImpl.java
new file mode 100644
index 0000000..75adc9d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/DatabaseVendorDefinitionImpl.java
@@ -0,0 +1,3147 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.dbdefinition.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.dbdefinition.ColumnDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.ConstructedDataTypeDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage;
+import org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.DebuggerDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.ExtendedDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.IndexDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.NicknameDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.PrivilegedElementDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.QueryDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.SQLSyntaxDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.SchemaDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.SequenceDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.TableDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.UserDefinedTypeDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.ViewDefinition;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Database Vendor Definition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#getPredefinedDataTypeDefinitions <em>Predefined Data Type Definitions</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#getTableSpaceDefinition <em>Table Space Definition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#getStoredProcedureDefinition <em>Stored Procedure Definition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#getTriggerDefinition <em>Trigger Definition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#getColumnDefinition <em>Column Definition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#getConstraintDefinition <em>Constraint Definition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#getExtendedDefinitions <em>Extended Definitions</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#getIndexDefinition <em>Index Definition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#getTableDefinition <em>Table Definition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#getSequenceDefinition <em>Sequence Definition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#getUdtDefinition <em>Udt Definition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#getQueryDefinition <em>Query Definition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#getSQLSyntaxDefinition <em>SQL Syntax Definition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#getNicknameDefinition <em>Nickname Definition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#getSchemaDefinition <em>Schema Definition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#getViewDefinition <em>View Definition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#getDebuggerDefinition <em>Debugger Definition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#getPrivilegedElementDefinitions <em>Privileged Element Definitions</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#getConstructedDataTypeDefinition <em>Constructed Data Type Definition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#getVendor <em>Vendor</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#getVersion <em>Version</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#isConstraintsSupported <em>Constraints Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#getMaximumIdentifierLength <em>Maximum Identifier Length</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#isTriggerSupported <em>Trigger Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#isSnapshotViewSupported <em>Snapshot View Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#isJoinSupported <em>Join Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#isViewTriggerSupported <em>View Trigger Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#isTablespacesSupported <em>Tablespaces Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#getMaximumCommentLength <em>Maximum Comment Length</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#isSequenceSupported <em>Sequence Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#isMQTSupported <em>MQT Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#isSchemaSupported <em>Schema Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#isAliasSupported <em>Alias Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#isSynonymSupported <em>Synonym Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#isUserDefinedTypeSupported <em>User Defined Type Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#isDomainSupported <em>Domain Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#isSQLStatementSupported <em>SQL Statement Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#isNicknameSupported <em>Nickname Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#isQuotedDMLSupported <em>Quoted DML Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#isQuotedDDLSupported <em>Quoted DDL Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#isXmlSupported <em>Xml Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#isMQTIndexSupported <em>MQT Index Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#isEventSupported <em>Event Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#isSqlUDFSupported <em>Sql UDF Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#isStoredProcedureSupported <em>Stored Procedure Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#isPackageSupported <em>Package Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#isAuthorizationIdentifierSupported <em>Authorization Identifier Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#isRoleSupported <em>Role Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#isGroupSupported <em>Group Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#isUserSupported <em>User Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#isRoleAuthorizationSupported <em>Role Authorization Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#isConstructedDataTypeSupported <em>Constructed Data Type Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DatabaseVendorDefinitionImpl#isUDFSupported <em>UDF Supported</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DatabaseVendorDefinitionImpl extends EObjectImpl implements DatabaseVendorDefinition {
+	/**
+	 * The cached value of the '{@link #getPredefinedDataTypeDefinitions() <em>Predefined Data Type Definitions</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPredefinedDataTypeDefinitions()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList predefinedDataTypeDefinitions;
+
+	/**
+	 * The cached value of the '{@link #getTableSpaceDefinition() <em>Table Space Definition</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTableSpaceDefinition()
+	 * @generated
+	 * @ordered
+	 */
+	protected TableSpaceDefinition tableSpaceDefinition;
+
+	/**
+	 * The cached value of the '{@link #getStoredProcedureDefinition() <em>Stored Procedure Definition</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getStoredProcedureDefinition()
+	 * @generated
+	 * @ordered
+	 */
+	protected StoredProcedureDefinition storedProcedureDefinition;
+
+	/**
+	 * The cached value of the '{@link #getTriggerDefinition() <em>Trigger Definition</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTriggerDefinition()
+	 * @generated
+	 * @ordered
+	 */
+	protected TriggerDefinition triggerDefinition;
+
+	/**
+	 * The cached value of the '{@link #getColumnDefinition() <em>Column Definition</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getColumnDefinition()
+	 * @generated
+	 * @ordered
+	 */
+	protected ColumnDefinition columnDefinition;
+
+	/**
+	 * The cached value of the '{@link #getConstraintDefinition() <em>Constraint Definition</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getConstraintDefinition()
+	 * @generated
+	 * @ordered
+	 */
+	protected ConstraintDefinition constraintDefinition;
+
+	/**
+	 * The cached value of the '{@link #getExtendedDefinitions() <em>Extended Definitions</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getExtendedDefinitions()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList extendedDefinitions;
+
+	/**
+	 * The cached value of the '{@link #getIndexDefinition() <em>Index Definition</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getIndexDefinition()
+	 * @generated
+	 * @ordered
+	 */
+	protected IndexDefinition indexDefinition;
+
+	/**
+	 * The cached value of the '{@link #getTableDefinition() <em>Table Definition</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTableDefinition()
+	 * @generated
+	 * @ordered
+	 */
+	protected TableDefinition tableDefinition;
+
+	/**
+	 * The cached value of the '{@link #getSequenceDefinition() <em>Sequence Definition</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSequenceDefinition()
+	 * @generated
+	 * @ordered
+	 */
+	protected SequenceDefinition sequenceDefinition;
+
+	/**
+	 * The cached value of the '{@link #getUdtDefinition() <em>Udt Definition</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getUdtDefinition()
+	 * @generated
+	 * @ordered
+	 */
+	protected UserDefinedTypeDefinition udtDefinition;
+
+	/**
+	 * The cached value of the '{@link #getQueryDefinition() <em>Query Definition</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getQueryDefinition()
+	 * @generated
+	 * @ordered
+	 */
+	protected QueryDefinition queryDefinition;
+
+	/**
+	 * The cached value of the '{@link #getSQLSyntaxDefinition() <em>SQL Syntax Definition</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSQLSyntaxDefinition()
+	 * @generated
+	 * @ordered
+	 */
+	protected SQLSyntaxDefinition sqlSyntaxDefinition;
+
+	/**
+	 * The cached value of the '{@link #getNicknameDefinition() <em>Nickname Definition</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getNicknameDefinition()
+	 * @generated
+	 * @ordered
+	 */
+	protected NicknameDefinition nicknameDefinition;
+
+	/**
+	 * The cached value of the '{@link #getSchemaDefinition() <em>Schema Definition</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSchemaDefinition()
+	 * @generated
+	 * @ordered
+	 */
+	protected SchemaDefinition schemaDefinition;
+
+	/**
+	 * The cached value of the '{@link #getViewDefinition() <em>View Definition</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getViewDefinition()
+	 * @generated
+	 * @ordered
+	 */
+	protected ViewDefinition viewDefinition;
+
+	/**
+	 * The cached value of the '{@link #getDebuggerDefinition() <em>Debugger Definition</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDebuggerDefinition()
+	 * @generated
+	 * @ordered
+	 */
+	protected DebuggerDefinition debuggerDefinition;
+
+	/**
+	 * The cached value of the '{@link #getPrivilegedElementDefinitions() <em>Privileged Element Definitions</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPrivilegedElementDefinitions()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList privilegedElementDefinitions;
+
+	/**
+	 * The cached value of the '{@link #getConstructedDataTypeDefinition() <em>Constructed Data Type Definition</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getConstructedDataTypeDefinition()
+	 * @generated
+	 * @ordered
+	 */
+	protected ConstructedDataTypeDefinition constructedDataTypeDefinition;
+
+	/**
+	 * The default value of the '{@link #getVendor() <em>Vendor</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getVendor()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String VENDOR_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getVendor() <em>Vendor</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getVendor()
+	 * @generated
+	 * @ordered
+	 */
+	protected String vendor = VENDOR_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getVersion() <em>Version</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getVersion()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String VERSION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getVersion() <em>Version</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getVersion()
+	 * @generated
+	 * @ordered
+	 */
+	protected String version = VERSION_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isConstraintsSupported() <em>Constraints Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isConstraintsSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean CONSTRAINTS_SUPPORTED_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isConstraintsSupported() <em>Constraints Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isConstraintsSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean constraintsSupported = CONSTRAINTS_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMaximumIdentifierLength() <em>Maximum Identifier Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumIdentifierLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int MAXIMUM_IDENTIFIER_LENGTH_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getMaximumIdentifierLength() <em>Maximum Identifier Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumIdentifierLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected int maximumIdentifierLength = MAXIMUM_IDENTIFIER_LENGTH_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isTriggerSupported() <em>Trigger Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isTriggerSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean TRIGGER_SUPPORTED_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isTriggerSupported() <em>Trigger Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isTriggerSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean triggerSupported = TRIGGER_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isSnapshotViewSupported() <em>Snapshot View Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isSnapshotViewSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean SNAPSHOT_VIEW_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isSnapshotViewSupported() <em>Snapshot View Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isSnapshotViewSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean snapshotViewSupported = SNAPSHOT_VIEW_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isJoinSupported() <em>Join Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isJoinSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean JOIN_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isJoinSupported() <em>Join Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isJoinSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean joinSupported = JOIN_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isViewTriggerSupported() <em>View Trigger Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isViewTriggerSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean VIEW_TRIGGER_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isViewTriggerSupported() <em>View Trigger Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isViewTriggerSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean viewTriggerSupported = VIEW_TRIGGER_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isTablespacesSupported() <em>Tablespaces Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isTablespacesSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean TABLESPACES_SUPPORTED_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isTablespacesSupported() <em>Tablespaces Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isTablespacesSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean tablespacesSupported = TABLESPACES_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMaximumCommentLength() <em>Maximum Comment Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumCommentLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int MAXIMUM_COMMENT_LENGTH_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getMaximumCommentLength() <em>Maximum Comment Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumCommentLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected int maximumCommentLength = MAXIMUM_COMMENT_LENGTH_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isSequenceSupported() <em>Sequence Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isSequenceSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean SEQUENCE_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isSequenceSupported() <em>Sequence Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isSequenceSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean sequenceSupported = SEQUENCE_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isMQTSupported() <em>MQT Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isMQTSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean MQT_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isMQTSupported() <em>MQT Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isMQTSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean mQTSupported = MQT_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isSchemaSupported() <em>Schema Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isSchemaSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean SCHEMA_SUPPORTED_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isSchemaSupported() <em>Schema Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isSchemaSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean schemaSupported = SCHEMA_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isAliasSupported() <em>Alias Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isAliasSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean ALIAS_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isAliasSupported() <em>Alias Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isAliasSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean aliasSupported = ALIAS_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isSynonymSupported() <em>Synonym Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isSynonymSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean SYNONYM_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isSynonymSupported() <em>Synonym Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isSynonymSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean synonymSupported = SYNONYM_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isUserDefinedTypeSupported() <em>User Defined Type Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isUserDefinedTypeSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean USER_DEFINED_TYPE_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isUserDefinedTypeSupported() <em>User Defined Type Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isUserDefinedTypeSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean userDefinedTypeSupported = USER_DEFINED_TYPE_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isDomainSupported() <em>Domain Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isDomainSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean DOMAIN_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isDomainSupported() <em>Domain Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isDomainSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean domainSupported = DOMAIN_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isSQLStatementSupported() <em>SQL Statement Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isSQLStatementSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean SQL_STATEMENT_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isSQLStatementSupported() <em>SQL Statement Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isSQLStatementSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean sqlStatementSupported = SQL_STATEMENT_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isNicknameSupported() <em>Nickname Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isNicknameSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean NICKNAME_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isNicknameSupported() <em>Nickname Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isNicknameSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean nicknameSupported = NICKNAME_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isQuotedDMLSupported() <em>Quoted DML Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isQuotedDMLSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean QUOTED_DML_SUPPORTED_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isQuotedDMLSupported() <em>Quoted DML Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isQuotedDMLSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean quotedDMLSupported = QUOTED_DML_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isQuotedDDLSupported() <em>Quoted DDL Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isQuotedDDLSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean QUOTED_DDL_SUPPORTED_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isQuotedDDLSupported() <em>Quoted DDL Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isQuotedDDLSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean quotedDDLSupported = QUOTED_DDL_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isXmlSupported() <em>Xml Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isXmlSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean XML_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isXmlSupported() <em>Xml Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isXmlSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean xmlSupported = XML_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isMQTIndexSupported() <em>MQT Index Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isMQTIndexSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean MQT_INDEX_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isMQTIndexSupported() <em>MQT Index Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isMQTIndexSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean mQTIndexSupported = MQT_INDEX_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isEventSupported() <em>Event Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isEventSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean EVENT_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isEventSupported() <em>Event Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isEventSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean eventSupported = EVENT_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isSqlUDFSupported() <em>Sql UDF Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isSqlUDFSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean SQL_UDF_SUPPORTED_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isSqlUDFSupported() <em>Sql UDF Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isSqlUDFSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean sqlUDFSupported = SQL_UDF_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isStoredProcedureSupported() <em>Stored Procedure Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isStoredProcedureSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean STORED_PROCEDURE_SUPPORTED_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isStoredProcedureSupported() <em>Stored Procedure Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isStoredProcedureSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean storedProcedureSupported = STORED_PROCEDURE_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isPackageSupported() <em>Package Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isPackageSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean PACKAGE_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isPackageSupported() <em>Package Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isPackageSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean packageSupported = PACKAGE_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isAuthorizationIdentifierSupported() <em>Authorization Identifier Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isAuthorizationIdentifierSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean AUTHORIZATION_IDENTIFIER_SUPPORTED_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isAuthorizationIdentifierSupported() <em>Authorization Identifier Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isAuthorizationIdentifierSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean authorizationIdentifierSupported = AUTHORIZATION_IDENTIFIER_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isRoleSupported() <em>Role Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isRoleSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean ROLE_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isRoleSupported() <em>Role Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isRoleSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean roleSupported = ROLE_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isGroupSupported() <em>Group Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isGroupSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean GROUP_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isGroupSupported() <em>Group Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isGroupSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean groupSupported = GROUP_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isUserSupported() <em>User Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isUserSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean USER_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isUserSupported() <em>User Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isUserSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean userSupported = USER_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isRoleAuthorizationSupported() <em>Role Authorization Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isRoleAuthorizationSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean ROLE_AUTHORIZATION_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isRoleAuthorizationSupported() <em>Role Authorization Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isRoleAuthorizationSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean roleAuthorizationSupported = ROLE_AUTHORIZATION_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isConstructedDataTypeSupported() <em>Constructed Data Type Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isConstructedDataTypeSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean CONSTRUCTED_DATA_TYPE_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isConstructedDataTypeSupported() <em>Constructed Data Type Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isConstructedDataTypeSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean constructedDataTypeSupported = CONSTRUCTED_DATA_TYPE_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isUDFSupported() <em>UDF Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isUDFSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean UDF_SUPPORTED_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isUDFSupported() <em>UDF Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isUDFSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean uDFSupported = UDF_SUPPORTED_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DatabaseVendorDefinitionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return DatabaseDefinitionPackage.Literals.DATABASE_VENDOR_DEFINITION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getVendor() {
+		return vendor;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setVendor(String newVendor) {
+		String oldVendor = vendor;
+		vendor = newVendor;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__VENDOR, oldVendor, vendor));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getVersion() {
+		return version;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setVersion(String newVersion) {
+		String oldVersion = version;
+		version = newVersion;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__VERSION, oldVersion, version));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isConstraintsSupported() {
+		return constraintsSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setConstraintsSupported(boolean newConstraintsSupported) {
+		boolean oldConstraintsSupported = constraintsSupported;
+		constraintsSupported = newConstraintsSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__CONSTRAINTS_SUPPORTED, oldConstraintsSupported, constraintsSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getMaximumIdentifierLength() {
+		return maximumIdentifierLength;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMaximumIdentifierLength(int newMaximumIdentifierLength) {
+		int oldMaximumIdentifierLength = maximumIdentifierLength;
+		maximumIdentifierLength = newMaximumIdentifierLength;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH, oldMaximumIdentifierLength, maximumIdentifierLength));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isTriggerSupported() {
+		return triggerSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTriggerSupported(boolean newTriggerSupported) {
+		boolean oldTriggerSupported = triggerSupported;
+		triggerSupported = newTriggerSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__TRIGGER_SUPPORTED, oldTriggerSupported, triggerSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isSnapshotViewSupported() {
+		return snapshotViewSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSnapshotViewSupported(boolean newSnapshotViewSupported) {
+		boolean oldSnapshotViewSupported = snapshotViewSupported;
+		snapshotViewSupported = newSnapshotViewSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SNAPSHOT_VIEW_SUPPORTED, oldSnapshotViewSupported, snapshotViewSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isJoinSupported() {
+		return joinSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setJoinSupported(boolean newJoinSupported) {
+		boolean oldJoinSupported = joinSupported;
+		joinSupported = newJoinSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__JOIN_SUPPORTED, oldJoinSupported, joinSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isViewTriggerSupported() {
+		return viewTriggerSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setViewTriggerSupported(boolean newViewTriggerSupported) {
+		boolean oldViewTriggerSupported = viewTriggerSupported;
+		viewTriggerSupported = newViewTriggerSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__VIEW_TRIGGER_SUPPORTED, oldViewTriggerSupported, viewTriggerSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isTablespacesSupported() {
+		return tablespacesSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTablespacesSupported(boolean newTablespacesSupported) {
+		boolean oldTablespacesSupported = tablespacesSupported;
+		tablespacesSupported = newTablespacesSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__TABLESPACES_SUPPORTED, oldTablespacesSupported, tablespacesSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getMaximumCommentLength() {
+		return maximumCommentLength;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMaximumCommentLength(int newMaximumCommentLength) {
+		int oldMaximumCommentLength = maximumCommentLength;
+		maximumCommentLength = newMaximumCommentLength;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__MAXIMUM_COMMENT_LENGTH, oldMaximumCommentLength, maximumCommentLength));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isSequenceSupported() {
+		return sequenceSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSequenceSupported(boolean newSequenceSupported) {
+		boolean oldSequenceSupported = sequenceSupported;
+		sequenceSupported = newSequenceSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SEQUENCE_SUPPORTED, oldSequenceSupported, sequenceSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isMQTSupported() {
+		return mQTSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMQTSupported(boolean newMQTSupported) {
+		boolean oldMQTSupported = mQTSupported;
+		mQTSupported = newMQTSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__MQT_SUPPORTED, oldMQTSupported, mQTSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isSchemaSupported() {
+		return schemaSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSchemaSupported(boolean newSchemaSupported) {
+		boolean oldSchemaSupported = schemaSupported;
+		schemaSupported = newSchemaSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SCHEMA_SUPPORTED, oldSchemaSupported, schemaSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isAliasSupported() {
+		return aliasSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setAliasSupported(boolean newAliasSupported) {
+		boolean oldAliasSupported = aliasSupported;
+		aliasSupported = newAliasSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__ALIAS_SUPPORTED, oldAliasSupported, aliasSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isSynonymSupported() {
+		return synonymSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSynonymSupported(boolean newSynonymSupported) {
+		boolean oldSynonymSupported = synonymSupported;
+		synonymSupported = newSynonymSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SYNONYM_SUPPORTED, oldSynonymSupported, synonymSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isUserDefinedTypeSupported() {
+		return userDefinedTypeSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setUserDefinedTypeSupported(boolean newUserDefinedTypeSupported) {
+		boolean oldUserDefinedTypeSupported = userDefinedTypeSupported;
+		userDefinedTypeSupported = newUserDefinedTypeSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__USER_DEFINED_TYPE_SUPPORTED, oldUserDefinedTypeSupported, userDefinedTypeSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isDomainSupported() {
+		return domainSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDomainSupported(boolean newDomainSupported) {
+		boolean oldDomainSupported = domainSupported;
+		domainSupported = newDomainSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__DOMAIN_SUPPORTED, oldDomainSupported, domainSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isSQLStatementSupported() {
+		return sqlStatementSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSQLStatementSupported(boolean newSQLStatementSupported) {
+		boolean oldSQLStatementSupported = sqlStatementSupported;
+		sqlStatementSupported = newSQLStatementSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SQL_STATEMENT_SUPPORTED, oldSQLStatementSupported, sqlStatementSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isNicknameSupported() {
+		return nicknameSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setNicknameSupported(boolean newNicknameSupported) {
+		boolean oldNicknameSupported = nicknameSupported;
+		nicknameSupported = newNicknameSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__NICKNAME_SUPPORTED, oldNicknameSupported, nicknameSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isQuotedDMLSupported() {
+		return quotedDMLSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setQuotedDMLSupported(boolean newQuotedDMLSupported) {
+		boolean oldQuotedDMLSupported = quotedDMLSupported;
+		quotedDMLSupported = newQuotedDMLSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__QUOTED_DML_SUPPORTED, oldQuotedDMLSupported, quotedDMLSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isQuotedDDLSupported() {
+		return quotedDDLSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setQuotedDDLSupported(boolean newQuotedDDLSupported) {
+		boolean oldQuotedDDLSupported = quotedDDLSupported;
+		quotedDDLSupported = newQuotedDDLSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__QUOTED_DDL_SUPPORTED, oldQuotedDDLSupported, quotedDDLSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isXmlSupported() {
+		return xmlSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setXmlSupported(boolean newXmlSupported) {
+		boolean oldXmlSupported = xmlSupported;
+		xmlSupported = newXmlSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__XML_SUPPORTED, oldXmlSupported, xmlSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isMQTIndexSupported() {
+		return mQTIndexSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMQTIndexSupported(boolean newMQTIndexSupported) {
+		boolean oldMQTIndexSupported = mQTIndexSupported;
+		mQTIndexSupported = newMQTIndexSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__MQT_INDEX_SUPPORTED, oldMQTIndexSupported, mQTIndexSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isEventSupported() {
+		return eventSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setEventSupported(boolean newEventSupported) {
+		boolean oldEventSupported = eventSupported;
+		eventSupported = newEventSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__EVENT_SUPPORTED, oldEventSupported, eventSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isSqlUDFSupported() {
+		return sqlUDFSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSqlUDFSupported(boolean newSqlUDFSupported) {
+		boolean oldSqlUDFSupported = sqlUDFSupported;
+		sqlUDFSupported = newSqlUDFSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SQL_UDF_SUPPORTED, oldSqlUDFSupported, sqlUDFSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isStoredProcedureSupported() {
+		return storedProcedureSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setStoredProcedureSupported(boolean newStoredProcedureSupported) {
+		boolean oldStoredProcedureSupported = storedProcedureSupported;
+		storedProcedureSupported = newStoredProcedureSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__STORED_PROCEDURE_SUPPORTED, oldStoredProcedureSupported, storedProcedureSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isPackageSupported() {
+		return packageSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPackageSupported(boolean newPackageSupported) {
+		boolean oldPackageSupported = packageSupported;
+		packageSupported = newPackageSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__PACKAGE_SUPPORTED, oldPackageSupported, packageSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isAuthorizationIdentifierSupported() {
+		return authorizationIdentifierSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setAuthorizationIdentifierSupported(boolean newAuthorizationIdentifierSupported) {
+		boolean oldAuthorizationIdentifierSupported = authorizationIdentifierSupported;
+		authorizationIdentifierSupported = newAuthorizationIdentifierSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__AUTHORIZATION_IDENTIFIER_SUPPORTED, oldAuthorizationIdentifierSupported, authorizationIdentifierSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isRoleSupported() {
+		return roleSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setRoleSupported(boolean newRoleSupported) {
+		boolean oldRoleSupported = roleSupported;
+		roleSupported = newRoleSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__ROLE_SUPPORTED, oldRoleSupported, roleSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isGroupSupported() {
+		return groupSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setGroupSupported(boolean newGroupSupported) {
+		boolean oldGroupSupported = groupSupported;
+		groupSupported = newGroupSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__GROUP_SUPPORTED, oldGroupSupported, groupSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isUserSupported() {
+		return userSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setUserSupported(boolean newUserSupported) {
+		boolean oldUserSupported = userSupported;
+		userSupported = newUserSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__USER_SUPPORTED, oldUserSupported, userSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isRoleAuthorizationSupported() {
+		return roleAuthorizationSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setRoleAuthorizationSupported(boolean newRoleAuthorizationSupported) {
+		boolean oldRoleAuthorizationSupported = roleAuthorizationSupported;
+		roleAuthorizationSupported = newRoleAuthorizationSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__ROLE_AUTHORIZATION_SUPPORTED, oldRoleAuthorizationSupported, roleAuthorizationSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isConstructedDataTypeSupported() {
+		return constructedDataTypeSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setConstructedDataTypeSupported(boolean newConstructedDataTypeSupported) {
+		boolean oldConstructedDataTypeSupported = constructedDataTypeSupported;
+		constructedDataTypeSupported = newConstructedDataTypeSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__CONSTRUCTED_DATA_TYPE_SUPPORTED, oldConstructedDataTypeSupported, constructedDataTypeSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isUDFSupported() {
+		return uDFSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setUDFSupported(boolean newUDFSupported) {
+		boolean oldUDFSupported = uDFSupported;
+		uDFSupported = newUDFSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__UDF_SUPPORTED, oldUDFSupported, uDFSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__PREDEFINED_DATA_TYPE_DEFINITIONS:
+				return ((InternalEList)getPredefinedDataTypeDefinitions()).basicRemove(otherEnd, msgs);
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__TABLE_SPACE_DEFINITION:
+				return basicSetTableSpaceDefinition(null, msgs);
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__STORED_PROCEDURE_DEFINITION:
+				return basicSetStoredProcedureDefinition(null, msgs);
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__TRIGGER_DEFINITION:
+				return basicSetTriggerDefinition(null, msgs);
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__COLUMN_DEFINITION:
+				return basicSetColumnDefinition(null, msgs);
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__CONSTRAINT_DEFINITION:
+				return basicSetConstraintDefinition(null, msgs);
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__EXTENDED_DEFINITIONS:
+				return ((InternalEList)getExtendedDefinitions()).basicRemove(otherEnd, msgs);
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__INDEX_DEFINITION:
+				return basicSetIndexDefinition(null, msgs);
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__TABLE_DEFINITION:
+				return basicSetTableDefinition(null, msgs);
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SEQUENCE_DEFINITION:
+				return basicSetSequenceDefinition(null, msgs);
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__UDT_DEFINITION:
+				return basicSetUdtDefinition(null, msgs);
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__QUERY_DEFINITION:
+				return basicSetQueryDefinition(null, msgs);
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SQL_SYNTAX_DEFINITION:
+				return basicSetSQLSyntaxDefinition(null, msgs);
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__NICKNAME_DEFINITION:
+				return basicSetNicknameDefinition(null, msgs);
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SCHEMA_DEFINITION:
+				return basicSetSchemaDefinition(null, msgs);
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__VIEW_DEFINITION:
+				return basicSetViewDefinition(null, msgs);
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__DEBUGGER_DEFINITION:
+				return basicSetDebuggerDefinition(null, msgs);
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__PRIVILEGED_ELEMENT_DEFINITIONS:
+				return ((InternalEList)getPrivilegedElementDefinitions()).basicRemove(otherEnd, msgs);
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__CONSTRUCTED_DATA_TYPE_DEFINITION:
+				return basicSetConstructedDataTypeDefinition(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__PREDEFINED_DATA_TYPE_DEFINITIONS:
+				return getPredefinedDataTypeDefinitions();
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__TABLE_SPACE_DEFINITION:
+				return getTableSpaceDefinition();
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__STORED_PROCEDURE_DEFINITION:
+				return getStoredProcedureDefinition();
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__TRIGGER_DEFINITION:
+				return getTriggerDefinition();
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__COLUMN_DEFINITION:
+				return getColumnDefinition();
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__CONSTRAINT_DEFINITION:
+				return getConstraintDefinition();
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__EXTENDED_DEFINITIONS:
+				return getExtendedDefinitions();
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__INDEX_DEFINITION:
+				return getIndexDefinition();
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__TABLE_DEFINITION:
+				return getTableDefinition();
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SEQUENCE_DEFINITION:
+				return getSequenceDefinition();
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__UDT_DEFINITION:
+				return getUdtDefinition();
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__QUERY_DEFINITION:
+				return getQueryDefinition();
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SQL_SYNTAX_DEFINITION:
+				return getSQLSyntaxDefinition();
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__NICKNAME_DEFINITION:
+				return getNicknameDefinition();
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SCHEMA_DEFINITION:
+				return getSchemaDefinition();
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__VIEW_DEFINITION:
+				return getViewDefinition();
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__DEBUGGER_DEFINITION:
+				return getDebuggerDefinition();
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__PRIVILEGED_ELEMENT_DEFINITIONS:
+				return getPrivilegedElementDefinitions();
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__CONSTRUCTED_DATA_TYPE_DEFINITION:
+				return getConstructedDataTypeDefinition();
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__VENDOR:
+				return getVendor();
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__VERSION:
+				return getVersion();
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__CONSTRAINTS_SUPPORTED:
+				return isConstraintsSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH:
+				return new Integer(getMaximumIdentifierLength());
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__TRIGGER_SUPPORTED:
+				return isTriggerSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SNAPSHOT_VIEW_SUPPORTED:
+				return isSnapshotViewSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__JOIN_SUPPORTED:
+				return isJoinSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__VIEW_TRIGGER_SUPPORTED:
+				return isViewTriggerSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__TABLESPACES_SUPPORTED:
+				return isTablespacesSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__MAXIMUM_COMMENT_LENGTH:
+				return new Integer(getMaximumCommentLength());
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SEQUENCE_SUPPORTED:
+				return isSequenceSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__MQT_SUPPORTED:
+				return isMQTSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SCHEMA_SUPPORTED:
+				return isSchemaSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__ALIAS_SUPPORTED:
+				return isAliasSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SYNONYM_SUPPORTED:
+				return isSynonymSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__USER_DEFINED_TYPE_SUPPORTED:
+				return isUserDefinedTypeSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__DOMAIN_SUPPORTED:
+				return isDomainSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SQL_STATEMENT_SUPPORTED:
+				return isSQLStatementSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__NICKNAME_SUPPORTED:
+				return isNicknameSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__QUOTED_DML_SUPPORTED:
+				return isQuotedDMLSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__QUOTED_DDL_SUPPORTED:
+				return isQuotedDDLSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__XML_SUPPORTED:
+				return isXmlSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__MQT_INDEX_SUPPORTED:
+				return isMQTIndexSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__EVENT_SUPPORTED:
+				return isEventSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SQL_UDF_SUPPORTED:
+				return isSqlUDFSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__STORED_PROCEDURE_SUPPORTED:
+				return isStoredProcedureSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__PACKAGE_SUPPORTED:
+				return isPackageSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__AUTHORIZATION_IDENTIFIER_SUPPORTED:
+				return isAuthorizationIdentifierSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__ROLE_SUPPORTED:
+				return isRoleSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__GROUP_SUPPORTED:
+				return isGroupSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__USER_SUPPORTED:
+				return isUserSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__ROLE_AUTHORIZATION_SUPPORTED:
+				return isRoleAuthorizationSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__CONSTRUCTED_DATA_TYPE_SUPPORTED:
+				return isConstructedDataTypeSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__UDF_SUPPORTED:
+				return isUDFSupported() ? Boolean.TRUE : Boolean.FALSE;
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__PREDEFINED_DATA_TYPE_DEFINITIONS:
+				getPredefinedDataTypeDefinitions().clear();
+				getPredefinedDataTypeDefinitions().addAll((Collection)newValue);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__TABLE_SPACE_DEFINITION:
+				setTableSpaceDefinition((TableSpaceDefinition)newValue);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__STORED_PROCEDURE_DEFINITION:
+				setStoredProcedureDefinition((StoredProcedureDefinition)newValue);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__TRIGGER_DEFINITION:
+				setTriggerDefinition((TriggerDefinition)newValue);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__COLUMN_DEFINITION:
+				setColumnDefinition((ColumnDefinition)newValue);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__CONSTRAINT_DEFINITION:
+				setConstraintDefinition((ConstraintDefinition)newValue);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__EXTENDED_DEFINITIONS:
+				getExtendedDefinitions().clear();
+				getExtendedDefinitions().addAll((Collection)newValue);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__INDEX_DEFINITION:
+				setIndexDefinition((IndexDefinition)newValue);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__TABLE_DEFINITION:
+				setTableDefinition((TableDefinition)newValue);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SEQUENCE_DEFINITION:
+				setSequenceDefinition((SequenceDefinition)newValue);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__UDT_DEFINITION:
+				setUdtDefinition((UserDefinedTypeDefinition)newValue);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__QUERY_DEFINITION:
+				setQueryDefinition((QueryDefinition)newValue);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SQL_SYNTAX_DEFINITION:
+				setSQLSyntaxDefinition((SQLSyntaxDefinition)newValue);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__NICKNAME_DEFINITION:
+				setNicknameDefinition((NicknameDefinition)newValue);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SCHEMA_DEFINITION:
+				setSchemaDefinition((SchemaDefinition)newValue);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__VIEW_DEFINITION:
+				setViewDefinition((ViewDefinition)newValue);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__DEBUGGER_DEFINITION:
+				setDebuggerDefinition((DebuggerDefinition)newValue);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__PRIVILEGED_ELEMENT_DEFINITIONS:
+				getPrivilegedElementDefinitions().clear();
+				getPrivilegedElementDefinitions().addAll((Collection)newValue);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__CONSTRUCTED_DATA_TYPE_DEFINITION:
+				setConstructedDataTypeDefinition((ConstructedDataTypeDefinition)newValue);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__VENDOR:
+				setVendor((String)newValue);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__VERSION:
+				setVersion((String)newValue);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__CONSTRAINTS_SUPPORTED:
+				setConstraintsSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH:
+				setMaximumIdentifierLength(((Integer)newValue).intValue());
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__TRIGGER_SUPPORTED:
+				setTriggerSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SNAPSHOT_VIEW_SUPPORTED:
+				setSnapshotViewSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__JOIN_SUPPORTED:
+				setJoinSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__VIEW_TRIGGER_SUPPORTED:
+				setViewTriggerSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__TABLESPACES_SUPPORTED:
+				setTablespacesSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__MAXIMUM_COMMENT_LENGTH:
+				setMaximumCommentLength(((Integer)newValue).intValue());
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SEQUENCE_SUPPORTED:
+				setSequenceSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__MQT_SUPPORTED:
+				setMQTSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SCHEMA_SUPPORTED:
+				setSchemaSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__ALIAS_SUPPORTED:
+				setAliasSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SYNONYM_SUPPORTED:
+				setSynonymSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__USER_DEFINED_TYPE_SUPPORTED:
+				setUserDefinedTypeSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__DOMAIN_SUPPORTED:
+				setDomainSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SQL_STATEMENT_SUPPORTED:
+				setSQLStatementSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__NICKNAME_SUPPORTED:
+				setNicknameSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__QUOTED_DML_SUPPORTED:
+				setQuotedDMLSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__QUOTED_DDL_SUPPORTED:
+				setQuotedDDLSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__XML_SUPPORTED:
+				setXmlSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__MQT_INDEX_SUPPORTED:
+				setMQTIndexSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__EVENT_SUPPORTED:
+				setEventSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SQL_UDF_SUPPORTED:
+				setSqlUDFSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__STORED_PROCEDURE_SUPPORTED:
+				setStoredProcedureSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__PACKAGE_SUPPORTED:
+				setPackageSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__AUTHORIZATION_IDENTIFIER_SUPPORTED:
+				setAuthorizationIdentifierSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__ROLE_SUPPORTED:
+				setRoleSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__GROUP_SUPPORTED:
+				setGroupSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__USER_SUPPORTED:
+				setUserSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__ROLE_AUTHORIZATION_SUPPORTED:
+				setRoleAuthorizationSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__CONSTRUCTED_DATA_TYPE_SUPPORTED:
+				setConstructedDataTypeSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__UDF_SUPPORTED:
+				setUDFSupported(((Boolean)newValue).booleanValue());
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__PREDEFINED_DATA_TYPE_DEFINITIONS:
+				getPredefinedDataTypeDefinitions().clear();
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__TABLE_SPACE_DEFINITION:
+				setTableSpaceDefinition((TableSpaceDefinition)null);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__STORED_PROCEDURE_DEFINITION:
+				setStoredProcedureDefinition((StoredProcedureDefinition)null);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__TRIGGER_DEFINITION:
+				setTriggerDefinition((TriggerDefinition)null);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__COLUMN_DEFINITION:
+				setColumnDefinition((ColumnDefinition)null);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__CONSTRAINT_DEFINITION:
+				setConstraintDefinition((ConstraintDefinition)null);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__EXTENDED_DEFINITIONS:
+				getExtendedDefinitions().clear();
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__INDEX_DEFINITION:
+				setIndexDefinition((IndexDefinition)null);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__TABLE_DEFINITION:
+				setTableDefinition((TableDefinition)null);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SEQUENCE_DEFINITION:
+				setSequenceDefinition((SequenceDefinition)null);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__UDT_DEFINITION:
+				setUdtDefinition((UserDefinedTypeDefinition)null);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__QUERY_DEFINITION:
+				setQueryDefinition((QueryDefinition)null);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SQL_SYNTAX_DEFINITION:
+				setSQLSyntaxDefinition((SQLSyntaxDefinition)null);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__NICKNAME_DEFINITION:
+				setNicknameDefinition((NicknameDefinition)null);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SCHEMA_DEFINITION:
+				setSchemaDefinition((SchemaDefinition)null);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__VIEW_DEFINITION:
+				setViewDefinition((ViewDefinition)null);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__DEBUGGER_DEFINITION:
+				setDebuggerDefinition((DebuggerDefinition)null);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__PRIVILEGED_ELEMENT_DEFINITIONS:
+				getPrivilegedElementDefinitions().clear();
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__CONSTRUCTED_DATA_TYPE_DEFINITION:
+				setConstructedDataTypeDefinition((ConstructedDataTypeDefinition)null);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__VENDOR:
+				setVendor(VENDOR_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__VERSION:
+				setVersion(VERSION_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__CONSTRAINTS_SUPPORTED:
+				setConstraintsSupported(CONSTRAINTS_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH:
+				setMaximumIdentifierLength(MAXIMUM_IDENTIFIER_LENGTH_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__TRIGGER_SUPPORTED:
+				setTriggerSupported(TRIGGER_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SNAPSHOT_VIEW_SUPPORTED:
+				setSnapshotViewSupported(SNAPSHOT_VIEW_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__JOIN_SUPPORTED:
+				setJoinSupported(JOIN_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__VIEW_TRIGGER_SUPPORTED:
+				setViewTriggerSupported(VIEW_TRIGGER_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__TABLESPACES_SUPPORTED:
+				setTablespacesSupported(TABLESPACES_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__MAXIMUM_COMMENT_LENGTH:
+				setMaximumCommentLength(MAXIMUM_COMMENT_LENGTH_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SEQUENCE_SUPPORTED:
+				setSequenceSupported(SEQUENCE_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__MQT_SUPPORTED:
+				setMQTSupported(MQT_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SCHEMA_SUPPORTED:
+				setSchemaSupported(SCHEMA_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__ALIAS_SUPPORTED:
+				setAliasSupported(ALIAS_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SYNONYM_SUPPORTED:
+				setSynonymSupported(SYNONYM_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__USER_DEFINED_TYPE_SUPPORTED:
+				setUserDefinedTypeSupported(USER_DEFINED_TYPE_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__DOMAIN_SUPPORTED:
+				setDomainSupported(DOMAIN_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SQL_STATEMENT_SUPPORTED:
+				setSQLStatementSupported(SQL_STATEMENT_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__NICKNAME_SUPPORTED:
+				setNicknameSupported(NICKNAME_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__QUOTED_DML_SUPPORTED:
+				setQuotedDMLSupported(QUOTED_DML_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__QUOTED_DDL_SUPPORTED:
+				setQuotedDDLSupported(QUOTED_DDL_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__XML_SUPPORTED:
+				setXmlSupported(XML_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__MQT_INDEX_SUPPORTED:
+				setMQTIndexSupported(MQT_INDEX_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__EVENT_SUPPORTED:
+				setEventSupported(EVENT_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SQL_UDF_SUPPORTED:
+				setSqlUDFSupported(SQL_UDF_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__STORED_PROCEDURE_SUPPORTED:
+				setStoredProcedureSupported(STORED_PROCEDURE_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__PACKAGE_SUPPORTED:
+				setPackageSupported(PACKAGE_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__AUTHORIZATION_IDENTIFIER_SUPPORTED:
+				setAuthorizationIdentifierSupported(AUTHORIZATION_IDENTIFIER_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__ROLE_SUPPORTED:
+				setRoleSupported(ROLE_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__GROUP_SUPPORTED:
+				setGroupSupported(GROUP_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__USER_SUPPORTED:
+				setUserSupported(USER_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__ROLE_AUTHORIZATION_SUPPORTED:
+				setRoleAuthorizationSupported(ROLE_AUTHORIZATION_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__CONSTRUCTED_DATA_TYPE_SUPPORTED:
+				setConstructedDataTypeSupported(CONSTRUCTED_DATA_TYPE_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__UDF_SUPPORTED:
+				setUDFSupported(UDF_SUPPORTED_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__PREDEFINED_DATA_TYPE_DEFINITIONS:
+				return predefinedDataTypeDefinitions != null && !predefinedDataTypeDefinitions.isEmpty();
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__TABLE_SPACE_DEFINITION:
+				return tableSpaceDefinition != null;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__STORED_PROCEDURE_DEFINITION:
+				return storedProcedureDefinition != null;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__TRIGGER_DEFINITION:
+				return triggerDefinition != null;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__COLUMN_DEFINITION:
+				return columnDefinition != null;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__CONSTRAINT_DEFINITION:
+				return constraintDefinition != null;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__EXTENDED_DEFINITIONS:
+				return extendedDefinitions != null && !extendedDefinitions.isEmpty();
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__INDEX_DEFINITION:
+				return indexDefinition != null;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__TABLE_DEFINITION:
+				return tableDefinition != null;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SEQUENCE_DEFINITION:
+				return sequenceDefinition != null;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__UDT_DEFINITION:
+				return udtDefinition != null;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__QUERY_DEFINITION:
+				return queryDefinition != null;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SQL_SYNTAX_DEFINITION:
+				return sqlSyntaxDefinition != null;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__NICKNAME_DEFINITION:
+				return nicknameDefinition != null;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SCHEMA_DEFINITION:
+				return schemaDefinition != null;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__VIEW_DEFINITION:
+				return viewDefinition != null;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__DEBUGGER_DEFINITION:
+				return debuggerDefinition != null;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__PRIVILEGED_ELEMENT_DEFINITIONS:
+				return privilegedElementDefinitions != null && !privilegedElementDefinitions.isEmpty();
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__CONSTRUCTED_DATA_TYPE_DEFINITION:
+				return constructedDataTypeDefinition != null;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__VENDOR:
+				return VENDOR_EDEFAULT == null ? vendor != null : !VENDOR_EDEFAULT.equals(vendor);
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__VERSION:
+				return VERSION_EDEFAULT == null ? version != null : !VERSION_EDEFAULT.equals(version);
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__CONSTRAINTS_SUPPORTED:
+				return constraintsSupported != CONSTRAINTS_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH:
+				return maximumIdentifierLength != MAXIMUM_IDENTIFIER_LENGTH_EDEFAULT;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__TRIGGER_SUPPORTED:
+				return triggerSupported != TRIGGER_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SNAPSHOT_VIEW_SUPPORTED:
+				return snapshotViewSupported != SNAPSHOT_VIEW_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__JOIN_SUPPORTED:
+				return joinSupported != JOIN_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__VIEW_TRIGGER_SUPPORTED:
+				return viewTriggerSupported != VIEW_TRIGGER_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__TABLESPACES_SUPPORTED:
+				return tablespacesSupported != TABLESPACES_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__MAXIMUM_COMMENT_LENGTH:
+				return maximumCommentLength != MAXIMUM_COMMENT_LENGTH_EDEFAULT;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SEQUENCE_SUPPORTED:
+				return sequenceSupported != SEQUENCE_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__MQT_SUPPORTED:
+				return mQTSupported != MQT_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SCHEMA_SUPPORTED:
+				return schemaSupported != SCHEMA_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__ALIAS_SUPPORTED:
+				return aliasSupported != ALIAS_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SYNONYM_SUPPORTED:
+				return synonymSupported != SYNONYM_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__USER_DEFINED_TYPE_SUPPORTED:
+				return userDefinedTypeSupported != USER_DEFINED_TYPE_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__DOMAIN_SUPPORTED:
+				return domainSupported != DOMAIN_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SQL_STATEMENT_SUPPORTED:
+				return sqlStatementSupported != SQL_STATEMENT_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__NICKNAME_SUPPORTED:
+				return nicknameSupported != NICKNAME_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__QUOTED_DML_SUPPORTED:
+				return quotedDMLSupported != QUOTED_DML_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__QUOTED_DDL_SUPPORTED:
+				return quotedDDLSupported != QUOTED_DDL_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__XML_SUPPORTED:
+				return xmlSupported != XML_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__MQT_INDEX_SUPPORTED:
+				return mQTIndexSupported != MQT_INDEX_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__EVENT_SUPPORTED:
+				return eventSupported != EVENT_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SQL_UDF_SUPPORTED:
+				return sqlUDFSupported != SQL_UDF_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__STORED_PROCEDURE_SUPPORTED:
+				return storedProcedureSupported != STORED_PROCEDURE_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__PACKAGE_SUPPORTED:
+				return packageSupported != PACKAGE_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__AUTHORIZATION_IDENTIFIER_SUPPORTED:
+				return authorizationIdentifierSupported != AUTHORIZATION_IDENTIFIER_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__ROLE_SUPPORTED:
+				return roleSupported != ROLE_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__GROUP_SUPPORTED:
+				return groupSupported != GROUP_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__USER_SUPPORTED:
+				return userSupported != USER_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__ROLE_AUTHORIZATION_SUPPORTED:
+				return roleAuthorizationSupported != ROLE_AUTHORIZATION_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__CONSTRUCTED_DATA_TYPE_SUPPORTED:
+				return constructedDataTypeSupported != CONSTRUCTED_DATA_TYPE_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__UDF_SUPPORTED:
+				return uDFSupported != UDF_SUPPORTED_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getPredefinedDataTypeDefinitions() {
+		if (predefinedDataTypeDefinitions == null) {
+			predefinedDataTypeDefinitions = new EObjectContainmentEList(PredefinedDataTypeDefinition.class, this, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__PREDEFINED_DATA_TYPE_DEFINITIONS);
+		}
+		return predefinedDataTypeDefinitions;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TableSpaceDefinition getTableSpaceDefinition() {
+		return tableSpaceDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetTableSpaceDefinition(TableSpaceDefinition newTableSpaceDefinition, NotificationChain msgs) {
+		TableSpaceDefinition oldTableSpaceDefinition = tableSpaceDefinition;
+		tableSpaceDefinition = newTableSpaceDefinition;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__TABLE_SPACE_DEFINITION, oldTableSpaceDefinition, newTableSpaceDefinition);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTableSpaceDefinition(TableSpaceDefinition newTableSpaceDefinition) {
+		if (newTableSpaceDefinition != tableSpaceDefinition) {
+			NotificationChain msgs = null;
+			if (tableSpaceDefinition != null)
+				msgs = ((InternalEObject)tableSpaceDefinition).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__TABLE_SPACE_DEFINITION, null, msgs);
+			if (newTableSpaceDefinition != null)
+				msgs = ((InternalEObject)newTableSpaceDefinition).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__TABLE_SPACE_DEFINITION, null, msgs);
+			msgs = basicSetTableSpaceDefinition(newTableSpaceDefinition, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__TABLE_SPACE_DEFINITION, newTableSpaceDefinition, newTableSpaceDefinition));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public StoredProcedureDefinition getStoredProcedureDefinition() {
+		return storedProcedureDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetStoredProcedureDefinition(StoredProcedureDefinition newStoredProcedureDefinition, NotificationChain msgs) {
+		StoredProcedureDefinition oldStoredProcedureDefinition = storedProcedureDefinition;
+		storedProcedureDefinition = newStoredProcedureDefinition;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__STORED_PROCEDURE_DEFINITION, oldStoredProcedureDefinition, newStoredProcedureDefinition);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setStoredProcedureDefinition(StoredProcedureDefinition newStoredProcedureDefinition) {
+		if (newStoredProcedureDefinition != storedProcedureDefinition) {
+			NotificationChain msgs = null;
+			if (storedProcedureDefinition != null)
+				msgs = ((InternalEObject)storedProcedureDefinition).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__STORED_PROCEDURE_DEFINITION, null, msgs);
+			if (newStoredProcedureDefinition != null)
+				msgs = ((InternalEObject)newStoredProcedureDefinition).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__STORED_PROCEDURE_DEFINITION, null, msgs);
+			msgs = basicSetStoredProcedureDefinition(newStoredProcedureDefinition, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__STORED_PROCEDURE_DEFINITION, newStoredProcedureDefinition, newStoredProcedureDefinition));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TriggerDefinition getTriggerDefinition() {
+		return triggerDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetTriggerDefinition(TriggerDefinition newTriggerDefinition, NotificationChain msgs) {
+		TriggerDefinition oldTriggerDefinition = triggerDefinition;
+		triggerDefinition = newTriggerDefinition;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__TRIGGER_DEFINITION, oldTriggerDefinition, newTriggerDefinition);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTriggerDefinition(TriggerDefinition newTriggerDefinition) {
+		if (newTriggerDefinition != triggerDefinition) {
+			NotificationChain msgs = null;
+			if (triggerDefinition != null)
+				msgs = ((InternalEObject)triggerDefinition).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__TRIGGER_DEFINITION, null, msgs);
+			if (newTriggerDefinition != null)
+				msgs = ((InternalEObject)newTriggerDefinition).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__TRIGGER_DEFINITION, null, msgs);
+			msgs = basicSetTriggerDefinition(newTriggerDefinition, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__TRIGGER_DEFINITION, newTriggerDefinition, newTriggerDefinition));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ColumnDefinition getColumnDefinition() {
+		return columnDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetColumnDefinition(ColumnDefinition newColumnDefinition, NotificationChain msgs) {
+		ColumnDefinition oldColumnDefinition = columnDefinition;
+		columnDefinition = newColumnDefinition;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__COLUMN_DEFINITION, oldColumnDefinition, newColumnDefinition);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setColumnDefinition(ColumnDefinition newColumnDefinition) {
+		if (newColumnDefinition != columnDefinition) {
+			NotificationChain msgs = null;
+			if (columnDefinition != null)
+				msgs = ((InternalEObject)columnDefinition).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__COLUMN_DEFINITION, null, msgs);
+			if (newColumnDefinition != null)
+				msgs = ((InternalEObject)newColumnDefinition).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__COLUMN_DEFINITION, null, msgs);
+			msgs = basicSetColumnDefinition(newColumnDefinition, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__COLUMN_DEFINITION, newColumnDefinition, newColumnDefinition));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ConstraintDefinition getConstraintDefinition() {
+		return constraintDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetConstraintDefinition(ConstraintDefinition newConstraintDefinition, NotificationChain msgs) {
+		ConstraintDefinition oldConstraintDefinition = constraintDefinition;
+		constraintDefinition = newConstraintDefinition;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__CONSTRAINT_DEFINITION, oldConstraintDefinition, newConstraintDefinition);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setConstraintDefinition(ConstraintDefinition newConstraintDefinition) {
+		if (newConstraintDefinition != constraintDefinition) {
+			NotificationChain msgs = null;
+			if (constraintDefinition != null)
+				msgs = ((InternalEObject)constraintDefinition).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__CONSTRAINT_DEFINITION, null, msgs);
+			if (newConstraintDefinition != null)
+				msgs = ((InternalEObject)newConstraintDefinition).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__CONSTRAINT_DEFINITION, null, msgs);
+			msgs = basicSetConstraintDefinition(newConstraintDefinition, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__CONSTRAINT_DEFINITION, newConstraintDefinition, newConstraintDefinition));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getExtendedDefinitions() {
+		if (extendedDefinitions == null) {
+			extendedDefinitions = new EObjectContainmentEList(ExtendedDefinition.class, this, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__EXTENDED_DEFINITIONS);
+		}
+		return extendedDefinitions;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IndexDefinition getIndexDefinition() {
+		return indexDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetIndexDefinition(IndexDefinition newIndexDefinition, NotificationChain msgs) {
+		IndexDefinition oldIndexDefinition = indexDefinition;
+		indexDefinition = newIndexDefinition;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__INDEX_DEFINITION, oldIndexDefinition, newIndexDefinition);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setIndexDefinition(IndexDefinition newIndexDefinition) {
+		if (newIndexDefinition != indexDefinition) {
+			NotificationChain msgs = null;
+			if (indexDefinition != null)
+				msgs = ((InternalEObject)indexDefinition).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__INDEX_DEFINITION, null, msgs);
+			if (newIndexDefinition != null)
+				msgs = ((InternalEObject)newIndexDefinition).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__INDEX_DEFINITION, null, msgs);
+			msgs = basicSetIndexDefinition(newIndexDefinition, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__INDEX_DEFINITION, newIndexDefinition, newIndexDefinition));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TableDefinition getTableDefinition() {
+		return tableDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetTableDefinition(TableDefinition newTableDefinition, NotificationChain msgs) {
+		TableDefinition oldTableDefinition = tableDefinition;
+		tableDefinition = newTableDefinition;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__TABLE_DEFINITION, oldTableDefinition, newTableDefinition);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTableDefinition(TableDefinition newTableDefinition) {
+		if (newTableDefinition != tableDefinition) {
+			NotificationChain msgs = null;
+			if (tableDefinition != null)
+				msgs = ((InternalEObject)tableDefinition).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__TABLE_DEFINITION, null, msgs);
+			if (newTableDefinition != null)
+				msgs = ((InternalEObject)newTableDefinition).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__TABLE_DEFINITION, null, msgs);
+			msgs = basicSetTableDefinition(newTableDefinition, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__TABLE_DEFINITION, newTableDefinition, newTableDefinition));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SequenceDefinition getSequenceDefinition() {
+		return sequenceDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetSequenceDefinition(SequenceDefinition newSequenceDefinition, NotificationChain msgs) {
+		SequenceDefinition oldSequenceDefinition = sequenceDefinition;
+		sequenceDefinition = newSequenceDefinition;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SEQUENCE_DEFINITION, oldSequenceDefinition, newSequenceDefinition);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSequenceDefinition(SequenceDefinition newSequenceDefinition) {
+		if (newSequenceDefinition != sequenceDefinition) {
+			NotificationChain msgs = null;
+			if (sequenceDefinition != null)
+				msgs = ((InternalEObject)sequenceDefinition).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SEQUENCE_DEFINITION, null, msgs);
+			if (newSequenceDefinition != null)
+				msgs = ((InternalEObject)newSequenceDefinition).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SEQUENCE_DEFINITION, null, msgs);
+			msgs = basicSetSequenceDefinition(newSequenceDefinition, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SEQUENCE_DEFINITION, newSequenceDefinition, newSequenceDefinition));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UserDefinedTypeDefinition getUdtDefinition() {
+		return udtDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetUdtDefinition(UserDefinedTypeDefinition newUdtDefinition, NotificationChain msgs) {
+		UserDefinedTypeDefinition oldUdtDefinition = udtDefinition;
+		udtDefinition = newUdtDefinition;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__UDT_DEFINITION, oldUdtDefinition, newUdtDefinition);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setUdtDefinition(UserDefinedTypeDefinition newUdtDefinition) {
+		if (newUdtDefinition != udtDefinition) {
+			NotificationChain msgs = null;
+			if (udtDefinition != null)
+				msgs = ((InternalEObject)udtDefinition).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__UDT_DEFINITION, null, msgs);
+			if (newUdtDefinition != null)
+				msgs = ((InternalEObject)newUdtDefinition).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__UDT_DEFINITION, null, msgs);
+			msgs = basicSetUdtDefinition(newUdtDefinition, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__UDT_DEFINITION, newUdtDefinition, newUdtDefinition));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public QueryDefinition getQueryDefinition() {
+		return queryDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetQueryDefinition(QueryDefinition newQueryDefinition, NotificationChain msgs) {
+		QueryDefinition oldQueryDefinition = queryDefinition;
+		queryDefinition = newQueryDefinition;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__QUERY_DEFINITION, oldQueryDefinition, newQueryDefinition);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setQueryDefinition(QueryDefinition newQueryDefinition) {
+		if (newQueryDefinition != queryDefinition) {
+			NotificationChain msgs = null;
+			if (queryDefinition != null)
+				msgs = ((InternalEObject)queryDefinition).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__QUERY_DEFINITION, null, msgs);
+			if (newQueryDefinition != null)
+				msgs = ((InternalEObject)newQueryDefinition).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__QUERY_DEFINITION, null, msgs);
+			msgs = basicSetQueryDefinition(newQueryDefinition, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__QUERY_DEFINITION, newQueryDefinition, newQueryDefinition));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLSyntaxDefinition getSQLSyntaxDefinition() {
+		return sqlSyntaxDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetSQLSyntaxDefinition(SQLSyntaxDefinition newSQLSyntaxDefinition, NotificationChain msgs) {
+		SQLSyntaxDefinition oldSQLSyntaxDefinition = sqlSyntaxDefinition;
+		sqlSyntaxDefinition = newSQLSyntaxDefinition;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SQL_SYNTAX_DEFINITION, oldSQLSyntaxDefinition, newSQLSyntaxDefinition);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSQLSyntaxDefinition(SQLSyntaxDefinition newSQLSyntaxDefinition) {
+		if (newSQLSyntaxDefinition != sqlSyntaxDefinition) {
+			NotificationChain msgs = null;
+			if (sqlSyntaxDefinition != null)
+				msgs = ((InternalEObject)sqlSyntaxDefinition).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SQL_SYNTAX_DEFINITION, null, msgs);
+			if (newSQLSyntaxDefinition != null)
+				msgs = ((InternalEObject)newSQLSyntaxDefinition).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SQL_SYNTAX_DEFINITION, null, msgs);
+			msgs = basicSetSQLSyntaxDefinition(newSQLSyntaxDefinition, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SQL_SYNTAX_DEFINITION, newSQLSyntaxDefinition, newSQLSyntaxDefinition));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NicknameDefinition getNicknameDefinition() {
+		return nicknameDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetNicknameDefinition(NicknameDefinition newNicknameDefinition, NotificationChain msgs) {
+		NicknameDefinition oldNicknameDefinition = nicknameDefinition;
+		nicknameDefinition = newNicknameDefinition;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__NICKNAME_DEFINITION, oldNicknameDefinition, newNicknameDefinition);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setNicknameDefinition(NicknameDefinition newNicknameDefinition) {
+		if (newNicknameDefinition != nicknameDefinition) {
+			NotificationChain msgs = null;
+			if (nicknameDefinition != null)
+				msgs = ((InternalEObject)nicknameDefinition).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__NICKNAME_DEFINITION, null, msgs);
+			if (newNicknameDefinition != null)
+				msgs = ((InternalEObject)newNicknameDefinition).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__NICKNAME_DEFINITION, null, msgs);
+			msgs = basicSetNicknameDefinition(newNicknameDefinition, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__NICKNAME_DEFINITION, newNicknameDefinition, newNicknameDefinition));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SchemaDefinition getSchemaDefinition() {
+		return schemaDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetSchemaDefinition(SchemaDefinition newSchemaDefinition, NotificationChain msgs) {
+		SchemaDefinition oldSchemaDefinition = schemaDefinition;
+		schemaDefinition = newSchemaDefinition;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SCHEMA_DEFINITION, oldSchemaDefinition, newSchemaDefinition);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSchemaDefinition(SchemaDefinition newSchemaDefinition) {
+		if (newSchemaDefinition != schemaDefinition) {
+			NotificationChain msgs = null;
+			if (schemaDefinition != null)
+				msgs = ((InternalEObject)schemaDefinition).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SCHEMA_DEFINITION, null, msgs);
+			if (newSchemaDefinition != null)
+				msgs = ((InternalEObject)newSchemaDefinition).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SCHEMA_DEFINITION, null, msgs);
+			msgs = basicSetSchemaDefinition(newSchemaDefinition, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__SCHEMA_DEFINITION, newSchemaDefinition, newSchemaDefinition));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ViewDefinition getViewDefinition() {
+		return viewDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetViewDefinition(ViewDefinition newViewDefinition, NotificationChain msgs) {
+		ViewDefinition oldViewDefinition = viewDefinition;
+		viewDefinition = newViewDefinition;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__VIEW_DEFINITION, oldViewDefinition, newViewDefinition);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setViewDefinition(ViewDefinition newViewDefinition) {
+		if (newViewDefinition != viewDefinition) {
+			NotificationChain msgs = null;
+			if (viewDefinition != null)
+				msgs = ((InternalEObject)viewDefinition).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__VIEW_DEFINITION, null, msgs);
+			if (newViewDefinition != null)
+				msgs = ((InternalEObject)newViewDefinition).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__VIEW_DEFINITION, null, msgs);
+			msgs = basicSetViewDefinition(newViewDefinition, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__VIEW_DEFINITION, newViewDefinition, newViewDefinition));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DebuggerDefinition getDebuggerDefinition() {
+		return debuggerDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetDebuggerDefinition(DebuggerDefinition newDebuggerDefinition, NotificationChain msgs) {
+		DebuggerDefinition oldDebuggerDefinition = debuggerDefinition;
+		debuggerDefinition = newDebuggerDefinition;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__DEBUGGER_DEFINITION, oldDebuggerDefinition, newDebuggerDefinition);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDebuggerDefinition(DebuggerDefinition newDebuggerDefinition) {
+		if (newDebuggerDefinition != debuggerDefinition) {
+			NotificationChain msgs = null;
+			if (debuggerDefinition != null)
+				msgs = ((InternalEObject)debuggerDefinition).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__DEBUGGER_DEFINITION, null, msgs);
+			if (newDebuggerDefinition != null)
+				msgs = ((InternalEObject)newDebuggerDefinition).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__DEBUGGER_DEFINITION, null, msgs);
+			msgs = basicSetDebuggerDefinition(newDebuggerDefinition, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__DEBUGGER_DEFINITION, newDebuggerDefinition, newDebuggerDefinition));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getPrivilegedElementDefinitions() {
+		if (privilegedElementDefinitions == null) {
+			privilegedElementDefinitions = new EObjectContainmentEList(PrivilegedElementDefinition.class, this, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__PRIVILEGED_ELEMENT_DEFINITIONS);
+		}
+		return privilegedElementDefinitions;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ConstructedDataTypeDefinition getConstructedDataTypeDefinition() {
+		return constructedDataTypeDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetConstructedDataTypeDefinition(ConstructedDataTypeDefinition newConstructedDataTypeDefinition, NotificationChain msgs) {
+		ConstructedDataTypeDefinition oldConstructedDataTypeDefinition = constructedDataTypeDefinition;
+		constructedDataTypeDefinition = newConstructedDataTypeDefinition;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__CONSTRUCTED_DATA_TYPE_DEFINITION, oldConstructedDataTypeDefinition, newConstructedDataTypeDefinition);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setConstructedDataTypeDefinition(ConstructedDataTypeDefinition newConstructedDataTypeDefinition) {
+		if (newConstructedDataTypeDefinition != constructedDataTypeDefinition) {
+			NotificationChain msgs = null;
+			if (constructedDataTypeDefinition != null)
+				msgs = ((InternalEObject)constructedDataTypeDefinition).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__CONSTRUCTED_DATA_TYPE_DEFINITION, null, msgs);
+			if (newConstructedDataTypeDefinition != null)
+				msgs = ((InternalEObject)newConstructedDataTypeDefinition).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__CONSTRUCTED_DATA_TYPE_DEFINITION, null, msgs);
+			msgs = basicSetConstructedDataTypeDefinition(newConstructedDataTypeDefinition, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION__CONSTRUCTED_DATA_TYPE_DEFINITION, newConstructedDataTypeDefinition, newConstructedDataTypeDefinition));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (vendor: "); //$NON-NLS-1$
+		result.append(vendor);
+		result.append(", version: "); //$NON-NLS-1$
+		result.append(version);
+		result.append(", constraintsSupported: "); //$NON-NLS-1$
+		result.append(constraintsSupported);
+		result.append(", maximumIdentifierLength: "); //$NON-NLS-1$
+		result.append(maximumIdentifierLength);
+		result.append(", triggerSupported: "); //$NON-NLS-1$
+		result.append(triggerSupported);
+		result.append(", snapshotViewSupported: "); //$NON-NLS-1$
+		result.append(snapshotViewSupported);
+		result.append(", joinSupported: "); //$NON-NLS-1$
+		result.append(joinSupported);
+		result.append(", viewTriggerSupported: "); //$NON-NLS-1$
+		result.append(viewTriggerSupported);
+		result.append(", tablespacesSupported: "); //$NON-NLS-1$
+		result.append(tablespacesSupported);
+		result.append(", maximumCommentLength: "); //$NON-NLS-1$
+		result.append(maximumCommentLength);
+		result.append(", sequenceSupported: "); //$NON-NLS-1$
+		result.append(sequenceSupported);
+		result.append(", mQTSupported: "); //$NON-NLS-1$
+		result.append(mQTSupported);
+		result.append(", schemaSupported: "); //$NON-NLS-1$
+		result.append(schemaSupported);
+		result.append(", aliasSupported: "); //$NON-NLS-1$
+		result.append(aliasSupported);
+		result.append(", synonymSupported: "); //$NON-NLS-1$
+		result.append(synonymSupported);
+		result.append(", userDefinedTypeSupported: "); //$NON-NLS-1$
+		result.append(userDefinedTypeSupported);
+		result.append(", domainSupported: "); //$NON-NLS-1$
+		result.append(domainSupported);
+		result.append(", SQLStatementSupported: "); //$NON-NLS-1$
+		result.append(sqlStatementSupported);
+		result.append(", nicknameSupported: "); //$NON-NLS-1$
+		result.append(nicknameSupported);
+		result.append(", quotedDMLSupported: "); //$NON-NLS-1$
+		result.append(quotedDMLSupported);
+		result.append(", quotedDDLSupported: "); //$NON-NLS-1$
+		result.append(quotedDDLSupported);
+		result.append(", xmlSupported: "); //$NON-NLS-1$
+		result.append(xmlSupported);
+		result.append(", mQTIndexSupported: "); //$NON-NLS-1$
+		result.append(mQTIndexSupported);
+		result.append(", eventSupported: "); //$NON-NLS-1$
+		result.append(eventSupported);
+		result.append(", sqlUDFSupported: "); //$NON-NLS-1$
+		result.append(sqlUDFSupported);
+		result.append(", storedProcedureSupported: "); //$NON-NLS-1$
+		result.append(storedProcedureSupported);
+		result.append(", packageSupported: "); //$NON-NLS-1$
+		result.append(packageSupported);
+		result.append(", authorizationIdentifierSupported: "); //$NON-NLS-1$
+		result.append(authorizationIdentifierSupported);
+		result.append(", roleSupported: "); //$NON-NLS-1$
+		result.append(roleSupported);
+		result.append(", groupSupported: "); //$NON-NLS-1$
+		result.append(groupSupported);
+		result.append(", userSupported: "); //$NON-NLS-1$
+		result.append(userSupported);
+		result.append(", roleAuthorizationSupported: "); //$NON-NLS-1$
+		result.append(roleAuthorizationSupported);
+		result.append(", constructedDataTypeSupported: "); //$NON-NLS-1$
+		result.append(constructedDataTypeSupported);
+		result.append(", uDFSupported: "); //$NON-NLS-1$
+		result.append(uDFSupported);
+		result.append(')');
+		return result.toString();
+	}
+
+} //DatabaseVendorDefinitionImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/DebuggerDefinitionImpl.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/DebuggerDefinitionImpl.java
new file mode 100644
index 0000000..a749599
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/DebuggerDefinitionImpl.java
@@ -0,0 +1,162 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DebuggerDefinitionImpl.java,v 1.1 2006/02/27 23:19:06 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.dbdefinition.impl;
+
+import org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage;
+import org.eclipse.datatools.modelbase.dbdefinition.DebuggerDefinition;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Debugger Definition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.DebuggerDefinitionImpl#isConditionSupported <em>Condition Supported</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DebuggerDefinitionImpl extends EObjectImpl implements DebuggerDefinition {
+	/**
+	 * The default value of the '{@link #isConditionSupported() <em>Condition Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isConditionSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean CONDITION_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isConditionSupported() <em>Condition Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isConditionSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean conditionSupported = CONDITION_SUPPORTED_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DebuggerDefinitionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return DatabaseDefinitionPackage.Literals.DEBUGGER_DEFINITION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isConditionSupported() {
+		return conditionSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setConditionSupported(boolean newConditionSupported) {
+		boolean oldConditionSupported = conditionSupported;
+		conditionSupported = newConditionSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.DEBUGGER_DEFINITION__CONDITION_SUPPORTED, oldConditionSupported, conditionSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.DEBUGGER_DEFINITION__CONDITION_SUPPORTED:
+				return isConditionSupported() ? Boolean.TRUE : Boolean.FALSE;
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.DEBUGGER_DEFINITION__CONDITION_SUPPORTED:
+				setConditionSupported(((Boolean)newValue).booleanValue());
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.DEBUGGER_DEFINITION__CONDITION_SUPPORTED:
+				setConditionSupported(CONDITION_SUPPORTED_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.DEBUGGER_DEFINITION__CONDITION_SUPPORTED:
+				return conditionSupported != CONDITION_SUPPORTED_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (conditionSupported: "); //$NON-NLS-1$
+		result.append(conditionSupported);
+		result.append(')');
+		return result.toString();
+	}
+
+} //DebuggerDefinitionImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/ExtendedDefinitionImpl.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/ExtendedDefinitionImpl.java
new file mode 100644
index 0000000..f0fae35
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/ExtendedDefinitionImpl.java
@@ -0,0 +1,217 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.dbdefinition.impl;
+
+import org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage;
+import org.eclipse.datatools.modelbase.dbdefinition.ExtendedDefinition;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Extended Definition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.ExtendedDefinitionImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.ExtendedDefinitionImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ExtendedDefinitionImpl extends EObjectImpl implements ExtendedDefinition {
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String VALUE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected String value = VALUE_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ExtendedDefinitionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return DatabaseDefinitionPackage.Literals.EXTENDED_DEFINITION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.EXTENDED_DEFINITION__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getValue() {
+		return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setValue(String newValue) {
+		String oldValue = value;
+		value = newValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.EXTENDED_DEFINITION__VALUE, oldValue, value));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.EXTENDED_DEFINITION__NAME:
+				return getName();
+			case DatabaseDefinitionPackage.EXTENDED_DEFINITION__VALUE:
+				return getValue();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.EXTENDED_DEFINITION__NAME:
+				setName((String)newValue);
+				return;
+			case DatabaseDefinitionPackage.EXTENDED_DEFINITION__VALUE:
+				setValue((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.EXTENDED_DEFINITION__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.EXTENDED_DEFINITION__VALUE:
+				setValue(VALUE_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.EXTENDED_DEFINITION__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case DatabaseDefinitionPackage.EXTENDED_DEFINITION__VALUE:
+				return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (name: "); //$NON-NLS-1$
+		result.append(name);
+		result.append(", value: "); //$NON-NLS-1$
+		result.append(value);
+		result.append(')');
+		return result.toString();
+	}
+
+} //ExtendedDefinitionImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/FieldQualifierDefinitionImpl.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/FieldQualifierDefinitionImpl.java
new file mode 100644
index 0000000..5a802b5
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/FieldQualifierDefinitionImpl.java
@@ -0,0 +1,528 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: FieldQualifierDefinitionImpl.java,v 1.2 2006/10/11 20:34:54 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.dbdefinition.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage;
+import org.eclipse.datatools.modelbase.dbdefinition.FieldQualifierDefinition;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.IntervalQualifierType;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Field Qualifier Definition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.FieldQualifierDefinitionImpl#getValidTrailingFieldQualifierDefinitions <em>Valid Trailing Field Qualifier Definitions</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.FieldQualifierDefinitionImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.FieldQualifierDefinitionImpl#getMaximumPrecision <em>Maximum Precision</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.FieldQualifierDefinitionImpl#getDefaultPrecision <em>Default Precision</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.FieldQualifierDefinitionImpl#isPrecisionSupported <em>Precision Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.FieldQualifierDefinitionImpl#getMaximumScale <em>Maximum Scale</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.FieldQualifierDefinitionImpl#getDefaultScale <em>Default Scale</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.FieldQualifierDefinitionImpl#isScaleSupported <em>Scale Supported</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class FieldQualifierDefinitionImpl extends EObjectImpl implements FieldQualifierDefinition {
+	/**
+	 * The cached value of the '{@link #getValidTrailingFieldQualifierDefinitions() <em>Valid Trailing Field Qualifier Definitions</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValidTrailingFieldQualifierDefinitions()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList validTrailingFieldQualifierDefinitions;
+
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final IntervalQualifierType NAME_EDEFAULT = IntervalQualifierType.YEAR_LITERAL;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected IntervalQualifierType name = NAME_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMaximumPrecision() <em>Maximum Precision</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumPrecision()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int MAXIMUM_PRECISION_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getMaximumPrecision() <em>Maximum Precision</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumPrecision()
+	 * @generated
+	 * @ordered
+	 */
+	protected int maximumPrecision = MAXIMUM_PRECISION_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getDefaultPrecision() <em>Default Precision</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefaultPrecision()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int DEFAULT_PRECISION_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getDefaultPrecision() <em>Default Precision</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefaultPrecision()
+	 * @generated
+	 * @ordered
+	 */
+	protected int defaultPrecision = DEFAULT_PRECISION_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isPrecisionSupported() <em>Precision Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isPrecisionSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean PRECISION_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isPrecisionSupported() <em>Precision Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isPrecisionSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean precisionSupported = PRECISION_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMaximumScale() <em>Maximum Scale</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumScale()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int MAXIMUM_SCALE_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getMaximumScale() <em>Maximum Scale</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumScale()
+	 * @generated
+	 * @ordered
+	 */
+	protected int maximumScale = MAXIMUM_SCALE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getDefaultScale() <em>Default Scale</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefaultScale()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int DEFAULT_SCALE_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getDefaultScale() <em>Default Scale</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefaultScale()
+	 * @generated
+	 * @ordered
+	 */
+	protected int defaultScale = DEFAULT_SCALE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isScaleSupported() <em>Scale Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isScaleSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean SCALE_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isScaleSupported() <em>Scale Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isScaleSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean scaleSupported = SCALE_SUPPORTED_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected FieldQualifierDefinitionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return DatabaseDefinitionPackage.Literals.FIELD_QUALIFIER_DEFINITION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getValidTrailingFieldQualifierDefinitions() {
+		if (validTrailingFieldQualifierDefinitions == null) {
+			validTrailingFieldQualifierDefinitions = new EObjectResolvingEList(FieldQualifierDefinition.class, this, DatabaseDefinitionPackage.FIELD_QUALIFIER_DEFINITION__VALID_TRAILING_FIELD_QUALIFIER_DEFINITIONS);
+		}
+		return validTrailingFieldQualifierDefinitions;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IntervalQualifierType getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(IntervalQualifierType newName) {
+		IntervalQualifierType oldName = name;
+		name = newName == null ? NAME_EDEFAULT : newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.FIELD_QUALIFIER_DEFINITION__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getMaximumPrecision() {
+		return maximumPrecision;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMaximumPrecision(int newMaximumPrecision) {
+		int oldMaximumPrecision = maximumPrecision;
+		maximumPrecision = newMaximumPrecision;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.FIELD_QUALIFIER_DEFINITION__MAXIMUM_PRECISION, oldMaximumPrecision, maximumPrecision));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getDefaultPrecision() {
+		return defaultPrecision;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDefaultPrecision(int newDefaultPrecision) {
+		int oldDefaultPrecision = defaultPrecision;
+		defaultPrecision = newDefaultPrecision;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.FIELD_QUALIFIER_DEFINITION__DEFAULT_PRECISION, oldDefaultPrecision, defaultPrecision));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isPrecisionSupported() {
+		return precisionSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPrecisionSupported(boolean newPrecisionSupported) {
+		boolean oldPrecisionSupported = precisionSupported;
+		precisionSupported = newPrecisionSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.FIELD_QUALIFIER_DEFINITION__PRECISION_SUPPORTED, oldPrecisionSupported, precisionSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getMaximumScale() {
+		return maximumScale;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMaximumScale(int newMaximumScale) {
+		int oldMaximumScale = maximumScale;
+		maximumScale = newMaximumScale;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.FIELD_QUALIFIER_DEFINITION__MAXIMUM_SCALE, oldMaximumScale, maximumScale));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getDefaultScale() {
+		return defaultScale;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDefaultScale(int newDefaultScale) {
+		int oldDefaultScale = defaultScale;
+		defaultScale = newDefaultScale;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.FIELD_QUALIFIER_DEFINITION__DEFAULT_SCALE, oldDefaultScale, defaultScale));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isScaleSupported() {
+		return scaleSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setScaleSupported(boolean newScaleSupported) {
+		boolean oldScaleSupported = scaleSupported;
+		scaleSupported = newScaleSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.FIELD_QUALIFIER_DEFINITION__SCALE_SUPPORTED, oldScaleSupported, scaleSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.FIELD_QUALIFIER_DEFINITION__VALID_TRAILING_FIELD_QUALIFIER_DEFINITIONS:
+				return getValidTrailingFieldQualifierDefinitions();
+			case DatabaseDefinitionPackage.FIELD_QUALIFIER_DEFINITION__NAME:
+				return getName();
+			case DatabaseDefinitionPackage.FIELD_QUALIFIER_DEFINITION__MAXIMUM_PRECISION:
+				return new Integer(getMaximumPrecision());
+			case DatabaseDefinitionPackage.FIELD_QUALIFIER_DEFINITION__DEFAULT_PRECISION:
+				return new Integer(getDefaultPrecision());
+			case DatabaseDefinitionPackage.FIELD_QUALIFIER_DEFINITION__PRECISION_SUPPORTED:
+				return isPrecisionSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.FIELD_QUALIFIER_DEFINITION__MAXIMUM_SCALE:
+				return new Integer(getMaximumScale());
+			case DatabaseDefinitionPackage.FIELD_QUALIFIER_DEFINITION__DEFAULT_SCALE:
+				return new Integer(getDefaultScale());
+			case DatabaseDefinitionPackage.FIELD_QUALIFIER_DEFINITION__SCALE_SUPPORTED:
+				return isScaleSupported() ? Boolean.TRUE : Boolean.FALSE;
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.FIELD_QUALIFIER_DEFINITION__VALID_TRAILING_FIELD_QUALIFIER_DEFINITIONS:
+				getValidTrailingFieldQualifierDefinitions().clear();
+				getValidTrailingFieldQualifierDefinitions().addAll((Collection)newValue);
+				return;
+			case DatabaseDefinitionPackage.FIELD_QUALIFIER_DEFINITION__NAME:
+				setName((IntervalQualifierType)newValue);
+				return;
+			case DatabaseDefinitionPackage.FIELD_QUALIFIER_DEFINITION__MAXIMUM_PRECISION:
+				setMaximumPrecision(((Integer)newValue).intValue());
+				return;
+			case DatabaseDefinitionPackage.FIELD_QUALIFIER_DEFINITION__DEFAULT_PRECISION:
+				setDefaultPrecision(((Integer)newValue).intValue());
+				return;
+			case DatabaseDefinitionPackage.FIELD_QUALIFIER_DEFINITION__PRECISION_SUPPORTED:
+				setPrecisionSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.FIELD_QUALIFIER_DEFINITION__MAXIMUM_SCALE:
+				setMaximumScale(((Integer)newValue).intValue());
+				return;
+			case DatabaseDefinitionPackage.FIELD_QUALIFIER_DEFINITION__DEFAULT_SCALE:
+				setDefaultScale(((Integer)newValue).intValue());
+				return;
+			case DatabaseDefinitionPackage.FIELD_QUALIFIER_DEFINITION__SCALE_SUPPORTED:
+				setScaleSupported(((Boolean)newValue).booleanValue());
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.FIELD_QUALIFIER_DEFINITION__VALID_TRAILING_FIELD_QUALIFIER_DEFINITIONS:
+				getValidTrailingFieldQualifierDefinitions().clear();
+				return;
+			case DatabaseDefinitionPackage.FIELD_QUALIFIER_DEFINITION__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.FIELD_QUALIFIER_DEFINITION__MAXIMUM_PRECISION:
+				setMaximumPrecision(MAXIMUM_PRECISION_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.FIELD_QUALIFIER_DEFINITION__DEFAULT_PRECISION:
+				setDefaultPrecision(DEFAULT_PRECISION_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.FIELD_QUALIFIER_DEFINITION__PRECISION_SUPPORTED:
+				setPrecisionSupported(PRECISION_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.FIELD_QUALIFIER_DEFINITION__MAXIMUM_SCALE:
+				setMaximumScale(MAXIMUM_SCALE_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.FIELD_QUALIFIER_DEFINITION__DEFAULT_SCALE:
+				setDefaultScale(DEFAULT_SCALE_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.FIELD_QUALIFIER_DEFINITION__SCALE_SUPPORTED:
+				setScaleSupported(SCALE_SUPPORTED_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.FIELD_QUALIFIER_DEFINITION__VALID_TRAILING_FIELD_QUALIFIER_DEFINITIONS:
+				return validTrailingFieldQualifierDefinitions != null && !validTrailingFieldQualifierDefinitions.isEmpty();
+			case DatabaseDefinitionPackage.FIELD_QUALIFIER_DEFINITION__NAME:
+				return name != NAME_EDEFAULT;
+			case DatabaseDefinitionPackage.FIELD_QUALIFIER_DEFINITION__MAXIMUM_PRECISION:
+				return maximumPrecision != MAXIMUM_PRECISION_EDEFAULT;
+			case DatabaseDefinitionPackage.FIELD_QUALIFIER_DEFINITION__DEFAULT_PRECISION:
+				return defaultPrecision != DEFAULT_PRECISION_EDEFAULT;
+			case DatabaseDefinitionPackage.FIELD_QUALIFIER_DEFINITION__PRECISION_SUPPORTED:
+				return precisionSupported != PRECISION_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.FIELD_QUALIFIER_DEFINITION__MAXIMUM_SCALE:
+				return maximumScale != MAXIMUM_SCALE_EDEFAULT;
+			case DatabaseDefinitionPackage.FIELD_QUALIFIER_DEFINITION__DEFAULT_SCALE:
+				return defaultScale != DEFAULT_SCALE_EDEFAULT;
+			case DatabaseDefinitionPackage.FIELD_QUALIFIER_DEFINITION__SCALE_SUPPORTED:
+				return scaleSupported != SCALE_SUPPORTED_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (name: "); //$NON-NLS-1$
+		result.append(name);
+		result.append(", maximumPrecision: "); //$NON-NLS-1$
+		result.append(maximumPrecision);
+		result.append(", defaultPrecision: "); //$NON-NLS-1$
+		result.append(defaultPrecision);
+		result.append(", precisionSupported: "); //$NON-NLS-1$
+		result.append(precisionSupported);
+		result.append(", maximumScale: "); //$NON-NLS-1$
+		result.append(maximumScale);
+		result.append(", defaultScale: "); //$NON-NLS-1$
+		result.append(defaultScale);
+		result.append(", scaleSupported: "); //$NON-NLS-1$
+		result.append(scaleSupported);
+		result.append(')');
+		return result.toString();
+	}
+
+} //FieldQualifierDefinitionImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/IndexDefinitionImpl.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/IndexDefinitionImpl.java
new file mode 100644
index 0000000..9eed99d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/IndexDefinitionImpl.java
@@ -0,0 +1,488 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.dbdefinition.impl;
+
+import org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage;
+import org.eclipse.datatools.modelbase.dbdefinition.IndexDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.PercentFreeTerminology;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Index Definition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.IndexDefinitionImpl#getPercentFreeTerminology <em>Percent Free Terminology</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.IndexDefinitionImpl#isPercentFreeChangeable <em>Percent Free Changeable</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.IndexDefinitionImpl#isClusteringSupported <em>Clustering Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.IndexDefinitionImpl#isClusterChangeable <em>Cluster Changeable</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.IndexDefinitionImpl#isFillFactorSupported <em>Fill Factor Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.IndexDefinitionImpl#isIncludedColumnsSupported <em>Included Columns Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.IndexDefinitionImpl#getMaximumIdentifierLength <em>Maximum Identifier Length</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class IndexDefinitionImpl extends EObjectImpl implements IndexDefinition {
+	/**
+	 * The default value of the '{@link #getPercentFreeTerminology() <em>Percent Free Terminology</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPercentFreeTerminology()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final PercentFreeTerminology PERCENT_FREE_TERMINOLOGY_EDEFAULT = PercentFreeTerminology.PERCENT_FREE_LITERAL;
+
+	/**
+	 * The cached value of the '{@link #getPercentFreeTerminology() <em>Percent Free Terminology</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPercentFreeTerminology()
+	 * @generated
+	 * @ordered
+	 */
+	protected PercentFreeTerminology percentFreeTerminology = PERCENT_FREE_TERMINOLOGY_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isPercentFreeChangeable() <em>Percent Free Changeable</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isPercentFreeChangeable()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean PERCENT_FREE_CHANGEABLE_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isPercentFreeChangeable() <em>Percent Free Changeable</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isPercentFreeChangeable()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean percentFreeChangeable = PERCENT_FREE_CHANGEABLE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isClusteringSupported() <em>Clustering Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isClusteringSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean CLUSTERING_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isClusteringSupported() <em>Clustering Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isClusteringSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean clusteringSupported = CLUSTERING_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isClusterChangeable() <em>Cluster Changeable</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isClusterChangeable()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean CLUSTER_CHANGEABLE_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isClusterChangeable() <em>Cluster Changeable</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isClusterChangeable()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean clusterChangeable = CLUSTER_CHANGEABLE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isFillFactorSupported() <em>Fill Factor Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isFillFactorSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean FILL_FACTOR_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isFillFactorSupported() <em>Fill Factor Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isFillFactorSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean fillFactorSupported = FILL_FACTOR_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isIncludedColumnsSupported() <em>Included Columns Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isIncludedColumnsSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean INCLUDED_COLUMNS_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isIncludedColumnsSupported() <em>Included Columns Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isIncludedColumnsSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean includedColumnsSupported = INCLUDED_COLUMNS_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMaximumIdentifierLength() <em>Maximum Identifier Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumIdentifierLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int MAXIMUM_IDENTIFIER_LENGTH_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getMaximumIdentifierLength() <em>Maximum Identifier Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumIdentifierLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected int maximumIdentifierLength = MAXIMUM_IDENTIFIER_LENGTH_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IndexDefinitionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return DatabaseDefinitionPackage.Literals.INDEX_DEFINITION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PercentFreeTerminology getPercentFreeTerminology() {
+		return percentFreeTerminology;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPercentFreeTerminology(PercentFreeTerminology newPercentFreeTerminology) {
+		PercentFreeTerminology oldPercentFreeTerminology = percentFreeTerminology;
+		percentFreeTerminology = newPercentFreeTerminology == null ? PERCENT_FREE_TERMINOLOGY_EDEFAULT : newPercentFreeTerminology;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.INDEX_DEFINITION__PERCENT_FREE_TERMINOLOGY, oldPercentFreeTerminology, percentFreeTerminology));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isPercentFreeChangeable() {
+		return percentFreeChangeable;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPercentFreeChangeable(boolean newPercentFreeChangeable) {
+		boolean oldPercentFreeChangeable = percentFreeChangeable;
+		percentFreeChangeable = newPercentFreeChangeable;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.INDEX_DEFINITION__PERCENT_FREE_CHANGEABLE, oldPercentFreeChangeable, percentFreeChangeable));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isClusteringSupported() {
+		return clusteringSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setClusteringSupported(boolean newClusteringSupported) {
+		boolean oldClusteringSupported = clusteringSupported;
+		clusteringSupported = newClusteringSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.INDEX_DEFINITION__CLUSTERING_SUPPORTED, oldClusteringSupported, clusteringSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isClusterChangeable() {
+		return clusterChangeable;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setClusterChangeable(boolean newClusterChangeable) {
+		boolean oldClusterChangeable = clusterChangeable;
+		clusterChangeable = newClusterChangeable;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.INDEX_DEFINITION__CLUSTER_CHANGEABLE, oldClusterChangeable, clusterChangeable));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isFillFactorSupported() {
+		return fillFactorSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setFillFactorSupported(boolean newFillFactorSupported) {
+		boolean oldFillFactorSupported = fillFactorSupported;
+		fillFactorSupported = newFillFactorSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.INDEX_DEFINITION__FILL_FACTOR_SUPPORTED, oldFillFactorSupported, fillFactorSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isIncludedColumnsSupported() {
+		return includedColumnsSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setIncludedColumnsSupported(boolean newIncludedColumnsSupported) {
+		boolean oldIncludedColumnsSupported = includedColumnsSupported;
+		includedColumnsSupported = newIncludedColumnsSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.INDEX_DEFINITION__INCLUDED_COLUMNS_SUPPORTED, oldIncludedColumnsSupported, includedColumnsSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getMaximumIdentifierLength() {
+		return maximumIdentifierLength;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMaximumIdentifierLength(int newMaximumIdentifierLength) {
+		int oldMaximumIdentifierLength = maximumIdentifierLength;
+		maximumIdentifierLength = newMaximumIdentifierLength;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.INDEX_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH, oldMaximumIdentifierLength, maximumIdentifierLength));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.INDEX_DEFINITION__PERCENT_FREE_TERMINOLOGY:
+				return getPercentFreeTerminology();
+			case DatabaseDefinitionPackage.INDEX_DEFINITION__PERCENT_FREE_CHANGEABLE:
+				return isPercentFreeChangeable() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.INDEX_DEFINITION__CLUSTERING_SUPPORTED:
+				return isClusteringSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.INDEX_DEFINITION__CLUSTER_CHANGEABLE:
+				return isClusterChangeable() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.INDEX_DEFINITION__FILL_FACTOR_SUPPORTED:
+				return isFillFactorSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.INDEX_DEFINITION__INCLUDED_COLUMNS_SUPPORTED:
+				return isIncludedColumnsSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.INDEX_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH:
+				return new Integer(getMaximumIdentifierLength());
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.INDEX_DEFINITION__PERCENT_FREE_TERMINOLOGY:
+				setPercentFreeTerminology((PercentFreeTerminology)newValue);
+				return;
+			case DatabaseDefinitionPackage.INDEX_DEFINITION__PERCENT_FREE_CHANGEABLE:
+				setPercentFreeChangeable(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.INDEX_DEFINITION__CLUSTERING_SUPPORTED:
+				setClusteringSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.INDEX_DEFINITION__CLUSTER_CHANGEABLE:
+				setClusterChangeable(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.INDEX_DEFINITION__FILL_FACTOR_SUPPORTED:
+				setFillFactorSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.INDEX_DEFINITION__INCLUDED_COLUMNS_SUPPORTED:
+				setIncludedColumnsSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.INDEX_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH:
+				setMaximumIdentifierLength(((Integer)newValue).intValue());
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.INDEX_DEFINITION__PERCENT_FREE_TERMINOLOGY:
+				setPercentFreeTerminology(PERCENT_FREE_TERMINOLOGY_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.INDEX_DEFINITION__PERCENT_FREE_CHANGEABLE:
+				setPercentFreeChangeable(PERCENT_FREE_CHANGEABLE_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.INDEX_DEFINITION__CLUSTERING_SUPPORTED:
+				setClusteringSupported(CLUSTERING_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.INDEX_DEFINITION__CLUSTER_CHANGEABLE:
+				setClusterChangeable(CLUSTER_CHANGEABLE_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.INDEX_DEFINITION__FILL_FACTOR_SUPPORTED:
+				setFillFactorSupported(FILL_FACTOR_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.INDEX_DEFINITION__INCLUDED_COLUMNS_SUPPORTED:
+				setIncludedColumnsSupported(INCLUDED_COLUMNS_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.INDEX_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH:
+				setMaximumIdentifierLength(MAXIMUM_IDENTIFIER_LENGTH_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.INDEX_DEFINITION__PERCENT_FREE_TERMINOLOGY:
+				return percentFreeTerminology != PERCENT_FREE_TERMINOLOGY_EDEFAULT;
+			case DatabaseDefinitionPackage.INDEX_DEFINITION__PERCENT_FREE_CHANGEABLE:
+				return percentFreeChangeable != PERCENT_FREE_CHANGEABLE_EDEFAULT;
+			case DatabaseDefinitionPackage.INDEX_DEFINITION__CLUSTERING_SUPPORTED:
+				return clusteringSupported != CLUSTERING_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.INDEX_DEFINITION__CLUSTER_CHANGEABLE:
+				return clusterChangeable != CLUSTER_CHANGEABLE_EDEFAULT;
+			case DatabaseDefinitionPackage.INDEX_DEFINITION__FILL_FACTOR_SUPPORTED:
+				return fillFactorSupported != FILL_FACTOR_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.INDEX_DEFINITION__INCLUDED_COLUMNS_SUPPORTED:
+				return includedColumnsSupported != INCLUDED_COLUMNS_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.INDEX_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH:
+				return maximumIdentifierLength != MAXIMUM_IDENTIFIER_LENGTH_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (percentFreeTerminology: "); //$NON-NLS-1$
+		result.append(percentFreeTerminology);
+		result.append(", percentFreeChangeable: "); //$NON-NLS-1$
+		result.append(percentFreeChangeable);
+		result.append(", clusteringSupported: "); //$NON-NLS-1$
+		result.append(clusteringSupported);
+		result.append(", clusterChangeable: "); //$NON-NLS-1$
+		result.append(clusterChangeable);
+		result.append(", fillFactorSupported: "); //$NON-NLS-1$
+		result.append(fillFactorSupported);
+		result.append(", includedColumnsSupported: "); //$NON-NLS-1$
+		result.append(includedColumnsSupported);
+		result.append(", maximumIdentifierLength: "); //$NON-NLS-1$
+		result.append(maximumIdentifierLength);
+		result.append(')');
+		return result.toString();
+	}
+
+} //IndexDefinitionImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/NicknameDefinitionImpl.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/NicknameDefinitionImpl.java
new file mode 100644
index 0000000..9f4deea
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/NicknameDefinitionImpl.java
@@ -0,0 +1,270 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: NicknameDefinitionImpl.java,v 1.2 2006/03/09 23:48:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.dbdefinition.impl;
+
+import org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage;
+import org.eclipse.datatools.modelbase.dbdefinition.NicknameDefinition;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Nickname Definition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.NicknameDefinitionImpl#isConstraintSupported <em>Constraint Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.NicknameDefinitionImpl#isIndexSupported <em>Index Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.NicknameDefinitionImpl#getMaximumIdentifierLength <em>Maximum Identifier Length</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class NicknameDefinitionImpl extends EObjectImpl implements NicknameDefinition {
+	/**
+	 * The default value of the '{@link #isConstraintSupported() <em>Constraint Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isConstraintSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean CONSTRAINT_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isConstraintSupported() <em>Constraint Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isConstraintSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean constraintSupported = CONSTRAINT_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isIndexSupported() <em>Index Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isIndexSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean INDEX_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isIndexSupported() <em>Index Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isIndexSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean indexSupported = INDEX_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMaximumIdentifierLength() <em>Maximum Identifier Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumIdentifierLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int MAXIMUM_IDENTIFIER_LENGTH_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getMaximumIdentifierLength() <em>Maximum Identifier Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumIdentifierLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected int maximumIdentifierLength = MAXIMUM_IDENTIFIER_LENGTH_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected NicknameDefinitionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return DatabaseDefinitionPackage.Literals.NICKNAME_DEFINITION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isConstraintSupported() {
+		return constraintSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setConstraintSupported(boolean newConstraintSupported) {
+		boolean oldConstraintSupported = constraintSupported;
+		constraintSupported = newConstraintSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.NICKNAME_DEFINITION__CONSTRAINT_SUPPORTED, oldConstraintSupported, constraintSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isIndexSupported() {
+		return indexSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setIndexSupported(boolean newIndexSupported) {
+		boolean oldIndexSupported = indexSupported;
+		indexSupported = newIndexSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.NICKNAME_DEFINITION__INDEX_SUPPORTED, oldIndexSupported, indexSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getMaximumIdentifierLength() {
+		return maximumIdentifierLength;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMaximumIdentifierLength(int newMaximumIdentifierLength) {
+		int oldMaximumIdentifierLength = maximumIdentifierLength;
+		maximumIdentifierLength = newMaximumIdentifierLength;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.NICKNAME_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH, oldMaximumIdentifierLength, maximumIdentifierLength));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.NICKNAME_DEFINITION__CONSTRAINT_SUPPORTED:
+				return isConstraintSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.NICKNAME_DEFINITION__INDEX_SUPPORTED:
+				return isIndexSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.NICKNAME_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH:
+				return new Integer(getMaximumIdentifierLength());
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.NICKNAME_DEFINITION__CONSTRAINT_SUPPORTED:
+				setConstraintSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.NICKNAME_DEFINITION__INDEX_SUPPORTED:
+				setIndexSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.NICKNAME_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH:
+				setMaximumIdentifierLength(((Integer)newValue).intValue());
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.NICKNAME_DEFINITION__CONSTRAINT_SUPPORTED:
+				setConstraintSupported(CONSTRAINT_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.NICKNAME_DEFINITION__INDEX_SUPPORTED:
+				setIndexSupported(INDEX_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.NICKNAME_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH:
+				setMaximumIdentifierLength(MAXIMUM_IDENTIFIER_LENGTH_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.NICKNAME_DEFINITION__CONSTRAINT_SUPPORTED:
+				return constraintSupported != CONSTRAINT_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.NICKNAME_DEFINITION__INDEX_SUPPORTED:
+				return indexSupported != INDEX_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.NICKNAME_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH:
+				return maximumIdentifierLength != MAXIMUM_IDENTIFIER_LENGTH_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (constraintSupported: "); //$NON-NLS-1$
+		result.append(constraintSupported);
+		result.append(", indexSupported: "); //$NON-NLS-1$
+		result.append(indexSupported);
+		result.append(", maximumIdentifierLength: "); //$NON-NLS-1$
+		result.append(maximumIdentifierLength);
+		result.append(')');
+		return result.toString();
+	}
+
+} //NicknameDefinitionImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/PredefinedDataTypeDefinitionImpl.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/PredefinedDataTypeDefinitionImpl.java
new file mode 100644
index 0000000..5ac7d04
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/PredefinedDataTypeDefinitionImpl.java
@@ -0,0 +1,2596 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.dbdefinition.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage;
+import org.eclipse.datatools.modelbase.dbdefinition.FieldQualifierDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.LanguageType;
+import org.eclipse.datatools.modelbase.dbdefinition.DefaultValueType;
+import org.eclipse.datatools.modelbase.dbdefinition.LengthUnit;
+import org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition;
+import org.eclipse.datatools.modelbase.sql.datatypes.PrimitiveType;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Predefined Data Type Definition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#getLeadingFieldQualifierDefinition <em>Leading Field Qualifier Definition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#getTrailingFieldQualifierDefinition <em>Trailing Field Qualifier Definition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#getDefaultTrailingFieldQualifierDefinition <em>Default Trailing Field Qualifier Definition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#getDefaultLeadingFieldQualifierDefinition <em>Default Leading Field Qualifier Definition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#isLengthSupported <em>Length Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#isScaleSupported <em>Scale Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#isPrecisionSupported <em>Precision Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#isKeyConstraintSupported <em>Key Constraint Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#isIdentitySupported <em>Identity Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#isMultipleColumnsSupported <em>Multiple Columns Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#isNullableSupported <em>Nullable Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#isDefaultSupported <em>Default Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#isClusteringSupported <em>Clustering Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#isFillFactorSupported <em>Fill Factor Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#isBitDataSupported <em>Bit Data Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#getMaximumValue <em>Maximum Value</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#getMinimumValue <em>Minimum Value</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#getMaximumLength <em>Maximum Length</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#getMaximumPrecision <em>Maximum Precision</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#getMaximumScale <em>Maximum Scale</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#getMinimumScale <em>Minimum Scale</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#getDefaultValueTypes <em>Default Value Types</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#getPrimitiveType <em>Primitive Type</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#getJdbcEnumType <em>Jdbc Enum Type</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#getCharacterSet <em>Character Set</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#getEncodingScheme <em>Encoding Scheme</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#getCharacterSetSuffix <em>Character Set Suffix</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#getEncodingSchemeSuffix <em>Encoding Scheme Suffix</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#getJavaClassName <em>Java Class Name</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#getDefaultLength <em>Default Length</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#getDefaultPrecision <em>Default Precision</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#getDefaultScale <em>Default Scale</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#getCutoffPrecision <em>Cutoff Precision</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#getLengthUnit <em>Length Unit</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#isOrderingSupported <em>Ordering Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#isGroupingSupported <em>Grouping Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#getDisplayName <em>Display Name</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#isDisplayNameSupported <em>Display Name Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#isLeadingFieldQualifierSupported <em>Leading Field Qualifier Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#isTrailingFieldQualifierSupported <em>Trailing Field Qualifier Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#getFieldQualifierSeparator <em>Field Qualifier Separator</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#isLargeValueSpecifierSupported <em>Large Value Specifier Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#getLargeValueSpecifierName <em>Large Value Specifier Name</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#getLargeValueSpecifierLength <em>Large Value Specifier Length</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#isLengthSemanticSupported <em>Length Semantic Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#getLengthSemantic <em>Length Semantic</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PredefinedDataTypeDefinitionImpl#getLanguageType <em>Language Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PredefinedDataTypeDefinitionImpl extends EObjectImpl implements PredefinedDataTypeDefinition {
+	/**
+	 * The cached value of the '{@link #getLeadingFieldQualifierDefinition() <em>Leading Field Qualifier Definition</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLeadingFieldQualifierDefinition()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList leadingFieldQualifierDefinition;
+
+	/**
+	 * The cached value of the '{@link #getTrailingFieldQualifierDefinition() <em>Trailing Field Qualifier Definition</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTrailingFieldQualifierDefinition()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList trailingFieldQualifierDefinition;
+
+	/**
+	 * The cached value of the '{@link #getDefaultTrailingFieldQualifierDefinition() <em>Default Trailing Field Qualifier Definition</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefaultTrailingFieldQualifierDefinition()
+	 * @generated
+	 * @ordered
+	 */
+	protected FieldQualifierDefinition defaultTrailingFieldQualifierDefinition;
+
+	/**
+	 * The cached value of the '{@link #getDefaultLeadingFieldQualifierDefinition() <em>Default Leading Field Qualifier Definition</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefaultLeadingFieldQualifierDefinition()
+	 * @generated
+	 * @ordered
+	 */
+	protected FieldQualifierDefinition defaultLeadingFieldQualifierDefinition;
+
+	/**
+	 * The default value of the '{@link #isLengthSupported() <em>Length Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isLengthSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean LENGTH_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isLengthSupported() <em>Length Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isLengthSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean lengthSupported = LENGTH_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isScaleSupported() <em>Scale Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isScaleSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean SCALE_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isScaleSupported() <em>Scale Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isScaleSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean scaleSupported = SCALE_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isPrecisionSupported() <em>Precision Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isPrecisionSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean PRECISION_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isPrecisionSupported() <em>Precision Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isPrecisionSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean precisionSupported = PRECISION_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isKeyConstraintSupported() <em>Key Constraint Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isKeyConstraintSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean KEY_CONSTRAINT_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isKeyConstraintSupported() <em>Key Constraint Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isKeyConstraintSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean keyConstraintSupported = KEY_CONSTRAINT_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isIdentitySupported() <em>Identity Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isIdentitySupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean IDENTITY_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isIdentitySupported() <em>Identity Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isIdentitySupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean identitySupported = IDENTITY_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isMultipleColumnsSupported() <em>Multiple Columns Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isMultipleColumnsSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean MULTIPLE_COLUMNS_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isMultipleColumnsSupported() <em>Multiple Columns Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isMultipleColumnsSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean multipleColumnsSupported = MULTIPLE_COLUMNS_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isNullableSupported() <em>Nullable Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isNullableSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean NULLABLE_SUPPORTED_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isNullableSupported() <em>Nullable Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isNullableSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean nullableSupported = NULLABLE_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isDefaultSupported() <em>Default Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isDefaultSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean DEFAULT_SUPPORTED_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isDefaultSupported() <em>Default Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isDefaultSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean defaultSupported = DEFAULT_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isClusteringSupported() <em>Clustering Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isClusteringSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean CLUSTERING_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isClusteringSupported() <em>Clustering Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isClusteringSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean clusteringSupported = CLUSTERING_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isFillFactorSupported() <em>Fill Factor Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isFillFactorSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean FILL_FACTOR_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isFillFactorSupported() <em>Fill Factor Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isFillFactorSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean fillFactorSupported = FILL_FACTOR_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isBitDataSupported() <em>Bit Data Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isBitDataSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean BIT_DATA_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isBitDataSupported() <em>Bit Data Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isBitDataSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean bitDataSupported = BIT_DATA_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMaximumValue() <em>Maximum Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final long MAXIMUM_VALUE_EDEFAULT = 0L;
+
+	/**
+	 * The cached value of the '{@link #getMaximumValue() <em>Maximum Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected long maximumValue = MAXIMUM_VALUE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMinimumValue() <em>Minimum Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMinimumValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final long MINIMUM_VALUE_EDEFAULT = 0L;
+
+	/**
+	 * The cached value of the '{@link #getMinimumValue() <em>Minimum Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMinimumValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected long minimumValue = MINIMUM_VALUE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMaximumLength() <em>Maximum Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int MAXIMUM_LENGTH_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getMaximumLength() <em>Maximum Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected int maximumLength = MAXIMUM_LENGTH_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMaximumPrecision() <em>Maximum Precision</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumPrecision()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int MAXIMUM_PRECISION_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getMaximumPrecision() <em>Maximum Precision</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumPrecision()
+	 * @generated
+	 * @ordered
+	 */
+	protected int maximumPrecision = MAXIMUM_PRECISION_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMaximumScale() <em>Maximum Scale</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumScale()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int MAXIMUM_SCALE_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getMaximumScale() <em>Maximum Scale</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumScale()
+	 * @generated
+	 * @ordered
+	 */
+	protected int maximumScale = MAXIMUM_SCALE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMinimumScale() <em>Minimum Scale</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMinimumScale()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int MINIMUM_SCALE_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getMinimumScale() <em>Minimum Scale</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMinimumScale()
+	 * @generated
+	 * @ordered
+	 */
+	protected int minimumScale = MINIMUM_SCALE_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getDefaultValueTypes() <em>Default Value Types</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefaultValueTypes()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList defaultValueTypes;
+
+	/**
+	 * The default value of the '{@link #getPrimitiveType() <em>Primitive Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPrimitiveType()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final PrimitiveType PRIMITIVE_TYPE_EDEFAULT = PrimitiveType.CHARACTER_LITERAL;
+
+	/**
+	 * The cached value of the '{@link #getPrimitiveType() <em>Primitive Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPrimitiveType()
+	 * @generated
+	 * @ordered
+	 */
+	protected PrimitiveType primitiveType = PRIMITIVE_TYPE_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList name;
+
+	/**
+	 * The default value of the '{@link #getJdbcEnumType() <em>Jdbc Enum Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getJdbcEnumType()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int JDBC_ENUM_TYPE_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getJdbcEnumType() <em>Jdbc Enum Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getJdbcEnumType()
+	 * @generated
+	 * @ordered
+	 */
+	protected int jdbcEnumType = JDBC_ENUM_TYPE_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getCharacterSet() <em>Character Set</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCharacterSet()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList characterSet;
+
+	/**
+	 * The cached value of the '{@link #getEncodingScheme() <em>Encoding Scheme</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEncodingScheme()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList encodingScheme;
+
+	/**
+	 * The default value of the '{@link #getCharacterSetSuffix() <em>Character Set Suffix</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCharacterSetSuffix()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String CHARACTER_SET_SUFFIX_EDEFAULT = ""; //$NON-NLS-1$
+
+	/**
+	 * The cached value of the '{@link #getCharacterSetSuffix() <em>Character Set Suffix</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCharacterSetSuffix()
+	 * @generated
+	 * @ordered
+	 */
+	protected String characterSetSuffix = CHARACTER_SET_SUFFIX_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getEncodingSchemeSuffix() <em>Encoding Scheme Suffix</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEncodingSchemeSuffix()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ENCODING_SCHEME_SUFFIX_EDEFAULT = ""; //$NON-NLS-1$
+
+	/**
+	 * The cached value of the '{@link #getEncodingSchemeSuffix() <em>Encoding Scheme Suffix</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEncodingSchemeSuffix()
+	 * @generated
+	 * @ordered
+	 */
+	protected String encodingSchemeSuffix = ENCODING_SCHEME_SUFFIX_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getJavaClassName() <em>Java Class Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getJavaClassName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String JAVA_CLASS_NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getJavaClassName() <em>Java Class Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getJavaClassName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String javaClassName = JAVA_CLASS_NAME_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getDefaultLength() <em>Default Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefaultLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int DEFAULT_LENGTH_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getDefaultLength() <em>Default Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefaultLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected int defaultLength = DEFAULT_LENGTH_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getDefaultPrecision() <em>Default Precision</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefaultPrecision()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int DEFAULT_PRECISION_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getDefaultPrecision() <em>Default Precision</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefaultPrecision()
+	 * @generated
+	 * @ordered
+	 */
+	protected int defaultPrecision = DEFAULT_PRECISION_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getDefaultScale() <em>Default Scale</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefaultScale()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int DEFAULT_SCALE_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getDefaultScale() <em>Default Scale</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefaultScale()
+	 * @generated
+	 * @ordered
+	 */
+	protected int defaultScale = DEFAULT_SCALE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getCutoffPrecision() <em>Cutoff Precision</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCutoffPrecision()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int CUTOFF_PRECISION_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getCutoffPrecision() <em>Cutoff Precision</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCutoffPrecision()
+	 * @generated
+	 * @ordered
+	 */
+	protected int cutoffPrecision = CUTOFF_PRECISION_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getLengthUnit() <em>Length Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLengthUnit()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final LengthUnit LENGTH_UNIT_EDEFAULT = LengthUnit.DECIMAL_LITERAL;
+
+	/**
+	 * The cached value of the '{@link #getLengthUnit() <em>Length Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLengthUnit()
+	 * @generated
+	 * @ordered
+	 */
+	protected LengthUnit lengthUnit = LENGTH_UNIT_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isOrderingSupported() <em>Ordering Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isOrderingSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean ORDERING_SUPPORTED_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isOrderingSupported() <em>Ordering Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isOrderingSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean orderingSupported = ORDERING_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isGroupingSupported() <em>Grouping Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isGroupingSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean GROUPING_SUPPORTED_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isGroupingSupported() <em>Grouping Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isGroupingSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean groupingSupported = GROUPING_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getDisplayName() <em>Display Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDisplayName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DISPLAY_NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDisplayName() <em>Display Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDisplayName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String displayName = DISPLAY_NAME_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isDisplayNameSupported() <em>Display Name Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isDisplayNameSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean DISPLAY_NAME_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isDisplayNameSupported() <em>Display Name Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isDisplayNameSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean displayNameSupported = DISPLAY_NAME_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isLeadingFieldQualifierSupported() <em>Leading Field Qualifier Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isLeadingFieldQualifierSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean LEADING_FIELD_QUALIFIER_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isLeadingFieldQualifierSupported() <em>Leading Field Qualifier Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isLeadingFieldQualifierSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean leadingFieldQualifierSupported = LEADING_FIELD_QUALIFIER_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isTrailingFieldQualifierSupported() <em>Trailing Field Qualifier Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isTrailingFieldQualifierSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean TRAILING_FIELD_QUALIFIER_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isTrailingFieldQualifierSupported() <em>Trailing Field Qualifier Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isTrailingFieldQualifierSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean trailingFieldQualifierSupported = TRAILING_FIELD_QUALIFIER_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getFieldQualifierSeparator() <em>Field Qualifier Separator</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFieldQualifierSeparator()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String FIELD_QUALIFIER_SEPARATOR_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getFieldQualifierSeparator() <em>Field Qualifier Separator</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFieldQualifierSeparator()
+	 * @generated
+	 * @ordered
+	 */
+	protected String fieldQualifierSeparator = FIELD_QUALIFIER_SEPARATOR_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isLargeValueSpecifierSupported() <em>Large Value Specifier Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isLargeValueSpecifierSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean LARGE_VALUE_SPECIFIER_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isLargeValueSpecifierSupported() <em>Large Value Specifier Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isLargeValueSpecifierSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean largeValueSpecifierSupported = LARGE_VALUE_SPECIFIER_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getLargeValueSpecifierName() <em>Large Value Specifier Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLargeValueSpecifierName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String LARGE_VALUE_SPECIFIER_NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getLargeValueSpecifierName() <em>Large Value Specifier Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLargeValueSpecifierName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String largeValueSpecifierName = LARGE_VALUE_SPECIFIER_NAME_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getLargeValueSpecifierLength() <em>Large Value Specifier Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLargeValueSpecifierLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int LARGE_VALUE_SPECIFIER_LENGTH_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getLargeValueSpecifierLength() <em>Large Value Specifier Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLargeValueSpecifierLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected int largeValueSpecifierLength = LARGE_VALUE_SPECIFIER_LENGTH_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isLengthSemanticSupported() <em>Length Semantic Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isLengthSemanticSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean LENGTH_SEMANTIC_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isLengthSemanticSupported() <em>Length Semantic Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isLengthSemanticSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean lengthSemanticSupported = LENGTH_SEMANTIC_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getLengthSemantic() <em>Length Semantic</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLengthSemantic()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList lengthSemantic;
+
+	/**
+	 * The cached value of the '{@link #getLanguageType() <em>Language Type</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLanguageType()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList languageType;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected PredefinedDataTypeDefinitionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return DatabaseDefinitionPackage.Literals.PREDEFINED_DATA_TYPE_DEFINITION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getLeadingFieldQualifierDefinition() {
+		if (leadingFieldQualifierDefinition == null) {
+			leadingFieldQualifierDefinition = new EObjectContainmentEList(FieldQualifierDefinition.class, this, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LEADING_FIELD_QUALIFIER_DEFINITION);
+		}
+		return leadingFieldQualifierDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getTrailingFieldQualifierDefinition() {
+		if (trailingFieldQualifierDefinition == null) {
+			trailingFieldQualifierDefinition = new EObjectContainmentEList(FieldQualifierDefinition.class, this, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__TRAILING_FIELD_QUALIFIER_DEFINITION);
+		}
+		return trailingFieldQualifierDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public FieldQualifierDefinition getDefaultTrailingFieldQualifierDefinition() {
+		if (defaultTrailingFieldQualifierDefinition != null && defaultTrailingFieldQualifierDefinition.eIsProxy()) {
+			InternalEObject oldDefaultTrailingFieldQualifierDefinition = (InternalEObject)defaultTrailingFieldQualifierDefinition;
+			defaultTrailingFieldQualifierDefinition = (FieldQualifierDefinition)eResolveProxy(oldDefaultTrailingFieldQualifierDefinition);
+			if (defaultTrailingFieldQualifierDefinition != oldDefaultTrailingFieldQualifierDefinition) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_TRAILING_FIELD_QUALIFIER_DEFINITION, oldDefaultTrailingFieldQualifierDefinition, defaultTrailingFieldQualifierDefinition));
+			}
+		}
+		return defaultTrailingFieldQualifierDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public FieldQualifierDefinition basicGetDefaultTrailingFieldQualifierDefinition() {
+		return defaultTrailingFieldQualifierDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDefaultTrailingFieldQualifierDefinition(FieldQualifierDefinition newDefaultTrailingFieldQualifierDefinition) {
+		FieldQualifierDefinition oldDefaultTrailingFieldQualifierDefinition = defaultTrailingFieldQualifierDefinition;
+		defaultTrailingFieldQualifierDefinition = newDefaultTrailingFieldQualifierDefinition;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_TRAILING_FIELD_QUALIFIER_DEFINITION, oldDefaultTrailingFieldQualifierDefinition, defaultTrailingFieldQualifierDefinition));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public FieldQualifierDefinition getDefaultLeadingFieldQualifierDefinition() {
+		if (defaultLeadingFieldQualifierDefinition != null && defaultLeadingFieldQualifierDefinition.eIsProxy()) {
+			InternalEObject oldDefaultLeadingFieldQualifierDefinition = (InternalEObject)defaultLeadingFieldQualifierDefinition;
+			defaultLeadingFieldQualifierDefinition = (FieldQualifierDefinition)eResolveProxy(oldDefaultLeadingFieldQualifierDefinition);
+			if (defaultLeadingFieldQualifierDefinition != oldDefaultLeadingFieldQualifierDefinition) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_LEADING_FIELD_QUALIFIER_DEFINITION, oldDefaultLeadingFieldQualifierDefinition, defaultLeadingFieldQualifierDefinition));
+			}
+		}
+		return defaultLeadingFieldQualifierDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public FieldQualifierDefinition basicGetDefaultLeadingFieldQualifierDefinition() {
+		return defaultLeadingFieldQualifierDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDefaultLeadingFieldQualifierDefinition(FieldQualifierDefinition newDefaultLeadingFieldQualifierDefinition) {
+		FieldQualifierDefinition oldDefaultLeadingFieldQualifierDefinition = defaultLeadingFieldQualifierDefinition;
+		defaultLeadingFieldQualifierDefinition = newDefaultLeadingFieldQualifierDefinition;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_LEADING_FIELD_QUALIFIER_DEFINITION, oldDefaultLeadingFieldQualifierDefinition, defaultLeadingFieldQualifierDefinition));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isLengthSupported() {
+		return lengthSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLengthSupported(boolean newLengthSupported) {
+		boolean oldLengthSupported = lengthSupported;
+		lengthSupported = newLengthSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LENGTH_SUPPORTED, oldLengthSupported, lengthSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isScaleSupported() {
+		return scaleSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setScaleSupported(boolean newScaleSupported) {
+		boolean oldScaleSupported = scaleSupported;
+		scaleSupported = newScaleSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__SCALE_SUPPORTED, oldScaleSupported, scaleSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isPrecisionSupported() {
+		return precisionSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPrecisionSupported(boolean newPrecisionSupported) {
+		boolean oldPrecisionSupported = precisionSupported;
+		precisionSupported = newPrecisionSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__PRECISION_SUPPORTED, oldPrecisionSupported, precisionSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isKeyConstraintSupported() {
+		return keyConstraintSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setKeyConstraintSupported(boolean newKeyConstraintSupported) {
+		boolean oldKeyConstraintSupported = keyConstraintSupported;
+		keyConstraintSupported = newKeyConstraintSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__KEY_CONSTRAINT_SUPPORTED, oldKeyConstraintSupported, keyConstraintSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isIdentitySupported() {
+		return identitySupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setIdentitySupported(boolean newIdentitySupported) {
+		boolean oldIdentitySupported = identitySupported;
+		identitySupported = newIdentitySupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__IDENTITY_SUPPORTED, oldIdentitySupported, identitySupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isMultipleColumnsSupported() {
+		return multipleColumnsSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMultipleColumnsSupported(boolean newMultipleColumnsSupported) {
+		boolean oldMultipleColumnsSupported = multipleColumnsSupported;
+		multipleColumnsSupported = newMultipleColumnsSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__MULTIPLE_COLUMNS_SUPPORTED, oldMultipleColumnsSupported, multipleColumnsSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isNullableSupported() {
+		return nullableSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setNullableSupported(boolean newNullableSupported) {
+		boolean oldNullableSupported = nullableSupported;
+		nullableSupported = newNullableSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__NULLABLE_SUPPORTED, oldNullableSupported, nullableSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isDefaultSupported() {
+		return defaultSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDefaultSupported(boolean newDefaultSupported) {
+		boolean oldDefaultSupported = defaultSupported;
+		defaultSupported = newDefaultSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_SUPPORTED, oldDefaultSupported, defaultSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isClusteringSupported() {
+		return clusteringSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setClusteringSupported(boolean newClusteringSupported) {
+		boolean oldClusteringSupported = clusteringSupported;
+		clusteringSupported = newClusteringSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__CLUSTERING_SUPPORTED, oldClusteringSupported, clusteringSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isFillFactorSupported() {
+		return fillFactorSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setFillFactorSupported(boolean newFillFactorSupported) {
+		boolean oldFillFactorSupported = fillFactorSupported;
+		fillFactorSupported = newFillFactorSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__FILL_FACTOR_SUPPORTED, oldFillFactorSupported, fillFactorSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isBitDataSupported() {
+		return bitDataSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBitDataSupported(boolean newBitDataSupported) {
+		boolean oldBitDataSupported = bitDataSupported;
+		bitDataSupported = newBitDataSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__BIT_DATA_SUPPORTED, oldBitDataSupported, bitDataSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public long getMaximumValue() {
+		return maximumValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMaximumValue(long newMaximumValue) {
+		long oldMaximumValue = maximumValue;
+		maximumValue = newMaximumValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__MAXIMUM_VALUE, oldMaximumValue, maximumValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public long getMinimumValue() {
+		return minimumValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMinimumValue(long newMinimumValue) {
+		long oldMinimumValue = minimumValue;
+		minimumValue = newMinimumValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__MINIMUM_VALUE, oldMinimumValue, minimumValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getMaximumLength() {
+		return maximumLength;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMaximumLength(int newMaximumLength) {
+		int oldMaximumLength = maximumLength;
+		maximumLength = newMaximumLength;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__MAXIMUM_LENGTH, oldMaximumLength, maximumLength));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getMaximumPrecision() {
+		return maximumPrecision;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMaximumPrecision(int newMaximumPrecision) {
+		int oldMaximumPrecision = maximumPrecision;
+		maximumPrecision = newMaximumPrecision;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__MAXIMUM_PRECISION, oldMaximumPrecision, maximumPrecision));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getMaximumScale() {
+		return maximumScale;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMaximumScale(int newMaximumScale) {
+		int oldMaximumScale = maximumScale;
+		maximumScale = newMaximumScale;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__MAXIMUM_SCALE, oldMaximumScale, maximumScale));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getMinimumScale() {
+		return minimumScale;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMinimumScale(int newMinimumScale) {
+		int oldMinimumScale = minimumScale;
+		minimumScale = newMinimumScale;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__MINIMUM_SCALE, oldMinimumScale, minimumScale));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getDefaultValueTypes() {
+		if (defaultValueTypes == null) {
+			defaultValueTypes = new EDataTypeUniqueEList(String.class, this, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_VALUE_TYPES);
+		}
+		return defaultValueTypes;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PrimitiveType getPrimitiveType() {
+		return primitiveType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPrimitiveType(PrimitiveType newPrimitiveType) {
+		PrimitiveType oldPrimitiveType = primitiveType;
+		primitiveType = newPrimitiveType == null ? PRIMITIVE_TYPE_EDEFAULT : newPrimitiveType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__PRIMITIVE_TYPE, oldPrimitiveType, primitiveType));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getName() {
+		if (name == null) {
+			name = new EDataTypeUniqueEList(String.class, this, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__NAME);
+		}
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getJdbcEnumType() {
+		return jdbcEnumType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setJdbcEnumType(int newJdbcEnumType) {
+		int oldJdbcEnumType = jdbcEnumType;
+		jdbcEnumType = newJdbcEnumType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__JDBC_ENUM_TYPE, oldJdbcEnumType, jdbcEnumType));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getCharacterSet() {
+		if (characterSet == null) {
+			characterSet = new EDataTypeUniqueEList(String.class, this, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__CHARACTER_SET);
+		}
+		return characterSet;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getEncodingScheme() {
+		if (encodingScheme == null) {
+			encodingScheme = new EDataTypeUniqueEList(String.class, this, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__ENCODING_SCHEME);
+		}
+		return encodingScheme;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getCharacterSetSuffix() {
+		return characterSetSuffix;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCharacterSetSuffix(String newCharacterSetSuffix) {
+		String oldCharacterSetSuffix = characterSetSuffix;
+		characterSetSuffix = newCharacterSetSuffix;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__CHARACTER_SET_SUFFIX, oldCharacterSetSuffix, characterSetSuffix));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getEncodingSchemeSuffix() {
+		return encodingSchemeSuffix;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setEncodingSchemeSuffix(String newEncodingSchemeSuffix) {
+		String oldEncodingSchemeSuffix = encodingSchemeSuffix;
+		encodingSchemeSuffix = newEncodingSchemeSuffix;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__ENCODING_SCHEME_SUFFIX, oldEncodingSchemeSuffix, encodingSchemeSuffix));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getJavaClassName() {
+		return javaClassName;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setJavaClassName(String newJavaClassName) {
+		String oldJavaClassName = javaClassName;
+		javaClassName = newJavaClassName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__JAVA_CLASS_NAME, oldJavaClassName, javaClassName));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getDefaultLength() {
+		return defaultLength;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDefaultLength(int newDefaultLength) {
+		int oldDefaultLength = defaultLength;
+		defaultLength = newDefaultLength;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_LENGTH, oldDefaultLength, defaultLength));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getDefaultPrecision() {
+		return defaultPrecision;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDefaultPrecision(int newDefaultPrecision) {
+		int oldDefaultPrecision = defaultPrecision;
+		defaultPrecision = newDefaultPrecision;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_PRECISION, oldDefaultPrecision, defaultPrecision));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getDefaultScale() {
+		return defaultScale;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDefaultScale(int newDefaultScale) {
+		int oldDefaultScale = defaultScale;
+		defaultScale = newDefaultScale;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_SCALE, oldDefaultScale, defaultScale));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getCutoffPrecision() {
+		return cutoffPrecision;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCutoffPrecision(int newCutoffPrecision) {
+		int oldCutoffPrecision = cutoffPrecision;
+		cutoffPrecision = newCutoffPrecision;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__CUTOFF_PRECISION, oldCutoffPrecision, cutoffPrecision));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public LengthUnit getLengthUnit() {
+		return lengthUnit;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLengthUnit(LengthUnit newLengthUnit) {
+		LengthUnit oldLengthUnit = lengthUnit;
+		lengthUnit = newLengthUnit == null ? LENGTH_UNIT_EDEFAULT : newLengthUnit;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LENGTH_UNIT, oldLengthUnit, lengthUnit));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isOrderingSupported() {
+		return orderingSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setOrderingSupported(boolean newOrderingSupported) {
+		boolean oldOrderingSupported = orderingSupported;
+		orderingSupported = newOrderingSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__ORDERING_SUPPORTED, oldOrderingSupported, orderingSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isGroupingSupported() {
+		return groupingSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setGroupingSupported(boolean newGroupingSupported) {
+		boolean oldGroupingSupported = groupingSupported;
+		groupingSupported = newGroupingSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__GROUPING_SUPPORTED, oldGroupingSupported, groupingSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getDisplayName() {
+		return displayName;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDisplayName(String newDisplayName) {
+		String oldDisplayName = displayName;
+		displayName = newDisplayName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__DISPLAY_NAME, oldDisplayName, displayName));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isDisplayNameSupported() {
+		return displayNameSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDisplayNameSupported(boolean newDisplayNameSupported) {
+		boolean oldDisplayNameSupported = displayNameSupported;
+		displayNameSupported = newDisplayNameSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__DISPLAY_NAME_SUPPORTED, oldDisplayNameSupported, displayNameSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isLeadingFieldQualifierSupported() {
+		return leadingFieldQualifierSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLeadingFieldQualifierSupported(boolean newLeadingFieldQualifierSupported) {
+		boolean oldLeadingFieldQualifierSupported = leadingFieldQualifierSupported;
+		leadingFieldQualifierSupported = newLeadingFieldQualifierSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LEADING_FIELD_QUALIFIER_SUPPORTED, oldLeadingFieldQualifierSupported, leadingFieldQualifierSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isTrailingFieldQualifierSupported() {
+		return trailingFieldQualifierSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTrailingFieldQualifierSupported(boolean newTrailingFieldQualifierSupported) {
+		boolean oldTrailingFieldQualifierSupported = trailingFieldQualifierSupported;
+		trailingFieldQualifierSupported = newTrailingFieldQualifierSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__TRAILING_FIELD_QUALIFIER_SUPPORTED, oldTrailingFieldQualifierSupported, trailingFieldQualifierSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getFieldQualifierSeparator() {
+		return fieldQualifierSeparator;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setFieldQualifierSeparator(String newFieldQualifierSeparator) {
+		String oldFieldQualifierSeparator = fieldQualifierSeparator;
+		fieldQualifierSeparator = newFieldQualifierSeparator;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__FIELD_QUALIFIER_SEPARATOR, oldFieldQualifierSeparator, fieldQualifierSeparator));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isLargeValueSpecifierSupported() {
+		return largeValueSpecifierSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLargeValueSpecifierSupported(boolean newLargeValueSpecifierSupported) {
+		boolean oldLargeValueSpecifierSupported = largeValueSpecifierSupported;
+		largeValueSpecifierSupported = newLargeValueSpecifierSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LARGE_VALUE_SPECIFIER_SUPPORTED, oldLargeValueSpecifierSupported, largeValueSpecifierSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLargeValueSpecifierName() {
+		return largeValueSpecifierName;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLargeValueSpecifierName(String newLargeValueSpecifierName) {
+		String oldLargeValueSpecifierName = largeValueSpecifierName;
+		largeValueSpecifierName = newLargeValueSpecifierName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LARGE_VALUE_SPECIFIER_NAME, oldLargeValueSpecifierName, largeValueSpecifierName));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getLargeValueSpecifierLength() {
+		return largeValueSpecifierLength;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLargeValueSpecifierLength(int newLargeValueSpecifierLength) {
+		int oldLargeValueSpecifierLength = largeValueSpecifierLength;
+		largeValueSpecifierLength = newLargeValueSpecifierLength;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LARGE_VALUE_SPECIFIER_LENGTH, oldLargeValueSpecifierLength, largeValueSpecifierLength));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isLengthSemanticSupported() {
+		return lengthSemanticSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLengthSemanticSupported(boolean newLengthSemanticSupported) {
+		boolean oldLengthSemanticSupported = lengthSemanticSupported;
+		lengthSemanticSupported = newLengthSemanticSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LENGTH_SEMANTIC_SUPPORTED, oldLengthSemanticSupported, lengthSemanticSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getLengthSemantic() {
+		if (lengthSemantic == null) {
+			lengthSemantic = new EDataTypeUniqueEList(String.class, this, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LENGTH_SEMANTIC);
+		}
+		return lengthSemantic;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getLanguageType() {
+		if (languageType == null) {
+			languageType = new EDataTypeUniqueEList(LanguageType.class, this, DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LANGUAGE_TYPE);
+		}
+		return languageType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LEADING_FIELD_QUALIFIER_DEFINITION:
+				return ((InternalEList)getLeadingFieldQualifierDefinition()).basicRemove(otherEnd, msgs);
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__TRAILING_FIELD_QUALIFIER_DEFINITION:
+				return ((InternalEList)getTrailingFieldQualifierDefinition()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LEADING_FIELD_QUALIFIER_DEFINITION:
+				return getLeadingFieldQualifierDefinition();
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__TRAILING_FIELD_QUALIFIER_DEFINITION:
+				return getTrailingFieldQualifierDefinition();
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_TRAILING_FIELD_QUALIFIER_DEFINITION:
+				if (resolve) return getDefaultTrailingFieldQualifierDefinition();
+				return basicGetDefaultTrailingFieldQualifierDefinition();
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_LEADING_FIELD_QUALIFIER_DEFINITION:
+				if (resolve) return getDefaultLeadingFieldQualifierDefinition();
+				return basicGetDefaultLeadingFieldQualifierDefinition();
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LENGTH_SUPPORTED:
+				return isLengthSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__SCALE_SUPPORTED:
+				return isScaleSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__PRECISION_SUPPORTED:
+				return isPrecisionSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__KEY_CONSTRAINT_SUPPORTED:
+				return isKeyConstraintSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__IDENTITY_SUPPORTED:
+				return isIdentitySupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__MULTIPLE_COLUMNS_SUPPORTED:
+				return isMultipleColumnsSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__NULLABLE_SUPPORTED:
+				return isNullableSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_SUPPORTED:
+				return isDefaultSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__CLUSTERING_SUPPORTED:
+				return isClusteringSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__FILL_FACTOR_SUPPORTED:
+				return isFillFactorSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__BIT_DATA_SUPPORTED:
+				return isBitDataSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__MAXIMUM_VALUE:
+				return new Long(getMaximumValue());
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__MINIMUM_VALUE:
+				return new Long(getMinimumValue());
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__MAXIMUM_LENGTH:
+				return new Integer(getMaximumLength());
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__MAXIMUM_PRECISION:
+				return new Integer(getMaximumPrecision());
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__MAXIMUM_SCALE:
+				return new Integer(getMaximumScale());
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__MINIMUM_SCALE:
+				return new Integer(getMinimumScale());
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_VALUE_TYPES:
+				return getDefaultValueTypes();
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__PRIMITIVE_TYPE:
+				return getPrimitiveType();
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__NAME:
+				return getName();
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__JDBC_ENUM_TYPE:
+				return new Integer(getJdbcEnumType());
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__CHARACTER_SET:
+				return getCharacterSet();
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__ENCODING_SCHEME:
+				return getEncodingScheme();
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__CHARACTER_SET_SUFFIX:
+				return getCharacterSetSuffix();
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__ENCODING_SCHEME_SUFFIX:
+				return getEncodingSchemeSuffix();
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__JAVA_CLASS_NAME:
+				return getJavaClassName();
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_LENGTH:
+				return new Integer(getDefaultLength());
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_PRECISION:
+				return new Integer(getDefaultPrecision());
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_SCALE:
+				return new Integer(getDefaultScale());
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__CUTOFF_PRECISION:
+				return new Integer(getCutoffPrecision());
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LENGTH_UNIT:
+				return getLengthUnit();
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__ORDERING_SUPPORTED:
+				return isOrderingSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__GROUPING_SUPPORTED:
+				return isGroupingSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__DISPLAY_NAME:
+				return getDisplayName();
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__DISPLAY_NAME_SUPPORTED:
+				return isDisplayNameSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LEADING_FIELD_QUALIFIER_SUPPORTED:
+				return isLeadingFieldQualifierSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__TRAILING_FIELD_QUALIFIER_SUPPORTED:
+				return isTrailingFieldQualifierSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__FIELD_QUALIFIER_SEPARATOR:
+				return getFieldQualifierSeparator();
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LARGE_VALUE_SPECIFIER_SUPPORTED:
+				return isLargeValueSpecifierSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LARGE_VALUE_SPECIFIER_NAME:
+				return getLargeValueSpecifierName();
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LARGE_VALUE_SPECIFIER_LENGTH:
+				return new Integer(getLargeValueSpecifierLength());
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LENGTH_SEMANTIC_SUPPORTED:
+				return isLengthSemanticSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LENGTH_SEMANTIC:
+				return getLengthSemantic();
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LANGUAGE_TYPE:
+				return getLanguageType();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LEADING_FIELD_QUALIFIER_DEFINITION:
+				getLeadingFieldQualifierDefinition().clear();
+				getLeadingFieldQualifierDefinition().addAll((Collection)newValue);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__TRAILING_FIELD_QUALIFIER_DEFINITION:
+				getTrailingFieldQualifierDefinition().clear();
+				getTrailingFieldQualifierDefinition().addAll((Collection)newValue);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_TRAILING_FIELD_QUALIFIER_DEFINITION:
+				setDefaultTrailingFieldQualifierDefinition((FieldQualifierDefinition)newValue);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_LEADING_FIELD_QUALIFIER_DEFINITION:
+				setDefaultLeadingFieldQualifierDefinition((FieldQualifierDefinition)newValue);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LENGTH_SUPPORTED:
+				setLengthSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__SCALE_SUPPORTED:
+				setScaleSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__PRECISION_SUPPORTED:
+				setPrecisionSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__KEY_CONSTRAINT_SUPPORTED:
+				setKeyConstraintSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__IDENTITY_SUPPORTED:
+				setIdentitySupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__MULTIPLE_COLUMNS_SUPPORTED:
+				setMultipleColumnsSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__NULLABLE_SUPPORTED:
+				setNullableSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_SUPPORTED:
+				setDefaultSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__CLUSTERING_SUPPORTED:
+				setClusteringSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__FILL_FACTOR_SUPPORTED:
+				setFillFactorSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__BIT_DATA_SUPPORTED:
+				setBitDataSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__MAXIMUM_VALUE:
+				setMaximumValue(((Long)newValue).longValue());
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__MINIMUM_VALUE:
+				setMinimumValue(((Long)newValue).longValue());
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__MAXIMUM_LENGTH:
+				setMaximumLength(((Integer)newValue).intValue());
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__MAXIMUM_PRECISION:
+				setMaximumPrecision(((Integer)newValue).intValue());
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__MAXIMUM_SCALE:
+				setMaximumScale(((Integer)newValue).intValue());
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__MINIMUM_SCALE:
+				setMinimumScale(((Integer)newValue).intValue());
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_VALUE_TYPES:
+				getDefaultValueTypes().clear();
+				getDefaultValueTypes().addAll((Collection)newValue);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__PRIMITIVE_TYPE:
+				setPrimitiveType((PrimitiveType)newValue);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__NAME:
+				getName().clear();
+				getName().addAll((Collection)newValue);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__JDBC_ENUM_TYPE:
+				setJdbcEnumType(((Integer)newValue).intValue());
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__CHARACTER_SET:
+				getCharacterSet().clear();
+				getCharacterSet().addAll((Collection)newValue);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__ENCODING_SCHEME:
+				getEncodingScheme().clear();
+				getEncodingScheme().addAll((Collection)newValue);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__CHARACTER_SET_SUFFIX:
+				setCharacterSetSuffix((String)newValue);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__ENCODING_SCHEME_SUFFIX:
+				setEncodingSchemeSuffix((String)newValue);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__JAVA_CLASS_NAME:
+				setJavaClassName((String)newValue);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_LENGTH:
+				setDefaultLength(((Integer)newValue).intValue());
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_PRECISION:
+				setDefaultPrecision(((Integer)newValue).intValue());
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_SCALE:
+				setDefaultScale(((Integer)newValue).intValue());
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__CUTOFF_PRECISION:
+				setCutoffPrecision(((Integer)newValue).intValue());
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LENGTH_UNIT:
+				setLengthUnit((LengthUnit)newValue);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__ORDERING_SUPPORTED:
+				setOrderingSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__GROUPING_SUPPORTED:
+				setGroupingSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__DISPLAY_NAME:
+				setDisplayName((String)newValue);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__DISPLAY_NAME_SUPPORTED:
+				setDisplayNameSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LEADING_FIELD_QUALIFIER_SUPPORTED:
+				setLeadingFieldQualifierSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__TRAILING_FIELD_QUALIFIER_SUPPORTED:
+				setTrailingFieldQualifierSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__FIELD_QUALIFIER_SEPARATOR:
+				setFieldQualifierSeparator((String)newValue);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LARGE_VALUE_SPECIFIER_SUPPORTED:
+				setLargeValueSpecifierSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LARGE_VALUE_SPECIFIER_NAME:
+				setLargeValueSpecifierName((String)newValue);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LARGE_VALUE_SPECIFIER_LENGTH:
+				setLargeValueSpecifierLength(((Integer)newValue).intValue());
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LENGTH_SEMANTIC_SUPPORTED:
+				setLengthSemanticSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LENGTH_SEMANTIC:
+				getLengthSemantic().clear();
+				getLengthSemantic().addAll((Collection)newValue);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LANGUAGE_TYPE:
+				getLanguageType().clear();
+				getLanguageType().addAll((Collection)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LEADING_FIELD_QUALIFIER_DEFINITION:
+				getLeadingFieldQualifierDefinition().clear();
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__TRAILING_FIELD_QUALIFIER_DEFINITION:
+				getTrailingFieldQualifierDefinition().clear();
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_TRAILING_FIELD_QUALIFIER_DEFINITION:
+				setDefaultTrailingFieldQualifierDefinition((FieldQualifierDefinition)null);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_LEADING_FIELD_QUALIFIER_DEFINITION:
+				setDefaultLeadingFieldQualifierDefinition((FieldQualifierDefinition)null);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LENGTH_SUPPORTED:
+				setLengthSupported(LENGTH_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__SCALE_SUPPORTED:
+				setScaleSupported(SCALE_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__PRECISION_SUPPORTED:
+				setPrecisionSupported(PRECISION_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__KEY_CONSTRAINT_SUPPORTED:
+				setKeyConstraintSupported(KEY_CONSTRAINT_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__IDENTITY_SUPPORTED:
+				setIdentitySupported(IDENTITY_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__MULTIPLE_COLUMNS_SUPPORTED:
+				setMultipleColumnsSupported(MULTIPLE_COLUMNS_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__NULLABLE_SUPPORTED:
+				setNullableSupported(NULLABLE_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_SUPPORTED:
+				setDefaultSupported(DEFAULT_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__CLUSTERING_SUPPORTED:
+				setClusteringSupported(CLUSTERING_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__FILL_FACTOR_SUPPORTED:
+				setFillFactorSupported(FILL_FACTOR_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__BIT_DATA_SUPPORTED:
+				setBitDataSupported(BIT_DATA_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__MAXIMUM_VALUE:
+				setMaximumValue(MAXIMUM_VALUE_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__MINIMUM_VALUE:
+				setMinimumValue(MINIMUM_VALUE_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__MAXIMUM_LENGTH:
+				setMaximumLength(MAXIMUM_LENGTH_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__MAXIMUM_PRECISION:
+				setMaximumPrecision(MAXIMUM_PRECISION_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__MAXIMUM_SCALE:
+				setMaximumScale(MAXIMUM_SCALE_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__MINIMUM_SCALE:
+				setMinimumScale(MINIMUM_SCALE_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_VALUE_TYPES:
+				getDefaultValueTypes().clear();
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__PRIMITIVE_TYPE:
+				setPrimitiveType(PRIMITIVE_TYPE_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__NAME:
+				getName().clear();
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__JDBC_ENUM_TYPE:
+				setJdbcEnumType(JDBC_ENUM_TYPE_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__CHARACTER_SET:
+				getCharacterSet().clear();
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__ENCODING_SCHEME:
+				getEncodingScheme().clear();
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__CHARACTER_SET_SUFFIX:
+				setCharacterSetSuffix(CHARACTER_SET_SUFFIX_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__ENCODING_SCHEME_SUFFIX:
+				setEncodingSchemeSuffix(ENCODING_SCHEME_SUFFIX_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__JAVA_CLASS_NAME:
+				setJavaClassName(JAVA_CLASS_NAME_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_LENGTH:
+				setDefaultLength(DEFAULT_LENGTH_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_PRECISION:
+				setDefaultPrecision(DEFAULT_PRECISION_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_SCALE:
+				setDefaultScale(DEFAULT_SCALE_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__CUTOFF_PRECISION:
+				setCutoffPrecision(CUTOFF_PRECISION_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LENGTH_UNIT:
+				setLengthUnit(LENGTH_UNIT_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__ORDERING_SUPPORTED:
+				setOrderingSupported(ORDERING_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__GROUPING_SUPPORTED:
+				setGroupingSupported(GROUPING_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__DISPLAY_NAME:
+				setDisplayName(DISPLAY_NAME_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__DISPLAY_NAME_SUPPORTED:
+				setDisplayNameSupported(DISPLAY_NAME_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LEADING_FIELD_QUALIFIER_SUPPORTED:
+				setLeadingFieldQualifierSupported(LEADING_FIELD_QUALIFIER_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__TRAILING_FIELD_QUALIFIER_SUPPORTED:
+				setTrailingFieldQualifierSupported(TRAILING_FIELD_QUALIFIER_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__FIELD_QUALIFIER_SEPARATOR:
+				setFieldQualifierSeparator(FIELD_QUALIFIER_SEPARATOR_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LARGE_VALUE_SPECIFIER_SUPPORTED:
+				setLargeValueSpecifierSupported(LARGE_VALUE_SPECIFIER_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LARGE_VALUE_SPECIFIER_NAME:
+				setLargeValueSpecifierName(LARGE_VALUE_SPECIFIER_NAME_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LARGE_VALUE_SPECIFIER_LENGTH:
+				setLargeValueSpecifierLength(LARGE_VALUE_SPECIFIER_LENGTH_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LENGTH_SEMANTIC_SUPPORTED:
+				setLengthSemanticSupported(LENGTH_SEMANTIC_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LENGTH_SEMANTIC:
+				getLengthSemantic().clear();
+				return;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LANGUAGE_TYPE:
+				getLanguageType().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LEADING_FIELD_QUALIFIER_DEFINITION:
+				return leadingFieldQualifierDefinition != null && !leadingFieldQualifierDefinition.isEmpty();
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__TRAILING_FIELD_QUALIFIER_DEFINITION:
+				return trailingFieldQualifierDefinition != null && !trailingFieldQualifierDefinition.isEmpty();
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_TRAILING_FIELD_QUALIFIER_DEFINITION:
+				return defaultTrailingFieldQualifierDefinition != null;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_LEADING_FIELD_QUALIFIER_DEFINITION:
+				return defaultLeadingFieldQualifierDefinition != null;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LENGTH_SUPPORTED:
+				return lengthSupported != LENGTH_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__SCALE_SUPPORTED:
+				return scaleSupported != SCALE_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__PRECISION_SUPPORTED:
+				return precisionSupported != PRECISION_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__KEY_CONSTRAINT_SUPPORTED:
+				return keyConstraintSupported != KEY_CONSTRAINT_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__IDENTITY_SUPPORTED:
+				return identitySupported != IDENTITY_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__MULTIPLE_COLUMNS_SUPPORTED:
+				return multipleColumnsSupported != MULTIPLE_COLUMNS_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__NULLABLE_SUPPORTED:
+				return nullableSupported != NULLABLE_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_SUPPORTED:
+				return defaultSupported != DEFAULT_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__CLUSTERING_SUPPORTED:
+				return clusteringSupported != CLUSTERING_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__FILL_FACTOR_SUPPORTED:
+				return fillFactorSupported != FILL_FACTOR_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__BIT_DATA_SUPPORTED:
+				return bitDataSupported != BIT_DATA_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__MAXIMUM_VALUE:
+				return maximumValue != MAXIMUM_VALUE_EDEFAULT;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__MINIMUM_VALUE:
+				return minimumValue != MINIMUM_VALUE_EDEFAULT;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__MAXIMUM_LENGTH:
+				return maximumLength != MAXIMUM_LENGTH_EDEFAULT;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__MAXIMUM_PRECISION:
+				return maximumPrecision != MAXIMUM_PRECISION_EDEFAULT;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__MAXIMUM_SCALE:
+				return maximumScale != MAXIMUM_SCALE_EDEFAULT;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__MINIMUM_SCALE:
+				return minimumScale != MINIMUM_SCALE_EDEFAULT;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_VALUE_TYPES:
+				return defaultValueTypes != null && !defaultValueTypes.isEmpty();
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__PRIMITIVE_TYPE:
+				return primitiveType != PRIMITIVE_TYPE_EDEFAULT;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__NAME:
+				return name != null && !name.isEmpty();
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__JDBC_ENUM_TYPE:
+				return jdbcEnumType != JDBC_ENUM_TYPE_EDEFAULT;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__CHARACTER_SET:
+				return characterSet != null && !characterSet.isEmpty();
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__ENCODING_SCHEME:
+				return encodingScheme != null && !encodingScheme.isEmpty();
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__CHARACTER_SET_SUFFIX:
+				return CHARACTER_SET_SUFFIX_EDEFAULT == null ? characterSetSuffix != null : !CHARACTER_SET_SUFFIX_EDEFAULT.equals(characterSetSuffix);
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__ENCODING_SCHEME_SUFFIX:
+				return ENCODING_SCHEME_SUFFIX_EDEFAULT == null ? encodingSchemeSuffix != null : !ENCODING_SCHEME_SUFFIX_EDEFAULT.equals(encodingSchemeSuffix);
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__JAVA_CLASS_NAME:
+				return JAVA_CLASS_NAME_EDEFAULT == null ? javaClassName != null : !JAVA_CLASS_NAME_EDEFAULT.equals(javaClassName);
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_LENGTH:
+				return defaultLength != DEFAULT_LENGTH_EDEFAULT;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_PRECISION:
+				return defaultPrecision != DEFAULT_PRECISION_EDEFAULT;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__DEFAULT_SCALE:
+				return defaultScale != DEFAULT_SCALE_EDEFAULT;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__CUTOFF_PRECISION:
+				return cutoffPrecision != CUTOFF_PRECISION_EDEFAULT;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LENGTH_UNIT:
+				return lengthUnit != LENGTH_UNIT_EDEFAULT;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__ORDERING_SUPPORTED:
+				return orderingSupported != ORDERING_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__GROUPING_SUPPORTED:
+				return groupingSupported != GROUPING_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__DISPLAY_NAME:
+				return DISPLAY_NAME_EDEFAULT == null ? displayName != null : !DISPLAY_NAME_EDEFAULT.equals(displayName);
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__DISPLAY_NAME_SUPPORTED:
+				return displayNameSupported != DISPLAY_NAME_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LEADING_FIELD_QUALIFIER_SUPPORTED:
+				return leadingFieldQualifierSupported != LEADING_FIELD_QUALIFIER_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__TRAILING_FIELD_QUALIFIER_SUPPORTED:
+				return trailingFieldQualifierSupported != TRAILING_FIELD_QUALIFIER_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__FIELD_QUALIFIER_SEPARATOR:
+				return FIELD_QUALIFIER_SEPARATOR_EDEFAULT == null ? fieldQualifierSeparator != null : !FIELD_QUALIFIER_SEPARATOR_EDEFAULT.equals(fieldQualifierSeparator);
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LARGE_VALUE_SPECIFIER_SUPPORTED:
+				return largeValueSpecifierSupported != LARGE_VALUE_SPECIFIER_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LARGE_VALUE_SPECIFIER_NAME:
+				return LARGE_VALUE_SPECIFIER_NAME_EDEFAULT == null ? largeValueSpecifierName != null : !LARGE_VALUE_SPECIFIER_NAME_EDEFAULT.equals(largeValueSpecifierName);
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LARGE_VALUE_SPECIFIER_LENGTH:
+				return largeValueSpecifierLength != LARGE_VALUE_SPECIFIER_LENGTH_EDEFAULT;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LENGTH_SEMANTIC_SUPPORTED:
+				return lengthSemanticSupported != LENGTH_SEMANTIC_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LENGTH_SEMANTIC:
+				return lengthSemantic != null && !lengthSemantic.isEmpty();
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION__LANGUAGE_TYPE:
+				return languageType != null && !languageType.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (lengthSupported: "); //$NON-NLS-1$
+		result.append(lengthSupported);
+		result.append(", scaleSupported: "); //$NON-NLS-1$
+		result.append(scaleSupported);
+		result.append(", precisionSupported: "); //$NON-NLS-1$
+		result.append(precisionSupported);
+		result.append(", keyConstraintSupported: "); //$NON-NLS-1$
+		result.append(keyConstraintSupported);
+		result.append(", identitySupported: "); //$NON-NLS-1$
+		result.append(identitySupported);
+		result.append(", multipleColumnsSupported: "); //$NON-NLS-1$
+		result.append(multipleColumnsSupported);
+		result.append(", nullableSupported: "); //$NON-NLS-1$
+		result.append(nullableSupported);
+		result.append(", defaultSupported: "); //$NON-NLS-1$
+		result.append(defaultSupported);
+		result.append(", clusteringSupported: "); //$NON-NLS-1$
+		result.append(clusteringSupported);
+		result.append(", fillFactorSupported: "); //$NON-NLS-1$
+		result.append(fillFactorSupported);
+		result.append(", bitDataSupported: "); //$NON-NLS-1$
+		result.append(bitDataSupported);
+		result.append(", maximumValue: "); //$NON-NLS-1$
+		result.append(maximumValue);
+		result.append(", minimumValue: "); //$NON-NLS-1$
+		result.append(minimumValue);
+		result.append(", maximumLength: "); //$NON-NLS-1$
+		result.append(maximumLength);
+		result.append(", maximumPrecision: "); //$NON-NLS-1$
+		result.append(maximumPrecision);
+		result.append(", maximumScale: "); //$NON-NLS-1$
+		result.append(maximumScale);
+		result.append(", minimumScale: "); //$NON-NLS-1$
+		result.append(minimumScale);
+		result.append(", defaultValueTypes: "); //$NON-NLS-1$
+		result.append(defaultValueTypes);
+		result.append(", primitiveType: "); //$NON-NLS-1$
+		result.append(primitiveType);
+		result.append(", name: "); //$NON-NLS-1$
+		result.append(name);
+		result.append(", jdbcEnumType: "); //$NON-NLS-1$
+		result.append(jdbcEnumType);
+		result.append(", characterSet: "); //$NON-NLS-1$
+		result.append(characterSet);
+		result.append(", encodingScheme: "); //$NON-NLS-1$
+		result.append(encodingScheme);
+		result.append(", characterSetSuffix: "); //$NON-NLS-1$
+		result.append(characterSetSuffix);
+		result.append(", encodingSchemeSuffix: "); //$NON-NLS-1$
+		result.append(encodingSchemeSuffix);
+		result.append(", javaClassName: "); //$NON-NLS-1$
+		result.append(javaClassName);
+		result.append(", defaultLength: "); //$NON-NLS-1$
+		result.append(defaultLength);
+		result.append(", defaultPrecision: "); //$NON-NLS-1$
+		result.append(defaultPrecision);
+		result.append(", defaultScale: "); //$NON-NLS-1$
+		result.append(defaultScale);
+		result.append(", cutoffPrecision: "); //$NON-NLS-1$
+		result.append(cutoffPrecision);
+		result.append(", lengthUnit: "); //$NON-NLS-1$
+		result.append(lengthUnit);
+		result.append(", orderingSupported: "); //$NON-NLS-1$
+		result.append(orderingSupported);
+		result.append(", groupingSupported: "); //$NON-NLS-1$
+		result.append(groupingSupported);
+		result.append(", displayName: "); //$NON-NLS-1$
+		result.append(displayName);
+		result.append(", displayNameSupported: "); //$NON-NLS-1$
+		result.append(displayNameSupported);
+		result.append(", leadingFieldQualifierSupported: "); //$NON-NLS-1$
+		result.append(leadingFieldQualifierSupported);
+		result.append(", trailingFieldQualifierSupported: "); //$NON-NLS-1$
+		result.append(trailingFieldQualifierSupported);
+		result.append(", fieldQualifierSeparator: "); //$NON-NLS-1$
+		result.append(fieldQualifierSeparator);
+		result.append(", largeValueSpecifierSupported: "); //$NON-NLS-1$
+		result.append(largeValueSpecifierSupported);
+		result.append(", largeValueSpecifierName: "); //$NON-NLS-1$
+		result.append(largeValueSpecifierName);
+		result.append(", largeValueSpecifierLength: "); //$NON-NLS-1$
+		result.append(largeValueSpecifierLength);
+		result.append(", lengthSemanticSupported: "); //$NON-NLS-1$
+		result.append(lengthSemanticSupported);
+		result.append(", lengthSemantic: "); //$NON-NLS-1$
+		result.append(lengthSemantic);
+		result.append(", languageType: "); //$NON-NLS-1$
+		result.append(languageType);
+		result.append(')');
+		return result.toString();
+	}
+
+} //PredefinedDataTypeDefinitionImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/PrivilegeDefinitionImpl.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/PrivilegeDefinitionImpl.java
new file mode 100644
index 0000000..c2f1e9c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/PrivilegeDefinitionImpl.java
@@ -0,0 +1,202 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PrivilegeDefinitionImpl.java,v 1.1 2007/05/31 00:29:10 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.dbdefinition.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage;
+import org.eclipse.datatools.modelbase.dbdefinition.PrivilegeDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.PrivilegedElementDefinition;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Privilege Definition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PrivilegeDefinitionImpl#getActionElementDefinitions <em>Action Element Definitions</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PrivilegeDefinitionImpl#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PrivilegeDefinitionImpl extends EObjectImpl implements PrivilegeDefinition {
+	/**
+	 * The cached value of the '{@link #getActionElementDefinitions() <em>Action Element Definitions</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getActionElementDefinitions()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList actionElementDefinitions;
+
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected PrivilegeDefinitionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return DatabaseDefinitionPackage.Literals.PRIVILEGE_DEFINITION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getActionElementDefinitions() {
+		if (actionElementDefinitions == null) {
+			actionElementDefinitions = new EObjectResolvingEList(PrivilegedElementDefinition.class, this, DatabaseDefinitionPackage.PRIVILEGE_DEFINITION__ACTION_ELEMENT_DEFINITIONS);
+		}
+		return actionElementDefinitions;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.PRIVILEGE_DEFINITION__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.PRIVILEGE_DEFINITION__ACTION_ELEMENT_DEFINITIONS:
+				return getActionElementDefinitions();
+			case DatabaseDefinitionPackage.PRIVILEGE_DEFINITION__NAME:
+				return getName();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.PRIVILEGE_DEFINITION__ACTION_ELEMENT_DEFINITIONS:
+				getActionElementDefinitions().clear();
+				getActionElementDefinitions().addAll((Collection)newValue);
+				return;
+			case DatabaseDefinitionPackage.PRIVILEGE_DEFINITION__NAME:
+				setName((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.PRIVILEGE_DEFINITION__ACTION_ELEMENT_DEFINITIONS:
+				getActionElementDefinitions().clear();
+				return;
+			case DatabaseDefinitionPackage.PRIVILEGE_DEFINITION__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.PRIVILEGE_DEFINITION__ACTION_ELEMENT_DEFINITIONS:
+				return actionElementDefinitions != null && !actionElementDefinitions.isEmpty();
+			case DatabaseDefinitionPackage.PRIVILEGE_DEFINITION__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (name: "); //$NON-NLS-1$
+		result.append(name);
+		result.append(')');
+		return result.toString();
+	}
+
+} //PrivilegeDefinitionImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/PrivilegedElementDefinitionImpl.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/PrivilegedElementDefinitionImpl.java
new file mode 100644
index 0000000..1a37777
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/PrivilegedElementDefinitionImpl.java
@@ -0,0 +1,218 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PrivilegedElementDefinitionImpl.java,v 1.1 2007/05/31 00:29:10 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.dbdefinition.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage;
+import org.eclipse.datatools.modelbase.dbdefinition.PrivilegeDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.PrivilegedElementDefinition;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Privileged Element Definition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PrivilegedElementDefinitionImpl#getPrivilegeDefinitions <em>Privilege Definitions</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.PrivilegedElementDefinitionImpl#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PrivilegedElementDefinitionImpl extends EObjectImpl implements PrivilegedElementDefinition {
+	/**
+	 * The cached value of the '{@link #getPrivilegeDefinitions() <em>Privilege Definitions</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPrivilegeDefinitions()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList privilegeDefinitions;
+
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected PrivilegedElementDefinitionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return DatabaseDefinitionPackage.Literals.PRIVILEGED_ELEMENT_DEFINITION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getPrivilegeDefinitions() {
+		if (privilegeDefinitions == null) {
+			privilegeDefinitions = new EObjectContainmentEList(PrivilegeDefinition.class, this, DatabaseDefinitionPackage.PRIVILEGED_ELEMENT_DEFINITION__PRIVILEGE_DEFINITIONS);
+		}
+		return privilegeDefinitions;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.PRIVILEGED_ELEMENT_DEFINITION__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.PRIVILEGED_ELEMENT_DEFINITION__PRIVILEGE_DEFINITIONS:
+				return ((InternalEList)getPrivilegeDefinitions()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.PRIVILEGED_ELEMENT_DEFINITION__PRIVILEGE_DEFINITIONS:
+				return getPrivilegeDefinitions();
+			case DatabaseDefinitionPackage.PRIVILEGED_ELEMENT_DEFINITION__NAME:
+				return getName();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.PRIVILEGED_ELEMENT_DEFINITION__PRIVILEGE_DEFINITIONS:
+				getPrivilegeDefinitions().clear();
+				getPrivilegeDefinitions().addAll((Collection)newValue);
+				return;
+			case DatabaseDefinitionPackage.PRIVILEGED_ELEMENT_DEFINITION__NAME:
+				setName((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.PRIVILEGED_ELEMENT_DEFINITION__PRIVILEGE_DEFINITIONS:
+				getPrivilegeDefinitions().clear();
+				return;
+			case DatabaseDefinitionPackage.PRIVILEGED_ELEMENT_DEFINITION__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.PRIVILEGED_ELEMENT_DEFINITION__PRIVILEGE_DEFINITIONS:
+				return privilegeDefinitions != null && !privilegeDefinitions.isEmpty();
+			case DatabaseDefinitionPackage.PRIVILEGED_ELEMENT_DEFINITION__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (name: "); //$NON-NLS-1$
+		result.append(name);
+		result.append(')');
+		return result.toString();
+	}
+
+} //PrivilegedElementDefinitionImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/QueryDefinitionImpl.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/QueryDefinitionImpl.java
new file mode 100644
index 0000000..c23f2da
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/QueryDefinitionImpl.java
@@ -0,0 +1,486 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QueryDefinitionImpl.java,v 1.1 2005/08/02 22:56:23 ledunnel Exp $
+ */
+package org.eclipse.datatools.modelbase.dbdefinition.impl;
+
+import org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage;
+import org.eclipse.datatools.modelbase.dbdefinition.QueryDefinition;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Query Definition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.QueryDefinitionImpl#getIdentifierQuoteString <em>Identifier Quote String</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.QueryDefinitionImpl#getHostVariableMarker <em>Host Variable Marker</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.QueryDefinitionImpl#isHostVariableMarkerSupported <em>Host Variable Marker Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.QueryDefinitionImpl#isCastExpressionSupported <em>Cast Expression Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.QueryDefinitionImpl#isDefaultKeywordForInsertValueSupported <em>Default Keyword For Insert Value Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.QueryDefinitionImpl#isExtendedGroupingSupported <em>Extended Grouping Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.QueryDefinitionImpl#isTableAliasInDeleteSupported <em>Table Alias In Delete Supported</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class QueryDefinitionImpl extends EObjectImpl implements QueryDefinition {
+	/**
+	 * The default value of the '{@link #getIdentifierQuoteString() <em>Identifier Quote String</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getIdentifierQuoteString()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String IDENTIFIER_QUOTE_STRING_EDEFAULT = "\\\""; //$NON-NLS-1$
+
+	/**
+	 * The cached value of the '{@link #getIdentifierQuoteString() <em>Identifier Quote String</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getIdentifierQuoteString()
+	 * @generated
+	 * @ordered
+	 */
+	protected String identifierQuoteString = IDENTIFIER_QUOTE_STRING_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getHostVariableMarker() <em>Host Variable Marker</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getHostVariableMarker()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String HOST_VARIABLE_MARKER_EDEFAULT = ":"; //$NON-NLS-1$
+
+	/**
+	 * The cached value of the '{@link #getHostVariableMarker() <em>Host Variable Marker</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getHostVariableMarker()
+	 * @generated
+	 * @ordered
+	 */
+	protected String hostVariableMarker = HOST_VARIABLE_MARKER_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isHostVariableMarkerSupported() <em>Host Variable Marker Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isHostVariableMarkerSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean HOST_VARIABLE_MARKER_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isHostVariableMarkerSupported() <em>Host Variable Marker Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isHostVariableMarkerSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean hostVariableMarkerSupported = HOST_VARIABLE_MARKER_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isCastExpressionSupported() <em>Cast Expression Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isCastExpressionSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean CAST_EXPRESSION_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isCastExpressionSupported() <em>Cast Expression Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isCastExpressionSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean castExpressionSupported = CAST_EXPRESSION_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isDefaultKeywordForInsertValueSupported() <em>Default Keyword For Insert Value Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isDefaultKeywordForInsertValueSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean DEFAULT_KEYWORD_FOR_INSERT_VALUE_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isDefaultKeywordForInsertValueSupported() <em>Default Keyword For Insert Value Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isDefaultKeywordForInsertValueSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean defaultKeywordForInsertValueSupported = DEFAULT_KEYWORD_FOR_INSERT_VALUE_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isExtendedGroupingSupported() <em>Extended Grouping Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isExtendedGroupingSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean EXTENDED_GROUPING_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isExtendedGroupingSupported() <em>Extended Grouping Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isExtendedGroupingSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean extendedGroupingSupported = EXTENDED_GROUPING_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isTableAliasInDeleteSupported() <em>Table Alias In Delete Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isTableAliasInDeleteSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean TABLE_ALIAS_IN_DELETE_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isTableAliasInDeleteSupported() <em>Table Alias In Delete Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isTableAliasInDeleteSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean tableAliasInDeleteSupported = TABLE_ALIAS_IN_DELETE_SUPPORTED_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected QueryDefinitionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return DatabaseDefinitionPackage.Literals.QUERY_DEFINITION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getIdentifierQuoteString() {
+		return identifierQuoteString;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setIdentifierQuoteString(String newIdentifierQuoteString) {
+		String oldIdentifierQuoteString = identifierQuoteString;
+		identifierQuoteString = newIdentifierQuoteString;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.QUERY_DEFINITION__IDENTIFIER_QUOTE_STRING, oldIdentifierQuoteString, identifierQuoteString));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getHostVariableMarker() {
+		return hostVariableMarker;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setHostVariableMarker(String newHostVariableMarker) {
+		String oldHostVariableMarker = hostVariableMarker;
+		hostVariableMarker = newHostVariableMarker;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.QUERY_DEFINITION__HOST_VARIABLE_MARKER, oldHostVariableMarker, hostVariableMarker));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isHostVariableMarkerSupported() {
+		return hostVariableMarkerSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setHostVariableMarkerSupported(boolean newHostVariableMarkerSupported) {
+		boolean oldHostVariableMarkerSupported = hostVariableMarkerSupported;
+		hostVariableMarkerSupported = newHostVariableMarkerSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.QUERY_DEFINITION__HOST_VARIABLE_MARKER_SUPPORTED, oldHostVariableMarkerSupported, hostVariableMarkerSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isCastExpressionSupported() {
+		return castExpressionSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCastExpressionSupported(boolean newCastExpressionSupported) {
+		boolean oldCastExpressionSupported = castExpressionSupported;
+		castExpressionSupported = newCastExpressionSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.QUERY_DEFINITION__CAST_EXPRESSION_SUPPORTED, oldCastExpressionSupported, castExpressionSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isDefaultKeywordForInsertValueSupported() {
+		return defaultKeywordForInsertValueSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDefaultKeywordForInsertValueSupported(boolean newDefaultKeywordForInsertValueSupported) {
+		boolean oldDefaultKeywordForInsertValueSupported = defaultKeywordForInsertValueSupported;
+		defaultKeywordForInsertValueSupported = newDefaultKeywordForInsertValueSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.QUERY_DEFINITION__DEFAULT_KEYWORD_FOR_INSERT_VALUE_SUPPORTED, oldDefaultKeywordForInsertValueSupported, defaultKeywordForInsertValueSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isExtendedGroupingSupported() {
+		return extendedGroupingSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setExtendedGroupingSupported(boolean newExtendedGroupingSupported) {
+		boolean oldExtendedGroupingSupported = extendedGroupingSupported;
+		extendedGroupingSupported = newExtendedGroupingSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.QUERY_DEFINITION__EXTENDED_GROUPING_SUPPORTED, oldExtendedGroupingSupported, extendedGroupingSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isTableAliasInDeleteSupported() {
+		return tableAliasInDeleteSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTableAliasInDeleteSupported(boolean newTableAliasInDeleteSupported) {
+		boolean oldTableAliasInDeleteSupported = tableAliasInDeleteSupported;
+		tableAliasInDeleteSupported = newTableAliasInDeleteSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.QUERY_DEFINITION__TABLE_ALIAS_IN_DELETE_SUPPORTED, oldTableAliasInDeleteSupported, tableAliasInDeleteSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.QUERY_DEFINITION__IDENTIFIER_QUOTE_STRING:
+				return getIdentifierQuoteString();
+			case DatabaseDefinitionPackage.QUERY_DEFINITION__HOST_VARIABLE_MARKER:
+				return getHostVariableMarker();
+			case DatabaseDefinitionPackage.QUERY_DEFINITION__HOST_VARIABLE_MARKER_SUPPORTED:
+				return isHostVariableMarkerSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.QUERY_DEFINITION__CAST_EXPRESSION_SUPPORTED:
+				return isCastExpressionSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.QUERY_DEFINITION__DEFAULT_KEYWORD_FOR_INSERT_VALUE_SUPPORTED:
+				return isDefaultKeywordForInsertValueSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.QUERY_DEFINITION__EXTENDED_GROUPING_SUPPORTED:
+				return isExtendedGroupingSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.QUERY_DEFINITION__TABLE_ALIAS_IN_DELETE_SUPPORTED:
+				return isTableAliasInDeleteSupported() ? Boolean.TRUE : Boolean.FALSE;
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.QUERY_DEFINITION__IDENTIFIER_QUOTE_STRING:
+				setIdentifierQuoteString((String)newValue);
+				return;
+			case DatabaseDefinitionPackage.QUERY_DEFINITION__HOST_VARIABLE_MARKER:
+				setHostVariableMarker((String)newValue);
+				return;
+			case DatabaseDefinitionPackage.QUERY_DEFINITION__HOST_VARIABLE_MARKER_SUPPORTED:
+				setHostVariableMarkerSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.QUERY_DEFINITION__CAST_EXPRESSION_SUPPORTED:
+				setCastExpressionSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.QUERY_DEFINITION__DEFAULT_KEYWORD_FOR_INSERT_VALUE_SUPPORTED:
+				setDefaultKeywordForInsertValueSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.QUERY_DEFINITION__EXTENDED_GROUPING_SUPPORTED:
+				setExtendedGroupingSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.QUERY_DEFINITION__TABLE_ALIAS_IN_DELETE_SUPPORTED:
+				setTableAliasInDeleteSupported(((Boolean)newValue).booleanValue());
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.QUERY_DEFINITION__IDENTIFIER_QUOTE_STRING:
+				setIdentifierQuoteString(IDENTIFIER_QUOTE_STRING_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.QUERY_DEFINITION__HOST_VARIABLE_MARKER:
+				setHostVariableMarker(HOST_VARIABLE_MARKER_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.QUERY_DEFINITION__HOST_VARIABLE_MARKER_SUPPORTED:
+				setHostVariableMarkerSupported(HOST_VARIABLE_MARKER_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.QUERY_DEFINITION__CAST_EXPRESSION_SUPPORTED:
+				setCastExpressionSupported(CAST_EXPRESSION_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.QUERY_DEFINITION__DEFAULT_KEYWORD_FOR_INSERT_VALUE_SUPPORTED:
+				setDefaultKeywordForInsertValueSupported(DEFAULT_KEYWORD_FOR_INSERT_VALUE_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.QUERY_DEFINITION__EXTENDED_GROUPING_SUPPORTED:
+				setExtendedGroupingSupported(EXTENDED_GROUPING_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.QUERY_DEFINITION__TABLE_ALIAS_IN_DELETE_SUPPORTED:
+				setTableAliasInDeleteSupported(TABLE_ALIAS_IN_DELETE_SUPPORTED_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.QUERY_DEFINITION__IDENTIFIER_QUOTE_STRING:
+				return IDENTIFIER_QUOTE_STRING_EDEFAULT == null ? identifierQuoteString != null : !IDENTIFIER_QUOTE_STRING_EDEFAULT.equals(identifierQuoteString);
+			case DatabaseDefinitionPackage.QUERY_DEFINITION__HOST_VARIABLE_MARKER:
+				return HOST_VARIABLE_MARKER_EDEFAULT == null ? hostVariableMarker != null : !HOST_VARIABLE_MARKER_EDEFAULT.equals(hostVariableMarker);
+			case DatabaseDefinitionPackage.QUERY_DEFINITION__HOST_VARIABLE_MARKER_SUPPORTED:
+				return hostVariableMarkerSupported != HOST_VARIABLE_MARKER_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.QUERY_DEFINITION__CAST_EXPRESSION_SUPPORTED:
+				return castExpressionSupported != CAST_EXPRESSION_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.QUERY_DEFINITION__DEFAULT_KEYWORD_FOR_INSERT_VALUE_SUPPORTED:
+				return defaultKeywordForInsertValueSupported != DEFAULT_KEYWORD_FOR_INSERT_VALUE_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.QUERY_DEFINITION__EXTENDED_GROUPING_SUPPORTED:
+				return extendedGroupingSupported != EXTENDED_GROUPING_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.QUERY_DEFINITION__TABLE_ALIAS_IN_DELETE_SUPPORTED:
+				return tableAliasInDeleteSupported != TABLE_ALIAS_IN_DELETE_SUPPORTED_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (identifierQuoteString: "); //$NON-NLS-1$
+		result.append(identifierQuoteString);
+		result.append(", hostVariableMarker: "); //$NON-NLS-1$
+		result.append(hostVariableMarker);
+		result.append(", hostVariableMarkerSupported: "); //$NON-NLS-1$
+		result.append(hostVariableMarkerSupported);
+		result.append(", castExpressionSupported: "); //$NON-NLS-1$
+		result.append(castExpressionSupported);
+		result.append(", defaultKeywordForInsertValueSupported: "); //$NON-NLS-1$
+		result.append(defaultKeywordForInsertValueSupported);
+		result.append(", extendedGroupingSupported: "); //$NON-NLS-1$
+		result.append(extendedGroupingSupported);
+		result.append(", tableAliasInDeleteSupported: "); //$NON-NLS-1$
+		result.append(tableAliasInDeleteSupported);
+		result.append(')');
+		return result.toString();
+	}
+
+} //QueryDefinitionImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/SQLSyntaxDefinitionImpl.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/SQLSyntaxDefinitionImpl.java
new file mode 100644
index 0000000..ace8ed8
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/SQLSyntaxDefinitionImpl.java
@@ -0,0 +1,240 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SQLSyntaxDefinitionImpl.java,v 1.3 2006/10/11 20:34:54 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.dbdefinition.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage;
+import org.eclipse.datatools.modelbase.dbdefinition.SQLSyntaxDefinition;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Syntax Definition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.SQLSyntaxDefinitionImpl#getKeywords <em>Keywords</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.SQLSyntaxDefinitionImpl#getOperators <em>Operators</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.SQLSyntaxDefinitionImpl#getTerminationCharacter <em>Termination Character</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SQLSyntaxDefinitionImpl extends EObjectImpl implements SQLSyntaxDefinition {
+	/**
+	 * The cached value of the '{@link #getKeywords() <em>Keywords</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getKeywords()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList keywords;
+
+	/**
+	 * The cached value of the '{@link #getOperators() <em>Operators</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getOperators()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList operators;
+
+	/**
+	 * The default value of the '{@link #getTerminationCharacter() <em>Termination Character</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTerminationCharacter()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String TERMINATION_CHARACTER_EDEFAULT = ";"; //$NON-NLS-1$
+
+	/**
+	 * The cached value of the '{@link #getTerminationCharacter() <em>Termination Character</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTerminationCharacter()
+	 * @generated
+	 * @ordered
+	 */
+	protected String terminationCharacter = TERMINATION_CHARACTER_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SQLSyntaxDefinitionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return DatabaseDefinitionPackage.Literals.SQL_SYNTAX_DEFINITION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getKeywords() {
+		if (keywords == null) {
+			keywords = new EDataTypeUniqueEList(String.class, this, DatabaseDefinitionPackage.SQL_SYNTAX_DEFINITION__KEYWORDS);
+		}
+		return keywords;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getOperators() {
+		if (operators == null) {
+			operators = new EDataTypeUniqueEList(String.class, this, DatabaseDefinitionPackage.SQL_SYNTAX_DEFINITION__OPERATORS);
+		}
+		return operators;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getTerminationCharacter() {
+		return terminationCharacter;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTerminationCharacter(String newTerminationCharacter) {
+		String oldTerminationCharacter = terminationCharacter;
+		terminationCharacter = newTerminationCharacter;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.SQL_SYNTAX_DEFINITION__TERMINATION_CHARACTER, oldTerminationCharacter, terminationCharacter));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.SQL_SYNTAX_DEFINITION__KEYWORDS:
+				return getKeywords();
+			case DatabaseDefinitionPackage.SQL_SYNTAX_DEFINITION__OPERATORS:
+				return getOperators();
+			case DatabaseDefinitionPackage.SQL_SYNTAX_DEFINITION__TERMINATION_CHARACTER:
+				return getTerminationCharacter();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.SQL_SYNTAX_DEFINITION__KEYWORDS:
+				getKeywords().clear();
+				getKeywords().addAll((Collection)newValue);
+				return;
+			case DatabaseDefinitionPackage.SQL_SYNTAX_DEFINITION__OPERATORS:
+				getOperators().clear();
+				getOperators().addAll((Collection)newValue);
+				return;
+			case DatabaseDefinitionPackage.SQL_SYNTAX_DEFINITION__TERMINATION_CHARACTER:
+				setTerminationCharacter((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.SQL_SYNTAX_DEFINITION__KEYWORDS:
+				getKeywords().clear();
+				return;
+			case DatabaseDefinitionPackage.SQL_SYNTAX_DEFINITION__OPERATORS:
+				getOperators().clear();
+				return;
+			case DatabaseDefinitionPackage.SQL_SYNTAX_DEFINITION__TERMINATION_CHARACTER:
+				setTerminationCharacter(TERMINATION_CHARACTER_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.SQL_SYNTAX_DEFINITION__KEYWORDS:
+				return keywords != null && !keywords.isEmpty();
+			case DatabaseDefinitionPackage.SQL_SYNTAX_DEFINITION__OPERATORS:
+				return operators != null && !operators.isEmpty();
+			case DatabaseDefinitionPackage.SQL_SYNTAX_DEFINITION__TERMINATION_CHARACTER:
+				return TERMINATION_CHARACTER_EDEFAULT == null ? terminationCharacter != null : !TERMINATION_CHARACTER_EDEFAULT.equals(terminationCharacter);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (keywords: "); //$NON-NLS-1$
+		result.append(keywords);
+		result.append(", operators: "); //$NON-NLS-1$
+		result.append(operators);
+		result.append(", terminationCharacter: "); //$NON-NLS-1$
+		result.append(terminationCharacter);
+		result.append(')');
+		return result.toString();
+	}
+
+} //SQLSyntaxDefinitionImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/SchemaDefinitionImpl.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/SchemaDefinitionImpl.java
new file mode 100644
index 0000000..33708ff
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/SchemaDefinitionImpl.java
@@ -0,0 +1,162 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SchemaDefinitionImpl.java,v 1.1 2006/03/09 23:48:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.dbdefinition.impl;
+
+import org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage;
+import org.eclipse.datatools.modelbase.dbdefinition.SchemaDefinition;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Schema Definition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.SchemaDefinitionImpl#getMaximumIdentifierLength <em>Maximum Identifier Length</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SchemaDefinitionImpl extends EObjectImpl implements SchemaDefinition {
+	/**
+	 * The default value of the '{@link #getMaximumIdentifierLength() <em>Maximum Identifier Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumIdentifierLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int MAXIMUM_IDENTIFIER_LENGTH_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getMaximumIdentifierLength() <em>Maximum Identifier Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumIdentifierLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected int maximumIdentifierLength = MAXIMUM_IDENTIFIER_LENGTH_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SchemaDefinitionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return DatabaseDefinitionPackage.Literals.SCHEMA_DEFINITION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getMaximumIdentifierLength() {
+		return maximumIdentifierLength;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMaximumIdentifierLength(int newMaximumIdentifierLength) {
+		int oldMaximumIdentifierLength = maximumIdentifierLength;
+		maximumIdentifierLength = newMaximumIdentifierLength;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.SCHEMA_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH, oldMaximumIdentifierLength, maximumIdentifierLength));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.SCHEMA_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH:
+				return new Integer(getMaximumIdentifierLength());
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.SCHEMA_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH:
+				setMaximumIdentifierLength(((Integer)newValue).intValue());
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.SCHEMA_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH:
+				setMaximumIdentifierLength(MAXIMUM_IDENTIFIER_LENGTH_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.SCHEMA_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH:
+				return maximumIdentifierLength != MAXIMUM_IDENTIFIER_LENGTH_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (maximumIdentifierLength: "); //$NON-NLS-1$
+		result.append(maximumIdentifierLength);
+		result.append(')');
+		return result.toString();
+	}
+
+} //SchemaDefinitionImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/SequenceDefinitionImpl.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/SequenceDefinitionImpl.java
new file mode 100644
index 0000000..4a2799a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/SequenceDefinitionImpl.java
@@ -0,0 +1,587 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.dbdefinition.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage;
+import org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.SequenceDefinition;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Sequence Definition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.SequenceDefinitionImpl#getPredefinedDataTypeDefinitions <em>Predefined Data Type Definitions</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.SequenceDefinitionImpl#getDefaultDataTypeDefinition <em>Default Data Type Definition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.SequenceDefinitionImpl#isTypeEnumerationSupported <em>Type Enumeration Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.SequenceDefinitionImpl#isCacheSupported <em>Cache Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.SequenceDefinitionImpl#isOrderSupported <em>Order Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.SequenceDefinitionImpl#getNoMaximumValueString <em>No Maximum Value String</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.SequenceDefinitionImpl#getNoMinimumValueString <em>No Minimum Value String</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.SequenceDefinitionImpl#getNoCacheString <em>No Cache String</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.SequenceDefinitionImpl#getCacheDefaultValue <em>Cache Default Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SequenceDefinitionImpl extends EObjectImpl implements SequenceDefinition {
+	/**
+	 * The cached value of the '{@link #getPredefinedDataTypeDefinitions() <em>Predefined Data Type Definitions</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPredefinedDataTypeDefinitions()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList predefinedDataTypeDefinitions;
+
+	/**
+	 * The cached value of the '{@link #getDefaultDataTypeDefinition() <em>Default Data Type Definition</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefaultDataTypeDefinition()
+	 * @generated
+	 * @ordered
+	 */
+	protected PredefinedDataTypeDefinition defaultDataTypeDefinition;
+
+	/**
+	 * The default value of the '{@link #isTypeEnumerationSupported() <em>Type Enumeration Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isTypeEnumerationSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean TYPE_ENUMERATION_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isTypeEnumerationSupported() <em>Type Enumeration Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isTypeEnumerationSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean typeEnumerationSupported = TYPE_ENUMERATION_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isCacheSupported() <em>Cache Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isCacheSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean CACHE_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isCacheSupported() <em>Cache Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isCacheSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean cacheSupported = CACHE_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isOrderSupported() <em>Order Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isOrderSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean ORDER_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isOrderSupported() <em>Order Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isOrderSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean orderSupported = ORDER_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getNoMaximumValueString() <em>No Maximum Value String</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getNoMaximumValueString()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NO_MAXIMUM_VALUE_STRING_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getNoMaximumValueString() <em>No Maximum Value String</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getNoMaximumValueString()
+	 * @generated
+	 * @ordered
+	 */
+	protected String noMaximumValueString = NO_MAXIMUM_VALUE_STRING_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getNoMinimumValueString() <em>No Minimum Value String</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getNoMinimumValueString()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NO_MINIMUM_VALUE_STRING_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getNoMinimumValueString() <em>No Minimum Value String</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getNoMinimumValueString()
+	 * @generated
+	 * @ordered
+	 */
+	protected String noMinimumValueString = NO_MINIMUM_VALUE_STRING_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getNoCacheString() <em>No Cache String</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getNoCacheString()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NO_CACHE_STRING_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getNoCacheString() <em>No Cache String</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getNoCacheString()
+	 * @generated
+	 * @ordered
+	 */
+	protected String noCacheString = NO_CACHE_STRING_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getCacheDefaultValue() <em>Cache Default Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCacheDefaultValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int CACHE_DEFAULT_VALUE_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getCacheDefaultValue() <em>Cache Default Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCacheDefaultValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected int cacheDefaultValue = CACHE_DEFAULT_VALUE_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SequenceDefinitionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return DatabaseDefinitionPackage.Literals.SEQUENCE_DEFINITION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getPredefinedDataTypeDefinitions() {
+		if (predefinedDataTypeDefinitions == null) {
+			predefinedDataTypeDefinitions = new EObjectResolvingEList(PredefinedDataTypeDefinition.class, this, DatabaseDefinitionPackage.SEQUENCE_DEFINITION__PREDEFINED_DATA_TYPE_DEFINITIONS);
+		}
+		return predefinedDataTypeDefinitions;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isTypeEnumerationSupported() {
+		return typeEnumerationSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTypeEnumerationSupported(boolean newTypeEnumerationSupported) {
+		boolean oldTypeEnumerationSupported = typeEnumerationSupported;
+		typeEnumerationSupported = newTypeEnumerationSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.SEQUENCE_DEFINITION__TYPE_ENUMERATION_SUPPORTED, oldTypeEnumerationSupported, typeEnumerationSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isCacheSupported() {
+		return cacheSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCacheSupported(boolean newCacheSupported) {
+		boolean oldCacheSupported = cacheSupported;
+		cacheSupported = newCacheSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.SEQUENCE_DEFINITION__CACHE_SUPPORTED, oldCacheSupported, cacheSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isOrderSupported() {
+		return orderSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setOrderSupported(boolean newOrderSupported) {
+		boolean oldOrderSupported = orderSupported;
+		orderSupported = newOrderSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.SEQUENCE_DEFINITION__ORDER_SUPPORTED, oldOrderSupported, orderSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getNoMaximumValueString() {
+		return noMaximumValueString;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setNoMaximumValueString(String newNoMaximumValueString) {
+		String oldNoMaximumValueString = noMaximumValueString;
+		noMaximumValueString = newNoMaximumValueString;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.SEQUENCE_DEFINITION__NO_MAXIMUM_VALUE_STRING, oldNoMaximumValueString, noMaximumValueString));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getNoMinimumValueString() {
+		return noMinimumValueString;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setNoMinimumValueString(String newNoMinimumValueString) {
+		String oldNoMinimumValueString = noMinimumValueString;
+		noMinimumValueString = newNoMinimumValueString;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.SEQUENCE_DEFINITION__NO_MINIMUM_VALUE_STRING, oldNoMinimumValueString, noMinimumValueString));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getNoCacheString() {
+		return noCacheString;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setNoCacheString(String newNoCacheString) {
+		String oldNoCacheString = noCacheString;
+		noCacheString = newNoCacheString;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.SEQUENCE_DEFINITION__NO_CACHE_STRING, oldNoCacheString, noCacheString));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getCacheDefaultValue() {
+		return cacheDefaultValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCacheDefaultValue(int newCacheDefaultValue) {
+		int oldCacheDefaultValue = cacheDefaultValue;
+		cacheDefaultValue = newCacheDefaultValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.SEQUENCE_DEFINITION__CACHE_DEFAULT_VALUE, oldCacheDefaultValue, cacheDefaultValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.SEQUENCE_DEFINITION__PREDEFINED_DATA_TYPE_DEFINITIONS:
+				return getPredefinedDataTypeDefinitions();
+			case DatabaseDefinitionPackage.SEQUENCE_DEFINITION__DEFAULT_DATA_TYPE_DEFINITION:
+				if (resolve) return getDefaultDataTypeDefinition();
+				return basicGetDefaultDataTypeDefinition();
+			case DatabaseDefinitionPackage.SEQUENCE_DEFINITION__TYPE_ENUMERATION_SUPPORTED:
+				return isTypeEnumerationSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.SEQUENCE_DEFINITION__CACHE_SUPPORTED:
+				return isCacheSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.SEQUENCE_DEFINITION__ORDER_SUPPORTED:
+				return isOrderSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.SEQUENCE_DEFINITION__NO_MAXIMUM_VALUE_STRING:
+				return getNoMaximumValueString();
+			case DatabaseDefinitionPackage.SEQUENCE_DEFINITION__NO_MINIMUM_VALUE_STRING:
+				return getNoMinimumValueString();
+			case DatabaseDefinitionPackage.SEQUENCE_DEFINITION__NO_CACHE_STRING:
+				return getNoCacheString();
+			case DatabaseDefinitionPackage.SEQUENCE_DEFINITION__CACHE_DEFAULT_VALUE:
+				return new Integer(getCacheDefaultValue());
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.SEQUENCE_DEFINITION__PREDEFINED_DATA_TYPE_DEFINITIONS:
+				getPredefinedDataTypeDefinitions().clear();
+				getPredefinedDataTypeDefinitions().addAll((Collection)newValue);
+				return;
+			case DatabaseDefinitionPackage.SEQUENCE_DEFINITION__DEFAULT_DATA_TYPE_DEFINITION:
+				setDefaultDataTypeDefinition((PredefinedDataTypeDefinition)newValue);
+				return;
+			case DatabaseDefinitionPackage.SEQUENCE_DEFINITION__TYPE_ENUMERATION_SUPPORTED:
+				setTypeEnumerationSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.SEQUENCE_DEFINITION__CACHE_SUPPORTED:
+				setCacheSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.SEQUENCE_DEFINITION__ORDER_SUPPORTED:
+				setOrderSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.SEQUENCE_DEFINITION__NO_MAXIMUM_VALUE_STRING:
+				setNoMaximumValueString((String)newValue);
+				return;
+			case DatabaseDefinitionPackage.SEQUENCE_DEFINITION__NO_MINIMUM_VALUE_STRING:
+				setNoMinimumValueString((String)newValue);
+				return;
+			case DatabaseDefinitionPackage.SEQUENCE_DEFINITION__NO_CACHE_STRING:
+				setNoCacheString((String)newValue);
+				return;
+			case DatabaseDefinitionPackage.SEQUENCE_DEFINITION__CACHE_DEFAULT_VALUE:
+				setCacheDefaultValue(((Integer)newValue).intValue());
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.SEQUENCE_DEFINITION__PREDEFINED_DATA_TYPE_DEFINITIONS:
+				getPredefinedDataTypeDefinitions().clear();
+				return;
+			case DatabaseDefinitionPackage.SEQUENCE_DEFINITION__DEFAULT_DATA_TYPE_DEFINITION:
+				setDefaultDataTypeDefinition((PredefinedDataTypeDefinition)null);
+				return;
+			case DatabaseDefinitionPackage.SEQUENCE_DEFINITION__TYPE_ENUMERATION_SUPPORTED:
+				setTypeEnumerationSupported(TYPE_ENUMERATION_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.SEQUENCE_DEFINITION__CACHE_SUPPORTED:
+				setCacheSupported(CACHE_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.SEQUENCE_DEFINITION__ORDER_SUPPORTED:
+				setOrderSupported(ORDER_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.SEQUENCE_DEFINITION__NO_MAXIMUM_VALUE_STRING:
+				setNoMaximumValueString(NO_MAXIMUM_VALUE_STRING_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.SEQUENCE_DEFINITION__NO_MINIMUM_VALUE_STRING:
+				setNoMinimumValueString(NO_MINIMUM_VALUE_STRING_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.SEQUENCE_DEFINITION__NO_CACHE_STRING:
+				setNoCacheString(NO_CACHE_STRING_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.SEQUENCE_DEFINITION__CACHE_DEFAULT_VALUE:
+				setCacheDefaultValue(CACHE_DEFAULT_VALUE_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.SEQUENCE_DEFINITION__PREDEFINED_DATA_TYPE_DEFINITIONS:
+				return predefinedDataTypeDefinitions != null && !predefinedDataTypeDefinitions.isEmpty();
+			case DatabaseDefinitionPackage.SEQUENCE_DEFINITION__DEFAULT_DATA_TYPE_DEFINITION:
+				return defaultDataTypeDefinition != null;
+			case DatabaseDefinitionPackage.SEQUENCE_DEFINITION__TYPE_ENUMERATION_SUPPORTED:
+				return typeEnumerationSupported != TYPE_ENUMERATION_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.SEQUENCE_DEFINITION__CACHE_SUPPORTED:
+				return cacheSupported != CACHE_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.SEQUENCE_DEFINITION__ORDER_SUPPORTED:
+				return orderSupported != ORDER_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.SEQUENCE_DEFINITION__NO_MAXIMUM_VALUE_STRING:
+				return NO_MAXIMUM_VALUE_STRING_EDEFAULT == null ? noMaximumValueString != null : !NO_MAXIMUM_VALUE_STRING_EDEFAULT.equals(noMaximumValueString);
+			case DatabaseDefinitionPackage.SEQUENCE_DEFINITION__NO_MINIMUM_VALUE_STRING:
+				return NO_MINIMUM_VALUE_STRING_EDEFAULT == null ? noMinimumValueString != null : !NO_MINIMUM_VALUE_STRING_EDEFAULT.equals(noMinimumValueString);
+			case DatabaseDefinitionPackage.SEQUENCE_DEFINITION__NO_CACHE_STRING:
+				return NO_CACHE_STRING_EDEFAULT == null ? noCacheString != null : !NO_CACHE_STRING_EDEFAULT.equals(noCacheString);
+			case DatabaseDefinitionPackage.SEQUENCE_DEFINITION__CACHE_DEFAULT_VALUE:
+				return cacheDefaultValue != CACHE_DEFAULT_VALUE_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PredefinedDataTypeDefinition getDefaultDataTypeDefinition() {
+		if (defaultDataTypeDefinition != null && defaultDataTypeDefinition.eIsProxy()) {
+			InternalEObject oldDefaultDataTypeDefinition = (InternalEObject)defaultDataTypeDefinition;
+			defaultDataTypeDefinition = (PredefinedDataTypeDefinition)eResolveProxy(oldDefaultDataTypeDefinition);
+			if (defaultDataTypeDefinition != oldDefaultDataTypeDefinition) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DatabaseDefinitionPackage.SEQUENCE_DEFINITION__DEFAULT_DATA_TYPE_DEFINITION, oldDefaultDataTypeDefinition, defaultDataTypeDefinition));
+			}
+		}
+		return defaultDataTypeDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PredefinedDataTypeDefinition basicGetDefaultDataTypeDefinition() {
+		return defaultDataTypeDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDefaultDataTypeDefinition(PredefinedDataTypeDefinition newDefaultDataTypeDefinition) {
+		PredefinedDataTypeDefinition oldDefaultDataTypeDefinition = defaultDataTypeDefinition;
+		defaultDataTypeDefinition = newDefaultDataTypeDefinition;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.SEQUENCE_DEFINITION__DEFAULT_DATA_TYPE_DEFINITION, oldDefaultDataTypeDefinition, defaultDataTypeDefinition));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (typeEnumerationSupported: "); //$NON-NLS-1$
+		result.append(typeEnumerationSupported);
+		result.append(", cacheSupported: "); //$NON-NLS-1$
+		result.append(cacheSupported);
+		result.append(", orderSupported: "); //$NON-NLS-1$
+		result.append(orderSupported);
+		result.append(", noMaximumValueString: "); //$NON-NLS-1$
+		result.append(noMaximumValueString);
+		result.append(", noMinimumValueString: "); //$NON-NLS-1$
+		result.append(noMinimumValueString);
+		result.append(", noCacheString: "); //$NON-NLS-1$
+		result.append(noCacheString);
+		result.append(", cacheDefaultValue: "); //$NON-NLS-1$
+		result.append(cacheDefaultValue);
+		result.append(')');
+		return result.toString();
+	}
+
+} //SequenceDefinitionImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/StoredProcedureDefinitionImpl.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/StoredProcedureDefinitionImpl.java
new file mode 100644
index 0000000..e1e33ca
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/StoredProcedureDefinitionImpl.java
@@ -0,0 +1,906 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.dbdefinition.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage;
+import org.eclipse.datatools.modelbase.dbdefinition.LanguageType;
+import org.eclipse.datatools.modelbase.dbdefinition.ParameterStyle;
+import org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.ProcedureType;
+import org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Stored Procedure Definition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.StoredProcedureDefinitionImpl#getPredefinedDataTypeDefinitions <em>Predefined Data Type Definitions</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.StoredProcedureDefinitionImpl#isNullInputActionSupported <em>Null Input Action Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.StoredProcedureDefinitionImpl#isPackageGenerationSupported <em>Package Generation Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.StoredProcedureDefinitionImpl#isDetermininsticSupported <em>Determininstic Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.StoredProcedureDefinitionImpl#isReturnedNullSupported <em>Returned Null Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.StoredProcedureDefinitionImpl#isReturnedTypeDeclarationConstraintSupported <em>Returned Type Declaration Constraint Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.StoredProcedureDefinitionImpl#isParameterInitValueSupported <em>Parameter Init Value Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.StoredProcedureDefinitionImpl#isParameterStyleSupported <em>Parameter Style Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.StoredProcedureDefinitionImpl#isReturnTypeSupported <em>Return Type Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.StoredProcedureDefinitionImpl#isParameterDeclarationConstraintSupported <em>Parameter Declaration Constraint Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.StoredProcedureDefinitionImpl#getMaximumActionBodyLength <em>Maximum Action Body Length</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.StoredProcedureDefinitionImpl#getParameterStyle <em>Parameter Style</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.StoredProcedureDefinitionImpl#getLanguageType <em>Language Type</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.StoredProcedureDefinitionImpl#getFunctionLanguageType <em>Function Language Type</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.StoredProcedureDefinitionImpl#getProcedureType <em>Procedure Type</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.StoredProcedureDefinitionImpl#getMaximumIdentifierLength <em>Maximum Identifier Length</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class StoredProcedureDefinitionImpl extends EObjectImpl implements StoredProcedureDefinition {
+	/**
+	 * The cached value of the '{@link #getPredefinedDataTypeDefinitions() <em>Predefined Data Type Definitions</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPredefinedDataTypeDefinitions()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList predefinedDataTypeDefinitions;
+
+	/**
+	 * The default value of the '{@link #isNullInputActionSupported() <em>Null Input Action Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isNullInputActionSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean NULL_INPUT_ACTION_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isNullInputActionSupported() <em>Null Input Action Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isNullInputActionSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean nullInputActionSupported = NULL_INPUT_ACTION_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isPackageGenerationSupported() <em>Package Generation Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isPackageGenerationSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean PACKAGE_GENERATION_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isPackageGenerationSupported() <em>Package Generation Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isPackageGenerationSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean packageGenerationSupported = PACKAGE_GENERATION_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isDetermininsticSupported() <em>Determininstic Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isDetermininsticSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean DETERMININSTIC_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isDetermininsticSupported() <em>Determininstic Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isDetermininsticSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean determininsticSupported = DETERMININSTIC_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isReturnedNullSupported() <em>Returned Null Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isReturnedNullSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean RETURNED_NULL_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isReturnedNullSupported() <em>Returned Null Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isReturnedNullSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean returnedNullSupported = RETURNED_NULL_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isReturnedTypeDeclarationConstraintSupported() <em>Returned Type Declaration Constraint Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isReturnedTypeDeclarationConstraintSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean RETURNED_TYPE_DECLARATION_CONSTRAINT_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isReturnedTypeDeclarationConstraintSupported() <em>Returned Type Declaration Constraint Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isReturnedTypeDeclarationConstraintSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean returnedTypeDeclarationConstraintSupported = RETURNED_TYPE_DECLARATION_CONSTRAINT_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isParameterInitValueSupported() <em>Parameter Init Value Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isParameterInitValueSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean PARAMETER_INIT_VALUE_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isParameterInitValueSupported() <em>Parameter Init Value Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isParameterInitValueSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean parameterInitValueSupported = PARAMETER_INIT_VALUE_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isParameterStyleSupported() <em>Parameter Style Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isParameterStyleSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean PARAMETER_STYLE_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isParameterStyleSupported() <em>Parameter Style Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isParameterStyleSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean parameterStyleSupported = PARAMETER_STYLE_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isReturnTypeSupported() <em>Return Type Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isReturnTypeSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean RETURN_TYPE_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isReturnTypeSupported() <em>Return Type Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isReturnTypeSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean returnTypeSupported = RETURN_TYPE_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isParameterDeclarationConstraintSupported() <em>Parameter Declaration Constraint Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isParameterDeclarationConstraintSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean PARAMETER_DECLARATION_CONSTRAINT_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isParameterDeclarationConstraintSupported() <em>Parameter Declaration Constraint Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isParameterDeclarationConstraintSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean parameterDeclarationConstraintSupported = PARAMETER_DECLARATION_CONSTRAINT_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMaximumActionBodyLength() <em>Maximum Action Body Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumActionBodyLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int MAXIMUM_ACTION_BODY_LENGTH_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getMaximumActionBodyLength() <em>Maximum Action Body Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumActionBodyLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected int maximumActionBodyLength = MAXIMUM_ACTION_BODY_LENGTH_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getParameterStyle() <em>Parameter Style</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getParameterStyle()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList parameterStyle;
+
+	/**
+	 * The cached value of the '{@link #getLanguageType() <em>Language Type</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLanguageType()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList languageType;
+
+	/**
+	 * The cached value of the '{@link #getFunctionLanguageType() <em>Function Language Type</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFunctionLanguageType()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList functionLanguageType;
+
+	/**
+	 * The cached value of the '{@link #getProcedureType() <em>Procedure Type</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProcedureType()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList procedureType;
+
+	/**
+	 * The default value of the '{@link #getMaximumIdentifierLength() <em>Maximum Identifier Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumIdentifierLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int MAXIMUM_IDENTIFIER_LENGTH_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getMaximumIdentifierLength() <em>Maximum Identifier Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumIdentifierLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected int maximumIdentifierLength = MAXIMUM_IDENTIFIER_LENGTH_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected StoredProcedureDefinitionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return DatabaseDefinitionPackage.Literals.STORED_PROCEDURE_DEFINITION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getPredefinedDataTypeDefinitions() {
+		if (predefinedDataTypeDefinitions == null) {
+			predefinedDataTypeDefinitions = new EObjectContainmentEList(PredefinedDataTypeDefinition.class, this, DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__PREDEFINED_DATA_TYPE_DEFINITIONS);
+		}
+		return predefinedDataTypeDefinitions;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isNullInputActionSupported() {
+		return nullInputActionSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setNullInputActionSupported(boolean newNullInputActionSupported) {
+		boolean oldNullInputActionSupported = nullInputActionSupported;
+		nullInputActionSupported = newNullInputActionSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__NULL_INPUT_ACTION_SUPPORTED, oldNullInputActionSupported, nullInputActionSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isPackageGenerationSupported() {
+		return packageGenerationSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPackageGenerationSupported(boolean newPackageGenerationSupported) {
+		boolean oldPackageGenerationSupported = packageGenerationSupported;
+		packageGenerationSupported = newPackageGenerationSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__PACKAGE_GENERATION_SUPPORTED, oldPackageGenerationSupported, packageGenerationSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isDetermininsticSupported() {
+		return determininsticSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDetermininsticSupported(boolean newDetermininsticSupported) {
+		boolean oldDetermininsticSupported = determininsticSupported;
+		determininsticSupported = newDetermininsticSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__DETERMININSTIC_SUPPORTED, oldDetermininsticSupported, determininsticSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isReturnedNullSupported() {
+		return returnedNullSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setReturnedNullSupported(boolean newReturnedNullSupported) {
+		boolean oldReturnedNullSupported = returnedNullSupported;
+		returnedNullSupported = newReturnedNullSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__RETURNED_NULL_SUPPORTED, oldReturnedNullSupported, returnedNullSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isReturnedTypeDeclarationConstraintSupported() {
+		return returnedTypeDeclarationConstraintSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setReturnedTypeDeclarationConstraintSupported(boolean newReturnedTypeDeclarationConstraintSupported) {
+		boolean oldReturnedTypeDeclarationConstraintSupported = returnedTypeDeclarationConstraintSupported;
+		returnedTypeDeclarationConstraintSupported = newReturnedTypeDeclarationConstraintSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__RETURNED_TYPE_DECLARATION_CONSTRAINT_SUPPORTED, oldReturnedTypeDeclarationConstraintSupported, returnedTypeDeclarationConstraintSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isParameterInitValueSupported() {
+		return parameterInitValueSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setParameterInitValueSupported(boolean newParameterInitValueSupported) {
+		boolean oldParameterInitValueSupported = parameterInitValueSupported;
+		parameterInitValueSupported = newParameterInitValueSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__PARAMETER_INIT_VALUE_SUPPORTED, oldParameterInitValueSupported, parameterInitValueSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isParameterStyleSupported() {
+		return parameterStyleSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setParameterStyleSupported(boolean newParameterStyleSupported) {
+		boolean oldParameterStyleSupported = parameterStyleSupported;
+		parameterStyleSupported = newParameterStyleSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__PARAMETER_STYLE_SUPPORTED, oldParameterStyleSupported, parameterStyleSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isReturnTypeSupported() {
+		return returnTypeSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setReturnTypeSupported(boolean newReturnTypeSupported) {
+		boolean oldReturnTypeSupported = returnTypeSupported;
+		returnTypeSupported = newReturnTypeSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__RETURN_TYPE_SUPPORTED, oldReturnTypeSupported, returnTypeSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isParameterDeclarationConstraintSupported() {
+		return parameterDeclarationConstraintSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setParameterDeclarationConstraintSupported(boolean newParameterDeclarationConstraintSupported) {
+		boolean oldParameterDeclarationConstraintSupported = parameterDeclarationConstraintSupported;
+		parameterDeclarationConstraintSupported = newParameterDeclarationConstraintSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__PARAMETER_DECLARATION_CONSTRAINT_SUPPORTED, oldParameterDeclarationConstraintSupported, parameterDeclarationConstraintSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getMaximumActionBodyLength() {
+		return maximumActionBodyLength;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMaximumActionBodyLength(int newMaximumActionBodyLength) {
+		int oldMaximumActionBodyLength = maximumActionBodyLength;
+		maximumActionBodyLength = newMaximumActionBodyLength;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__MAXIMUM_ACTION_BODY_LENGTH, oldMaximumActionBodyLength, maximumActionBodyLength));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getParameterStyle() {
+		if (parameterStyle == null) {
+			parameterStyle = new EDataTypeUniqueEList(ParameterStyle.class, this, DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__PARAMETER_STYLE);
+		}
+		return parameterStyle;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getLanguageType() {
+		if (languageType == null) {
+			languageType = new EDataTypeUniqueEList(LanguageType.class, this, DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__LANGUAGE_TYPE);
+		}
+		return languageType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getFunctionLanguageType() {
+		if (functionLanguageType == null) {
+			functionLanguageType = new EDataTypeUniqueEList(LanguageType.class, this, DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__FUNCTION_LANGUAGE_TYPE);
+		}
+		return functionLanguageType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getProcedureType() {
+		if (procedureType == null) {
+			procedureType = new EDataTypeUniqueEList(ProcedureType.class, this, DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__PROCEDURE_TYPE);
+		}
+		return procedureType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getMaximumIdentifierLength() {
+		return maximumIdentifierLength;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMaximumIdentifierLength(int newMaximumIdentifierLength) {
+		int oldMaximumIdentifierLength = maximumIdentifierLength;
+		maximumIdentifierLength = newMaximumIdentifierLength;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH, oldMaximumIdentifierLength, maximumIdentifierLength));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__PREDEFINED_DATA_TYPE_DEFINITIONS:
+				return ((InternalEList)getPredefinedDataTypeDefinitions()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__PREDEFINED_DATA_TYPE_DEFINITIONS:
+				return getPredefinedDataTypeDefinitions();
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__NULL_INPUT_ACTION_SUPPORTED:
+				return isNullInputActionSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__PACKAGE_GENERATION_SUPPORTED:
+				return isPackageGenerationSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__DETERMININSTIC_SUPPORTED:
+				return isDetermininsticSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__RETURNED_NULL_SUPPORTED:
+				return isReturnedNullSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__RETURNED_TYPE_DECLARATION_CONSTRAINT_SUPPORTED:
+				return isReturnedTypeDeclarationConstraintSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__PARAMETER_INIT_VALUE_SUPPORTED:
+				return isParameterInitValueSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__PARAMETER_STYLE_SUPPORTED:
+				return isParameterStyleSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__RETURN_TYPE_SUPPORTED:
+				return isReturnTypeSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__PARAMETER_DECLARATION_CONSTRAINT_SUPPORTED:
+				return isParameterDeclarationConstraintSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__MAXIMUM_ACTION_BODY_LENGTH:
+				return new Integer(getMaximumActionBodyLength());
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__PARAMETER_STYLE:
+				return getParameterStyle();
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__LANGUAGE_TYPE:
+				return getLanguageType();
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__FUNCTION_LANGUAGE_TYPE:
+				return getFunctionLanguageType();
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__PROCEDURE_TYPE:
+				return getProcedureType();
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH:
+				return new Integer(getMaximumIdentifierLength());
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__PREDEFINED_DATA_TYPE_DEFINITIONS:
+				getPredefinedDataTypeDefinitions().clear();
+				getPredefinedDataTypeDefinitions().addAll((Collection)newValue);
+				return;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__NULL_INPUT_ACTION_SUPPORTED:
+				setNullInputActionSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__PACKAGE_GENERATION_SUPPORTED:
+				setPackageGenerationSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__DETERMININSTIC_SUPPORTED:
+				setDetermininsticSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__RETURNED_NULL_SUPPORTED:
+				setReturnedNullSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__RETURNED_TYPE_DECLARATION_CONSTRAINT_SUPPORTED:
+				setReturnedTypeDeclarationConstraintSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__PARAMETER_INIT_VALUE_SUPPORTED:
+				setParameterInitValueSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__PARAMETER_STYLE_SUPPORTED:
+				setParameterStyleSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__RETURN_TYPE_SUPPORTED:
+				setReturnTypeSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__PARAMETER_DECLARATION_CONSTRAINT_SUPPORTED:
+				setParameterDeclarationConstraintSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__MAXIMUM_ACTION_BODY_LENGTH:
+				setMaximumActionBodyLength(((Integer)newValue).intValue());
+				return;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__PARAMETER_STYLE:
+				getParameterStyle().clear();
+				getParameterStyle().addAll((Collection)newValue);
+				return;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__LANGUAGE_TYPE:
+				getLanguageType().clear();
+				getLanguageType().addAll((Collection)newValue);
+				return;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__FUNCTION_LANGUAGE_TYPE:
+				getFunctionLanguageType().clear();
+				getFunctionLanguageType().addAll((Collection)newValue);
+				return;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__PROCEDURE_TYPE:
+				getProcedureType().clear();
+				getProcedureType().addAll((Collection)newValue);
+				return;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH:
+				setMaximumIdentifierLength(((Integer)newValue).intValue());
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__PREDEFINED_DATA_TYPE_DEFINITIONS:
+				getPredefinedDataTypeDefinitions().clear();
+				return;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__NULL_INPUT_ACTION_SUPPORTED:
+				setNullInputActionSupported(NULL_INPUT_ACTION_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__PACKAGE_GENERATION_SUPPORTED:
+				setPackageGenerationSupported(PACKAGE_GENERATION_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__DETERMININSTIC_SUPPORTED:
+				setDetermininsticSupported(DETERMININSTIC_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__RETURNED_NULL_SUPPORTED:
+				setReturnedNullSupported(RETURNED_NULL_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__RETURNED_TYPE_DECLARATION_CONSTRAINT_SUPPORTED:
+				setReturnedTypeDeclarationConstraintSupported(RETURNED_TYPE_DECLARATION_CONSTRAINT_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__PARAMETER_INIT_VALUE_SUPPORTED:
+				setParameterInitValueSupported(PARAMETER_INIT_VALUE_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__PARAMETER_STYLE_SUPPORTED:
+				setParameterStyleSupported(PARAMETER_STYLE_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__RETURN_TYPE_SUPPORTED:
+				setReturnTypeSupported(RETURN_TYPE_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__PARAMETER_DECLARATION_CONSTRAINT_SUPPORTED:
+				setParameterDeclarationConstraintSupported(PARAMETER_DECLARATION_CONSTRAINT_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__MAXIMUM_ACTION_BODY_LENGTH:
+				setMaximumActionBodyLength(MAXIMUM_ACTION_BODY_LENGTH_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__PARAMETER_STYLE:
+				getParameterStyle().clear();
+				return;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__LANGUAGE_TYPE:
+				getLanguageType().clear();
+				return;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__FUNCTION_LANGUAGE_TYPE:
+				getFunctionLanguageType().clear();
+				return;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__PROCEDURE_TYPE:
+				getProcedureType().clear();
+				return;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH:
+				setMaximumIdentifierLength(MAXIMUM_IDENTIFIER_LENGTH_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__PREDEFINED_DATA_TYPE_DEFINITIONS:
+				return predefinedDataTypeDefinitions != null && !predefinedDataTypeDefinitions.isEmpty();
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__NULL_INPUT_ACTION_SUPPORTED:
+				return nullInputActionSupported != NULL_INPUT_ACTION_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__PACKAGE_GENERATION_SUPPORTED:
+				return packageGenerationSupported != PACKAGE_GENERATION_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__DETERMININSTIC_SUPPORTED:
+				return determininsticSupported != DETERMININSTIC_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__RETURNED_NULL_SUPPORTED:
+				return returnedNullSupported != RETURNED_NULL_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__RETURNED_TYPE_DECLARATION_CONSTRAINT_SUPPORTED:
+				return returnedTypeDeclarationConstraintSupported != RETURNED_TYPE_DECLARATION_CONSTRAINT_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__PARAMETER_INIT_VALUE_SUPPORTED:
+				return parameterInitValueSupported != PARAMETER_INIT_VALUE_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__PARAMETER_STYLE_SUPPORTED:
+				return parameterStyleSupported != PARAMETER_STYLE_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__RETURN_TYPE_SUPPORTED:
+				return returnTypeSupported != RETURN_TYPE_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__PARAMETER_DECLARATION_CONSTRAINT_SUPPORTED:
+				return parameterDeclarationConstraintSupported != PARAMETER_DECLARATION_CONSTRAINT_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__MAXIMUM_ACTION_BODY_LENGTH:
+				return maximumActionBodyLength != MAXIMUM_ACTION_BODY_LENGTH_EDEFAULT;
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__PARAMETER_STYLE:
+				return parameterStyle != null && !parameterStyle.isEmpty();
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__LANGUAGE_TYPE:
+				return languageType != null && !languageType.isEmpty();
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__FUNCTION_LANGUAGE_TYPE:
+				return functionLanguageType != null && !functionLanguageType.isEmpty();
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__PROCEDURE_TYPE:
+				return procedureType != null && !procedureType.isEmpty();
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH:
+				return maximumIdentifierLength != MAXIMUM_IDENTIFIER_LENGTH_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (nullInputActionSupported: "); //$NON-NLS-1$
+		result.append(nullInputActionSupported);
+		result.append(", packageGenerationSupported: "); //$NON-NLS-1$
+		result.append(packageGenerationSupported);
+		result.append(", determininsticSupported: "); //$NON-NLS-1$
+		result.append(determininsticSupported);
+		result.append(", returnedNullSupported: "); //$NON-NLS-1$
+		result.append(returnedNullSupported);
+		result.append(", returnedTypeDeclarationConstraintSupported: "); //$NON-NLS-1$
+		result.append(returnedTypeDeclarationConstraintSupported);
+		result.append(", parameterInitValueSupported: "); //$NON-NLS-1$
+		result.append(parameterInitValueSupported);
+		result.append(", parameterStyleSupported: "); //$NON-NLS-1$
+		result.append(parameterStyleSupported);
+		result.append(", returnTypeSupported: "); //$NON-NLS-1$
+		result.append(returnTypeSupported);
+		result.append(", parameterDeclarationConstraintSupported: "); //$NON-NLS-1$
+		result.append(parameterDeclarationConstraintSupported);
+		result.append(", maximumActionBodyLength: "); //$NON-NLS-1$
+		result.append(maximumActionBodyLength);
+		result.append(", parameterStyle: "); //$NON-NLS-1$
+		result.append(parameterStyle);
+		result.append(", languageType: "); //$NON-NLS-1$
+		result.append(languageType);
+		result.append(", functionLanguageType: "); //$NON-NLS-1$
+		result.append(functionLanguageType);
+		result.append(", procedureType: "); //$NON-NLS-1$
+		result.append(procedureType);
+		result.append(", maximumIdentifierLength: "); //$NON-NLS-1$
+		result.append(maximumIdentifierLength);
+		result.append(')');
+		return result.toString();
+	}
+
+} //StoredProcedureDefinitionImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/TableDefinitionImpl.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/TableDefinitionImpl.java
new file mode 100644
index 0000000..736dda8
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/TableDefinitionImpl.java
@@ -0,0 +1,433 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.dbdefinition.impl;
+
+import org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage;
+import org.eclipse.datatools.modelbase.dbdefinition.TableDefinition;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Table Definition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.TableDefinitionImpl#isAuditSupported <em>Audit Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.TableDefinitionImpl#isDataCaptureSupported <em>Data Capture Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.TableDefinitionImpl#isEditProcSupported <em>Edit Proc Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.TableDefinitionImpl#isEncodingSupported <em>Encoding Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.TableDefinitionImpl#isValidProcSupported <em>Valid Proc Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.TableDefinitionImpl#getMaximumIdentifierLength <em>Maximum Identifier Length</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TableDefinitionImpl extends EObjectImpl implements TableDefinition {
+	/**
+	 * The default value of the '{@link #isAuditSupported() <em>Audit Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isAuditSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean AUDIT_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isAuditSupported() <em>Audit Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isAuditSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean auditSupported = AUDIT_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isDataCaptureSupported() <em>Data Capture Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isDataCaptureSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean DATA_CAPTURE_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isDataCaptureSupported() <em>Data Capture Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isDataCaptureSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean dataCaptureSupported = DATA_CAPTURE_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isEditProcSupported() <em>Edit Proc Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isEditProcSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean EDIT_PROC_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isEditProcSupported() <em>Edit Proc Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isEditProcSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean editProcSupported = EDIT_PROC_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isEncodingSupported() <em>Encoding Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isEncodingSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean ENCODING_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isEncodingSupported() <em>Encoding Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isEncodingSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean encodingSupported = ENCODING_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isValidProcSupported() <em>Valid Proc Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isValidProcSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean VALID_PROC_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isValidProcSupported() <em>Valid Proc Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isValidProcSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean validProcSupported = VALID_PROC_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMaximumIdentifierLength() <em>Maximum Identifier Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumIdentifierLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int MAXIMUM_IDENTIFIER_LENGTH_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getMaximumIdentifierLength() <em>Maximum Identifier Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumIdentifierLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected int maximumIdentifierLength = MAXIMUM_IDENTIFIER_LENGTH_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TableDefinitionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return DatabaseDefinitionPackage.Literals.TABLE_DEFINITION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isAuditSupported() {
+		return auditSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setAuditSupported(boolean newAuditSupported) {
+		boolean oldAuditSupported = auditSupported;
+		auditSupported = newAuditSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.TABLE_DEFINITION__AUDIT_SUPPORTED, oldAuditSupported, auditSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isDataCaptureSupported() {
+		return dataCaptureSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDataCaptureSupported(boolean newDataCaptureSupported) {
+		boolean oldDataCaptureSupported = dataCaptureSupported;
+		dataCaptureSupported = newDataCaptureSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.TABLE_DEFINITION__DATA_CAPTURE_SUPPORTED, oldDataCaptureSupported, dataCaptureSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isEditProcSupported() {
+		return editProcSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setEditProcSupported(boolean newEditProcSupported) {
+		boolean oldEditProcSupported = editProcSupported;
+		editProcSupported = newEditProcSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.TABLE_DEFINITION__EDIT_PROC_SUPPORTED, oldEditProcSupported, editProcSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isEncodingSupported() {
+		return encodingSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setEncodingSupported(boolean newEncodingSupported) {
+		boolean oldEncodingSupported = encodingSupported;
+		encodingSupported = newEncodingSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.TABLE_DEFINITION__ENCODING_SUPPORTED, oldEncodingSupported, encodingSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isValidProcSupported() {
+		return validProcSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setValidProcSupported(boolean newValidProcSupported) {
+		boolean oldValidProcSupported = validProcSupported;
+		validProcSupported = newValidProcSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.TABLE_DEFINITION__VALID_PROC_SUPPORTED, oldValidProcSupported, validProcSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getMaximumIdentifierLength() {
+		return maximumIdentifierLength;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMaximumIdentifierLength(int newMaximumIdentifierLength) {
+		int oldMaximumIdentifierLength = maximumIdentifierLength;
+		maximumIdentifierLength = newMaximumIdentifierLength;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.TABLE_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH, oldMaximumIdentifierLength, maximumIdentifierLength));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.TABLE_DEFINITION__AUDIT_SUPPORTED:
+				return isAuditSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.TABLE_DEFINITION__DATA_CAPTURE_SUPPORTED:
+				return isDataCaptureSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.TABLE_DEFINITION__EDIT_PROC_SUPPORTED:
+				return isEditProcSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.TABLE_DEFINITION__ENCODING_SUPPORTED:
+				return isEncodingSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.TABLE_DEFINITION__VALID_PROC_SUPPORTED:
+				return isValidProcSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.TABLE_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH:
+				return new Integer(getMaximumIdentifierLength());
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.TABLE_DEFINITION__AUDIT_SUPPORTED:
+				setAuditSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.TABLE_DEFINITION__DATA_CAPTURE_SUPPORTED:
+				setDataCaptureSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.TABLE_DEFINITION__EDIT_PROC_SUPPORTED:
+				setEditProcSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.TABLE_DEFINITION__ENCODING_SUPPORTED:
+				setEncodingSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.TABLE_DEFINITION__VALID_PROC_SUPPORTED:
+				setValidProcSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.TABLE_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH:
+				setMaximumIdentifierLength(((Integer)newValue).intValue());
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.TABLE_DEFINITION__AUDIT_SUPPORTED:
+				setAuditSupported(AUDIT_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.TABLE_DEFINITION__DATA_CAPTURE_SUPPORTED:
+				setDataCaptureSupported(DATA_CAPTURE_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.TABLE_DEFINITION__EDIT_PROC_SUPPORTED:
+				setEditProcSupported(EDIT_PROC_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.TABLE_DEFINITION__ENCODING_SUPPORTED:
+				setEncodingSupported(ENCODING_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.TABLE_DEFINITION__VALID_PROC_SUPPORTED:
+				setValidProcSupported(VALID_PROC_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.TABLE_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH:
+				setMaximumIdentifierLength(MAXIMUM_IDENTIFIER_LENGTH_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.TABLE_DEFINITION__AUDIT_SUPPORTED:
+				return auditSupported != AUDIT_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.TABLE_DEFINITION__DATA_CAPTURE_SUPPORTED:
+				return dataCaptureSupported != DATA_CAPTURE_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.TABLE_DEFINITION__EDIT_PROC_SUPPORTED:
+				return editProcSupported != EDIT_PROC_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.TABLE_DEFINITION__ENCODING_SUPPORTED:
+				return encodingSupported != ENCODING_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.TABLE_DEFINITION__VALID_PROC_SUPPORTED:
+				return validProcSupported != VALID_PROC_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.TABLE_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH:
+				return maximumIdentifierLength != MAXIMUM_IDENTIFIER_LENGTH_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (auditSupported: "); //$NON-NLS-1$
+		result.append(auditSupported);
+		result.append(", dataCaptureSupported: "); //$NON-NLS-1$
+		result.append(dataCaptureSupported);
+		result.append(", editProcSupported: "); //$NON-NLS-1$
+		result.append(editProcSupported);
+		result.append(", encodingSupported: "); //$NON-NLS-1$
+		result.append(encodingSupported);
+		result.append(", validProcSupported: "); //$NON-NLS-1$
+		result.append(validProcSupported);
+		result.append(", maximumIdentifierLength: "); //$NON-NLS-1$
+		result.append(maximumIdentifierLength);
+		result.append(')');
+		return result.toString();
+	}
+
+} //TableDefinitionImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/TableSpaceDefinitionImpl.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/TableSpaceDefinitionImpl.java
new file mode 100644
index 0000000..fe2df7d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/TableSpaceDefinitionImpl.java
@@ -0,0 +1,744 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.dbdefinition.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage;
+import org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition;
+import org.eclipse.datatools.modelbase.dbdefinition.TableSpaceType;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Table Space Definition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.TableSpaceDefinitionImpl#isTypeSupported <em>Type Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.TableSpaceDefinitionImpl#isExtentSizeSupported <em>Extent Size Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.TableSpaceDefinitionImpl#isPrefetchSizeSupported <em>Prefetch Size Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.TableSpaceDefinitionImpl#isManagedBySupported <em>Managed By Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.TableSpaceDefinitionImpl#isPageSizeSupported <em>Page Size Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.TableSpaceDefinitionImpl#isBufferPoolSupported <em>Buffer Pool Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.TableSpaceDefinitionImpl#isDefaultSupported <em>Default Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.TableSpaceDefinitionImpl#isContainerMaximumSizeSupported <em>Container Maximum Size Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.TableSpaceDefinitionImpl#isContainerInitialSizeSupported <em>Container Initial Size Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.TableSpaceDefinitionImpl#isContainerExtentSizeSupported <em>Container Extent Size Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.TableSpaceDefinitionImpl#getTableSpaceType <em>Table Space Type</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.TableSpaceDefinitionImpl#getMaximumIdentifierLength <em>Maximum Identifier Length</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TableSpaceDefinitionImpl extends EObjectImpl implements TableSpaceDefinition {
+	/**
+	 * The default value of the '{@link #isTypeSupported() <em>Type Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isTypeSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean TYPE_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isTypeSupported() <em>Type Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isTypeSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean typeSupported = TYPE_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isExtentSizeSupported() <em>Extent Size Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isExtentSizeSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean EXTENT_SIZE_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isExtentSizeSupported() <em>Extent Size Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isExtentSizeSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean extentSizeSupported = EXTENT_SIZE_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isPrefetchSizeSupported() <em>Prefetch Size Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isPrefetchSizeSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean PREFETCH_SIZE_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isPrefetchSizeSupported() <em>Prefetch Size Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isPrefetchSizeSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean prefetchSizeSupported = PREFETCH_SIZE_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isManagedBySupported() <em>Managed By Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isManagedBySupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean MANAGED_BY_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isManagedBySupported() <em>Managed By Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isManagedBySupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean managedBySupported = MANAGED_BY_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isPageSizeSupported() <em>Page Size Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isPageSizeSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean PAGE_SIZE_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isPageSizeSupported() <em>Page Size Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isPageSizeSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean pageSizeSupported = PAGE_SIZE_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isBufferPoolSupported() <em>Buffer Pool Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isBufferPoolSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean BUFFER_POOL_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isBufferPoolSupported() <em>Buffer Pool Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isBufferPoolSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean bufferPoolSupported = BUFFER_POOL_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isDefaultSupported() <em>Default Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isDefaultSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean DEFAULT_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isDefaultSupported() <em>Default Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isDefaultSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean defaultSupported = DEFAULT_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isContainerMaximumSizeSupported() <em>Container Maximum Size Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isContainerMaximumSizeSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean CONTAINER_MAXIMUM_SIZE_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isContainerMaximumSizeSupported() <em>Container Maximum Size Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isContainerMaximumSizeSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean containerMaximumSizeSupported = CONTAINER_MAXIMUM_SIZE_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isContainerInitialSizeSupported() <em>Container Initial Size Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isContainerInitialSizeSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean CONTAINER_INITIAL_SIZE_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isContainerInitialSizeSupported() <em>Container Initial Size Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isContainerInitialSizeSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean containerInitialSizeSupported = CONTAINER_INITIAL_SIZE_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isContainerExtentSizeSupported() <em>Container Extent Size Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isContainerExtentSizeSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean CONTAINER_EXTENT_SIZE_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isContainerExtentSizeSupported() <em>Container Extent Size Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isContainerExtentSizeSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean containerExtentSizeSupported = CONTAINER_EXTENT_SIZE_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getTableSpaceType() <em>Table Space Type</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTableSpaceType()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList tableSpaceType;
+
+	/**
+	 * The default value of the '{@link #getMaximumIdentifierLength() <em>Maximum Identifier Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumIdentifierLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int MAXIMUM_IDENTIFIER_LENGTH_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getMaximumIdentifierLength() <em>Maximum Identifier Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumIdentifierLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected int maximumIdentifierLength = MAXIMUM_IDENTIFIER_LENGTH_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TableSpaceDefinitionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return DatabaseDefinitionPackage.Literals.TABLE_SPACE_DEFINITION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isTypeSupported() {
+		return typeSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTypeSupported(boolean newTypeSupported) {
+		boolean oldTypeSupported = typeSupported;
+		typeSupported = newTypeSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__TYPE_SUPPORTED, oldTypeSupported, typeSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isExtentSizeSupported() {
+		return extentSizeSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setExtentSizeSupported(boolean newExtentSizeSupported) {
+		boolean oldExtentSizeSupported = extentSizeSupported;
+		extentSizeSupported = newExtentSizeSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__EXTENT_SIZE_SUPPORTED, oldExtentSizeSupported, extentSizeSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isPrefetchSizeSupported() {
+		return prefetchSizeSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPrefetchSizeSupported(boolean newPrefetchSizeSupported) {
+		boolean oldPrefetchSizeSupported = prefetchSizeSupported;
+		prefetchSizeSupported = newPrefetchSizeSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__PREFETCH_SIZE_SUPPORTED, oldPrefetchSizeSupported, prefetchSizeSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isManagedBySupported() {
+		return managedBySupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setManagedBySupported(boolean newManagedBySupported) {
+		boolean oldManagedBySupported = managedBySupported;
+		managedBySupported = newManagedBySupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__MANAGED_BY_SUPPORTED, oldManagedBySupported, managedBySupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isPageSizeSupported() {
+		return pageSizeSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPageSizeSupported(boolean newPageSizeSupported) {
+		boolean oldPageSizeSupported = pageSizeSupported;
+		pageSizeSupported = newPageSizeSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__PAGE_SIZE_SUPPORTED, oldPageSizeSupported, pageSizeSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isBufferPoolSupported() {
+		return bufferPoolSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBufferPoolSupported(boolean newBufferPoolSupported) {
+		boolean oldBufferPoolSupported = bufferPoolSupported;
+		bufferPoolSupported = newBufferPoolSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__BUFFER_POOL_SUPPORTED, oldBufferPoolSupported, bufferPoolSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isDefaultSupported() {
+		return defaultSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDefaultSupported(boolean newDefaultSupported) {
+		boolean oldDefaultSupported = defaultSupported;
+		defaultSupported = newDefaultSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__DEFAULT_SUPPORTED, oldDefaultSupported, defaultSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isContainerMaximumSizeSupported() {
+		return containerMaximumSizeSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setContainerMaximumSizeSupported(boolean newContainerMaximumSizeSupported) {
+		boolean oldContainerMaximumSizeSupported = containerMaximumSizeSupported;
+		containerMaximumSizeSupported = newContainerMaximumSizeSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__CONTAINER_MAXIMUM_SIZE_SUPPORTED, oldContainerMaximumSizeSupported, containerMaximumSizeSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isContainerInitialSizeSupported() {
+		return containerInitialSizeSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setContainerInitialSizeSupported(boolean newContainerInitialSizeSupported) {
+		boolean oldContainerInitialSizeSupported = containerInitialSizeSupported;
+		containerInitialSizeSupported = newContainerInitialSizeSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__CONTAINER_INITIAL_SIZE_SUPPORTED, oldContainerInitialSizeSupported, containerInitialSizeSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isContainerExtentSizeSupported() {
+		return containerExtentSizeSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setContainerExtentSizeSupported(boolean newContainerExtentSizeSupported) {
+		boolean oldContainerExtentSizeSupported = containerExtentSizeSupported;
+		containerExtentSizeSupported = newContainerExtentSizeSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__CONTAINER_EXTENT_SIZE_SUPPORTED, oldContainerExtentSizeSupported, containerExtentSizeSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getTableSpaceType() {
+		if (tableSpaceType == null) {
+			tableSpaceType = new EDataTypeUniqueEList(TableSpaceType.class, this, DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__TABLE_SPACE_TYPE);
+		}
+		return tableSpaceType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getMaximumIdentifierLength() {
+		return maximumIdentifierLength;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMaximumIdentifierLength(int newMaximumIdentifierLength) {
+		int oldMaximumIdentifierLength = maximumIdentifierLength;
+		maximumIdentifierLength = newMaximumIdentifierLength;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH, oldMaximumIdentifierLength, maximumIdentifierLength));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__TYPE_SUPPORTED:
+				return isTypeSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__EXTENT_SIZE_SUPPORTED:
+				return isExtentSizeSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__PREFETCH_SIZE_SUPPORTED:
+				return isPrefetchSizeSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__MANAGED_BY_SUPPORTED:
+				return isManagedBySupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__PAGE_SIZE_SUPPORTED:
+				return isPageSizeSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__BUFFER_POOL_SUPPORTED:
+				return isBufferPoolSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__DEFAULT_SUPPORTED:
+				return isDefaultSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__CONTAINER_MAXIMUM_SIZE_SUPPORTED:
+				return isContainerMaximumSizeSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__CONTAINER_INITIAL_SIZE_SUPPORTED:
+				return isContainerInitialSizeSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__CONTAINER_EXTENT_SIZE_SUPPORTED:
+				return isContainerExtentSizeSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__TABLE_SPACE_TYPE:
+				return getTableSpaceType();
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH:
+				return new Integer(getMaximumIdentifierLength());
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__TYPE_SUPPORTED:
+				setTypeSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__EXTENT_SIZE_SUPPORTED:
+				setExtentSizeSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__PREFETCH_SIZE_SUPPORTED:
+				setPrefetchSizeSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__MANAGED_BY_SUPPORTED:
+				setManagedBySupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__PAGE_SIZE_SUPPORTED:
+				setPageSizeSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__BUFFER_POOL_SUPPORTED:
+				setBufferPoolSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__DEFAULT_SUPPORTED:
+				setDefaultSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__CONTAINER_MAXIMUM_SIZE_SUPPORTED:
+				setContainerMaximumSizeSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__CONTAINER_INITIAL_SIZE_SUPPORTED:
+				setContainerInitialSizeSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__CONTAINER_EXTENT_SIZE_SUPPORTED:
+				setContainerExtentSizeSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__TABLE_SPACE_TYPE:
+				getTableSpaceType().clear();
+				getTableSpaceType().addAll((Collection)newValue);
+				return;
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH:
+				setMaximumIdentifierLength(((Integer)newValue).intValue());
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__TYPE_SUPPORTED:
+				setTypeSupported(TYPE_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__EXTENT_SIZE_SUPPORTED:
+				setExtentSizeSupported(EXTENT_SIZE_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__PREFETCH_SIZE_SUPPORTED:
+				setPrefetchSizeSupported(PREFETCH_SIZE_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__MANAGED_BY_SUPPORTED:
+				setManagedBySupported(MANAGED_BY_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__PAGE_SIZE_SUPPORTED:
+				setPageSizeSupported(PAGE_SIZE_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__BUFFER_POOL_SUPPORTED:
+				setBufferPoolSupported(BUFFER_POOL_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__DEFAULT_SUPPORTED:
+				setDefaultSupported(DEFAULT_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__CONTAINER_MAXIMUM_SIZE_SUPPORTED:
+				setContainerMaximumSizeSupported(CONTAINER_MAXIMUM_SIZE_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__CONTAINER_INITIAL_SIZE_SUPPORTED:
+				setContainerInitialSizeSupported(CONTAINER_INITIAL_SIZE_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__CONTAINER_EXTENT_SIZE_SUPPORTED:
+				setContainerExtentSizeSupported(CONTAINER_EXTENT_SIZE_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__TABLE_SPACE_TYPE:
+				getTableSpaceType().clear();
+				return;
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH:
+				setMaximumIdentifierLength(MAXIMUM_IDENTIFIER_LENGTH_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__TYPE_SUPPORTED:
+				return typeSupported != TYPE_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__EXTENT_SIZE_SUPPORTED:
+				return extentSizeSupported != EXTENT_SIZE_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__PREFETCH_SIZE_SUPPORTED:
+				return prefetchSizeSupported != PREFETCH_SIZE_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__MANAGED_BY_SUPPORTED:
+				return managedBySupported != MANAGED_BY_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__PAGE_SIZE_SUPPORTED:
+				return pageSizeSupported != PAGE_SIZE_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__BUFFER_POOL_SUPPORTED:
+				return bufferPoolSupported != BUFFER_POOL_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__DEFAULT_SUPPORTED:
+				return defaultSupported != DEFAULT_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__CONTAINER_MAXIMUM_SIZE_SUPPORTED:
+				return containerMaximumSizeSupported != CONTAINER_MAXIMUM_SIZE_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__CONTAINER_INITIAL_SIZE_SUPPORTED:
+				return containerInitialSizeSupported != CONTAINER_INITIAL_SIZE_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__CONTAINER_EXTENT_SIZE_SUPPORTED:
+				return containerExtentSizeSupported != CONTAINER_EXTENT_SIZE_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__TABLE_SPACE_TYPE:
+				return tableSpaceType != null && !tableSpaceType.isEmpty();
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH:
+				return maximumIdentifierLength != MAXIMUM_IDENTIFIER_LENGTH_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (typeSupported: "); //$NON-NLS-1$
+		result.append(typeSupported);
+		result.append(", extentSizeSupported: "); //$NON-NLS-1$
+		result.append(extentSizeSupported);
+		result.append(", prefetchSizeSupported: "); //$NON-NLS-1$
+		result.append(prefetchSizeSupported);
+		result.append(", managedBySupported: "); //$NON-NLS-1$
+		result.append(managedBySupported);
+		result.append(", pageSizeSupported: "); //$NON-NLS-1$
+		result.append(pageSizeSupported);
+		result.append(", bufferPoolSupported: "); //$NON-NLS-1$
+		result.append(bufferPoolSupported);
+		result.append(", defaultSupported: "); //$NON-NLS-1$
+		result.append(defaultSupported);
+		result.append(", containerMaximumSizeSupported: "); //$NON-NLS-1$
+		result.append(containerMaximumSizeSupported);
+		result.append(", containerInitialSizeSupported: "); //$NON-NLS-1$
+		result.append(containerInitialSizeSupported);
+		result.append(", containerExtentSizeSupported: "); //$NON-NLS-1$
+		result.append(containerExtentSizeSupported);
+		result.append(", tableSpaceType: "); //$NON-NLS-1$
+		result.append(tableSpaceType);
+		result.append(", maximumIdentifierLength: "); //$NON-NLS-1$
+		result.append(maximumIdentifierLength);
+		result.append(')');
+		return result.toString();
+	}
+
+} //TableSpaceDefinitionImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/TriggerDefinitionImpl.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/TriggerDefinitionImpl.java
new file mode 100644
index 0000000..1aaddfd
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/TriggerDefinitionImpl.java
@@ -0,0 +1,702 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: TriggerDefinitionImpl.java,v 1.2 2006/03/09 23:48:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.dbdefinition.impl;
+
+import org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage;
+import org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Trigger Definition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.TriggerDefinitionImpl#getMaximumReferencePartLength <em>Maximum Reference Part Length</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.TriggerDefinitionImpl#getMaximumActionBodyLength <em>Maximum Action Body Length</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.TriggerDefinitionImpl#isTypeSupported <em>Type Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.TriggerDefinitionImpl#isWhenClauseSupported <em>When Clause Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.TriggerDefinitionImpl#isGranularitySupported <em>Granularity Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.TriggerDefinitionImpl#isReferencesClauseSupported <em>References Clause Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.TriggerDefinitionImpl#isPerColumnUpdateTriggerSupported <em>Per Column Update Trigger Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.TriggerDefinitionImpl#isInsteadOfTriggerSupported <em>Instead Of Trigger Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.TriggerDefinitionImpl#isRowTriggerReferenceSupported <em>Row Trigger Reference Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.TriggerDefinitionImpl#isTableTriggerReferenceSupported <em>Table Trigger Reference Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.TriggerDefinitionImpl#getMaximumIdentifierLength <em>Maximum Identifier Length</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TriggerDefinitionImpl extends EObjectImpl implements TriggerDefinition {
+	/**
+	 * The default value of the '{@link #getMaximumReferencePartLength() <em>Maximum Reference Part Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumReferencePartLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int MAXIMUM_REFERENCE_PART_LENGTH_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getMaximumReferencePartLength() <em>Maximum Reference Part Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumReferencePartLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected int maximumReferencePartLength = MAXIMUM_REFERENCE_PART_LENGTH_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMaximumActionBodyLength() <em>Maximum Action Body Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumActionBodyLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int MAXIMUM_ACTION_BODY_LENGTH_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getMaximumActionBodyLength() <em>Maximum Action Body Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumActionBodyLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected int maximumActionBodyLength = MAXIMUM_ACTION_BODY_LENGTH_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isTypeSupported() <em>Type Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isTypeSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean TYPE_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isTypeSupported() <em>Type Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isTypeSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean typeSupported = TYPE_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isWhenClauseSupported() <em>When Clause Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isWhenClauseSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean WHEN_CLAUSE_SUPPORTED_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isWhenClauseSupported() <em>When Clause Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isWhenClauseSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean whenClauseSupported = WHEN_CLAUSE_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isGranularitySupported() <em>Granularity Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isGranularitySupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean GRANULARITY_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isGranularitySupported() <em>Granularity Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isGranularitySupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean granularitySupported = GRANULARITY_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isReferencesClauseSupported() <em>References Clause Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isReferencesClauseSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean REFERENCES_CLAUSE_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isReferencesClauseSupported() <em>References Clause Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isReferencesClauseSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean referencesClauseSupported = REFERENCES_CLAUSE_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isPerColumnUpdateTriggerSupported() <em>Per Column Update Trigger Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isPerColumnUpdateTriggerSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean PER_COLUMN_UPDATE_TRIGGER_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isPerColumnUpdateTriggerSupported() <em>Per Column Update Trigger Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isPerColumnUpdateTriggerSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean perColumnUpdateTriggerSupported = PER_COLUMN_UPDATE_TRIGGER_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isInsteadOfTriggerSupported() <em>Instead Of Trigger Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isInsteadOfTriggerSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean INSTEAD_OF_TRIGGER_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isInsteadOfTriggerSupported() <em>Instead Of Trigger Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isInsteadOfTriggerSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean insteadOfTriggerSupported = INSTEAD_OF_TRIGGER_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isRowTriggerReferenceSupported() <em>Row Trigger Reference Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isRowTriggerReferenceSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean ROW_TRIGGER_REFERENCE_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isRowTriggerReferenceSupported() <em>Row Trigger Reference Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isRowTriggerReferenceSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean rowTriggerReferenceSupported = ROW_TRIGGER_REFERENCE_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isTableTriggerReferenceSupported() <em>Table Trigger Reference Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isTableTriggerReferenceSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean TABLE_TRIGGER_REFERENCE_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isTableTriggerReferenceSupported() <em>Table Trigger Reference Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isTableTriggerReferenceSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean tableTriggerReferenceSupported = TABLE_TRIGGER_REFERENCE_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMaximumIdentifierLength() <em>Maximum Identifier Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumIdentifierLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int MAXIMUM_IDENTIFIER_LENGTH_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getMaximumIdentifierLength() <em>Maximum Identifier Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumIdentifierLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected int maximumIdentifierLength = MAXIMUM_IDENTIFIER_LENGTH_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TriggerDefinitionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return DatabaseDefinitionPackage.Literals.TRIGGER_DEFINITION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getMaximumReferencePartLength() {
+		return maximumReferencePartLength;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMaximumReferencePartLength(int newMaximumReferencePartLength) {
+		int oldMaximumReferencePartLength = maximumReferencePartLength;
+		maximumReferencePartLength = newMaximumReferencePartLength;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.TRIGGER_DEFINITION__MAXIMUM_REFERENCE_PART_LENGTH, oldMaximumReferencePartLength, maximumReferencePartLength));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getMaximumActionBodyLength() {
+		return maximumActionBodyLength;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMaximumActionBodyLength(int newMaximumActionBodyLength) {
+		int oldMaximumActionBodyLength = maximumActionBodyLength;
+		maximumActionBodyLength = newMaximumActionBodyLength;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.TRIGGER_DEFINITION__MAXIMUM_ACTION_BODY_LENGTH, oldMaximumActionBodyLength, maximumActionBodyLength));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isTypeSupported() {
+		return typeSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTypeSupported(boolean newTypeSupported) {
+		boolean oldTypeSupported = typeSupported;
+		typeSupported = newTypeSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.TRIGGER_DEFINITION__TYPE_SUPPORTED, oldTypeSupported, typeSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isWhenClauseSupported() {
+		return whenClauseSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setWhenClauseSupported(boolean newWhenClauseSupported) {
+		boolean oldWhenClauseSupported = whenClauseSupported;
+		whenClauseSupported = newWhenClauseSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.TRIGGER_DEFINITION__WHEN_CLAUSE_SUPPORTED, oldWhenClauseSupported, whenClauseSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isGranularitySupported() {
+		return granularitySupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setGranularitySupported(boolean newGranularitySupported) {
+		boolean oldGranularitySupported = granularitySupported;
+		granularitySupported = newGranularitySupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.TRIGGER_DEFINITION__GRANULARITY_SUPPORTED, oldGranularitySupported, granularitySupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isReferencesClauseSupported() {
+		return referencesClauseSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setReferencesClauseSupported(boolean newReferencesClauseSupported) {
+		boolean oldReferencesClauseSupported = referencesClauseSupported;
+		referencesClauseSupported = newReferencesClauseSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.TRIGGER_DEFINITION__REFERENCES_CLAUSE_SUPPORTED, oldReferencesClauseSupported, referencesClauseSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isPerColumnUpdateTriggerSupported() {
+		return perColumnUpdateTriggerSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPerColumnUpdateTriggerSupported(boolean newPerColumnUpdateTriggerSupported) {
+		boolean oldPerColumnUpdateTriggerSupported = perColumnUpdateTriggerSupported;
+		perColumnUpdateTriggerSupported = newPerColumnUpdateTriggerSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.TRIGGER_DEFINITION__PER_COLUMN_UPDATE_TRIGGER_SUPPORTED, oldPerColumnUpdateTriggerSupported, perColumnUpdateTriggerSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isInsteadOfTriggerSupported() {
+		return insteadOfTriggerSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setInsteadOfTriggerSupported(boolean newInsteadOfTriggerSupported) {
+		boolean oldInsteadOfTriggerSupported = insteadOfTriggerSupported;
+		insteadOfTriggerSupported = newInsteadOfTriggerSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.TRIGGER_DEFINITION__INSTEAD_OF_TRIGGER_SUPPORTED, oldInsteadOfTriggerSupported, insteadOfTriggerSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isRowTriggerReferenceSupported() {
+		return rowTriggerReferenceSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setRowTriggerReferenceSupported(boolean newRowTriggerReferenceSupported) {
+		boolean oldRowTriggerReferenceSupported = rowTriggerReferenceSupported;
+		rowTriggerReferenceSupported = newRowTriggerReferenceSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.TRIGGER_DEFINITION__ROW_TRIGGER_REFERENCE_SUPPORTED, oldRowTriggerReferenceSupported, rowTriggerReferenceSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isTableTriggerReferenceSupported() {
+		return tableTriggerReferenceSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTableTriggerReferenceSupported(boolean newTableTriggerReferenceSupported) {
+		boolean oldTableTriggerReferenceSupported = tableTriggerReferenceSupported;
+		tableTriggerReferenceSupported = newTableTriggerReferenceSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.TRIGGER_DEFINITION__TABLE_TRIGGER_REFERENCE_SUPPORTED, oldTableTriggerReferenceSupported, tableTriggerReferenceSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getMaximumIdentifierLength() {
+		return maximumIdentifierLength;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMaximumIdentifierLength(int newMaximumIdentifierLength) {
+		int oldMaximumIdentifierLength = maximumIdentifierLength;
+		maximumIdentifierLength = newMaximumIdentifierLength;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.TRIGGER_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH, oldMaximumIdentifierLength, maximumIdentifierLength));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.TRIGGER_DEFINITION__MAXIMUM_REFERENCE_PART_LENGTH:
+				return new Integer(getMaximumReferencePartLength());
+			case DatabaseDefinitionPackage.TRIGGER_DEFINITION__MAXIMUM_ACTION_BODY_LENGTH:
+				return new Integer(getMaximumActionBodyLength());
+			case DatabaseDefinitionPackage.TRIGGER_DEFINITION__TYPE_SUPPORTED:
+				return isTypeSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.TRIGGER_DEFINITION__WHEN_CLAUSE_SUPPORTED:
+				return isWhenClauseSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.TRIGGER_DEFINITION__GRANULARITY_SUPPORTED:
+				return isGranularitySupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.TRIGGER_DEFINITION__REFERENCES_CLAUSE_SUPPORTED:
+				return isReferencesClauseSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.TRIGGER_DEFINITION__PER_COLUMN_UPDATE_TRIGGER_SUPPORTED:
+				return isPerColumnUpdateTriggerSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.TRIGGER_DEFINITION__INSTEAD_OF_TRIGGER_SUPPORTED:
+				return isInsteadOfTriggerSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.TRIGGER_DEFINITION__ROW_TRIGGER_REFERENCE_SUPPORTED:
+				return isRowTriggerReferenceSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.TRIGGER_DEFINITION__TABLE_TRIGGER_REFERENCE_SUPPORTED:
+				return isTableTriggerReferenceSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.TRIGGER_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH:
+				return new Integer(getMaximumIdentifierLength());
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.TRIGGER_DEFINITION__MAXIMUM_REFERENCE_PART_LENGTH:
+				setMaximumReferencePartLength(((Integer)newValue).intValue());
+				return;
+			case DatabaseDefinitionPackage.TRIGGER_DEFINITION__MAXIMUM_ACTION_BODY_LENGTH:
+				setMaximumActionBodyLength(((Integer)newValue).intValue());
+				return;
+			case DatabaseDefinitionPackage.TRIGGER_DEFINITION__TYPE_SUPPORTED:
+				setTypeSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.TRIGGER_DEFINITION__WHEN_CLAUSE_SUPPORTED:
+				setWhenClauseSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.TRIGGER_DEFINITION__GRANULARITY_SUPPORTED:
+				setGranularitySupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.TRIGGER_DEFINITION__REFERENCES_CLAUSE_SUPPORTED:
+				setReferencesClauseSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.TRIGGER_DEFINITION__PER_COLUMN_UPDATE_TRIGGER_SUPPORTED:
+				setPerColumnUpdateTriggerSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.TRIGGER_DEFINITION__INSTEAD_OF_TRIGGER_SUPPORTED:
+				setInsteadOfTriggerSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.TRIGGER_DEFINITION__ROW_TRIGGER_REFERENCE_SUPPORTED:
+				setRowTriggerReferenceSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.TRIGGER_DEFINITION__TABLE_TRIGGER_REFERENCE_SUPPORTED:
+				setTableTriggerReferenceSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.TRIGGER_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH:
+				setMaximumIdentifierLength(((Integer)newValue).intValue());
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.TRIGGER_DEFINITION__MAXIMUM_REFERENCE_PART_LENGTH:
+				setMaximumReferencePartLength(MAXIMUM_REFERENCE_PART_LENGTH_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.TRIGGER_DEFINITION__MAXIMUM_ACTION_BODY_LENGTH:
+				setMaximumActionBodyLength(MAXIMUM_ACTION_BODY_LENGTH_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.TRIGGER_DEFINITION__TYPE_SUPPORTED:
+				setTypeSupported(TYPE_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.TRIGGER_DEFINITION__WHEN_CLAUSE_SUPPORTED:
+				setWhenClauseSupported(WHEN_CLAUSE_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.TRIGGER_DEFINITION__GRANULARITY_SUPPORTED:
+				setGranularitySupported(GRANULARITY_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.TRIGGER_DEFINITION__REFERENCES_CLAUSE_SUPPORTED:
+				setReferencesClauseSupported(REFERENCES_CLAUSE_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.TRIGGER_DEFINITION__PER_COLUMN_UPDATE_TRIGGER_SUPPORTED:
+				setPerColumnUpdateTriggerSupported(PER_COLUMN_UPDATE_TRIGGER_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.TRIGGER_DEFINITION__INSTEAD_OF_TRIGGER_SUPPORTED:
+				setInsteadOfTriggerSupported(INSTEAD_OF_TRIGGER_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.TRIGGER_DEFINITION__ROW_TRIGGER_REFERENCE_SUPPORTED:
+				setRowTriggerReferenceSupported(ROW_TRIGGER_REFERENCE_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.TRIGGER_DEFINITION__TABLE_TRIGGER_REFERENCE_SUPPORTED:
+				setTableTriggerReferenceSupported(TABLE_TRIGGER_REFERENCE_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.TRIGGER_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH:
+				setMaximumIdentifierLength(MAXIMUM_IDENTIFIER_LENGTH_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.TRIGGER_DEFINITION__MAXIMUM_REFERENCE_PART_LENGTH:
+				return maximumReferencePartLength != MAXIMUM_REFERENCE_PART_LENGTH_EDEFAULT;
+			case DatabaseDefinitionPackage.TRIGGER_DEFINITION__MAXIMUM_ACTION_BODY_LENGTH:
+				return maximumActionBodyLength != MAXIMUM_ACTION_BODY_LENGTH_EDEFAULT;
+			case DatabaseDefinitionPackage.TRIGGER_DEFINITION__TYPE_SUPPORTED:
+				return typeSupported != TYPE_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.TRIGGER_DEFINITION__WHEN_CLAUSE_SUPPORTED:
+				return whenClauseSupported != WHEN_CLAUSE_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.TRIGGER_DEFINITION__GRANULARITY_SUPPORTED:
+				return granularitySupported != GRANULARITY_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.TRIGGER_DEFINITION__REFERENCES_CLAUSE_SUPPORTED:
+				return referencesClauseSupported != REFERENCES_CLAUSE_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.TRIGGER_DEFINITION__PER_COLUMN_UPDATE_TRIGGER_SUPPORTED:
+				return perColumnUpdateTriggerSupported != PER_COLUMN_UPDATE_TRIGGER_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.TRIGGER_DEFINITION__INSTEAD_OF_TRIGGER_SUPPORTED:
+				return insteadOfTriggerSupported != INSTEAD_OF_TRIGGER_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.TRIGGER_DEFINITION__ROW_TRIGGER_REFERENCE_SUPPORTED:
+				return rowTriggerReferenceSupported != ROW_TRIGGER_REFERENCE_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.TRIGGER_DEFINITION__TABLE_TRIGGER_REFERENCE_SUPPORTED:
+				return tableTriggerReferenceSupported != TABLE_TRIGGER_REFERENCE_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.TRIGGER_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH:
+				return maximumIdentifierLength != MAXIMUM_IDENTIFIER_LENGTH_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (maximumReferencePartLength: "); //$NON-NLS-1$
+		result.append(maximumReferencePartLength);
+		result.append(", maximumActionBodyLength: "); //$NON-NLS-1$
+		result.append(maximumActionBodyLength);
+		result.append(", typeSupported: "); //$NON-NLS-1$
+		result.append(typeSupported);
+		result.append(", whenClauseSupported: "); //$NON-NLS-1$
+		result.append(whenClauseSupported);
+		result.append(", granularitySupported: "); //$NON-NLS-1$
+		result.append(granularitySupported);
+		result.append(", referencesClauseSupported: "); //$NON-NLS-1$
+		result.append(referencesClauseSupported);
+		result.append(", perColumnUpdateTriggerSupported: "); //$NON-NLS-1$
+		result.append(perColumnUpdateTriggerSupported);
+		result.append(", insteadOfTriggerSupported: "); //$NON-NLS-1$
+		result.append(insteadOfTriggerSupported);
+		result.append(", rowTriggerReferenceSupported: "); //$NON-NLS-1$
+		result.append(rowTriggerReferenceSupported);
+		result.append(", tableTriggerReferenceSupported: "); //$NON-NLS-1$
+		result.append(tableTriggerReferenceSupported);
+		result.append(", maximumIdentifierLength: "); //$NON-NLS-1$
+		result.append(maximumIdentifierLength);
+		result.append(')');
+		return result.toString();
+	}
+
+} //TriggerDefinitionImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/UserDefinedTypeDefinitionImpl.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/UserDefinedTypeDefinitionImpl.java
new file mode 100644
index 0000000..da3c0cd
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/UserDefinedTypeDefinitionImpl.java
@@ -0,0 +1,325 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.dbdefinition.impl;
+
+import org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage;
+import org.eclipse.datatools.modelbase.dbdefinition.UserDefinedTypeDefinition;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>User Defined Type Definition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.UserDefinedTypeDefinitionImpl#isDefaultValueSupported <em>Default Value Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.UserDefinedTypeDefinitionImpl#isDistinctTypeSupported <em>Distinct Type Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.UserDefinedTypeDefinitionImpl#isStructuredTypeSupported <em>Structured Type Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.UserDefinedTypeDefinitionImpl#getMaximumIdentifierLength <em>Maximum Identifier Length</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class UserDefinedTypeDefinitionImpl extends EObjectImpl implements UserDefinedTypeDefinition {
+	/**
+	 * The default value of the '{@link #isDefaultValueSupported() <em>Default Value Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isDefaultValueSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean DEFAULT_VALUE_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isDefaultValueSupported() <em>Default Value Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isDefaultValueSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean defaultValueSupported = DEFAULT_VALUE_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isDistinctTypeSupported() <em>Distinct Type Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isDistinctTypeSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean DISTINCT_TYPE_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isDistinctTypeSupported() <em>Distinct Type Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isDistinctTypeSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean distinctTypeSupported = DISTINCT_TYPE_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isStructuredTypeSupported() <em>Structured Type Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isStructuredTypeSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean STRUCTURED_TYPE_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isStructuredTypeSupported() <em>Structured Type Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isStructuredTypeSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean structuredTypeSupported = STRUCTURED_TYPE_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMaximumIdentifierLength() <em>Maximum Identifier Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumIdentifierLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int MAXIMUM_IDENTIFIER_LENGTH_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getMaximumIdentifierLength() <em>Maximum Identifier Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumIdentifierLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected int maximumIdentifierLength = MAXIMUM_IDENTIFIER_LENGTH_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected UserDefinedTypeDefinitionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return DatabaseDefinitionPackage.Literals.USER_DEFINED_TYPE_DEFINITION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isDefaultValueSupported() {
+		return defaultValueSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDefaultValueSupported(boolean newDefaultValueSupported) {
+		boolean oldDefaultValueSupported = defaultValueSupported;
+		defaultValueSupported = newDefaultValueSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.USER_DEFINED_TYPE_DEFINITION__DEFAULT_VALUE_SUPPORTED, oldDefaultValueSupported, defaultValueSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isDistinctTypeSupported() {
+		return distinctTypeSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDistinctTypeSupported(boolean newDistinctTypeSupported) {
+		boolean oldDistinctTypeSupported = distinctTypeSupported;
+		distinctTypeSupported = newDistinctTypeSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.USER_DEFINED_TYPE_DEFINITION__DISTINCT_TYPE_SUPPORTED, oldDistinctTypeSupported, distinctTypeSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isStructuredTypeSupported() {
+		return structuredTypeSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setStructuredTypeSupported(boolean newStructuredTypeSupported) {
+		boolean oldStructuredTypeSupported = structuredTypeSupported;
+		structuredTypeSupported = newStructuredTypeSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.USER_DEFINED_TYPE_DEFINITION__STRUCTURED_TYPE_SUPPORTED, oldStructuredTypeSupported, structuredTypeSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getMaximumIdentifierLength() {
+		return maximumIdentifierLength;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMaximumIdentifierLength(int newMaximumIdentifierLength) {
+		int oldMaximumIdentifierLength = maximumIdentifierLength;
+		maximumIdentifierLength = newMaximumIdentifierLength;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.USER_DEFINED_TYPE_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH, oldMaximumIdentifierLength, maximumIdentifierLength));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.USER_DEFINED_TYPE_DEFINITION__DEFAULT_VALUE_SUPPORTED:
+				return isDefaultValueSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.USER_DEFINED_TYPE_DEFINITION__DISTINCT_TYPE_SUPPORTED:
+				return isDistinctTypeSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.USER_DEFINED_TYPE_DEFINITION__STRUCTURED_TYPE_SUPPORTED:
+				return isStructuredTypeSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.USER_DEFINED_TYPE_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH:
+				return new Integer(getMaximumIdentifierLength());
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.USER_DEFINED_TYPE_DEFINITION__DEFAULT_VALUE_SUPPORTED:
+				setDefaultValueSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.USER_DEFINED_TYPE_DEFINITION__DISTINCT_TYPE_SUPPORTED:
+				setDistinctTypeSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.USER_DEFINED_TYPE_DEFINITION__STRUCTURED_TYPE_SUPPORTED:
+				setStructuredTypeSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.USER_DEFINED_TYPE_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH:
+				setMaximumIdentifierLength(((Integer)newValue).intValue());
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.USER_DEFINED_TYPE_DEFINITION__DEFAULT_VALUE_SUPPORTED:
+				setDefaultValueSupported(DEFAULT_VALUE_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.USER_DEFINED_TYPE_DEFINITION__DISTINCT_TYPE_SUPPORTED:
+				setDistinctTypeSupported(DISTINCT_TYPE_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.USER_DEFINED_TYPE_DEFINITION__STRUCTURED_TYPE_SUPPORTED:
+				setStructuredTypeSupported(STRUCTURED_TYPE_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.USER_DEFINED_TYPE_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH:
+				setMaximumIdentifierLength(MAXIMUM_IDENTIFIER_LENGTH_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.USER_DEFINED_TYPE_DEFINITION__DEFAULT_VALUE_SUPPORTED:
+				return defaultValueSupported != DEFAULT_VALUE_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.USER_DEFINED_TYPE_DEFINITION__DISTINCT_TYPE_SUPPORTED:
+				return distinctTypeSupported != DISTINCT_TYPE_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.USER_DEFINED_TYPE_DEFINITION__STRUCTURED_TYPE_SUPPORTED:
+				return structuredTypeSupported != STRUCTURED_TYPE_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.USER_DEFINED_TYPE_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH:
+				return maximumIdentifierLength != MAXIMUM_IDENTIFIER_LENGTH_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (defaultValueSupported: "); //$NON-NLS-1$
+		result.append(defaultValueSupported);
+		result.append(", distinctTypeSupported: "); //$NON-NLS-1$
+		result.append(distinctTypeSupported);
+		result.append(", structuredTypeSupported: "); //$NON-NLS-1$
+		result.append(structuredTypeSupported);
+		result.append(", maximumIdentifierLength: "); //$NON-NLS-1$
+		result.append(maximumIdentifierLength);
+		result.append(')');
+		return result.toString();
+	}
+
+} //UserDefinedTypeDefinitionImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/ViewDefinitionImpl.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/ViewDefinitionImpl.java
new file mode 100644
index 0000000..aff2e67
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/impl/ViewDefinitionImpl.java
@@ -0,0 +1,324 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ViewDefinitionImpl.java,v 1.3 2007/11/01 23:08:39 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.dbdefinition.impl;
+
+import org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage;
+import org.eclipse.datatools.modelbase.dbdefinition.ViewDefinition;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>View Definition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.ViewDefinitionImpl#getMaximumIdentifierLength <em>Maximum Identifier Length</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.ViewDefinitionImpl#isIndexSupported <em>Index Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.ViewDefinitionImpl#isCheckOptionSupported <em>Check Option Supported</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.dbdefinition.impl.ViewDefinitionImpl#isCheckOptionLevelsSupported <em>Check Option Levels Supported</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ViewDefinitionImpl extends EObjectImpl implements ViewDefinition {
+	/**
+	 * The default value of the '{@link #getMaximumIdentifierLength() <em>Maximum Identifier Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumIdentifierLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int MAXIMUM_IDENTIFIER_LENGTH_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getMaximumIdentifierLength() <em>Maximum Identifier Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximumIdentifierLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected int maximumIdentifierLength = MAXIMUM_IDENTIFIER_LENGTH_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isIndexSupported() <em>Index Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isIndexSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean INDEX_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isIndexSupported() <em>Index Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isIndexSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean indexSupported = INDEX_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isCheckOptionSupported() <em>Check Option Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isCheckOptionSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean CHECK_OPTION_SUPPORTED_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isCheckOptionSupported() <em>Check Option Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isCheckOptionSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean checkOptionSupported = CHECK_OPTION_SUPPORTED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isCheckOptionLevelsSupported() <em>Check Option Levels Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isCheckOptionLevelsSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean CHECK_OPTION_LEVELS_SUPPORTED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isCheckOptionLevelsSupported() <em>Check Option Levels Supported</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isCheckOptionLevelsSupported()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean checkOptionLevelsSupported = CHECK_OPTION_LEVELS_SUPPORTED_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ViewDefinitionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return DatabaseDefinitionPackage.Literals.VIEW_DEFINITION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getMaximumIdentifierLength() {
+		return maximumIdentifierLength;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMaximumIdentifierLength(int newMaximumIdentifierLength) {
+		int oldMaximumIdentifierLength = maximumIdentifierLength;
+		maximumIdentifierLength = newMaximumIdentifierLength;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.VIEW_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH, oldMaximumIdentifierLength, maximumIdentifierLength));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isIndexSupported() {
+		return indexSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setIndexSupported(boolean newIndexSupported) {
+		boolean oldIndexSupported = indexSupported;
+		indexSupported = newIndexSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.VIEW_DEFINITION__INDEX_SUPPORTED, oldIndexSupported, indexSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isCheckOptionSupported() {
+		return checkOptionSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCheckOptionSupported(boolean newCheckOptionSupported) {
+		boolean oldCheckOptionSupported = checkOptionSupported;
+		checkOptionSupported = newCheckOptionSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.VIEW_DEFINITION__CHECK_OPTION_SUPPORTED, oldCheckOptionSupported, checkOptionSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isCheckOptionLevelsSupported() {
+		return checkOptionLevelsSupported;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCheckOptionLevelsSupported(boolean newCheckOptionLevelsSupported) {
+		boolean oldCheckOptionLevelsSupported = checkOptionLevelsSupported;
+		checkOptionLevelsSupported = newCheckOptionLevelsSupported;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DatabaseDefinitionPackage.VIEW_DEFINITION__CHECK_OPTION_LEVELS_SUPPORTED, oldCheckOptionLevelsSupported, checkOptionLevelsSupported));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.VIEW_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH:
+				return new Integer(getMaximumIdentifierLength());
+			case DatabaseDefinitionPackage.VIEW_DEFINITION__INDEX_SUPPORTED:
+				return isIndexSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.VIEW_DEFINITION__CHECK_OPTION_SUPPORTED:
+				return isCheckOptionSupported() ? Boolean.TRUE : Boolean.FALSE;
+			case DatabaseDefinitionPackage.VIEW_DEFINITION__CHECK_OPTION_LEVELS_SUPPORTED:
+				return isCheckOptionLevelsSupported() ? Boolean.TRUE : Boolean.FALSE;
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.VIEW_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH:
+				setMaximumIdentifierLength(((Integer)newValue).intValue());
+				return;
+			case DatabaseDefinitionPackage.VIEW_DEFINITION__INDEX_SUPPORTED:
+				setIndexSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.VIEW_DEFINITION__CHECK_OPTION_SUPPORTED:
+				setCheckOptionSupported(((Boolean)newValue).booleanValue());
+				return;
+			case DatabaseDefinitionPackage.VIEW_DEFINITION__CHECK_OPTION_LEVELS_SUPPORTED:
+				setCheckOptionLevelsSupported(((Boolean)newValue).booleanValue());
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.VIEW_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH:
+				setMaximumIdentifierLength(MAXIMUM_IDENTIFIER_LENGTH_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.VIEW_DEFINITION__INDEX_SUPPORTED:
+				setIndexSupported(INDEX_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.VIEW_DEFINITION__CHECK_OPTION_SUPPORTED:
+				setCheckOptionSupported(CHECK_OPTION_SUPPORTED_EDEFAULT);
+				return;
+			case DatabaseDefinitionPackage.VIEW_DEFINITION__CHECK_OPTION_LEVELS_SUPPORTED:
+				setCheckOptionLevelsSupported(CHECK_OPTION_LEVELS_SUPPORTED_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DatabaseDefinitionPackage.VIEW_DEFINITION__MAXIMUM_IDENTIFIER_LENGTH:
+				return maximumIdentifierLength != MAXIMUM_IDENTIFIER_LENGTH_EDEFAULT;
+			case DatabaseDefinitionPackage.VIEW_DEFINITION__INDEX_SUPPORTED:
+				return indexSupported != INDEX_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.VIEW_DEFINITION__CHECK_OPTION_SUPPORTED:
+				return checkOptionSupported != CHECK_OPTION_SUPPORTED_EDEFAULT;
+			case DatabaseDefinitionPackage.VIEW_DEFINITION__CHECK_OPTION_LEVELS_SUPPORTED:
+				return checkOptionLevelsSupported != CHECK_OPTION_LEVELS_SUPPORTED_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (maximumIdentifierLength: "); //$NON-NLS-1$
+		result.append(maximumIdentifierLength);
+		result.append(", indexSupported: "); //$NON-NLS-1$
+		result.append(indexSupported);
+		result.append(", checkOptionSupported: "); //$NON-NLS-1$
+		result.append(checkOptionSupported);
+		result.append(", checkOptionLevelsSupported: "); //$NON-NLS-1$
+		result.append(checkOptionLevelsSupported);
+		result.append(')');
+		return result.toString();
+	}
+
+} //ViewDefinitionImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/util/DatabaseDefinitionAdapterFactory.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/util/DatabaseDefinitionAdapterFactory.java
new file mode 100644
index 0000000..f9275e5
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/util/DatabaseDefinitionAdapterFactory.java
@@ -0,0 +1,480 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.dbdefinition.util;
+
+import org.eclipse.datatools.modelbase.dbdefinition.*;
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+import org.eclipse.emf.ecore.EObject;
+
+
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage
+ * @generated
+ */
+public class DatabaseDefinitionAdapterFactory extends AdapterFactoryImpl {
+	/**
+	 * The cached model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static DatabaseDefinitionPackage modelPackage;
+
+	/**
+	 * Creates an instance of the adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DatabaseDefinitionAdapterFactory() {
+		if (modelPackage == null) {
+			modelPackage = DatabaseDefinitionPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Returns whether this factory is applicable for the type of the object.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+	 * <!-- end-user-doc -->
+	 * @return whether this factory is applicable for the type of the object.
+	 * @generated
+	 */
+	public boolean isFactoryForType(Object object) {
+		if (object == modelPackage) {
+			return true;
+		}
+		if (object instanceof EObject) {
+			return ((EObject)object).eClass().getEPackage() == modelPackage;
+		}
+		return false;
+	}
+
+	/**
+	 * The switch that delegates to the <code>createXXX</code> methods.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DatabaseDefinitionSwitch modelSwitch =
+		new DatabaseDefinitionSwitch() {
+			public Object caseDatabaseVendorDefinition(DatabaseVendorDefinition object) {
+				return createDatabaseVendorDefinitionAdapter();
+			}
+			public Object casePredefinedDataTypeDefinition(PredefinedDataTypeDefinition object) {
+				return createPredefinedDataTypeDefinitionAdapter();
+			}
+			public Object caseTableSpaceDefinition(TableSpaceDefinition object) {
+				return createTableSpaceDefinitionAdapter();
+			}
+			public Object caseStoredProcedureDefinition(StoredProcedureDefinition object) {
+				return createStoredProcedureDefinitionAdapter();
+			}
+			public Object caseTriggerDefinition(TriggerDefinition object) {
+				return createTriggerDefinitionAdapter();
+			}
+			public Object caseColumnDefinition(ColumnDefinition object) {
+				return createColumnDefinitionAdapter();
+			}
+			public Object caseConstraintDefinition(ConstraintDefinition object) {
+				return createConstraintDefinitionAdapter();
+			}
+			public Object caseIndexDefinition(IndexDefinition object) {
+				return createIndexDefinitionAdapter();
+			}
+			public Object caseExtendedDefinition(ExtendedDefinition object) {
+				return createExtendedDefinitionAdapter();
+			}
+			public Object caseTableDefinition(TableDefinition object) {
+				return createTableDefinitionAdapter();
+			}
+			public Object caseSequenceDefinition(SequenceDefinition object) {
+				return createSequenceDefinitionAdapter();
+			}
+			public Object caseUserDefinedTypeDefinition(UserDefinedTypeDefinition object) {
+				return createUserDefinedTypeDefinitionAdapter();
+			}
+			public Object caseQueryDefinition(QueryDefinition object) {
+				return createQueryDefinitionAdapter();
+			}
+			public Object caseSQLSyntaxDefinition(SQLSyntaxDefinition object) {
+				return createSQLSyntaxDefinitionAdapter();
+			}
+			public Object caseNicknameDefinition(NicknameDefinition object) {
+				return createNicknameDefinitionAdapter();
+			}
+			public Object caseSchemaDefinition(SchemaDefinition object) {
+				return createSchemaDefinitionAdapter();
+			}
+			public Object caseViewDefinition(ViewDefinition object) {
+				return createViewDefinitionAdapter();
+			}
+			public Object caseFieldQualifierDefinition(FieldQualifierDefinition object) {
+				return createFieldQualifierDefinitionAdapter();
+			}
+			public Object caseDebuggerDefinition(DebuggerDefinition object) {
+				return createDebuggerDefinitionAdapter();
+			}
+			public Object casePrivilegedElementDefinition(PrivilegedElementDefinition object) {
+				return createPrivilegedElementDefinitionAdapter();
+			}
+			public Object casePrivilegeDefinition(PrivilegeDefinition object) {
+				return createPrivilegeDefinitionAdapter();
+			}
+			public Object caseConstructedDataTypeDefinition(ConstructedDataTypeDefinition object) {
+				return createConstructedDataTypeDefinitionAdapter();
+			}
+			public Object defaultCase(EObject object) {
+				return createEObjectAdapter();
+			}
+		};
+
+	/**
+	 * Creates an adapter for the <code>target</code>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param target the object to adapt.
+	 * @return the adapter for the <code>target</code>.
+	 * @generated
+	 */
+	public Adapter createAdapter(Notifier target) {
+		return (Adapter)modelSwitch.doSwitch((EObject)target);
+	}
+
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition <em>Database Vendor Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition
+	 * @generated
+	 */
+	public Adapter createDatabaseVendorDefinitionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition <em>Predefined Data Type Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition
+	 * @generated
+	 */
+	public Adapter createPredefinedDataTypeDefinitionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition <em>Table Space Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.TableSpaceDefinition
+	 * @generated
+	 */
+	public Adapter createTableSpaceDefinitionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition <em>Stored Procedure Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.StoredProcedureDefinition
+	 * @generated
+	 */
+	public Adapter createStoredProcedureDefinitionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition <em>Trigger Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.TriggerDefinition
+	 * @generated
+	 */
+	public Adapter createTriggerDefinitionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.dbdefinition.ColumnDefinition <em>Column Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ColumnDefinition
+	 * @generated
+	 */
+	public Adapter createColumnDefinitionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition <em>Constraint Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition
+	 * @generated
+	 */
+	public Adapter createConstraintDefinitionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.dbdefinition.IndexDefinition <em>Index Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.IndexDefinition
+	 * @generated
+	 */
+	public Adapter createIndexDefinitionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.dbdefinition.ExtendedDefinition <em>Extended Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ExtendedDefinition
+	 * @generated
+	 */
+	public Adapter createExtendedDefinitionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.dbdefinition.TableDefinition <em>Table Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.TableDefinition
+	 * @generated
+	 */
+	public Adapter createTableDefinitionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.dbdefinition.SequenceDefinition <em>Sequence Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.SequenceDefinition
+	 * @generated
+	 */
+	public Adapter createSequenceDefinitionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.dbdefinition.UserDefinedTypeDefinition <em>User Defined Type Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.UserDefinedTypeDefinition
+	 * @generated
+	 */
+	public Adapter createUserDefinedTypeDefinitionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.dbdefinition.QueryDefinition <em>Query Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.QueryDefinition
+	 * @generated
+	 */
+	public Adapter createQueryDefinitionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.dbdefinition.SQLSyntaxDefinition <em>SQL Syntax Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.SQLSyntaxDefinition
+	 * @generated
+	 */
+	public Adapter createSQLSyntaxDefinitionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.dbdefinition.NicknameDefinition <em>Nickname Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.NicknameDefinition
+	 * @generated
+	 */
+	public Adapter createNicknameDefinitionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.dbdefinition.SchemaDefinition <em>Schema Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.SchemaDefinition
+	 * @generated
+	 */
+	public Adapter createSchemaDefinitionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.dbdefinition.ViewDefinition <em>View Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ViewDefinition
+	 * @generated
+	 */
+	public Adapter createViewDefinitionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.dbdefinition.FieldQualifierDefinition <em>Field Qualifier Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.FieldQualifierDefinition
+	 * @generated
+	 */
+	public Adapter createFieldQualifierDefinitionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.dbdefinition.DebuggerDefinition <em>Debugger Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.DebuggerDefinition
+	 * @generated
+	 */
+	public Adapter createDebuggerDefinitionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.dbdefinition.PrivilegedElementDefinition <em>Privileged Element Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PrivilegedElementDefinition
+	 * @generated
+	 */
+	public Adapter createPrivilegedElementDefinitionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.dbdefinition.PrivilegeDefinition <em>Privilege Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.PrivilegeDefinition
+	 * @generated
+	 */
+	public Adapter createPrivilegeDefinitionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.dbdefinition.ConstructedDataTypeDefinition <em>Constructed Data Type Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.dbdefinition.ConstructedDataTypeDefinition
+	 * @generated
+	 */
+	public Adapter createConstructedDataTypeDefinitionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for the default case.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @generated
+	 */
+	public Adapter createEObjectAdapter() {
+		return null;
+	}
+
+} //DatabaseDefinitionAdapterFactory
diff --git a/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/util/DatabaseDefinitionSwitch.java b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/util/DatabaseDefinitionSwitch.java
new file mode 100644
index 0000000..dea006c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.dbdefinition/src/org/eclipse/datatools/modelbase/dbdefinition/util/DatabaseDefinitionSwitch.java
@@ -0,0 +1,576 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.dbdefinition.util;
+
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.dbdefinition.*;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+
+
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionPackage
+ * @generated
+ */
+public class DatabaseDefinitionSwitch {
+	/**
+	 * The cached model package
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static DatabaseDefinitionPackage modelPackage;
+
+	/**
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DatabaseDefinitionSwitch() {
+		if (modelPackage == null) {
+			modelPackage = DatabaseDefinitionPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	public Object doSwitch(EObject theEObject) {
+		return doSwitch(theEObject.eClass(), theEObject);
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	protected Object doSwitch(EClass theEClass, EObject theEObject) {
+		if (theEClass.eContainer() == modelPackage) {
+			return doSwitch(theEClass.getClassifierID(), theEObject);
+		}
+		else {
+			List eSuperTypes = theEClass.getESuperTypes();
+			return
+				eSuperTypes.isEmpty() ?
+					defaultCase(theEObject) :
+					doSwitch((EClass)eSuperTypes.get(0), theEObject);
+		}
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	protected Object doSwitch(int classifierID, EObject theEObject) {
+		switch (classifierID) {
+			case DatabaseDefinitionPackage.DATABASE_VENDOR_DEFINITION: {
+				DatabaseVendorDefinition databaseVendorDefinition = (DatabaseVendorDefinition)theEObject;
+				Object result = caseDatabaseVendorDefinition(databaseVendorDefinition);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DatabaseDefinitionPackage.PREDEFINED_DATA_TYPE_DEFINITION: {
+				PredefinedDataTypeDefinition predefinedDataTypeDefinition = (PredefinedDataTypeDefinition)theEObject;
+				Object result = casePredefinedDataTypeDefinition(predefinedDataTypeDefinition);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DatabaseDefinitionPackage.TABLE_SPACE_DEFINITION: {
+				TableSpaceDefinition tableSpaceDefinition = (TableSpaceDefinition)theEObject;
+				Object result = caseTableSpaceDefinition(tableSpaceDefinition);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DatabaseDefinitionPackage.STORED_PROCEDURE_DEFINITION: {
+				StoredProcedureDefinition storedProcedureDefinition = (StoredProcedureDefinition)theEObject;
+				Object result = caseStoredProcedureDefinition(storedProcedureDefinition);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DatabaseDefinitionPackage.TRIGGER_DEFINITION: {
+				TriggerDefinition triggerDefinition = (TriggerDefinition)theEObject;
+				Object result = caseTriggerDefinition(triggerDefinition);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DatabaseDefinitionPackage.COLUMN_DEFINITION: {
+				ColumnDefinition columnDefinition = (ColumnDefinition)theEObject;
+				Object result = caseColumnDefinition(columnDefinition);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DatabaseDefinitionPackage.CONSTRAINT_DEFINITION: {
+				ConstraintDefinition constraintDefinition = (ConstraintDefinition)theEObject;
+				Object result = caseConstraintDefinition(constraintDefinition);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DatabaseDefinitionPackage.INDEX_DEFINITION: {
+				IndexDefinition indexDefinition = (IndexDefinition)theEObject;
+				Object result = caseIndexDefinition(indexDefinition);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DatabaseDefinitionPackage.EXTENDED_DEFINITION: {
+				ExtendedDefinition extendedDefinition = (ExtendedDefinition)theEObject;
+				Object result = caseExtendedDefinition(extendedDefinition);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DatabaseDefinitionPackage.TABLE_DEFINITION: {
+				TableDefinition tableDefinition = (TableDefinition)theEObject;
+				Object result = caseTableDefinition(tableDefinition);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DatabaseDefinitionPackage.SEQUENCE_DEFINITION: {
+				SequenceDefinition sequenceDefinition = (SequenceDefinition)theEObject;
+				Object result = caseSequenceDefinition(sequenceDefinition);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DatabaseDefinitionPackage.USER_DEFINED_TYPE_DEFINITION: {
+				UserDefinedTypeDefinition userDefinedTypeDefinition = (UserDefinedTypeDefinition)theEObject;
+				Object result = caseUserDefinedTypeDefinition(userDefinedTypeDefinition);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DatabaseDefinitionPackage.QUERY_DEFINITION: {
+				QueryDefinition queryDefinition = (QueryDefinition)theEObject;
+				Object result = caseQueryDefinition(queryDefinition);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DatabaseDefinitionPackage.SQL_SYNTAX_DEFINITION: {
+				SQLSyntaxDefinition sqlSyntaxDefinition = (SQLSyntaxDefinition)theEObject;
+				Object result = caseSQLSyntaxDefinition(sqlSyntaxDefinition);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DatabaseDefinitionPackage.NICKNAME_DEFINITION: {
+				NicknameDefinition nicknameDefinition = (NicknameDefinition)theEObject;
+				Object result = caseNicknameDefinition(nicknameDefinition);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DatabaseDefinitionPackage.SCHEMA_DEFINITION: {
+				SchemaDefinition schemaDefinition = (SchemaDefinition)theEObject;
+				Object result = caseSchemaDefinition(schemaDefinition);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DatabaseDefinitionPackage.VIEW_DEFINITION: {
+				ViewDefinition viewDefinition = (ViewDefinition)theEObject;
+				Object result = caseViewDefinition(viewDefinition);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DatabaseDefinitionPackage.FIELD_QUALIFIER_DEFINITION: {
+				FieldQualifierDefinition fieldQualifierDefinition = (FieldQualifierDefinition)theEObject;
+				Object result = caseFieldQualifierDefinition(fieldQualifierDefinition);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DatabaseDefinitionPackage.DEBUGGER_DEFINITION: {
+				DebuggerDefinition debuggerDefinition = (DebuggerDefinition)theEObject;
+				Object result = caseDebuggerDefinition(debuggerDefinition);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DatabaseDefinitionPackage.PRIVILEGED_ELEMENT_DEFINITION: {
+				PrivilegedElementDefinition privilegedElementDefinition = (PrivilegedElementDefinition)theEObject;
+				Object result = casePrivilegedElementDefinition(privilegedElementDefinition);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DatabaseDefinitionPackage.PRIVILEGE_DEFINITION: {
+				PrivilegeDefinition privilegeDefinition = (PrivilegeDefinition)theEObject;
+				Object result = casePrivilegeDefinition(privilegeDefinition);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DatabaseDefinitionPackage.CONSTRUCTED_DATA_TYPE_DEFINITION: {
+				ConstructedDataTypeDefinition constructedDataTypeDefinition = (ConstructedDataTypeDefinition)theEObject;
+				Object result = caseConstructedDataTypeDefinition(constructedDataTypeDefinition);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			default: return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Database Vendor Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Database Vendor Definition</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseDatabaseVendorDefinition(DatabaseVendorDefinition object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Predefined Data Type Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Predefined Data Type Definition</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object casePredefinedDataTypeDefinition(PredefinedDataTypeDefinition object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Table Space Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Table Space Definition</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseTableSpaceDefinition(TableSpaceDefinition object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Stored Procedure Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Stored Procedure Definition</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseStoredProcedureDefinition(StoredProcedureDefinition object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Trigger Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Trigger Definition</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseTriggerDefinition(TriggerDefinition object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Column Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Column Definition</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseColumnDefinition(ColumnDefinition object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Constraint Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Constraint Definition</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseConstraintDefinition(ConstraintDefinition object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Index Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Index Definition</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseIndexDefinition(IndexDefinition object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Extended Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Extended Definition</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseExtendedDefinition(ExtendedDefinition object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Table Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Table Definition</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseTableDefinition(TableDefinition object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Sequence Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Sequence Definition</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseSequenceDefinition(SequenceDefinition object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>User Defined Type Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>User Defined Type Definition</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseUserDefinedTypeDefinition(UserDefinedTypeDefinition object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Query Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Query Definition</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseQueryDefinition(QueryDefinition object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>SQL Syntax Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>SQL Syntax Definition</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseSQLSyntaxDefinition(SQLSyntaxDefinition object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Nickname Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Nickname Definition</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseNicknameDefinition(NicknameDefinition object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Schema Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Schema Definition</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseSchemaDefinition(SchemaDefinition object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>View Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>View Definition</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseViewDefinition(ViewDefinition object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Field Qualifier Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Field Qualifier Definition</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseFieldQualifierDefinition(FieldQualifierDefinition object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Debugger Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Debugger Definition</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseDebuggerDefinition(DebuggerDefinition object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Privileged Element Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Privileged Element Definition</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object casePrivilegedElementDefinition(PrivilegedElementDefinition object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Privilege Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Privilege Definition</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object casePrivilegeDefinition(PrivilegeDefinition object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Constructed Data Type Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Constructed Data Type Definition</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseConstructedDataTypeDefinition(ConstructedDataTypeDefinition object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch, but this is the last case anyway.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+	 * @generated
+	 */
+	public Object defaultCase(EObject object) {
+		return null;
+	}
+
+} //DatabaseDefinitionSwitch
diff --git a/plugins/org.eclipse.datatools.modelbase.derby/.classpath b/plugins/org.eclipse.datatools.modelbase.derby/.classpath
new file mode 100644
index 0000000..64c5e31
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.derby/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/org.eclipse.datatools.modelbase.derby/.gitignore b/plugins/org.eclipse.datatools.modelbase.derby/.gitignore
new file mode 100644
index 0000000..ba077a4
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.derby/.gitignore
@@ -0,0 +1 @@
+bin
diff --git a/plugins/org.eclipse.datatools.modelbase.derby/.project b/plugins/org.eclipse.datatools.modelbase.derby/.project
new file mode 100644
index 0000000..8741311
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.derby/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.datatools.modelbase.derby</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.datatools.modelbase.derby/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.datatools.modelbase.derby/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..9689f15
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.derby/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+#Tue Feb 17 15:36:51 PST 2009
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
diff --git a/plugins/org.eclipse.datatools.modelbase.derby/META-INF/MANIFEST.MF b/plugins/org.eclipse.datatools.modelbase.derby/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..80de6b3
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.derby/META-INF/MANIFEST.MF
@@ -0,0 +1,15 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.datatools.modelbase.derby; singleton:=true
+Bundle-Version: 1.2.1.qualifier
+Bundle-Localization: plugin
+Require-Bundle: org.eclipse.datatools.modelbase.sql
+Eclipse-LazyStart: true
+Bundle-ActivationPolicy: lazy
+Export-Package: org.eclipse.datatools.modelbase.derby,
+ org.eclipse.datatools.modelbase.derby.impl,
+ org.eclipse.datatools.modelbase.derby.util
+Bundle-Vendor: %providerName
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+
diff --git a/plugins/org.eclipse.datatools.modelbase.derby/about.html b/plugins/org.eclipse.datatools.modelbase.derby/about.html
new file mode 100644
index 0000000..129db9d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.derby/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 15, 2009</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.datatools.modelbase.derby/build.properties b/plugins/org.eclipse.datatools.modelbase.derby/build.properties
new file mode 100644
index 0000000..d123b87
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.derby/build.properties
@@ -0,0 +1,25 @@
+###############################################################################
+# Copyright (c) 2001, 2004 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+# 
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               plugin.xml,\
+               plugin.properties,\
+               about.html
+               
+src.dir = src/
+plugin.version = 1.0.0.200706071
+javadoc.dir = doc/api/
+download.dir = ./download/
+javac.source = 1.4
+javac.target = 1.4
+src.includes = about.html
diff --git a/plugins/org.eclipse.datatools.modelbase.derby/build.xml b/plugins/org.eclipse.datatools.modelbase.derby/build.xml
new file mode 100644
index 0000000..ce87471
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.derby/build.xml
@@ -0,0 +1,162 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.eclipse.datatools.connectivity.db.model.derby" default="build.jars" basedir=".">
+
+	<property name="basews" value="${ws}"/>
+	<property name="baseos" value="${os}"/>
+	<property name="basearch" value="${arch}"/>
+	<property name="basenl" value="${nl}"/>
+
+	<!-- Compiler settings. -->
+	<property name="javacFailOnError" value="false"/>
+	<property name="javacDebugInfo" value="on"/>
+	<property name="javacVerbose" value="true"/>
+	<property name="javacSource" value="1.3"/>
+	<property name="javacTarget" value="1.2"/>
+	<property name="compilerArg" value=""/>
+	<path id="path_bootclasspath">
+		<fileset dir="${java.home}/lib">
+			<include name="*.jar"/>
+		</fileset>
+	</path>
+	<property name="bootclasspath" refid="path_bootclasspath"/>
+
+	<target name="init" depends="properties">
+		<condition property="pluginTemp" value="${buildTempFolder}/plugins">
+			<isset property="buildTempFolder"/>
+		</condition>
+		<property name="pluginTemp" value="${basedir}"/>
+		<condition property="build.result.folder" value="${pluginTemp}/org.eclipse.datatools.modelbase.derby">
+			<isset property="buildTempFolder"/>
+		</condition>
+		<property name="build.result.folder" value="${basedir}"/>
+		<property name="temp.folder" value="${basedir}/temp.folder"/>
+		<property name="plugin.destination" value="${basedir}"/>
+	</target>
+
+	<target name="properties" if="eclipse.running">
+		<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
+
+	</target>
+
+	<target name="build.update.jar" depends="init" description="Build the plug-in: org.eclipse.datatools.connectivity.db.model.derby for an update site.">
+		<delete dir="${temp.folder}"/>
+		<mkdir dir="${temp.folder}"/>
+		<antcall target="build.jars"/>
+		<antcall target="gather.bin.parts">
+			<param name="destination.temp.folder" value="${temp.folder}/"/>
+		</antcall>
+		<zip destfile="${plugin.destination}/org.eclipse.datatools.connectivity.db.model.derby_1.0.0.jar" basedir="${temp.folder}/org.eclipse.datatools.connectivity.db.model.derby_1.0.0" filesonly="false" whenempty="skip" update="false"/>
+		<delete dir="${temp.folder}"/>
+	</target>
+
+	<target name="@dot" depends="init" unless="@dot" description="Create jar: org.eclipse.datatools.connectivity.db.model.derby @dot.">
+		<delete dir="${temp.folder}/@dot.bin"/>
+		<mkdir dir="${temp.folder}/@dot.bin"/>
+		<!-- compile the source code -->
+		<javac destdir="${temp.folder}/@dot.bin" failonerror="${javacFailOnError}" verbose="${javacVerbose}" debug="${javacDebugInfo}" includeAntRuntime="no" bootclasspath="${bootclasspath}" source="${javacSource}" target="${javacTarget}"		>
+			<compilerarg line="${compilerArg}"/>
+			<classpath>
+				<pathelement path="..\..\eclipse\plugins\org.eclipse.core.runtime_3.1.2.jar"/>
+				<pathelement path="..\..\eclipse\plugins\org.eclipse.osgi_3.1.2.jar"/>
+				<pathelement path="../org.eclipse.datatools.modelbase.sql/bin/"/>
+				<pathelement path="../org.eclipse.datatools.modelbase.sql/sqlmodel.jar"/>
+				<pathelement path="../org.eclipse.emf.ecore/org.eclipse.emf.ecore_2.1.0.jar"/>
+				<pathelement path="../org.eclipse.emf.ecore/@dot"/>
+				<pathelement path="..\..\eclipse\plugins\org.eclipse.emf.common_2.1.0.jar"/>
+				<pathelement path="..\..\eclipse\plugins\org.eclipse.core.resources_3.1.2.jar"/>
+				<pathelement path="..\..\eclipse\plugins\org.eclipse.core.resources.compatibility_3.1.0.jar"/>
+				<pathelement path="..\..\eclipse\plugins\org.eclipse.core.resources.win32_3.1.0.jar"/>
+				<pathelement path="..\..\eclipse\plugins\org.eclipse.core.runtime.compatibility_3.1.0.jar"/>
+				<pathelement path="..\..\eclipse\plugins\org.eclipse.update.configurator_3.1.0.jar"/>
+				<pathelement path="..\..\eclipse\plugins\org.eclipse.ant.core_3.1.1.jar"/>
+				<pathelement path="..\..\eclipse\plugins\org.eclipse.core.variables_3.1.0.jar"/>
+				<pathelement path="..\..\eclipse\plugins\org.eclipse.emf.ecore.sdo_2.1.1.jar"/>
+				<pathelement path="..\..\eclipse\plugins\org.eclipse.emf.commonj.sdo_2.1.0.jar"/>
+				<pathelement path="..\..\eclipse\plugins\org.eclipse.emf.ecore.xmi_2.1.0.jar"/>
+				<pathelement path="..\..\eclipse\plugins\org.eclipse.emf.ecore.change_2.1.2.jar"/>
+			</classpath>
+			<src path="src/"			/>
+			</javac>
+		<!-- Copy necessary resources -->
+		<copy todir="${temp.folder}/@dot.bin" failonerror="true" overwrite="false">
+			<fileset dir="src/" excludes="**/*.java, **/package.htm*,null"			/>
+		</copy>
+		<mkdir dir="${build.result.folder}"/>
+		<copy todir="${build.result.folder}/@dot" failonerror="true" overwrite="false">
+			<fileset dir="${temp.folder}/@dot.bin"			/>
+		</copy>
+		<delete dir="${temp.folder}/@dot.bin"/>
+	</target>
+
+	<target name="src.zip" depends="init" unless="src.zip">
+		<mkdir dir="${build.result.folder}"/>
+		<zip destfile="${build.result.folder}/src.zip" filesonly="false" whenempty="skip" update="false">
+			<fileset dir="src/" includes="**/*.java"			/>
+		</zip>
+	</target>
+
+	<target name="build.jars" depends="init" description="Build all the jars for the plug-in: org.eclipse.datatools.connectivity.db.model.derby.">
+		<available property="@dot" file="${build.result.folder}/@dot"/>
+		<antcall target="@dot"/>
+	</target>
+
+	<target name="build.sources" depends="init">
+		<available property="src.zip" file="${build.result.folder}/src.zip"/>
+		<antcall target="src.zip"/>
+	</target>
+
+	<target name="gather.bin.parts" depends="init" if="destination.temp.folder">
+		<mkdir dir="${destination.temp.folder}/org.eclipse.datatools.connectivity.db.model.derby_1.0.0"/>
+		<copy todir="${destination.temp.folder}/org.eclipse.datatools.connectivity.db.model.derby_1.0.0" failonerror="true" overwrite="false">
+			<fileset dir="${build.result.folder}/@dot" includes="**"			/>
+		</copy>
+		<copy todir="${destination.temp.folder}/org.eclipse.datatools.connectivity.db.model.derby_1.0.0" failonerror="true" overwrite="false">
+			<fileset dir="${basedir}" includes="null,model/,META-INF/,about.html,plugin.xml,plugin.properties"			/>
+		</copy>
+	</target>
+
+	<target name="build.zips" depends="init">
+	</target>
+
+	<target name="gather.sources" depends="init" if="destination.temp.folder">
+		<mkdir dir="${destination.temp.folder}/org.eclipse.datatools.connectivity.db.model.derby_1.0.0"/>
+		<copy file="${build.result.folder}/src.zip" todir="${destination.temp.folder}/org.eclipse.datatools.connectivity.db.model.derby_1.0.0" failonerror="false" overwrite="false"/>
+	</target>
+
+	<target name="gather.logs" depends="init" if="destination.temp.folder">
+		<mkdir dir="${destination.temp.folder}/org.eclipse.datatools.connectivity.db.model.derby_1.0.0"/>
+		<copy file="${temp.folder}/@dot.bin.log" todir="${destination.temp.folder}/org.eclipse.datatools.connectivity.db.model.derby_1.0.0" failonerror="false" overwrite="false"/>
+	</target>
+
+	<target name="clean" depends="init" description="Clean the plug-in: org.eclipse.datatools.connectivity.db.model.derby of all the zips, jars and logs created.">
+		<delete dir="${build.result.folder}/@dot"/>
+		<delete file="${build.result.folder}/src.zip"/>
+		<delete file="${plugin.destination}/org.eclipse.datatools.connectivity.db.model.derby_1.0.0.jar"/>
+		<delete file="${plugin.destination}/org.eclipse.datatools.connectivity.db.model.derby_1.0.0.zip"/>
+		<delete dir="${temp.folder}"/>
+	</target>
+
+	<target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+		<eclipse.convertPath fileSystemPath="C:/eclipse3.1.2/workspace/org.eclipse.datatools.modelbase.derby" property="resourcePath"/>
+		<eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+	</target>
+
+	<target name="zip.plugin" depends="init" description="Create a zip containing all the elements for the plug-in: org.eclipse.datatools.connectivity.db.model.derby.">
+		<delete dir="${temp.folder}"/>
+		<mkdir dir="${temp.folder}"/>
+		<antcall target="build.jars"/>
+		<antcall target="build.sources"/>
+		<antcall target="gather.bin.parts">
+			<param name="destination.temp.folder" value="${temp.folder}/"/>
+		</antcall>
+		<antcall target="gather.sources">
+			<param name="destination.temp.folder" value="${temp.folder}/"/>
+		</antcall>
+		<delete>
+			<fileset dir="${temp.folder}" includes="**/*.bin.log"			/>
+		</delete>
+		<zip destfile="${plugin.destination}/org.eclipse.datatools.connectivity.db.model.derby_1.0.0.zip" basedir="${temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+		<delete dir="${temp.folder}"/>
+	</target>
+
+</project>
diff --git a/plugins/org.eclipse.datatools.modelbase.derby/model/derby.cat b/plugins/org.eclipse.datatools.modelbase.derby/model/derby.cat
new file mode 100644
index 0000000..a512147
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.derby/model/derby.cat
@@ -0,0 +1,446 @@
+

+(object Petal

+    version    	47

+    _written   	"Rose 8.0.0303.1400"

+    charSet    	0)

+

+(object Class_Category "derby"

+    is_unit    	TRUE

+    is_loaded  	TRUE

+    attributes 	(list Attribute_Set

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"packageName"

+	    value      	(value Text "derby"))

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"nsPrefix"

+	    value      	(value Text "DerbyModel"))

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"nsURI"

+	    value      	(value Text "http:///org/eclipse/datatools/modelbase/derby/derby.ecore"))

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"basePackage"

+	    value      	(value Text "org.eclipse.datatools.modelbase"))

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"prefix"

+	    value      	(value Text "DerbyModel")))

+    quid       	"430FB3680175"

+    visible_categories 	(list visibility_relationship_list

+	(object Visibility_Relationship

+	    quid       	"461538850365"

+	    supplier   	"Logical View::SQLModel"

+	    quidu      	"3E9B1F8201C1"))

+    exportControl 	"Public"

+    logical_models 	(list unit_reference_list

+	(object Class "Synonym"

+	    quid       	"430FB4900025"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"430FB4D302AE"

+		    supplier   	"Logical View::SQLModel::Schema::SQLObject"

+		    quidu      	"3E9B3EB5002B")

+		(object Inheritance_Relationship

+		    quid       	"430FC70B03C8"

+		    supplier   	"Logical View::SQLModel::Tables::Table"

+		    quidu      	"3E9B1FB60047")))

+	(object Class "DerbySchema"

+	    quid       	"464DEFF801D4"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"464DF0120326"

+		    supplier   	"Logical View::SQLModel::Schema::Schema"

+		    quidu      	"3ED523C20089")))

+	(object Association "$UNNAMED$0"

+	    quid       	"430FB4A60302"

+	    roles      	(list role_list

+		(object Role "$UNNAMED$1"

+		    quid       	"430FB4AA01BE"

+		    supplier   	"Logical View::SQLModel::Tables::Table"

+		    quidu      	"3E9B1FB60047"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$2"

+		    quid       	"430FB4AA01C8"

+		    supplier   	"Logical View::derby::Synonym"

+		    quidu      	"430FB4900025"

+		    client_cardinality 	(value cardinality "0..n")))))

+    logical_presentations 	(list unit_reference_list

+	(object ClassDiagram "Eclipseworld"

+	    quid       	"430FB443007C"

+	    title      	"Eclipseworld"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	0

+	    origin_y   	0

+	    items      	(list diagram_item_list

+		(object ClassView "Class" "Logical View::derby::Synonym" @1

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1529, 1080)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@1

+			location   	(1409, 1029)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	240

+			justify    	0

+			label      	"Synonym")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"430FB4900025"

+		    width      	258

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Tables::Table" @2

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1498, 458)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@2

+			location   	(1386, 383)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	224

+			justify    	0

+			label      	"Table")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3E9B1FB60047"

+		    width      	242

+		    height     	174

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$0" @3

+		    location   	(1845, 758)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"430FB4A60302"

+		    roleview_list 	(list RoleViews

+			(object RoleView "$UNNAMED$1" @4

+			    Parent_View 	@3

+			    location   	(1467, 30)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"430FB4AA01BE"

+			    client     	@3

+			    supplier   	@2

+			    vertices   	(list Points

+				(1845, 758)

+				(1845, 468)

+				(1619, 468))

+			    line_style 	3

+			    origin_attachment 	(1845, 758)

+			    terminal_attachment 	(1619, 468)

+			    label      	(object SegLabel @5

+				Parent_View 	@4

+				location   	(1671, 415)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.900000

+				height     	54

+				orientation 	1))

+			(object RoleView "$UNNAMED$2" @6

+			    Parent_View 	@3

+			    location   	(1467, 30)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"430FB4AA01C8"

+			    client     	@3

+			    supplier   	@1

+			    vertices   	(list Points

+				(1845, 758)

+				(1845, 1086)

+				(1658, 1086))

+			    line_style 	3

+			    origin_attachment 	(1845, 758)

+			    terminal_attachment 	(1658, 1086)

+			    label      	(object SegLabel @7

+				Parent_View 	@6

+				location   	(1710, 1140)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.900000

+				height     	54

+				orientation 	0))))

+		(object InheritView "" @8

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"430FC70B03C8"

+		    client     	@1

+		    supplier   	@2

+		    line_style 	3

+		    origin_attachment 	(1526, 1017)

+		    terminal_attachment 	(1526, 545))

+		(object ClassView "Class" "Logical View::SQLModel::Schema::Schema" @9

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(500, 461)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@9

+			location   	(371, 387)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	258

+			justify    	0

+			label      	"Schema")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3ED523C20089"

+		    width      	276

+		    height     	172

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "" @10

+		    location   	(1007, 459)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3F4BB65C00FC"

+		    roleview_list 	(list RoleViews

+			(object RoleView "schema" @11

+			    Parent_View 	@10

+			    location   	(435, 225)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @12

+				Parent_View 	@11

+				location   	(713, 502)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	160

+				justify    	0

+				label      	"-schema"

+				pctDist    	0.800000

+				height     	42

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F4BB65D0099"

+			    client     	@10

+			    supplier   	@9

+			    line_style 	0

+			    label      	(object SegLabel @13

+				Parent_View 	@11

+				location   	(675, 407)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.900000

+				height     	54

+				orientation 	1))

+			(object RoleView "tables" @14

+			    Parent_View 	@10

+			    location   	(435, 225)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @15

+				Parent_View 	@14

+				location   	(1301, 500)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	122

+				justify    	0

+				label      	"-tables"

+				pctDist    	0.800000

+				height     	42

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F4BB65D0085"

+			    client     	@10

+			    supplier   	@2

+			    line_style 	0

+			    label      	(object SegLabel @16

+				Parent_View 	@14

+				location   	(1339, 405)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.900000

+				height     	54

+				orientation 	0))))

+		(object ClassView "Class" "Logical View::derby::DerbySchema" @17

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(500, 1068)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@17

+			location   	(333, 1017)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	334

+			justify    	0

+			label      	"DerbySchema")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"464DEFF801D4"

+		    width      	352

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @18

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"464DF0120326"

+		    client     	@17

+		    supplier   	@9

+		    line_style 	0)))))

diff --git a/plugins/org.eclipse.datatools.modelbase.derby/model/derby.ecore b/plugins/org.eclipse.datatools.modelbase.derby/model/derby.ecore
new file mode 100644
index 0000000..bad1063
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.derby/model/derby.ecore
@@ -0,0 +1,10 @@
+<?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="derby"
+    nsURI="http:///org/eclipse/datatools/modelbase/derby/derby.ecore" nsPrefix="DerbyModel">
+  <eClassifiers xsi:type="ecore:EClass" name="Synonym" eSuperTypes="../../org.eclipse.datatools.modelbase.sql/model/sqlmodel.ecore#//tables/Table ../../org.eclipse.datatools.modelbase.sql/model/sqlmodel.ecore#//schema/SQLObject">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="Table" lowerBound="1" eType="ecore:EClass ../../org.eclipse.datatools.modelbase.sql/model/sqlmodel.ecore#//tables/Table"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="DerbySchema" eSuperTypes="../../org.eclipse.datatools.modelbase.sql/model/sqlmodel.ecore#//schema/Schema"/>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.datatools.modelbase.derby/model/derby.genmodel b/plugins/org.eclipse.datatools.modelbase.derby/model/derby.genmodel
new file mode 100644
index 0000000..60a096e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.derby/model/derby.genmodel
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0"
+    xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+    xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.datatools.modelbase.derby/src"
+    modelPluginID="org.eclipse.datatools.modelbase.derby" modelName="Derby" importerID="org.eclipse.emf.importer.rose"
+    usedGenPackages="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore ../../org.eclipse.datatools.modelbase.sql/model/sqlmodel.genmodel#//sqlmodel">
+  <foreignModel>derby.mdl</foreignModel>
+  <foreignModel>CDM_EXTRACT_PATH</foreignModel>
+  <foreignModel>../..</foreignModel>
+  <genPackages prefix="DerbyModel" basePackage="org.eclipse.datatools.modelbase" disposableProviderFactory="true"
+      ecorePackage="derby.ecore#/">
+    <genClasses ecoreClass="derby.ecore#//Synonym">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference derby.ecore#//Synonym/Table"/>
+    </genClasses>
+    <genClasses ecoreClass="derby.ecore#//DerbySchema"/>
+  </genPackages>
+</genmodel:GenModel>
diff --git a/plugins/org.eclipse.datatools.modelbase.derby/model/derby.mdl b/plugins/org.eclipse.datatools.modelbase.derby/model/derby.mdl
new file mode 100644
index 0000000..fb22d99
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.derby/model/derby.mdl
@@ -0,0 +1,4337 @@
+

+(object Petal

+    version    	47

+    _written   	"Rose 8.0.0303.1400"

+    charSet    	0)

+

+(object Design "Logical View"

+    is_unit    	TRUE

+    is_loaded  	TRUE

+    attributes 	(list Attribute_Set

+	(object Attribute

+	    tool       	"Java"

+	    name       	"IDE"

+	    value      	"Internal Editor")

+	(object Attribute

+	    tool       	"Java"

+	    name       	"UserDefineTagName1"

+	    value      	"")

+	(object Attribute

+	    tool       	"Java"

+	    name       	"UserDefineTagText1"

+	    value      	"")

+	(object Attribute

+	    tool       	"Java"

+	    name       	"UserDefineTagApply1"

+	    value      	"")

+	(object Attribute

+	    tool       	"Java"

+	    name       	"UserDefineTagName2"

+	    value      	"")

+	(object Attribute

+	    tool       	"Java"

+	    name       	"UserDefineTagText2"

+	    value      	"")

+	(object Attribute

+	    tool       	"Java"

+	    name       	"UserDefineTagApply2"

+	    value      	"")

+	(object Attribute

+	    tool       	"Java"

+	    name       	"UserDefineTagName3"

+	    value      	"")

+	(object Attribute

+	    tool       	"Java"

+	    name       	"UserDefineTagText3"

+	    value      	"")

+	(object Attribute

+	    tool       	"Java"

+	    name       	"UserDefineTagApply3"

+	    value      	""))

+    quid       	"430FB3440371"

+    defaults   	(object defaults

+	rightMargin 	0.250000

+	leftMargin 	0.250000

+	topMargin  	0.250000

+	bottomMargin 	0.500000

+	pageOverlap 	0.250000

+	clipIconLabels 	TRUE

+	autoResize 	TRUE

+	snapToGrid 	FALSE

+	gridX      	0

+	gridY      	0

+	defaultFont 	(object Font

+	    size       	10

+	    face       	"Arial"

+	    bold       	FALSE

+	    italics    	FALSE

+	    underline  	FALSE

+	    strike     	FALSE

+	    color      	0

+	    default_color 	TRUE)

+	showMessageNum 	3

+	showClassOfObject 	TRUE

+	notation   	"Unified")

+    root_usecase_package 	(object Class_Category "Use Case View"

+	quid       	"430FB3440373"

+	exportControl 	"Public"

+	global     	TRUE

+	logical_models 	(list unit_reference_list)

+	logical_presentations 	(list unit_reference_list

+	    (object UseCaseDiagram "Main"

+		quid       	"430FB34D037F"

+		title      	"Main"

+		zoom       	100

+		max_height 	28350

+		max_width  	21600

+		origin_x   	0

+		origin_y   	0

+		items      	(list diagram_item_list))))

+    root_category 	(object Class_Category "Logical View"

+	quid       	"430FB3440372"

+	exportControl 	"Public"

+	global     	TRUE

+	subsystem  	"Component View"

+	quidu      	"430FB3440374"

+	logical_models 	(list unit_reference_list

+	    (object Class_Category "derby"

+		is_unit    	TRUE

+		is_loaded  	FALSE

+		file_name  	"$CDM_EXTRACT_PATH\\org.eclipse.datatools.modelbase.derby\\model\\derby.cat"

+		quid       	"430FB3680175")

+	    (object Class_Category "ecore"

+		is_unit    	TRUE

+		is_loaded  	FALSE

+		file_name  	"$CDM_EXTRACT_PATH\\org.eclipse.emf.ecore\\model\\org.eclipse.emf.Ecore.cat"

+		quid       	"39A5ED04004E")

+	    (object Class_Category "SQLModel"

+		is_unit    	TRUE

+		is_loaded  	FALSE

+		file_name  	"$CDM_EXTRACT_PATH\\org.eclipse.datatools.modelbase.sql\\model\\SQLModel.cat"

+		quid       	"3E9B1F8201C1"))

+	logical_presentations 	(list unit_reference_list

+	    (object ClassDiagram "Main"

+		quid       	"430FB34D0380"

+		title      	"Main"

+		zoom       	100

+		max_height 	28350

+		max_width  	21600

+		origin_x   	0

+		origin_y   	0

+		items      	(list diagram_item_list

+		    (object CategoryView "Logical View::ecore" @1

+			location   	(1035, 359)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@1

+			    location   	(891, 275)

+			    fill_color 	13434879

+			    nlines     	2

+			    max_width  	288

+			    justify    	0

+			    label      	"ecore")

+			icon_style 	"Icon"

+			line_color 	3342489

+			fill_color 	13434879

+			quidu      	"39A5ED04004E"

+			width      	300

+			height     	180)

+		    (object CategoryView "Logical View::SQLModel" @2

+			location   	(1035, 359)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@2

+			    location   	(891, 275)

+			    fill_color 	13434879

+			    nlines     	2

+			    max_width  	288

+			    justify    	0

+			    label      	"SQLModel")

+			icon_style 	"Icon"

+			line_color 	3342489

+			fill_color 	13434879

+			quidu      	"3E9B1F8201C1"

+			width      	300

+			height     	180)

+		    (object CategoryView "Logical View::derby" @3

+			location   	(1028, 981)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@3

+			    location   	(884, 897)

+			    fill_color 	13434879

+			    nlines     	2

+			    max_width  	288

+			    justify    	0

+			    label      	"derby")

+			icon_style 	"Icon"

+			line_color 	3342489

+			fill_color 	13434879

+			quidu      	"430FB3680175"

+			width      	300

+			height     	180)

+		    (object ImportView "" @4

+			stereotype 	TRUE

+			line_color 	3342489

+			quidu      	"461538850365"

+			client     	@3

+			supplier   	@2

+			line_style 	0)))))

+    root_subsystem 	(object SubSystem "Component View"

+	quid       	"430FB3440374"

+	physical_models 	(list unit_reference_list)

+	physical_presentations 	(list unit_reference_list

+	    (object Module_Diagram "Main"

+		quid       	"430FB34D037E"

+		title      	"Main"

+		zoom       	100

+		max_height 	28350

+		max_width  	21600

+		origin_x   	0

+		origin_y   	0

+		items      	(list diagram_item_list))))

+    process_structure 	(object Processes

+	quid       	"461537C000D1"

+	ProcsNDevs 	(list

+	    (object Process_Diagram "Deployment View"

+		quid       	"461537C000D3"

+		title      	"Deployment View"

+		zoom       	100

+		max_height 	28350

+		max_width  	21600

+		origin_x   	0

+		origin_y   	0

+		items      	(list diagram_item_list))))

+    properties 	(object Properties

+	attributes 	(list Attribute_Set

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"propertyId"

+		value      	"809135966")

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"default__Role"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"Synchronize"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"InitialValue"

+			value      	"")))

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"default__Inherit"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"Synchronize"

+			value      	TRUE)))

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"default__Module-Spec"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"Synchronize"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"RevEngRootDirectory"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"RootPackage"

+			value      	"C++ Reverse Engineered")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"RevEngDirectoriesAsPackages"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"HeaderFileExtension"

+			value      	".h")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"ImplementationFileExtension"

+			value      	".cpp")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"NewHeaderFileDirectory"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"NewImplementationFileDirectory"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"FileCapitalization"

+			value      	("FileCapitalizationSet" 0))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CodeGenExtraDirectories"

+			value      	("CodeGenExtraDirectoriesSet" 0))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"StripClassPrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"UseTabs"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"TabWidth"

+			value      	8)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"IndentWidth"

+			value      	4)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"AccessIndentation"

+			value      	-2)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CreateBackupFiles"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"ModelIdCommentRules"

+			value      	("ModelIdCommentRulesSet" 1))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CommentRules"

+			value      	("CommentRulesSet" 1))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"PageWidth"

+			value      	80)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"ClassMemberOrder"

+			value      	("MemberOrderSet" 1))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"OneParameterPerLine"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"NamespaceBraceStyle"

+			value      	("BraceStyleSet" 2))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"ClassBraceStyle"

+			value      	("BraceStyleSet" 2))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"FunctionBraceStyle"

+			value      	("BraceStyleSet" 2))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"Copyright"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"InitialHeaderIncludes"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"InitialBodyIncludes"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CodeGenExtraDirectoriesSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"None"

+				value      	0)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Namespaces"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Packages"

+				value      	2)))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"FileCapitalizationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Same as model"

+				value      	0)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Lower case"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Upper case"

+				value      	2)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Lower case with underscores"

+				value      	3)))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"BraceStyleSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"B1"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"B2"

+				value      	2)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"B3"

+				value      	3)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"B4"

+				value      	4)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"B5"

+				value      	5)))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"MemberOrderSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Public First"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Private First"

+				value      	2)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Order by kind"

+				value      	3)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Unordered"

+				value      	4)))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"ModelIdCommentRulesSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Code generation only"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Code generation and reverse engineering"

+				value      	2)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Never generate model IDs"

+				value      	3)))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CommentRulesSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Always synchronize"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Code generation only"

+				value      	2)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Reverse engineering only"

+				value      	3)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Never synchronize"

+				value      	4)))))

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"default__Module-Body"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"Synchronize"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"RevEngRootDirectory"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"RootPackage"

+			value      	"C++ Reverse Engineered")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"RevEngDirectoriesAsPackages"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"HeaderFileExtension"

+			value      	".h")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"ImplementationFileExtension"

+			value      	".cpp")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"NewHeaderFileDirectory"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"NewImplementationFileDirectory"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"FileCapitalization"

+			value      	("FileCapitalizationSet" 0))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CodeGenExtraDirectories"

+			value      	("CodeGenExtraDirectoriesSet" 0))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"StripClassPrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"UseTabs"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"TabWidth"

+			value      	8)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"IndentWidth"

+			value      	4)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"AccessIndentation"

+			value      	-2)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CreateBackupFiles"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"ModelIdCommentRules"

+			value      	("ModelIdCommentRulesSet" 1))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CommentRules"

+			value      	("CommentRulesSet" 1))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"PageWidth"

+			value      	80)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"ClassMemberOrder"

+			value      	("MemberOrderSet" 1))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"OneParameterPerLine"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"NamespaceBraceStyle"

+			value      	("BraceStyleSet" 2))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"ClassBraceStyle"

+			value      	("BraceStyleSet" 2))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"FunctionBraceStyle"

+			value      	("BraceStyleSet" 2))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"Copyright"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"InitialHeaderIncludes"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"InitialBodyIncludes"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CodeGenExtraDirectoriesSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"None"

+				value      	0)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Namespaces"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Packages"

+				value      	2)))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"FileCapitalizationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Same as model"

+				value      	0)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Lower case"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Upper case"

+				value      	2)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Lower case with underscores"

+				value      	3)))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"BraceStyleSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"B1"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"B2"

+				value      	2)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"B3"

+				value      	3)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"B4"

+				value      	4)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"B5"

+				value      	5)))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"MemberOrderSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Public First"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Private First"

+				value      	2)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Order by kind"

+				value      	3)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Unordered"

+				value      	4)))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"ModelIdCommentRulesSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Code generation only"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Code generation and reverse engineering"

+				value      	2)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Never generate model IDs"

+				value      	3)))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CommentRulesSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Always synchronize"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Code generation only"

+				value      	2)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Reverse engineering only"

+				value      	3)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Never synchronize"

+				value      	4)))))

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"default__Param"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CodeName"

+			value      	"")))

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"default__Attribute"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"Synchronize"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CodeName"

+			value      	"")))

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"default__Operation"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"Synchronize"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"InitialCodeBody"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"Inline"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"GenerateFunctionBody"

+			value      	("GenerateFunctionBodySet" 2))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"GenerateFunctionBodySet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Default"

+				value      	2)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"True"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"False"

+				value      	0)))))

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"default__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"Synchronize"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"ImplementationType"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"HeaderSourceFile"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"BodySourceFile"

+			value      	"")))

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"default__Category"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"IsNamespace"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"default__Uses"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"BodyReferenceOnly"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"ANSIConvert"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"propertyId"

+		value      	"838326200")

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"default__Project"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SpecFileExtension"

+			value      	"1.ada")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SpecFileBackupExtension"

+			value      	"1.ad~")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SpecFileTemporaryExtension"

+			value      	"1.ad#")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"BodyFileExtension"

+			value      	"2.ada")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"BodyFileBackupExtension"

+			value      	"2.ad~")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"BodyFileTemporaryExtension"

+			value      	"2.ad#")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"CreateMissingDirectories"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GenerateBodies"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GenerateAccessorOperations"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GenerateStandardOperations"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"DefaultCodeBody"

+			value      	"[statement]")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ImplicitParameter"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"CommentWidth"

+			value      	60)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"StopOnError"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ErrorLimit"

+			value      	30)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"UseFileName"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Directory"

+			value      	"$ROSEADA83_SOURCE")))

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"default__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ClassName"

+			value      	"Object")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ClassAccess"

+			value      	("ImplementationSet" 43))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ImplementationType"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"IsSubtype"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"PolymorphicUnit"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"HandleName"

+			value      	"Handle")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"HandleAccess"

+			value      	("ImplementationSet" 45))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Discriminant"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Variant"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"EnumerationLiteralPrefix"

+			value      	"A_")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"RecordFieldPrefix"

+			value      	"The_")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GenerateAccessorOperations"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GenerateStandardOperations"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ImplicitParameter"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ClassParameterName"

+			value      	"This")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"DefaultConstructorKind"

+			value      	("ConstructorKindSet" 199))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"DefaultConstructorName"

+			value      	"Create")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineDefaultConstructor"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"CopyConstructorKind"

+			value      	("ConstructorKindSet" 199))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"CopyConstructorName"

+			value      	"Copy")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineCopyConstructor"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"DestructorName"

+			value      	"Free")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineDestructor"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ClassEqualityOperation"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"HandleEqualityOperation"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineEquality"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"IsTask"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Representation"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ImplementationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Public"

+				value      	45)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Private"

+				value      	43)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"LimitedPrivate"

+				value      	200)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"DoNotCreate"

+				value      	201)))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ConstructorKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Procedure"

+				value      	202)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Function"

+				value      	199)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"DoNotCreate"

+				value      	201)))))

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"default__Module-Spec"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Generate"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"CopyrightNotice"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"FileName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ReturnType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GenericFormalParameters"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"AdditionalWiths"

+			value      	(value Text ""))))

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"default__Module-Body"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Generate"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"CopyrightNotice"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"FileName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ReturnType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"AdditionalWiths"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"IsSubunit"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"default__Operation"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SubprogramImplementation"

+			value      	("SubprogramImplementationSet" 2))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Renames"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ClassParameterMode"

+			value      	("ParameterModeSet" 203))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Inline"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"EntryCode"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ExitCode"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InitialCodeBody"

+			value      	"${default}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Representation"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SubprogramImplementationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Spec"

+				value      	224)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Body"

+				value      	2)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Renaming"

+				value      	222)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Separate"

+				value      	223)))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ParameterModeSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Default"

+				value      	232)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"In"

+				value      	204)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Out"

+				value      	205)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"InOut"

+				value      	203)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"FunctionReturn"

+				value      	206)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"DoNotCreate"

+				value      	201)))))

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"default__Param"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Mode"

+			value      	("ParameterModeSet" 232))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ParameterModeSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Default"

+				value      	232)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"In"

+				value      	204)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Out"

+				value      	205)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"InOut"

+				value      	203)))))

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"default__Has"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"NameIfUnlabeled"

+			value      	"The_${supplier}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"DataMemberName"

+			value      	"${relationship}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GetName"

+			value      	"Get_${relationship}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineGet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SetName"

+			value      	"Set_${relationship}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineSet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"IsConstant"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InitialValue"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Declare"

+			value      	("DeclareSet" 234))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Variant"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ContainerGeneric"

+			value      	"List")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ContainerType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ContainerDeclarations"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SelectorName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SelectorType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"DeclareSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Before"

+				value      	233)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"After"

+				value      	234)))))

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"default__Attribute"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"DataMemberName"

+			value      	"${attribute}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GetName"

+			value      	"Get_${attribute}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineGet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SetName"

+			value      	"Set_${attribute}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineSet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"IsConstant"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InitialValue"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Declare"

+			value      	("DeclareSet" 234))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Variant"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Representation"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"DeclareSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Before"

+				value      	233)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"After"

+				value      	234)))))

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"default__Association"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"NameIfUnlabeled"

+			value      	"The_${targetClass}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GetName"

+			value      	"Get_${association}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineGet"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SetName"

+			value      	"Set_${association}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineSet"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GenerateAssociate"

+			value      	("ProcedureKindSet" 202))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"AssociateName"

+			value      	"Associate")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineAssociate"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GenerateDissociate"

+			value      	("ProcedureKindSet" 202))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"DissociateName"

+			value      	"Dissociate")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineDissociate"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ProcedureKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Procedure"

+				value      	202)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"DoNotCreate"

+				value      	201)))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"FunctionKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Function"

+				value      	199)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"DoNotCreate"

+				value      	201)))))

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"default__Role"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"NameIfUnlabeled"

+			value      	"The_${targetClass}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"DataMemberName"

+			value      	"${target}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GetName"

+			value      	"Get_${target}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineGet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SetName"

+			value      	"Set_${target}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineSet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"IsConstant"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InitialValue"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Declare"

+			value      	("DeclareSet" 234))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Representation"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ContainerGeneric"

+			value      	"List")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ContainerType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ContainerDeclarations"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SelectorName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SelectorType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ProcedureKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Procedure"

+				value      	202)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"DoNotCreate"

+				value      	201)))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"DeclareSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Before"

+				value      	233)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"After"

+				value      	234)))))

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"default__Subsystem"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Directory"

+			value      	"AUTO GENERATE")))

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"propertyId"

+		value      	"838326200")

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"default__Project"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SpecFileExtension"

+			value      	"1.ada")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SpecFileBackupExtension"

+			value      	"1.ad~")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SpecFileTemporaryExtension"

+			value      	"1.ad#")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"BodyFileExtension"

+			value      	"2.ada")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"BodyFileBackupExtension"

+			value      	"2.ad~")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"BodyFileTemporaryExtension"

+			value      	"2.ad#")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"CreateMissingDirectories"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"UseColonNotation"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateBodies"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAccessorOperations"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateStandardOperations"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"DefaultCodeBody"

+			value      	"[statement]")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ImplicitParameter"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"CommentWidth"

+			value      	60)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"StopOnError"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ErrorLimit"

+			value      	30)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"UseFileName"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Directory"

+			value      	"$ROSEADA95_SOURCE")))

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"default__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"TypeName"

+			value      	"Object")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"TypeVisibility"

+			value      	("TypeVisibilitySet" 43))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"TypeImplementation"

+			value      	("TypeImplementationSet" 208))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IncompleteType"

+			value      	("IncompleteTypeSet" 1))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"TypeControl"

+			value      	("TypeControlSet" 225))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"TypeControlName"

+			value      	"Controlled_${type}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"TypeControlVisibility"

+			value      	("TypeVisibilitySet" 43))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"TypeDefinition"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordImplementation"

+			value      	("RecordImplementationSet" 209))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordKindPackageName"

+			value      	"${class}_Record_Kinds")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IsLimited"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IsSubtype"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAccessType"

+			value      	("GenerateAccessTypeSet" 230))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AccessTypeName"

+			value      	"Handle")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AccessTypeVisibility"

+			value      	("TypeVisibilitySet" 45))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AccessTypeDefinition"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AccessClassWide"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"MaybeAliased"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ParameterizedImplementation"

+			value      	("ParameterizedImplementationSet" 11))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ParentClassName"

+			value      	"Superclass")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"EnumerationLiteralPrefix"

+			value      	"A_")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordFieldPrefix"

+			value      	"The_")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ArrayOfTypeName"

+			value      	"Array_Of_${type}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AccessArrayOfTypeName"

+			value      	"Access_Array_Of_${type}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ArrayOfAccessTypeName"

+			value      	"Array_Of_${access_type}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AccessArrayOfAccessTypeName"

+			value      	"Access_Array_Of_${access_type}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ArrayIndexDefinition"

+			value      	"Positive range <>")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAccessorOperations"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateStandardOperations"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ImplicitParameter"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ImplicitParameterName"

+			value      	"This")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateDefaultConstructor"

+			value      	("SubprogramKindSet" 199))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"DefaultConstructorName"

+			value      	"Create")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineDefaultConstructor"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateCopyConstructor"

+			value      	("SubprogramKindSet" 199))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"CopyConstructorName"

+			value      	"Copy")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineCopyConstructor"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateDestructor"

+			value      	("ProcedureKindSet" 202))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"DestructorName"

+			value      	"Free")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineDestructor"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateTypeEquality"

+			value      	("FunctionKindSet" 201))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"TypeEqualityName"

+			value      	

+|"="

+			)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineEquality"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Representation"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"TypeImplementationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Tagged"

+				value      	208)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Record"

+				value      	210)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Mixin"

+				value      	211)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Protected"

+				value      	44)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Task"

+				value      	212)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IncompleteTypeSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotDeclare"

+				value      	1)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"NoDiscriminantPart"

+				value      	2)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"UnknownDiscriminantPart"

+				value      	3)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"KnownDiscriminantPart"

+				value      	4)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordImplementationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"SingleType"

+				value      	209)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"MultipleTypes"

+				value      	213)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ParameterizedImplementationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Generic"

+				value      	11)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Unconstrained"

+				value      	214)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"TypeVisibilitySet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Public"

+				value      	45)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Private"

+				value      	43)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SubprogramKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Procedure"

+				value      	202)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Function"

+				value      	199)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ProcedureKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Procedure"

+				value      	202)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"FunctionKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Function"

+				value      	199)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"TypeControlSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"None"

+				value      	225)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"InitializationOnly"

+				value      	226)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"AssignmentFinalizationOnly"

+				value      	227)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"All"

+				value      	228)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAccessTypeSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Always"

+				value      	229)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Auto"

+				value      	230)))))

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"default__Module-Spec"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Generate"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"CopyrightNotice"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"FileName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ReturnType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenericFormalParameters"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AdditionalWiths"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IsPrivate"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"default__Module-Body"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Generate"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"CopyrightNotice"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"FileName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ReturnType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AdditionalWiths"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IsSubunit"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"default__Operation"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SubprogramImplementation"

+			value      	("SubprogramImplementationSet" 2))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Renames"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateOverriding"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ImplicitParameterMode"

+			value      	("ParameterModeSet" 203))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ImplicitParameterClassWide"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAccessOperation"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Inline"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"EntryCode"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ExitCode"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InitialCodeBody"

+			value      	"${default}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"EntryBarrierCondition"

+			value      	"True")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Representation"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SubprogramImplementationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Spec"

+				value      	224)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Body"

+				value      	2)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Abstract"

+				value      	221)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Renaming"

+				value      	222)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"RenamingAsBody"

+				value      	231)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Separate"

+				value      	223)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ParameterModeSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Default"

+				value      	232)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"In"

+				value      	204)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Out"

+				value      	205)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"InOut"

+				value      	203)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Access"

+				value      	220)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))))

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"default__Param"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Mode"

+			value      	("ParameterModeSet" 232))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ParameterModeSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Default"

+				value      	232)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"In"

+				value      	204)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Out"

+				value      	205)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"InOut"

+				value      	203)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Access"

+				value      	220)))))

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"default__Has"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"NameIfUnlabeled"

+			value      	"The_${supplier}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordFieldImplementation"

+			value      	("RecordFieldImplementationSet" 216))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AccessDiscriminantClassWide"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordFieldName"

+			value      	"${relationship}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateGet"

+			value      	("FunctionKindSet" 199))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAccessGet"

+			value      	("FunctionKindSet" 201))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GetName"

+			value      	"Get_${relationship}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineGet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateSet"

+			value      	("ProcedureKindSet" 202))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAccessSet"

+			value      	("ProcedureKindSet" 201))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SetName"

+			value      	"Set_${relationship}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineSet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IsAliased"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IsConstant"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InitialValue"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Declare"

+			value      	("DeclareSet" 234))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ContainerImplementation"

+			value      	("ContainerImplementationSet" 217))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ContainerGeneric"

+			value      	"List")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ContainerType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ContainerDeclarations"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SelectorName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SelectorType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"DeclareSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Before"

+				value      	233)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"After"

+				value      	234)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordFieldImplementationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Component"

+				value      	216)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Discriminant"

+				value      	218)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"AccessDiscriminant"

+				value      	219)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ContainerImplementationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Array"

+				value      	217)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Generic"

+				value      	11)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ProcedureKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Procedure"

+				value      	202)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"FunctionKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Function"

+				value      	199)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))))

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"default__Attribute"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordFieldImplementation"

+			value      	("RecordFieldImplementationSet" 216))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AccessDiscriminantClassWide"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordFieldName"

+			value      	"${attribute}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateGet"

+			value      	("FunctionKindSet" 199))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAccessGet"

+			value      	("FunctionKindSet" 201))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GetName"

+			value      	"Get_${attribute}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineGet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateSet"

+			value      	("ProcedureKindSet" 202))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAccessSet"

+			value      	("ProcedureKindSet" 201))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SetName"

+			value      	"Set_${attribute}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineSet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IsAliased"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IsConstant"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InitialValue"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Declare"

+			value      	("DeclareSet" 234))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Representation"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"DeclareSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Before"

+				value      	233)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"After"

+				value      	234)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordFieldImplementationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Component"

+				value      	216)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Discriminant"

+				value      	218)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"AccessDiscriminant"

+				value      	219)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ProcedureKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Procedure"

+				value      	202)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"FunctionKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Function"

+				value      	199)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))))

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"default__Association"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"NameIfUnlabeled"

+			value      	"The_${targetClass}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateGet"

+			value      	("FunctionKindSet" 199))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GetName"

+			value      	"Get_${association}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineGet"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateSet"

+			value      	("ProcedureKindSet" 202))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SetName"

+			value      	"Set_${association}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineSet"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAssociate"

+			value      	("ProcedureKindSet" 202))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AssociateName"

+			value      	"Associate")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineAssociate"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateDissociate"

+			value      	("ProcedureKindSet" 202))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"DissociateName"

+			value      	"Dissociate")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineDissociate"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ProcedureKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Procedure"

+				value      	202)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"FunctionKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Function"

+				value      	199)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))))

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"default__Role"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"NameIfUnlabeled"

+			value      	"The_${targetClass}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordFieldImplementation"

+			value      	("RecordFieldImplementationSet" 216))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AccessDiscriminantClassWide"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordFieldName"

+			value      	"${target}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateGet"

+			value      	("FunctionKindSet" 199))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAccessGet"

+			value      	("FunctionKindSet" 201))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GetName"

+			value      	"Get_${target}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineGet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateSet"

+			value      	("ProcedureKindSet" 202))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAccessSet"

+			value      	("ProcedureKindSet" 201))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SetName"

+			value      	"Set_${target}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineSet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IsAliased"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IsConstant"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InitialValue"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Declare"

+			value      	("DeclareSet" 234))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Representation"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ContainerImplementation"

+			value      	("ContainerImplementationSet" 217))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ContainerGeneric"

+			value      	"List")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ContainerType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ContainerDeclarations"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SelectorName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SelectorType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ProcedureKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Procedure"

+				value      	202)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"DeclareSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Before"

+				value      	233)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"After"

+				value      	234)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordFieldImplementationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Component"

+				value      	216)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Discriminant"

+				value      	218)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"AccessDiscriminant"

+				value      	219)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ContainerImplementationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Array"

+				value      	217)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Generic"

+				value      	11)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"FunctionKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Function"

+				value      	199)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))))

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"default__Subsystem"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Directory"

+			value      	"AUTO GENERATE")))

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"CORBA"

+		name       	"propertyId"

+		value      	"809135966")

+	    (object Attribute

+		tool       	"CORBA"

+		name       	"default__Project"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"CreateMissingDirectories"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"Editor"

+			value      	("EditorType" 100))

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"IncludePath"

+			value      	"")

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"StopOnError"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"EditorType"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"CORBA"

+				name       	"BuiltIn"

+				value      	100)

+			    (object Attribute

+				tool       	"CORBA"

+				name       	"WindowsShell"

+				value      	101)))

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"PathSeparator"

+			value      	"")))

+	    (object Attribute

+		tool       	"CORBA"

+		name       	"default__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"ArrayDimensions"

+			value      	"")

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"ConstValue"

+			value      	"")

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"ImplementationType"

+			value      	"")))

+	    (object Attribute

+		tool       	"CORBA"

+		name       	"default__Module-Spec"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"AdditionalIncludes"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"CmIdentification"

+			value      	(value Text "  %X% %Q% %Z% %W%"))

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"CopyrightNotice"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"InclusionProtectionSymbol"

+			value      	"AUTO GENERATE")))

+	    (object Attribute

+		tool       	"CORBA"

+		name       	"default__Module-Body"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"AdditionalIncludes"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"CmIdentification"

+			value      	(value Text "  %X% %Q% %Z% %W%"))

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"CopyrightNotice"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"InclusionProtectionSymbol"

+			value      	"AUTO GENERATE")))

+	    (object Attribute

+		tool       	"CORBA"

+		name       	"default__Operation"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"Context"

+			value      	"")

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"OperationIsOneWay"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"CORBA"

+		name       	"default__Attribute"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"ArrayDimensions"

+			value      	"")

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"CaseSpecifier"

+			value      	"")

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"IsReadOnly"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"Order"

+			value      	"")))

+	    (object Attribute

+		tool       	"CORBA"

+		name       	"default__Role"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"ArrayDimensions"

+			value      	"")

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"CaseSpecifier"

+			value      	"")

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"GenerateForwardReference"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"IsReadOnly"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"Order"

+			value      	"")

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"BoundedRoleType"

+			value      	("AssocTypeSet" 47))

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"AssocTypeSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"CORBA"

+				name       	"Array"

+				value      	24)

+			    (object Attribute

+				tool       	"CORBA"

+				name       	"Sequence"

+				value      	47)))))

+	    (object Attribute

+		tool       	"CORBA"

+		name       	"default__Uses"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"GenerateForwardReference"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"CORBA"

+		name       	"default__Param"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"Direction"

+			value      	("ParamDirectionTypeSet" 102))

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"ParamDirectionTypeSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"CORBA"

+				name       	"in"

+				value      	102)

+			    (object Attribute

+				tool       	"CORBA"

+				name       	"inout"

+				value      	103)

+			    (object Attribute

+				tool       	"CORBA"

+				name       	"out"

+				value      	104)))))

+	    (object Attribute

+		tool       	"CORBA"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"ClearCase"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"Deploy"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"Java"

+		name       	"propertyId"

+		value      	"809135966")

+	    (object Attribute

+		tool       	"Java"

+		name       	"default__Project"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Java"

+			name       	"RootDir"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"CreateMissingDirectories"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"StopOnError"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"UsePrefixes"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"AutoSync"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"NotShowRoseIDDlg"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"ShowCodegenDlg"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateRoseID"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateDefaultJ2EEJavadoc"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateDefaultReturnLine"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"JavadocDefaultAuthor"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"JavadocDefaultVersion"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"JavadocDefaultSince"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"UserDefineJavaDocTags"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"JavadocNumAsterisks"

+			value      	0)

+		    (object Attribute

+			tool       	"Java"

+			name       	"MaxNumChars"

+			value      	80)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Editor"

+			value      	("EditorType" 100))

+		    (object Attribute

+			tool       	"Java"

+			name       	"VM"

+			value      	("VMType" 200))

+		    (object Attribute

+			tool       	"Java"

+			name       	"ClassPath"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ReferenceClasspath"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"EditorType"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Java"

+				name       	"BuiltIn"

+				value      	100)))

+		    (object Attribute

+			tool       	"Java"

+			name       	"VMType"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Java"

+				name       	"Sun"

+				value      	200)))

+		    (object Attribute

+			tool       	"Java"

+			name       	"VAJavaWorkingFolder"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"InstanceVariablePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ClassVariablePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"DefaultAttributeDataType"

+			value      	"int")

+		    (object Attribute

+			tool       	"Java"

+			name       	"DefaultOperationReturnType"

+			value      	"void")

+		    (object Attribute

+			tool       	"Java"

+			name       	"NoClassCustomDlg"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"GlobalImports"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Java"

+			name       	"OpenBraceClassStyle"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"OpenBraceMethodStyle"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"UseTabs"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"UseSpaces"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"SpacingItems"

+			value      	3)

+		    (object Attribute

+			tool       	"Java"

+			name       	"RoseDefaultCommentStyle"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"AsteriskCommentStyle"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"JavaCommentStyle"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"JavadocAuthor"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"JavadocSince"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"JavadocVersion"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"BeanPrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"BeanSuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"RemotePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"RemoteSuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"HomePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"HomeSuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"LocalPrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"LocalSuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"LocalHomePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"LocalHomeSuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"PrimaryKeyPrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"PrimaryKeySuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBDTDLocation"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletDTDLocation"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"DefaultEJBVersion"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"DefaultServletVersion"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"SourceControl"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"SCCSelected"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"SCCProjectSourceRoot"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"SCCProjectName"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"SCCComment"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Java"

+		name       	"default__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Java"

+			name       	"Final"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Static"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateDefaultConstructor"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"ConstructorIs"

+			value      	("Ctor_Set" 62))

+		    (object Attribute

+			tool       	"Java"

+			name       	"Ctor_Set"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Java"

+				name       	"public"

+				value      	62)

+			    (object Attribute

+				tool       	"Java"

+				name       	"protected"

+				value      	63)

+			    (object Attribute

+				tool       	"Java"

+				name       	"private"

+				value      	64)

+			    (object Attribute

+				tool       	"Java"

+				name       	"package"

+				value      	65)))

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateFinalizer"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateStaticInitializer"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateInstanceInitializer"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateCode"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"DisableAutoSync"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"ReadOnly"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Strictfp"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Java"

+		name       	"Default_Servlet__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletName"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletContextRef"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"IsSingleThread"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletInitParameter"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletInitParameterNames"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletIsSecure"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletRequestDispatcher"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletRequestDispatcherPath"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"DispatcherInclude"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"DispatcherForward"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletSecurityRoles"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletgetInfo"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletXMLFilePath"

+			value      	"")))

+	    (object Attribute

+		tool       	"Java"

+		name       	"Http_Servlet__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletRequestAttribute"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletRequestAttributesNames"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"MethodForRequestAttributes"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletRequestParameter"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletRequestParameterNames"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"MethodForRequestParameters"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletHeader"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletHeaderNames"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"MethodForHeaders"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletIntHeader"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletDateHeader"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletCookie"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"MethodForCookie"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletContentType"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateHTML"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Java"

+		name       	"Default_EJB__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Java"

+			name       	"Generate_XML_DD"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBCmpField"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBEnvironmentProperties"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBCnxFactory"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBReferences"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBSecurityRoles"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBNameInJAR"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBSessionType"

+			value      	("EJBSessionType_Set" 200))

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBSessionType_Set"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Java"

+				name       	""

+				value      	200)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Stateless"

+				value      	201)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Stateful"

+				value      	202)))

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBTransactionType"

+			value      	("EJBTransactionType_Set" 211))

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBTransactionType_Set"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Java"

+				name       	"Container"

+				value      	211)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Bean"

+				value      	212)))

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBPersistenceType"

+			value      	("EJBPersistenceType_Set" 220))

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBPersistenceType_Set"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Java"

+				name       	""

+				value      	220)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Bean"

+				value      	221)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Container"

+				value      	222)))

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBReentrant"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBSessionSync"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBVersion"

+			value      	("EJBVersion_Set" 230))

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBVersion_Set"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Java"

+				name       	"2.0"

+				value      	230)

+			    (object Attribute

+				tool       	"Java"

+				name       	"1.x"

+				value      	231)))

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBXMLFilePath"

+			value      	"")))

+	    (object Attribute

+		tool       	"Java"

+		name       	"default__Module-Spec"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Java"

+			name       	"CmIdentification"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Java"

+			name       	"CopyrightNotice"

+			value      	(value Text ""))))

+	    (object Attribute

+		tool       	"Java"

+		name       	"default__Module-Body"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Java"

+			name       	"CmIdentification"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Java"

+			name       	"CopyrightNotice"

+			value      	(value Text ""))))

+	    (object Attribute

+		tool       	"Java"

+		name       	"default__Operation"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Java"

+			name       	"Abstract"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Static"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Final"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Native"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Synchronized"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateFullyQualifiedReturn"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"ReplaceExistingCode"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Strictfp"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Java"

+		name       	"default__Attribute"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Java"

+			name       	"Final"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Transient"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Volatile"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"PropertyType"

+			value      	("BeanProperty_Set" 71))

+		    (object Attribute

+			tool       	"Java"

+			name       	"BeanProperty_Set"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Java"

+				name       	"Not A Property"

+				value      	71)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Simple"

+				value      	72)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Bound"

+				value      	73)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Constrained"

+				value      	74)))

+		    (object Attribute

+			tool       	"Java"

+			name       	"IndividualChangeMgt"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Read/Write"

+			value      	("Read/Write_Set" 81))

+		    (object Attribute

+			tool       	"Java"

+			name       	"Read/Write_Set"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Java"

+				name       	"Read & Write"

+				value      	81)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Read Only"

+				value      	82)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Write Only"

+				value      	83)))

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateFullyQualifiedTypes"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Java"

+		name       	"default__Role"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Java"

+			name       	"ContainerClass"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"InitialValue"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"Final"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Transient"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Volatile"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"PropertyType"

+			value      	("BeanProperty_Set" 71))

+		    (object Attribute

+			tool       	"Java"

+			name       	"BeanProperty_Set"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Java"

+				name       	"Not A Property"

+				value      	71)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Simple"

+				value      	72)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Bound"

+				value      	73)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Constrained"

+				value      	74)))

+		    (object Attribute

+			tool       	"Java"

+			name       	"IndividualChangeMgt"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Read/Write"

+			value      	("Read/Write_Set" 81))

+		    (object Attribute

+			tool       	"Java"

+			name       	"Read/Write_Set"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Java"

+				name       	"Read & Write"

+				value      	81)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Read Only"

+				value      	82)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Write Only"

+				value      	83)))

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateFullyQualifiedTypes"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"IsNavigable"

+			value      	TRUE)))

+	    (object Attribute

+		tool       	"Java"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"Oracle8"

+		name       	"propertyId"

+		value      	"360000002")

+	    (object Attribute

+		tool       	"Oracle8"

+		name       	"default__Project"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"DDLScriptFilename"

+			value      	"DDL1.SQL")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"DropClause"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"PrimaryKeyColumnName"

+			value      	"_ID")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"PrimaryKeyColumnType"

+			value      	"NUMBER(5,0)")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"SchemaNamePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"SchemaNameSuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TableNamePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TableNameSuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TypeNamePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TypeNameSuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"ViewNamePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"ViewNameSuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"VarrayNamePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"VarrayNameSuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"NestedTableNamePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"NestedTableNameSuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"ObjectTableNamePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"ObjectTableNameSuffix"

+			value      	"")))

+	    (object Attribute

+		tool       	"Oracle8"

+		name       	"default__Module-Spec"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"IsSchema"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Oracle8"

+		name       	"default__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"OID"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"WhereClause"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"CheckConstraint"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"CollectionTypeLength"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"CollectionTypePrecision"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"CollectionTypeScale"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"CollectionOfREFS"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Oracle8"

+		name       	"default__Operation"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"MethodKind"

+			value      	("MethodKindSet" 1903))

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"OverloadID"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"OrderNumber"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"IsReadNoDataState"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"IsReadNoProcessState"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"IsWriteNoDataState"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"IsWriteNoProcessState"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"IsSelfish"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TriggerType"

+			value      	("TriggerTypeSet" 1801))

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TriggerEvent"

+			value      	("TriggerEventSet" 1601))

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TriggerText"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TriggerReferencingNames"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TriggerForEach"

+			value      	("TriggerForEachSet" 1701))

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TriggerWhenClause"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"MethodKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"MapMethod"

+				value      	1901)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"OrderMethod"

+				value      	1902)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"Function"

+				value      	1903)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"Procedure"

+				value      	1904)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"Operator"

+				value      	1905)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"Constructor"

+				value      	1906)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"Destructor"

+				value      	1907)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"Trigger"

+				value      	1908)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"Calculated"

+				value      	1909)))

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TriggerTypeSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"AFTER"

+				value      	1801)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"BEFORE"

+				value      	1802)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"INSTEAD OF"

+				value      	1803)))

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TriggerForEachSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"ROW"

+				value      	1701)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"STATEMENT"

+				value      	1702)))

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TriggerEventSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"INSERT"

+				value      	1601)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"UPDATE"

+				value      	1602)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"DELETE"

+				value      	1603)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"INSERT OR UPDATE"

+				value      	1604)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"INSERT OR DELETE"

+				value      	1605)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"UPDATE OR DELETE"

+				value      	1606)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"INSERT OR UPDATE OR DELETE"

+				value      	1607)))))

+	    (object Attribute

+		tool       	"Oracle8"

+		name       	"default__Role"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"OrderNumber"

+			value      	"")))

+	    (object Attribute

+		tool       	"Oracle8"

+		name       	"default__Attribute"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"OrderNumber"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"IsUnique"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"NullsAllowed"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"Length"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"Precision"

+			value      	"2")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"Scale"

+			value      	"6")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"IsIndex"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"IsPrimaryKey"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"CompositeUnique"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"CheckConstraint"

+			value      	"")))

+	    (object Attribute

+		tool       	"Oracle8"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"ComponentTest"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"Rose Model Integrator"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"Rose Web Publisher"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"TopLink"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"COM"

+		name       	"propertyId"

+		value      	"783606378")

+	    (object Attribute

+		tool       	"COM"

+		name       	"default__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"COM"

+			name       	"TypeKinds"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"COM"

+				name       	"enum"

+				value      	100)

+			    (object Attribute

+				tool       	"COM"

+				name       	"record"

+				value      	101)

+			    (object Attribute

+				tool       	"COM"

+				name       	"module"

+				value      	102)

+			    (object Attribute

+				tool       	"COM"

+				name       	"interface"

+				value      	103)

+			    (object Attribute

+				tool       	"COM"

+				name       	"dispinterface"

+				value      	104)

+			    (object Attribute

+				tool       	"COM"

+				name       	"coclass"

+				value      	105)

+			    (object Attribute

+				tool       	"COM"

+				name       	"alias"

+				value      	106)

+			    (object Attribute

+				tool       	"COM"

+				name       	"union"

+				value      	107)

+			    (object Attribute

+				tool       	"COM"

+				name       	"max"

+				value      	108)

+			    (object Attribute

+				tool       	"COM"

+				name       	"(none)"

+				value      	109)))

+		    (object Attribute

+			tool       	"COM"

+			name       	"Generate"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"COM"

+			name       	"kind"

+			value      	("TypeKinds" 109))

+		    (object Attribute

+			tool       	"COM"

+			name       	"uuid"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"version"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"helpstring"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"helpcontext"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"attributes"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"dllname"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"alias"

+			value      	"")))

+	    (object Attribute

+		tool       	"COM"

+		name       	"default__Operation"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"COM"

+			name       	"Generate"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"COM"

+			name       	"id"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"helpstring"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"attributes"

+			value      	"")))

+	    (object Attribute

+		tool       	"COM"

+		name       	"default__Attribute"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"COM"

+			name       	"Generate"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"COM"

+			name       	"id"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"helpstring"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"attributes"

+			value      	"")))

+	    (object Attribute

+		tool       	"COM"

+		name       	"default__Module-Spec"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"COM"

+			name       	"Generate"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"COM"

+			name       	"filename"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"library"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"uuid"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"version"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"helpstring"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"helpfile"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"helpcontext"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"lcid"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"attributes"

+			value      	"")))

+	    (object Attribute

+		tool       	"COM"

+		name       	"default__Param"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"COM"

+			name       	"attributes"

+			value      	"")))

+	    (object Attribute

+		tool       	"COM"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"VisualStudio"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"Web Modeler"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"XML_DTD"

+		name       	"propertyId"

+		value      	"809135966")

+	    (object Attribute

+		tool       	"XML_DTD"

+		name       	"default__Project"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"CreateMissingDirectories"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"Editor"

+			value      	("EditorType" 100))

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"StopOnError"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"EditorType"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"XML_DTD"

+				name       	"BuiltIn"

+				value      	100)

+			    (object Attribute

+				tool       	"XML_DTD"

+				name       	"WindowsShell"

+				value      	101)))))

+	    (object Attribute

+		tool       	"XML_DTD"

+		name       	"default__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"Entity_SystemID"

+			value      	"")

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"Entity_PublicID"

+			value      	"")

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"NotationValue"

+			value      	"")

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"InternalValue"

+			value      	"")

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"ParameterEntity"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"ExternalEntity"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"Notation_SystemID"

+			value      	"")

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"Notation_PublicID"

+			value      	"")))

+	    (object Attribute

+		tool       	"XML_DTD"

+		name       	"default__Attribute"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"DefaultDeclType"

+			value      	"")))

+	    (object Attribute

+		tool       	"XML_DTD"

+		name       	"default__Module-Spec"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"Assign All"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"ComponentPath"

+			value      	"")))

+	    (object Attribute

+		tool       	"XML_DTD"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"CRMTooling"

+		name       	"HiddenTool"

+		value      	FALSE))

+	quid       	"461537C000D2"))

diff --git a/plugins/org.eclipse.datatools.modelbase.derby/plugin.properties b/plugins/org.eclipse.datatools.modelbase.derby/plugin.properties
new file mode 100644
index 0000000..e58cf72
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.derby/plugin.properties
@@ -0,0 +1,20 @@
+# <copyright>
+# </copyright>
+#
+# $Id: plugin.properties,v 1.3 2006/05/10 14:22:09 jgraham Exp $
+
+# ====================================================================
+# To code developer:
+#   Do NOT change the properties between this line and the
+#   "%%% END OF TRANSLATED PROPERTIES %%%" line.
+#   Make a new property name, append to the end of the file and change
+#   the code to use the new property.
+# ====================================================================
+
+# ====================================================================
+# %%% END OF TRANSLATED PROPERTIES %%%
+# ====================================================================
+
+pluginName = Eclipse Data Tools Platform Derby Model Plug-in
+providerName = Eclipse Data Tools Platform
+
diff --git a/plugins/org.eclipse.datatools.modelbase.derby/plugin.xml b/plugins/org.eclipse.datatools.modelbase.derby/plugin.xml
new file mode 100644
index 0000000..52cc464
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.derby/plugin.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<plugin>
+
+  <extension point="org.eclipse.emf.ecore.generated_package">
+    <package 
+       uri = "http:///org/eclipse/datatools/modelbase/derby/derby.ecore" 
+       class = "org.eclipse.datatools.modelbase.derby.DerbyModelPackage"
+       genModel = "model/derby.genmodel" /> 
+  </extension>
+
+</plugin>
+
diff --git a/plugins/org.eclipse.datatools.modelbase.derby/src/org/eclipse/datatools/modelbase/derby/DerbyModelFactory.java b/plugins/org.eclipse.datatools.modelbase.derby/src/org/eclipse/datatools/modelbase/derby/DerbyModelFactory.java
new file mode 100644
index 0000000..d9c0d0d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.derby/src/org/eclipse/datatools/modelbase/derby/DerbyModelFactory.java
@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.derby;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.derby.DerbyModelPackage
+ * @generated
+ */
+public interface DerbyModelFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	DerbyModelFactory eINSTANCE = org.eclipse.datatools.modelbase.derby.impl.DerbyModelFactoryImpl.init();
+
+	/**
+	 * Returns a new object of class '<em>Synonym</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Synonym</em>'.
+	 * @generated
+	 */
+	Synonym createSynonym();
+
+	/**
+	 * Returns a new object of class '<em>Derby Schema</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Derby Schema</em>'.
+	 * @generated
+	 */
+	DerbySchema createDerbySchema();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	DerbyModelPackage getDerbyModelPackage();
+
+} //DerbyModelFactory
diff --git a/plugins/org.eclipse.datatools.modelbase.derby/src/org/eclipse/datatools/modelbase/derby/DerbyModelPackage.java b/plugins/org.eclipse.datatools.modelbase.derby/src/org/eclipse/datatools/modelbase/derby/DerbyModelPackage.java
new file mode 100644
index 0000000..42a919a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.derby/src/org/eclipse/datatools/modelbase/derby/DerbyModelPackage.java
@@ -0,0 +1,534 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.derby;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ *   <li>each class,</li>
+ *   <li>each feature of each class,</li>
+ *   <li>each enum,</li>
+ *   <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.derby.DerbyModelFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface DerbyModelPackage extends EPackage {
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNAME = "derby";
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_URI = "http:///org/eclipse/datatools/modelbase/derby/derby.ecore";
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_PREFIX = "DerbyModel";
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	DerbyModelPackage eINSTANCE = org.eclipse.datatools.modelbase.derby.impl.DerbyModelPackageImpl.init();
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.derby.impl.SynonymImpl <em>Synonym</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.derby.impl.SynonymImpl
+	 * @see org.eclipse.datatools.modelbase.derby.impl.DerbyModelPackageImpl#getSynonym()
+	 * @generated
+	 */
+	int SYNONYM = 0;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SYNONYM__EANNOTATIONS = SQLTablesPackage.TABLE__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SYNONYM__NAME = SQLTablesPackage.TABLE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SYNONYM__DEPENDENCIES = SQLTablesPackage.TABLE__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SYNONYM__DESCRIPTION = SQLTablesPackage.TABLE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SYNONYM__LABEL = SQLTablesPackage.TABLE__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SYNONYM__COMMENTS = SQLTablesPackage.TABLE__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SYNONYM__EXTENSIONS = SQLTablesPackage.TABLE__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SYNONYM__PRIVILEGES = SQLTablesPackage.TABLE__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Columns</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SYNONYM__COLUMNS = SQLTablesPackage.TABLE__COLUMNS;
+
+	/**
+	 * The feature id for the '<em><b>Supertable</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SYNONYM__SUPERTABLE = SQLTablesPackage.TABLE__SUPERTABLE;
+
+	/**
+	 * The feature id for the '<em><b>Subtables</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SYNONYM__SUBTABLES = SQLTablesPackage.TABLE__SUBTABLES;
+
+	/**
+	 * The feature id for the '<em><b>Schema</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SYNONYM__SCHEMA = SQLTablesPackage.TABLE__SCHEMA;
+
+	/**
+	 * The feature id for the '<em><b>Udt</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SYNONYM__UDT = SQLTablesPackage.TABLE__UDT;
+
+	/**
+	 * The feature id for the '<em><b>Triggers</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SYNONYM__TRIGGERS = SQLTablesPackage.TABLE__TRIGGERS;
+
+	/**
+	 * The feature id for the '<em><b>Index</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SYNONYM__INDEX = SQLTablesPackage.TABLE__INDEX;
+
+	/**
+	 * The feature id for the '<em><b>Self Ref Column Generation</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SYNONYM__SELF_REF_COLUMN_GENERATION = SQLTablesPackage.TABLE__SELF_REF_COLUMN_GENERATION;
+
+	/**
+	 * The feature id for the '<em><b>Insertable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SYNONYM__INSERTABLE = SQLTablesPackage.TABLE__INSERTABLE;
+
+	/**
+	 * The feature id for the '<em><b>Updatable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SYNONYM__UPDATABLE = SQLTablesPackage.TABLE__UPDATABLE;
+
+	/**
+	 * The feature id for the '<em><b>Table</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SYNONYM__TABLE = SQLTablesPackage.TABLE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Synonym</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SYNONYM_FEATURE_COUNT = SQLTablesPackage.TABLE_FEATURE_COUNT + 1;
+
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.derby.impl.DerbySchemaImpl <em>Derby Schema</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.derby.impl.DerbySchemaImpl
+	 * @see org.eclipse.datatools.modelbase.derby.impl.DerbyModelPackageImpl#getDerbySchema()
+	 * @generated
+	 */
+	int DERBY_SCHEMA = 1;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DERBY_SCHEMA__EANNOTATIONS = SQLSchemaPackage.SCHEMA__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DERBY_SCHEMA__NAME = SQLSchemaPackage.SCHEMA__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DERBY_SCHEMA__DEPENDENCIES = SQLSchemaPackage.SCHEMA__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DERBY_SCHEMA__DESCRIPTION = SQLSchemaPackage.SCHEMA__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DERBY_SCHEMA__LABEL = SQLSchemaPackage.SCHEMA__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DERBY_SCHEMA__COMMENTS = SQLSchemaPackage.SCHEMA__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DERBY_SCHEMA__EXTENSIONS = SQLSchemaPackage.SCHEMA__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DERBY_SCHEMA__PRIVILEGES = SQLSchemaPackage.SCHEMA__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Triggers</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DERBY_SCHEMA__TRIGGERS = SQLSchemaPackage.SCHEMA__TRIGGERS;
+
+	/**
+	 * The feature id for the '<em><b>Indices</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DERBY_SCHEMA__INDICES = SQLSchemaPackage.SCHEMA__INDICES;
+
+	/**
+	 * The feature id for the '<em><b>Tables</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DERBY_SCHEMA__TABLES = SQLSchemaPackage.SCHEMA__TABLES;
+
+	/**
+	 * The feature id for the '<em><b>Sequences</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DERBY_SCHEMA__SEQUENCES = SQLSchemaPackage.SCHEMA__SEQUENCES;
+
+	/**
+	 * The feature id for the '<em><b>Database</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DERBY_SCHEMA__DATABASE = SQLSchemaPackage.SCHEMA__DATABASE;
+
+	/**
+	 * The feature id for the '<em><b>Catalog</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DERBY_SCHEMA__CATALOG = SQLSchemaPackage.SCHEMA__CATALOG;
+
+	/**
+	 * The feature id for the '<em><b>Assertions</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DERBY_SCHEMA__ASSERTIONS = SQLSchemaPackage.SCHEMA__ASSERTIONS;
+
+	/**
+	 * The feature id for the '<em><b>User Defined Types</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DERBY_SCHEMA__USER_DEFINED_TYPES = SQLSchemaPackage.SCHEMA__USER_DEFINED_TYPES;
+
+	/**
+	 * The feature id for the '<em><b>Char Sets</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DERBY_SCHEMA__CHAR_SETS = SQLSchemaPackage.SCHEMA__CHAR_SETS;
+
+	/**
+	 * The feature id for the '<em><b>Routines</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DERBY_SCHEMA__ROUTINES = SQLSchemaPackage.SCHEMA__ROUTINES;
+
+	/**
+	 * The feature id for the '<em><b>Owner</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DERBY_SCHEMA__OWNER = SQLSchemaPackage.SCHEMA__OWNER;
+
+	/**
+	 * The number of structural features of the '<em>Derby Schema</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DERBY_SCHEMA_FEATURE_COUNT = SQLSchemaPackage.SCHEMA_FEATURE_COUNT + 0;
+
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.derby.Synonym <em>Synonym</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Synonym</em>'.
+	 * @see org.eclipse.datatools.modelbase.derby.Synonym
+	 * @generated
+	 */
+	EClass getSynonym();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.derby.Synonym#getTable <em>Table</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Table</em>'.
+	 * @see org.eclipse.datatools.modelbase.derby.Synonym#getTable()
+	 * @see #getSynonym()
+	 * @generated
+	 */
+	EReference getSynonym_Table();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.derby.DerbySchema <em>Derby Schema</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Derby Schema</em>'.
+	 * @see org.eclipse.datatools.modelbase.derby.DerbySchema
+	 * @generated
+	 */
+	EClass getDerbySchema();
+
+	/**
+	 * Returns the factory that creates the instances of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the factory that creates the instances of the model.
+	 * @generated
+	 */
+	DerbyModelFactory getDerbyModelFactory();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * Defines literals for the meta objects that represent
+	 * <ul>
+	 *   <li>each class,</li>
+	 *   <li>each feature of each class,</li>
+	 *   <li>each enum,</li>
+	 *   <li>and each data type</li>
+	 * </ul>
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	interface Literals  {
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.derby.impl.SynonymImpl <em>Synonym</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.derby.impl.SynonymImpl
+		 * @see org.eclipse.datatools.modelbase.derby.impl.DerbyModelPackageImpl#getSynonym()
+		 * @generated
+		 */
+		EClass SYNONYM = eINSTANCE.getSynonym();
+
+		/**
+		 * The meta object literal for the '<em><b>Table</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference SYNONYM__TABLE = eINSTANCE.getSynonym_Table();
+
+			/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.derby.impl.DerbySchemaImpl <em>Derby Schema</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.derby.impl.DerbySchemaImpl
+		 * @see org.eclipse.datatools.modelbase.derby.impl.DerbyModelPackageImpl#getDerbySchema()
+		 * @generated
+		 */
+		EClass DERBY_SCHEMA = eINSTANCE.getDerbySchema();
+
+	}
+
+} //DerbyModelPackage
diff --git a/plugins/org.eclipse.datatools.modelbase.derby/src/org/eclipse/datatools/modelbase/derby/DerbySchema.java b/plugins/org.eclipse.datatools.modelbase.derby/src/org/eclipse/datatools/modelbase/derby/DerbySchema.java
new file mode 100644
index 0000000..271737e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.derby/src/org/eclipse/datatools/modelbase/derby/DerbySchema.java
@@ -0,0 +1,22 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.modelbase.derby;
+
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Derby Schema</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.modelbase.derby.DerbyModelPackage#getDerbySchema()
+ * @model
+ * @generated
+ */
+public interface DerbySchema extends Schema {
+} // DerbySchema
diff --git a/plugins/org.eclipse.datatools.modelbase.derby/src/org/eclipse/datatools/modelbase/derby/Synonym.java b/plugins/org.eclipse.datatools.modelbase.derby/src/org/eclipse/datatools/modelbase/derby/Synonym.java
new file mode 100644
index 0000000..b5532c3
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.derby/src/org/eclipse/datatools/modelbase/derby/Synonym.java
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.derby;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Synonym</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.derby.Synonym#getTable <em>Table</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.derby.DerbyModelPackage#getSynonym()
+ * @model
+ * @generated
+ */
+public interface Synonym extends Table, SQLObject {
+	/**
+	 * Returns the value of the '<em><b>Table</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Table</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Table</em>' reference.
+	 * @see #setTable(Table)
+	 * @see org.eclipse.datatools.modelbase.derby.DerbyModelPackage#getSynonym_Table()
+	 * @model required="true"
+	 * @generated
+	 */
+	Table getTable();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.derby.Synonym#getTable <em>Table</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Table</em>' reference.
+	 * @see #getTable()
+	 * @generated
+	 */
+	void setTable(Table value);
+
+} // Synonym
diff --git a/plugins/org.eclipse.datatools.modelbase.derby/src/org/eclipse/datatools/modelbase/derby/impl/DerbyModelFactoryImpl.java b/plugins/org.eclipse.datatools.modelbase.derby/src/org/eclipse/datatools/modelbase/derby/impl/DerbyModelFactoryImpl.java
new file mode 100644
index 0000000..ba028c5
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.derby/src/org/eclipse/datatools/modelbase/derby/impl/DerbyModelFactoryImpl.java
@@ -0,0 +1,113 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.derby.impl;
+
+import org.eclipse.datatools.modelbase.derby.*;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class DerbyModelFactoryImpl extends EFactoryImpl implements DerbyModelFactory {
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static DerbyModelFactory init() {
+		try {
+			DerbyModelFactory theDerbyModelFactory = (DerbyModelFactory)EPackage.Registry.INSTANCE.getEFactory("http:///org/eclipse/datatools/modelbase/derby/derby.ecore"); 
+			if (theDerbyModelFactory != null) {
+				return theDerbyModelFactory;
+			}
+		}
+		catch (Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new DerbyModelFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DerbyModelFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+			case DerbyModelPackage.SYNONYM: return createSynonym();
+			case DerbyModelPackage.DERBY_SCHEMA: return createDerbySchema();
+			default:
+				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Synonym createSynonym() {
+		SynonymImpl synonym = new SynonymImpl();
+		return synonym;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DerbySchema createDerbySchema() {
+		DerbySchemaImpl derbySchema = new DerbySchemaImpl();
+		return derbySchema;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DerbyModelPackage getDerbyModelPackage() {
+		return (DerbyModelPackage)getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @deprecated
+	 * @generated
+	 */
+	public static DerbyModelPackage getPackage() {
+		return DerbyModelPackage.eINSTANCE;
+	}
+
+} //DerbyModelFactoryImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.derby/src/org/eclipse/datatools/modelbase/derby/impl/DerbyModelPackageImpl.java b/plugins/org.eclipse.datatools.modelbase.derby/src/org/eclipse/datatools/modelbase/derby/impl/DerbyModelPackageImpl.java
new file mode 100644
index 0000000..786ddd6
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.derby/src/org/eclipse/datatools/modelbase/derby/impl/DerbyModelPackageImpl.java
@@ -0,0 +1,261 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.derby.impl;
+
+import org.eclipse.datatools.modelbase.derby.DerbyModelFactory;
+import org.eclipse.datatools.modelbase.derby.DerbyModelPackage;
+import org.eclipse.datatools.modelbase.derby.DerbySchema;
+import org.eclipse.datatools.modelbase.derby.Synonym;
+
+import org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage;
+
+import org.eclipse.datatools.modelbase.sql.accesscontrol.impl.SQLAccessControlPackageImpl;
+
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;
+
+import org.eclipse.datatools.modelbase.sql.constraints.impl.SQLConstraintsPackageImpl;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl;
+
+import org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsPackage;
+
+import org.eclipse.datatools.modelbase.sql.expressions.impl.SQLExpressionsPackageImpl;
+
+import org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage;
+
+import org.eclipse.datatools.modelbase.sql.routines.impl.SQLRoutinesPackageImpl;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLSchemaPackageImpl;
+
+import org.eclipse.datatools.modelbase.sql.statements.SQLStatementsPackage;
+
+import org.eclipse.datatools.modelbase.sql.statements.impl.SQLStatementsPackageImpl;
+
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+
+import org.eclipse.datatools.modelbase.sql.tables.impl.SQLTablesPackageImpl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.emf.ecore.EcorePackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.emf.ecore.impl.EcorePackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class DerbyModelPackageImpl extends EPackageImpl implements DerbyModelPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass synonymEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass derbySchemaEClass = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with
+	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+	 * package URI value.
+	 * <p>Note: the correct way to create the package is via the static
+	 * factory method {@link #init init()}, which also performs
+	 * initialization of the package, or returns the registered package,
+	 * if one already exists.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see org.eclipse.datatools.modelbase.derby.DerbyModelPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private DerbyModelPackageImpl() {
+		super(eNS_URI, DerbyModelFactory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this
+	 * model, and for any others upon which it depends.  Simple
+	 * dependencies are satisfied by calling this method on all
+	 * dependent packages before doing anything else.  This method drives
+	 * initialization for interdependent packages directly, in parallel
+	 * with this package, itself.
+	 * <p>Of this package and its interdependencies, all packages which
+	 * have not yet been registered by their URI values are first created
+	 * and registered.  The packages are then initialized in two steps:
+	 * meta-model objects for all of the packages are created before any
+	 * are initialized, since one package's meta-model objects may refer to
+	 * those of another.
+	 * <p>Invocation of this method will not affect any packages that have
+	 * already been initialized.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static DerbyModelPackage init() {
+		if (isInited) return (DerbyModelPackage)EPackage.Registry.INSTANCE.getEPackage(DerbyModelPackage.eNS_URI);
+
+		// Obtain or create and register package
+		DerbyModelPackageImpl theDerbyModelPackage = (DerbyModelPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(eNS_URI) instanceof DerbyModelPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(eNS_URI) : new DerbyModelPackageImpl());
+
+		isInited = true;
+
+		// Initialize simple dependencies
+		SQLSchemaPackage.eINSTANCE.eClass();
+		SQLConstraintsPackage.eINSTANCE.eClass();
+		SQLDataTypesPackage.eINSTANCE.eClass();
+		SQLExpressionsPackage.eINSTANCE.eClass();
+		SQLRoutinesPackage.eINSTANCE.eClass();
+		SQLStatementsPackage.eINSTANCE.eClass();
+		SQLTablesPackage.eINSTANCE.eClass();
+		SQLAccessControlPackage.eINSTANCE.eClass();
+
+		// Create package meta-data objects
+		theDerbyModelPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theDerbyModelPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theDerbyModelPackage.freeze();
+
+		return theDerbyModelPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getSynonym() {
+		return synonymEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getSynonym_Table() {
+		return (EReference)synonymEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getDerbySchema() {
+		return derbySchemaEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DerbyModelFactory getDerbyModelFactory() {
+		return (DerbyModelFactory)getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package.  This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated) return;
+		isCreated = true;
+
+		// Create classes and their features
+		synonymEClass = createEClass(SYNONYM);
+		createEReference(synonymEClass, SYNONYM__TABLE);
+
+		derbySchemaEClass = createEClass(DERBY_SCHEMA);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model.  This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized) return;
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Obtain other dependent packages
+		SQLTablesPackage theSQLTablesPackage = (SQLTablesPackage)EPackage.Registry.INSTANCE.getEPackage(SQLTablesPackage.eNS_URI);
+		SQLSchemaPackage theSQLSchemaPackage = (SQLSchemaPackage)EPackage.Registry.INSTANCE.getEPackage(SQLSchemaPackage.eNS_URI);
+
+		// Add supertypes to classes
+		synonymEClass.getESuperTypes().add(theSQLTablesPackage.getTable());
+		synonymEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+		derbySchemaEClass.getESuperTypes().add(theSQLSchemaPackage.getSchema());
+
+		// Initialize classes and features; add operations and parameters
+		initEClass(synonymEClass, Synonym.class, "Synonym", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getSynonym_Table(), theSQLTablesPackage.getTable(), null, "Table", null, 1, 1, Synonym.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(derbySchemaEClass, DerbySchema.class, "DerbySchema", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		// Create resource
+		createResource(eNS_URI);
+	}
+
+} //DerbyModelPackageImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.derby/src/org/eclipse/datatools/modelbase/derby/impl/DerbySchemaImpl.java b/plugins/org.eclipse.datatools.modelbase.derby/src/org/eclipse/datatools/modelbase/derby/impl/DerbySchemaImpl.java
new file mode 100644
index 0000000..e9dd518
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.derby/src/org/eclipse/datatools/modelbase/derby/impl/DerbySchemaImpl.java
@@ -0,0 +1,44 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.modelbase.derby.impl;
+
+import org.eclipse.datatools.modelbase.derby.DerbyModelPackage;
+import org.eclipse.datatools.modelbase.derby.DerbySchema;
+
+import org.eclipse.datatools.modelbase.sql.schema.impl.SchemaImpl;
+
+import org.eclipse.emf.ecore.EClass;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Derby Schema</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class DerbySchemaImpl extends SchemaImpl implements DerbySchema {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DerbySchemaImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return DerbyModelPackage.Literals.DERBY_SCHEMA;
+	}
+
+} //DerbySchemaImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.derby/src/org/eclipse/datatools/modelbase/derby/impl/SynonymImpl.java b/plugins/org.eclipse.datatools.modelbase.derby/src/org/eclipse/datatools/modelbase/derby/impl/SynonymImpl.java
new file mode 100644
index 0000000..42cf856
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.derby/src/org/eclipse/datatools/modelbase/derby/impl/SynonymImpl.java
@@ -0,0 +1,179 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.derby.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.derby.DerbyModelPackage;
+import org.eclipse.datatools.modelbase.derby.Synonym;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+
+import org.eclipse.datatools.modelbase.sql.tables.ReferenceType;
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+
+import org.eclipse.datatools.modelbase.sql.tables.impl.TableImpl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Synonym</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.derby.impl.SynonymImpl#getTable <em>Table</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SynonymImpl extends TableImpl implements Synonym {
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+	/**
+	 * The cached value of the '{@link #getTable() <em>Table</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTable()
+	 * @generated
+	 * @ordered
+	 */
+	protected Table table;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SynonymImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return DerbyModelPackage.Literals.SYNONYM;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Table getTable() {
+		if (table != null && table.eIsProxy()) {
+			InternalEObject oldTable = (InternalEObject)table;
+			table = (Table)eResolveProxy(oldTable);
+			if (table != oldTable) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DerbyModelPackage.SYNONYM__TABLE, oldTable, table));
+			}
+		}
+		return table;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Table basicGetTable() {
+		return table;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTable(Table newTable) {
+		Table oldTable = table;
+		table = newTable;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DerbyModelPackage.SYNONYM__TABLE, oldTable, table));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DerbyModelPackage.SYNONYM__TABLE:
+				if (resolve) return getTable();
+				return basicGetTable();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case DerbyModelPackage.SYNONYM__TABLE:
+				setTable((Table)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DerbyModelPackage.SYNONYM__TABLE:
+				setTable((Table)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DerbyModelPackage.SYNONYM__TABLE:
+				return table != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //SynonymImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.derby/src/org/eclipse/datatools/modelbase/derby/util/DerbyModelAdapterFactory.java b/plugins/org.eclipse.datatools.modelbase.derby/src/org/eclipse/datatools/modelbase/derby/util/DerbyModelAdapterFactory.java
new file mode 100644
index 0000000..f0ec6c2
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.derby/src/org/eclipse/datatools/modelbase/derby/util/DerbyModelAdapterFactory.java
@@ -0,0 +1,234 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.derby.util;
+
+import org.eclipse.datatools.modelbase.derby.*;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EModelElement;
+import org.eclipse.emf.ecore.ENamedElement;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.derby.DerbyModelPackage
+ * @generated
+ */
+public class DerbyModelAdapterFactory extends AdapterFactoryImpl {
+	/**
+	 * The cached model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static DerbyModelPackage modelPackage;
+
+	/**
+	 * Creates an instance of the adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DerbyModelAdapterFactory() {
+		if (modelPackage == null) {
+			modelPackage = DerbyModelPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Returns whether this factory is applicable for the type of the object.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+	 * <!-- end-user-doc -->
+	 * @return whether this factory is applicable for the type of the object.
+	 * @generated
+	 */
+	public boolean isFactoryForType(Object object) {
+		if (object == modelPackage) {
+			return true;
+		}
+		if (object instanceof EObject) {
+			return ((EObject)object).eClass().getEPackage() == modelPackage;
+		}
+		return false;
+	}
+
+	/**
+	 * The switch that delegates to the <code>createXXX</code> methods.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DerbyModelSwitch modelSwitch =
+		new DerbyModelSwitch() {
+			public Object caseSynonym(Synonym object) {
+				return createSynonymAdapter();
+			}
+			public Object caseDerbySchema(DerbySchema object) {
+				return createDerbySchemaAdapter();
+			}
+			public Object caseEModelElement(EModelElement object) {
+				return createEModelElementAdapter();
+			}
+			public Object caseENamedElement(ENamedElement object) {
+				return createENamedElementAdapter();
+			}
+			public Object caseSQLObject(SQLObject object) {
+				return createSQLObjectAdapter();
+			}
+			public Object caseTable(Table object) {
+				return createTableAdapter();
+			}
+			public Object caseSchema(Schema object) {
+				return createSchemaAdapter();
+			}
+			public Object defaultCase(EObject object) {
+				return createEObjectAdapter();
+			}
+		};
+
+	/**
+	 * Creates an adapter for the <code>target</code>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param target the object to adapt.
+	 * @return the adapter for the <code>target</code>.
+	 * @generated
+	 */
+	public Adapter createAdapter(Notifier target) {
+		return (Adapter)modelSwitch.doSwitch((EObject)target);
+	}
+
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.derby.Synonym <em>Synonym</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.derby.Synonym
+	 * @generated
+	 */
+	public Adapter createSynonymAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.derby.DerbySchema <em>Derby Schema</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.derby.DerbySchema
+	 * @generated
+	 */
+	public Adapter createDerbySchemaAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecore.EModelElement <em>EModel Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.emf.ecore.EModelElement
+	 * @generated
+	 */
+	public Adapter createEModelElementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecore.ENamedElement <em>ENamed Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.emf.ecore.ENamedElement
+	 * @generated
+	 */
+	public Adapter createENamedElementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.schema.SQLObject <em>SQL Object</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLObject
+	 * @generated
+	 */
+	public Adapter createSQLObjectAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.tables.Table <em>Table</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Table
+	 * @generated
+	 */
+	public Adapter createTableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.schema.Schema <em>Schema</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Schema
+	 * @generated
+	 */
+	public Adapter createSchemaAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for the default case.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @generated
+	 */
+	public Adapter createEObjectAdapter() {
+		return null;
+	}
+
+} //DerbyModelAdapterFactory
diff --git a/plugins/org.eclipse.datatools.modelbase.derby/src/org/eclipse/datatools/modelbase/derby/util/DerbyModelSwitch.java b/plugins/org.eclipse.datatools.modelbase.derby/src/org/eclipse/datatools/modelbase/derby/util/DerbyModelSwitch.java
new file mode 100644
index 0000000..843c1c0
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.derby/src/org/eclipse/datatools/modelbase/derby/util/DerbyModelSwitch.java
@@ -0,0 +1,246 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.derby.util;
+
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.derby.*;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EModelElement;
+import org.eclipse.emf.ecore.ENamedElement;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.derby.DerbyModelPackage
+ * @generated
+ */
+public class DerbyModelSwitch {
+	/**
+	 * The cached model package
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static DerbyModelPackage modelPackage;
+
+	/**
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DerbyModelSwitch() {
+		if (modelPackage == null) {
+			modelPackage = DerbyModelPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	public Object doSwitch(EObject theEObject) {
+		return doSwitch(theEObject.eClass(), theEObject);
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	protected Object doSwitch(EClass theEClass, EObject theEObject) {
+		if (theEClass.eContainer() == modelPackage) {
+			return doSwitch(theEClass.getClassifierID(), theEObject);
+		}
+		else {
+			List eSuperTypes = theEClass.getESuperTypes();
+			return
+				eSuperTypes.isEmpty() ?
+					defaultCase(theEObject) :
+					doSwitch((EClass)eSuperTypes.get(0), theEObject);
+		}
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	protected Object doSwitch(int classifierID, EObject theEObject) {
+		switch (classifierID) {
+			case DerbyModelPackage.SYNONYM: {
+				Synonym synonym = (Synonym)theEObject;
+				Object result = caseSynonym(synonym);
+				if (result == null) result = caseTable(synonym);
+				if (result == null) result = caseSQLObject(synonym);
+				if (result == null) result = caseENamedElement(synonym);
+				if (result == null) result = caseEModelElement(synonym);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DerbyModelPackage.DERBY_SCHEMA: {
+				DerbySchema derbySchema = (DerbySchema)theEObject;
+				Object result = caseDerbySchema(derbySchema);
+				if (result == null) result = caseSchema(derbySchema);
+				if (result == null) result = caseSQLObject(derbySchema);
+				if (result == null) result = caseENamedElement(derbySchema);
+				if (result == null) result = caseEModelElement(derbySchema);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			default: return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Synonym</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Synonym</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseSynonym(Synonym object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Derby Schema</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Derby Schema</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseDerbySchema(DerbySchema object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EModel Element</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>EModel Element</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseEModelElement(EModelElement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>ENamed Element</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>ENamed Element</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseENamedElement(ENamedElement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>SQL Object</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>SQL Object</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseSQLObject(SQLObject object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Table</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Table</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseTable(Table object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Schema</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Schema</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseSchema(Schema object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch, but this is the last case anyway.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+	 * @generated
+	 */
+	public Object defaultCase(EObject object) {
+		return null;
+	}
+
+} //DerbyModelSwitch
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/.classpath b/plugins/org.eclipse.datatools.modelbase.sql.edit/.classpath
new file mode 100644
index 0000000..304e861
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/.gitignore b/plugins/org.eclipse.datatools.modelbase.sql.edit/.gitignore
new file mode 100644
index 0000000..8c13a56
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/.gitignore
@@ -0,0 +1,4 @@
+bin
+temp.folder
+build.xml
+sqlmodel.edit.jar
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/.project b/plugins/org.eclipse.datatools.modelbase.sql.edit/.project
new file mode 100644
index 0000000..a37cc6d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.datatools.modelbase.sql.edit</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+	</natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.datatools.modelbase.sql.edit/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..287541f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+#Tue Feb 17 15:37:48 PST 2009
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/META-INF/MANIFEST.MF b/plugins/org.eclipse.datatools.modelbase.sql.edit/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..589a7a6
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/META-INF/MANIFEST.MF
@@ -0,0 +1,26 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.datatools.modelbase.sql.edit;singleton:=true
+Bundle-Version: 1.2.1.qualifier
+Bundle-Activator: org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin$Implementation
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Export-Package: 
+ org.eclipse.datatools.modelbase.sql.accesscontrol.provider,
+ org.eclipse.datatools.modelbase.sql.constraints.provider,
+ org.eclipse.datatools.modelbase.sql.datatypes.provider,
+ org.eclipse.datatools.modelbase.sql.expressions.provider,
+ org.eclipse.datatools.modelbase.sql.routines.provider,
+ org.eclipse.datatools.modelbase.sql.schema.provider,
+ org.eclipse.datatools.modelbase.sql.statements.provider,
+ org.eclipse.datatools.modelbase.sql.tables.provider
+Require-Bundle: 
+ org.eclipse.core.runtime,
+ org.eclipse.datatools.modelbase.sql;visibility:=reexport,
+ org.eclipse.emf.edit;visibility:=reexport,
+ org.eclipse.emf.ecore;visibility:=reexport,
+ org.eclipse.emf.ecore.edit;visibility:=reexport
+Eclipse-LazyStart: true
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/about.html b/plugins/org.eclipse.datatools.modelbase.sql.edit/about.html
new file mode 100644
index 0000000..d0a7cc2
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 15, 2009</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/build.properties b/plugins/org.eclipse.datatools.modelbase.sql.edit/build.properties
new file mode 100644
index 0000000..016dcfc
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/build.properties
@@ -0,0 +1,24 @@
+##################################################################
+#
+# <copyright>
+# </copyright>
+#
+# $Id: build.properties,v 1.12 2007/06/07 16:11:51 jgraham Exp $
+#
+##################################################################
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               plugin.xml,\
+               about.html,\
+               icons/,\
+               plugin.properties
+
+src.dir =		src/
+plugin.version =	1.0.0.200706071
+javadoc.dir =		doc/api/
+download.dir =		./download/
+javac.source =		1.4
+javac.target =		1.4
+src.includes = about.html
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/build.xml b/plugins/org.eclipse.datatools.modelbase.sql.edit/build.xml
new file mode 100644
index 0000000..981f6fc
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/build.xml
@@ -0,0 +1,176 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ *************************************************************************
+ * Copyright (c) 2005 Sybase, Inc. and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *  Sybase, Inc.  - initial API and implementation
+ *  
+ ***************************************************************************
+ -->
+<project name="org.eclipse.datatools.modelbase.edit" default="build.jars" basedir=".">
+	<import file="../org.eclipse.datatools.build/common_build.xml" optional="true"/>
+	<property name="module.name" value="org.eclipse.datatools.modelbase.edit"/>
+	<property name="basews" value="${ws}"/>
+	<property name="baseos" value="${os}"/>
+	<property name="basearch" value="${arch}"/>
+	<property name="basenl" value="${nl}"/>
+	<property name="eclipse.home" location="."/>
+	<property file="build.properties"/>
+	<!-- JavaDoc settings -->
+	<property name="javadocWindowTitle" value="DTP SQL Edit Model"/>
+	<property name="javadocDocTitle" value="DTP SQL Edit Model API (Internal)"/>
+	<property name="javadocPackages" value="org.eclipse.datatools.modelbase.edit.*"/>
+	<property name="javadocFooter" value="&lt;i>Copyright &#169;  2005 IBM Corporation and others. All rights reserved. &lt;/i>"/>
+	<!-- Compiler settings. -->
+	<property name="javacFailOnError" value="true"/>
+	<property name="javacDebugInfo" value="on"/>
+	<property name="javacVerbose" value="true"/>
+	<property name="javacSource" value="${javac.source}"/>
+	<property name="javacTarget" value="${javac.target}"/>
+	<property name="compilerArg" value=""/>
+	<path id="path_bootclasspath">
+		<fileset dir="${java.home}/lib">
+			<include name="*.jar"/>
+		</fileset>
+		<fileset dir="${eclipse.home}/plugins">
+			<!-- Include jared plug-ins -->
+			<include name="org.eclipse.core.runtime_*.jar"/>
+			<include name="org.eclipse.osgi_*.jar"/>
+			<include name="org.eclipse.emf.ecore_*.jar"/>
+			<include name="org.eclipse.emf.common_*.jar"/>
+			<include name="org.eclipse.emf.ecore.sdo_*.jar"/>
+			<include name="org.eclipse.emf.commonj.sdo_*.jar"/>
+			<include name="org.eclipse.emf.ecore.xmi_*.jar"/>
+			<include name="org.eclipse.emf.ecore.change_*.jar"/>
+			<include name="org.eclipse.emf.edit_*.jar"/>
+			<include name="org.eclipse.emf.ecore.edit_*.jar"/>
+			<!-- Include expanded plug-ins -->
+			<include name="org.eclipse.core.runtime_*/org.eclipse.core.runtime_*.jar"/>
+			<include name="org.eclipse.osgi_*/org.eclipse.osgi_*.jar"/>
+			<include name="org.eclipse.emf.ecore_*/org.eclipse.emf.ecore_*.jar"/>
+			<include name="org.eclipse.emf.common_*/org.eclipse.emf.common_*.jar"/>
+			<include name="org.eclipse.emf.ecore.sdo_*/org.eclipse.emf.ecore.sdo_*.jar"/>
+			<include name="org.eclipse.emf.commonj.sdo_*/org.eclipse.emf.commonj.sdo_*.jar"/>
+			<include name="org.eclipse.emf.ecore.xmi_*/org.eclipse.emf.ecore.xmi_*.jar"/>
+			<include name="org.eclipse.emf.ecore.change_*/org.eclipse.emf.ecore.change_*.jar"/>
+			<include name="org.eclipse.emf.edit_*/org.eclipse.emf.edit_*.jar"/>
+			<include name="org.eclipse.emf.ecore.edit_*/org.eclipse.emf.ecore.edit_*.jar"/>
+		</fileset>
+		<!-- Dependencies on other DTP plug-ins, built before this one -->
+		<fileset dir="../">
+			<include name="org.eclipse.datatools.modelbase.sql/bin/*"/>
+			<include name="org.eclipse.datatools.modelbase.sql/sqlmodel.jar"/>
+		</fileset>
+	</path>
+	<property name="bootclasspath" refid="path_bootclasspath"/>
+	<target name="init" depends="properties">
+		<condition property="pluginTemp" value="${buildTempFolder}/plugins">
+			<isset property="buildTempFolder"/>
+		</condition>
+		<property name="pluginTemp" value="${basedir}"/>
+		<condition property="build.result.folder" value="${pluginTemp}/org.eclipse.datatools.modelbase.sql.edit">
+			<isset property="buildTempFolder"/>
+		</condition>
+		<property name="build.result.folder" value="${basedir}"/>
+		<property name="temp.folder" value="${basedir}/temp.folder"/>
+		<property name="plugin.destination" value="${basedir}"/>
+	</target>
+	<target name="properties" if="eclipse.running">
+		<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
+	</target>
+	<target name="build.update.jar" depends="init" description="Build the plug-in: org.eclipse.datatools.modelbase.edit for an update site.">
+		<delete dir="${temp.folder}"/>
+		<mkdir dir="${temp.folder}"/>
+		<antcall target="build.jars"/>
+		<antcall target="gather.bin.parts">
+			<param name="destination.temp.folder" value="${temp.folder}/"/>
+		</antcall>
+		<zip destfile="${plugin.destination}/${module.name}_${plugin.version}.jar" basedir="${temp.folder}/${module.name}_${plugin.version}" filesonly="false" whenempty="skip" update="false"/>
+		<delete dir="${temp.folder}"/>
+	</target>
+	<target name="sqlmodel.edit.jar" depends="init" unless="sqlmodel.edit.jar" description="Create jar: org.eclipse.datatools.modelbase.edit sqlmodel.edit.jar.">
+		<delete dir="${temp.folder}/sqlmodel.edit.jar.bin"/>
+		<mkdir dir="${temp.folder}/sqlmodel.edit.jar.bin"/>
+		<!-- compile the source code -->
+		<javac destdir="${temp.folder}/sqlmodel.edit.jar.bin" failonerror="${javacFailOnError}" verbose="${javacVerbose}" debug="${javacDebugInfo}" includeAntRuntime="no" bootclasspath="${bootclasspath}" source="${javacSource}" target="${javacTarget}">
+			<compilerarg line="${compilerArg}"/>
+			<classpath refid="path_bootclasspath"/>
+			<src path="src/"/>
+		</javac>
+		<!-- Copy necessary resources -->
+		<copy todir="${temp.folder}/sqlmodel.edit.jar.bin" failonerror="true" overwrite="false">
+			<fileset dir="src/" excludes="**/*.java, **/package.htm*,null"/>
+		</copy>
+		<mkdir dir="${build.result.folder}"/>
+		<jar destfile="${build.result.folder}/sqlmodel.edit.jar" basedir="${temp.folder}/sqlmodel.edit.jar.bin"/>
+		<delete dir="${temp.folder}/sqlmodel.edit.jar.bin"/>
+	</target>
+	<target name="sqlmodel.editsrc.zip" depends="init" unless="sqlmodel.editsrc.zip">
+		<mkdir dir="${build.result.folder}"/>
+		<zip destfile="${build.result.folder}/sqlmodel.editsrc.zip" filesonly="false" whenempty="skip" update="false">
+			<fileset dir="src/" includes="**/*.java"/>
+		</zip>
+	</target>
+	<target name="build.jars" depends="init" description="Build all the jars for the plug-in: org.eclipse.datatools.modelbase.edit.">
+		<available property="sqlmodel.edit.jar" file="${build.result.folder}/sqlmodel.edit.jar"/>
+		<antcall target="sqlmodel.edit.jar"/>
+	</target>
+	<target name="build.sources" depends="init">
+		<available property="sqlmodel.editsrc.zip" file="${build.result.folder}/sqlmodel.editsrc.zip"/>
+		<antcall target="sqlmodel.editsrc.zip"/>
+	</target>
+	<target name="gather.bin.parts" depends="init" if="destination.temp.folder">
+		<mkdir dir="${destination.temp.folder}/${module.name}_${plugin.version}"/>
+		<copy todir="${destination.temp.folder}/${module.name}_${plugin.version}" failonerror="true" overwrite="false">
+			<fileset dir="${build.result.folder}" includes="sqlmodel.edit.jar"/>
+		</copy>
+		<copy todir="${destination.temp.folder}/${module.name}_${plugin.version}" failonerror="true" overwrite="false">
+			<fileset dir="${basedir}" includes="plugin.xml,META-INF/,sqlmodel.edit.jar,plugin.properties,icons/,about.html"/>
+		</copy>
+		<copy todir="${destination.temp.folder}/${module.name}_${plugin.version}" failonerror="false" overwrite="false">
+			<fileset dir="${basedir}" includes="sqlmodel.editsrc.zip"/>
+		</copy>
+	</target>
+	<target name="build.zips" depends="init"/>
+	<target name="gather.sources" depends="init" if="destination.temp.folder">
+		<mkdir dir="${destination.temp.folder}/${module.name}_${plugin.version}"/>
+		<copy file="${build.result.folder}/sqlmodel.editsrc.zip" todir="${destination.temp.folder}/${module.name}_${plugin.version}" failonerror="false" overwrite="false"/>
+	</target>
+	<target name="gather.logs" depends="init" if="destination.temp.folder">
+		<mkdir dir="${destination.temp.folder}/${module.name}_${plugin.version}"/>
+		<copy file="${temp.folder}/sqlmodel.edit.jar.bin.log" todir="${destination.temp.folder}/${module.name}_${plugin.version}" failonerror="false" overwrite="false"/>
+	</target>
+	<target name="clean" depends="init" description="Clean the plug-in: org.eclipse.datatools.modelbase.edit of all the zips, jars and logs created.">
+		<delete file="${build.result.folder}/sqlmodel.edit.jar"/>
+		<delete file="${build.result.folder}/sqlmodel.editsrc.zip"/>
+		<delete file="${plugin.destination}/${module.name}_${plugin.version}.jar"/>
+		<delete file="${plugin.destination}/${module.name}_${plugin.version}.zip"/>
+		<delete dir="${temp.folder}"/>
+	</target>
+	<target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+		<eclipse.convertPath fileSystemPath="C:/V3/3.1/eclipse/workspace-dtp/org.eclipse.datatools.modelbase.sql.edit" property="resourcePath"/>
+		<eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+	</target>
+	<target name="zip.plugin" depends="init" description="Create a zip containing all the elements for the plug-in: org.eclipse.datatools.modelbase.edit.">
+		<delete dir="${temp.folder}"/>
+		<mkdir dir="${temp.folder}"/>
+		<antcall target="build.jars"/>
+		<antcall target="build.sources"/>
+		<antcall target="gather.bin.parts">
+			<param name="destination.temp.folder" value="${temp.folder}/"/>
+		</antcall>
+		<antcall target="gather.sources">
+			<param name="destination.temp.folder" value="${temp.folder}/"/>
+		</antcall>
+		<delete>
+			<fileset dir="${temp.folder}" includes="**/*.bin.log"/>
+		</delete>
+		<zip destfile="${plugin.destination}/${module.name}_${plugin.version}.zip" basedir="${temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+		<delete dir="${temp.folder}"/>
+	</target>
+</project>
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateAssertion_searchCondition_SearchConditionDefault.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateAssertion_searchCondition_SearchConditionDefault.gif
new file mode 100644
index 0000000..9099082
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateAssertion_searchCondition_SearchConditionDefault.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateAuthorizationIdentifier_receivedPrivilege_DoubleObjectPrivilege.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateAuthorizationIdentifier_receivedPrivilege_DoubleObjectPrivilege.gif
new file mode 100644
index 0000000..fa6b936
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateAuthorizationIdentifier_receivedPrivilege_DoubleObjectPrivilege.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateAuthorizationIdentifier_receivedPrivilege_Privilege.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateAuthorizationIdentifier_receivedPrivilege_Privilege.gif
new file mode 100644
index 0000000..e29b313
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateAuthorizationIdentifier_receivedPrivilege_Privilege.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateAuthorizationIdentifier_receivedPrivilege_TablePrivilege.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateAuthorizationIdentifier_receivedPrivilege_TablePrivilege.gif
new file mode 100644
index 0000000..aa0cd74
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateAuthorizationIdentifier_receivedPrivilege_TablePrivilege.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateBaseTable_constraints_CheckConstraint.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateBaseTable_constraints_CheckConstraint.gif
new file mode 100644
index 0000000..7ffb512
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateBaseTable_constraints_CheckConstraint.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateBaseTable_constraints_ForeignKey.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateBaseTable_constraints_ForeignKey.gif
new file mode 100644
index 0000000..6a2ca34
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateBaseTable_constraints_ForeignKey.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateBaseTable_constraints_PrimaryKey.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateBaseTable_constraints_PrimaryKey.gif
new file mode 100644
index 0000000..8e4853e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateBaseTable_constraints_PrimaryKey.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateBaseTable_constraints_UniqueConstraint.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateBaseTable_constraints_UniqueConstraint.gif
new file mode 100644
index 0000000..fec2a8a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateBaseTable_constraints_UniqueConstraint.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateCheckConstraint_searchCondition_SearchConditionDefault.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateCheckConstraint_searchCondition_SearchConditionDefault.gif
new file mode 100644
index 0000000..d799c18
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateCheckConstraint_searchCondition_SearchConditionDefault.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateCollectionDataType_elementType_ElementType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateCollectionDataType_elementType_ElementType.gif
new file mode 100644
index 0000000..051fac7
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateCollectionDataType_elementType_ElementType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateColumn_generateExpression_ValueExpressionDefault.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateColumn_generateExpression_ValueExpressionDefault.gif
new file mode 100644
index 0000000..4d1f9ad
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateColumn_generateExpression_ValueExpressionDefault.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateColumn_identitySpecifier_IdentitySpecifier.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateColumn_identitySpecifier_IdentitySpecifier.gif
new file mode 100644
index 0000000..4d1f9ad
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateColumn_identitySpecifier_IdentitySpecifier.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateDerivedTable_queryExpression_QueryExpressionDefault.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateDerivedTable_queryExpression_QueryExpressionDefault.gif
new file mode 100644
index 0000000..b84f5fc
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateDerivedTable_queryExpression_QueryExpressionDefault.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateDistinctUserDefinedType_predefinedRepresentation_ApproximateNumericDataType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateDistinctUserDefinedType_predefinedRepresentation_ApproximateNumericDataType.gif
new file mode 100644
index 0000000..0c81e8e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateDistinctUserDefinedType_predefinedRepresentation_ApproximateNumericDataType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateDistinctUserDefinedType_predefinedRepresentation_BinaryStringDataType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateDistinctUserDefinedType_predefinedRepresentation_BinaryStringDataType.gif
new file mode 100644
index 0000000..f8935bb
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateDistinctUserDefinedType_predefinedRepresentation_BinaryStringDataType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateDistinctUserDefinedType_predefinedRepresentation_BooleanDataType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateDistinctUserDefinedType_predefinedRepresentation_BooleanDataType.gif
new file mode 100644
index 0000000..c0e9653
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateDistinctUserDefinedType_predefinedRepresentation_BooleanDataType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateDistinctUserDefinedType_predefinedRepresentation_CharacterStringDataType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateDistinctUserDefinedType_predefinedRepresentation_CharacterStringDataType.gif
new file mode 100644
index 0000000..5498173
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateDistinctUserDefinedType_predefinedRepresentation_CharacterStringDataType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateDistinctUserDefinedType_predefinedRepresentation_DataLinkDataType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateDistinctUserDefinedType_predefinedRepresentation_DataLinkDataType.gif
new file mode 100644
index 0000000..5801044
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateDistinctUserDefinedType_predefinedRepresentation_DataLinkDataType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateDistinctUserDefinedType_predefinedRepresentation_DateDataType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateDistinctUserDefinedType_predefinedRepresentation_DateDataType.gif
new file mode 100644
index 0000000..83d7ad8
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateDistinctUserDefinedType_predefinedRepresentation_DateDataType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateDistinctUserDefinedType_predefinedRepresentation_FixedPrecisionDataType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateDistinctUserDefinedType_predefinedRepresentation_FixedPrecisionDataType.gif
new file mode 100644
index 0000000..0d9f240
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateDistinctUserDefinedType_predefinedRepresentation_FixedPrecisionDataType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateDistinctUserDefinedType_predefinedRepresentation_IntegerDataType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateDistinctUserDefinedType_predefinedRepresentation_IntegerDataType.gif
new file mode 100644
index 0000000..f8935bb
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateDistinctUserDefinedType_predefinedRepresentation_IntegerDataType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateDistinctUserDefinedType_predefinedRepresentation_IntervalDataType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateDistinctUserDefinedType_predefinedRepresentation_IntervalDataType.gif
new file mode 100644
index 0000000..5801044
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateDistinctUserDefinedType_predefinedRepresentation_IntervalDataType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateDistinctUserDefinedType_predefinedRepresentation_TimeDataType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateDistinctUserDefinedType_predefinedRepresentation_TimeDataType.gif
new file mode 100644
index 0000000..fce5754
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateDistinctUserDefinedType_predefinedRepresentation_TimeDataType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateDistinctUserDefinedType_predefinedRepresentation_XMLDataType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateDistinctUserDefinedType_predefinedRepresentation_XMLDataType.gif
new file mode 100644
index 0000000..5498173
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateDistinctUserDefinedType_predefinedRepresentation_XMLDataType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateDomain_constraint_CheckConstraint.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateDomain_constraint_CheckConstraint.gif
new file mode 100644
index 0000000..14bbb4b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateDomain_constraint_CheckConstraint.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateEModelElement_eAnnotations_EAnnotation.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateEModelElement_eAnnotations_EAnnotation.gif
new file mode 100644
index 0000000..8653454
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateEModelElement_eAnnotations_EAnnotation.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateFunction_returnCast_Parameter.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateFunction_returnCast_Parameter.gif
new file mode 100644
index 0000000..9abea5d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateFunction_returnCast_Parameter.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateFunction_returnScalar_Parameter.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateFunction_returnScalar_Parameter.gif
new file mode 100644
index 0000000..b2720b1
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateFunction_returnScalar_Parameter.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateFunction_returnScaler_Parameter.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateFunction_returnScaler_Parameter.gif
new file mode 100644
index 0000000..9abea5d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateFunction_returnScaler_Parameter.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateFunction_returnTable_RoutineResultTable.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateFunction_returnTable_RoutineResultTable.gif
new file mode 100644
index 0000000..7b2c093
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateFunction_returnTable_RoutineResultTable.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateIndexMember_expression_IndexExpression.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateIndexMember_expression_IndexExpression.gif
new file mode 100644
index 0000000..e7851f7
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateIndexMember_expression_IndexExpression.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateIndex_includedMembers_IndexMember.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateIndex_includedMembers_IndexMember.gif
new file mode 100644
index 0000000..a191025
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateIndex_includedMembers_IndexMember.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateIndex_members_IndexMember.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateIndex_members_IndexMember.gif
new file mode 100644
index 0000000..a191025
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateIndex_members_IndexMember.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateParameter_stringTypeOption_CharacterStringDataType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateParameter_stringTypeOption_CharacterStringDataType.gif
new file mode 100644
index 0000000..3052dce
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateParameter_stringTypeOption_CharacterStringDataType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateProcedure_resultSet_RoutineResultTable.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateProcedure_resultSet_RoutineResultTable.gif
new file mode 100644
index 0000000..e7c430b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateProcedure_resultSet_RoutineResultTable.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateRoutine_parameters_Parameter.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateRoutine_parameters_Parameter.gif
new file mode 100644
index 0000000..49e7eb9
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateRoutine_parameters_Parameter.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateRoutine_source_Source.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateRoutine_source_Source.gif
new file mode 100644
index 0000000..55d7be5
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateRoutine_source_Source.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateRowDataType_fields_Field.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateRowDataType_fields_Field.gif
new file mode 100644
index 0000000..048f1ac
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateRowDataType_fields_Field.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateSQLObject_dependencies_Dependency.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateSQLObject_dependencies_Dependency.gif
new file mode 100644
index 0000000..df22833
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateSQLObject_dependencies_Dependency.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateSequence_identity_IdentitySpecifier.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateSequence_identity_IdentitySpecifier.gif
new file mode 100644
index 0000000..37dad61
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateSequence_identity_IdentitySpecifier.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateStructuredUserDefinedType_attributes_AttributeDefinition.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateStructuredUserDefinedType_attributes_AttributeDefinition.gif
new file mode 100644
index 0000000..b928348
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateStructuredUserDefinedType_attributes_AttributeDefinition.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateStructuredUserDefinedType_methods_Method.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateStructuredUserDefinedType_methods_Method.gif
new file mode 100644
index 0000000..5ac844d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateStructuredUserDefinedType_methods_Method.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateTable_columns_Column.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateTable_columns_Column.gif
new file mode 100644
index 0000000..3da98f7
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateTable_columns_Column.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateTrigger_actionStatement_SQLStatementDefault.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateTrigger_actionStatement_SQLStatementDefault.gif
new file mode 100644
index 0000000..7932e95
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateTrigger_actionStatement_SQLStatementDefault.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateTrigger_when_SearchConditionDefault.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateTrigger_when_SearchConditionDefault.gif
new file mode 100644
index 0000000..40c00f7
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateTrigger_when_SearchConditionDefault.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateTypedElement_containedType_ApproximateNumericDataType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateTypedElement_containedType_ApproximateNumericDataType.gif
new file mode 100644
index 0000000..871e70c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateTypedElement_containedType_ApproximateNumericDataType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateTypedElement_containedType_BinaryStringDataType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateTypedElement_containedType_BinaryStringDataType.gif
new file mode 100644
index 0000000..8129448
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateTypedElement_containedType_BinaryStringDataType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateTypedElement_containedType_BooleanDataType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateTypedElement_containedType_BooleanDataType.gif
new file mode 100644
index 0000000..bb1ce3a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateTypedElement_containedType_BooleanDataType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateTypedElement_containedType_CharacterStringDataType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateTypedElement_containedType_CharacterStringDataType.gif
new file mode 100644
index 0000000..67d4e43
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateTypedElement_containedType_CharacterStringDataType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateTypedElement_containedType_DataLinkDataType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateTypedElement_containedType_DataLinkDataType.gif
new file mode 100644
index 0000000..a6265c4
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateTypedElement_containedType_DataLinkDataType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateTypedElement_containedType_DateDataType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateTypedElement_containedType_DateDataType.gif
new file mode 100644
index 0000000..05f59b0
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateTypedElement_containedType_DateDataType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateTypedElement_containedType_FixedPrecisionDataType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateTypedElement_containedType_FixedPrecisionDataType.gif
new file mode 100644
index 0000000..9679858
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateTypedElement_containedType_FixedPrecisionDataType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateTypedElement_containedType_IntegerDataType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateTypedElement_containedType_IntegerDataType.gif
new file mode 100644
index 0000000..8129448
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateTypedElement_containedType_IntegerDataType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateTypedElement_containedType_IntervalDataType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateTypedElement_containedType_IntervalDataType.gif
new file mode 100644
index 0000000..a6265c4
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateTypedElement_containedType_IntervalDataType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateTypedElement_containedType_RowDataType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateTypedElement_containedType_RowDataType.gif
new file mode 100644
index 0000000..e0b929e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateTypedElement_containedType_RowDataType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateTypedElement_containedType_TimeDataType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateTypedElement_containedType_TimeDataType.gif
new file mode 100644
index 0000000..8cf4d77
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateTypedElement_containedType_TimeDataType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateTypedElement_containedType_XMLDataType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateTypedElement_containedType_XMLDataType.gif
new file mode 100644
index 0000000..67d4e43
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateTypedElement_containedType_XMLDataType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateUserDefinedType_ordering_UserDefinedTypeOrdering.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateUserDefinedType_ordering_UserDefinedTypeOrdering.gif
new file mode 100644
index 0000000..1f3ec42
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/ctool16/CreateUserDefinedType_ordering_UserDefinedTypeOrdering.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/ApproximateNumericDataType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/ApproximateNumericDataType.gif
new file mode 100644
index 0000000..8a5c70c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/ApproximateNumericDataType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/ArrayDataType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/ArrayDataType.gif
new file mode 100644
index 0000000..a26660e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/ArrayDataType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Assertion.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Assertion.gif
new file mode 100644
index 0000000..4365960
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Assertion.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/AttributeDefinition.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/AttributeDefinition.gif
new file mode 100644
index 0000000..a3908bc
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/AttributeDefinition.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/AuthorizationIdentifier.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/AuthorizationIdentifier.gif
new file mode 100644
index 0000000..a26660e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/AuthorizationIdentifier.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/BaseTable.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/BaseTable.gif
new file mode 100644
index 0000000..be22463
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/BaseTable.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/BinaryStringDataType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/BinaryStringDataType.gif
new file mode 100644
index 0000000..05dc74a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/BinaryStringDataType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/BooleanDataType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/BooleanDataType.gif
new file mode 100644
index 0000000..45731fe
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/BooleanDataType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/BuiltInFunction.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/BuiltInFunction.gif
new file mode 100644
index 0000000..98b351f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/BuiltInFunction.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Catalog.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Catalog.gif
new file mode 100644
index 0000000..d600d00
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Catalog.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/CharacterSet.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/CharacterSet.gif
new file mode 100644
index 0000000..33a997a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/CharacterSet.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/CharacterStringDataType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/CharacterStringDataType.gif
new file mode 100644
index 0000000..2b69256
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/CharacterStringDataType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/CheckConstraint.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/CheckConstraint.gif
new file mode 100644
index 0000000..14af8aa
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/CheckConstraint.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/CollectionDataType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/CollectionDataType.gif
new file mode 100644
index 0000000..cdd3b76
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/CollectionDataType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Column.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Column.gif
new file mode 100644
index 0000000..136e3b2
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Column.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Comment.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Comment.gif
new file mode 100644
index 0000000..5ab6695
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Comment.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Constraint.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Constraint.gif
new file mode 100644
index 0000000..db7414e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Constraint.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/ConstructedDataType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/ConstructedDataType.gif
new file mode 100644
index 0000000..ea58a65
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/ConstructedDataType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/DataLinkDataType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/DataLinkDataType.gif
new file mode 100644
index 0000000..c3370c7
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/DataLinkDataType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/DataType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/DataType.gif
new file mode 100644
index 0000000..9041598
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/DataType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Database.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Database.gif
new file mode 100644
index 0000000..10d2229
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Database.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/DateDataType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/DateDataType.gif
new file mode 100644
index 0000000..83afb9b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/DateDataType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Dependency.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Dependency.gif
new file mode 100644
index 0000000..33a997a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Dependency.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/DerivedTable.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/DerivedTable.gif
new file mode 100644
index 0000000..ef56c14
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/DerivedTable.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/DistinctUserDefinedType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/DistinctUserDefinedType.gif
new file mode 100644
index 0000000..33a997a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/DistinctUserDefinedType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Domain.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Domain.gif
new file mode 100644
index 0000000..c4a8af4
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Domain.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/DoubleObjectPrivilege.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/DoubleObjectPrivilege.gif
new file mode 100644
index 0000000..83afb9b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/DoubleObjectPrivilege.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/ElementType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/ElementType.gif
new file mode 100644
index 0000000..cb1755a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/ElementType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Event.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Event.gif
new file mode 100644
index 0000000..e4b530e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Event.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/ExactNumericDataType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/ExactNumericDataType.gif
new file mode 100644
index 0000000..a17dc7d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/ExactNumericDataType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Field.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Field.gif
new file mode 100644
index 0000000..8a5c70c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Field.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/FixedPrecisionDataType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/FixedPrecisionDataType.gif
new file mode 100644
index 0000000..136e3b2
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/FixedPrecisionDataType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/ForeignKey.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/ForeignKey.gif
new file mode 100644
index 0000000..e4bc22d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/ForeignKey.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Function.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Function.gif
new file mode 100644
index 0000000..c00aedf
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Function.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Group.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Group.gif
new file mode 100644
index 0000000..90d10f9
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Group.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/IdentitySpecifier.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/IdentitySpecifier.gif
new file mode 100644
index 0000000..9250fec
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/IdentitySpecifier.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Index.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Index.gif
new file mode 100644
index 0000000..7c2aaac
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Index.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/IndexExpression.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/IndexExpression.gif
new file mode 100644
index 0000000..30f0c48
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/IndexExpression.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/IndexMember.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/IndexMember.gif
new file mode 100644
index 0000000..e4bc22d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/IndexMember.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/IntegerDataType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/IntegerDataType.gif
new file mode 100644
index 0000000..05dc74a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/IntegerDataType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/IntervalDataType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/IntervalDataType.gif
new file mode 100644
index 0000000..c3370c7
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/IntervalDataType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Method.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Method.gif
new file mode 100644
index 0000000..134551b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Method.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/MultisetDataType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/MultisetDataType.gif
new file mode 100644
index 0000000..ed87474
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/MultisetDataType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/NumericalDataType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/NumericalDataType.gif
new file mode 100644
index 0000000..5915591
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/NumericalDataType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Parameter.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Parameter.gif
new file mode 100644
index 0000000..a3908bc
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Parameter.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/PersistentTable.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/PersistentTable.gif
new file mode 100644
index 0000000..45731fe
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/PersistentTable.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/PredefinedDataType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/PredefinedDataType.gif
new file mode 100644
index 0000000..2b69256
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/PredefinedDataType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/PrimaryKey.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/PrimaryKey.gif
new file mode 100644
index 0000000..b1f8afa
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/PrimaryKey.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Privilege.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Privilege.gif
new file mode 100644
index 0000000..a26660e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Privilege.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Procedure.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Procedure.gif
new file mode 100644
index 0000000..7c2aaac
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Procedure.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/QueryExpressionDefault.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/QueryExpressionDefault.gif
new file mode 100644
index 0000000..caf2804
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/QueryExpressionDefault.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/ReferenceConstraint.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/ReferenceConstraint.gif
new file mode 100644
index 0000000..14af8aa
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/ReferenceConstraint.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/ReferenceDataType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/ReferenceDataType.gif
new file mode 100644
index 0000000..b3643da
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/ReferenceDataType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Role.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Role.gif
new file mode 100644
index 0000000..be22463
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Role.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/RoleAuthorization.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/RoleAuthorization.gif
new file mode 100644
index 0000000..a3908bc
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/RoleAuthorization.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Routine.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Routine.gif
new file mode 100644
index 0000000..be22463
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Routine.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/RoutineResultTable.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/RoutineResultTable.gif
new file mode 100644
index 0000000..ea58a65
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/RoutineResultTable.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/RowDataType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/RowDataType.gif
new file mode 100644
index 0000000..94c953e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/RowDataType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/SQLDataType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/SQLDataType.gif
new file mode 100644
index 0000000..739ebbf
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/SQLDataType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/SQLObject.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/SQLObject.gif
new file mode 100644
index 0000000..f8041d2
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/SQLObject.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/SQLStatementDefault.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/SQLStatementDefault.gif
new file mode 100644
index 0000000..db7414e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/SQLStatementDefault.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Schema.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Schema.gif
new file mode 100644
index 0000000..338fb8d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Schema.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/SearchConditionDefault.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/SearchConditionDefault.gif
new file mode 100644
index 0000000..739ebbf
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/SearchConditionDefault.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Sequence.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Sequence.gif
new file mode 100644
index 0000000..e4bc22d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Sequence.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Source.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Source.gif
new file mode 100644
index 0000000..106881e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Source.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/StructuredUserDefinedType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/StructuredUserDefinedType.gif
new file mode 100644
index 0000000..2124f3e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/StructuredUserDefinedType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Table.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Table.gif
new file mode 100644
index 0000000..c3370c7
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Table.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/TableConstraint.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/TableConstraint.gif
new file mode 100644
index 0000000..33a997a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/TableConstraint.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/TablePrivilege.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/TablePrivilege.gif
new file mode 100644
index 0000000..90d10f9
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/TablePrivilege.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/TemporaryTable.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/TemporaryTable.gif
new file mode 100644
index 0000000..1e5345f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/TemporaryTable.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/TimeDataType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/TimeDataType.gif
new file mode 100644
index 0000000..ef56c14
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/TimeDataType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Trigger.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Trigger.gif
new file mode 100644
index 0000000..ea58a65
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/Trigger.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/TypedElement.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/TypedElement.gif
new file mode 100644
index 0000000..c8d381f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/TypedElement.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/UniqueConstraint.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/UniqueConstraint.gif
new file mode 100644
index 0000000..5915591
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/UniqueConstraint.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/User.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/User.gif
new file mode 100644
index 0000000..48e3cf2
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/User.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/UserDefinedFunction.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/UserDefinedFunction.gif
new file mode 100644
index 0000000..134551b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/UserDefinedFunction.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/UserDefinedType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/UserDefinedType.gif
new file mode 100644
index 0000000..136e3b2
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/UserDefinedType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/UserDefinedTypeOrdering.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/UserDefinedTypeOrdering.gif
new file mode 100644
index 0000000..94c953e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/UserDefinedTypeOrdering.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/ValueExpressionDefault.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/ValueExpressionDefault.gif
new file mode 100644
index 0000000..9250fec
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/ValueExpressionDefault.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/ViewTable.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/ViewTable.gif
new file mode 100644
index 0000000..83afb9b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/ViewTable.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/XMLDataType.gif b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/XMLDataType.gif
new file mode 100644
index 0000000..2b69256
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/icons/full/obj16/XMLDataType.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/plugin.properties b/plugins/org.eclipse.datatools.modelbase.sql.edit/plugin.properties
new file mode 100644
index 0000000..4bc4967
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/plugin.properties
@@ -0,0 +1,454 @@
+###############################################################################
+# Copyright (c) 2001, 2004 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+# 
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+
+#
+#<copyright>
+# </copyright>
+#
+# $Id: plugin.properties,v 1.8 2009/06/02 14:49:22 bfitzpatrick Exp $
+#/
+
+# ====================================================================
+# To code developer:
+#   Do NOT change the properties between this line and the
+#   "%%% END OF TRANSLATED PROPERTIES %%%" line.
+#   Make a new property name, append to the end of the file and change
+#   the code to use the new property.
+# ====================================================================
+
+# ====================================================================
+# %%% END OF TRANSLATED PROPERTIES %%%
+# ====================================================================
+
+pluginName = Eclipse Data Tools Platform SQLModel Edit Plug-in
+providerName = Eclipse Data Tools Platform
+
+_UI_CreateChild_text = {0}
+_UI_CreateChild_text2 = {1} {0}
+_UI_CreateChild_tooltip = Create New {0} Under {1} Feature
+_UI_CreateChild_description = Create a new child of type {0} for the {1} feature of the selected {2}.
+_UI_CreateSibling_description = Create a new sibling of type {0} for the selected {2}, under the {1} feature of their parent.
+
+_UI_PropertyDescriptor_description = The {0} of the {1}
+
+_UI_IdentitySpecifier_type = Identity Specifier
+_UI_TypedElement_type = Typed Element
+_UI_Dependency_type = Dependency
+_UI_Schema_type = Schema
+_UI_SQLObject_type = SQL Object
+_UI_Sequence_type = Sequence
+_UI_Database_type = Database
+_UI_Assertion_type = Assertion
+_UI_Constraint_type = Constraint
+_UI_TableConstraint_type = Table Constraint
+_UI_ReferenceConstraint_type = Reference Constraint
+_UI_CheckConstraint_type = Check Constraint
+_UI_ForeignKey_type = Foreign Key
+_UI_UniqueConstraint_type = Unique Constraint
+_UI_PrimaryKey_type = Primary Key
+_UI_Index_type = Index
+_UI_IndexMember_type = Index Member
+_UI_UserDefinedType_type = User Defined Type
+_UI_DataType_type = Data Type
+_UI_PredefinedDataType_type = Predefined Data Type
+_UI_CollectionDataType_type = Collection Data Type
+_UI_NumericalDataType_type = Numerical Data Type
+_UI_CharacterStringDataType_type = Character String Data Type
+_UI_RowDataType_type = Row Data Type
+_UI_ArrayDataType_type = Array Data Type
+_UI_MultisetDataType_type = Multiset Data Type
+_UI_BooleanDataType_type = Boolean Data Type
+_UI_IntervalDataType_type = Interval Data Type
+_UI_BinaryStringDataType_type = Binary String Data Type
+_UI_CharacterSet_type = Character Set
+_UI_TimeDataType_type = Time Data Type
+_UI_DistinctUserDefinedType_type = Distinct User Defined Type
+_UI_StructuredUserDefinedType_type = Structured User Defined Type
+_UI_AttributeDefinition_type = Attribute Definition
+_UI_FixedPrecisionDataType_type = Fixed Precision Data Type
+_UI_Domain_type = Domain
+_UI_Field_type = Field
+_UI_ReferenceDataType_type = Reference Data Type
+_UI_ConstructedDataType_type = Constructed Data Type
+_UI_SQLDataType_type = SQL Data Type
+_UI_DataLinkDataType_type = Data Link Data Type
+_UI_UserDefinedTypeOrdering_type = User Defined Type Ordering
+_UI_DateDataType_type = Date Data Type
+_UI_ExactNumericDataType_type = Exact Numeric Data Type
+_UI_ApproximateNumericDataType_type = Approximate Numeric Data Type
+_UI_IntegerDataType_type = Integer Data Type
+_UI_XMLDataType_type = XML Data Type
+_UI_QueryExpression_type = Query Expression
+_UI_ValueExpression_type = Value Expression
+_UI_SearchCondition_type = Search Condition
+_UI_QueryExpressionDefault_type = Query Expression Default
+_UI_SearchConditionDefault_type = Search Condition Default
+_UI_ValueExpressionDefault_type = Value Expression Default
+_UI_Routine_type = Routine
+_UI_Source_type = Source
+_UI_Parameter_type = Parameter
+_UI_Procedure_type = Procedure
+_UI_Function_type = Function
+_UI_RoutineResultTable_type = Routine Result Table
+_UI_Method_type = Method
+_UI_UserDefinedFunction_type = User Defined Function
+_UI_BuiltInFunction_type = Built In Function
+_UI_SQLStatement_type = SQL Statement
+_UI_SQLDataStatement_type = SQL Data Statement
+_UI_SQLSchemaStatement_type = SQL Schema Statement
+_UI_SQLControlStatement_type = SQL Control Statement
+_UI_SQLDataChangeStatement_type = SQL Data Change Statement
+_UI_SQLStatementDefault_type = SQL Statement Default
+_UI_SQLConnectionStatement_type = SQL Connection Statement
+_UI_SQLDiagnosticsStatement_type = SQL Diagnostics Statement
+_UI_SQLDynamicStatement_type = SQL Dynamic Statement
+_UI_SQLSessionStatement_type = SQL Session Statement
+_UI_SQLTransactionStatement_type = SQL Transaction Statement
+_UI_ViewTable_type = View Table
+_UI_TemporaryTable_type = Temporary Table
+_UI_Table_type = Table
+_UI_PersistentTable_type = Persistent Table
+_UI_DerivedTable_type = Derived Table
+_UI_BaseTable_type = Base Table
+_UI_Column_type = Column
+_UI_Trigger_type = Trigger
+_UI_AuthorizationIdentifier_type = Authorization Identifier
+_UI_Privilege_type = Privilege
+_UI_Group_type = Group
+_UI_User_type = User
+_UI_Role_type = Role
+_UI_RoleAuthorization_type = Role Authorization
+_UI_TablePrivilege_type = Table Privilege
+_UI_DoubleObjectPrivilege_type = Double Object Privilege
+_UI_Unknown_type = Object
+
+_UI_IdentitySpecifier_generationType_feature = Generation Type
+_UI_IdentitySpecifier_startValue_feature = Start Value
+_UI_IdentitySpecifier_increment_feature = Increment
+_UI_IdentitySpecifier_minimum_feature = Minimum
+_UI_IdentitySpecifier_maximum_feature = Maximum
+_UI_IdentitySpecifier_cycleOption_feature = Cycle Option
+_UI_TypedElement_containedType_feature = Contained Type
+_UI_TypedElement_referencedType_feature = Referenced Type
+_UI_Dependency_targetEnd_feature = Target End
+_UI_Dependency_dependencyType_feature = Dependency Type
+_UI_Schema_triggers_feature = Triggers
+_UI_Schema_indices_feature = Indices
+_UI_Schema_tables_feature = Tables
+_UI_Schema_sequences_feature = Sequences
+_UI_Schema_database_feature = Database
+_UI_Schema_assertions_feature = Assertions
+_UI_Schema_userDefinedTypes_feature = User Defined Types
+_UI_Schema_charSets_feature = Char Sets
+_UI_Schema_routines_feature = Routines
+_UI_Schema_owner_feature = Owner
+_UI_SQLObject_dependencies_feature = Dependencies
+_UI_SQLObject_description_feature = Description
+_UI_SQLObject_label_feature = Label
+_UI_Sequence_identity_feature = Identity
+_UI_Sequence_schema_feature = Schema
+_UI_Database_vendor_feature = Vendor
+_UI_Database_version_feature = Version
+_UI_Database_schemas_feature = Schemas
+_UI_Database_authorizationIds_feature = Authorization Ids
+_UI_Assertion_searchCondition_feature = Search Condition
+_UI_Assertion_schema_feature = Schema
+_UI_Assertion_constrainedTables_feature = Constrained Tables
+_UI_Constraint_deferrable_feature = Deferrable
+_UI_Constraint_initiallyDeferred_feature = Initially Deferred
+_UI_Constraint_enforced_feature = Enforced
+_UI_TableConstraint_BaseTable_feature = Base Table
+_UI_ReferenceConstraint_members_feature = Members
+_UI_CheckConstraint_searchCondition_feature = Search Condition
+_UI_ForeignKey_match_feature = Match
+_UI_ForeignKey_onUpdate_feature = On Update
+_UI_ForeignKey_onDelete_feature = On Delete
+_UI_ForeignKey_uniqueConstraint_feature = Unique Constraint
+_UI_ForeignKey_referencedMembers_feature = Referenced Members
+_UI_ForeignKey_uniqueIndex_feature = Unique Index
+_UI_UniqueConstraint_ForeignKey_feature = Foreign Key
+_UI_Index_Schema_feature = Schema
+_UI_Index_clustered_feature = Clustered
+_UI_Index_fillFactor_feature = Fill Factor
+_UI_Index_unique_feature = Unique
+_UI_Index_members_feature = Members
+_UI_Index_table_feature = Table
+_UI_Index_ForeignKey_feature = Foreign Key
+_UI_Index_includedMembers_feature = Included Members
+_UI_IndexMember_incrementType_feature = Increment Type
+_UI_IndexMember_column_feature = Column
+_UI_UserDefinedType_schema_feature = Schema
+_UI_UserDefinedType_ordering_feature = Ordering
+_UI_PredefinedDataType_primitiveType_feature = Primitive Type
+_UI_CollectionDataType_element_feature = Element
+_UI_NumericalDataType_precision_feature = Precision
+_UI_CharacterStringDataType_length_feature = Length
+_UI_CharacterStringDataType_coercibility_feature = Coercibility
+_UI_CharacterStringDataType_fixedLength_feature = Fixed Length
+_UI_CharacterStringDataType_collationName_feature = Collation Name
+_UI_CharacterStringDataType_characterSet_feature = Character Set
+_UI_RowDataType_fields_feature = Fields
+_UI_ArrayDataType_maxCardinality_feature = Max Cardinality
+_UI_IntervalDataType_leadingQualifier_feature = Leading Qualifier
+_UI_IntervalDataType_trailingQualifier_feature = Trailing Qualifier
+_UI_IntervalDataType_leadingFieldPrecision_feature = Leading Field Precision
+_UI_IntervalDataType_trailingFieldPrecision_feature = Trailing Field Precision
+_UI_IntervalDataType_fractionalSecondsPrecision_feature = Fractional Seconds Precision
+_UI_BinaryStringDataType_length_feature = Length
+_UI_CharacterSet_repertoire_feature = Repertoire
+_UI_CharacterSet_defaultCollation_feature = Default Collation
+_UI_CharacterSet_encoding_feature = Encoding
+_UI_CharacterSet_schema_feature = Schema
+_UI_TimeDataType_fractionalSecondsPrecision_feature = Fractional Seconds Precision
+_UI_TimeDataType_timeZone_feature = Time Zone
+_UI_DistinctUserDefinedType_predefinedRepresentation_feature = Predefined Representation
+_UI_StructuredUserDefinedType_instantiable_feature = Instantiable
+_UI_StructuredUserDefinedType_final_feature = Final
+_UI_StructuredUserDefinedType_super_feature = Super
+_UI_StructuredUserDefinedType_sub_feature = Sub
+_UI_StructuredUserDefinedType_attributes_feature = Attributes
+_UI_StructuredUserDefinedType_methods_feature = Methods
+_UI_AttributeDefinition_scopeCheck_feature = Scope Check
+_UI_AttributeDefinition_scopeChecked_feature = Scope Checked
+_UI_AttributeDefinition_defaultValue_feature = Default Value
+_UI_Domain_constraint_feature = Constraint
+_UI_Domain_defaultValue_feature = Default Value
+_UI_Field_scopeCheck_feature = Scope Check
+_UI_Field_scopeChecked_feature = Scope Checked
+_UI_ReferenceDataType_scopeTable_feature = Scope Table
+_UI_ReferenceDataType_referencedType_feature = Referenced Type
+_UI_DataLinkDataType_length_feature = Length
+_UI_DataLinkDataType_linkControl_feature = Link Control
+_UI_DataLinkDataType_integrityControl_feature = Integrity Control
+_UI_DataLinkDataType_readPermission_feature = Read Permission
+_UI_DataLinkDataType_writePermission_feature = Write Permission
+_UI_DataLinkDataType_recovery_feature = Recovery
+_UI_DataLinkDataType_unlink_feature = Unlink
+_UI_UserDefinedTypeOrdering_orderingForm_feature = Ordering Form
+_UI_UserDefinedTypeOrdering_orderingCategory_feature = Ordering Category
+_UI_UserDefinedTypeOrdering_orderingRoutine_feature = Ordering Routine
+_UI_ExactNumericDataType_scale_feature = Scale
+_UI_QueryExpressionDefault_SQL_feature = SQL
+_UI_SearchConditionDefault_SQL_feature = SQL
+_UI_ValueExpressionDefault_SQL_feature = SQL
+_UI_Routine_specificName_feature = Specific Name
+_UI_Routine_language_feature = Language
+_UI_Routine_parameterStyle_feature = Parameter Style
+_UI_Routine_deterministic_feature = Deterministic
+_UI_Routine_sqlDataAccess_feature = Sql Data Access
+_UI_Routine_creationTS_feature = Creation TS
+_UI_Routine_lastAlteredTS_feature = Last Altered TS
+_UI_Routine_authorizationID_feature = Authorization ID
+_UI_Routine_security_feature = Security
+_UI_Routine_externalName_feature = External Name
+_UI_Routine_parameters_feature = Parameters
+_UI_Routine_source_feature = Source
+_UI_Routine_schema_feature = Schema
+_UI_Source_body_feature = Body
+_UI_Parameter_mode_feature = Mode
+_UI_Parameter_locator_feature = Locator
+_UI_Parameter_routine_feature = Routine
+_UI_Procedure_maxResultSets_feature = Max Result Sets
+_UI_Procedure_oldSavePoint_feature = Old Save Point
+_UI_Procedure_resultSet_feature = Result Set
+_UI_Function_nullCall_feature = Null Call
+_UI_Function_static_feature = Static
+_UI_Function_transformGroup_feature = Transform Group
+_UI_Function_typePreserving_feature = Type Preserving
+_UI_Function_mutator_feature = Mutator
+_UI_Function_returnTable_feature = Return Table
+_UI_Function_returnScaler_feature = Return Scaler
+_UI_Function_returnCast_feature = Return Cast
+_UI_Method_overriding_feature = Overriding
+_UI_Method_constructor_feature = Constructor
+_UI_SQLStatementDefault_SQL_feature = SQL
+_UI_ViewTable_checkType_feature = Check Type
+_UI_TemporaryTable_local_feature = Local
+_UI_TemporaryTable_deleteOnCommit_feature = Delete On Commit
+_UI_Table_columns_feature = Columns
+_UI_Table_supertable_feature = Supertable
+_UI_Table_subtables_feature = Subtables
+_UI_Table_schema_feature = Schema
+_UI_Table_udt_feature = Udt
+_UI_Table_triggers_feature = Triggers
+_UI_Table_index_feature = Index
+_UI_Table_selfRefColumnGeneration_feature = Self Ref Column Generation
+_UI_Table_insertable_feature = Insertable
+_UI_Table_updatable_feature = Updatable
+_UI_DerivedTable_queryExpression_feature = Query Expression
+_UI_BaseTable_constraints_feature = Constraints
+_UI_Column_table_feature = Table
+_UI_Column_identitySpecifier_feature = Identity Specifier
+_UI_Column_generateExpression_feature = Generate Expression
+_UI_Column_implementationDependent_feature = Implementation Dependent
+_UI_Column_nullable_feature = Nullable
+_UI_Column_defaultValue_feature = Default Value
+_UI_Column_scopeCheck_feature = Scope Check
+_UI_Column_scopeChecked_feature = Scope Checked
+_UI_Trigger_schema_feature = Schema
+_UI_Trigger_subjectTable_feature = Subject Table
+_UI_Trigger_actionStatement_feature = Action Statement
+_UI_Trigger_triggerColumn_feature = Trigger Column
+_UI_Trigger_actionGranularity_feature = Action Granularity
+_UI_Trigger_when_feature = When
+_UI_Trigger_timeStamp_feature = Time Stamp
+_UI_Trigger_actionTime_feature = Action Time
+_UI_Trigger_updateType_feature = Update Type
+_UI_Trigger_insertType_feature = Insert Type
+_UI_Trigger_deleteType_feature = Delete Type
+_UI_Trigger_oldRow_feature = Old Row
+_UI_Trigger_newRow_feature = New Row
+_UI_Trigger_oldTable_feature = Old Table
+_UI_Trigger_newTable_feature = New Table
+_UI_AuthorizationIdentifier_ownedSchema_feature = Owned Schema
+_UI_AuthorizationIdentifier_receivedRoleAuthorization_feature = Received Role Authorization
+_UI_AuthorizationIdentifier_grantedRoleAuthorization_feature = Granted Role Authorization
+_UI_AuthorizationIdentifier_grantedPrivilege_feature = Granted Privilege
+_UI_AuthorizationIdentifier_receivedPrivilege_feature = Received Privilege
+_UI_Privilege_grantable_feature = Grantable
+_UI_Privilege_action_feature = Action
+_UI_Privilege_grantor_feature = Grantor
+_UI_Privilege_object_feature = Object
+_UI_Group_user_feature = User
+_UI_Role_roleAuthorization_feature = Role Authorization
+_UI_RoleAuthorization_grantable_feature = Grantable
+_UI_RoleAuthorization_role_feature = Role
+_UI_RoleAuthorization_grantee_feature = Grantee
+_UI_RoleAuthorization_grantor_feature = Grantor
+_UI_TablePrivilege_withHierarchy_feature = With Hierarchy
+_UI_DoubleObjectPrivilege_object2_feature = Object2
+_UI_Unknown_feature = Unspecified
+
+_UI_GenerateType_DEFAULT_GENERATED_literal = DEFAULT_GENERATED
+_UI_GenerateType_ALWAYS_GENERATED_literal = ALWAYS_GENERATED
+_UI_ReferentialActionType_NO_ACTION_literal = NO_ACTION
+_UI_ReferentialActionType_RESTRICT_literal = RESTRICT
+_UI_ReferentialActionType_CASCADE_literal = CASCADE
+_UI_ReferentialActionType_SET_NULL_literal = SET_NULL
+_UI_ReferentialActionType_SET_DEFAULT_literal = SET_DEFAULT
+_UI_MatchType_MATCH_SIMPLE_literal = MATCH_SIMPLE
+_UI_MatchType_MATCH_FULL_literal = MATCH_FULL
+_UI_MatchType_MATCH_PARTIAL_literal = MATCH_PARTIAL
+_UI_IncrementType_ASC_literal = ASC
+_UI_IncrementType_DESC_literal = DESC
+_UI_CoercibilityType_IMPLICIT_literal = IMPLICIT
+_UI_CoercibilityType_EXPLICIT_literal = EXPLICIT
+_UI_CoercibilityType_COERCIBILE_literal = COERCIBILE
+_UI_CoercibilityType_NO_COLLATION_literal = NO_COLLATION
+_UI_IntervalQualifierType_YEAR_literal = YEAR
+_UI_IntervalQualifierType_MONTH_literal = MONTH
+_UI_IntervalQualifierType_DAY_literal = DAY
+_UI_IntervalQualifierType_HOUR_literal = HOUR
+_UI_IntervalQualifierType_MINUTE_literal = MINUTE
+_UI_IntervalQualifierType_SECOND_literal = SECOND
+_UI_OrderingType_EQUALS_literal = EQUALS
+_UI_OrderingType_FULL_literal = FULL
+_UI_OrderingCategoryType_RELATIVE_literal = RELATIVE
+_UI_OrderingCategoryType_MAP_literal = MAP
+_UI_OrderingCategoryType_STATE_literal = STATE
+_UI_PrimitiveType_CHARACTER_literal = CHARACTER
+_UI_PrimitiveType_CHARACTER_VARYING_literal = CHARACTER_VARYING
+_UI_PrimitiveType_CHARACTER_LARGE_OBJECT_literal = CHARACTER_LARGE_OBJECT
+_UI_PrimitiveType_NATIONAL_CHARACTER_literal = NATIONAL_CHARACTER
+_UI_PrimitiveType_NATIONAL_CHARACTER_VARYING_literal = NATIONAL_CHARACTER_VARYING
+_UI_PrimitiveType_NATIONAL_CHARACTER_LARGE_OBJECT_literal = NATIONAL_CHARACTER_LARGE_OBJECT
+_UI_PrimitiveType_BINARY_literal = BINARY
+_UI_PrimitiveType_BINARY_VARYING_literal = BINARY_VARYING
+_UI_PrimitiveType_BINARY_LARGE_OBJECT_literal = BINARY_LARGE_OBJECT
+_UI_PrimitiveType_NUMERIC_literal = NUMERIC
+_UI_PrimitiveType_DECIMAL_literal = DECIMAL
+_UI_PrimitiveType_SMALLINT_literal = SMALLINT
+_UI_PrimitiveType_INTEGER_literal = INTEGER
+_UI_PrimitiveType_BIGINT_literal = BIGINT
+_UI_PrimitiveType_FLOAT_literal = FLOAT
+_UI_PrimitiveType_REAL_literal = REAL
+_UI_PrimitiveType_DOUBLE_PRECISION_literal = DOUBLE_PRECISION
+_UI_PrimitiveType_BOOLEAN_literal = BOOLEAN
+_UI_PrimitiveType_DATE_literal = DATE
+_UI_PrimitiveType_TIME_literal = TIME
+_UI_PrimitiveType_TIMESTAMP_literal = TIMESTAMP
+_UI_PrimitiveType_INTERVAL_literal = INTERVAL
+_UI_PrimitiveType_DATALINK_literal = DATALINK
+_UI_PrimitiveType_XML_TYPE_literal = XML_TYPE
+_UI_LinkControlOption_FILE_LINK_CONTROL_literal = FILE_LINK_CONTROL
+_UI_LinkControlOption_NO_FILE_LINK_CONTROL_literal = NO_FILE_LINK_CONTROL
+_UI_IntegrityControlOption_ALL_literal = ALL
+_UI_IntegrityControlOption_SELECTIVE_literal = SELECTIVE
+_UI_IntegrityControlOption_NONE_literal = NONE
+_UI_ReadPermissionOption_FS_literal = FS
+_UI_ReadPermissionOption_DB_literal = DB
+_UI_WritePermissionOption_FS_literal = FS
+_UI_WritePermissionOption_ADMIN_literal = ADMIN
+_UI_WritePermissionOption_BLOCKED_literal = BLOCKED
+_UI_UnlinkOption_RESTORE_literal = RESTORE
+_UI_UnlinkOption_DELETE_literal = DELETE
+_UI_UnlinkOption_NONE_literal = NONE
+_UI_DataAccess_NO_SQL_literal = NO_SQL
+_UI_DataAccess_CONTAINS_SQL_literal = CONTAINS_SQL
+_UI_DataAccess_READS_SQL_DATA_literal = READS_SQL_DATA
+_UI_DataAccess_MODIFIES_SQL_DATA_literal = MODIFIES_SQL_DATA
+_UI_ParameterMode_IN_literal = IN
+_UI_ParameterMode_OUT_literal = OUT
+_UI_ParameterMode_INOUT_literal = INOUT
+_UI_CheckType_CASCADED_literal = CASCADED
+_UI_CheckType_LOCAL_literal = LOCAL
+_UI_CheckType_NONE_literal = NONE
+_UI_ReferenceType_SYSTEM_GENERATED_literal = SYSTEM_GENERATED
+_UI_ReferenceType_USER_GENERATED_literal = USER_GENERATED
+_UI_ReferenceType_DERIVED_SELF_REF_literal = DERIVED_SELF_REF
+_UI_ActionTimeType_AFTER_literal = AFTER
+_UI_ActionTimeType_BEFORE_literal = BEFORE
+_UI_ActionTimeType_INSTEADOF_literal = INSTEADOF
+_UI_ActionGranularityType_STATEMENT_literal = STATEMENT
+_UI_ActionGranularityType_ROW_literal = ROW
+_UI_CreateChild_text3 = {1}
+_UI_Unknown_datatype= Value
+
+_UI_Event_type = Event
+_UI_Database_events_feature = Events
+_UI_Event_for_feature = For
+_UI_Event_condition_feature = Condition
+_UI_Event_action_feature = Action
+_UI_Event_enabled_feature = Enabled
+_UI_Event_Database_feature = Database
+_UI_ForeignKey_referencedTable_feature = Referenced Table
+_UI_Index_systemGenerated_feature = System Generated
+_UI_Parameter_stringTypeOption_feature = String Type Option
+_UI_BaseTable_referencingForeignKeys_feature = Referencing Foreign Keys
+_UI_IntervalQualifierType_FRACTION_literal = FRACTION
+_UI_Comment_type = Comment
+_UI_Catalog_type = Catalog
+_UI_Schema_Catalog_feature = Catalog
+_UI_SQLObject_comments_feature = Comments
+_UI_SQLObject_privileges_feature = Privileges
+_UI_Database_catalogs_feature = Catalogs
+_UI_Comment_description_feature = Description
+_UI_Comment_SQLObject_feature = SQL Object
+_UI_Catalog_Database_feature = Database
+_UI_Catalog_schemas_feature = Schemas
+_UI_Function_returnScalar_feature = Return Scalar
+_UI_AuthorizationIdentifier_Database_feature = Database
+_UI_Privilege_withHierarchy_feature = With Hierarchy
+_UI_Privilege_grantee_feature = Grantee
+_UI_Privilege_actionObjects_feature = Action Objects
+_UI_User_group_feature = Group
+_UI_ObjectExtension_type = Object Extension
+_UI_ElementType_type = Element Type
+_UI_SQLObject_extensions_feature = Extensions
+_UI_ObjectExtension_SQLObject_feature = SQL Object
+_UI_CollectionDataType_elementType_feature = Element Type
+_UI_CharacterSet_CharacterStringDataType_feature = Character String Data Type
+_UI_ElementType_CollectionDataType_feature = Collection Data Type
+_UI_IncrementType_RANDOM_literal = RANDOM
+_UI_IndexExpression_type = Index Expression
+_UI_UniqueConstraint_clustered_feature = Clustered
+_UI_IndexMember_expression_feature = Expression
+_UI_IndexExpression_sql_feature = Sql
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/plugin.xml b/plugins/org.eclipse.datatools.modelbase.sql.edit/plugin.xml
new file mode 100644
index 0000000..5bf9303
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/plugin.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: plugin.xml,v 1.2 2006/02/23 16:25:53 jgraham Exp $
+ */
+-->
+
+<plugin>
+
+   
+</plugin>
+
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/accesscontrol/provider/AuthorizationIdentifierItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/accesscontrol/provider/AuthorizationIdentifierItemProvider.java
new file mode 100644
index 0000000..47aaf75
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/accesscontrol/provider/AuthorizationIdentifierItemProvider.java
@@ -0,0 +1,280 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: AuthorizationIdentifierItemProvider.java,v 1.3 2007/05/31 00:29:18 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.accesscontrol.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlFactory;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SQLObjectItemProvider;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class AuthorizationIdentifierItemProvider
+	extends SQLObjectItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AuthorizationIdentifierItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addOwnedSchemaPropertyDescriptor(object);
+			addDatabasePropertyDescriptor(object);
+			addReceivedRoleAuthorizationPropertyDescriptor(object);
+			addGrantedRoleAuthorizationPropertyDescriptor(object);
+			addGrantedPrivilegePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Owned Schema feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addOwnedSchemaPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_AuthorizationIdentifier_ownedSchema_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_AuthorizationIdentifier_ownedSchema_feature", "_UI_AuthorizationIdentifier_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLAccessControlPackage.Literals.AUTHORIZATION_IDENTIFIER__OWNED_SCHEMA,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Database feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatabasePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_AuthorizationIdentifier_Database_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_AuthorizationIdentifier_Database_feature", "_UI_AuthorizationIdentifier_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLAccessControlPackage.Literals.AUTHORIZATION_IDENTIFIER__DATABASE,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Received Role Authorization feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addReceivedRoleAuthorizationPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_AuthorizationIdentifier_receivedRoleAuthorization_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_AuthorizationIdentifier_receivedRoleAuthorization_feature", "_UI_AuthorizationIdentifier_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLAccessControlPackage.Literals.AUTHORIZATION_IDENTIFIER__RECEIVED_ROLE_AUTHORIZATION,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Granted Role Authorization feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addGrantedRoleAuthorizationPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_AuthorizationIdentifier_grantedRoleAuthorization_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_AuthorizationIdentifier_grantedRoleAuthorization_feature", "_UI_AuthorizationIdentifier_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLAccessControlPackage.Literals.AUTHORIZATION_IDENTIFIER__GRANTED_ROLE_AUTHORIZATION,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Granted Privilege feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addGrantedPrivilegePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_AuthorizationIdentifier_grantedPrivilege_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_AuthorizationIdentifier_grantedPrivilege_feature", "_UI_AuthorizationIdentifier_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLAccessControlPackage.Literals.AUTHORIZATION_IDENTIFIER__GRANTED_PRIVILEGE,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Collection getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(SQLAccessControlPackage.Literals.AUTHORIZATION_IDENTIFIER__RECEIVED_PRIVILEGE);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns AuthorizationIdentifier.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/AuthorizationIdentifier")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((AuthorizationIdentifier)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_AuthorizationIdentifier_type") : //$NON-NLS-1$
+			getString("_UI_AuthorizationIdentifier_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(AuthorizationIdentifier.class)) {
+			case SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__RECEIVED_PRIVILEGE:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLAccessControlPackage.Literals.AUTHORIZATION_IDENTIFIER__RECEIVED_PRIVILEGE,
+				 SQLAccessControlFactory.eINSTANCE.createPrivilege()));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ResourceLocator getResourceLocator() {
+		return SqlmodelEditPlugin.INSTANCE;
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/accesscontrol/provider/GroupItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/accesscontrol/provider/GroupItemProvider.java
new file mode 100644
index 0000000..c9484e0
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/accesscontrol/provider/GroupItemProvider.java
@@ -0,0 +1,135 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: GroupItemProvider.java,v 1.3 2007/05/31 00:29:18 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.accesscontrol.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.accesscontrol.Group;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.accesscontrol.Group} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class GroupItemProvider
+	extends AuthorizationIdentifierItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public GroupItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addUserPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the User feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addUserPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Group_user_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Group_user_feature", "_UI_Group_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLAccessControlPackage.Literals.GROUP__USER,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns Group.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/Group")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((Group)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_Group_type") : //$NON-NLS-1$
+			getString("_UI_Group_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/accesscontrol/provider/PrivilegeItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/accesscontrol/provider/PrivilegeItemProvider.java
new file mode 100644
index 0000000..d0d8671
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/accesscontrol/provider/PrivilegeItemProvider.java
@@ -0,0 +1,270 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PrivilegeItemProvider.java,v 1.3 2007/05/31 00:29:18 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.accesscontrol.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SQLObjectItemProvider;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PrivilegeItemProvider
+	extends SQLObjectItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PrivilegeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addGrantablePropertyDescriptor(object);
+			addActionPropertyDescriptor(object);
+			addWithHierarchyPropertyDescriptor(object);
+			addGrantorPropertyDescriptor(object);
+			addActionObjectsPropertyDescriptor(object);
+			addObjectPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Grantable feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addGrantablePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Privilege_grantable_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Privilege_grantable_feature", "_UI_Privilege_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLAccessControlPackage.Literals.PRIVILEGE__GRANTABLE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Action feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addActionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Privilege_action_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Privilege_action_feature", "_UI_Privilege_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLAccessControlPackage.Literals.PRIVILEGE__ACTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the With Hierarchy feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addWithHierarchyPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Privilege_withHierarchy_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Privilege_withHierarchy_feature", "_UI_Privilege_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLAccessControlPackage.Literals.PRIVILEGE__WITH_HIERARCHY,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Grantor feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addGrantorPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Privilege_grantor_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Privilege_grantor_feature", "_UI_Privilege_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLAccessControlPackage.Literals.PRIVILEGE__GRANTOR,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Action Objects feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addActionObjectsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Privilege_actionObjects_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Privilege_actionObjects_feature", "_UI_Privilege_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLAccessControlPackage.Literals.PRIVILEGE__ACTION_OBJECTS,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Object feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addObjectPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Privilege_object_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Privilege_object_feature", "_UI_Privilege_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLAccessControlPackage.Literals.PRIVILEGE__OBJECT,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns Privilege.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/Privilege")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((Privilege)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_Privilege_type") : //$NON-NLS-1$
+			getString("_UI_Privilege_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(Privilege.class)) {
+			case SQLAccessControlPackage.PRIVILEGE__GRANTABLE:
+			case SQLAccessControlPackage.PRIVILEGE__ACTION:
+			case SQLAccessControlPackage.PRIVILEGE__WITH_HIERARCHY:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ResourceLocator getResourceLocator() {
+		return SqlmodelEditPlugin.INSTANCE;
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/accesscontrol/provider/RoleAuthorizationItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/accesscontrol/provider/RoleAuthorizationItemProvider.java
new file mode 100644
index 0000000..898059b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/accesscontrol/provider/RoleAuthorizationItemProvider.java
@@ -0,0 +1,222 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: RoleAuthorizationItemProvider.java,v 1.3 2007/05/31 00:29:18 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.accesscontrol.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.accesscontrol.RoleAuthorization;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SQLObjectItemProvider;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.accesscontrol.RoleAuthorization} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class RoleAuthorizationItemProvider
+	extends SQLObjectItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public RoleAuthorizationItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addGrantablePropertyDescriptor(object);
+			addRolePropertyDescriptor(object);
+			addGranteePropertyDescriptor(object);
+			addGrantorPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Grantable feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addGrantablePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_RoleAuthorization_grantable_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_RoleAuthorization_grantable_feature", "_UI_RoleAuthorization_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLAccessControlPackage.Literals.ROLE_AUTHORIZATION__GRANTABLE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Role feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addRolePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_RoleAuthorization_role_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_RoleAuthorization_role_feature", "_UI_RoleAuthorization_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLAccessControlPackage.Literals.ROLE_AUTHORIZATION__ROLE,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Grantee feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addGranteePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_RoleAuthorization_grantee_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_RoleAuthorization_grantee_feature", "_UI_RoleAuthorization_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLAccessControlPackage.Literals.ROLE_AUTHORIZATION__GRANTEE,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Grantor feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addGrantorPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_RoleAuthorization_grantor_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_RoleAuthorization_grantor_feature", "_UI_RoleAuthorization_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLAccessControlPackage.Literals.ROLE_AUTHORIZATION__GRANTOR,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns RoleAuthorization.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/RoleAuthorization")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((RoleAuthorization)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_RoleAuthorization_type") : //$NON-NLS-1$
+			getString("_UI_RoleAuthorization_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(RoleAuthorization.class)) {
+			case SQLAccessControlPackage.ROLE_AUTHORIZATION__GRANTABLE:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ResourceLocator getResourceLocator() {
+		return SqlmodelEditPlugin.INSTANCE;
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/accesscontrol/provider/RoleItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/accesscontrol/provider/RoleItemProvider.java
new file mode 100644
index 0000000..2a1b8cc
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/accesscontrol/provider/RoleItemProvider.java
@@ -0,0 +1,135 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: RoleItemProvider.java,v 1.3 2007/05/31 00:29:18 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.accesscontrol.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.accesscontrol.Role;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.accesscontrol.Role} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class RoleItemProvider
+	extends AuthorizationIdentifierItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public RoleItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addRoleAuthorizationPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Role Authorization feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addRoleAuthorizationPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Role_roleAuthorization_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Role_roleAuthorization_feature", "_UI_Role_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLAccessControlPackage.Literals.ROLE__ROLE_AUTHORIZATION,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns Role.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/Role")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((Role)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_Role_type") : //$NON-NLS-1$
+			getString("_UI_Role_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/accesscontrol/provider/SQLAccessControlItemProviderAdapterFactory.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/accesscontrol/provider/SQLAccessControlItemProviderAdapterFactory.java
new file mode 100644
index 0000000..65f5295
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/accesscontrol/provider/SQLAccessControlItemProviderAdapterFactory.java
@@ -0,0 +1,274 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SQLAccessControlItemProviderAdapterFactory.java,v 1.3 2007/05/31 00:29:18 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.accesscontrol.provider;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.accesscontrol.util.SQLAccessControlAdapterFactory;
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.edit.provider.ChangeNotifier;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.IChangeNotifier;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.INotifyChangedListener;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the factory that is used to provide the interfaces needed to support Viewers.
+ * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
+ * The adapters also support Eclipse property sheets.
+ * Note that most of the adapters are shared among multiple instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SQLAccessControlItemProviderAdapterFactory extends SQLAccessControlAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier {
+	/**
+	 * This keeps track of the root adapter factory that delegates to this adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ComposedAdapterFactory parentAdapterFactory;
+
+	/**
+	 * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IChangeNotifier changeNotifier = new ChangeNotifier();
+
+	/**
+	 * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection supportedTypes = new ArrayList();
+
+	/**
+	 * This constructs an instance.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLAccessControlItemProviderAdapterFactory() {
+		supportedTypes.add(IEditingDomainItemProvider.class);
+		supportedTypes.add(IStructuredItemContentProvider.class);
+		supportedTypes.add(ITreeItemContentProvider.class);
+		supportedTypes.add(IItemLabelProvider.class);
+		supportedTypes.add(IItemPropertySource.class);
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected PrivilegeItemProvider privilegeItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createPrivilegeAdapter() {
+		if (privilegeItemProvider == null) {
+			privilegeItemProvider = new PrivilegeItemProvider(this);
+		}
+
+		return privilegeItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.accesscontrol.Group} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected GroupItemProvider groupItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.accesscontrol.Group}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createGroupAdapter() {
+		if (groupItemProvider == null) {
+			groupItemProvider = new GroupItemProvider(this);
+		}
+
+		return groupItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.accesscontrol.User} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected UserItemProvider userItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.accesscontrol.User}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createUserAdapter() {
+		if (userItemProvider == null) {
+			userItemProvider = new UserItemProvider(this);
+		}
+
+		return userItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.accesscontrol.Role} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected RoleItemProvider roleItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.accesscontrol.Role}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createRoleAdapter() {
+		if (roleItemProvider == null) {
+			roleItemProvider = new RoleItemProvider(this);
+		}
+
+		return roleItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.accesscontrol.RoleAuthorization} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected RoleAuthorizationItemProvider roleAuthorizationItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.accesscontrol.RoleAuthorization}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createRoleAuthorizationAdapter() {
+		if (roleAuthorizationItemProvider == null) {
+			roleAuthorizationItemProvider = new RoleAuthorizationItemProvider(this);
+		}
+
+		return roleAuthorizationItemProvider;
+	}
+
+	/**
+	 * This returns the root adapter factory that contains this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ComposeableAdapterFactory getRootAdapterFactory() {
+		return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
+	}
+
+	/**
+	 * This sets the composed adapter factory that contains this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
+		this.parentAdapterFactory = parentAdapterFactory;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isFactoryForType(Object type) {
+		return supportedTypes.contains(type) || super.isFactoryForType(type);
+	}
+
+	/**
+	 * This implementation substitutes the factory itself as the key for the adapter.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter adapt(Notifier notifier, Object type) {
+		return super.adapt(notifier, this);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object adapt(Object object, Object type) {
+		if (isFactoryForType(type)) {
+			Object adapter = super.adapt(object, type);
+			if (!(type instanceof Class) || (((Class)type).isInstance(adapter))) {
+				return adapter;
+			}
+		}
+
+		return null;
+	}
+
+	/**
+	 * This adds a listener.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void addListener(INotifyChangedListener notifyChangedListener) {
+		changeNotifier.addListener(notifyChangedListener);
+	}
+
+	/**
+	 * This removes a listener.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void removeListener(INotifyChangedListener notifyChangedListener) {
+		changeNotifier.removeListener(notifyChangedListener);
+	}
+
+	/**
+	 * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void fireNotifyChanged(Notification notification) {
+		changeNotifier.fireNotifyChanged(notification);
+
+		if (parentAdapterFactory != null) {
+			parentAdapterFactory.fireNotifyChanged(notification);
+		}
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/accesscontrol/provider/UserItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/accesscontrol/provider/UserItemProvider.java
new file mode 100644
index 0000000..b2ee34f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/accesscontrol/provider/UserItemProvider.java
@@ -0,0 +1,134 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: UserItemProvider.java,v 1.3 2007/05/31 00:29:18 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.accesscontrol.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.User;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.accesscontrol.User} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class UserItemProvider
+	extends AuthorizationIdentifierItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UserItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addGroupPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Group feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addGroupPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_User_group_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_User_group_feature", "_UI_User_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLAccessControlPackage.Literals.USER__GROUP,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns User.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/User")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((User)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_User_type") : //$NON-NLS-1$
+			getString("_UI_User_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/constraints/provider/AssertionItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/constraints/provider/AssertionItemProvider.java
new file mode 100644
index 0000000..a32d7e9
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/constraints/provider/AssertionItemProvider.java
@@ -0,0 +1,200 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: AssertionItemProvider.java,v 1.3 2007/05/31 00:29:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.constraints.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.constraints.Assertion;
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;
+import org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsFactory;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.constraints.Assertion} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class AssertionItemProvider
+	extends ConstraintItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AssertionItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addSchemaPropertyDescriptor(object);
+			addConstrainedTablesPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Schema feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSchemaPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Assertion_schema_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Assertion_schema_feature", "_UI_Assertion_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLConstraintsPackage.Literals.ASSERTION__SCHEMA,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Constrained Tables feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addConstrainedTablesPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Assertion_constrainedTables_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Assertion_constrainedTables_feature", "_UI_Assertion_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLConstraintsPackage.Literals.ASSERTION__CONSTRAINED_TABLES,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Collection getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(SQLConstraintsPackage.Literals.ASSERTION__SEARCH_CONDITION);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns Assertion.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/Assertion")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((Assertion)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_Assertion_type") : //$NON-NLS-1$
+			getString("_UI_Assertion_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(Assertion.class)) {
+			case SQLConstraintsPackage.ASSERTION__SEARCH_CONDITION:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLConstraintsPackage.Literals.ASSERTION__SEARCH_CONDITION,
+				 SQLExpressionsFactory.eINSTANCE.createSearchConditionDefault()));
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/constraints/provider/CheckConstraintItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/constraints/provider/CheckConstraintItemProvider.java
new file mode 100644
index 0000000..8e8e450
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/constraints/provider/CheckConstraintItemProvider.java
@@ -0,0 +1,152 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: CheckConstraintItemProvider.java,v 1.3 2007/05/31 00:29:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.constraints.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.constraints.CheckConstraint;
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;
+import org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsFactory;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.constraints.CheckConstraint} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CheckConstraintItemProvider
+	extends TableConstraintItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public CheckConstraintItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Collection getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(SQLConstraintsPackage.Literals.CHECK_CONSTRAINT__SEARCH_CONDITION);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns CheckConstraint.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/CheckConstraint")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((CheckConstraint)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_CheckConstraint_type") : //$NON-NLS-1$
+			getString("_UI_CheckConstraint_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(CheckConstraint.class)) {
+			case SQLConstraintsPackage.CHECK_CONSTRAINT__SEARCH_CONDITION:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLConstraintsPackage.Literals.CHECK_CONSTRAINT__SEARCH_CONDITION,
+				 SQLExpressionsFactory.eINSTANCE.createSearchConditionDefault()));
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/constraints/provider/ConstraintItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/constraints/provider/ConstraintItemProvider.java
new file mode 100644
index 0000000..dbadceb
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/constraints/provider/ConstraintItemProvider.java
@@ -0,0 +1,201 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ConstraintItemProvider.java,v 1.3 2007/05/31 00:29:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.constraints.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.constraints.Constraint;
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SQLObjectItemProvider;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.constraints.Constraint} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ConstraintItemProvider
+	extends SQLObjectItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ConstraintItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addDeferrablePropertyDescriptor(object);
+			addInitiallyDeferredPropertyDescriptor(object);
+			addEnforcedPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Deferrable feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDeferrablePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Constraint_deferrable_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Constraint_deferrable_feature", "_UI_Constraint_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLConstraintsPackage.Literals.CONSTRAINT__DEFERRABLE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Initially Deferred feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addInitiallyDeferredPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Constraint_initiallyDeferred_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Constraint_initiallyDeferred_feature", "_UI_Constraint_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLConstraintsPackage.Literals.CONSTRAINT__INITIALLY_DEFERRED,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Enforced feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addEnforcedPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Constraint_enforced_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Constraint_enforced_feature", "_UI_Constraint_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLConstraintsPackage.Literals.CONSTRAINT__ENFORCED,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns Constraint.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/Constraint")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((Constraint)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_Constraint_type") : //$NON-NLS-1$
+			getString("_UI_Constraint_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(Constraint.class)) {
+			case SQLConstraintsPackage.CONSTRAINT__DEFERRABLE:
+			case SQLConstraintsPackage.CONSTRAINT__INITIALLY_DEFERRED:
+			case SQLConstraintsPackage.CONSTRAINT__ENFORCED:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ResourceLocator getResourceLocator() {
+		return SqlmodelEditPlugin.INSTANCE;
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/constraints/provider/ForeignKeyItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/constraints/provider/ForeignKeyItemProvider.java
new file mode 100644
index 0000000..6fecf6e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/constraints/provider/ForeignKeyItemProvider.java
@@ -0,0 +1,282 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ForeignKeyItemProvider.java,v 1.4 2007/05/31 00:29:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.constraints.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.constraints.ForeignKey;
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.constraints.ForeignKey} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ForeignKeyItemProvider
+	extends ReferenceConstraintItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ForeignKeyItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addMatchPropertyDescriptor(object);
+			addOnUpdatePropertyDescriptor(object);
+			addOnDeletePropertyDescriptor(object);
+			addUniqueConstraintPropertyDescriptor(object);
+			addReferencedMembersPropertyDescriptor(object);
+			addUniqueIndexPropertyDescriptor(object);
+			addReferencedTablePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Match feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addMatchPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_ForeignKey_match_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_ForeignKey_match_feature", "_UI_ForeignKey_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLConstraintsPackage.Literals.FOREIGN_KEY__MATCH,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the On Update feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addOnUpdatePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_ForeignKey_onUpdate_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_ForeignKey_onUpdate_feature", "_UI_ForeignKey_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLConstraintsPackage.Literals.FOREIGN_KEY__ON_UPDATE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the On Delete feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addOnDeletePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_ForeignKey_onDelete_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_ForeignKey_onDelete_feature", "_UI_ForeignKey_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLConstraintsPackage.Literals.FOREIGN_KEY__ON_DELETE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Unique Constraint feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addUniqueConstraintPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_ForeignKey_uniqueConstraint_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_ForeignKey_uniqueConstraint_feature", "_UI_ForeignKey_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLConstraintsPackage.Literals.FOREIGN_KEY__UNIQUE_CONSTRAINT,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Referenced Members feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addReferencedMembersPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_ForeignKey_referencedMembers_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_ForeignKey_referencedMembers_feature", "_UI_ForeignKey_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLConstraintsPackage.Literals.FOREIGN_KEY__REFERENCED_MEMBERS,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Unique Index feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addUniqueIndexPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_ForeignKey_uniqueIndex_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_ForeignKey_uniqueIndex_feature", "_UI_ForeignKey_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLConstraintsPackage.Literals.FOREIGN_KEY__UNIQUE_INDEX,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Referenced Table feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addReferencedTablePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_ForeignKey_referencedTable_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_ForeignKey_referencedTable_feature", "_UI_ForeignKey_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLConstraintsPackage.Literals.FOREIGN_KEY__REFERENCED_TABLE,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns ForeignKey.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/ForeignKey")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((ForeignKey)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_ForeignKey_type") : //$NON-NLS-1$
+			getString("_UI_ForeignKey_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(ForeignKey.class)) {
+			case SQLConstraintsPackage.FOREIGN_KEY__MATCH:
+			case SQLConstraintsPackage.FOREIGN_KEY__ON_UPDATE:
+			case SQLConstraintsPackage.FOREIGN_KEY__ON_DELETE:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/constraints/provider/IndexExpressionItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/constraints/provider/IndexExpressionItemProvider.java
new file mode 100644
index 0000000..abed097
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/constraints/provider/IndexExpressionItemProvider.java
@@ -0,0 +1,156 @@
+/**

+ * <copyright>

+ * </copyright>

+ *

+ * $Id$

+ */

+package org.eclipse.datatools.modelbase.sql.constraints.provider;

+

+

+import java.util.Collection;

+import java.util.List;

+

+import org.eclipse.datatools.modelbase.sql.constraints.IndexExpression;

+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;

+

+import org.eclipse.datatools.modelbase.sql.schema.provider.SQLObjectItemProvider;

+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;

+

+import org.eclipse.emf.common.notify.AdapterFactory;

+import org.eclipse.emf.common.notify.Notification;

+

+import org.eclipse.emf.common.util.ResourceLocator;

+

+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;

+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;

+import org.eclipse.emf.edit.provider.IItemLabelProvider;

+import org.eclipse.emf.edit.provider.IItemPropertySource;

+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;

+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;

+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;

+import org.eclipse.emf.edit.provider.ViewerNotification;

+

+/**

+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.constraints.IndexExpression} object.

+ * <!-- begin-user-doc -->

+ * <!-- end-user-doc -->

+ * @generated

+ */

+public class IndexExpressionItemProvider

+	extends SQLObjectItemProvider

+	implements

+		IEditingDomainItemProvider,

+		IStructuredItemContentProvider,

+		ITreeItemContentProvider,

+		IItemLabelProvider,

+		IItemPropertySource {

+	/**

+	 * This constructs an instance from a factory and a notifier.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public IndexExpressionItemProvider(AdapterFactory adapterFactory) {

+		super(adapterFactory);

+	}

+

+	/**

+	 * This returns the property descriptors for the adapted class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public List getPropertyDescriptors(Object object) {

+		if (itemPropertyDescriptors == null) {

+			super.getPropertyDescriptors(object);

+

+			addSqlPropertyDescriptor(object);

+		}

+		return itemPropertyDescriptors;

+	}

+

+	/**

+	 * This adds a property descriptor for the Sql feature.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected void addSqlPropertyDescriptor(Object object) {

+		itemPropertyDescriptors.add

+			(createItemPropertyDescriptor

+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),

+				 getResourceLocator(),

+				 getString("_UI_IndexExpression_sql_feature"), //$NON-NLS-1$

+				 getString("_UI_PropertyDescriptor_description", "_UI_IndexExpression_sql_feature", "_UI_IndexExpression_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$

+				 SQLConstraintsPackage.Literals.INDEX_EXPRESSION__SQL,

+				 true,

+				 false,

+				 false,

+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,

+				 null,

+				 null));

+	}

+

+	/**

+	 * This returns IndexExpression.gif.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public Object getImage(Object object) {

+		return overlayImage(object, getResourceLocator().getImage("full/obj16/IndexExpression")); //$NON-NLS-1$

+	}

+

+	/**

+	 * This returns the label text for the adapted class.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public String getText(Object object) {

+		String label = ((IndexExpression)object).getName();

+		return label == null || label.length() == 0 ?

+			getString("_UI_IndexExpression_type") : //$NON-NLS-1$

+			getString("_UI_IndexExpression_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$

+	}

+

+	/**

+	 * This handles model notifications by calling {@link #updateChildren} to update any cached

+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void notifyChanged(Notification notification) {

+		updateChildren(notification);

+

+		switch (notification.getFeatureID(IndexExpression.class)) {

+			case SQLConstraintsPackage.INDEX_EXPRESSION__SQL:

+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));

+				return;

+		}

+		super.notifyChanged(notification);

+	}

+

+	/**

+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children

+	 * that can be created under this object.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {

+		super.collectNewChildDescriptors(newChildDescriptors, object);

+	}

+

+	/**

+	 * Return the resource locator for this item provider's resources.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public ResourceLocator getResourceLocator() {

+		return SqlmodelEditPlugin.INSTANCE;

+	}

+

+}

diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/constraints/provider/IndexItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/constraints/provider/IndexItemProvider.java
new file mode 100644
index 0000000..d7f3af8
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/constraints/provider/IndexItemProvider.java
@@ -0,0 +1,361 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: IndexItemProvider.java,v 1.4 2007/05/31 00:29:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.constraints.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.constraints.Index;
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsFactory;
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SQLObjectItemProvider;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.constraints.Index} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class IndexItemProvider
+	extends SQLObjectItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IndexItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addSchemaPropertyDescriptor(object);
+			addClusteredPropertyDescriptor(object);
+			addFillFactorPropertyDescriptor(object);
+			addUniquePropertyDescriptor(object);
+			addSystemGeneratedPropertyDescriptor(object);
+			addTablePropertyDescriptor(object);
+			addForeignKeyPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Schema feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSchemaPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Index_Schema_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Index_Schema_feature", "_UI_Index_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLConstraintsPackage.Literals.INDEX__SCHEMA,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Clustered feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addClusteredPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Index_clustered_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Index_clustered_feature", "_UI_Index_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLConstraintsPackage.Literals.INDEX__CLUSTERED,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Fill Factor feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addFillFactorPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Index_fillFactor_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Index_fillFactor_feature", "_UI_Index_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLConstraintsPackage.Literals.INDEX__FILL_FACTOR,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Unique feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addUniquePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Index_unique_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Index_unique_feature", "_UI_Index_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLConstraintsPackage.Literals.INDEX__UNIQUE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the System Generated feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSystemGeneratedPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Index_systemGenerated_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Index_systemGenerated_feature", "_UI_Index_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLConstraintsPackage.Literals.INDEX__SYSTEM_GENERATED,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Table feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTablePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Index_table_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Index_table_feature", "_UI_Index_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLConstraintsPackage.Literals.INDEX__TABLE,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Foreign Key feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addForeignKeyPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Index_ForeignKey_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Index_ForeignKey_feature", "_UI_Index_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLConstraintsPackage.Literals.INDEX__FOREIGN_KEY,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Collection getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(SQLConstraintsPackage.Literals.INDEX__MEMBERS);
+			childrenFeatures.add(SQLConstraintsPackage.Literals.INDEX__INCLUDED_MEMBERS);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns Index.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/Index")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((Index)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_Index_type") : //$NON-NLS-1$
+			getString("_UI_Index_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(Index.class)) {
+			case SQLConstraintsPackage.INDEX__CLUSTERED:
+			case SQLConstraintsPackage.INDEX__FILL_FACTOR:
+			case SQLConstraintsPackage.INDEX__UNIQUE:
+			case SQLConstraintsPackage.INDEX__SYSTEM_GENERATED:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case SQLConstraintsPackage.INDEX__MEMBERS:
+			case SQLConstraintsPackage.INDEX__INCLUDED_MEMBERS:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLConstraintsPackage.Literals.INDEX__MEMBERS,
+				 SQLConstraintsFactory.eINSTANCE.createIndexMember()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLConstraintsPackage.Literals.INDEX__INCLUDED_MEMBERS,
+				 SQLConstraintsFactory.eINSTANCE.createIndexMember()));
+	}
+
+	/**
+	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getCreateChildText(Object owner, Object feature, Object child, Collection selection) {
+		Object childFeature = feature;
+		Object childObject = child;
+
+		boolean qualify =
+			childFeature == SQLConstraintsPackage.Literals.INDEX__MEMBERS ||
+			childFeature == SQLConstraintsPackage.Literals.INDEX__INCLUDED_MEMBERS;
+
+		if (qualify) {
+			return getString
+				("_UI_CreateChild_text2", //$NON-NLS-1$
+				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+		}
+		return super.getCreateChildText(owner, feature, child, selection);
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ResourceLocator getResourceLocator() {
+		return SqlmodelEditPlugin.INSTANCE;
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/constraints/provider/IndexMemberItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/constraints/provider/IndexMemberItemProvider.java
new file mode 100644
index 0000000..4894600
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/constraints/provider/IndexMemberItemProvider.java
@@ -0,0 +1,214 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: IndexMemberItemProvider.java,v 1.3 2007/05/31 00:29:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.constraints.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.constraints.IndexMember;
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsFactory;
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SQLObjectItemProvider;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.constraints.IndexMember} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class IndexMemberItemProvider
+	extends SQLObjectItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IndexMemberItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addIncrementTypePropertyDescriptor(object);
+			addColumnPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Increment Type feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIncrementTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_IndexMember_incrementType_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_IndexMember_incrementType_feature", "_UI_IndexMember_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLConstraintsPackage.Literals.INDEX_MEMBER__INCREMENT_TYPE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Column feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addColumnPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_IndexMember_column_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_IndexMember_column_feature", "_UI_IndexMember_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLConstraintsPackage.Literals.INDEX_MEMBER__COLUMN,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Collection getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(SQLConstraintsPackage.Literals.INDEX_MEMBER__EXPRESSION);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns IndexMember.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/IndexMember")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((IndexMember)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_IndexMember_type") : //$NON-NLS-1$
+			getString("_UI_IndexMember_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(IndexMember.class)) {
+			case SQLConstraintsPackage.INDEX_MEMBER__INCREMENT_TYPE:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case SQLConstraintsPackage.INDEX_MEMBER__EXPRESSION:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLConstraintsPackage.Literals.INDEX_MEMBER__EXPRESSION,
+				 SQLConstraintsFactory.eINSTANCE.createIndexExpression()));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ResourceLocator getResourceLocator() {
+		return SqlmodelEditPlugin.INSTANCE;
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/constraints/provider/PrimaryKeyItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/constraints/provider/PrimaryKeyItemProvider.java
new file mode 100644
index 0000000..b8306dc
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/constraints/provider/PrimaryKeyItemProvider.java
@@ -0,0 +1,109 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PrimaryKeyItemProvider.java,v 1.3 2007/05/31 00:29:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.constraints.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.constraints.PrimaryKey;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.constraints.PrimaryKey} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PrimaryKeyItemProvider
+	extends UniqueConstraintItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PrimaryKeyItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns PrimaryKey.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/PrimaryKey")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((PrimaryKey)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_PrimaryKey_type") : //$NON-NLS-1$
+			getString("_UI_PrimaryKey_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/constraints/provider/ReferenceConstraintItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/constraints/provider/ReferenceConstraintItemProvider.java
new file mode 100644
index 0000000..1df0348
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/constraints/provider/ReferenceConstraintItemProvider.java
@@ -0,0 +1,135 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ReferenceConstraintItemProvider.java,v 1.3 2007/05/31 00:29:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.constraints.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.constraints.ReferenceConstraint;
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.constraints.ReferenceConstraint} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ReferenceConstraintItemProvider
+	extends TableConstraintItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ReferenceConstraintItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addMembersPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Members feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addMembersPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_ReferenceConstraint_members_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_ReferenceConstraint_members_feature", "_UI_ReferenceConstraint_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLConstraintsPackage.Literals.REFERENCE_CONSTRAINT__MEMBERS,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns ReferenceConstraint.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/ReferenceConstraint")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((ReferenceConstraint)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_ReferenceConstraint_type") : //$NON-NLS-1$
+			getString("_UI_ReferenceConstraint_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/constraints/provider/SQLConstraintsItemProviderAdapterFactory.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/constraints/provider/SQLConstraintsItemProviderAdapterFactory.java
new file mode 100644
index 0000000..18d495c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/constraints/provider/SQLConstraintsItemProviderAdapterFactory.java
@@ -0,0 +1,340 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SQLConstraintsItemProviderAdapterFactory.java,v 1.2 2005/12/22 22:37:40 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.constraints.provider;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.constraints.util.SQLConstraintsAdapterFactory;
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.edit.provider.ChangeNotifier;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.IChangeNotifier;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.INotifyChangedListener;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the factory that is used to provide the interfaces needed to support Viewers.
+ * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
+ * The adapters also support Eclipse property sheets.
+ * Note that most of the adapters are shared among multiple instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SQLConstraintsItemProviderAdapterFactory extends SQLConstraintsAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier {
+	/**
+	 * This keeps track of the root adapter factory that delegates to this adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ComposedAdapterFactory parentAdapterFactory;
+
+	/**
+	 * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IChangeNotifier changeNotifier = new ChangeNotifier();
+
+	/**
+	 * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection supportedTypes = new ArrayList();
+
+	/**
+	 * This constructs an instance.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLConstraintsItemProviderAdapterFactory() {
+		supportedTypes.add(IEditingDomainItemProvider.class);
+		supportedTypes.add(IStructuredItemContentProvider.class);
+		supportedTypes.add(ITreeItemContentProvider.class);
+		supportedTypes.add(IItemLabelProvider.class);
+		supportedTypes.add(IItemPropertySource.class);
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.constraints.Assertion} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected AssertionItemProvider assertionItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.constraints.Assertion}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createAssertionAdapter() {
+		if (assertionItemProvider == null) {
+			assertionItemProvider = new AssertionItemProvider(this);
+		}
+
+		return assertionItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.constraints.CheckConstraint} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected CheckConstraintItemProvider checkConstraintItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.constraints.CheckConstraint}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createCheckConstraintAdapter() {
+		if (checkConstraintItemProvider == null) {
+			checkConstraintItemProvider = new CheckConstraintItemProvider(this);
+		}
+
+		return checkConstraintItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.constraints.ForeignKey} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ForeignKeyItemProvider foreignKeyItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.constraints.ForeignKey}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createForeignKeyAdapter() {
+		if (foreignKeyItemProvider == null) {
+			foreignKeyItemProvider = new ForeignKeyItemProvider(this);
+		}
+
+		return foreignKeyItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.constraints.UniqueConstraint} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected UniqueConstraintItemProvider uniqueConstraintItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.constraints.UniqueConstraint}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createUniqueConstraintAdapter() {
+		if (uniqueConstraintItemProvider == null) {
+			uniqueConstraintItemProvider = new UniqueConstraintItemProvider(this);
+		}
+
+		return uniqueConstraintItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.constraints.PrimaryKey} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected PrimaryKeyItemProvider primaryKeyItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.constraints.PrimaryKey}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createPrimaryKeyAdapter() {
+		if (primaryKeyItemProvider == null) {
+			primaryKeyItemProvider = new PrimaryKeyItemProvider(this);
+		}
+
+		return primaryKeyItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.constraints.Index} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IndexItemProvider indexItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.constraints.Index}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createIndexAdapter() {
+		if (indexItemProvider == null) {
+			indexItemProvider = new IndexItemProvider(this);
+		}
+
+		return indexItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.constraints.IndexMember} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IndexMemberItemProvider indexMemberItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.constraints.IndexMember}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createIndexMemberAdapter() {
+		if (indexMemberItemProvider == null) {
+			indexMemberItemProvider = new IndexMemberItemProvider(this);
+		}
+
+		return indexMemberItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.constraints.IndexExpression} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IndexExpressionItemProvider indexExpressionItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.constraints.IndexExpression}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createIndexExpressionAdapter() {
+		if (indexExpressionItemProvider == null) {
+			indexExpressionItemProvider = new IndexExpressionItemProvider(this);
+		}
+
+		return indexExpressionItemProvider;
+	}
+
+	/**
+	 * This returns the root adapter factory that contains this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ComposeableAdapterFactory getRootAdapterFactory() {
+		return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
+	}
+
+	/**
+	 * This sets the composed adapter factory that contains this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
+		this.parentAdapterFactory = parentAdapterFactory;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isFactoryForType(Object type) {
+		return supportedTypes.contains(type) || super.isFactoryForType(type);
+	}
+
+	/**
+	 * This implementation substitutes the factory itself as the key for the adapter.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter adapt(Notifier notifier, Object type) {
+		return super.adapt(notifier, this);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object adapt(Object object, Object type) {
+		if (isFactoryForType(type)) {
+			Object adapter = super.adapt(object, type);
+			if (!(type instanceof Class) || (((Class)type).isInstance(adapter))) {
+				return adapter;
+			}
+		}
+
+		return null;
+	}
+
+	/**
+	 * This adds a listener.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void addListener(INotifyChangedListener notifyChangedListener) {
+		changeNotifier.addListener(notifyChangedListener);
+	}
+
+	/**
+	 * This removes a listener.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void removeListener(INotifyChangedListener notifyChangedListener) {
+		changeNotifier.removeListener(notifyChangedListener);
+	}
+
+	/**
+	 * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void fireNotifyChanged(Notification notification) {
+		changeNotifier.fireNotifyChanged(notification);
+
+		if (parentAdapterFactory != null) {
+			parentAdapterFactory.fireNotifyChanged(notification);
+		}
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/constraints/provider/TableConstraintItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/constraints/provider/TableConstraintItemProvider.java
new file mode 100644
index 0000000..612f331
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/constraints/provider/TableConstraintItemProvider.java
@@ -0,0 +1,109 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: TableConstraintItemProvider.java,v 1.3 2007/05/31 00:29:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.constraints.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.constraints.TableConstraint;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.constraints.TableConstraint} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class TableConstraintItemProvider
+	extends ConstraintItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TableConstraintItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns TableConstraint.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/TableConstraint")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((TableConstraint)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_TableConstraint_type") : //$NON-NLS-1$
+			getString("_UI_TableConstraint_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/constraints/provider/UniqueConstraintItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/constraints/provider/UniqueConstraintItemProvider.java
new file mode 100644
index 0000000..e5eb24f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/constraints/provider/UniqueConstraintItemProvider.java
@@ -0,0 +1,165 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: UniqueConstraintItemProvider.java,v 1.3 2007/05/31 00:29:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.constraints.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;
+import org.eclipse.datatools.modelbase.sql.constraints.UniqueConstraint;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.constraints.UniqueConstraint} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class UniqueConstraintItemProvider
+	extends ReferenceConstraintItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UniqueConstraintItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addClusteredPropertyDescriptor(object);
+			addForeignKeyPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Clustered feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addClusteredPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_UniqueConstraint_clustered_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_UniqueConstraint_clustered_feature", "_UI_UniqueConstraint_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLConstraintsPackage.Literals.UNIQUE_CONSTRAINT__CLUSTERED,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Foreign Key feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addForeignKeyPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_UniqueConstraint_ForeignKey_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_UniqueConstraint_ForeignKey_feature", "_UI_UniqueConstraint_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLConstraintsPackage.Literals.UNIQUE_CONSTRAINT__FOREIGN_KEY,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns UniqueConstraint.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/UniqueConstraint")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((UniqueConstraint)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_UniqueConstraint_type") : //$NON-NLS-1$
+			getString("_UI_UniqueConstraint_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(UniqueConstraint.class)) {
+			case SQLConstraintsPackage.UNIQUE_CONSTRAINT__CLUSTERED:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/ApproximateNumericDataTypeItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/ApproximateNumericDataTypeItemProvider.java
new file mode 100644
index 0000000..8d9e46b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/ApproximateNumericDataTypeItemProvider.java
@@ -0,0 +1,109 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ApproximateNumericDataTypeItemProvider.java,v 1.3 2007/05/31 00:29:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.datatypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.ApproximateNumericDataType;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.ApproximateNumericDataType} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ApproximateNumericDataTypeItemProvider
+	extends NumericalDataTypeItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ApproximateNumericDataTypeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns ApproximateNumericDataType.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/ApproximateNumericDataType")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((ApproximateNumericDataType)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_ApproximateNumericDataType_type") : //$NON-NLS-1$
+			getString("_UI_ApproximateNumericDataType_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/ArrayDataTypeItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/ArrayDataTypeItemProvider.java
new file mode 100644
index 0000000..d9137f8
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/ArrayDataTypeItemProvider.java
@@ -0,0 +1,132 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ArrayDataTypeItemProvider.java,v 1.4 2007/05/31 00:29:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.datatypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.ArrayDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.ArrayDataType} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ArrayDataTypeItemProvider
+	extends CollectionDataTypeItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ArrayDataTypeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addMaxCardinalityPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Max Cardinality feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addMaxCardinalityPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_ArrayDataType_maxCardinality_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_ArrayDataType_maxCardinality_feature", "_UI_ArrayDataType_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLDataTypesPackage.Literals.ARRAY_DATA_TYPE__MAX_CARDINALITY,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((ArrayDataType)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_ArrayDataType_type") : //$NON-NLS-1$
+			getString("_UI_ArrayDataType_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(ArrayDataType.class)) {
+			case SQLDataTypesPackage.ARRAY_DATA_TYPE__MAX_CARDINALITY:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/AttributeDefinitionItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/AttributeDefinitionItemProvider.java
new file mode 100644
index 0000000..81ca695
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/AttributeDefinitionItemProvider.java
@@ -0,0 +1,201 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: AttributeDefinitionItemProvider.java,v 1.3 2007/05/31 00:29:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.datatypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.AttributeDefinition;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.datatools.modelbase.sql.schema.provider.TypedElementItemProvider;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.AttributeDefinition} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class AttributeDefinitionItemProvider
+	extends TypedElementItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AttributeDefinitionItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addScopeCheckPropertyDescriptor(object);
+			addScopeCheckedPropertyDescriptor(object);
+			addDefaultValuePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Scope Check feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addScopeCheckPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_AttributeDefinition_scopeCheck_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_AttributeDefinition_scopeCheck_feature", "_UI_AttributeDefinition_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLDataTypesPackage.Literals.ATTRIBUTE_DEFINITION__SCOPE_CHECK,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Scope Checked feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addScopeCheckedPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_AttributeDefinition_scopeChecked_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_AttributeDefinition_scopeChecked_feature", "_UI_AttributeDefinition_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLDataTypesPackage.Literals.ATTRIBUTE_DEFINITION__SCOPE_CHECKED,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Default Value feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDefaultValuePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_AttributeDefinition_defaultValue_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_AttributeDefinition_defaultValue_feature", "_UI_AttributeDefinition_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLDataTypesPackage.Literals.ATTRIBUTE_DEFINITION__DEFAULT_VALUE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns AttributeDefinition.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/AttributeDefinition")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((AttributeDefinition)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_AttributeDefinition_type") : //$NON-NLS-1$
+			getString("_UI_AttributeDefinition_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(AttributeDefinition.class)) {
+			case SQLDataTypesPackage.ATTRIBUTE_DEFINITION__SCOPE_CHECK:
+			case SQLDataTypesPackage.ATTRIBUTE_DEFINITION__SCOPE_CHECKED:
+			case SQLDataTypesPackage.ATTRIBUTE_DEFINITION__DEFAULT_VALUE:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ResourceLocator getResourceLocator() {
+		return SqlmodelEditPlugin.INSTANCE;
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/BinaryStringDataTypeItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/BinaryStringDataTypeItemProvider.java
new file mode 100644
index 0000000..f71d48a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/BinaryStringDataTypeItemProvider.java
@@ -0,0 +1,142 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: BinaryStringDataTypeItemProvider.java,v 1.3 2007/05/31 00:29:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.datatypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.BinaryStringDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.BinaryStringDataType} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class BinaryStringDataTypeItemProvider
+	extends PredefinedDataTypeItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BinaryStringDataTypeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addLengthPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Length feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addLengthPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_BinaryStringDataType_length_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_BinaryStringDataType_length_feature", "_UI_BinaryStringDataType_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLDataTypesPackage.Literals.BINARY_STRING_DATA_TYPE__LENGTH,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns BinaryStringDataType.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/BinaryStringDataType")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((BinaryStringDataType)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_BinaryStringDataType_type") : //$NON-NLS-1$
+			getString("_UI_BinaryStringDataType_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(BinaryStringDataType.class)) {
+			case SQLDataTypesPackage.BINARY_STRING_DATA_TYPE__LENGTH:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/BooleanDataTypeItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/BooleanDataTypeItemProvider.java
new file mode 100644
index 0000000..f277ebb
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/BooleanDataTypeItemProvider.java
@@ -0,0 +1,109 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: BooleanDataTypeItemProvider.java,v 1.3 2007/05/31 00:29:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.datatypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.BooleanDataType;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.BooleanDataType} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class BooleanDataTypeItemProvider
+	extends PredefinedDataTypeItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BooleanDataTypeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns BooleanDataType.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/BooleanDataType")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((BooleanDataType)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_BooleanDataType_type") : //$NON-NLS-1$
+			getString("_UI_BooleanDataType_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/CharacterSetItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/CharacterSetItemProvider.java
new file mode 100644
index 0000000..ce1cfc3
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/CharacterSetItemProvider.java
@@ -0,0 +1,247 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: CharacterSetItemProvider.java,v 1.3 2007/05/31 00:29:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.datatypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.CharacterSet;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SQLObjectItemProvider;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.CharacterSet} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CharacterSetItemProvider
+	extends SQLObjectItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public CharacterSetItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addRepertoirePropertyDescriptor(object);
+			addDefaultCollationPropertyDescriptor(object);
+			addEncodingPropertyDescriptor(object);
+			addCharacterStringDataTypePropertyDescriptor(object);
+			addSchemaPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Repertoire feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addRepertoirePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_CharacterSet_repertoire_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_CharacterSet_repertoire_feature", "_UI_CharacterSet_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLDataTypesPackage.Literals.CHARACTER_SET__REPERTOIRE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Default Collation feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDefaultCollationPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_CharacterSet_defaultCollation_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_CharacterSet_defaultCollation_feature", "_UI_CharacterSet_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLDataTypesPackage.Literals.CHARACTER_SET__DEFAULT_COLLATION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Encoding feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addEncodingPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_CharacterSet_encoding_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_CharacterSet_encoding_feature", "_UI_CharacterSet_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLDataTypesPackage.Literals.CHARACTER_SET__ENCODING,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Character String Data Type feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCharacterStringDataTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_CharacterSet_CharacterStringDataType_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_CharacterSet_CharacterStringDataType_feature", "_UI_CharacterSet_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLDataTypesPackage.Literals.CHARACTER_SET__CHARACTER_STRING_DATA_TYPE,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Schema feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSchemaPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_CharacterSet_schema_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_CharacterSet_schema_feature", "_UI_CharacterSet_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLDataTypesPackage.Literals.CHARACTER_SET__SCHEMA,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns CharacterSet.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/CharacterSet")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((CharacterSet)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_CharacterSet_type") : //$NON-NLS-1$
+			getString("_UI_CharacterSet_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(CharacterSet.class)) {
+			case SQLDataTypesPackage.CHARACTER_SET__REPERTOIRE:
+			case SQLDataTypesPackage.CHARACTER_SET__DEFAULT_COLLATION:
+			case SQLDataTypesPackage.CHARACTER_SET__ENCODING:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ResourceLocator getResourceLocator() {
+		return SqlmodelEditPlugin.INSTANCE;
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/CharacterStringDataTypeItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/CharacterStringDataTypeItemProvider.java
new file mode 100644
index 0000000..2d3e3d0
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/CharacterStringDataTypeItemProvider.java
@@ -0,0 +1,237 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: CharacterStringDataTypeItemProvider.java,v 1.3 2007/05/31 00:29:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.datatypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.CharacterStringDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.CharacterStringDataType} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CharacterStringDataTypeItemProvider
+	extends PredefinedDataTypeItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public CharacterStringDataTypeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addLengthPropertyDescriptor(object);
+			addCoercibilityPropertyDescriptor(object);
+			addFixedLengthPropertyDescriptor(object);
+			addCollationNamePropertyDescriptor(object);
+			addCharacterSetPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Length feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addLengthPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_CharacterStringDataType_length_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_CharacterStringDataType_length_feature", "_UI_CharacterStringDataType_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLDataTypesPackage.Literals.CHARACTER_STRING_DATA_TYPE__LENGTH,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Coercibility feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCoercibilityPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_CharacterStringDataType_coercibility_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_CharacterStringDataType_coercibility_feature", "_UI_CharacterStringDataType_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLDataTypesPackage.Literals.CHARACTER_STRING_DATA_TYPE__COERCIBILITY,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Fixed Length feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addFixedLengthPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_CharacterStringDataType_fixedLength_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_CharacterStringDataType_fixedLength_feature", "_UI_CharacterStringDataType_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLDataTypesPackage.Literals.CHARACTER_STRING_DATA_TYPE__FIXED_LENGTH,
+				 false,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Collation Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCollationNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_CharacterStringDataType_collationName_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_CharacterStringDataType_collationName_feature", "_UI_CharacterStringDataType_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLDataTypesPackage.Literals.CHARACTER_STRING_DATA_TYPE__COLLATION_NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Character Set feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCharacterSetPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_CharacterStringDataType_characterSet_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_CharacterStringDataType_characterSet_feature", "_UI_CharacterStringDataType_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLDataTypesPackage.Literals.CHARACTER_STRING_DATA_TYPE__CHARACTER_SET,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns CharacterStringDataType.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/CharacterStringDataType")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((CharacterStringDataType)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_CharacterStringDataType_type") : //$NON-NLS-1$
+			getString("_UI_CharacterStringDataType_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(CharacterStringDataType.class)) {
+			case SQLDataTypesPackage.CHARACTER_STRING_DATA_TYPE__LENGTH:
+			case SQLDataTypesPackage.CHARACTER_STRING_DATA_TYPE__COERCIBILITY:
+			case SQLDataTypesPackage.CHARACTER_STRING_DATA_TYPE__FIXED_LENGTH:
+			case SQLDataTypesPackage.CHARACTER_STRING_DATA_TYPE__COLLATION_NAME:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/CollectionDataTypeItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/CollectionDataTypeItemProvider.java
new file mode 100644
index 0000000..545320b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/CollectionDataTypeItemProvider.java
@@ -0,0 +1,144 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: CollectionDataTypeItemProvider.java,v 1.5 2010/02/11 19:44:13 hkolwalka Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.datatypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.CollectionDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesFactory;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.CollectionDataType} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CollectionDataTypeItemProvider
+	extends ConstructedDataTypeItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public CollectionDataTypeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Collection getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(SQLDataTypesPackage.Literals.COLLECTION_DATA_TYPE__ELEMENT_TYPE);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((CollectionDataType)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_CollectionDataType_type") : //$NON-NLS-1$
+			getString("_UI_CollectionDataType_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(CollectionDataType.class)) {
+			case SQLDataTypesPackage.COLLECTION_DATA_TYPE__ELEMENT_TYPE:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLDataTypesPackage.Literals.COLLECTION_DATA_TYPE__ELEMENT_TYPE,
+				 SQLDataTypesFactory.eINSTANCE.createElementType()));
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/ConstructedDataTypeItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/ConstructedDataTypeItemProvider.java
new file mode 100644
index 0000000..997b4d4
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/ConstructedDataTypeItemProvider.java
@@ -0,0 +1,99 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ConstructedDataTypeItemProvider.java,v 1.3 2006/03/09 23:46:15 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.datatypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.ConstructedDataType;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.ConstructedDataType} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ConstructedDataTypeItemProvider
+	extends DataTypeItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ConstructedDataTypeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((ConstructedDataType)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_ConstructedDataType_type") : //$NON-NLS-1$
+			getString("_UI_ConstructedDataType_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/DataLinkDataTypeItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/DataLinkDataTypeItemProvider.java
new file mode 100644
index 0000000..e21ac1d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/DataLinkDataTypeItemProvider.java
@@ -0,0 +1,286 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DataLinkDataTypeItemProvider.java,v 1.3 2007/05/31 00:29:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.datatypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataLinkDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.DataLinkDataType} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class DataLinkDataTypeItemProvider
+	extends PredefinedDataTypeItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DataLinkDataTypeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addLengthPropertyDescriptor(object);
+			addLinkControlPropertyDescriptor(object);
+			addIntegrityControlPropertyDescriptor(object);
+			addReadPermissionPropertyDescriptor(object);
+			addWritePermissionPropertyDescriptor(object);
+			addRecoveryPropertyDescriptor(object);
+			addUnlinkPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Length feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addLengthPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_DataLinkDataType_length_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_DataLinkDataType_length_feature", "_UI_DataLinkDataType_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLDataTypesPackage.Literals.DATA_LINK_DATA_TYPE__LENGTH,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Link Control feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addLinkControlPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_DataLinkDataType_linkControl_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_DataLinkDataType_linkControl_feature", "_UI_DataLinkDataType_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLDataTypesPackage.Literals.DATA_LINK_DATA_TYPE__LINK_CONTROL,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Integrity Control feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIntegrityControlPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_DataLinkDataType_integrityControl_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_DataLinkDataType_integrityControl_feature", "_UI_DataLinkDataType_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLDataTypesPackage.Literals.DATA_LINK_DATA_TYPE__INTEGRITY_CONTROL,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Read Permission feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addReadPermissionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_DataLinkDataType_readPermission_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_DataLinkDataType_readPermission_feature", "_UI_DataLinkDataType_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLDataTypesPackage.Literals.DATA_LINK_DATA_TYPE__READ_PERMISSION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Write Permission feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addWritePermissionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_DataLinkDataType_writePermission_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_DataLinkDataType_writePermission_feature", "_UI_DataLinkDataType_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLDataTypesPackage.Literals.DATA_LINK_DATA_TYPE__WRITE_PERMISSION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Recovery feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addRecoveryPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_DataLinkDataType_recovery_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_DataLinkDataType_recovery_feature", "_UI_DataLinkDataType_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLDataTypesPackage.Literals.DATA_LINK_DATA_TYPE__RECOVERY,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Unlink feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addUnlinkPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_DataLinkDataType_unlink_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_DataLinkDataType_unlink_feature", "_UI_DataLinkDataType_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLDataTypesPackage.Literals.DATA_LINK_DATA_TYPE__UNLINK,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns DataLinkDataType.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/DataLinkDataType")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((DataLinkDataType)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_DataLinkDataType_type") : //$NON-NLS-1$
+			getString("_UI_DataLinkDataType_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(DataLinkDataType.class)) {
+			case SQLDataTypesPackage.DATA_LINK_DATA_TYPE__LENGTH:
+			case SQLDataTypesPackage.DATA_LINK_DATA_TYPE__LINK_CONTROL:
+			case SQLDataTypesPackage.DATA_LINK_DATA_TYPE__INTEGRITY_CONTROL:
+			case SQLDataTypesPackage.DATA_LINK_DATA_TYPE__READ_PERMISSION:
+			case SQLDataTypesPackage.DATA_LINK_DATA_TYPE__WRITE_PERMISSION:
+			case SQLDataTypesPackage.DATA_LINK_DATA_TYPE__RECOVERY:
+			case SQLDataTypesPackage.DATA_LINK_DATA_TYPE__UNLINK:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/DataTypeItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/DataTypeItemProvider.java
new file mode 100644
index 0000000..4381734
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/DataTypeItemProvider.java
@@ -0,0 +1,110 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DataTypeItemProvider.java,v 1.3 2006/03/09 23:46:15 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.datatypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SQLObjectItemProvider;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.DataType} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class DataTypeItemProvider
+	extends SQLObjectItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DataTypeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((DataType)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_DataType_type") : //$NON-NLS-1$
+			getString("_UI_DataType_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ResourceLocator getResourceLocator() {
+		return SqlmodelEditPlugin.INSTANCE;
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/DateDataTypeItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/DateDataTypeItemProvider.java
new file mode 100644
index 0000000..3ac1259
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/DateDataTypeItemProvider.java
@@ -0,0 +1,109 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DateDataTypeItemProvider.java,v 1.3 2007/05/31 00:29:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.datatypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DateDataType;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.DateDataType} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class DateDataTypeItemProvider
+	extends PredefinedDataTypeItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DateDataTypeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns DateDataType.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/DateDataType")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((DateDataType)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_DateDataType_type") : //$NON-NLS-1$
+			getString("_UI_DateDataType_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/DistinctUserDefinedTypeItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/DistinctUserDefinedTypeItemProvider.java
new file mode 100644
index 0000000..90ffb7e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/DistinctUserDefinedTypeItemProvider.java
@@ -0,0 +1,202 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DistinctUserDefinedTypeItemProvider.java,v 1.3 2007/05/31 00:29:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.datatypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DistinctUserDefinedType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesFactory;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.DistinctUserDefinedType} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class DistinctUserDefinedTypeItemProvider
+	extends UserDefinedTypeItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DistinctUserDefinedTypeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Collection getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(SQLDataTypesPackage.Literals.DISTINCT_USER_DEFINED_TYPE__PREDEFINED_REPRESENTATION);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns DistinctUserDefinedType.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/DistinctUserDefinedType")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((DistinctUserDefinedType)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_DistinctUserDefinedType_type") : //$NON-NLS-1$
+			getString("_UI_DistinctUserDefinedType_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(DistinctUserDefinedType.class)) {
+			case SQLDataTypesPackage.DISTINCT_USER_DEFINED_TYPE__PREDEFINED_REPRESENTATION:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLDataTypesPackage.Literals.DISTINCT_USER_DEFINED_TYPE__PREDEFINED_REPRESENTATION,
+				 SQLDataTypesFactory.eINSTANCE.createCharacterStringDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLDataTypesPackage.Literals.DISTINCT_USER_DEFINED_TYPE__PREDEFINED_REPRESENTATION,
+				 SQLDataTypesFactory.eINSTANCE.createBooleanDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLDataTypesPackage.Literals.DISTINCT_USER_DEFINED_TYPE__PREDEFINED_REPRESENTATION,
+				 SQLDataTypesFactory.eINSTANCE.createIntervalDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLDataTypesPackage.Literals.DISTINCT_USER_DEFINED_TYPE__PREDEFINED_REPRESENTATION,
+				 SQLDataTypesFactory.eINSTANCE.createBinaryStringDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLDataTypesPackage.Literals.DISTINCT_USER_DEFINED_TYPE__PREDEFINED_REPRESENTATION,
+				 SQLDataTypesFactory.eINSTANCE.createTimeDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLDataTypesPackage.Literals.DISTINCT_USER_DEFINED_TYPE__PREDEFINED_REPRESENTATION,
+				 SQLDataTypesFactory.eINSTANCE.createFixedPrecisionDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLDataTypesPackage.Literals.DISTINCT_USER_DEFINED_TYPE__PREDEFINED_REPRESENTATION,
+				 SQLDataTypesFactory.eINSTANCE.createDataLinkDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLDataTypesPackage.Literals.DISTINCT_USER_DEFINED_TYPE__PREDEFINED_REPRESENTATION,
+				 SQLDataTypesFactory.eINSTANCE.createDateDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLDataTypesPackage.Literals.DISTINCT_USER_DEFINED_TYPE__PREDEFINED_REPRESENTATION,
+				 SQLDataTypesFactory.eINSTANCE.createApproximateNumericDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLDataTypesPackage.Literals.DISTINCT_USER_DEFINED_TYPE__PREDEFINED_REPRESENTATION,
+				 SQLDataTypesFactory.eINSTANCE.createIntegerDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLDataTypesPackage.Literals.DISTINCT_USER_DEFINED_TYPE__PREDEFINED_REPRESENTATION,
+				 SQLDataTypesFactory.eINSTANCE.createXMLDataType()));
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/DomainItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/DomainItemProvider.java
new file mode 100644
index 0000000..ebab34d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/DomainItemProvider.java
@@ -0,0 +1,180 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DomainItemProvider.java,v 1.3 2007/05/31 00:29:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.datatypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsFactory;
+import org.eclipse.datatools.modelbase.sql.datatypes.Domain;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.Domain} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class DomainItemProvider
+	extends DistinctUserDefinedTypeItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DomainItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addDefaultValuePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Default Value feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDefaultValuePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Domain_defaultValue_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Domain_defaultValue_feature", "_UI_Domain_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLDataTypesPackage.Literals.DOMAIN__DEFAULT_VALUE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Collection getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(SQLDataTypesPackage.Literals.DOMAIN__CONSTRAINT);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns Domain.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/Domain")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((Domain)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_Domain_type") : //$NON-NLS-1$
+			getString("_UI_Domain_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(Domain.class)) {
+			case SQLDataTypesPackage.DOMAIN__DEFAULT_VALUE:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case SQLDataTypesPackage.DOMAIN__CONSTRAINT:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLDataTypesPackage.Literals.DOMAIN__CONSTRAINT,
+				 SQLConstraintsFactory.eINSTANCE.createCheckConstraint()));
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/ElementTypeItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/ElementTypeItemProvider.java
new file mode 100644
index 0000000..d3eca5d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/ElementTypeItemProvider.java
@@ -0,0 +1,123 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.modelbase.sql.datatypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.ElementType;
+
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.datatools.modelbase.sql.schema.provider.TypedElementItemProvider;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.ElementType} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ElementTypeItemProvider
+	extends TypedElementItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ElementTypeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns ElementType.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/ElementType")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((ElementType)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_ElementType_type") : //$NON-NLS-1$
+			getString("_UI_ElementType_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ResourceLocator getResourceLocator() {
+		return SqlmodelEditPlugin.INSTANCE;
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/ExactNumericDataTypeItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/ExactNumericDataTypeItemProvider.java
new file mode 100644
index 0000000..6ace613
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/ExactNumericDataTypeItemProvider.java
@@ -0,0 +1,132 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ExactNumericDataTypeItemProvider.java,v 1.4 2007/05/31 00:29:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.datatypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.ExactNumericDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.ExactNumericDataType} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ExactNumericDataTypeItemProvider
+	extends NumericalDataTypeItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ExactNumericDataTypeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addScalePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Scale feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addScalePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_ExactNumericDataType_scale_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_ExactNumericDataType_scale_feature", "_UI_ExactNumericDataType_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLDataTypesPackage.Literals.EXACT_NUMERIC_DATA_TYPE__SCALE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((ExactNumericDataType)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_ExactNumericDataType_type") : //$NON-NLS-1$
+			getString("_UI_ExactNumericDataType_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(ExactNumericDataType.class)) {
+			case SQLDataTypesPackage.EXACT_NUMERIC_DATA_TYPE__SCALE:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/FieldItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/FieldItemProvider.java
new file mode 100644
index 0000000..976f893
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/FieldItemProvider.java
@@ -0,0 +1,177 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: FieldItemProvider.java,v 1.3 2007/05/31 00:29:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.datatypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.Field;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.datatools.modelbase.sql.schema.provider.TypedElementItemProvider;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.Field} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class FieldItemProvider
+	extends TypedElementItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public FieldItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addScopeCheckPropertyDescriptor(object);
+			addScopeCheckedPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Scope Check feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addScopeCheckPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Field_scopeCheck_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Field_scopeCheck_feature", "_UI_Field_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLDataTypesPackage.Literals.FIELD__SCOPE_CHECK,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Scope Checked feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addScopeCheckedPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Field_scopeChecked_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Field_scopeChecked_feature", "_UI_Field_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLDataTypesPackage.Literals.FIELD__SCOPE_CHECKED,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns Field.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/Field")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((Field)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_Field_type") : //$NON-NLS-1$
+			getString("_UI_Field_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(Field.class)) {
+			case SQLDataTypesPackage.FIELD__SCOPE_CHECK:
+			case SQLDataTypesPackage.FIELD__SCOPE_CHECKED:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ResourceLocator getResourceLocator() {
+		return SqlmodelEditPlugin.INSTANCE;
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/FixedPrecisionDataTypeItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/FixedPrecisionDataTypeItemProvider.java
new file mode 100644
index 0000000..fbcb589
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/FixedPrecisionDataTypeItemProvider.java
@@ -0,0 +1,109 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: FixedPrecisionDataTypeItemProvider.java,v 1.3 2007/05/31 00:29:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.datatypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.FixedPrecisionDataType;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.FixedPrecisionDataType} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class FixedPrecisionDataTypeItemProvider
+	extends ExactNumericDataTypeItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public FixedPrecisionDataTypeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns FixedPrecisionDataType.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/FixedPrecisionDataType")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((FixedPrecisionDataType)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_FixedPrecisionDataType_type") : //$NON-NLS-1$
+			getString("_UI_FixedPrecisionDataType_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/IntegerDataTypeItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/IntegerDataTypeItemProvider.java
new file mode 100644
index 0000000..67c3c95
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/IntegerDataTypeItemProvider.java
@@ -0,0 +1,109 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: IntegerDataTypeItemProvider.java,v 1.3 2007/05/31 00:29:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.datatypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.IntegerDataType;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.IntegerDataType} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class IntegerDataTypeItemProvider
+	extends ExactNumericDataTypeItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IntegerDataTypeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns IntegerDataType.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/IntegerDataType")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((IntegerDataType)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_IntegerDataType_type") : //$NON-NLS-1$
+			getString("_UI_IntegerDataType_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/IntervalDataTypeItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/IntervalDataTypeItemProvider.java
new file mode 100644
index 0000000..db63756
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/IntervalDataTypeItemProvider.java
@@ -0,0 +1,238 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: IntervalDataTypeItemProvider.java,v 1.3 2007/05/31 00:29:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.datatypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.IntervalDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.IntervalDataType} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class IntervalDataTypeItemProvider
+	extends PredefinedDataTypeItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IntervalDataTypeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addLeadingQualifierPropertyDescriptor(object);
+			addTrailingQualifierPropertyDescriptor(object);
+			addLeadingFieldPrecisionPropertyDescriptor(object);
+			addTrailingFieldPrecisionPropertyDescriptor(object);
+			addFractionalSecondsPrecisionPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Leading Qualifier feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addLeadingQualifierPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_IntervalDataType_leadingQualifier_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_IntervalDataType_leadingQualifier_feature", "_UI_IntervalDataType_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLDataTypesPackage.Literals.INTERVAL_DATA_TYPE__LEADING_QUALIFIER,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Trailing Qualifier feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTrailingQualifierPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_IntervalDataType_trailingQualifier_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_IntervalDataType_trailingQualifier_feature", "_UI_IntervalDataType_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLDataTypesPackage.Literals.INTERVAL_DATA_TYPE__TRAILING_QUALIFIER,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Leading Field Precision feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addLeadingFieldPrecisionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_IntervalDataType_leadingFieldPrecision_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_IntervalDataType_leadingFieldPrecision_feature", "_UI_IntervalDataType_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLDataTypesPackage.Literals.INTERVAL_DATA_TYPE__LEADING_FIELD_PRECISION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Trailing Field Precision feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTrailingFieldPrecisionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_IntervalDataType_trailingFieldPrecision_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_IntervalDataType_trailingFieldPrecision_feature", "_UI_IntervalDataType_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLDataTypesPackage.Literals.INTERVAL_DATA_TYPE__TRAILING_FIELD_PRECISION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Fractional Seconds Precision feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addFractionalSecondsPrecisionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_IntervalDataType_fractionalSecondsPrecision_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_IntervalDataType_fractionalSecondsPrecision_feature", "_UI_IntervalDataType_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLDataTypesPackage.Literals.INTERVAL_DATA_TYPE__FRACTIONAL_SECONDS_PRECISION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns IntervalDataType.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/IntervalDataType")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((IntervalDataType)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_IntervalDataType_type") : //$NON-NLS-1$
+			getString("_UI_IntervalDataType_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(IntervalDataType.class)) {
+			case SQLDataTypesPackage.INTERVAL_DATA_TYPE__LEADING_QUALIFIER:
+			case SQLDataTypesPackage.INTERVAL_DATA_TYPE__TRAILING_QUALIFIER:
+			case SQLDataTypesPackage.INTERVAL_DATA_TYPE__LEADING_FIELD_PRECISION:
+			case SQLDataTypesPackage.INTERVAL_DATA_TYPE__TRAILING_FIELD_PRECISION:
+			case SQLDataTypesPackage.INTERVAL_DATA_TYPE__FRACTIONAL_SECONDS_PRECISION:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/MultisetDataTypeItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/MultisetDataTypeItemProvider.java
new file mode 100644
index 0000000..26539dc
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/MultisetDataTypeItemProvider.java
@@ -0,0 +1,99 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: MultisetDataTypeItemProvider.java,v 1.3 2006/03/09 23:46:15 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.datatypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.MultisetDataType;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.MultisetDataType} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class MultisetDataTypeItemProvider
+	extends CollectionDataTypeItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public MultisetDataTypeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((MultisetDataType)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_MultisetDataType_type") : //$NON-NLS-1$
+			getString("_UI_MultisetDataType_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/NumericalDataTypeItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/NumericalDataTypeItemProvider.java
new file mode 100644
index 0000000..8688290
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/NumericalDataTypeItemProvider.java
@@ -0,0 +1,132 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: NumericalDataTypeItemProvider.java,v 1.4 2007/05/31 00:29:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.datatypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.NumericalDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.NumericalDataType} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class NumericalDataTypeItemProvider
+	extends PredefinedDataTypeItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NumericalDataTypeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addPrecisionPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Precision feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addPrecisionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_NumericalDataType_precision_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_NumericalDataType_precision_feature", "_UI_NumericalDataType_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLDataTypesPackage.Literals.NUMERICAL_DATA_TYPE__PRECISION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((NumericalDataType)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_NumericalDataType_type") : //$NON-NLS-1$
+			getString("_UI_NumericalDataType_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(NumericalDataType.class)) {
+			case SQLDataTypesPackage.NUMERICAL_DATA_TYPE__PRECISION:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/PredefinedDataTypeItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/PredefinedDataTypeItemProvider.java
new file mode 100644
index 0000000..fe454dd
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/PredefinedDataTypeItemProvider.java
@@ -0,0 +1,132 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PredefinedDataTypeItemProvider.java,v 1.4 2007/05/31 00:29:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.datatypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.PredefinedDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.PredefinedDataType} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PredefinedDataTypeItemProvider
+	extends SQLDataTypeItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PredefinedDataTypeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addPrimitiveTypePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Primitive Type feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addPrimitiveTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_PredefinedDataType_primitiveType_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_PredefinedDataType_primitiveType_feature", "_UI_PredefinedDataType_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLDataTypesPackage.Literals.PREDEFINED_DATA_TYPE__PRIMITIVE_TYPE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((PredefinedDataType)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_PredefinedDataType_type") : //$NON-NLS-1$
+			getString("_UI_PredefinedDataType_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(PredefinedDataType.class)) {
+			case SQLDataTypesPackage.PREDEFINED_DATA_TYPE__PRIMITIVE_TYPE:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/ReferenceDataTypeItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/ReferenceDataTypeItemProvider.java
new file mode 100644
index 0000000..6121761
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/ReferenceDataTypeItemProvider.java
@@ -0,0 +1,148 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ReferenceDataTypeItemProvider.java,v 1.4 2007/05/31 00:29:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.datatypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.ReferenceDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.ReferenceDataType} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ReferenceDataTypeItemProvider
+	extends ConstructedDataTypeItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ReferenceDataTypeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addScopeTablePropertyDescriptor(object);
+			addReferencedTypePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Scope Table feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addScopeTablePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_ReferenceDataType_scopeTable_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_ReferenceDataType_scopeTable_feature", "_UI_ReferenceDataType_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLDataTypesPackage.Literals.REFERENCE_DATA_TYPE__SCOPE_TABLE,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Referenced Type feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addReferencedTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_ReferenceDataType_referencedType_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_ReferenceDataType_referencedType_feature", "_UI_ReferenceDataType_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLDataTypesPackage.Literals.REFERENCE_DATA_TYPE__REFERENCED_TYPE,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((ReferenceDataType)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_ReferenceDataType_type") : //$NON-NLS-1$
+			getString("_UI_ReferenceDataType_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/RowDataTypeItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/RowDataTypeItemProvider.java
new file mode 100644
index 0000000..29b9efe
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/RowDataTypeItemProvider.java
@@ -0,0 +1,152 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: RowDataTypeItemProvider.java,v 1.3 2007/05/31 00:29:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.datatypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.RowDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesFactory;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.RowDataType} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class RowDataTypeItemProvider
+	extends ConstructedDataTypeItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public RowDataTypeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Collection getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(SQLDataTypesPackage.Literals.ROW_DATA_TYPE__FIELDS);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns RowDataType.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/RowDataType")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((RowDataType)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_RowDataType_type") : //$NON-NLS-1$
+			getString("_UI_RowDataType_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(RowDataType.class)) {
+			case SQLDataTypesPackage.ROW_DATA_TYPE__FIELDS:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLDataTypesPackage.Literals.ROW_DATA_TYPE__FIELDS,
+				 SQLDataTypesFactory.eINSTANCE.createField()));
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/SQLDataTypeItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/SQLDataTypeItemProvider.java
new file mode 100644
index 0000000..599c767
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/SQLDataTypeItemProvider.java
@@ -0,0 +1,99 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SQLDataTypeItemProvider.java,v 1.3 2006/03/09 23:46:15 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.datatypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataType;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.SQLDataType} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SQLDataTypeItemProvider
+	extends DataTypeItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLDataTypeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((SQLDataType)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_SQLDataType_type") : //$NON-NLS-1$
+			getString("_UI_SQLDataType_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/SQLDataTypesItemProviderAdapterFactory.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/SQLDataTypesItemProviderAdapterFactory.java
new file mode 100644
index 0000000..01f80c7
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/SQLDataTypesItemProviderAdapterFactory.java
@@ -0,0 +1,634 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SQLDataTypesItemProviderAdapterFactory.java,v 1.3 2006/03/09 23:46:15 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.datatypes.provider;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.util.SQLDataTypesAdapterFactory;
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.edit.provider.ChangeNotifier;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.IChangeNotifier;
+import org.eclipse.emf.edit.provider.IDisposable;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.INotifyChangedListener;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the factory that is used to provide the interfaces needed to support Viewers.
+ * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
+ * The adapters also support Eclipse property sheets.
+ * Note that most of the adapters are shared among multiple instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SQLDataTypesItemProviderAdapterFactory extends SQLDataTypesAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable {
+	/**
+	 * This keeps track of the root adapter factory that delegates to this adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ComposedAdapterFactory parentAdapterFactory;
+
+	/**
+	 * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IChangeNotifier changeNotifier = new ChangeNotifier();
+
+	/**
+	 * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection supportedTypes = new ArrayList();
+
+	/**
+	 * This constructs an instance.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLDataTypesItemProviderAdapterFactory() {
+		supportedTypes.add(IEditingDomainItemProvider.class);
+		supportedTypes.add(IStructuredItemContentProvider.class);
+		supportedTypes.add(ITreeItemContentProvider.class);
+		supportedTypes.add(IItemLabelProvider.class);
+		supportedTypes.add(IItemPropertySource.class);
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.datatypes.CharacterStringDataType} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected CharacterStringDataTypeItemProvider characterStringDataTypeItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.CharacterStringDataType}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createCharacterStringDataTypeAdapter() {
+		if (characterStringDataTypeItemProvider == null) {
+			characterStringDataTypeItemProvider = new CharacterStringDataTypeItemProvider(this);
+		}
+
+		return characterStringDataTypeItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.datatypes.RowDataType} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected RowDataTypeItemProvider rowDataTypeItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.RowDataType}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createRowDataTypeAdapter() {
+		if (rowDataTypeItemProvider == null) {
+			rowDataTypeItemProvider = new RowDataTypeItemProvider(this);
+		}
+
+		return rowDataTypeItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.datatypes.BooleanDataType} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected BooleanDataTypeItemProvider booleanDataTypeItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.BooleanDataType}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createBooleanDataTypeAdapter() {
+		if (booleanDataTypeItemProvider == null) {
+			booleanDataTypeItemProvider = new BooleanDataTypeItemProvider(this);
+		}
+
+		return booleanDataTypeItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.datatypes.IntervalDataType} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IntervalDataTypeItemProvider intervalDataTypeItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.IntervalDataType}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createIntervalDataTypeAdapter() {
+		if (intervalDataTypeItemProvider == null) {
+			intervalDataTypeItemProvider = new IntervalDataTypeItemProvider(this);
+		}
+
+		return intervalDataTypeItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.datatypes.BinaryStringDataType} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected BinaryStringDataTypeItemProvider binaryStringDataTypeItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.BinaryStringDataType}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createBinaryStringDataTypeAdapter() {
+		if (binaryStringDataTypeItemProvider == null) {
+			binaryStringDataTypeItemProvider = new BinaryStringDataTypeItemProvider(this);
+		}
+
+		return binaryStringDataTypeItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.datatypes.CharacterSet} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected CharacterSetItemProvider characterSetItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.CharacterSet}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createCharacterSetAdapter() {
+		if (characterSetItemProvider == null) {
+			characterSetItemProvider = new CharacterSetItemProvider(this);
+		}
+
+		return characterSetItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.datatypes.TimeDataType} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TimeDataTypeItemProvider timeDataTypeItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.TimeDataType}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createTimeDataTypeAdapter() {
+		if (timeDataTypeItemProvider == null) {
+			timeDataTypeItemProvider = new TimeDataTypeItemProvider(this);
+		}
+
+		return timeDataTypeItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.datatypes.DistinctUserDefinedType} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DistinctUserDefinedTypeItemProvider distinctUserDefinedTypeItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.DistinctUserDefinedType}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createDistinctUserDefinedTypeAdapter() {
+		if (distinctUserDefinedTypeItemProvider == null) {
+			distinctUserDefinedTypeItemProvider = new DistinctUserDefinedTypeItemProvider(this);
+		}
+
+		return distinctUserDefinedTypeItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected StructuredUserDefinedTypeItemProvider structuredUserDefinedTypeItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createStructuredUserDefinedTypeAdapter() {
+		if (structuredUserDefinedTypeItemProvider == null) {
+			structuredUserDefinedTypeItemProvider = new StructuredUserDefinedTypeItemProvider(this);
+		}
+
+		return structuredUserDefinedTypeItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.datatypes.AttributeDefinition} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected AttributeDefinitionItemProvider attributeDefinitionItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.AttributeDefinition}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createAttributeDefinitionAdapter() {
+		if (attributeDefinitionItemProvider == null) {
+			attributeDefinitionItemProvider = new AttributeDefinitionItemProvider(this);
+		}
+
+		return attributeDefinitionItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.datatypes.FixedPrecisionDataType} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected FixedPrecisionDataTypeItemProvider fixedPrecisionDataTypeItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.FixedPrecisionDataType}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createFixedPrecisionDataTypeAdapter() {
+		if (fixedPrecisionDataTypeItemProvider == null) {
+			fixedPrecisionDataTypeItemProvider = new FixedPrecisionDataTypeItemProvider(this);
+		}
+
+		return fixedPrecisionDataTypeItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.datatypes.Domain} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DomainItemProvider domainItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.Domain}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createDomainAdapter() {
+		if (domainItemProvider == null) {
+			domainItemProvider = new DomainItemProvider(this);
+		}
+
+		return domainItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.datatypes.Field} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected FieldItemProvider fieldItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.Field}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createFieldAdapter() {
+		if (fieldItemProvider == null) {
+			fieldItemProvider = new FieldItemProvider(this);
+		}
+
+		return fieldItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.datatypes.DataLinkDataType} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DataLinkDataTypeItemProvider dataLinkDataTypeItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.DataLinkDataType}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createDataLinkDataTypeAdapter() {
+		if (dataLinkDataTypeItemProvider == null) {
+			dataLinkDataTypeItemProvider = new DataLinkDataTypeItemProvider(this);
+		}
+
+		return dataLinkDataTypeItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedTypeOrdering} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected UserDefinedTypeOrderingItemProvider userDefinedTypeOrderingItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedTypeOrdering}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createUserDefinedTypeOrderingAdapter() {
+		if (userDefinedTypeOrderingItemProvider == null) {
+			userDefinedTypeOrderingItemProvider = new UserDefinedTypeOrderingItemProvider(this);
+		}
+
+		return userDefinedTypeOrderingItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.datatypes.DateDataType} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DateDataTypeItemProvider dateDataTypeItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.DateDataType}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createDateDataTypeAdapter() {
+		if (dateDataTypeItemProvider == null) {
+			dateDataTypeItemProvider = new DateDataTypeItemProvider(this);
+		}
+
+		return dateDataTypeItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.datatypes.ApproximateNumericDataType} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ApproximateNumericDataTypeItemProvider approximateNumericDataTypeItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.ApproximateNumericDataType}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createApproximateNumericDataTypeAdapter() {
+		if (approximateNumericDataTypeItemProvider == null) {
+			approximateNumericDataTypeItemProvider = new ApproximateNumericDataTypeItemProvider(this);
+		}
+
+		return approximateNumericDataTypeItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.datatypes.IntegerDataType} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IntegerDataTypeItemProvider integerDataTypeItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.IntegerDataType}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createIntegerDataTypeAdapter() {
+		if (integerDataTypeItemProvider == null) {
+			integerDataTypeItemProvider = new IntegerDataTypeItemProvider(this);
+		}
+
+		return integerDataTypeItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.datatypes.XMLDataType} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected XMLDataTypeItemProvider xmlDataTypeItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.XMLDataType}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createXMLDataTypeAdapter() {
+		if (xmlDataTypeItemProvider == null) {
+			xmlDataTypeItemProvider = new XMLDataTypeItemProvider(this);
+		}
+
+		return xmlDataTypeItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.datatypes.ElementType} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ElementTypeItemProvider elementTypeItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.ElementType}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createElementTypeAdapter() {
+		if (elementTypeItemProvider == null) {
+			elementTypeItemProvider = new ElementTypeItemProvider(this);
+		}
+
+		return elementTypeItemProvider;
+	}
+
+	/**
+	 * This returns the root adapter factory that contains this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ComposeableAdapterFactory getRootAdapterFactory() {
+		return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
+	}
+
+	/**
+	 * This sets the composed adapter factory that contains this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
+		this.parentAdapterFactory = parentAdapterFactory;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isFactoryForType(Object type) {
+		return supportedTypes.contains(type) || super.isFactoryForType(type);
+	}
+
+	/**
+	 * This implementation substitutes the factory itself as the key for the adapter.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter adapt(Notifier notifier, Object type) {
+		return super.adapt(notifier, this);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object adapt(Object object, Object type) {
+		if (isFactoryForType(type)) {
+			Object adapter = super.adapt(object, type);
+			if (!(type instanceof Class) || (((Class)type).isInstance(adapter))) {
+				return adapter;
+			}
+		}
+
+		return null;
+	}
+
+	/**
+	 * This adds a listener.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void addListener(INotifyChangedListener notifyChangedListener) {
+		changeNotifier.addListener(notifyChangedListener);
+	}
+
+	/**
+	 * This removes a listener.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void removeListener(INotifyChangedListener notifyChangedListener) {
+		changeNotifier.removeListener(notifyChangedListener);
+	}
+
+	/**
+	 * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void fireNotifyChanged(Notification notification) {
+		changeNotifier.fireNotifyChanged(notification);
+
+		if (parentAdapterFactory != null) {
+			parentAdapterFactory.fireNotifyChanged(notification);
+		}
+	}
+
+	/**
+	 * This disposes all of the item providers created by this factory. 
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void dispose() {
+		if (characterStringDataTypeItemProvider != null) characterStringDataTypeItemProvider.dispose();
+		if (rowDataTypeItemProvider != null) rowDataTypeItemProvider.dispose();
+		if (booleanDataTypeItemProvider != null) booleanDataTypeItemProvider.dispose();
+		if (intervalDataTypeItemProvider != null) intervalDataTypeItemProvider.dispose();
+		if (binaryStringDataTypeItemProvider != null) binaryStringDataTypeItemProvider.dispose();
+		if (characterSetItemProvider != null) characterSetItemProvider.dispose();
+		if (timeDataTypeItemProvider != null) timeDataTypeItemProvider.dispose();
+		if (distinctUserDefinedTypeItemProvider != null) distinctUserDefinedTypeItemProvider.dispose();
+		if (structuredUserDefinedTypeItemProvider != null) structuredUserDefinedTypeItemProvider.dispose();
+		if (attributeDefinitionItemProvider != null) attributeDefinitionItemProvider.dispose();
+		if (fixedPrecisionDataTypeItemProvider != null) fixedPrecisionDataTypeItemProvider.dispose();
+		if (domainItemProvider != null) domainItemProvider.dispose();
+		if (fieldItemProvider != null) fieldItemProvider.dispose();
+		if (dataLinkDataTypeItemProvider != null) dataLinkDataTypeItemProvider.dispose();
+		if (userDefinedTypeOrderingItemProvider != null) userDefinedTypeOrderingItemProvider.dispose();
+		if (dateDataTypeItemProvider != null) dateDataTypeItemProvider.dispose();
+		if (approximateNumericDataTypeItemProvider != null) approximateNumericDataTypeItemProvider.dispose();
+		if (integerDataTypeItemProvider != null) integerDataTypeItemProvider.dispose();
+		if (xmlDataTypeItemProvider != null) xmlDataTypeItemProvider.dispose();
+		if (elementTypeItemProvider != null) elementTypeItemProvider.dispose();
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/StructuredUserDefinedTypeItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/StructuredUserDefinedTypeItemProvider.java
new file mode 100644
index 0000000..211ea2d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/StructuredUserDefinedTypeItemProvider.java
@@ -0,0 +1,258 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: StructuredUserDefinedTypeItemProvider.java,v 1.3 2007/05/31 00:29:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.datatypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesFactory;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType;
+import org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesFactory;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class StructuredUserDefinedTypeItemProvider
+	extends UserDefinedTypeItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public StructuredUserDefinedTypeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addInstantiablePropertyDescriptor(object);
+			addFinalPropertyDescriptor(object);
+			addSuperPropertyDescriptor(object);
+			addSubPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Instantiable feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addInstantiablePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_StructuredUserDefinedType_instantiable_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_StructuredUserDefinedType_instantiable_feature", "_UI_StructuredUserDefinedType_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLDataTypesPackage.Literals.STRUCTURED_USER_DEFINED_TYPE__INSTANTIABLE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Final feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addFinalPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_StructuredUserDefinedType_final_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_StructuredUserDefinedType_final_feature", "_UI_StructuredUserDefinedType_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLDataTypesPackage.Literals.STRUCTURED_USER_DEFINED_TYPE__FINAL,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Super feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSuperPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_StructuredUserDefinedType_super_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_StructuredUserDefinedType_super_feature", "_UI_StructuredUserDefinedType_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLDataTypesPackage.Literals.STRUCTURED_USER_DEFINED_TYPE__SUPER,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Sub feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSubPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_StructuredUserDefinedType_sub_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_StructuredUserDefinedType_sub_feature", "_UI_StructuredUserDefinedType_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLDataTypesPackage.Literals.STRUCTURED_USER_DEFINED_TYPE__SUB,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Collection getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(SQLDataTypesPackage.Literals.STRUCTURED_USER_DEFINED_TYPE__ATTRIBUTES);
+			childrenFeatures.add(SQLDataTypesPackage.Literals.STRUCTURED_USER_DEFINED_TYPE__METHODS);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns StructuredUserDefinedType.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/StructuredUserDefinedType")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((StructuredUserDefinedType)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_StructuredUserDefinedType_type") : //$NON-NLS-1$
+			getString("_UI_StructuredUserDefinedType_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(StructuredUserDefinedType.class)) {
+			case SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__INSTANTIABLE:
+			case SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__FINAL:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__ATTRIBUTES:
+			case SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__METHODS:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLDataTypesPackage.Literals.STRUCTURED_USER_DEFINED_TYPE__ATTRIBUTES,
+				 SQLDataTypesFactory.eINSTANCE.createAttributeDefinition()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLDataTypesPackage.Literals.STRUCTURED_USER_DEFINED_TYPE__METHODS,
+				 SQLRoutinesFactory.eINSTANCE.createMethod()));
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/TimeDataTypeItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/TimeDataTypeItemProvider.java
new file mode 100644
index 0000000..0c683b7
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/TimeDataTypeItemProvider.java
@@ -0,0 +1,166 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: TimeDataTypeItemProvider.java,v 1.3 2007/05/31 00:29:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.datatypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.datatypes.TimeDataType;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.TimeDataType} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class TimeDataTypeItemProvider
+	extends PredefinedDataTypeItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TimeDataTypeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addFractionalSecondsPrecisionPropertyDescriptor(object);
+			addTimeZonePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Fractional Seconds Precision feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addFractionalSecondsPrecisionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_TimeDataType_fractionalSecondsPrecision_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_TimeDataType_fractionalSecondsPrecision_feature", "_UI_TimeDataType_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLDataTypesPackage.Literals.TIME_DATA_TYPE__FRACTIONAL_SECONDS_PRECISION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Time Zone feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTimeZonePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_TimeDataType_timeZone_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_TimeDataType_timeZone_feature", "_UI_TimeDataType_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLDataTypesPackage.Literals.TIME_DATA_TYPE__TIME_ZONE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns TimeDataType.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/TimeDataType")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((TimeDataType)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_TimeDataType_type") : //$NON-NLS-1$
+			getString("_UI_TimeDataType_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(TimeDataType.class)) {
+			case SQLDataTypesPackage.TIME_DATA_TYPE__FRACTIONAL_SECONDS_PRECISION:
+			case SQLDataTypesPackage.TIME_DATA_TYPE__TIME_ZONE:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/UserDefinedTypeItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/UserDefinedTypeItemProvider.java
new file mode 100644
index 0000000..6693a2f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/UserDefinedTypeItemProvider.java
@@ -0,0 +1,167 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: UserDefinedTypeItemProvider.java,v 1.4 2007/05/31 00:29:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.datatypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesFactory;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class UserDefinedTypeItemProvider
+	extends DataTypeItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UserDefinedTypeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addSchemaPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Schema feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSchemaPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_UserDefinedType_schema_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_UserDefinedType_schema_feature", "_UI_UserDefinedType_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLDataTypesPackage.Literals.USER_DEFINED_TYPE__SCHEMA,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Collection getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(SQLDataTypesPackage.Literals.USER_DEFINED_TYPE__ORDERING);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((UserDefinedType)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_UserDefinedType_type") : //$NON-NLS-1$
+			getString("_UI_UserDefinedType_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(UserDefinedType.class)) {
+			case SQLDataTypesPackage.USER_DEFINED_TYPE__ORDERING:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLDataTypesPackage.Literals.USER_DEFINED_TYPE__ORDERING,
+				 SQLDataTypesFactory.eINSTANCE.createUserDefinedTypeOrdering()));
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/UserDefinedTypeOrderingItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/UserDefinedTypeOrderingItemProvider.java
new file mode 100644
index 0000000..f628fda
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/UserDefinedTypeOrderingItemProvider.java
@@ -0,0 +1,200 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: UserDefinedTypeOrderingItemProvider.java,v 1.3 2007/05/31 00:29:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.datatypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedTypeOrdering;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SQLObjectItemProvider;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedTypeOrdering} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class UserDefinedTypeOrderingItemProvider
+	extends SQLObjectItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UserDefinedTypeOrderingItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addOrderingFormPropertyDescriptor(object);
+			addOrderingCategoryPropertyDescriptor(object);
+			addOrderingRoutinePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Ordering Form feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addOrderingFormPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_UserDefinedTypeOrdering_orderingForm_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_UserDefinedTypeOrdering_orderingForm_feature", "_UI_UserDefinedTypeOrdering_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLDataTypesPackage.Literals.USER_DEFINED_TYPE_ORDERING__ORDERING_FORM,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Ordering Category feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addOrderingCategoryPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_UserDefinedTypeOrdering_orderingCategory_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_UserDefinedTypeOrdering_orderingCategory_feature", "_UI_UserDefinedTypeOrdering_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLDataTypesPackage.Literals.USER_DEFINED_TYPE_ORDERING__ORDERING_CATEGORY,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Ordering Routine feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addOrderingRoutinePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_UserDefinedTypeOrdering_orderingRoutine_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_UserDefinedTypeOrdering_orderingRoutine_feature", "_UI_UserDefinedTypeOrdering_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLDataTypesPackage.Literals.USER_DEFINED_TYPE_ORDERING__ORDERING_ROUTINE,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns UserDefinedTypeOrdering.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/UserDefinedTypeOrdering")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((UserDefinedTypeOrdering)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_UserDefinedTypeOrdering_type") : //$NON-NLS-1$
+			getString("_UI_UserDefinedTypeOrdering_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(UserDefinedTypeOrdering.class)) {
+			case SQLDataTypesPackage.USER_DEFINED_TYPE_ORDERING__ORDERING_FORM:
+			case SQLDataTypesPackage.USER_DEFINED_TYPE_ORDERING__ORDERING_CATEGORY:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ResourceLocator getResourceLocator() {
+		return SqlmodelEditPlugin.INSTANCE;
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/XMLDataTypeItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/XMLDataTypeItemProvider.java
new file mode 100644
index 0000000..65f6501
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/datatypes/provider/XMLDataTypeItemProvider.java
@@ -0,0 +1,109 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLDataTypeItemProvider.java,v 1.3 2007/05/31 00:29:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.datatypes.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.XMLDataType;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.datatypes.XMLDataType} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class XMLDataTypeItemProvider
+	extends PredefinedDataTypeItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public XMLDataTypeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns XMLDataType.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/XMLDataType")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((XMLDataType)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_XMLDataType_type") : //$NON-NLS-1$
+			getString("_UI_XMLDataType_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/expressions/provider/QueryExpressionDefaultItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/expressions/provider/QueryExpressionDefaultItemProvider.java
new file mode 100644
index 0000000..4716a37
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/expressions/provider/QueryExpressionDefaultItemProvider.java
@@ -0,0 +1,153 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QueryExpressionDefaultItemProvider.java,v 1.3 2007/05/31 00:29:18 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.expressions.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.expressions.QueryExpressionDefault;
+import org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsPackage;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SQLObjectItemProvider;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.expressions.QueryExpressionDefault} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class QueryExpressionDefaultItemProvider
+	extends SQLObjectItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public QueryExpressionDefaultItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addSQLPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the SQL feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSQLPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_QueryExpressionDefault_SQL_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_QueryExpressionDefault_SQL_feature", "_UI_QueryExpressionDefault_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLExpressionsPackage.Literals.QUERY_EXPRESSION_DEFAULT__SQL,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns QueryExpressionDefault.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/QueryExpressionDefault")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((QueryExpressionDefault)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_QueryExpressionDefault_type") : //$NON-NLS-1$
+			getString("_UI_QueryExpressionDefault_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(QueryExpressionDefault.class)) {
+			case SQLExpressionsPackage.QUERY_EXPRESSION_DEFAULT__SQL:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ResourceLocator getResourceLocator() {
+		return SqlmodelEditPlugin.INSTANCE;
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/expressions/provider/SQLExpressionsItemProviderAdapterFactory.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/expressions/provider/SQLExpressionsItemProviderAdapterFactory.java
new file mode 100644
index 0000000..a6bd267
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/expressions/provider/SQLExpressionsItemProviderAdapterFactory.java
@@ -0,0 +1,243 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SQLExpressionsItemProviderAdapterFactory.java,v 1.3 2006/03/09 23:46:15 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.expressions.provider;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.expressions.util.SQLExpressionsAdapterFactory;
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.edit.provider.ChangeNotifier;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.IChangeNotifier;
+import org.eclipse.emf.edit.provider.IDisposable;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.INotifyChangedListener;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the factory that is used to provide the interfaces needed to support Viewers.
+ * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
+ * The adapters also support Eclipse property sheets.
+ * Note that most of the adapters are shared among multiple instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SQLExpressionsItemProviderAdapterFactory extends SQLExpressionsAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable {
+	/**
+	 * This keeps track of the root adapter factory that delegates to this adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ComposedAdapterFactory parentAdapterFactory;
+
+	/**
+	 * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IChangeNotifier changeNotifier = new ChangeNotifier();
+
+	/**
+	 * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection supportedTypes = new ArrayList();
+
+	/**
+	 * This constructs an instance.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLExpressionsItemProviderAdapterFactory() {
+		supportedTypes.add(IEditingDomainItemProvider.class);
+		supportedTypes.add(IStructuredItemContentProvider.class);
+		supportedTypes.add(ITreeItemContentProvider.class);
+		supportedTypes.add(IItemLabelProvider.class);
+		supportedTypes.add(IItemPropertySource.class);
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.expressions.QueryExpressionDefault} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected QueryExpressionDefaultItemProvider queryExpressionDefaultItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.expressions.QueryExpressionDefault}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createQueryExpressionDefaultAdapter() {
+		if (queryExpressionDefaultItemProvider == null) {
+			queryExpressionDefaultItemProvider = new QueryExpressionDefaultItemProvider(this);
+		}
+
+		return queryExpressionDefaultItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.expressions.SearchConditionDefault} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SearchConditionDefaultItemProvider searchConditionDefaultItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.expressions.SearchConditionDefault}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createSearchConditionDefaultAdapter() {
+		if (searchConditionDefaultItemProvider == null) {
+			searchConditionDefaultItemProvider = new SearchConditionDefaultItemProvider(this);
+		}
+
+		return searchConditionDefaultItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.expressions.ValueExpressionDefault} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ValueExpressionDefaultItemProvider valueExpressionDefaultItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.expressions.ValueExpressionDefault}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createValueExpressionDefaultAdapter() {
+		if (valueExpressionDefaultItemProvider == null) {
+			valueExpressionDefaultItemProvider = new ValueExpressionDefaultItemProvider(this);
+		}
+
+		return valueExpressionDefaultItemProvider;
+	}
+
+	/**
+	 * This returns the root adapter factory that contains this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ComposeableAdapterFactory getRootAdapterFactory() {
+		return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
+	}
+
+	/**
+	 * This sets the composed adapter factory that contains this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
+		this.parentAdapterFactory = parentAdapterFactory;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isFactoryForType(Object type) {
+		return supportedTypes.contains(type) || super.isFactoryForType(type);
+	}
+
+	/**
+	 * This implementation substitutes the factory itself as the key for the adapter.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter adapt(Notifier notifier, Object type) {
+		return super.adapt(notifier, this);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object adapt(Object object, Object type) {
+		if (isFactoryForType(type)) {
+			Object adapter = super.adapt(object, type);
+			if (!(type instanceof Class) || (((Class)type).isInstance(adapter))) {
+				return adapter;
+			}
+		}
+
+		return null;
+	}
+
+	/**
+	 * This adds a listener.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void addListener(INotifyChangedListener notifyChangedListener) {
+		changeNotifier.addListener(notifyChangedListener);
+	}
+
+	/**
+	 * This removes a listener.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void removeListener(INotifyChangedListener notifyChangedListener) {
+		changeNotifier.removeListener(notifyChangedListener);
+	}
+
+	/**
+	 * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void fireNotifyChanged(Notification notification) {
+		changeNotifier.fireNotifyChanged(notification);
+
+		if (parentAdapterFactory != null) {
+			parentAdapterFactory.fireNotifyChanged(notification);
+		}
+	}
+
+	/**
+	 * This disposes all of the item providers created by this factory. 
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void dispose() {
+		if (queryExpressionDefaultItemProvider != null) queryExpressionDefaultItemProvider.dispose();
+		if (searchConditionDefaultItemProvider != null) searchConditionDefaultItemProvider.dispose();
+		if (valueExpressionDefaultItemProvider != null) valueExpressionDefaultItemProvider.dispose();
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/expressions/provider/SearchConditionDefaultItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/expressions/provider/SearchConditionDefaultItemProvider.java
new file mode 100644
index 0000000..0f9ae7e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/expressions/provider/SearchConditionDefaultItemProvider.java
@@ -0,0 +1,153 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SearchConditionDefaultItemProvider.java,v 1.3 2007/05/31 00:29:18 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.expressions.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsPackage;
+import org.eclipse.datatools.modelbase.sql.expressions.SearchConditionDefault;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SQLObjectItemProvider;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.expressions.SearchConditionDefault} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SearchConditionDefaultItemProvider
+	extends SQLObjectItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SearchConditionDefaultItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addSQLPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the SQL feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSQLPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_SearchConditionDefault_SQL_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_SearchConditionDefault_SQL_feature", "_UI_SearchConditionDefault_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLExpressionsPackage.Literals.SEARCH_CONDITION_DEFAULT__SQL,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns SearchConditionDefault.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/SearchConditionDefault")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((SearchConditionDefault)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_SearchConditionDefault_type") : //$NON-NLS-1$
+			getString("_UI_SearchConditionDefault_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(SearchConditionDefault.class)) {
+			case SQLExpressionsPackage.SEARCH_CONDITION_DEFAULT__SQL:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ResourceLocator getResourceLocator() {
+		return SqlmodelEditPlugin.INSTANCE;
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/expressions/provider/ValueExpressionDefaultItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/expressions/provider/ValueExpressionDefaultItemProvider.java
new file mode 100644
index 0000000..255f21e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/expressions/provider/ValueExpressionDefaultItemProvider.java
@@ -0,0 +1,153 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionDefaultItemProvider.java,v 1.3 2007/05/31 00:29:18 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.expressions.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsPackage;
+import org.eclipse.datatools.modelbase.sql.expressions.ValueExpressionDefault;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SQLObjectItemProvider;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.expressions.ValueExpressionDefault} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ValueExpressionDefaultItemProvider
+	extends SQLObjectItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ValueExpressionDefaultItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addSQLPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the SQL feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSQLPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_ValueExpressionDefault_SQL_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_ValueExpressionDefault_SQL_feature", "_UI_ValueExpressionDefault_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLExpressionsPackage.Literals.VALUE_EXPRESSION_DEFAULT__SQL,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns ValueExpressionDefault.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/ValueExpressionDefault")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((ValueExpressionDefault)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_ValueExpressionDefault_type") : //$NON-NLS-1$
+			getString("_UI_ValueExpressionDefault_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(ValueExpressionDefault.class)) {
+			case SQLExpressionsPackage.VALUE_EXPRESSION_DEFAULT__SQL:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ResourceLocator getResourceLocator() {
+		return SqlmodelEditPlugin.INSTANCE;
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/routines/provider/BuiltInFunctionItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/routines/provider/BuiltInFunctionItemProvider.java
new file mode 100644
index 0000000..35697f4
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/routines/provider/BuiltInFunctionItemProvider.java
@@ -0,0 +1,133 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: BuiltInFunctionItemProvider.java,v 1.4 2007/05/31 00:29:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.routines.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.routines.BuiltInFunction;
+import org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.routines.BuiltInFunction} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class BuiltInFunctionItemProvider
+	extends FunctionItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BuiltInFunctionItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns BuiltInFunction.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/BuiltInFunction")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((BuiltInFunction)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_BuiltInFunction_type") : //$NON-NLS-1$
+			getString("_UI_BuiltInFunction_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getCreateChildText(Object owner, Object feature, Object child, Collection selection) {
+		Object childFeature = feature;
+		Object childObject = child;
+
+		boolean qualify =
+			childFeature == SQLRoutinesPackage.Literals.ROUTINE__PARAMETERS ||
+			childFeature == SQLRoutinesPackage.Literals.FUNCTION__RETURN_SCALAR ||
+			childFeature == SQLRoutinesPackage.Literals.FUNCTION__RETURN_CAST;
+
+		if (qualify) {
+			return getString
+				("_UI_CreateChild_text2", //$NON-NLS-1$
+				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+		}
+		return super.getCreateChildText(owner, feature, child, selection);
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/routines/provider/FunctionItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/routines/provider/FunctionItemProvider.java
new file mode 100644
index 0000000..dda072e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/routines/provider/FunctionItemProvider.java
@@ -0,0 +1,313 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: FunctionItemProvider.java,v 1.4 2007/05/31 00:29:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.routines.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.routines.Function;
+import org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesFactory;
+import org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.routines.Function} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class FunctionItemProvider
+	extends RoutineItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public FunctionItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addNullCallPropertyDescriptor(object);
+			addStaticPropertyDescriptor(object);
+			addTransformGroupPropertyDescriptor(object);
+			addTypePreservingPropertyDescriptor(object);
+			addMutatorPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Null Call feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNullCallPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Function_nullCall_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Function_nullCall_feature", "_UI_Function_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLRoutinesPackage.Literals.FUNCTION__NULL_CALL,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Static feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addStaticPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Function_static_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Function_static_feature", "_UI_Function_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLRoutinesPackage.Literals.FUNCTION__STATIC,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Transform Group feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTransformGroupPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Function_transformGroup_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Function_transformGroup_feature", "_UI_Function_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLRoutinesPackage.Literals.FUNCTION__TRANSFORM_GROUP,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Type Preserving feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTypePreservingPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Function_typePreserving_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Function_typePreserving_feature", "_UI_Function_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLRoutinesPackage.Literals.FUNCTION__TYPE_PRESERVING,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Mutator feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addMutatorPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Function_mutator_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Function_mutator_feature", "_UI_Function_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLRoutinesPackage.Literals.FUNCTION__MUTATOR,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Collection getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(SQLRoutinesPackage.Literals.FUNCTION__RETURN_TABLE);
+			childrenFeatures.add(SQLRoutinesPackage.Literals.FUNCTION__RETURN_SCALAR);
+			childrenFeatures.add(SQLRoutinesPackage.Literals.FUNCTION__RETURN_CAST);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns Function.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/Function")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((Function)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_Function_type") : //$NON-NLS-1$
+			getString("_UI_Function_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(Function.class)) {
+			case SQLRoutinesPackage.FUNCTION__NULL_CALL:
+			case SQLRoutinesPackage.FUNCTION__STATIC:
+			case SQLRoutinesPackage.FUNCTION__TRANSFORM_GROUP:
+			case SQLRoutinesPackage.FUNCTION__TYPE_PRESERVING:
+			case SQLRoutinesPackage.FUNCTION__MUTATOR:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case SQLRoutinesPackage.FUNCTION__RETURN_TABLE:
+			case SQLRoutinesPackage.FUNCTION__RETURN_SCALAR:
+			case SQLRoutinesPackage.FUNCTION__RETURN_CAST:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLRoutinesPackage.Literals.FUNCTION__RETURN_TABLE,
+				 SQLRoutinesFactory.eINSTANCE.createRoutineResultTable()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLRoutinesPackage.Literals.FUNCTION__RETURN_SCALAR,
+				 SQLRoutinesFactory.eINSTANCE.createParameter()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLRoutinesPackage.Literals.FUNCTION__RETURN_CAST,
+				 SQLRoutinesFactory.eINSTANCE.createParameter()));
+	}
+
+	/**
+	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getCreateChildText(Object owner, Object feature, Object child, Collection selection) {
+		Object childFeature = feature;
+		Object childObject = child;
+
+		boolean qualify =
+			childFeature == SQLRoutinesPackage.Literals.ROUTINE__PARAMETERS ||
+			childFeature == SQLRoutinesPackage.Literals.FUNCTION__RETURN_SCALAR ||
+			childFeature == SQLRoutinesPackage.Literals.FUNCTION__RETURN_CAST;
+
+		if (qualify) {
+			return getString
+				("_UI_CreateChild_text2", //$NON-NLS-1$
+				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+		}
+		return super.getCreateChildText(owner, feature, child, selection);
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/routines/provider/MethodItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/routines/provider/MethodItemProvider.java
new file mode 100644
index 0000000..2be5f47
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/routines/provider/MethodItemProvider.java
@@ -0,0 +1,189 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: MethodItemProvider.java,v 1.4 2007/05/31 00:29:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.routines.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.routines.Method;
+import org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.routines.Method} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class MethodItemProvider
+	extends FunctionItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public MethodItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addOverridingPropertyDescriptor(object);
+			addConstructorPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Overriding feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addOverridingPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Method_overriding_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Method_overriding_feature", "_UI_Method_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLRoutinesPackage.Literals.METHOD__OVERRIDING,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Constructor feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addConstructorPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Method_constructor_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Method_constructor_feature", "_UI_Method_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLRoutinesPackage.Literals.METHOD__CONSTRUCTOR,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns Method.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/Method")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((Method)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_Method_type") : //$NON-NLS-1$
+			getString("_UI_Method_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(Method.class)) {
+			case SQLRoutinesPackage.METHOD__OVERRIDING:
+			case SQLRoutinesPackage.METHOD__CONSTRUCTOR:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getCreateChildText(Object owner, Object feature, Object child, Collection selection) {
+		Object childFeature = feature;
+		Object childObject = child;
+
+		boolean qualify =
+			childFeature == SQLRoutinesPackage.Literals.ROUTINE__PARAMETERS ||
+			childFeature == SQLRoutinesPackage.Literals.FUNCTION__RETURN_SCALAR ||
+			childFeature == SQLRoutinesPackage.Literals.FUNCTION__RETURN_CAST;
+
+		if (qualify) {
+			return getString
+				("_UI_CreateChild_text2", //$NON-NLS-1$
+				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+		}
+		return super.getCreateChildText(owner, feature, child, selection);
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/routines/provider/ParameterItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/routines/provider/ParameterItemProvider.java
new file mode 100644
index 0000000..c72b506
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/routines/provider/ParameterItemProvider.java
@@ -0,0 +1,240 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ParameterItemProvider.java,v 1.4 2007/05/31 00:29:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.routines.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesFactory;
+
+import org.eclipse.datatools.modelbase.sql.routines.Parameter;
+import org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.datatools.modelbase.sql.schema.provider.TypedElementItemProvider;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.routines.Parameter} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ParameterItemProvider
+	extends TypedElementItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ParameterItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addModePropertyDescriptor(object);
+			addLocatorPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Mode feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addModePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Parameter_mode_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Parameter_mode_feature", "_UI_Parameter_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLRoutinesPackage.Literals.PARAMETER__MODE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Locator feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addLocatorPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Parameter_locator_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Parameter_locator_feature", "_UI_Parameter_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLRoutinesPackage.Literals.PARAMETER__LOCATOR,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Collection getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(SQLRoutinesPackage.Literals.PARAMETER__STRING_TYPE_OPTION);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns Parameter.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/Parameter")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((Parameter)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_Parameter_type") : //$NON-NLS-1$
+			getString("_UI_Parameter_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(Parameter.class)) {
+			case SQLRoutinesPackage.PARAMETER__MODE:
+			case SQLRoutinesPackage.PARAMETER__LOCATOR:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case SQLRoutinesPackage.PARAMETER__STRING_TYPE_OPTION:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLRoutinesPackage.Literals.PARAMETER__STRING_TYPE_OPTION,
+				 SQLDataTypesFactory.eINSTANCE.createCharacterStringDataType()));
+	}
+
+	/**
+	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getCreateChildText(Object owner, Object feature, Object child, Collection selection) {
+		Object childFeature = feature;
+		Object childObject = child;
+
+		boolean qualify =
+			childFeature == SQLSchemaPackage.Literals.TYPED_ELEMENT__CONTAINED_TYPE ||
+			childFeature == SQLRoutinesPackage.Literals.PARAMETER__STRING_TYPE_OPTION;
+
+		if (qualify) {
+			return getString
+				("_UI_CreateChild_text2", //$NON-NLS-1$
+				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+		}
+		return super.getCreateChildText(owner, feature, child, selection);
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ResourceLocator getResourceLocator() {
+		return SqlmodelEditPlugin.INSTANCE;
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/routines/provider/ProcedureItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/routines/provider/ProcedureItemProvider.java
new file mode 100644
index 0000000..3cd0614
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/routines/provider/ProcedureItemProvider.java
@@ -0,0 +1,204 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ProcedureItemProvider.java,v 1.3 2007/05/31 00:29:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.routines.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.routines.Procedure;
+import org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesFactory;
+import org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.routines.Procedure} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ProcedureItemProvider
+	extends RoutineItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ProcedureItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addMaxResultSetsPropertyDescriptor(object);
+			addOldSavePointPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Max Result Sets feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addMaxResultSetsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Procedure_maxResultSets_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Procedure_maxResultSets_feature", "_UI_Procedure_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLRoutinesPackage.Literals.PROCEDURE__MAX_RESULT_SETS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Old Save Point feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addOldSavePointPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Procedure_oldSavePoint_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Procedure_oldSavePoint_feature", "_UI_Procedure_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLRoutinesPackage.Literals.PROCEDURE__OLD_SAVE_POINT,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Collection getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(SQLRoutinesPackage.Literals.PROCEDURE__RESULT_SET);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns Procedure.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/Procedure")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((Procedure)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_Procedure_type") : //$NON-NLS-1$
+			getString("_UI_Procedure_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(Procedure.class)) {
+			case SQLRoutinesPackage.PROCEDURE__MAX_RESULT_SETS:
+			case SQLRoutinesPackage.PROCEDURE__OLD_SAVE_POINT:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case SQLRoutinesPackage.PROCEDURE__RESULT_SET:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLRoutinesPackage.Literals.PROCEDURE__RESULT_SET,
+				 SQLRoutinesFactory.eINSTANCE.createRoutineResultTable()));
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/routines/provider/RoutineItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/routines/provider/RoutineItemProvider.java
new file mode 100644
index 0000000..4474e80
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/routines/provider/RoutineItemProvider.java
@@ -0,0 +1,437 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: RoutineItemProvider.java,v 1.3 2007/05/31 00:29:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.routines.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.routines.Routine;
+import org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesFactory;
+import org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SQLObjectItemProvider;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.routines.Routine} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class RoutineItemProvider
+	extends SQLObjectItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public RoutineItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addSpecificNamePropertyDescriptor(object);
+			addLanguagePropertyDescriptor(object);
+			addParameterStylePropertyDescriptor(object);
+			addDeterministicPropertyDescriptor(object);
+			addSqlDataAccessPropertyDescriptor(object);
+			addCreationTSPropertyDescriptor(object);
+			addLastAlteredTSPropertyDescriptor(object);
+			addAuthorizationIDPropertyDescriptor(object);
+			addSecurityPropertyDescriptor(object);
+			addExternalNamePropertyDescriptor(object);
+			addSchemaPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Specific Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSpecificNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Routine_specificName_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Routine_specificName_feature", "_UI_Routine_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLRoutinesPackage.Literals.ROUTINE__SPECIFIC_NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Language feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addLanguagePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Routine_language_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Routine_language_feature", "_UI_Routine_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLRoutinesPackage.Literals.ROUTINE__LANGUAGE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Parameter Style feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addParameterStylePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Routine_parameterStyle_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Routine_parameterStyle_feature", "_UI_Routine_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLRoutinesPackage.Literals.ROUTINE__PARAMETER_STYLE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Deterministic feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDeterministicPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Routine_deterministic_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Routine_deterministic_feature", "_UI_Routine_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLRoutinesPackage.Literals.ROUTINE__DETERMINISTIC,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Sql Data Access feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSqlDataAccessPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Routine_sqlDataAccess_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Routine_sqlDataAccess_feature", "_UI_Routine_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLRoutinesPackage.Literals.ROUTINE__SQL_DATA_ACCESS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Creation TS feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCreationTSPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Routine_creationTS_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Routine_creationTS_feature", "_UI_Routine_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLRoutinesPackage.Literals.ROUTINE__CREATION_TS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Last Altered TS feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addLastAlteredTSPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Routine_lastAlteredTS_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Routine_lastAlteredTS_feature", "_UI_Routine_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLRoutinesPackage.Literals.ROUTINE__LAST_ALTERED_TS,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Authorization ID feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addAuthorizationIDPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Routine_authorizationID_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Routine_authorizationID_feature", "_UI_Routine_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLRoutinesPackage.Literals.ROUTINE__AUTHORIZATION_ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Security feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSecurityPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Routine_security_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Routine_security_feature", "_UI_Routine_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLRoutinesPackage.Literals.ROUTINE__SECURITY,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the External Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addExternalNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Routine_externalName_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Routine_externalName_feature", "_UI_Routine_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLRoutinesPackage.Literals.ROUTINE__EXTERNAL_NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Schema feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSchemaPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Routine_schema_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Routine_schema_feature", "_UI_Routine_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLRoutinesPackage.Literals.ROUTINE__SCHEMA,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Collection getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(SQLRoutinesPackage.Literals.ROUTINE__PARAMETERS);
+			childrenFeatures.add(SQLRoutinesPackage.Literals.ROUTINE__SOURCE);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns Routine.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/Routine")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((Routine)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_Routine_type") : //$NON-NLS-1$
+			getString("_UI_Routine_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(Routine.class)) {
+			case SQLRoutinesPackage.ROUTINE__SPECIFIC_NAME:
+			case SQLRoutinesPackage.ROUTINE__LANGUAGE:
+			case SQLRoutinesPackage.ROUTINE__PARAMETER_STYLE:
+			case SQLRoutinesPackage.ROUTINE__DETERMINISTIC:
+			case SQLRoutinesPackage.ROUTINE__SQL_DATA_ACCESS:
+			case SQLRoutinesPackage.ROUTINE__CREATION_TS:
+			case SQLRoutinesPackage.ROUTINE__LAST_ALTERED_TS:
+			case SQLRoutinesPackage.ROUTINE__AUTHORIZATION_ID:
+			case SQLRoutinesPackage.ROUTINE__SECURITY:
+			case SQLRoutinesPackage.ROUTINE__EXTERNAL_NAME:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case SQLRoutinesPackage.ROUTINE__PARAMETERS:
+			case SQLRoutinesPackage.ROUTINE__SOURCE:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLRoutinesPackage.Literals.ROUTINE__PARAMETERS,
+				 SQLRoutinesFactory.eINSTANCE.createParameter()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLRoutinesPackage.Literals.ROUTINE__SOURCE,
+				 SQLRoutinesFactory.eINSTANCE.createSource()));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ResourceLocator getResourceLocator() {
+		return SqlmodelEditPlugin.INSTANCE;
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/routines/provider/RoutineResultTableItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/routines/provider/RoutineResultTableItemProvider.java
new file mode 100644
index 0000000..424a685
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/routines/provider/RoutineResultTableItemProvider.java
@@ -0,0 +1,121 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: RoutineResultTableItemProvider.java,v 1.3 2007/05/31 00:29:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.routines.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.routines.RoutineResultTable;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.datatools.modelbase.sql.tables.provider.TableItemProvider;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.routines.RoutineResultTable} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class RoutineResultTableItemProvider
+	extends TableItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public RoutineResultTableItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns RoutineResultTable.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/RoutineResultTable")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((RoutineResultTable)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_RoutineResultTable_type") : //$NON-NLS-1$
+			getString("_UI_RoutineResultTable_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ResourceLocator getResourceLocator() {
+		return SqlmodelEditPlugin.INSTANCE;
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/routines/provider/SQLRoutinesItemProviderAdapterFactory.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/routines/provider/SQLRoutinesItemProviderAdapterFactory.java
new file mode 100644
index 0000000..0133e92
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/routines/provider/SQLRoutinesItemProviderAdapterFactory.java
@@ -0,0 +1,340 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SQLRoutinesItemProviderAdapterFactory.java,v 1.2 2005/12/22 22:37:40 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.routines.provider;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.routines.util.SQLRoutinesAdapterFactory;
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.edit.provider.ChangeNotifier;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.IChangeNotifier;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.INotifyChangedListener;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the factory that is used to provide the interfaces needed to support Viewers.
+ * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
+ * The adapters also support Eclipse property sheets.
+ * Note that most of the adapters are shared among multiple instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SQLRoutinesItemProviderAdapterFactory extends SQLRoutinesAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier {
+	/**
+	 * This keeps track of the root adapter factory that delegates to this adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ComposedAdapterFactory parentAdapterFactory;
+
+	/**
+	 * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IChangeNotifier changeNotifier = new ChangeNotifier();
+
+	/**
+	 * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection supportedTypes = new ArrayList();
+
+	/**
+	 * This constructs an instance.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLRoutinesItemProviderAdapterFactory() {
+		supportedTypes.add(IEditingDomainItemProvider.class);
+		supportedTypes.add(IStructuredItemContentProvider.class);
+		supportedTypes.add(ITreeItemContentProvider.class);
+		supportedTypes.add(IItemLabelProvider.class);
+		supportedTypes.add(IItemPropertySource.class);
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.routines.Source} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SourceItemProvider sourceItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.routines.Source}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createSourceAdapter() {
+		if (sourceItemProvider == null) {
+			sourceItemProvider = new SourceItemProvider(this);
+		}
+
+		return sourceItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.routines.Parameter} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ParameterItemProvider parameterItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.routines.Parameter}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createParameterAdapter() {
+		if (parameterItemProvider == null) {
+			parameterItemProvider = new ParameterItemProvider(this);
+		}
+
+		return parameterItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.routines.Procedure} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ProcedureItemProvider procedureItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.routines.Procedure}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createProcedureAdapter() {
+		if (procedureItemProvider == null) {
+			procedureItemProvider = new ProcedureItemProvider(this);
+		}
+
+		return procedureItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.routines.Function} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected FunctionItemProvider functionItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.routines.Function}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createFunctionAdapter() {
+		if (functionItemProvider == null) {
+			functionItemProvider = new FunctionItemProvider(this);
+		}
+
+		return functionItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.routines.RoutineResultTable} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected RoutineResultTableItemProvider routineResultTableItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.routines.RoutineResultTable}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createRoutineResultTableAdapter() {
+		if (routineResultTableItemProvider == null) {
+			routineResultTableItemProvider = new RoutineResultTableItemProvider(this);
+		}
+
+		return routineResultTableItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.routines.Method} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected MethodItemProvider methodItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.routines.Method}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createMethodAdapter() {
+		if (methodItemProvider == null) {
+			methodItemProvider = new MethodItemProvider(this);
+		}
+
+		return methodItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.routines.UserDefinedFunction} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected UserDefinedFunctionItemProvider userDefinedFunctionItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.routines.UserDefinedFunction}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createUserDefinedFunctionAdapter() {
+		if (userDefinedFunctionItemProvider == null) {
+			userDefinedFunctionItemProvider = new UserDefinedFunctionItemProvider(this);
+		}
+
+		return userDefinedFunctionItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.routines.BuiltInFunction} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected BuiltInFunctionItemProvider builtInFunctionItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.routines.BuiltInFunction}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createBuiltInFunctionAdapter() {
+		if (builtInFunctionItemProvider == null) {
+			builtInFunctionItemProvider = new BuiltInFunctionItemProvider(this);
+		}
+
+		return builtInFunctionItemProvider;
+	}
+
+	/**
+	 * This returns the root adapter factory that contains this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ComposeableAdapterFactory getRootAdapterFactory() {
+		return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
+	}
+
+	/**
+	 * This sets the composed adapter factory that contains this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
+		this.parentAdapterFactory = parentAdapterFactory;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isFactoryForType(Object type) {
+		return supportedTypes.contains(type) || super.isFactoryForType(type);
+	}
+
+	/**
+	 * This implementation substitutes the factory itself as the key for the adapter.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter adapt(Notifier notifier, Object type) {
+		return super.adapt(notifier, this);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object adapt(Object object, Object type) {
+		if (isFactoryForType(type)) {
+			Object adapter = super.adapt(object, type);
+			if (!(type instanceof Class) || (((Class)type).isInstance(adapter))) {
+				return adapter;
+			}
+		}
+
+		return null;
+	}
+
+	/**
+	 * This adds a listener.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void addListener(INotifyChangedListener notifyChangedListener) {
+		changeNotifier.addListener(notifyChangedListener);
+	}
+
+	/**
+	 * This removes a listener.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void removeListener(INotifyChangedListener notifyChangedListener) {
+		changeNotifier.removeListener(notifyChangedListener);
+	}
+
+	/**
+	 * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void fireNotifyChanged(Notification notification) {
+		changeNotifier.fireNotifyChanged(notification);
+
+		if (parentAdapterFactory != null) {
+			parentAdapterFactory.fireNotifyChanged(notification);
+		}
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/routines/provider/SourceItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/routines/provider/SourceItemProvider.java
new file mode 100644
index 0000000..3a9726d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/routines/provider/SourceItemProvider.java
@@ -0,0 +1,153 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SourceItemProvider.java,v 1.3 2007/05/31 00:29:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.routines.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage;
+import org.eclipse.datatools.modelbase.sql.routines.Source;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SQLObjectItemProvider;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.routines.Source} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SourceItemProvider
+	extends SQLObjectItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SourceItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addBodyPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Body feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addBodyPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Source_body_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Source_body_feature", "_UI_Source_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLRoutinesPackage.Literals.SOURCE__BODY,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns Source.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/Source")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((Source)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_Source_type") : //$NON-NLS-1$
+			getString("_UI_Source_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(Source.class)) {
+			case SQLRoutinesPackage.SOURCE__BODY:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ResourceLocator getResourceLocator() {
+		return SqlmodelEditPlugin.INSTANCE;
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/routines/provider/UserDefinedFunctionItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/routines/provider/UserDefinedFunctionItemProvider.java
new file mode 100644
index 0000000..82e7557
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/routines/provider/UserDefinedFunctionItemProvider.java
@@ -0,0 +1,133 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: UserDefinedFunctionItemProvider.java,v 1.4 2007/05/31 00:29:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.routines.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage;
+import org.eclipse.datatools.modelbase.sql.routines.UserDefinedFunction;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.routines.UserDefinedFunction} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class UserDefinedFunctionItemProvider
+	extends FunctionItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UserDefinedFunctionItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns UserDefinedFunction.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/UserDefinedFunction")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((UserDefinedFunction)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_UserDefinedFunction_type") : //$NON-NLS-1$
+			getString("_UI_UserDefinedFunction_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getCreateChildText(Object owner, Object feature, Object child, Collection selection) {
+		Object childFeature = feature;
+		Object childObject = child;
+
+		boolean qualify =
+			childFeature == SQLRoutinesPackage.Literals.ROUTINE__PARAMETERS ||
+			childFeature == SQLRoutinesPackage.Literals.FUNCTION__RETURN_SCALAR ||
+			childFeature == SQLRoutinesPackage.Literals.FUNCTION__RETURN_CAST;
+
+		if (qualify) {
+			return getString
+				("_UI_CreateChild_text2", //$NON-NLS-1$
+				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+		}
+		return super.getCreateChildText(owner, feature, child, selection);
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/schema/provider/CatalogItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/schema/provider/CatalogItemProvider.java
new file mode 100644
index 0000000..ee39d4a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/schema/provider/CatalogItemProvider.java
@@ -0,0 +1,158 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: CatalogItemProvider.java,v 1.1 2007/05/31 00:29:18 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.schema.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.schema.Catalog;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.schema.Catalog} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CatalogItemProvider
+	extends SQLObjectItemProvider
+	implements	
+		IEditingDomainItemProvider,	
+		IStructuredItemContentProvider,	
+		ITreeItemContentProvider,	
+		IItemLabelProvider,	
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public CatalogItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addDatabasePropertyDescriptor(object);
+			addSchemasPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Database feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatabasePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Catalog_Database_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Catalog_Database_feature", "_UI_Catalog_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLSchemaPackage.Literals.CATALOG__DATABASE,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Schemas feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSchemasPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Catalog_schemas_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Catalog_schemas_feature", "_UI_Catalog_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLSchemaPackage.Literals.CATALOG__SCHEMAS,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns Catalog.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/Catalog")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((Catalog)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_Catalog_type") : //$NON-NLS-1$
+			getString("_UI_Catalog_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/schema/provider/CommentItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/schema/provider/CommentItemProvider.java
new file mode 100644
index 0000000..35c25e3
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/schema/provider/CommentItemProvider.java
@@ -0,0 +1,177 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: CommentItemProvider.java,v 1.1 2007/05/31 00:29:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.schema.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.schema.Comment;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.schema.Comment} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CommentItemProvider
+	extends ItemProviderAdapter
+	implements	
+		IEditingDomainItemProvider,	
+		IStructuredItemContentProvider,	
+		ITreeItemContentProvider,	
+		IItemLabelProvider,	
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public CommentItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addDescriptionPropertyDescriptor(object);
+			addSQLObjectPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Description feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Comment_description_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Comment_description_feature", "_UI_Comment_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLSchemaPackage.Literals.COMMENT__DESCRIPTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the SQL Object feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSQLObjectPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Comment_SQLObject_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Comment_SQLObject_feature", "_UI_Comment_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLSchemaPackage.Literals.COMMENT__SQL_OBJECT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns Comment.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/Comment")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((Comment)object).getDescription();
+		return label == null || label.length() == 0 ?
+			getString("_UI_Comment_type") : //$NON-NLS-1$
+			getString("_UI_Comment_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(Comment.class)) {
+			case SQLSchemaPackage.COMMENT__DESCRIPTION:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ResourceLocator getResourceLocator() {
+		return SqlmodelEditPlugin.INSTANCE;
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/schema/provider/DatabaseItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/schema/provider/DatabaseItemProvider.java
new file mode 100644
index 0000000..d7e596e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/schema/provider/DatabaseItemProvider.java
@@ -0,0 +1,256 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DatabaseItemProvider.java,v 1.4 2007/05/31 00:29:18 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.schema.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.schema.Database} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class DatabaseItemProvider
+	extends SQLObjectItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DatabaseItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addVendorPropertyDescriptor(object);
+			addVersionPropertyDescriptor(object);
+			addSchemasPropertyDescriptor(object);
+			addEventsPropertyDescriptor(object);
+			addCatalogsPropertyDescriptor(object);
+			addAuthorizationIdsPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Vendor feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addVendorPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Database_vendor_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Database_vendor_feature", "_UI_Database_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLSchemaPackage.Literals.DATABASE__VENDOR,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Version feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addVersionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Database_version_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Database_version_feature", "_UI_Database_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLSchemaPackage.Literals.DATABASE__VERSION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Schemas feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSchemasPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Database_schemas_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Database_schemas_feature", "_UI_Database_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLSchemaPackage.Literals.DATABASE__SCHEMAS,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Events feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addEventsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Database_events_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Database_events_feature", "_UI_Database_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLSchemaPackage.Literals.DATABASE__EVENTS,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Catalogs feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCatalogsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Database_catalogs_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Database_catalogs_feature", "_UI_Database_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLSchemaPackage.Literals.DATABASE__CATALOGS,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Authorization Ids feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addAuthorizationIdsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Database_authorizationIds_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Database_authorizationIds_feature", "_UI_Database_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLSchemaPackage.Literals.DATABASE__AUTHORIZATION_IDS,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns Database.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/Database")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((Database)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_Database_type") : //$NON-NLS-1$
+			getString("_UI_Database_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(Database.class)) {
+			case SQLSchemaPackage.DATABASE__VENDOR:
+			case SQLSchemaPackage.DATABASE__VERSION:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/schema/provider/DependencyItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/schema/provider/DependencyItemProvider.java
new file mode 100644
index 0000000..e01d7bf
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/schema/provider/DependencyItemProvider.java
@@ -0,0 +1,163 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DependencyItemProvider.java,v 1.3 2007/05/31 00:29:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.schema.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.schema.Dependency;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.schema.Dependency} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class DependencyItemProvider
+	extends SQLObjectItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DependencyItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTargetEndPropertyDescriptor(object);
+			addDependencyTypePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Target End feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTargetEndPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Dependency_targetEnd_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Dependency_targetEnd_feature", "_UI_Dependency_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLSchemaPackage.Literals.DEPENDENCY__TARGET_END,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Dependency Type feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDependencyTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Dependency_dependencyType_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Dependency_dependencyType_feature", "_UI_Dependency_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLSchemaPackage.Literals.DEPENDENCY__DEPENDENCY_TYPE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns Dependency.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/Dependency")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((Dependency)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_Dependency_type") : //$NON-NLS-1$
+			getString("_UI_Dependency_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(Dependency.class)) {
+			case SQLSchemaPackage.DEPENDENCY__DEPENDENCY_TYPE:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/schema/provider/EventItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/schema/provider/EventItemProvider.java
new file mode 100644
index 0000000..1b3ec54
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/schema/provider/EventItemProvider.java
@@ -0,0 +1,238 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: EventItemProvider.java,v 1.2 2007/05/31 00:29:18 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.schema.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.schema.Event;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.schema.Event} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class EventItemProvider
+	extends SQLObjectItemProvider
+	implements	
+		IEditingDomainItemProvider,	
+		IStructuredItemContentProvider,	
+		ITreeItemContentProvider,	
+		IItemLabelProvider,	
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EventItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addForPropertyDescriptor(object);
+			addConditionPropertyDescriptor(object);
+			addActionPropertyDescriptor(object);
+			addEnabledPropertyDescriptor(object);
+			addDatabasePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the For feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addForPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Event_for_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Event_for_feature", "_UI_Event_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLSchemaPackage.Literals.EVENT__FOR,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Condition feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addConditionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Event_condition_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Event_condition_feature", "_UI_Event_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLSchemaPackage.Literals.EVENT__CONDITION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Action feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addActionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Event_action_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Event_action_feature", "_UI_Event_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLSchemaPackage.Literals.EVENT__ACTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Enabled feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addEnabledPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Event_enabled_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Event_enabled_feature", "_UI_Event_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLSchemaPackage.Literals.EVENT__ENABLED,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Database feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatabasePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Event_Database_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Event_Database_feature", "_UI_Event_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLSchemaPackage.Literals.EVENT__DATABASE,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns Event.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/Event")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((Event)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_Event_type") : //$NON-NLS-1$
+			getString("_UI_Event_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(Event.class)) {
+			case SQLSchemaPackage.EVENT__FOR:
+			case SQLSchemaPackage.EVENT__CONDITION:
+			case SQLSchemaPackage.EVENT__ACTION:
+			case SQLSchemaPackage.EVENT__ENABLED:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/schema/provider/IdentitySpecifierItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/schema/provider/IdentitySpecifierItemProvider.java
new file mode 100644
index 0000000..59ae5de
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/schema/provider/IdentitySpecifierItemProvider.java
@@ -0,0 +1,260 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: IdentitySpecifierItemProvider.java,v 1.3 2007/05/31 00:29:18 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.schema.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.schema.IdentitySpecifier;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.schema.IdentitySpecifier} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class IdentitySpecifierItemProvider
+	extends SQLObjectItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IdentitySpecifierItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addGenerationTypePropertyDescriptor(object);
+			addStartValuePropertyDescriptor(object);
+			addIncrementPropertyDescriptor(object);
+			addMinimumPropertyDescriptor(object);
+			addMaximumPropertyDescriptor(object);
+			addCycleOptionPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Generation Type feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addGenerationTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_IdentitySpecifier_generationType_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_IdentitySpecifier_generationType_feature", "_UI_IdentitySpecifier_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLSchemaPackage.Literals.IDENTITY_SPECIFIER__GENERATION_TYPE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Start Value feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addStartValuePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_IdentitySpecifier_startValue_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_IdentitySpecifier_startValue_feature", "_UI_IdentitySpecifier_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLSchemaPackage.Literals.IDENTITY_SPECIFIER__START_VALUE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Increment feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIncrementPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_IdentitySpecifier_increment_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_IdentitySpecifier_increment_feature", "_UI_IdentitySpecifier_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLSchemaPackage.Literals.IDENTITY_SPECIFIER__INCREMENT,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Minimum feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addMinimumPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_IdentitySpecifier_minimum_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_IdentitySpecifier_minimum_feature", "_UI_IdentitySpecifier_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLSchemaPackage.Literals.IDENTITY_SPECIFIER__MINIMUM,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Maximum feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addMaximumPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_IdentitySpecifier_maximum_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_IdentitySpecifier_maximum_feature", "_UI_IdentitySpecifier_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLSchemaPackage.Literals.IDENTITY_SPECIFIER__MAXIMUM,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Cycle Option feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCycleOptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_IdentitySpecifier_cycleOption_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_IdentitySpecifier_cycleOption_feature", "_UI_IdentitySpecifier_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLSchemaPackage.Literals.IDENTITY_SPECIFIER__CYCLE_OPTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns IdentitySpecifier.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/IdentitySpecifier")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((IdentitySpecifier)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_IdentitySpecifier_type") : //$NON-NLS-1$
+			getString("_UI_IdentitySpecifier_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(IdentitySpecifier.class)) {
+			case SQLSchemaPackage.IDENTITY_SPECIFIER__GENERATION_TYPE:
+			case SQLSchemaPackage.IDENTITY_SPECIFIER__START_VALUE:
+			case SQLSchemaPackage.IDENTITY_SPECIFIER__INCREMENT:
+			case SQLSchemaPackage.IDENTITY_SPECIFIER__MINIMUM:
+			case SQLSchemaPackage.IDENTITY_SPECIFIER__MAXIMUM:
+			case SQLSchemaPackage.IDENTITY_SPECIFIER__CYCLE_OPTION:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/schema/provider/SQLObjectItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/schema/provider/SQLObjectItemProvider.java
new file mode 100644
index 0000000..8ee4534
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/schema/provider/SQLObjectItemProvider.java
@@ -0,0 +1,261 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SQLObjectItemProvider.java,v 1.3 2007/05/31 00:29:18 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.schema.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaFactory;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.provider.ENamedElementItemProvider;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.schema.SQLObject} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SQLObjectItemProvider
+	extends ENamedElementItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLObjectItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addDescriptionPropertyDescriptor(object);
+			addLabelPropertyDescriptor(object);
+			addCommentsPropertyDescriptor(object);
+			addPrivilegesPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Description feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_SQLObject_description_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_SQLObject_description_feature", "_UI_SQLObject_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLSchemaPackage.Literals.SQL_OBJECT__DESCRIPTION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Label feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addLabelPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_SQLObject_label_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_SQLObject_label_feature", "_UI_SQLObject_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLSchemaPackage.Literals.SQL_OBJECT__LABEL,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Comments feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCommentsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_SQLObject_comments_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_SQLObject_comments_feature", "_UI_SQLObject_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLSchemaPackage.Literals.SQL_OBJECT__COMMENTS,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Privileges feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addPrivilegesPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_SQLObject_privileges_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_SQLObject_privileges_feature", "_UI_SQLObject_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLSchemaPackage.Literals.SQL_OBJECT__PRIVILEGES,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Collection getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(SQLSchemaPackage.Literals.SQL_OBJECT__DEPENDENCIES);
+			childrenFeatures.add(SQLSchemaPackage.Literals.SQL_OBJECT__EXTENSIONS);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns SQLObject.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/SQLObject")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((SQLObject)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_SQLObject_type") : //$NON-NLS-1$
+			getString("_UI_SQLObject_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(SQLObject.class)) {
+			case SQLSchemaPackage.SQL_OBJECT__DESCRIPTION:
+			case SQLSchemaPackage.SQL_OBJECT__LABEL:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES:
+			case SQLSchemaPackage.SQL_OBJECT__EXTENSIONS:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLSchemaPackage.Literals.SQL_OBJECT__DEPENDENCIES,
+				 SQLSchemaFactory.eINSTANCE.createDependency()));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ResourceLocator getResourceLocator() {
+		return SqlmodelEditPlugin.INSTANCE;
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/schema/provider/SQLSchemaItemProviderAdapterFactory.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/schema/provider/SQLSchemaItemProviderAdapterFactory.java
new file mode 100644
index 0000000..537dba2
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/schema/provider/SQLSchemaItemProviderAdapterFactory.java
@@ -0,0 +1,340 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SQLSchemaItemProviderAdapterFactory.java,v 1.4 2007/05/31 00:29:18 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.schema.provider;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.schema.util.SQLSchemaAdapterFactory;
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.edit.provider.ChangeNotifier;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.IChangeNotifier;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.INotifyChangedListener;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the factory that is used to provide the interfaces needed to support Viewers.
+ * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
+ * The adapters also support Eclipse property sheets.
+ * Note that most of the adapters are shared among multiple instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SQLSchemaItemProviderAdapterFactory extends SQLSchemaAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier {
+	/**
+	 * This keeps track of the root adapter factory that delegates to this adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ComposedAdapterFactory parentAdapterFactory;
+
+	/**
+	 * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IChangeNotifier changeNotifier = new ChangeNotifier();
+
+	/**
+	 * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection supportedTypes = new ArrayList();
+
+	/**
+	 * This constructs an instance.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLSchemaItemProviderAdapterFactory() {
+		supportedTypes.add(IEditingDomainItemProvider.class);
+		supportedTypes.add(IStructuredItemContentProvider.class);
+		supportedTypes.add(ITreeItemContentProvider.class);
+		supportedTypes.add(IItemLabelProvider.class);
+		supportedTypes.add(IItemPropertySource.class);
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.schema.IdentitySpecifier} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IdentitySpecifierItemProvider identitySpecifierItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.schema.IdentitySpecifier}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createIdentitySpecifierAdapter() {
+		if (identitySpecifierItemProvider == null) {
+			identitySpecifierItemProvider = new IdentitySpecifierItemProvider(this);
+		}
+
+		return identitySpecifierItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.schema.Dependency} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DependencyItemProvider dependencyItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.schema.Dependency}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createDependencyAdapter() {
+		if (dependencyItemProvider == null) {
+			dependencyItemProvider = new DependencyItemProvider(this);
+		}
+
+		return dependencyItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.schema.Schema} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SchemaItemProvider schemaItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.schema.Schema}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createSchemaAdapter() {
+		if (schemaItemProvider == null) {
+			schemaItemProvider = new SchemaItemProvider(this);
+		}
+
+		return schemaItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.schema.Sequence} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SequenceItemProvider sequenceItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.schema.Sequence}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createSequenceAdapter() {
+		if (sequenceItemProvider == null) {
+			sequenceItemProvider = new SequenceItemProvider(this);
+		}
+
+		return sequenceItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.schema.Database} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DatabaseItemProvider databaseItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.schema.Database}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createDatabaseAdapter() {
+		if (databaseItemProvider == null) {
+			databaseItemProvider = new DatabaseItemProvider(this);
+		}
+
+		return databaseItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.schema.Event} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EventItemProvider eventItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.schema.Event}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createEventAdapter() {
+		if (eventItemProvider == null) {
+			eventItemProvider = new EventItemProvider(this);
+		}
+
+		return eventItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.schema.Comment} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected CommentItemProvider commentItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.schema.Comment}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createCommentAdapter() {
+		if (commentItemProvider == null) {
+			commentItemProvider = new CommentItemProvider(this);
+		}
+
+		return commentItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.schema.Catalog} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected CatalogItemProvider catalogItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.schema.Catalog}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createCatalogAdapter() {
+		if (catalogItemProvider == null) {
+			catalogItemProvider = new CatalogItemProvider(this);
+		}
+
+		return catalogItemProvider;
+	}
+
+	/**
+	 * This returns the root adapter factory that contains this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ComposeableAdapterFactory getRootAdapterFactory() {
+		return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
+	}
+
+	/**
+	 * This sets the composed adapter factory that contains this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
+		this.parentAdapterFactory = parentAdapterFactory;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isFactoryForType(Object type) {
+		return supportedTypes.contains(type) || super.isFactoryForType(type);
+	}
+
+	/**
+	 * This implementation substitutes the factory itself as the key for the adapter.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter adapt(Notifier notifier, Object type) {
+		return super.adapt(notifier, this);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object adapt(Object object, Object type) {
+		if (isFactoryForType(type)) {
+			Object adapter = super.adapt(object, type);
+			if (!(type instanceof Class) || (((Class)type).isInstance(adapter))) {
+				return adapter;
+			}
+		}
+
+		return null;
+	}
+
+	/**
+	 * This adds a listener.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void addListener(INotifyChangedListener notifyChangedListener) {
+		changeNotifier.addListener(notifyChangedListener);
+	}
+
+	/**
+	 * This removes a listener.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void removeListener(INotifyChangedListener notifyChangedListener) {
+		changeNotifier.removeListener(notifyChangedListener);
+	}
+
+	/**
+	 * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void fireNotifyChanged(Notification notification) {
+		changeNotifier.fireNotifyChanged(notification);
+
+		if (parentAdapterFactory != null) {
+			parentAdapterFactory.fireNotifyChanged(notification);
+		}
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/schema/provider/SchemaItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/schema/provider/SchemaItemProvider.java
new file mode 100644
index 0000000..f8968cb
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/schema/provider/SchemaItemProvider.java
@@ -0,0 +1,363 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SchemaItemProvider.java,v 1.3 2007/05/31 00:29:18 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.schema.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.schema.Schema} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SchemaItemProvider
+	extends SQLObjectItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SchemaItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTriggersPropertyDescriptor(object);
+			addIndicesPropertyDescriptor(object);
+			addTablesPropertyDescriptor(object);
+			addSequencesPropertyDescriptor(object);
+			addDatabasePropertyDescriptor(object);
+			addCatalogPropertyDescriptor(object);
+			addAssertionsPropertyDescriptor(object);
+			addUserDefinedTypesPropertyDescriptor(object);
+			addCharSetsPropertyDescriptor(object);
+			addRoutinesPropertyDescriptor(object);
+			addOwnerPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Triggers feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTriggersPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Schema_triggers_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Schema_triggers_feature", "_UI_Schema_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLSchemaPackage.Literals.SCHEMA__TRIGGERS,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Indices feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIndicesPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Schema_indices_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Schema_indices_feature", "_UI_Schema_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLSchemaPackage.Literals.SCHEMA__INDICES,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Tables feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTablesPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Schema_tables_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Schema_tables_feature", "_UI_Schema_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLSchemaPackage.Literals.SCHEMA__TABLES,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Sequences feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSequencesPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Schema_sequences_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Schema_sequences_feature", "_UI_Schema_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLSchemaPackage.Literals.SCHEMA__SEQUENCES,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Database feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatabasePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Schema_database_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Schema_database_feature", "_UI_Schema_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLSchemaPackage.Literals.SCHEMA__DATABASE,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Catalog feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCatalogPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Schema_Catalog_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Schema_Catalog_feature", "_UI_Schema_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLSchemaPackage.Literals.SCHEMA__CATALOG,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Assertions feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addAssertionsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Schema_assertions_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Schema_assertions_feature", "_UI_Schema_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLSchemaPackage.Literals.SCHEMA__ASSERTIONS,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the User Defined Types feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addUserDefinedTypesPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Schema_userDefinedTypes_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Schema_userDefinedTypes_feature", "_UI_Schema_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLSchemaPackage.Literals.SCHEMA__USER_DEFINED_TYPES,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Char Sets feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCharSetsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Schema_charSets_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Schema_charSets_feature", "_UI_Schema_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLSchemaPackage.Literals.SCHEMA__CHAR_SETS,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Routines feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addRoutinesPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Schema_routines_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Schema_routines_feature", "_UI_Schema_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLSchemaPackage.Literals.SCHEMA__ROUTINES,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Owner feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addOwnerPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Schema_owner_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Schema_owner_feature", "_UI_Schema_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLSchemaPackage.Literals.SCHEMA__OWNER,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns Schema.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/Schema")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((Schema)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_Schema_type") : //$NON-NLS-1$
+			getString("_UI_Schema_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/schema/provider/SequenceItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/schema/provider/SequenceItemProvider.java
new file mode 100644
index 0000000..01d8c4f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/schema/provider/SequenceItemProvider.java
@@ -0,0 +1,175 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SequenceItemProvider.java,v 1.3 2007/05/31 00:29:17 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.schema.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaFactory;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Sequence;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.schema.Sequence} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SequenceItemProvider
+	extends TypedElementItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SequenceItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addSchemaPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Schema feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSchemaPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Sequence_schema_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Sequence_schema_feature", "_UI_Sequence_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLSchemaPackage.Literals.SEQUENCE__SCHEMA,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Collection getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(SQLSchemaPackage.Literals.SEQUENCE__IDENTITY);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns Sequence.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/Sequence")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((Sequence)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_Sequence_type") : //$NON-NLS-1$
+			getString("_UI_Sequence_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(Sequence.class)) {
+			case SQLSchemaPackage.SEQUENCE__IDENTITY:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLSchemaPackage.Literals.SEQUENCE__IDENTITY,
+				 SQLSchemaFactory.eINSTANCE.createIdentitySpecifier()));
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/schema/provider/SqlmodelEditPlugin.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/schema/provider/SqlmodelEditPlugin.java
new file mode 100644
index 0000000..e276f57
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/schema/provider/SqlmodelEditPlugin.java
@@ -0,0 +1,93 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SqlmodelEditPlugin.java,v 1.2 2005/06/15 18:16:14 ledunnel Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.schema.provider;
+
+import org.eclipse.emf.common.EMFPlugin;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.provider.EcoreEditPlugin;
+
+/**
+ * This is the central singleton for the Sqlmodel edit plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public final class SqlmodelEditPlugin extends EMFPlugin {
+	/**
+	 * Keep track of the singleton.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final SqlmodelEditPlugin INSTANCE = new SqlmodelEditPlugin();
+
+	/**
+	 * Keep track of the singleton.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static Implementation plugin;
+
+	/**
+	 * Create the instance.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SqlmodelEditPlugin() {
+		super
+		  (new ResourceLocator [] {
+		     EcoreEditPlugin.INSTANCE,
+		   });
+	}
+
+	/**
+	 * Returns the singleton instance of the Eclipse plugin.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the singleton instance.
+	 * @generated
+	 */
+	public ResourceLocator getPluginResourceLocator() {
+		return plugin;
+	}
+
+	/**
+	 * Returns the singleton instance of the Eclipse plugin.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the singleton instance.
+	 * @generated
+	 */
+	public static Implementation getPlugin() {
+		return plugin;
+	}
+
+	/**
+	 * The actual implementation of the Eclipse <b>Plugin</b>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static class Implementation extends EclipsePlugin {
+		/**
+		 * Creates an instance.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public Implementation() {
+			super();
+
+			// Remember the static instance.
+			//
+			plugin = this;
+		}
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/schema/provider/TypedElementItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/schema/provider/TypedElementItemProvider.java
new file mode 100644
index 0000000..12fe3bd
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/schema/provider/TypedElementItemProvider.java
@@ -0,0 +1,225 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: TypedElementItemProvider.java,v 1.3 2007/05/31 00:29:18 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.schema.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesFactory;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.TypedElement;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.schema.TypedElement} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class TypedElementItemProvider
+	extends SQLObjectItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TypedElementItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addReferencedTypePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Referenced Type feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addReferencedTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_TypedElement_referencedType_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_TypedElement_referencedType_feature", "_UI_TypedElement_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLSchemaPackage.Literals.TYPED_ELEMENT__REFERENCED_TYPE,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Collection getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(SQLSchemaPackage.Literals.TYPED_ELEMENT__CONTAINED_TYPE);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns TypedElement.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/TypedElement")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((TypedElement)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_TypedElement_type") : //$NON-NLS-1$
+			getString("_UI_TypedElement_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(TypedElement.class)) {
+			case SQLSchemaPackage.TYPED_ELEMENT__CONTAINED_TYPE:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLSchemaPackage.Literals.TYPED_ELEMENT__CONTAINED_TYPE,
+				 SQLDataTypesFactory.eINSTANCE.createCharacterStringDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLSchemaPackage.Literals.TYPED_ELEMENT__CONTAINED_TYPE,
+				 SQLDataTypesFactory.eINSTANCE.createBooleanDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLSchemaPackage.Literals.TYPED_ELEMENT__CONTAINED_TYPE,
+				 SQLDataTypesFactory.eINSTANCE.createIntervalDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLSchemaPackage.Literals.TYPED_ELEMENT__CONTAINED_TYPE,
+				 SQLDataTypesFactory.eINSTANCE.createBinaryStringDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLSchemaPackage.Literals.TYPED_ELEMENT__CONTAINED_TYPE,
+				 SQLDataTypesFactory.eINSTANCE.createTimeDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLSchemaPackage.Literals.TYPED_ELEMENT__CONTAINED_TYPE,
+				 SQLDataTypesFactory.eINSTANCE.createFixedPrecisionDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLSchemaPackage.Literals.TYPED_ELEMENT__CONTAINED_TYPE,
+				 SQLDataTypesFactory.eINSTANCE.createDataLinkDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLSchemaPackage.Literals.TYPED_ELEMENT__CONTAINED_TYPE,
+				 SQLDataTypesFactory.eINSTANCE.createDateDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLSchemaPackage.Literals.TYPED_ELEMENT__CONTAINED_TYPE,
+				 SQLDataTypesFactory.eINSTANCE.createApproximateNumericDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLSchemaPackage.Literals.TYPED_ELEMENT__CONTAINED_TYPE,
+				 SQLDataTypesFactory.eINSTANCE.createIntegerDataType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLSchemaPackage.Literals.TYPED_ELEMENT__CONTAINED_TYPE,
+				 SQLDataTypesFactory.eINSTANCE.createXMLDataType()));
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/statements/provider/SQLStatementDefaultItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/statements/provider/SQLStatementDefaultItemProvider.java
new file mode 100644
index 0000000..0d9d561
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/statements/provider/SQLStatementDefaultItemProvider.java
@@ -0,0 +1,152 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SQLStatementDefaultItemProvider.java,v 1.3 2007/05/31 00:29:18 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.statements.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.schema.provider.SQLObjectItemProvider;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.datatools.modelbase.sql.statements.SQLStatementDefault;
+import org.eclipse.datatools.modelbase.sql.statements.SQLStatementsPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.statements.SQLStatementDefault} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SQLStatementDefaultItemProvider
+	extends SQLObjectItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLStatementDefaultItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addSQLPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the SQL feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSQLPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_SQLStatementDefault_SQL_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_SQLStatementDefault_SQL_feature", "_UI_SQLStatementDefault_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLStatementsPackage.Literals.SQL_STATEMENT_DEFAULT__SQL,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns SQLStatementDefault.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/SQLStatementDefault")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((SQLStatementDefault)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_SQLStatementDefault_type") : //$NON-NLS-1$
+			getString("_UI_SQLStatementDefault_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(SQLStatementDefault.class)) {
+			case SQLStatementsPackage.SQL_STATEMENT_DEFAULT__SQL:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ResourceLocator getResourceLocator() {
+		return SqlmodelEditPlugin.INSTANCE;
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/statements/provider/SQLStatementsItemProviderAdapterFactory.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/statements/provider/SQLStatementsItemProviderAdapterFactory.java
new file mode 100644
index 0000000..b524bab
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/statements/provider/SQLStatementsItemProviderAdapterFactory.java
@@ -0,0 +1,186 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SQLStatementsItemProviderAdapterFactory.java,v 1.2 2005/12/22 22:37:41 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.statements.provider;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.statements.util.SQLStatementsAdapterFactory;
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.edit.provider.ChangeNotifier;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.IChangeNotifier;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.INotifyChangedListener;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the factory that is used to provide the interfaces needed to support Viewers.
+ * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
+ * The adapters also support Eclipse property sheets.
+ * Note that most of the adapters are shared among multiple instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SQLStatementsItemProviderAdapterFactory extends SQLStatementsAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier {
+	/**
+	 * This keeps track of the root adapter factory that delegates to this adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ComposedAdapterFactory parentAdapterFactory;
+
+	/**
+	 * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IChangeNotifier changeNotifier = new ChangeNotifier();
+
+	/**
+	 * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection supportedTypes = new ArrayList();
+
+	/**
+	 * This constructs an instance.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLStatementsItemProviderAdapterFactory() {
+		supportedTypes.add(IEditingDomainItemProvider.class);
+		supportedTypes.add(IStructuredItemContentProvider.class);
+		supportedTypes.add(ITreeItemContentProvider.class);
+		supportedTypes.add(IItemLabelProvider.class);
+		supportedTypes.add(IItemPropertySource.class);
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.statements.SQLStatementDefault} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SQLStatementDefaultItemProvider sqlStatementDefaultItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.statements.SQLStatementDefault}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createSQLStatementDefaultAdapter() {
+		if (sqlStatementDefaultItemProvider == null) {
+			sqlStatementDefaultItemProvider = new SQLStatementDefaultItemProvider(this);
+		}
+
+		return sqlStatementDefaultItemProvider;
+	}
+
+	/**
+	 * This returns the root adapter factory that contains this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ComposeableAdapterFactory getRootAdapterFactory() {
+		return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
+	}
+
+	/**
+	 * This sets the composed adapter factory that contains this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
+		this.parentAdapterFactory = parentAdapterFactory;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isFactoryForType(Object type) {
+		return supportedTypes.contains(type) || super.isFactoryForType(type);
+	}
+
+	/**
+	 * This implementation substitutes the factory itself as the key for the adapter.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter adapt(Notifier notifier, Object type) {
+		return super.adapt(notifier, this);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object adapt(Object object, Object type) {
+		if (isFactoryForType(type)) {
+			Object adapter = super.adapt(object, type);
+			if (!(type instanceof Class) || (((Class)type).isInstance(adapter))) {
+				return adapter;
+			}
+		}
+
+		return null;
+	}
+
+	/**
+	 * This adds a listener.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void addListener(INotifyChangedListener notifyChangedListener) {
+		changeNotifier.addListener(notifyChangedListener);
+	}
+
+	/**
+	 * This removes a listener.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void removeListener(INotifyChangedListener notifyChangedListener) {
+		changeNotifier.removeListener(notifyChangedListener);
+	}
+
+	/**
+	 * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void fireNotifyChanged(Notification notification) {
+		changeNotifier.fireNotifyChanged(notification);
+
+		if (parentAdapterFactory != null) {
+			parentAdapterFactory.fireNotifyChanged(notification);
+		}
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/tables/provider/BaseTableItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/tables/provider/BaseTableItemProvider.java
new file mode 100644
index 0000000..f124675
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/tables/provider/BaseTableItemProvider.java
@@ -0,0 +1,190 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: BaseTableItemProvider.java,v 1.4 2007/05/31 00:29:18 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.tables.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsFactory;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.datatools.modelbase.sql.tables.BaseTable;
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.tables.BaseTable} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class BaseTableItemProvider
+	extends TableItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BaseTableItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addReferencingForeignKeysPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Referencing Foreign Keys feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addReferencingForeignKeysPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_BaseTable_referencingForeignKeys_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_BaseTable_referencingForeignKeys_feature", "_UI_BaseTable_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLTablesPackage.Literals.BASE_TABLE__REFERENCING_FOREIGN_KEYS,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Collection getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(SQLTablesPackage.Literals.BASE_TABLE__CONSTRAINTS);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns BaseTable.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/BaseTable")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((BaseTable)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_BaseTable_type") : //$NON-NLS-1$
+			getString("_UI_BaseTable_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(BaseTable.class)) {
+			case SQLTablesPackage.BASE_TABLE__CONSTRAINTS:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLTablesPackage.Literals.BASE_TABLE__CONSTRAINTS,
+				 SQLConstraintsFactory.eINSTANCE.createCheckConstraint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLTablesPackage.Literals.BASE_TABLE__CONSTRAINTS,
+				 SQLConstraintsFactory.eINSTANCE.createForeignKey()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLTablesPackage.Literals.BASE_TABLE__CONSTRAINTS,
+				 SQLConstraintsFactory.eINSTANCE.createUniqueConstraint()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLTablesPackage.Literals.BASE_TABLE__CONSTRAINTS,
+				 SQLConstraintsFactory.eINSTANCE.createPrimaryKey()));
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/tables/provider/ColumnItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/tables/provider/ColumnItemProvider.java
new file mode 100644
index 0000000..7ee9c7e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/tables/provider/ColumnItemProvider.java
@@ -0,0 +1,294 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ColumnItemProvider.java,v 1.3 2007/05/31 00:29:18 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.tables.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsFactory;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaFactory;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.datatools.modelbase.sql.schema.provider.TypedElementItemProvider;
+import org.eclipse.datatools.modelbase.sql.tables.Column;
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.tables.Column} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ColumnItemProvider
+	extends TypedElementItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ColumnItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addImplementationDependentPropertyDescriptor(object);
+			addNullablePropertyDescriptor(object);
+			addDefaultValuePropertyDescriptor(object);
+			addScopeCheckPropertyDescriptor(object);
+			addScopeCheckedPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Implementation Dependent feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addImplementationDependentPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Column_implementationDependent_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Column_implementationDependent_feature", "_UI_Column_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLTablesPackage.Literals.COLUMN__IMPLEMENTATION_DEPENDENT,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Nullable feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNullablePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Column_nullable_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Column_nullable_feature", "_UI_Column_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLTablesPackage.Literals.COLUMN__NULLABLE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Default Value feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDefaultValuePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Column_defaultValue_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Column_defaultValue_feature", "_UI_Column_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLTablesPackage.Literals.COLUMN__DEFAULT_VALUE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Scope Check feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addScopeCheckPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Column_scopeCheck_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Column_scopeCheck_feature", "_UI_Column_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLTablesPackage.Literals.COLUMN__SCOPE_CHECK,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Scope Checked feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addScopeCheckedPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Column_scopeChecked_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Column_scopeChecked_feature", "_UI_Column_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLTablesPackage.Literals.COLUMN__SCOPE_CHECKED,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Collection getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(SQLTablesPackage.Literals.COLUMN__IDENTITY_SPECIFIER);
+			childrenFeatures.add(SQLTablesPackage.Literals.COLUMN__GENERATE_EXPRESSION);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns Column.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/Column")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((Column)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_Column_type") : //$NON-NLS-1$
+			getString("_UI_Column_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(Column.class)) {
+			case SQLTablesPackage.COLUMN__IMPLEMENTATION_DEPENDENT:
+			case SQLTablesPackage.COLUMN__NULLABLE:
+			case SQLTablesPackage.COLUMN__DEFAULT_VALUE:
+			case SQLTablesPackage.COLUMN__SCOPE_CHECK:
+			case SQLTablesPackage.COLUMN__SCOPE_CHECKED:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case SQLTablesPackage.COLUMN__IDENTITY_SPECIFIER:
+			case SQLTablesPackage.COLUMN__GENERATE_EXPRESSION:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLTablesPackage.Literals.COLUMN__IDENTITY_SPECIFIER,
+				 SQLSchemaFactory.eINSTANCE.createIdentitySpecifier()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLTablesPackage.Literals.COLUMN__GENERATE_EXPRESSION,
+				 SQLExpressionsFactory.eINSTANCE.createValueExpressionDefault()));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ResourceLocator getResourceLocator() {
+		return SqlmodelEditPlugin.INSTANCE;
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/tables/provider/DerivedTableItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/tables/provider/DerivedTableItemProvider.java
new file mode 100644
index 0000000..18797cc
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/tables/provider/DerivedTableItemProvider.java
@@ -0,0 +1,151 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DerivedTableItemProvider.java,v 1.3 2007/05/31 00:29:18 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.tables.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsFactory;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.datatools.modelbase.sql.tables.DerivedTable;
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.tables.DerivedTable} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class DerivedTableItemProvider
+	extends TableItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DerivedTableItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Collection getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(SQLTablesPackage.Literals.DERIVED_TABLE__QUERY_EXPRESSION);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns DerivedTable.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/DerivedTable")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((DerivedTable)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_DerivedTable_type") : //$NON-NLS-1$
+			getString("_UI_DerivedTable_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(DerivedTable.class)) {
+			case SQLTablesPackage.DERIVED_TABLE__QUERY_EXPRESSION:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLTablesPackage.Literals.DERIVED_TABLE__QUERY_EXPRESSION,
+				 SQLExpressionsFactory.eINSTANCE.createQueryExpressionDefault()));
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/tables/provider/PersistentTableItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/tables/provider/PersistentTableItemProvider.java
new file mode 100644
index 0000000..d542273
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/tables/provider/PersistentTableItemProvider.java
@@ -0,0 +1,108 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PersistentTableItemProvider.java,v 1.3 2007/05/31 00:29:18 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.tables.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.datatools.modelbase.sql.tables.PersistentTable;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.tables.PersistentTable} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PersistentTableItemProvider
+	extends BaseTableItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PersistentTableItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns PersistentTable.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/PersistentTable")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((PersistentTable)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_PersistentTable_type") : //$NON-NLS-1$
+			getString("_UI_PersistentTable_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/tables/provider/SQLTablesItemProviderAdapterFactory.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/tables/provider/SQLTablesItemProviderAdapterFactory.java
new file mode 100644
index 0000000..a63eff8
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/tables/provider/SQLTablesItemProviderAdapterFactory.java
@@ -0,0 +1,274 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SQLTablesItemProviderAdapterFactory.java,v 1.2 2005/12/22 22:37:40 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.tables.provider;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.tables.util.SQLTablesAdapterFactory;
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.edit.provider.ChangeNotifier;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.IChangeNotifier;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.INotifyChangedListener;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the factory that is used to provide the interfaces needed to support Viewers.
+ * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
+ * The adapters also support Eclipse property sheets.
+ * Note that most of the adapters are shared among multiple instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SQLTablesItemProviderAdapterFactory extends SQLTablesAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier {
+	/**
+	 * This keeps track of the root adapter factory that delegates to this adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ComposedAdapterFactory parentAdapterFactory;
+
+	/**
+	 * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IChangeNotifier changeNotifier = new ChangeNotifier();
+
+	/**
+	 * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection supportedTypes = new ArrayList();
+
+	/**
+	 * This constructs an instance.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLTablesItemProviderAdapterFactory() {
+		supportedTypes.add(IEditingDomainItemProvider.class);
+		supportedTypes.add(IStructuredItemContentProvider.class);
+		supportedTypes.add(ITreeItemContentProvider.class);
+		supportedTypes.add(IItemLabelProvider.class);
+		supportedTypes.add(IItemPropertySource.class);
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.tables.ViewTable} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ViewTableItemProvider viewTableItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.tables.ViewTable}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createViewTableAdapter() {
+		if (viewTableItemProvider == null) {
+			viewTableItemProvider = new ViewTableItemProvider(this);
+		}
+
+		return viewTableItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.tables.TemporaryTable} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TemporaryTableItemProvider temporaryTableItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.tables.TemporaryTable}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createTemporaryTableAdapter() {
+		if (temporaryTableItemProvider == null) {
+			temporaryTableItemProvider = new TemporaryTableItemProvider(this);
+		}
+
+		return temporaryTableItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.tables.PersistentTable} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected PersistentTableItemProvider persistentTableItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.tables.PersistentTable}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createPersistentTableAdapter() {
+		if (persistentTableItemProvider == null) {
+			persistentTableItemProvider = new PersistentTableItemProvider(this);
+		}
+
+		return persistentTableItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.tables.Column} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ColumnItemProvider columnItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.tables.Column}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createColumnAdapter() {
+		if (columnItemProvider == null) {
+			columnItemProvider = new ColumnItemProvider(this);
+		}
+
+		return columnItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.tables.Trigger} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TriggerItemProvider triggerItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.tables.Trigger}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter createTriggerAdapter() {
+		if (triggerItemProvider == null) {
+			triggerItemProvider = new TriggerItemProvider(this);
+		}
+
+		return triggerItemProvider;
+	}
+
+	/**
+	 * This returns the root adapter factory that contains this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ComposeableAdapterFactory getRootAdapterFactory() {
+		return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
+	}
+
+	/**
+	 * This sets the composed adapter factory that contains this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
+		this.parentAdapterFactory = parentAdapterFactory;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isFactoryForType(Object type) {
+		return supportedTypes.contains(type) || super.isFactoryForType(type);
+	}
+
+	/**
+	 * This implementation substitutes the factory itself as the key for the adapter.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Adapter adapt(Notifier notifier, Object type) {
+		return super.adapt(notifier, this);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object adapt(Object object, Object type) {
+		if (isFactoryForType(type)) {
+			Object adapter = super.adapt(object, type);
+			if (!(type instanceof Class) || (((Class)type).isInstance(adapter))) {
+				return adapter;
+			}
+		}
+
+		return null;
+	}
+
+	/**
+	 * This adds a listener.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void addListener(INotifyChangedListener notifyChangedListener) {
+		changeNotifier.addListener(notifyChangedListener);
+	}
+
+	/**
+	 * This removes a listener.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void removeListener(INotifyChangedListener notifyChangedListener) {
+		changeNotifier.removeListener(notifyChangedListener);
+	}
+
+	/**
+	 * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void fireNotifyChanged(Notification notification) {
+		changeNotifier.fireNotifyChanged(notification);
+
+		if (parentAdapterFactory != null) {
+			parentAdapterFactory.fireNotifyChanged(notification);
+		}
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/tables/provider/TableItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/tables/provider/TableItemProvider.java
new file mode 100644
index 0000000..b0f7a88
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/tables/provider/TableItemProvider.java
@@ -0,0 +1,376 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: TableItemProvider.java,v 1.3 2007/05/31 00:29:18 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.tables.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.schema.provider.SQLObjectItemProvider;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesFactory;
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.tables.Table} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class TableItemProvider
+	extends SQLObjectItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TableItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addSupertablePropertyDescriptor(object);
+			addSubtablesPropertyDescriptor(object);
+			addSchemaPropertyDescriptor(object);
+			addUdtPropertyDescriptor(object);
+			addTriggersPropertyDescriptor(object);
+			addIndexPropertyDescriptor(object);
+			addSelfRefColumnGenerationPropertyDescriptor(object);
+			addInsertablePropertyDescriptor(object);
+			addUpdatablePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Supertable feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSupertablePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Table_supertable_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Table_supertable_feature", "_UI_Table_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLTablesPackage.Literals.TABLE__SUPERTABLE,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Subtables feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSubtablesPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Table_subtables_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Table_subtables_feature", "_UI_Table_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLTablesPackage.Literals.TABLE__SUBTABLES,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Schema feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSchemaPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Table_schema_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Table_schema_feature", "_UI_Table_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLTablesPackage.Literals.TABLE__SCHEMA,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Udt feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addUdtPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Table_udt_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Table_udt_feature", "_UI_Table_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLTablesPackage.Literals.TABLE__UDT,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Triggers feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTriggersPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Table_triggers_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Table_triggers_feature", "_UI_Table_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLTablesPackage.Literals.TABLE__TRIGGERS,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Index feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIndexPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Table_index_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Table_index_feature", "_UI_Table_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLTablesPackage.Literals.TABLE__INDEX,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Self Ref Column Generation feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSelfRefColumnGenerationPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Table_selfRefColumnGeneration_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Table_selfRefColumnGeneration_feature", "_UI_Table_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLTablesPackage.Literals.TABLE__SELF_REF_COLUMN_GENERATION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Insertable feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addInsertablePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Table_insertable_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Table_insertable_feature", "_UI_Table_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLTablesPackage.Literals.TABLE__INSERTABLE,
+				 false,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Updatable feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addUpdatablePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Table_updatable_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Table_updatable_feature", "_UI_Table_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLTablesPackage.Literals.TABLE__UPDATABLE,
+				 false,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Collection getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(SQLTablesPackage.Literals.TABLE__COLUMNS);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns Table.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/Table")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((Table)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_Table_type") : //$NON-NLS-1$
+			getString("_UI_Table_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(Table.class)) {
+			case SQLTablesPackage.TABLE__SELF_REF_COLUMN_GENERATION:
+			case SQLTablesPackage.TABLE__INSERTABLE:
+			case SQLTablesPackage.TABLE__UPDATABLE:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case SQLTablesPackage.TABLE__COLUMNS:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLTablesPackage.Literals.TABLE__COLUMNS,
+				 SQLTablesFactory.eINSTANCE.createColumn()));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ResourceLocator getResourceLocator() {
+		return SqlmodelEditPlugin.INSTANCE;
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/tables/provider/TemporaryTableItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/tables/provider/TemporaryTableItemProvider.java
new file mode 100644
index 0000000..e982681
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/tables/provider/TemporaryTableItemProvider.java
@@ -0,0 +1,165 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: TemporaryTableItemProvider.java,v 1.3 2007/05/31 00:29:18 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.tables.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+import org.eclipse.datatools.modelbase.sql.tables.TemporaryTable;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.tables.TemporaryTable} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class TemporaryTableItemProvider
+	extends BaseTableItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TemporaryTableItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addLocalPropertyDescriptor(object);
+			addDeleteOnCommitPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Local feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addLocalPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_TemporaryTable_local_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_TemporaryTable_local_feature", "_UI_TemporaryTable_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLTablesPackage.Literals.TEMPORARY_TABLE__LOCAL,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Delete On Commit feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDeleteOnCommitPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_TemporaryTable_deleteOnCommit_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_TemporaryTable_deleteOnCommit_feature", "_UI_TemporaryTable_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLTablesPackage.Literals.TEMPORARY_TABLE__DELETE_ON_COMMIT,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns TemporaryTable.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/TemporaryTable")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((TemporaryTable)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_TemporaryTable_type") : //$NON-NLS-1$
+			getString("_UI_TemporaryTable_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(TemporaryTable.class)) {
+			case SQLTablesPackage.TEMPORARY_TABLE__LOCAL:
+			case SQLTablesPackage.TEMPORARY_TABLE__DELETE_ON_COMMIT:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/tables/provider/TriggerItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/tables/provider/TriggerItemProvider.java
new file mode 100644
index 0000000..b7ffa15
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/tables/provider/TriggerItemProvider.java
@@ -0,0 +1,483 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: TriggerItemProvider.java,v 1.3 2007/05/31 00:29:18 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.tables.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsFactory;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SQLObjectItemProvider;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.datatools.modelbase.sql.statements.SQLStatementsFactory;
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+import org.eclipse.datatools.modelbase.sql.tables.Trigger;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.tables.Trigger} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class TriggerItemProvider
+	extends SQLObjectItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TriggerItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addSchemaPropertyDescriptor(object);
+			addSubjectTablePropertyDescriptor(object);
+			addTriggerColumnPropertyDescriptor(object);
+			addActionGranularityPropertyDescriptor(object);
+			addTimeStampPropertyDescriptor(object);
+			addActionTimePropertyDescriptor(object);
+			addUpdateTypePropertyDescriptor(object);
+			addInsertTypePropertyDescriptor(object);
+			addDeleteTypePropertyDescriptor(object);
+			addOldRowPropertyDescriptor(object);
+			addNewRowPropertyDescriptor(object);
+			addOldTablePropertyDescriptor(object);
+			addNewTablePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Schema feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSchemaPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Trigger_schema_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Trigger_schema_feature", "_UI_Trigger_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLTablesPackage.Literals.TRIGGER__SCHEMA,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Subject Table feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSubjectTablePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Trigger_subjectTable_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Trigger_subjectTable_feature", "_UI_Trigger_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLTablesPackage.Literals.TRIGGER__SUBJECT_TABLE,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Trigger Column feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTriggerColumnPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Trigger_triggerColumn_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Trigger_triggerColumn_feature", "_UI_Trigger_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLTablesPackage.Literals.TRIGGER__TRIGGER_COLUMN,
+				 true,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Action Granularity feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addActionGranularityPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Trigger_actionGranularity_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Trigger_actionGranularity_feature", "_UI_Trigger_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLTablesPackage.Literals.TRIGGER__ACTION_GRANULARITY,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Time Stamp feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTimeStampPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Trigger_timeStamp_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Trigger_timeStamp_feature", "_UI_Trigger_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLTablesPackage.Literals.TRIGGER__TIME_STAMP,
+				 false,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Action Time feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addActionTimePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Trigger_actionTime_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Trigger_actionTime_feature", "_UI_Trigger_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLTablesPackage.Literals.TRIGGER__ACTION_TIME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Update Type feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addUpdateTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Trigger_updateType_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Trigger_updateType_feature", "_UI_Trigger_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLTablesPackage.Literals.TRIGGER__UPDATE_TYPE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Insert Type feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addInsertTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Trigger_insertType_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Trigger_insertType_feature", "_UI_Trigger_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLTablesPackage.Literals.TRIGGER__INSERT_TYPE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Delete Type feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDeleteTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Trigger_deleteType_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Trigger_deleteType_feature", "_UI_Trigger_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLTablesPackage.Literals.TRIGGER__DELETE_TYPE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Old Row feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addOldRowPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Trigger_oldRow_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Trigger_oldRow_feature", "_UI_Trigger_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLTablesPackage.Literals.TRIGGER__OLD_ROW,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the New Row feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNewRowPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Trigger_newRow_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Trigger_newRow_feature", "_UI_Trigger_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLTablesPackage.Literals.TRIGGER__NEW_ROW,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Old Table feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addOldTablePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Trigger_oldTable_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Trigger_oldTable_feature", "_UI_Trigger_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLTablesPackage.Literals.TRIGGER__OLD_TABLE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the New Table feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNewTablePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Trigger_newTable_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_Trigger_newTable_feature", "_UI_Trigger_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLTablesPackage.Literals.TRIGGER__NEW_TABLE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Collection getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(SQLTablesPackage.Literals.TRIGGER__ACTION_STATEMENT);
+			childrenFeatures.add(SQLTablesPackage.Literals.TRIGGER__WHEN);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns Trigger.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/Trigger")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((Trigger)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_Trigger_type") : //$NON-NLS-1$
+			getString("_UI_Trigger_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(Trigger.class)) {
+			case SQLTablesPackage.TRIGGER__ACTION_GRANULARITY:
+			case SQLTablesPackage.TRIGGER__TIME_STAMP:
+			case SQLTablesPackage.TRIGGER__ACTION_TIME:
+			case SQLTablesPackage.TRIGGER__UPDATE_TYPE:
+			case SQLTablesPackage.TRIGGER__INSERT_TYPE:
+			case SQLTablesPackage.TRIGGER__DELETE_TYPE:
+			case SQLTablesPackage.TRIGGER__OLD_ROW:
+			case SQLTablesPackage.TRIGGER__NEW_ROW:
+			case SQLTablesPackage.TRIGGER__OLD_TABLE:
+			case SQLTablesPackage.TRIGGER__NEW_TABLE:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case SQLTablesPackage.TRIGGER__ACTION_STATEMENT:
+			case SQLTablesPackage.TRIGGER__WHEN:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLTablesPackage.Literals.TRIGGER__ACTION_STATEMENT,
+				 SQLStatementsFactory.eINSTANCE.createSQLStatementDefault()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLTablesPackage.Literals.TRIGGER__WHEN,
+				 SQLExpressionsFactory.eINSTANCE.createSearchConditionDefault()));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ResourceLocator getResourceLocator() {
+		return SqlmodelEditPlugin.INSTANCE;
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/tables/provider/ViewTableItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/tables/provider/ViewTableItemProvider.java
new file mode 100644
index 0000000..5bb66a2
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.edit/src/org/eclipse/datatools/modelbase/sql/tables/provider/ViewTableItemProvider.java
@@ -0,0 +1,141 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ViewTableItemProvider.java,v 1.3 2007/05/31 00:29:18 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.tables.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+import org.eclipse.datatools.modelbase.sql.tables.ViewTable;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.tables.ViewTable} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ViewTableItemProvider
+	extends DerivedTableItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ViewTableItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addCheckTypePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Check Type feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addCheckTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_ViewTable_checkType_feature"), //$NON-NLS-1$
+				 getString("_UI_PropertyDescriptor_description", "_UI_ViewTable_checkType_feature", "_UI_ViewTable_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+				 SQLTablesPackage.Literals.VIEW_TABLE__CHECK_TYPE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns ViewTable.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/ViewTable")); //$NON-NLS-1$
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((ViewTable)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_ViewTable_type") : //$NON-NLS-1$
+			getString("_UI_ViewTable_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(ViewTable.class)) {
+			case SQLTablesPackage.VIEW_TABLE__CHECK_TYPE:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/.classpath b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/.classpath
new file mode 100644
index 0000000..45f024e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<classpath>

+	<classpathentry kind="src" path="src"/>

+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>

+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

+	<classpathentry kind="output" path="bin"/>

+</classpath>

diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/.gitignore b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/.gitignore
new file mode 100644
index 0000000..ba077a4
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/.gitignore
@@ -0,0 +1 @@
+bin
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/.project b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/.project
new file mode 100644
index 0000000..34addda
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.datatools.modelbase.sql.query.edit</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+	</natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..6b31d0d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+#Tue Feb 17 15:38:46 PST 2009
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/META-INF/MANIFEST.MF b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..eeb84da
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/META-INF/MANIFEST.MF
@@ -0,0 +1,16 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.datatools.modelbase.sql.query.edit;singleton:=true
+Bundle-Version: 1.2.1.qualifier
+Bundle-Activator: org.eclipse.datatools.modelbase.sql.query.provider.SQLQueryEditPlugin$Implementation
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Export-Package: org.eclipse.datatools.modelbase.sql.query.provider,
+ org.eclipse.datatools.modelbase.sql.schema.provider
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.ecore.edit;visibility:=reexport,
+ org.eclipse.datatools.modelbase.sql.query;visibility:=reexport
+Eclipse-LazyStart: true
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/about.html b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/about.html
new file mode 100644
index 0000000..129db9d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 15, 2009</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/build.properties b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/build.properties
new file mode 100644
index 0000000..284cb25
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/build.properties
@@ -0,0 +1,15 @@
+# <copyright>
+# </copyright>
+#
+# $Id: build.properties,v 1.3 2008/02/01 21:32:03 bpayton Exp $
+
+bin.includes = icons/,\
+               META-INF/,\
+               plugin.xml,\
+               .,\
+               plugin.properties,\
+               about.html
+jars.compile.order = .
+source.. = src/
+output.. = bin/
+src.includes = about.html
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/icons/full/obj16/QueryCombined.gif b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/icons/full/obj16/QueryCombined.gif
new file mode 100644
index 0000000..b3643da
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/icons/full/obj16/QueryCombined.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/icons/full/obj16/QueryCombinedOperatorExcept.gif b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/icons/full/obj16/QueryCombinedOperatorExcept.gif
new file mode 100644
index 0000000..956de01
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/icons/full/obj16/QueryCombinedOperatorExcept.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/icons/full/obj16/QueryCombinedOperatorExceptAll.gif b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/icons/full/obj16/QueryCombinedOperatorExceptAll.gif
new file mode 100644
index 0000000..980b73d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/icons/full/obj16/QueryCombinedOperatorExceptAll.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/icons/full/obj16/QueryCombinedOperatorIntersect.gif b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/icons/full/obj16/QueryCombinedOperatorIntersect.gif
new file mode 100644
index 0000000..b9355af
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/icons/full/obj16/QueryCombinedOperatorIntersect.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/icons/full/obj16/QueryCombinedOperatorIntersectAll.gif b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/icons/full/obj16/QueryCombinedOperatorIntersectAll.gif
new file mode 100644
index 0000000..fcd0c18
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/icons/full/obj16/QueryCombinedOperatorIntersectAll.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/icons/full/obj16/QueryCombinedOperatorUnion.gif b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/icons/full/obj16/QueryCombinedOperatorUnion.gif
new file mode 100644
index 0000000..28430c9
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/icons/full/obj16/QueryCombinedOperatorUnion.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/icons/full/obj16/QueryCombinedOperatorUnionAll.gif b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/icons/full/obj16/QueryCombinedOperatorUnionAll.gif
new file mode 100644
index 0000000..8d9c33a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/icons/full/obj16/QueryCombinedOperatorUnionAll.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/icons/full/obj16/QueryDeleteStatement.gif b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/icons/full/obj16/QueryDeleteStatement.gif
new file mode 100644
index 0000000..dcfdd58
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/icons/full/obj16/QueryDeleteStatement.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/icons/full/obj16/QueryInsertStatement.gif b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/icons/full/obj16/QueryInsertStatement.gif
new file mode 100644
index 0000000..75978cb
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/icons/full/obj16/QueryInsertStatement.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/icons/full/obj16/QuerySelect.gif b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/icons/full/obj16/QuerySelect.gif
new file mode 100644
index 0000000..2460266
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/icons/full/obj16/QuerySelect.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/icons/full/obj16/QuerySelectStatement.gif b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/icons/full/obj16/QuerySelectStatement.gif
new file mode 100644
index 0000000..c9dddb5
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/icons/full/obj16/QuerySelectStatement.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/icons/full/obj16/QueryUpdateStatement.gif b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/icons/full/obj16/QueryUpdateStatement.gif
new file mode 100644
index 0000000..9bbd9f7
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/icons/full/obj16/QueryUpdateStatement.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/icons/full/obj16/QueryValues.gif b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/icons/full/obj16/QueryValues.gif
new file mode 100644
index 0000000..5c85219
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/icons/full/obj16/QueryValues.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/icons/full/obj16/ValuesRow.gif b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/icons/full/obj16/ValuesRow.gif
new file mode 100644
index 0000000..43bad9d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/icons/full/obj16/ValuesRow.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/icons/full/obj16/WithTableSpecification.gif b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/icons/full/obj16/WithTableSpecification.gif
new file mode 100644
index 0000000..11208b8
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/icons/full/obj16/WithTableSpecification.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/plugin.properties b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/plugin.properties
new file mode 100644
index 0000000..7a85cdd
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/plugin.properties
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/plugin.xml b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/plugin.xml
new file mode 100644
index 0000000..e5cf9ef
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/plugin.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+ <copyright>
+ </copyright>
+
+ $Id$
+-->
+
+<plugin>
+    
+  <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
+    <factory 
+       uri = "http:///org/eclipse/datatools/modelbase/sql/query/SQLQueryModel.ecore" 
+       class = "org.eclipse.datatools.modelbase.sql.query.provider.SQLQueryModelItemProviderAdapterFactory" 
+       supportedTypes = 
+         "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
+          org.eclipse.emf.edit.provider.IStructuredItemContentProvider
+          org.eclipse.emf.edit.provider.ITreeItemContentProvider
+          org.eclipse.emf.edit.provider.IItemLabelProvider
+          org.eclipse.emf.edit.provider.IItemPropertySource" />
+  </extension>
+
+</plugin>
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/CallStatementItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/CallStatementItemProvider.java
new file mode 100644
index 0000000..ed6e093
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/CallStatementItemProvider.java
@@ -0,0 +1,137 @@
+/**

+ * <copyright>

+ * </copyright>

+ *

+ * $Id$

+ */

+package org.eclipse.datatools.modelbase.sql.query.provider;

+

+

+import java.util.Collection;

+import java.util.List;

+

+import org.eclipse.datatools.modelbase.sql.query.CallStatement;

+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;

+

+import org.eclipse.emf.common.notify.AdapterFactory;

+import org.eclipse.emf.common.notify.Notification;

+

+import org.eclipse.emf.ecore.EStructuralFeature;

+

+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;

+import org.eclipse.emf.edit.provider.IItemLabelProvider;

+import org.eclipse.emf.edit.provider.IItemPropertySource;

+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;

+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;

+import org.eclipse.emf.edit.provider.ViewerNotification;

+

+/**

+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.CallStatement} object.

+ * <!-- begin-user-doc -->

+ * <!-- end-user-doc -->

+ * @generated

+ */

+public class CallStatementItemProvider

+    extends SQLQueryObjectItemProvider

+    implements

+        IEditingDomainItemProvider,

+        IStructuredItemContentProvider,

+        ITreeItemContentProvider,

+        IItemLabelProvider,

+        IItemPropertySource {

+    /**

+     * This constructs an instance from a factory and a notifier.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public CallStatementItemProvider(AdapterFactory adapterFactory) {

+        super(adapterFactory);

+    }

+

+    /**

+     * This returns the property descriptors for the adapted class.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public List getPropertyDescriptors(Object object) {

+        if (itemPropertyDescriptors == null) {

+            super.getPropertyDescriptors(object);

+

+        }

+        return itemPropertyDescriptors;

+    }

+

+    /**

+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an

+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or

+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public Collection getChildrenFeatures(Object object) {

+        if (childrenFeatures == null) {

+            super.getChildrenFeatures(object);

+            childrenFeatures.add(SQLQueryModelPackage.Literals.CALL_STATEMENT__ARGUMENT_LIST);

+            childrenFeatures.add(SQLQueryModelPackage.Literals.CALL_STATEMENT__PROCEDURE_REF);

+        }

+        return childrenFeatures;

+    }

+

+    /**

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    protected EStructuralFeature getChildFeature(Object object, Object child) {

+        // Check the type of the specified child object and return the proper feature to use for

+        // adding (see {@link AddCommand}) it as a child.

+

+        return super.getChildFeature(object, child);

+    }

+

+    /**

+     * This returns CallStatement.gif.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public Object getImage(Object object) {

+        return overlayImage(object, getResourceLocator().getImage("full/obj16/CallStatement"));

+    }

+

+    /**

+     * This returns the label text for the adapted class.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public String getText(Object object) {

+        String label = ((CallStatement)object).getName();

+        return label == null || label.length() == 0 ?

+            getString("_UI_CallStatement_type") :

+            getString("_UI_CallStatement_type") + " " + label;

+    }

+

+    /**

+     * This handles model notifications by calling {@link #updateChildren} to update any cached

+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public void notifyChanged(Notification notification) {

+        updateChildren(notification);

+

+        switch (notification.getFeatureID(CallStatement.class)) {

+            case SQLQueryModelPackage.CALL_STATEMENT__ARGUMENT_LIST:

+            case SQLQueryModelPackage.CALL_STATEMENT__PROCEDURE_REF:

+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));

+                return;

+        }

+        super.notifyChanged(notification);

+    }

+

+}

diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ColumnNameItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ColumnNameItemProvider.java
new file mode 100644
index 0000000..55800b9
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ColumnNameItemProvider.java
@@ -0,0 +1,86 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ColumnNameItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+import org.eclipse.datatools.modelbase.sql.query.ColumnName;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.ColumnName} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ColumnNameItemProvider
+  extends SQLQueryObjectItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public ColumnNameItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((ColumnName)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_ColumnName_type") :
+            getString("_UI_ColumnName_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/CursorReferenceItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/CursorReferenceItemProvider.java
new file mode 100644
index 0000000..8f0e917
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/CursorReferenceItemProvider.java
@@ -0,0 +1,85 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: CursorReferenceItemProvider.java,v 1.1 2007/09/25 23:18:02 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.CursorReference;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.CursorReference} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CursorReferenceItemProvider
+  extends SQLQueryObjectItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public CursorReferenceItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((CursorReference)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_CursorReference_type") :
+            getString("_UI_CursorReference_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/GroupingExpressionItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/GroupingExpressionItemProvider.java
new file mode 100644
index 0000000..4c67cb7
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/GroupingExpressionItemProvider.java
@@ -0,0 +1,123 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: GroupingExpressionItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.GroupingExpression} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class GroupingExpressionItemProvider
+  extends GroupingItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public GroupingExpressionItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.GROUPING_EXPRESSION__VALUE_EXPR);
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((GroupingExpression)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_GroupingExpression_type") :
+            getString("_UI_GroupingExpression_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(GroupingExpression.class)) {
+            case SQLQueryModelPackage.GROUPING_EXPRESSION__VALUE_EXPR:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/GroupingItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/GroupingItemProvider.java
new file mode 100644
index 0000000..217675a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/GroupingItemProvider.java
@@ -0,0 +1,85 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: GroupingItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.Grouping;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.Grouping} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class GroupingItemProvider
+  extends GroupingSpecificationItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public GroupingItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((Grouping)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_Grouping_type") :
+            getString("_UI_Grouping_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/GroupingSetsElementExpressionItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/GroupingSetsElementExpressionItemProvider.java
new file mode 100644
index 0000000..02d6ad1
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/GroupingSetsElementExpressionItemProvider.java
@@ -0,0 +1,123 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: GroupingSetsElementExpressionItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementExpression;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementExpression} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class GroupingSetsElementExpressionItemProvider
+  extends GroupingSetsElementItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public GroupingSetsElementExpressionItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.GROUPING_SETS_ELEMENT_EXPRESSION__GROUPING);
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((GroupingSetsElementExpression)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_GroupingSetsElementExpression_type") :
+            getString("_UI_GroupingSetsElementExpression_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(GroupingSetsElementExpression.class)) {
+            case SQLQueryModelPackage.GROUPING_SETS_ELEMENT_EXPRESSION__GROUPING:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/GroupingSetsElementItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/GroupingSetsElementItemProvider.java
new file mode 100644
index 0000000..8423804
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/GroupingSetsElementItemProvider.java
@@ -0,0 +1,85 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: GroupingSetsElementItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.GroupingSetsElement;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.GroupingSetsElement} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class GroupingSetsElementItemProvider
+  extends SQLQueryObjectItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public GroupingSetsElementItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((GroupingSetsElement)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_GroupingSetsElement_type") :
+            getString("_UI_GroupingSetsElement_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/GroupingSetsElementSublistItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/GroupingSetsElementSublistItemProvider.java
new file mode 100644
index 0000000..d19dbb0
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/GroupingSetsElementSublistItemProvider.java
@@ -0,0 +1,123 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: GroupingSetsElementSublistItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementSublist;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementSublist} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class GroupingSetsElementSublistItemProvider
+  extends GroupingSetsElementItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public GroupingSetsElementSublistItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.GROUPING_SETS_ELEMENT_SUBLIST__GROUPING_SETS_ELEMENT_EXPR_LIST);
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((GroupingSetsElementSublist)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_GroupingSetsElementSublist_type") :
+            getString("_UI_GroupingSetsElementSublist_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(GroupingSetsElementSublist.class)) {
+            case SQLQueryModelPackage.GROUPING_SETS_ELEMENT_SUBLIST__GROUPING_SETS_ELEMENT_EXPR_LIST:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/GroupingSetsItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/GroupingSetsItemProvider.java
new file mode 100644
index 0000000..601230c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/GroupingSetsItemProvider.java
@@ -0,0 +1,123 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: GroupingSetsItemProvider.java,v 1.1 2007/09/25 23:18:02 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.GroupingSets;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.GroupingSets} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class GroupingSetsItemProvider
+  extends GroupingSpecificationItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public GroupingSetsItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.GROUPING_SETS__GROUPING_SETS_ELEMENT_LIST);
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((GroupingSets)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_GroupingSets_type") :
+            getString("_UI_GroupingSets_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(GroupingSets.class)) {
+            case SQLQueryModelPackage.GROUPING_SETS__GROUPING_SETS_ELEMENT_LIST:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/GroupingSpecificationItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/GroupingSpecificationItemProvider.java
new file mode 100644
index 0000000..86d2a6b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/GroupingSpecificationItemProvider.java
@@ -0,0 +1,85 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: GroupingSpecificationItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.GroupingSpecification;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.GroupingSpecification} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class GroupingSpecificationItemProvider
+  extends SQLQueryObjectItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public GroupingSpecificationItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((GroupingSpecification)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_GroupingSpecification_type") :
+            getString("_UI_GroupingSpecification_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/MergeInsertSpecificationItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/MergeInsertSpecificationItemProvider.java
new file mode 100644
index 0000000..ab99d58
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/MergeInsertSpecificationItemProvider.java
@@ -0,0 +1,159 @@
+/**

+ * <copyright>

+ * </copyright>

+ *

+ * $Id$

+ */

+package org.eclipse.datatools.modelbase.sql.query.provider;

+

+

+import java.util.Collection;

+import java.util.List;

+

+import org.eclipse.datatools.modelbase.sql.query.MergeInsertSpecification;

+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;

+

+import org.eclipse.emf.common.notify.AdapterFactory;

+import org.eclipse.emf.common.notify.Notification;

+

+import org.eclipse.emf.ecore.EStructuralFeature;

+

+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;

+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;

+import org.eclipse.emf.edit.provider.IItemLabelProvider;

+import org.eclipse.emf.edit.provider.IItemPropertySource;

+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;

+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;

+import org.eclipse.emf.edit.provider.ViewerNotification;

+

+/**

+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.MergeInsertSpecification} object.

+ * <!-- begin-user-doc -->

+ * <!-- end-user-doc -->

+ * @generated

+ */

+public class MergeInsertSpecificationItemProvider

+    extends MergeOperationSpecificationItemProvider

+    implements

+        IEditingDomainItemProvider,

+        IStructuredItemContentProvider,

+        ITreeItemContentProvider,

+        IItemLabelProvider,

+        IItemPropertySource {

+    /**

+     * This constructs an instance from a factory and a notifier.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public MergeInsertSpecificationItemProvider(AdapterFactory adapterFactory) {

+        super(adapterFactory);

+    }

+

+    /**

+     * This returns the property descriptors for the adapted class.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public List getPropertyDescriptors(Object object) {

+        if (itemPropertyDescriptors == null) {

+            super.getPropertyDescriptors(object);

+

+            addTargetColumnListPropertyDescriptor(object);

+        }

+        return itemPropertyDescriptors;

+    }

+

+    /**

+     * This adds a property descriptor for the Target Column List feature.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    protected void addTargetColumnListPropertyDescriptor(Object object) {

+        itemPropertyDescriptors.add

+            (createItemPropertyDescriptor

+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),

+                 getResourceLocator(),

+                 getString("_UI_MergeInsertSpecification_targetColumnList_feature"),

+                 getString("_UI_PropertyDescriptor_description", "_UI_MergeInsertSpecification_targetColumnList_feature", "_UI_MergeInsertSpecification_type"),

+                 SQLQueryModelPackage.Literals.MERGE_INSERT_SPECIFICATION__TARGET_COLUMN_LIST,

+                 true,

+                 false,

+                 true,

+                 null,

+                 null,

+                 null));

+    }

+

+    /**

+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an

+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or

+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public Collection getChildrenFeatures(Object object) {

+        if (childrenFeatures == null) {

+            super.getChildrenFeatures(object);

+            childrenFeatures.add(SQLQueryModelPackage.Literals.MERGE_INSERT_SPECIFICATION__SOURCE_VALUES_ROW);

+        }

+        return childrenFeatures;

+    }

+

+    /**

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    protected EStructuralFeature getChildFeature(Object object, Object child) {

+        // Check the type of the specified child object and return the proper feature to use for

+        // adding (see {@link AddCommand}) it as a child.

+

+        return super.getChildFeature(object, child);

+    }

+

+    /**

+     * This returns MergeInsertSpecification.gif.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public Object getImage(Object object) {

+        return overlayImage(object, getResourceLocator().getImage("full/obj16/MergeInsertSpecification"));

+    }

+

+    /**

+     * This returns the label text for the adapted class.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public String getText(Object object) {

+        String label = ((MergeInsertSpecification)object).getName();

+        return label == null || label.length() == 0 ?

+            getString("_UI_MergeInsertSpecification_type") :

+            getString("_UI_MergeInsertSpecification_type") + " " + label;

+    }

+

+    /**

+     * This handles model notifications by calling {@link #updateChildren} to update any cached

+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public void notifyChanged(Notification notification) {

+        updateChildren(notification);

+

+        switch (notification.getFeatureID(MergeInsertSpecification.class)) {

+            case SQLQueryModelPackage.MERGE_INSERT_SPECIFICATION__SOURCE_VALUES_ROW:

+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));

+                return;

+        }

+        super.notifyChanged(notification);

+    }

+

+}

diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/MergeOnConditionItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/MergeOnConditionItemProvider.java
new file mode 100644
index 0000000..6b880fd
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/MergeOnConditionItemProvider.java
@@ -0,0 +1,135 @@
+/**

+ * <copyright>

+ * </copyright>

+ *

+ * $Id$

+ */

+package org.eclipse.datatools.modelbase.sql.query.provider;

+

+

+import java.util.Collection;

+import java.util.List;

+

+import org.eclipse.datatools.modelbase.sql.query.MergeOnCondition;

+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;

+

+import org.eclipse.emf.common.notify.AdapterFactory;

+import org.eclipse.emf.common.notify.Notification;

+

+import org.eclipse.emf.ecore.EStructuralFeature;

+

+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;

+import org.eclipse.emf.edit.provider.IItemLabelProvider;

+import org.eclipse.emf.edit.provider.IItemPropertySource;

+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;

+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;

+import org.eclipse.emf.edit.provider.ViewerNotification;

+

+/**

+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.MergeOnCondition} object.

+ * <!-- begin-user-doc -->

+ * <!-- end-user-doc -->

+ * @generated

+ */

+public class MergeOnConditionItemProvider

+    extends SQLQueryObjectItemProvider

+    implements

+        IEditingDomainItemProvider,

+        IStructuredItemContentProvider,

+        ITreeItemContentProvider,

+        IItemLabelProvider,

+        IItemPropertySource {

+    /**

+     * This constructs an instance from a factory and a notifier.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public MergeOnConditionItemProvider(AdapterFactory adapterFactory) {

+        super(adapterFactory);

+    }

+

+    /**

+     * This returns the property descriptors for the adapted class.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public List getPropertyDescriptors(Object object) {

+        if (itemPropertyDescriptors == null) {

+            super.getPropertyDescriptors(object);

+

+        }

+        return itemPropertyDescriptors;

+    }

+

+    /**

+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an

+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or

+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public Collection getChildrenFeatures(Object object) {

+        if (childrenFeatures == null) {

+            super.getChildrenFeatures(object);

+            childrenFeatures.add(SQLQueryModelPackage.Literals.MERGE_ON_CONDITION__SEARCH_CONDITION);

+        }

+        return childrenFeatures;

+    }

+

+    /**

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    protected EStructuralFeature getChildFeature(Object object, Object child) {

+        // Check the type of the specified child object and return the proper feature to use for

+        // adding (see {@link AddCommand}) it as a child.

+

+        return super.getChildFeature(object, child);

+    }

+

+    /**

+     * This returns MergeOnCondition.gif.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public Object getImage(Object object) {

+        return overlayImage(object, getResourceLocator().getImage("full/obj16/MergeOnCondition"));

+    }

+

+    /**

+     * This returns the label text for the adapted class.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public String getText(Object object) {

+        String label = ((MergeOnCondition)object).getName();

+        return label == null || label.length() == 0 ?

+            getString("_UI_MergeOnCondition_type") :

+            getString("_UI_MergeOnCondition_type") + " " + label;

+    }

+

+    /**

+     * This handles model notifications by calling {@link #updateChildren} to update any cached

+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public void notifyChanged(Notification notification) {

+        updateChildren(notification);

+

+        switch (notification.getFeatureID(MergeOnCondition.class)) {

+            case SQLQueryModelPackage.MERGE_ON_CONDITION__SEARCH_CONDITION:

+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));

+                return;

+        }

+        super.notifyChanged(notification);

+    }

+

+}

diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/MergeOperationSpecificationItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/MergeOperationSpecificationItemProvider.java
new file mode 100644
index 0000000..8bd10cd
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/MergeOperationSpecificationItemProvider.java
@@ -0,0 +1,96 @@
+/**

+ * <copyright>

+ * </copyright>

+ *

+ * $Id$

+ */

+package org.eclipse.datatools.modelbase.sql.query.provider;

+

+

+import java.util.List;

+

+import org.eclipse.datatools.modelbase.sql.query.MergeOperationSpecification;

+

+import org.eclipse.emf.common.notify.AdapterFactory;

+import org.eclipse.emf.common.notify.Notification;

+

+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;

+import org.eclipse.emf.edit.provider.IItemLabelProvider;

+import org.eclipse.emf.edit.provider.IItemPropertySource;

+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;

+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;

+

+/**

+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.MergeOperationSpecification} object.

+ * <!-- begin-user-doc -->

+ * <!-- end-user-doc -->

+ * @generated

+ */

+public class MergeOperationSpecificationItemProvider

+    extends SQLQueryObjectItemProvider

+    implements

+        IEditingDomainItemProvider,

+        IStructuredItemContentProvider,

+        ITreeItemContentProvider,

+        IItemLabelProvider,

+        IItemPropertySource {

+    /**

+     * This constructs an instance from a factory and a notifier.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public MergeOperationSpecificationItemProvider(AdapterFactory adapterFactory) {

+        super(adapterFactory);

+    }

+

+    /**

+     * This returns the property descriptors for the adapted class.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public List getPropertyDescriptors(Object object) {

+        if (itemPropertyDescriptors == null) {

+            super.getPropertyDescriptors(object);

+

+        }

+        return itemPropertyDescriptors;

+    }

+

+    /**

+     * This returns MergeOperationSpecification.gif.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public Object getImage(Object object) {

+        return overlayImage(object, getResourceLocator().getImage("full/obj16/MergeOperationSpecification"));

+    }

+

+    /**

+     * This returns the label text for the adapted class.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public String getText(Object object) {

+        String label = ((MergeOperationSpecification)object).getName();

+        return label == null || label.length() == 0 ?

+            getString("_UI_MergeOperationSpecification_type") :

+            getString("_UI_MergeOperationSpecification_type") + " " + label;

+    }

+

+    /**

+     * This handles model notifications by calling {@link #updateChildren} to update any cached

+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public void notifyChanged(Notification notification) {

+        updateChildren(notification);

+        super.notifyChanged(notification);

+    }

+

+}

diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/MergeSourceTableItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/MergeSourceTableItemProvider.java
new file mode 100644
index 0000000..6eadd20
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/MergeSourceTableItemProvider.java
@@ -0,0 +1,159 @@
+/**

+ * <copyright>

+ * </copyright>

+ *

+ * $Id$

+ */

+package org.eclipse.datatools.modelbase.sql.query.provider;

+

+

+import java.util.Collection;

+import java.util.List;

+

+import org.eclipse.datatools.modelbase.sql.query.MergeSourceTable;

+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;

+

+import org.eclipse.emf.common.notify.AdapterFactory;

+import org.eclipse.emf.common.notify.Notification;

+

+import org.eclipse.emf.ecore.EStructuralFeature;

+

+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;

+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;

+import org.eclipse.emf.edit.provider.IItemLabelProvider;

+import org.eclipse.emf.edit.provider.IItemPropertySource;

+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;

+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;

+import org.eclipse.emf.edit.provider.ViewerNotification;

+

+/**

+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.MergeSourceTable} object.

+ * <!-- begin-user-doc -->

+ * <!-- end-user-doc -->

+ * @generated

+ */

+public class MergeSourceTableItemProvider

+    extends SQLQueryObjectItemProvider

+    implements

+        IEditingDomainItemProvider,

+        IStructuredItemContentProvider,

+        ITreeItemContentProvider,

+        IItemLabelProvider,

+        IItemPropertySource {

+    /**

+     * This constructs an instance from a factory and a notifier.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public MergeSourceTableItemProvider(AdapterFactory adapterFactory) {

+        super(adapterFactory);

+    }

+

+    /**

+     * This returns the property descriptors for the adapted class.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public List getPropertyDescriptors(Object object) {

+        if (itemPropertyDescriptors == null) {

+            super.getPropertyDescriptors(object);

+

+            addQueryMergeStatementPropertyDescriptor(object);

+        }

+        return itemPropertyDescriptors;

+    }

+

+    /**

+     * This adds a property descriptor for the Query Merge Statement feature.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    protected void addQueryMergeStatementPropertyDescriptor(Object object) {

+        itemPropertyDescriptors.add

+            (createItemPropertyDescriptor

+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),

+                 getResourceLocator(),

+                 getString("_UI_MergeSourceTable_QueryMergeStatement_feature"),

+                 getString("_UI_PropertyDescriptor_description", "_UI_MergeSourceTable_QueryMergeStatement_feature", "_UI_MergeSourceTable_type"),

+                 SQLQueryModelPackage.Literals.MERGE_SOURCE_TABLE__QUERY_MERGE_STATEMENT,

+                 true,

+                 false,

+                 true,

+                 null,

+                 null,

+                 null));

+    }

+

+    /**

+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an

+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or

+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public Collection getChildrenFeatures(Object object) {

+        if (childrenFeatures == null) {

+            super.getChildrenFeatures(object);

+            childrenFeatures.add(SQLQueryModelPackage.Literals.MERGE_SOURCE_TABLE__TABLE_REF);

+        }

+        return childrenFeatures;

+    }

+

+    /**

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    protected EStructuralFeature getChildFeature(Object object, Object child) {

+        // Check the type of the specified child object and return the proper feature to use for

+        // adding (see {@link AddCommand}) it as a child.

+

+        return super.getChildFeature(object, child);

+    }

+

+    /**

+     * This returns MergeSourceTable.gif.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public Object getImage(Object object) {

+        return overlayImage(object, getResourceLocator().getImage("full/obj16/MergeSourceTable"));

+    }

+

+    /**

+     * This returns the label text for the adapted class.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public String getText(Object object) {

+        String label = ((MergeSourceTable)object).getName();

+        return label == null || label.length() == 0 ?

+            getString("_UI_MergeSourceTable_type") :

+            getString("_UI_MergeSourceTable_type") + " " + label;

+    }

+

+    /**

+     * This handles model notifications by calling {@link #updateChildren} to update any cached

+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public void notifyChanged(Notification notification) {

+        updateChildren(notification);

+

+        switch (notification.getFeatureID(MergeSourceTable.class)) {

+            case SQLQueryModelPackage.MERGE_SOURCE_TABLE__TABLE_REF:

+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));

+                return;

+        }

+        super.notifyChanged(notification);

+    }

+

+}

diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/MergeTargetTableItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/MergeTargetTableItemProvider.java
new file mode 100644
index 0000000..1a02c96
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/MergeTargetTableItemProvider.java
@@ -0,0 +1,135 @@
+/**

+ * <copyright>

+ * </copyright>

+ *

+ * $Id$

+ */

+package org.eclipse.datatools.modelbase.sql.query.provider;

+

+

+import java.util.Collection;

+import java.util.List;

+

+import org.eclipse.datatools.modelbase.sql.query.MergeTargetTable;

+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;

+

+import org.eclipse.emf.common.notify.AdapterFactory;

+import org.eclipse.emf.common.notify.Notification;

+

+import org.eclipse.emf.ecore.EStructuralFeature;

+

+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;

+import org.eclipse.emf.edit.provider.IItemLabelProvider;

+import org.eclipse.emf.edit.provider.IItemPropertySource;

+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;

+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;

+import org.eclipse.emf.edit.provider.ViewerNotification;

+

+/**

+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.MergeTargetTable} object.

+ * <!-- begin-user-doc -->

+ * <!-- end-user-doc -->

+ * @generated

+ */

+public class MergeTargetTableItemProvider

+    extends SQLQueryObjectItemProvider

+    implements

+        IEditingDomainItemProvider,

+        IStructuredItemContentProvider,

+        ITreeItemContentProvider,

+        IItemLabelProvider,

+        IItemPropertySource {

+    /**

+     * This constructs an instance from a factory and a notifier.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public MergeTargetTableItemProvider(AdapterFactory adapterFactory) {

+        super(adapterFactory);

+    }

+

+    /**

+     * This returns the property descriptors for the adapted class.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public List getPropertyDescriptors(Object object) {

+        if (itemPropertyDescriptors == null) {

+            super.getPropertyDescriptors(object);

+

+        }

+        return itemPropertyDescriptors;

+    }

+

+    /**

+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an

+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or

+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public Collection getChildrenFeatures(Object object) {

+        if (childrenFeatures == null) {

+            super.getChildrenFeatures(object);

+            childrenFeatures.add(SQLQueryModelPackage.Literals.MERGE_TARGET_TABLE__TABLE_EXPR);

+        }

+        return childrenFeatures;

+    }

+

+    /**

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    protected EStructuralFeature getChildFeature(Object object, Object child) {

+        // Check the type of the specified child object and return the proper feature to use for

+        // adding (see {@link AddCommand}) it as a child.

+

+        return super.getChildFeature(object, child);

+    }

+

+    /**

+     * This returns MergeTargetTable.gif.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public Object getImage(Object object) {

+        return overlayImage(object, getResourceLocator().getImage("full/obj16/MergeTargetTable"));

+    }

+

+    /**

+     * This returns the label text for the adapted class.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public String getText(Object object) {

+        String label = ((MergeTargetTable)object).getName();

+        return label == null || label.length() == 0 ?

+            getString("_UI_MergeTargetTable_type") :

+            getString("_UI_MergeTargetTable_type") + " " + label;

+    }

+

+    /**

+     * This handles model notifications by calling {@link #updateChildren} to update any cached

+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public void notifyChanged(Notification notification) {

+        updateChildren(notification);

+

+        switch (notification.getFeatureID(MergeTargetTable.class)) {

+            case SQLQueryModelPackage.MERGE_TARGET_TABLE__TABLE_EXPR:

+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));

+                return;

+        }

+        super.notifyChanged(notification);

+    }

+

+}

diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/MergeUpdateSpecificationItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/MergeUpdateSpecificationItemProvider.java
new file mode 100644
index 0000000..8b40ca2
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/MergeUpdateSpecificationItemProvider.java
@@ -0,0 +1,135 @@
+/**

+ * <copyright>

+ * </copyright>

+ *

+ * $Id$

+ */

+package org.eclipse.datatools.modelbase.sql.query.provider;

+

+

+import java.util.Collection;

+import java.util.List;

+

+import org.eclipse.datatools.modelbase.sql.query.MergeUpdateSpecification;

+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;

+

+import org.eclipse.emf.common.notify.AdapterFactory;

+import org.eclipse.emf.common.notify.Notification;

+

+import org.eclipse.emf.ecore.EStructuralFeature;

+

+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;

+import org.eclipse.emf.edit.provider.IItemLabelProvider;

+import org.eclipse.emf.edit.provider.IItemPropertySource;

+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;

+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;

+import org.eclipse.emf.edit.provider.ViewerNotification;

+

+/**

+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.MergeUpdateSpecification} object.

+ * <!-- begin-user-doc -->

+ * <!-- end-user-doc -->

+ * @generated

+ */

+public class MergeUpdateSpecificationItemProvider

+    extends MergeOperationSpecificationItemProvider

+    implements

+        IEditingDomainItemProvider,

+        IStructuredItemContentProvider,

+        ITreeItemContentProvider,

+        IItemLabelProvider,

+        IItemPropertySource {

+    /**

+     * This constructs an instance from a factory and a notifier.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public MergeUpdateSpecificationItemProvider(AdapterFactory adapterFactory) {

+        super(adapterFactory);

+    }

+

+    /**

+     * This returns the property descriptors for the adapted class.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public List getPropertyDescriptors(Object object) {

+        if (itemPropertyDescriptors == null) {

+            super.getPropertyDescriptors(object);

+

+        }

+        return itemPropertyDescriptors;

+    }

+

+    /**

+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an

+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or

+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public Collection getChildrenFeatures(Object object) {

+        if (childrenFeatures == null) {

+            super.getChildrenFeatures(object);

+            childrenFeatures.add(SQLQueryModelPackage.Literals.MERGE_UPDATE_SPECIFICATION__ASSIGNEMENT_EXPR_LIST);

+        }

+        return childrenFeatures;

+    }

+

+    /**

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    protected EStructuralFeature getChildFeature(Object object, Object child) {

+        // Check the type of the specified child object and return the proper feature to use for

+        // adding (see {@link AddCommand}) it as a child.

+

+        return super.getChildFeature(object, child);

+    }

+

+    /**

+     * This returns MergeUpdateSpecification.gif.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public Object getImage(Object object) {

+        return overlayImage(object, getResourceLocator().getImage("full/obj16/MergeUpdateSpecification"));

+    }

+

+    /**

+     * This returns the label text for the adapted class.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public String getText(Object object) {

+        String label = ((MergeUpdateSpecification)object).getName();

+        return label == null || label.length() == 0 ?

+            getString("_UI_MergeUpdateSpecification_type") :

+            getString("_UI_MergeUpdateSpecification_type") + " " + label;

+    }

+

+    /**

+     * This handles model notifications by calling {@link #updateChildren} to update any cached

+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public void notifyChanged(Notification notification) {

+        updateChildren(notification);

+

+        switch (notification.getFeatureID(MergeUpdateSpecification.class)) {

+            case SQLQueryModelPackage.MERGE_UPDATE_SPECIFICATION__ASSIGNEMENT_EXPR_LIST:

+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));

+                return;

+        }

+        super.notifyChanged(notification);

+    }

+

+}

diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/OrderByOrdinalItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/OrderByOrdinalItemProvider.java
new file mode 100644
index 0000000..f8f4d57
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/OrderByOrdinalItemProvider.java
@@ -0,0 +1,118 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: OrderByOrdinalItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.OrderByOrdinal;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.OrderByOrdinal} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class OrderByOrdinalItemProvider
+  extends OrderBySpecificationItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public OrderByOrdinalItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+            addOrdinalValuePropertyDescriptor(object);
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This adds a property descriptor for the Ordinal Value feature.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected void addOrdinalValuePropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_OrderByOrdinal_ordinalValue_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_OrderByOrdinal_ordinalValue_feature", "_UI_OrderByOrdinal_type"),
+                 SQLQueryModelPackage.Literals.ORDER_BY_ORDINAL__ORDINAL_VALUE,
+                 true,
+                 false,
+                 false,
+                 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+                 null,
+                 null));
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((OrderByOrdinal)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_OrderByOrdinal_type") :
+            getString("_UI_OrderByOrdinal_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(OrderByOrdinal.class)) {
+            case SQLQueryModelPackage.ORDER_BY_ORDINAL__ORDINAL_VALUE:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/OrderByResultColumnItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/OrderByResultColumnItemProvider.java
new file mode 100644
index 0000000..55988f0
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/OrderByResultColumnItemProvider.java
@@ -0,0 +1,111 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: OrderByResultColumnItemProvider.java,v 1.1 2007/09/25 23:18:02 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.OrderByResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.OrderByResultColumn} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class OrderByResultColumnItemProvider
+  extends OrderBySpecificationItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public OrderByResultColumnItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+            addResultColPropertyDescriptor(object);
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This adds a property descriptor for the Result Col feature.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected void addResultColPropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_OrderByResultColumn_resultCol_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_OrderByResultColumn_resultCol_feature", "_UI_OrderByResultColumn_type"),
+                 SQLQueryModelPackage.Literals.ORDER_BY_RESULT_COLUMN__RESULT_COL,
+                 true,
+                 false,
+                 false,
+                 null,
+                 null,
+                 null));
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((OrderByResultColumn)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_OrderByResultColumn_type") :
+            getString("_UI_OrderByResultColumn_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/OrderBySpecificationItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/OrderBySpecificationItemProvider.java
new file mode 100644
index 0000000..33a1f53
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/OrderBySpecificationItemProvider.java
@@ -0,0 +1,166 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: OrderBySpecificationItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.OrderBySpecification;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.OrderBySpecification} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class OrderBySpecificationItemProvider
+  extends SQLQueryObjectItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public OrderBySpecificationItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+            addDescendingPropertyDescriptor(object);
+            addOrderingSpecOptionPropertyDescriptor(object);
+            addNullOrderingOptionPropertyDescriptor(object);
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This adds a property descriptor for the Descending feature.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected void addDescendingPropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_OrderBySpecification_descending_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_OrderBySpecification_descending_feature", "_UI_OrderBySpecification_type"),
+                 SQLQueryModelPackage.Literals.ORDER_BY_SPECIFICATION__DESCENDING,
+                 true,
+                 false,
+                 false,
+                 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+                 null,
+                 null));
+    }
+
+    /**
+     * This adds a property descriptor for the Ordering Spec Option feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected void addOrderingSpecOptionPropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_OrderBySpecification_OrderingSpecOption_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_OrderBySpecification_OrderingSpecOption_feature", "_UI_OrderBySpecification_type"),
+                 SQLQueryModelPackage.Literals.ORDER_BY_SPECIFICATION__ORDERING_SPEC_OPTION,
+                 true,
+                 false,
+                 false,
+                 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+                 null,
+                 null));
+    }
+
+    /**
+     * This adds a property descriptor for the Null Ordering Option feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected void addNullOrderingOptionPropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_OrderBySpecification_NullOrderingOption_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_OrderBySpecification_NullOrderingOption_feature", "_UI_OrderBySpecification_type"),
+                 SQLQueryModelPackage.Literals.ORDER_BY_SPECIFICATION__NULL_ORDERING_OPTION,
+                 true,
+                 false,
+                 false,
+                 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+                 null,
+                 null));
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((OrderBySpecification)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_OrderBySpecification_type") :
+            getString("_UI_OrderBySpecification_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(OrderBySpecification.class)) {
+            case SQLQueryModelPackage.ORDER_BY_SPECIFICATION__DESCENDING:
+            case SQLQueryModelPackage.ORDER_BY_SPECIFICATION__ORDERING_SPEC_OPTION:
+            case SQLQueryModelPackage.ORDER_BY_SPECIFICATION__NULL_ORDERING_OPTION:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/OrderByValueExpressionItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/OrderByValueExpressionItemProvider.java
new file mode 100644
index 0000000..5969956
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/OrderByValueExpressionItemProvider.java
@@ -0,0 +1,123 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: OrderByValueExpressionItemProvider.java,v 1.1 2007/09/25 23:18:02 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class OrderByValueExpressionItemProvider
+  extends OrderBySpecificationItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public OrderByValueExpressionItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.ORDER_BY_VALUE_EXPRESSION__VALUE_EXPR);
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((OrderByValueExpression)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_OrderByValueExpression_type") :
+            getString("_UI_OrderByValueExpression_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(OrderByValueExpression.class)) {
+            case SQLQueryModelPackage.ORDER_BY_VALUE_EXPRESSION__VALUE_EXPR:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/PredicateBasicItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/PredicateBasicItemProvider.java
new file mode 100644
index 0000000..f8c0927
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/PredicateBasicItemProvider.java
@@ -0,0 +1,153 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PredicateBasicItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.PredicateBasic} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PredicateBasicItemProvider
+  extends PredicateItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public PredicateBasicItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+            addComparisonOperatorPropertyDescriptor(object);
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This adds a property descriptor for the Comparison Operator feature.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected void addComparisonOperatorPropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_PredicateBasic_comparisonOperator_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_PredicateBasic_comparisonOperator_feature", "_UI_PredicateBasic_type"),
+                 SQLQueryModelPackage.Literals.PREDICATE_BASIC__COMPARISON_OPERATOR,
+                 true,
+                 false,
+                 false,
+                 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+                 null,
+                 null));
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.PREDICATE_BASIC__RIGHT_VALUE_EXPR);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.PREDICATE_BASIC__LEFT_VALUE_EXPR);
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((PredicateBasic)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_PredicateBasic_type") :
+            getString("_UI_PredicateBasic_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(PredicateBasic.class)) {
+            case SQLQueryModelPackage.PREDICATE_BASIC__COMPARISON_OPERATOR:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+                return;
+            case SQLQueryModelPackage.PREDICATE_BASIC__RIGHT_VALUE_EXPR:
+            case SQLQueryModelPackage.PREDICATE_BASIC__LEFT_VALUE_EXPR:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/PredicateBetweenItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/PredicateBetweenItemProvider.java
new file mode 100644
index 0000000..818decc
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/PredicateBetweenItemProvider.java
@@ -0,0 +1,155 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PredicateBetweenItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.PredicateBetween} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PredicateBetweenItemProvider
+  extends PredicateItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public PredicateBetweenItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+            addNotBetweenPropertyDescriptor(object);
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This adds a property descriptor for the Not Between feature.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected void addNotBetweenPropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_PredicateBetween_notBetween_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_PredicateBetween_notBetween_feature", "_UI_PredicateBetween_type"),
+                 SQLQueryModelPackage.Literals.PREDICATE_BETWEEN__NOT_BETWEEN,
+                 true,
+                 false,
+                 false,
+                 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+                 null,
+                 null));
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.PREDICATE_BETWEEN__LEFT_VALUE_EXPR);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.PREDICATE_BETWEEN__RIGHT_VALUE_EXPR1);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.PREDICATE_BETWEEN__RIGHT_VALUE_EXPR2);
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((PredicateBetween)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_PredicateBetween_type") :
+            getString("_UI_PredicateBetween_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(PredicateBetween.class)) {
+            case SQLQueryModelPackage.PREDICATE_BETWEEN__NOT_BETWEEN:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+                return;
+            case SQLQueryModelPackage.PREDICATE_BETWEEN__LEFT_VALUE_EXPR:
+            case SQLQueryModelPackage.PREDICATE_BETWEEN__RIGHT_VALUE_EXPR1:
+            case SQLQueryModelPackage.PREDICATE_BETWEEN__RIGHT_VALUE_EXPR2:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/PredicateExistsItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/PredicateExistsItemProvider.java
new file mode 100644
index 0000000..cb75e8c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/PredicateExistsItemProvider.java
@@ -0,0 +1,123 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PredicateExistsItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.PredicateExists;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.PredicateExists} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PredicateExistsItemProvider
+  extends PredicateItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public PredicateExistsItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.PREDICATE_EXISTS__QUERY_EXPR);
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((PredicateExists)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_PredicateExists_type") :
+            getString("_UI_PredicateExists_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(PredicateExists.class)) {
+            case SQLQueryModelPackage.PREDICATE_EXISTS__QUERY_EXPR:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/PredicateInItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/PredicateInItemProvider.java
new file mode 100644
index 0000000..e931896
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/PredicateInItemProvider.java
@@ -0,0 +1,118 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PredicateInItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.PredicateIn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.PredicateIn} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PredicateInItemProvider
+  extends PredicateItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public PredicateInItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+            addNotInPropertyDescriptor(object);
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This adds a property descriptor for the Not In feature.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected void addNotInPropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_PredicateIn_notIn_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_PredicateIn_notIn_feature", "_UI_PredicateIn_type"),
+                 SQLQueryModelPackage.Literals.PREDICATE_IN__NOT_IN,
+                 true,
+                 false,
+                 false,
+                 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+                 null,
+                 null));
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((PredicateIn)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_PredicateIn_type") :
+            getString("_UI_PredicateIn_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(PredicateIn.class)) {
+            case SQLQueryModelPackage.PREDICATE_IN__NOT_IN:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/PredicateInValueListItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/PredicateInValueListItemProvider.java
new file mode 100644
index 0000000..d1a30ab
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/PredicateInValueListItemProvider.java
@@ -0,0 +1,125 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PredicateInValueListItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.PredicateInValueList} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PredicateInValueListItemProvider
+  extends PredicateInItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public PredicateInValueListItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.PREDICATE_IN_VALUE_LIST__VALUE_EXPR_LIST);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.PREDICATE_IN_VALUE_LIST__VALUE_EXPR);
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((PredicateInValueList)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_PredicateInValueList_type") :
+            getString("_UI_PredicateInValueList_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(PredicateInValueList.class)) {
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_LIST__VALUE_EXPR_LIST:
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_LIST__VALUE_EXPR:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/PredicateInValueRowSelectItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/PredicateInValueRowSelectItemProvider.java
new file mode 100644
index 0000000..6f41f22
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/PredicateInValueRowSelectItemProvider.java
@@ -0,0 +1,125 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PredicateInValueRowSelectItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PredicateInValueRowSelectItemProvider
+  extends PredicateInItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public PredicateInValueRowSelectItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.PREDICATE_IN_VALUE_ROW_SELECT__VALUE_EXPR_LIST);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.PREDICATE_IN_VALUE_ROW_SELECT__QUERY_EXPR);
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((PredicateInValueRowSelect)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_PredicateInValueRowSelect_type") :
+            getString("_UI_PredicateInValueRowSelect_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(PredicateInValueRowSelect.class)) {
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_ROW_SELECT__VALUE_EXPR_LIST:
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_ROW_SELECT__QUERY_EXPR:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/PredicateInValueSelectItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/PredicateInValueSelectItemProvider.java
new file mode 100644
index 0000000..e5462bc
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/PredicateInValueSelectItemProvider.java
@@ -0,0 +1,125 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PredicateInValueSelectItemProvider.java,v 1.1 2007/09/25 23:18:02 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PredicateInValueSelectItemProvider
+  extends PredicateInItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public PredicateInValueSelectItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.PREDICATE_IN_VALUE_SELECT__QUERY_EXPR);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.PREDICATE_IN_VALUE_SELECT__VALUE_EXPR);
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((PredicateInValueSelect)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_PredicateInValueSelect_type") :
+            getString("_UI_PredicateInValueSelect_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(PredicateInValueSelect.class)) {
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_SELECT__QUERY_EXPR:
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_SELECT__VALUE_EXPR:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/PredicateIsNullItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/PredicateIsNullItemProvider.java
new file mode 100644
index 0000000..b0a3538
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/PredicateIsNullItemProvider.java
@@ -0,0 +1,151 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PredicateIsNullItemProvider.java,v 1.1 2007/09/25 23:18:02 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.PredicateIsNull} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PredicateIsNullItemProvider
+  extends PredicateItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public PredicateIsNullItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+            addNotNullPropertyDescriptor(object);
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This adds a property descriptor for the Not Null feature.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected void addNotNullPropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_PredicateIsNull_notNull_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_PredicateIsNull_notNull_feature", "_UI_PredicateIsNull_type"),
+                 SQLQueryModelPackage.Literals.PREDICATE_IS_NULL__NOT_NULL,
+                 true,
+                 false,
+                 false,
+                 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+                 null,
+                 null));
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.PREDICATE_IS_NULL__VALUE_EXPR);
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((PredicateIsNull)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_PredicateIsNull_type") :
+            getString("_UI_PredicateIsNull_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(PredicateIsNull.class)) {
+            case SQLQueryModelPackage.PREDICATE_IS_NULL__NOT_NULL:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+                return;
+            case SQLQueryModelPackage.PREDICATE_IS_NULL__VALUE_EXPR:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/PredicateItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/PredicateItemProvider.java
new file mode 100644
index 0000000..2a2e2a5
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/PredicateItemProvider.java
@@ -0,0 +1,166 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PredicateItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.Predicate;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.Predicate} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PredicateItemProvider
+  extends QuerySearchConditionItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public PredicateItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+            addNegatedPredicatePropertyDescriptor(object);
+            addHasSelectivityPropertyDescriptor(object);
+            addSelectivityValuePropertyDescriptor(object);
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This adds a property descriptor for the Negated Predicate feature.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected void addNegatedPredicatePropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_Predicate_negatedPredicate_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_Predicate_negatedPredicate_feature", "_UI_Predicate_type"),
+                 SQLQueryModelPackage.Literals.PREDICATE__NEGATED_PREDICATE,
+                 true,
+                 false,
+                 false,
+                 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+                 null,
+                 null));
+    }
+
+    /**
+     * This adds a property descriptor for the Has Selectivity feature.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected void addHasSelectivityPropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_Predicate_hasSelectivity_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_Predicate_hasSelectivity_feature", "_UI_Predicate_type"),
+                 SQLQueryModelPackage.Literals.PREDICATE__HAS_SELECTIVITY,
+                 true,
+                 false,
+                 false,
+                 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+                 null,
+                 null));
+    }
+
+    /**
+     * This adds a property descriptor for the Selectivity Value feature.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected void addSelectivityValuePropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_Predicate_selectivityValue_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_Predicate_selectivityValue_feature", "_UI_Predicate_type"),
+                 SQLQueryModelPackage.Literals.PREDICATE__SELECTIVITY_VALUE,
+                 true,
+                 false,
+                 false,
+                 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+                 null,
+                 null));
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((Predicate)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_Predicate_type") :
+            getString("_UI_Predicate_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(Predicate.class)) {
+            case SQLQueryModelPackage.PREDICATE__NEGATED_PREDICATE:
+            case SQLQueryModelPackage.PREDICATE__HAS_SELECTIVITY:
+            case SQLQueryModelPackage.PREDICATE__SELECTIVITY_VALUE:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/PredicateLikeItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/PredicateLikeItemProvider.java
new file mode 100644
index 0000000..290ce02
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/PredicateLikeItemProvider.java
@@ -0,0 +1,155 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PredicateLikeItemProvider.java,v 1.1 2007/09/25 23:18:02 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.PredicateLike} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PredicateLikeItemProvider
+  extends PredicateItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public PredicateLikeItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+            addNotLikePropertyDescriptor(object);
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This adds a property descriptor for the Not Like feature.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected void addNotLikePropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_PredicateLike_notLike_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_PredicateLike_notLike_feature", "_UI_PredicateLike_type"),
+                 SQLQueryModelPackage.Literals.PREDICATE_LIKE__NOT_LIKE,
+                 true,
+                 false,
+                 false,
+                 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+                 null,
+                 null));
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.PREDICATE_LIKE__PATTERN_VALUE_EXPR);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.PREDICATE_LIKE__MATCHING_VALUE_EXPR);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.PREDICATE_LIKE__ESCAPE_VALUE_EXPR);
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((PredicateLike)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_PredicateLike_type") :
+            getString("_UI_PredicateLike_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(PredicateLike.class)) {
+            case SQLQueryModelPackage.PREDICATE_LIKE__NOT_LIKE:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+                return;
+            case SQLQueryModelPackage.PREDICATE_LIKE__PATTERN_VALUE_EXPR:
+            case SQLQueryModelPackage.PREDICATE_LIKE__MATCHING_VALUE_EXPR:
+            case SQLQueryModelPackage.PREDICATE_LIKE__ESCAPE_VALUE_EXPR:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/PredicateQuantifiedItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/PredicateQuantifiedItemProvider.java
new file mode 100644
index 0000000..470d95d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/PredicateQuantifiedItemProvider.java
@@ -0,0 +1,85 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PredicateQuantifiedItemProvider.java,v 1.1 2007/09/25 23:18:02 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantified;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.PredicateQuantified} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PredicateQuantifiedItemProvider
+  extends PredicateItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public PredicateQuantifiedItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((PredicateQuantified)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_PredicateQuantified_type") :
+            getString("_UI_PredicateQuantified_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/PredicateQuantifiedRowSelectItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/PredicateQuantifiedRowSelectItemProvider.java
new file mode 100644
index 0000000..579b04f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/PredicateQuantifiedRowSelectItemProvider.java
@@ -0,0 +1,153 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PredicateQuantifiedRowSelectItemProvider.java,v 1.1 2007/09/25 23:18:02 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PredicateQuantifiedRowSelectItemProvider
+  extends PredicateQuantifiedItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public PredicateQuantifiedRowSelectItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+            addQuantifiedTypePropertyDescriptor(object);
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This adds a property descriptor for the Quantified Type feature.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected void addQuantifiedTypePropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_PredicateQuantifiedRowSelect_quantifiedType_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_PredicateQuantifiedRowSelect_quantifiedType_feature", "_UI_PredicateQuantifiedRowSelect_type"),
+                 SQLQueryModelPackage.Literals.PREDICATE_QUANTIFIED_ROW_SELECT__QUANTIFIED_TYPE,
+                 true,
+                 false,
+                 false,
+                 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+                 null,
+                 null));
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.PREDICATE_QUANTIFIED_ROW_SELECT__QUERY_EXPR);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.PREDICATE_QUANTIFIED_ROW_SELECT__VALUE_EXPR_LIST);
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((PredicateQuantifiedRowSelect)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_PredicateQuantifiedRowSelect_type") :
+            getString("_UI_PredicateQuantifiedRowSelect_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(PredicateQuantifiedRowSelect.class)) {
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_ROW_SELECT__QUANTIFIED_TYPE:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+                return;
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_ROW_SELECT__QUERY_EXPR:
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_ROW_SELECT__VALUE_EXPR_LIST:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/PredicateQuantifiedValueSelectItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/PredicateQuantifiedValueSelectItemProvider.java
new file mode 100644
index 0000000..b9a2afc
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/PredicateQuantifiedValueSelectItemProvider.java
@@ -0,0 +1,177 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PredicateQuantifiedValueSelectItemProvider.java,v 1.1 2007/09/25 23:18:02 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PredicateQuantifiedValueSelectItemProvider
+  extends PredicateQuantifiedItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public PredicateQuantifiedValueSelectItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+            addQuantifiedTypePropertyDescriptor(object);
+            addComparisonOperatorPropertyDescriptor(object);
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This adds a property descriptor for the Quantified Type feature.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected void addQuantifiedTypePropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_PredicateQuantifiedValueSelect_quantifiedType_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_PredicateQuantifiedValueSelect_quantifiedType_feature", "_UI_PredicateQuantifiedValueSelect_type"),
+                 SQLQueryModelPackage.Literals.PREDICATE_QUANTIFIED_VALUE_SELECT__QUANTIFIED_TYPE,
+                 true,
+                 false,
+                 false,
+                 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+                 null,
+                 null));
+    }
+
+    /**
+     * This adds a property descriptor for the Comparison Operator feature.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected void addComparisonOperatorPropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_PredicateQuantifiedValueSelect_comparisonOperator_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_PredicateQuantifiedValueSelect_comparisonOperator_feature", "_UI_PredicateQuantifiedValueSelect_type"),
+                 SQLQueryModelPackage.Literals.PREDICATE_QUANTIFIED_VALUE_SELECT__COMPARISON_OPERATOR,
+                 true,
+                 false,
+                 false,
+                 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+                 null,
+                 null));
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.PREDICATE_QUANTIFIED_VALUE_SELECT__QUERY_EXPR);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.PREDICATE_QUANTIFIED_VALUE_SELECT__VALUE_EXPR);
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((PredicateQuantifiedValueSelect)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_PredicateQuantifiedValueSelect_type") :
+            getString("_UI_PredicateQuantifiedValueSelect_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(PredicateQuantifiedValueSelect.class)) {
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_VALUE_SELECT__QUANTIFIED_TYPE:
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_VALUE_SELECT__COMPARISON_OPERATOR:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+                return;
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_VALUE_SELECT__QUERY_EXPR:
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_VALUE_SELECT__VALUE_EXPR:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ProcedureReferenceItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ProcedureReferenceItemProvider.java
new file mode 100644
index 0000000..8b962c5
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ProcedureReferenceItemProvider.java
@@ -0,0 +1,121 @@
+/**

+ * <copyright>

+ * </copyright>

+ *

+ * $Id$

+ */

+package org.eclipse.datatools.modelbase.sql.query.provider;

+

+

+import java.util.List;

+

+import org.eclipse.datatools.modelbase.sql.query.ProcedureReference;

+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;

+

+import org.eclipse.emf.common.notify.AdapterFactory;

+import org.eclipse.emf.common.notify.Notification;

+

+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;

+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;

+import org.eclipse.emf.edit.provider.IItemLabelProvider;

+import org.eclipse.emf.edit.provider.IItemPropertySource;

+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;

+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;

+

+/**

+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.ProcedureReference} object.

+ * <!-- begin-user-doc -->

+ * <!-- end-user-doc -->

+ * @generated

+ */

+public class ProcedureReferenceItemProvider

+    extends SQLQueryObjectItemProvider

+    implements

+        IEditingDomainItemProvider,

+        IStructuredItemContentProvider,

+        ITreeItemContentProvider,

+        IItemLabelProvider,

+        IItemPropertySource {

+    /**

+     * This constructs an instance from a factory and a notifier.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public ProcedureReferenceItemProvider(AdapterFactory adapterFactory) {

+        super(adapterFactory);

+    }

+

+    /**

+     * This returns the property descriptors for the adapted class.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public List getPropertyDescriptors(Object object) {

+        if (itemPropertyDescriptors == null) {

+            super.getPropertyDescriptors(object);

+

+            addProcedurePropertyDescriptor(object);

+        }

+        return itemPropertyDescriptors;

+    }

+

+    /**

+     * This adds a property descriptor for the Procedure feature.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    protected void addProcedurePropertyDescriptor(Object object) {

+        itemPropertyDescriptors.add

+            (createItemPropertyDescriptor

+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),

+                 getResourceLocator(),

+                 getString("_UI_ProcedureReference_procedure_feature"),

+                 getString("_UI_PropertyDescriptor_description", "_UI_ProcedureReference_procedure_feature", "_UI_ProcedureReference_type"),

+                 SQLQueryModelPackage.Literals.PROCEDURE_REFERENCE__PROCEDURE,

+                 true,

+                 false,

+                 true,

+                 null,

+                 null,

+                 null));

+    }

+

+    /**

+     * This returns ProcedureReference.gif.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public Object getImage(Object object) {

+        return overlayImage(object, getResourceLocator().getImage("full/obj16/ProcedureReference"));

+    }

+

+    /**

+     * This returns the label text for the adapted class.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public String getText(Object object) {

+        String label = ((ProcedureReference)object).getName();

+        return label == null || label.length() == 0 ?

+            getString("_UI_ProcedureReference_type") :

+            getString("_UI_ProcedureReference_type") + " " + label;

+    }

+

+    /**

+     * This handles model notifications by calling {@link #updateChildren} to update any cached

+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public void notifyChanged(Notification notification) {

+        updateChildren(notification);

+        super.notifyChanged(notification);

+    }

+

+}

diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QueryChangeStatementItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QueryChangeStatementItemProvider.java
new file mode 100644
index 0000000..c55d3cd
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QueryChangeStatementItemProvider.java
@@ -0,0 +1,85 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QueryChangeStatementItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryChangeStatement;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.QueryChangeStatement} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class QueryChangeStatementItemProvider
+  extends QueryStatementItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public QueryChangeStatementItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((QueryChangeStatement)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_QueryChangeStatement_type") :
+            getString("_UI_QueryChangeStatement_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QueryCombinedItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QueryCombinedItemProvider.java
new file mode 100644
index 0000000..237c6cd
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QueryCombinedItemProvider.java
@@ -0,0 +1,206 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QueryCombinedItemProvider.java,v 1.2 2008/01/31 02:58:42 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryCombined;
+import org.eclipse.datatools.modelbase.sql.query.QueryCombinedOperator;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.QueryCombined} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class QueryCombinedItemProvider
+  extends QueryExpressionBodyItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public QueryCombinedItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+            addCombinedOperatorPropertyDescriptor(object);
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This adds a property descriptor for the Combined Operator feature.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected void addCombinedOperatorPropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_QueryCombined_combinedOperator_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_QueryCombined_combinedOperator_feature", "_UI_QueryCombined_type"),
+                 SQLQueryModelPackage.Literals.QUERY_COMBINED__COMBINED_OPERATOR,
+                 true,
+                 false,
+                 false,
+                 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+                 null,
+                 null));
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.QUERY_COMBINED__LEFT_QUERY);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.QUERY_COMBINED__RIGHT_QUERY);
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns QueryCombined.gif.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated NOT
+     */
+    public Object getImage(Object object) {
+        // return getResourceLocator().getImage("full/obj16/QueryCombined");
+        Object image = null;
+        
+        if (object instanceof QueryCombined) {
+            QueryCombined queryCombined = (QueryCombined) object;
+            QueryCombinedOperator oper = queryCombined.getCombinedOperator();
+            int enumVal = oper.getValue();
+            switch (enumVal) {
+                case QueryCombinedOperator.EXCEPT: 
+                    image = getResourceLocator().getImage("full/obj16/QueryCombinedOperatorExcept");
+                    break;
+                case QueryCombinedOperator.EXCEPT_ALL:
+                    image = getResourceLocator().getImage("full/obj16/QueryCombinedOperatorExceptAll");
+                    break;
+                case QueryCombinedOperator.INTERSECT:
+                    image = getResourceLocator().getImage("full/obj16/QueryCombinedOperatorIntersect");
+                    break;
+                case QueryCombinedOperator.INTERSECT_ALL:
+                    image = getResourceLocator().getImage("full/obj16/QueryCombinedOperatorIntersectAll");
+                    break;
+                case QueryCombinedOperator.UNION:
+                    image = getResourceLocator().getImage("full/obj16/QueryCombinedOperatorUnion");
+                    break;
+                case QueryCombinedOperator.UNION_ALL:
+                    image = getResourceLocator().getImage("full/obj16/QueryCombinedOperatorUnionAll");
+                    break;
+                default:
+                    break;
+            }
+        }
+        
+        return image;
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated NOT
+     */
+  public String getText(Object object) {
+      QueryCombined queryCombined = (QueryCombined) object;
+      QueryCombinedOperator oper = queryCombined.getCombinedOperator();
+      String operName = oper.toString();
+      if (operName == null || operName.length() == 0) {
+          operName = getString("_UI_QueryCombinedOperator_UNION_literal");
+      }
+      operName = operName.replaceAll("_"," ");
+      return operName;
+//        String label = ((QueryCombined)object).getName();
+//        //label = label.replaceAll("_"," ");
+//        return label == null || label.length() == 0 ?
+//            //getString("_UI_QueryCombined_type") :
+//        		getString("_UI_QueryCombinedOperator_UNION_literal") :
+//           	//getString("_UI_QueryCombined_type") + " " + label;
+//            	label.replaceAll("_"," ");	
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(QueryCombined.class)) {
+            case SQLQueryModelPackage.QUERY_COMBINED__COMBINED_OPERATOR:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+                return;
+            case SQLQueryModelPackage.QUERY_COMBINED__LEFT_QUERY:
+            case SQLQueryModelPackage.QUERY_COMBINED__RIGHT_QUERY:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QueryDeleteStatementItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QueryDeleteStatementItemProvider.java
new file mode 100644
index 0000000..087e39c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QueryDeleteStatementItemProvider.java
@@ -0,0 +1,137 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QueryDeleteStatementItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class QueryDeleteStatementItemProvider
+  extends QueryChangeStatementItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public QueryDeleteStatementItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated NOT
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            //childrenFeatures.add(SQLQueryModelPackage.eINSTANCE.getQueryDeleteStatement_WhereCurrentOfClause());
+            //childrenFeatures.add(SQLQueryModelPackage.eINSTANCE.getQueryDeleteStatement_WhereClause());
+            //childrenFeatures.add(SQLQueryModelPackage.eINSTANCE.getQueryDeleteStatement_TargetTable());
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns QueryDeleteStatement.gif.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Object getImage(Object object) {
+        return overlayImage(object, getResourceLocator().getImage("full/obj16/QueryDeleteStatement"));
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((QueryDeleteStatement)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_QueryDeleteStatement_type") :
+            getString("_UI_QueryDeleteStatement_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(QueryDeleteStatement.class)) {
+            case SQLQueryModelPackage.QUERY_DELETE_STATEMENT__WHERE_CURRENT_OF_CLAUSE:
+            case SQLQueryModelPackage.QUERY_DELETE_STATEMENT__WHERE_CLAUSE:
+            case SQLQueryModelPackage.QUERY_DELETE_STATEMENT__TARGET_TABLE:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QueryExpressionBodyItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QueryExpressionBodyItemProvider.java
new file mode 100644
index 0000000..ffe4820
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QueryExpressionBodyItemProvider.java
@@ -0,0 +1,151 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QueryExpressionBodyItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class QueryExpressionBodyItemProvider
+  extends TableExpressionItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public QueryExpressionBodyItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+            addRowFetchLimitPropertyDescriptor(object);
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This adds a property descriptor for the Row Fetch Limit feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected void addRowFetchLimitPropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_QueryExpressionBody_rowFetchLimit_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_QueryExpressionBody_rowFetchLimit_feature", "_UI_QueryExpressionBody_type"),
+                 SQLQueryModelPackage.Literals.QUERY_EXPRESSION_BODY__ROW_FETCH_LIMIT,
+                 true,
+                 false,
+                 false,
+                 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+                 null,
+                 null));
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.QUERY_EXPRESSION_BODY__SORT_SPEC_LIST);
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((QueryExpressionBody)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_QueryExpressionBody_type") :
+            getString("_UI_QueryExpressionBody_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(QueryExpressionBody.class)) {
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__ROW_FETCH_LIMIT:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+                return;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__SORT_SPEC_LIST:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QueryExpressionRootItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QueryExpressionRootItemProvider.java
new file mode 100644
index 0000000..5ddd0ca
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QueryExpressionRootItemProvider.java
@@ -0,0 +1,127 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QueryExpressionRootItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class QueryExpressionRootItemProvider
+  extends SQLQueryObjectItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public QueryExpressionRootItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.QUERY_EXPRESSION_ROOT__WITH_CLAUSE);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.QUERY_EXPRESSION_ROOT__QUERY);
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((QueryExpressionRoot)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_QueryExpressionRoot_type") :
+            getString("_UI_QueryExpressionRoot_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(QueryExpressionRoot.class)) {
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__WITH_CLAUSE:
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__QUERY:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QueryInsertStatementItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QueryInsertStatementItemProvider.java
new file mode 100644
index 0000000..ddfe2be
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QueryInsertStatementItemProvider.java
@@ -0,0 +1,186 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QueryInsertStatementItemProvider.java,v 1.1 2007/09/25 23:18:02 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot;
+import org.eclipse.datatools.modelbase.sql.query.QueryInsertStatement;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.QueryInsertStatement} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class QueryInsertStatementItemProvider
+  extends QueryChangeStatementItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public QueryInsertStatementItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+            addTargetColumnListPropertyDescriptor(object);
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This adds a property descriptor for the Target Column List feature.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected void addTargetColumnListPropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_QueryInsertStatement_targetColumnList_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_QueryInsertStatement_targetColumnList_feature", "_UI_QueryInsertStatement_type"),
+                 SQLQueryModelPackage.Literals.QUERY_INSERT_STATEMENT__TARGET_COLUMN_LIST,
+                 true,
+                 false,
+                 false,
+                 null,
+                 null,
+                 null));
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated NOT
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            //childrenFeatures.add(SQLQueryModelPackage.eINSTANCE.getQueryInsertStatement_SourceQuery());
+            childrenFeatures.add(SQLQueryModelPackage.eINSTANCE.getQueryExpressionRoot_Query());
+            
+            //childrenFeatures.add(SQLQueryModelPackage.eINSTANCE.getQueryInsertStatement_SourceValuesRowList());
+            //childrenFeatures.add(SQLQueryModelPackage.eINSTANCE.getQueryInsertStatement_TargetTable());
+        }
+        return childrenFeatures;
+    }
+  /**
+   * This implements {@link ITreeItemContentProvider#getChildren ITreeItemContentProvider.getChildren}. If children are
+   * already cached in a {@link ChildrenStore}, they are returned. Otherwise, children are collected from the features
+   * returned by {@link #getChildrenFeatures getChildrenFeatures}.  The collected children may or may not be cached,
+   * depending on the result of {@link #createChildrenStore createChildrenStore}; by default, no store is returned if
+   * {@link #getChildrenFeatures getChildrenFeatures} returns only containment references. All children are optionally
+   * {@link #wrap wrapped} before being cached and returned. Subclasses may override {@link #createWrapper
+   * createWrapper} to specify when and with what to wrap children.
+     * @generated NOT
+   */
+  public Collection getChildren(Object object)
+  {
+  	List children = new ArrayList() ;
+  	QueryInsertStatement insertStmt = (QueryInsertStatement)object ;
+  	QueryExpressionRoot qRoot = insertStmt.getSourceQuery();
+  	if (qRoot != null) {
+  		children.addAll(qRoot.getWithClause());
+  		children.add(qRoot.getQuery()) ;
+  	}
+  	return children ;
+  }  
+    /**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns QueryInsertStatement.gif.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Object getImage(Object object) {
+        return overlayImage(object, getResourceLocator().getImage("full/obj16/QueryInsertStatement"));
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((QueryInsertStatement)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_QueryInsertStatement_type") :
+            getString("_UI_QueryInsertStatement_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(QueryInsertStatement.class)) {
+            case SQLQueryModelPackage.QUERY_INSERT_STATEMENT__SOURCE_QUERY:
+            case SQLQueryModelPackage.QUERY_INSERT_STATEMENT__SOURCE_VALUES_ROW_LIST:
+            case SQLQueryModelPackage.QUERY_INSERT_STATEMENT__TARGET_TABLE:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QueryMergeStatementItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QueryMergeStatementItemProvider.java
new file mode 100644
index 0000000..b49ce0f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QueryMergeStatementItemProvider.java
@@ -0,0 +1,129 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QueryMergeStatementItemProvider.java,v 1.1 2007/09/25 23:18:02 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryMergeStatement;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.QueryMergeStatement} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class QueryMergeStatementItemProvider
+  extends QueryChangeStatementItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public QueryMergeStatementItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.QUERY_MERGE_STATEMENT__TARGET_TABLE);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.QUERY_MERGE_STATEMENT__SOURCE_TABLE);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.QUERY_MERGE_STATEMENT__ON_CONDITION);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.QUERY_MERGE_STATEMENT__OPERATION_SPEC_LIST);
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((QueryMergeStatement)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_QueryMergeStatement_type") :
+            getString("_UI_QueryMergeStatement_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(QueryMergeStatement.class)) {
+            case SQLQueryModelPackage.QUERY_MERGE_STATEMENT__TARGET_TABLE:
+            case SQLQueryModelPackage.QUERY_MERGE_STATEMENT__SOURCE_TABLE:
+            case SQLQueryModelPackage.QUERY_MERGE_STATEMENT__ON_CONDITION:
+            case SQLQueryModelPackage.QUERY_MERGE_STATEMENT__OPERATION_SPEC_LIST:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QueryNestedItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QueryNestedItemProvider.java
new file mode 100644
index 0000000..24f17e2
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QueryNestedItemProvider.java
@@ -0,0 +1,127 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryNested;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.QueryNested} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class QueryNestedItemProvider
+    extends QueryExpressionBodyItemProvider
+    implements	
+        IEditingDomainItemProvider,	
+        IStructuredItemContentProvider,	
+        ITreeItemContentProvider,	
+        IItemLabelProvider,	
+        IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryNestedItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.QUERY_NESTED__NESTED_QUERY);
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String getText(Object object) {
+        String label = ((QueryNested)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_QueryNested_type") :
+            getString("_UI_QueryNested_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(QueryNested.class)) {
+            case SQLQueryModelPackage.QUERY_NESTED__NESTED_QUERY:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QueryResultSpecificationItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QueryResultSpecificationItemProvider.java
new file mode 100644
index 0000000..f0cad80
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QueryResultSpecificationItemProvider.java
@@ -0,0 +1,85 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QueryResultSpecificationItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryResultSpecification;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.QueryResultSpecification} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class QueryResultSpecificationItemProvider
+  extends SQLQueryObjectItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public QueryResultSpecificationItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((QueryResultSpecification)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_QueryResultSpecification_type") :
+            getString("_UI_QueryResultSpecification_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QuerySearchConditionItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QuerySearchConditionItemProvider.java
new file mode 100644
index 0000000..99e9987
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QuerySearchConditionItemProvider.java
@@ -0,0 +1,118 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QuerySearchConditionItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class QuerySearchConditionItemProvider
+  extends SQLQueryObjectItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public QuerySearchConditionItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+            addNegatedConditionPropertyDescriptor(object);
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This adds a property descriptor for the Negated Condition feature.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected void addNegatedConditionPropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_QuerySearchCondition_negatedCondition_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_QuerySearchCondition_negatedCondition_feature", "_UI_QuerySearchCondition_type"),
+                 SQLQueryModelPackage.Literals.QUERY_SEARCH_CONDITION__NEGATED_CONDITION,
+                 true,
+                 false,
+                 false,
+                 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+                 null,
+                 null));
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((QuerySearchCondition)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_QuerySearchCondition_type") :
+            getString("_UI_QuerySearchCondition_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(QuerySearchCondition.class)) {
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__NEGATED_CONDITION:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QuerySelectItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QuerySelectItemProvider.java
new file mode 100644
index 0000000..5aeecec
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QuerySelectItemProvider.java
@@ -0,0 +1,171 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QuerySelectItemProvider.java,v 1.1 2007/09/25 23:18:02 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.QuerySelect} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class QuerySelectItemProvider
+  extends QueryExpressionBodyItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public QuerySelectItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+            addDistinctPropertyDescriptor(object);
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This adds a property descriptor for the Distinct feature.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected void addDistinctPropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_QuerySelect_distinct_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_QuerySelect_distinct_feature", "_UI_QuerySelect_type"),
+                 SQLQueryModelPackage.Literals.QUERY_SELECT__DISTINCT,
+                 true,
+                 false,
+                 false,
+                 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+                 null,
+                 null));
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated NOT
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            //childrenFeatures.add(SQLQueryModelPackage.eINSTANCE.getQuerySelect_HavingClause());
+            //childrenFeatures.add(SQLQueryModelPackage.eINSTANCE.getQuerySelect_WhereClause());
+            //childrenFeatures.add(SQLQueryModelPackage.eINSTANCE.getQuerySelect_GroupByClause());
+            //childrenFeatures.add(SQLQueryModelPackage.eINSTANCE.getQuerySelect_SelectClause());
+            //childrenFeatures.add(SQLQueryModelPackage.eINSTANCE.getQuerySelect_FromClause());
+            //childrenFeatures.add(SQLQueryModelPackage.eINSTANCE.getQuerySelect_IntoClause());
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns QuerySelect.gif.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Object getImage(Object object) {
+        return overlayImage(object, getResourceLocator().getImage("full/obj16/QuerySelect"));
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((QuerySelect)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_QuerySelect_type") :
+            getString("_UI_QuerySelect_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(QuerySelect.class)) {
+            case SQLQueryModelPackage.QUERY_SELECT__DISTINCT:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+                return;
+            case SQLQueryModelPackage.QUERY_SELECT__HAVING_CLAUSE:
+            case SQLQueryModelPackage.QUERY_SELECT__WHERE_CLAUSE:
+            case SQLQueryModelPackage.QUERY_SELECT__GROUP_BY_CLAUSE:
+            case SQLQueryModelPackage.QUERY_SELECT__SELECT_CLAUSE:
+            case SQLQueryModelPackage.QUERY_SELECT__FROM_CLAUSE:
+            case SQLQueryModelPackage.QUERY_SELECT__INTO_CLAUSE:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QuerySelectStatementItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QuerySelectStatementItemProvider.java
new file mode 100644
index 0000000..7cedc83
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QuerySelectStatementItemProvider.java
@@ -0,0 +1,167 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QuerySelectStatementItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelectStatement;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.QuerySelectStatement} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class QuerySelectStatementItemProvider
+  extends QueryStatementItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public QuerySelectStatementItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated NOT
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            //childrenFeatures.add(SQLQueryModelPackage.eINSTANCE.getQuerySelectStatement_QueryExpr());
+            //childrenFeatures.add(SQLQueryModelPackage.eINSTANCE.getQuerySelectStatement_OrderByClause());
+            
+            //QMP-nb
+            childrenFeatures.add(SQLQueryModelPackage.eINSTANCE.getQueryExpressionRoot_WithClause());
+            childrenFeatures.add(SQLQueryModelPackage.eINSTANCE.getQueryExpressionRoot_Query());
+        }
+        return childrenFeatures;
+    }
+
+  /**
+   * This implements {@link ITreeItemContentProvider#getChildren ITreeItemContentProvider.getChildren}. If children are
+   * already cached in a {@link ChildrenStore}, they are returned. Otherwise, children are collected from the features
+   * returned by {@link #getChildrenFeatures getChildrenFeatures}.  The collected children may or may not be cached,
+   * depending on the result of {@link #createChildrenStore createChildrenStore}; by default, no store is returned if
+   * {@link #getChildrenFeatures getChildrenFeatures} returns only containment references. All children are optionally
+   * {@link #wrap wrapped} before being cached and returned. Subclasses may override {@link #createWrapper
+   * createWrapper} to specify when and with what to wrap children.
+     * @generated NOT
+   */
+  public Collection getChildren(Object object)
+  {
+  	List children = new ArrayList() ;
+  	QuerySelectStatement selectStmt = (QuerySelectStatement)object ;
+  	QueryExpressionRoot qRoot = selectStmt.getQueryExpr() ;
+  	if (qRoot != null) {
+  		children.addAll(qRoot.getWithClause());
+  		if ((!(qRoot.getQuery() instanceof QuerySelect)) || children.size() > 0) {
+  			children.add(qRoot.getQuery()) ;
+  		}
+  		
+  	}
+  	return children ;
+  }  
+    /**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns QuerySelectStatement.gif.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Object getImage(Object object) {
+        return overlayImage(object, getResourceLocator().getImage("full/obj16/QuerySelectStatement"));
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((QuerySelectStatement)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_QuerySelectStatement_type") :
+            getString("_UI_QuerySelectStatement_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(QuerySelectStatement.class)) {
+            case SQLQueryModelPackage.QUERY_SELECT_STATEMENT__QUERY_EXPR:
+            case SQLQueryModelPackage.QUERY_SELECT_STATEMENT__ORDER_BY_CLAUSE:
+            case SQLQueryModelPackage.QUERY_SELECT_STATEMENT__UPDATABILITY_EXPR:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QueryStatementItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QueryStatementItemProvider.java
new file mode 100644
index 0000000..ebefabf
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QueryStatementItemProvider.java
@@ -0,0 +1,85 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QueryStatementItemProvider.java,v 1.1 2007/09/25 23:18:02 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryStatement;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.QueryStatement} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class QueryStatementItemProvider
+  extends SQLQueryObjectItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public QueryStatementItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((QueryStatement)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_QueryStatement_type") :
+            getString("_UI_QueryStatement_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QueryUpdateStatementItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QueryUpdateStatementItemProvider.java
new file mode 100644
index 0000000..de4bee0
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QueryUpdateStatementItemProvider.java
@@ -0,0 +1,172 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QueryUpdateStatementItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSource;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceQuery;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class QueryUpdateStatementItemProvider
+  extends QueryChangeStatementItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public QueryUpdateStatementItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated NOT
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.eINSTANCE.getUpdateSourceQuery_QueryExpr());
+            //childrenFeatures.add(SQLQueryModelPackage.eINSTANCE.getQueryUpdateStatement_AssignmentClause());
+            //childrenFeatures.add(SQLQueryModelPackage.eINSTANCE.getQueryUpdateStatement_WhereCurrentOfClause());
+            //childrenFeatures.add(SQLQueryModelPackage.eINSTANCE.getQueryUpdateStatement_WhereClause());
+            //childrenFeatures.add(SQLQueryModelPackage.eINSTANCE.getQueryUpdateStatement_TargetTable());
+        }
+        return childrenFeatures;
+    }
+  
+  /**
+   * This implements {@link ITreeItemContentProvider#getChildren ITreeItemContentProvider.getChildren}. If children are
+   * already cached in a {@link ChildrenStore}, they are returned. Otherwise, children are collected from the features
+   * returned by {@link #getChildrenFeatures getChildrenFeatures}.  The collected children may or may not be cached,
+   * depending on the result of {@link #createChildrenStore createChildrenStore}; by default, no store is returned if
+   * {@link #getChildrenFeatures getChildrenFeatures} returns only containment references. All children are optionally
+   * {@link #wrap wrapped} before being cached and returned. Subclasses may override {@link #createWrapper
+   * createWrapper} to specify when and with what to wrap children.
+     * @generated NOT
+   */
+  public Collection getChildren(Object object)
+  {
+  	List children = new ArrayList() ;
+  	QueryUpdateStatement updateStmt = (QueryUpdateStatement)object ;
+  	Iterator iter = updateStmt.getAssignmentClause().iterator();
+  	while (iter.hasNext()) {
+  		UpdateAssignmentExpression assignExpr = (UpdateAssignmentExpression)iter.next();
+  		UpdateSource updateSource = assignExpr.getUpdateSource(); 
+  		if (updateSource instanceof UpdateSourceQuery) {
+  			children.add(((UpdateSourceQuery)updateSource).getQueryExpr()) ;
+  		}
+  	}
+  
+  	return children ;
+  }  
+  
+
+    /**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns QueryUpdateStatement.gif.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Object getImage(Object object) {
+        return overlayImage(object, getResourceLocator().getImage("full/obj16/QueryUpdateStatement"));
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((QueryUpdateStatement)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_QueryUpdateStatement_type") :
+            getString("_UI_QueryUpdateStatement_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(QueryUpdateStatement.class)) {
+            case SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__ASSIGNMENT_CLAUSE:
+            case SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__WHERE_CURRENT_OF_CLAUSE:
+            case SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__WHERE_CLAUSE:
+            case SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__TARGET_TABLE:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QueryValueExpressionItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QueryValueExpressionItemProvider.java
new file mode 100644
index 0000000..16e642f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QueryValueExpressionItemProvider.java
@@ -0,0 +1,151 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QueryValueExpressionItemProvider.java,v 1.1 2007/09/25 23:18:02 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class QueryValueExpressionItemProvider
+  extends SQLQueryObjectItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public QueryValueExpressionItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+            addUnaryOperatorPropertyDescriptor(object);
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This adds a property descriptor for the Unary Operator feature.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected void addUnaryOperatorPropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_QueryValueExpression_unaryOperator_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_QueryValueExpression_unaryOperator_feature", "_UI_QueryValueExpression_type"),
+                 SQLQueryModelPackage.Literals.QUERY_VALUE_EXPRESSION__UNARY_OPERATOR,
+                 true,
+                 false,
+                 false,
+                 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+                 null,
+                 null));
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.QUERY_VALUE_EXPRESSION__DATA_TYPE);
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((QueryValueExpression)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_QueryValueExpression_type") :
+            getString("_UI_QueryValueExpression_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(QueryValueExpression.class)) {
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__UNARY_OPERATOR:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DATA_TYPE:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QueryValuesItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QueryValuesItemProvider.java
new file mode 100644
index 0000000..ce48aca
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/QueryValuesItemProvider.java
@@ -0,0 +1,133 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QueryValuesItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryValues;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.QueryValues} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class QueryValuesItemProvider
+  extends QueryExpressionBodyItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public QueryValuesItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.QUERY_VALUES__VALUES_ROW_LIST);
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns QueryValues.gif.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Object getImage(Object object) {
+        return overlayImage(object, getResourceLocator().getImage("full/obj16/QueryValues"));
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((QueryValues)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_QueryValues_type") :
+            getString("_UI_QueryValues_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(QueryValues.class)) {
+            case SQLQueryModelPackage.QUERY_VALUES__VALUES_ROW_LIST:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ResultColumnItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ResultColumnItemProvider.java
new file mode 100644
index 0000000..351dbf1
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ResultColumnItemProvider.java
@@ -0,0 +1,148 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ResultColumnItemProvider.java,v 1.1 2007/09/25 23:18:02 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.ResultColumn} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ResultColumnItemProvider
+  extends QueryResultSpecificationItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public ResultColumnItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+            addOrderByResultColPropertyDescriptor(object);
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This adds a property descriptor for the Order By Result Col feature.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected void addOrderByResultColPropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_ResultColumn_orderByResultCol_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_ResultColumn_orderByResultCol_feature", "_UI_ResultColumn_type"),
+                 SQLQueryModelPackage.Literals.RESULT_COLUMN__ORDER_BY_RESULT_COL,
+                 true,
+                 false,
+                 false,
+                 null,
+                 null,
+                 null));
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.RESULT_COLUMN__VALUE_EXPR);
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((ResultColumn)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_ResultColumn_type") :
+            getString("_UI_ResultColumn_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(ResultColumn.class)) {
+            case SQLQueryModelPackage.RESULT_COLUMN__VALUE_EXPR:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ResultTableAllColumnsItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ResultTableAllColumnsItemProvider.java
new file mode 100644
index 0000000..896d4bb
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ResultTableAllColumnsItemProvider.java
@@ -0,0 +1,111 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ResultTableAllColumnsItemProvider.java,v 1.1 2007/09/25 23:18:02 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.ResultTableAllColumns;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.ResultTableAllColumns} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ResultTableAllColumnsItemProvider
+  extends QueryResultSpecificationItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public ResultTableAllColumnsItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+            addTableExprPropertyDescriptor(object);
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This adds a property descriptor for the Table Expr feature.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected void addTableExprPropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_ResultTableAllColumns_tableExpr_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_ResultTableAllColumns_tableExpr_feature", "_UI_ResultTableAllColumns_type"),
+                 SQLQueryModelPackage.Literals.RESULT_TABLE_ALL_COLUMNS__TABLE_EXPR,
+                 true,
+                 false,
+                 false,
+                 null,
+                 null,
+                 null));
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((ResultTableAllColumns)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_ResultTableAllColumns_type") :
+            getString("_UI_ResultTableAllColumns_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/SQLQueryEditPlugin.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/SQLQueryEditPlugin.java
new file mode 100644
index 0000000..8738707
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/SQLQueryEditPlugin.java
@@ -0,0 +1,100 @@
+/*******************************************************************************
+ * Copyright © 2000, 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+import org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin;
+import org.eclipse.emf.common.EMFPlugin;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.provider.EcoreEditPlugin;
+
+
+/**
+ * This is the central singleton for the SQLQueryModel edit plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public final class SQLQueryEditPlugin extends EMFPlugin {
+    /**
+     * Keep track of the singleton.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public static final SQLQueryEditPlugin INSTANCE = new SQLQueryEditPlugin();
+
+    /**
+     * Keep track of the singleton.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  private static Implementation plugin;
+
+    /**
+     * Create the instance.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public SQLQueryEditPlugin() {
+        super
+          (new ResourceLocator [] {
+             SqlmodelEditPlugin.INSTANCE,
+             EcoreEditPlugin.INSTANCE,
+           });
+    }
+
+    /**
+     * Returns the singleton instance of the Eclipse plugin.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @return the singleton instance.
+     * @generated
+     */
+  public ResourceLocator getPluginResourceLocator() {
+        return plugin;
+    }
+
+    /**
+     * Returns the singleton instance of the Eclipse plugin.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @return the singleton instance.
+     * @generated
+     */
+  public static Implementation getPlugin() {
+        return plugin;
+    }
+
+    /**
+     * The actual implementation of the Eclipse <b>Plugin</b>.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public static class Implementation extends EclipsePlugin {
+        /**
+         * Creates an instance.
+         * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+         * @generated
+         */
+    public Implementation() {
+            super();
+
+            // Remember the static instance.
+            //
+            plugin = this;
+        }
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/SQLQueryModelItemProviderAdapterFactory.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/SQLQueryModelItemProviderAdapterFactory.java
new file mode 100644
index 0000000..e75940d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/SQLQueryModelItemProviderAdapterFactory.java
@@ -0,0 +1,1836 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SQLQueryModelItemProviderAdapterFactory.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.util.SQLQueryModelAdapterFactory;
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.edit.provider.ChangeNotifier;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.IChangeNotifier;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.INotifyChangedListener;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the factory that is used to provide the interfaces needed to support Viewers.
+ * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
+ * The adapters also support Eclipse property sheets.
+ * Note that most of the adapters are shared among multiple instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SQLQueryModelItemProviderAdapterFactory extends SQLQueryModelAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier {
+    /**
+     * This keeps track of the root adapter factory that delegates to this adapter factory.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected ComposedAdapterFactory parentAdapterFactory;
+
+    /**
+     * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected IChangeNotifier changeNotifier = new ChangeNotifier();
+
+    /**
+     * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected Collection supportedTypes = new ArrayList();
+
+    /**
+     * This constructs an instance.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public SQLQueryModelItemProviderAdapterFactory() {
+        supportedTypes.add(IEditingDomainItemProvider.class);
+        supportedTypes.add(IStructuredItemContentProvider.class);
+        supportedTypes.add(ITreeItemContentProvider.class);
+        supportedTypes.add(IItemLabelProvider.class);
+        supportedTypes.add(IItemPropertySource.class);
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected QueryDeleteStatementItemProvider queryDeleteStatementItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createQueryDeleteStatementAdapter() {
+        if (queryDeleteStatementItemProvider == null) {
+            queryDeleteStatementItemProvider = new QueryDeleteStatementItemProvider(this);
+        }
+
+        return queryDeleteStatementItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.QueryInsertStatement} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected QueryInsertStatementItemProvider queryInsertStatementItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.QueryInsertStatement}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createQueryInsertStatementAdapter() {
+        if (queryInsertStatementItemProvider == null) {
+            queryInsertStatementItemProvider = new QueryInsertStatementItemProvider(this);
+        }
+
+        return queryInsertStatementItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.QuerySelectStatement} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected QuerySelectStatementItemProvider querySelectStatementItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.QuerySelectStatement}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createQuerySelectStatementAdapter() {
+        if (querySelectStatementItemProvider == null) {
+            querySelectStatementItemProvider = new QuerySelectStatementItemProvider(this);
+        }
+
+        return querySelectStatementItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected QueryUpdateStatementItemProvider queryUpdateStatementItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createQueryUpdateStatementAdapter() {
+        if (queryUpdateStatementItemProvider == null) {
+            queryUpdateStatementItemProvider = new QueryUpdateStatementItemProvider(this);
+        }
+
+        return queryUpdateStatementItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected UpdateAssignmentExpressionItemProvider updateAssignmentExpressionItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createUpdateAssignmentExpressionAdapter() {
+        if (updateAssignmentExpressionItemProvider == null) {
+            updateAssignmentExpressionItemProvider = new UpdateAssignmentExpressionItemProvider(this);
+        }
+
+        return updateAssignmentExpressionItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.CursorReference} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected CursorReferenceItemProvider cursorReferenceItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.CursorReference}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createCursorReferenceAdapter() {
+        if (cursorReferenceItemProvider == null) {
+            cursorReferenceItemProvider = new CursorReferenceItemProvider(this);
+        }
+
+        return cursorReferenceItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected QueryExpressionRootItemProvider queryExpressionRootItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createQueryExpressionRootAdapter() {
+        if (queryExpressionRootItemProvider == null) {
+            queryExpressionRootItemProvider = new QueryExpressionRootItemProvider(this);
+        }
+
+        return queryExpressionRootItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.ValuesRow} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected ValuesRowItemProvider valuesRowItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.ValuesRow}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createValuesRowAdapter() {
+        if (valuesRowItemProvider == null) {
+            valuesRowItemProvider = new ValuesRowItemProvider(this);
+        }
+
+        return valuesRowItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.QueryValues} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected QueryValuesItemProvider queryValuesItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.QueryValues}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createQueryValuesAdapter() {
+        if (queryValuesItemProvider == null) {
+            queryValuesItemProvider = new QueryValuesItemProvider(this);
+        }
+
+        return queryValuesItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.TableJoined} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected TableJoinedItemProvider tableJoinedItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.TableJoined}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createTableJoinedAdapter() {
+        if (tableJoinedItemProvider == null) {
+            tableJoinedItemProvider = new TableJoinedItemProvider(this);
+        }
+
+        return tableJoinedItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.WithTableSpecification} instances.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	protected WithTableSpecificationItemProvider withTableSpecificationItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.WithTableSpecification}.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Adapter createWithTableSpecificationAdapter() {
+        if (withTableSpecificationItemProvider == null) {
+            withTableSpecificationItemProvider = new WithTableSpecificationItemProvider(this);
+        }
+
+        return withTableSpecificationItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected SearchConditionCombinedItemProvider searchConditionCombinedItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createSearchConditionCombinedAdapter() {
+        if (searchConditionCombinedItemProvider == null) {
+            searchConditionCombinedItemProvider = new SearchConditionCombinedItemProvider(this);
+        }
+
+        return searchConditionCombinedItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected OrderByValueExpressionItemProvider orderByValueExpressionItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createOrderByValueExpressionAdapter() {
+        if (orderByValueExpressionItemProvider == null) {
+            orderByValueExpressionItemProvider = new OrderByValueExpressionItemProvider(this);
+        }
+
+        return orderByValueExpressionItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.QueryCombined} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected QueryCombinedItemProvider queryCombinedItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.QueryCombined}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createQueryCombinedAdapter() {
+        if (queryCombinedItemProvider == null) {
+            queryCombinedItemProvider = new QueryCombinedItemProvider(this);
+        }
+
+        return queryCombinedItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.QuerySelect} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected QuerySelectItemProvider querySelectItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.QuerySelect}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createQuerySelectAdapter() {
+        if (querySelectItemProvider == null) {
+            querySelectItemProvider = new QuerySelectItemProvider(this);
+        }
+
+        return querySelectItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.ResultTableAllColumns} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected ResultTableAllColumnsItemProvider resultTableAllColumnsItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.ResultTableAllColumns}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createResultTableAllColumnsAdapter() {
+        if (resultTableAllColumnsItemProvider == null) {
+            resultTableAllColumnsItemProvider = new ResultTableAllColumnsItemProvider(this);
+        }
+
+        return resultTableAllColumnsItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.ResultColumn} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected ResultColumnItemProvider resultColumnItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.ResultColumn}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createResultColumnAdapter() {
+        if (resultColumnItemProvider == null) {
+            resultColumnItemProvider = new ResultColumnItemProvider(this);
+        }
+
+        return resultColumnItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.PredicateBasic} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected PredicateBasicItemProvider predicateBasicItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.PredicateBasic}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createPredicateBasicAdapter() {
+        if (predicateBasicItemProvider == null) {
+            predicateBasicItemProvider = new PredicateBasicItemProvider(this);
+        }
+
+        return predicateBasicItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.PredicateBetween} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected PredicateBetweenItemProvider predicateBetweenItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.PredicateBetween}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createPredicateBetweenAdapter() {
+        if (predicateBetweenItemProvider == null) {
+            predicateBetweenItemProvider = new PredicateBetweenItemProvider(this);
+        }
+
+        return predicateBetweenItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.PredicateExists} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected PredicateExistsItemProvider predicateExistsItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.PredicateExists}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createPredicateExistsAdapter() {
+        if (predicateExistsItemProvider == null) {
+            predicateExistsItemProvider = new PredicateExistsItemProvider(this);
+        }
+
+        return predicateExistsItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.PredicateLike} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected PredicateLikeItemProvider predicateLikeItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.PredicateLike}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createPredicateLikeAdapter() {
+        if (predicateLikeItemProvider == null) {
+            predicateLikeItemProvider = new PredicateLikeItemProvider(this);
+        }
+
+        return predicateLikeItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.PredicateIsNull} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected PredicateIsNullItemProvider predicateIsNullItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.PredicateIsNull}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createPredicateIsNullAdapter() {
+        if (predicateIsNullItemProvider == null) {
+            predicateIsNullItemProvider = new PredicateIsNullItemProvider(this);
+        }
+
+        return predicateIsNullItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected PredicateQuantifiedValueSelectItemProvider predicateQuantifiedValueSelectItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createPredicateQuantifiedValueSelectAdapter() {
+        if (predicateQuantifiedValueSelectItemProvider == null) {
+            predicateQuantifiedValueSelectItemProvider = new PredicateQuantifiedValueSelectItemProvider(this);
+        }
+
+        return predicateQuantifiedValueSelectItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected PredicateQuantifiedRowSelectItemProvider predicateQuantifiedRowSelectItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createPredicateQuantifiedRowSelectAdapter() {
+        if (predicateQuantifiedRowSelectItemProvider == null) {
+            predicateQuantifiedRowSelectItemProvider = new PredicateQuantifiedRowSelectItemProvider(this);
+        }
+
+        return predicateQuantifiedRowSelectItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected PredicateInValueSelectItemProvider predicateInValueSelectItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createPredicateInValueSelectAdapter() {
+        if (predicateInValueSelectItemProvider == null) {
+            predicateInValueSelectItemProvider = new PredicateInValueSelectItemProvider(this);
+        }
+
+        return predicateInValueSelectItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.PredicateInValueList} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected PredicateInValueListItemProvider predicateInValueListItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.PredicateInValueList}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createPredicateInValueListAdapter() {
+        if (predicateInValueListItemProvider == null) {
+            predicateInValueListItemProvider = new PredicateInValueListItemProvider(this);
+        }
+
+        return predicateInValueListItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected PredicateInValueRowSelectItemProvider predicateInValueRowSelectItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createPredicateInValueRowSelectAdapter() {
+        if (predicateInValueRowSelectItemProvider == null) {
+            predicateInValueRowSelectItemProvider = new PredicateInValueRowSelectItemProvider(this);
+        }
+
+        return predicateInValueRowSelectItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionSimple} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected ValueExpressionSimpleItemProvider valueExpressionSimpleItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionSimple}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createValueExpressionSimpleAdapter() {
+        if (valueExpressionSimpleItemProvider == null) {
+            valueExpressionSimpleItemProvider = new ValueExpressionSimpleItemProvider(this);
+        }
+
+        return valueExpressionSimpleItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected ValueExpressionColumnItemProvider valueExpressionColumnItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createValueExpressionColumnAdapter() {
+        if (valueExpressionColumnItemProvider == null) {
+            valueExpressionColumnItemProvider = new ValueExpressionColumnItemProvider(this);
+        }
+
+        return valueExpressionColumnItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionVariable} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected ValueExpressionVariableItemProvider valueExpressionVariableItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionVariable}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createValueExpressionVariableAdapter() {
+        if (valueExpressionVariableItemProvider == null) {
+            valueExpressionVariableItemProvider = new ValueExpressionVariableItemProvider(this);
+        }
+
+        return valueExpressionVariableItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionScalarSelect} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected ValueExpressionScalarSelectItemProvider valueExpressionScalarSelectItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionScalarSelect}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createValueExpressionScalarSelectAdapter() {
+        if (valueExpressionScalarSelectItemProvider == null) {
+            valueExpressionScalarSelectItemProvider = new ValueExpressionScalarSelectItemProvider(this);
+        }
+
+        return valueExpressionScalarSelectItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected ValueExpressionLabeledDurationItemProvider valueExpressionLabeledDurationItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createValueExpressionLabeledDurationAdapter() {
+        if (valueExpressionLabeledDurationItemProvider == null) {
+            valueExpressionLabeledDurationItemProvider = new ValueExpressionLabeledDurationItemProvider(this);
+        }
+
+        return valueExpressionLabeledDurationItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected ValueExpressionCastItemProvider valueExpressionCastItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createValueExpressionCastAdapter() {
+        if (valueExpressionCastItemProvider == null) {
+            valueExpressionCastItemProvider = new ValueExpressionCastItemProvider(this);
+        }
+
+        return valueExpressionCastItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionNullValue} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected ValueExpressionNullValueItemProvider valueExpressionNullValueItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionNullValue}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createValueExpressionNullValueAdapter() {
+        if (valueExpressionNullValueItemProvider == null) {
+            valueExpressionNullValueItemProvider = new ValueExpressionNullValueItemProvider(this);
+        }
+
+        return valueExpressionNullValueItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionDefaultValue} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected ValueExpressionDefaultValueItemProvider valueExpressionDefaultValueItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionDefaultValue}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createValueExpressionDefaultValueAdapter() {
+        if (valueExpressionDefaultValueItemProvider == null) {
+            valueExpressionDefaultValueItemProvider = new ValueExpressionDefaultValueItemProvider(this);
+        }
+
+        return valueExpressionDefaultValueItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected ValueExpressionFunctionItemProvider valueExpressionFunctionItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createValueExpressionFunctionAdapter() {
+        if (valueExpressionFunctionItemProvider == null) {
+            valueExpressionFunctionItemProvider = new ValueExpressionFunctionItemProvider(this);
+        }
+
+        return valueExpressionFunctionItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected ValueExpressionCombinedItemProvider valueExpressionCombinedItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createValueExpressionCombinedAdapter() {
+        if (valueExpressionCombinedItemProvider == null) {
+            valueExpressionCombinedItemProvider = new ValueExpressionCombinedItemProvider(this);
+        }
+
+        return valueExpressionCombinedItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.GroupingSets} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected GroupingSetsItemProvider groupingSetsItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.GroupingSets}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createGroupingSetsAdapter() {
+        if (groupingSetsItemProvider == null) {
+            groupingSetsItemProvider = new GroupingSetsItemProvider(this);
+        }
+
+        return groupingSetsItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementSublist} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected GroupingSetsElementSublistItemProvider groupingSetsElementSublistItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementSublist}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createGroupingSetsElementSublistAdapter() {
+        if (groupingSetsElementSublistItemProvider == null) {
+            groupingSetsElementSublistItemProvider = new GroupingSetsElementSublistItemProvider(this);
+        }
+
+        return groupingSetsElementSublistItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementExpression} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected GroupingSetsElementExpressionItemProvider groupingSetsElementExpressionItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementExpression}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createGroupingSetsElementExpressionAdapter() {
+        if (groupingSetsElementExpressionItemProvider == null) {
+            groupingSetsElementExpressionItemProvider = new GroupingSetsElementExpressionItemProvider(this);
+        }
+
+        return groupingSetsElementExpressionItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.SuperGroup} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected SuperGroupItemProvider superGroupItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.SuperGroup}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createSuperGroupAdapter() {
+        if (superGroupItemProvider == null) {
+            superGroupItemProvider = new SuperGroupItemProvider(this);
+        }
+
+        return superGroupItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.GroupingExpression} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected GroupingExpressionItemProvider groupingExpressionItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.GroupingExpression}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createGroupingExpressionAdapter() {
+        if (groupingExpressionItemProvider == null) {
+            groupingExpressionItemProvider = new GroupingExpressionItemProvider(this);
+        }
+
+        return groupingExpressionItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.SuperGroupElementSublist} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected SuperGroupElementSublistItemProvider superGroupElementSublistItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.SuperGroupElementSublist}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createSuperGroupElementSublistAdapter() {
+        if (superGroupElementSublistItemProvider == null) {
+            superGroupElementSublistItemProvider = new SuperGroupElementSublistItemProvider(this);
+        }
+
+        return superGroupElementSublistItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.SuperGroupElementExpression} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected SuperGroupElementExpressionItemProvider superGroupElementExpressionItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.SuperGroupElementExpression}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createSuperGroupElementExpressionAdapter() {
+        if (superGroupElementExpressionItemProvider == null) {
+            superGroupElementExpressionItemProvider = new SuperGroupElementExpressionItemProvider(this);
+        }
+
+        return superGroupElementExpressionItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearch} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected ValueExpressionCaseSearchItemProvider valueExpressionCaseSearchItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearch}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createValueExpressionCaseSearchAdapter() {
+        if (valueExpressionCaseSearchItemProvider == null) {
+            valueExpressionCaseSearchItemProvider = new ValueExpressionCaseSearchItemProvider(this);
+        }
+
+        return valueExpressionCaseSearchItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected ValueExpressionCaseSimpleItemProvider valueExpressionCaseSimpleItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createValueExpressionCaseSimpleAdapter() {
+        if (valueExpressionCaseSimpleItemProvider == null) {
+            valueExpressionCaseSimpleItemProvider = new ValueExpressionCaseSimpleItemProvider(this);
+        }
+
+        return valueExpressionCaseSimpleItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected ValueExpressionCaseElseItemProvider valueExpressionCaseElseItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createValueExpressionCaseElseAdapter() {
+        if (valueExpressionCaseElseItemProvider == null) {
+            valueExpressionCaseElseItemProvider = new ValueExpressionCaseElseItemProvider(this);
+        }
+
+        return valueExpressionCaseElseItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected ValueExpressionCaseSearchContentItemProvider valueExpressionCaseSearchContentItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createValueExpressionCaseSearchContentAdapter() {
+        if (valueExpressionCaseSearchContentItemProvider == null) {
+            valueExpressionCaseSearchContentItemProvider = new ValueExpressionCaseSearchContentItemProvider(this);
+        }
+
+        return valueExpressionCaseSearchContentItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected ValueExpressionCaseSimpleContentItemProvider valueExpressionCaseSimpleContentItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createValueExpressionCaseSimpleContentAdapter() {
+        if (valueExpressionCaseSimpleContentItemProvider == null) {
+            valueExpressionCaseSimpleContentItemProvider = new ValueExpressionCaseSimpleContentItemProvider(this);
+        }
+
+        return valueExpressionCaseSimpleContentItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.TableInDatabase} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected TableInDatabaseItemProvider tableInDatabaseItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.TableInDatabase}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createTableInDatabaseAdapter() {
+        if (tableInDatabaseItemProvider == null) {
+            tableInDatabaseItemProvider = new TableInDatabaseItemProvider(this);
+        }
+
+        return tableInDatabaseItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.TableFunction} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected TableFunctionItemProvider tableFunctionItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.TableFunction}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createTableFunctionAdapter() {
+        if (tableFunctionItemProvider == null) {
+            tableFunctionItemProvider = new TableFunctionItemProvider(this);
+        }
+
+        return tableFunctionItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.ColumnName} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected ColumnNameItemProvider columnNameItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.ColumnName}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createColumnNameAdapter() {
+        if (columnNameItemProvider == null) {
+            columnNameItemProvider = new ColumnNameItemProvider(this);
+        }
+
+        return columnNameItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.TableNested} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected TableNestedItemProvider tableNestedItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.TableNested}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createTableNestedAdapter() {
+        if (tableNestedItemProvider == null) {
+            tableNestedItemProvider = new TableNestedItemProvider(this);
+        }
+
+        return tableNestedItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.QueryMergeStatement} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected QueryMergeStatementItemProvider queryMergeStatementItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.QueryMergeStatement}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createQueryMergeStatementAdapter() {
+        if (queryMergeStatementItemProvider == null) {
+            queryMergeStatementItemProvider = new QueryMergeStatementItemProvider(this);
+        }
+
+        return queryMergeStatementItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.SearchConditionNested} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected SearchConditionNestedItemProvider searchConditionNestedItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.SearchConditionNested}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createSearchConditionNestedAdapter() {
+        if (searchConditionNestedItemProvider == null) {
+            searchConditionNestedItemProvider = new SearchConditionNestedItemProvider(this);
+        }
+
+        return searchConditionNestedItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected ValueExpressionNestedItemProvider valueExpressionNestedItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createValueExpressionNestedAdapter() {
+        if (valueExpressionNestedItemProvider == null) {
+            valueExpressionNestedItemProvider = new ValueExpressionNestedItemProvider(this);
+        }
+
+        return valueExpressionNestedItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.OrderByOrdinal} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected OrderByOrdinalItemProvider orderByOrdinalItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.OrderByOrdinal}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createOrderByOrdinalAdapter() {
+        if (orderByOrdinalItemProvider == null) {
+            orderByOrdinalItemProvider = new OrderByOrdinalItemProvider(this);
+        }
+
+        return orderByOrdinalItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.TableCorrelation} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected TableCorrelationItemProvider tableCorrelationItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.TableCorrelation}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createTableCorrelationAdapter() {
+        if (tableCorrelationItemProvider == null) {
+            tableCorrelationItemProvider = new TableCorrelationItemProvider(this);
+        }
+
+        return tableCorrelationItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.UpdateSource} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected UpdateSourceItemProvider updateSourceItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.UpdateSource}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createUpdateSourceAdapter() {
+        if (updateSourceItemProvider == null) {
+            updateSourceItemProvider = new UpdateSourceItemProvider(this);
+        }
+
+        return updateSourceItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected UpdateSourceExprListItemProvider updateSourceExprListItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createUpdateSourceExprListAdapter() {
+        if (updateSourceExprListItemProvider == null) {
+            updateSourceExprListItemProvider = new UpdateSourceExprListItemProvider(this);
+        }
+
+        return updateSourceExprListItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.UpdateSourceQuery} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected UpdateSourceQueryItemProvider updateSourceQueryItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.UpdateSourceQuery}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createUpdateSourceQueryAdapter() {
+        if (updateSourceQueryItemProvider == null) {
+            updateSourceQueryItemProvider = new UpdateSourceQueryItemProvider(this);
+        }
+
+        return updateSourceQueryItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.OrderByResultColumn} instances.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected OrderByResultColumnItemProvider orderByResultColumnItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.OrderByResultColumn}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter createOrderByResultColumnAdapter() {
+        if (orderByResultColumnItemProvider == null) {
+            orderByResultColumnItemProvider = new OrderByResultColumnItemProvider(this);
+        }
+
+        return orderByResultColumnItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.WithTableReference} instances.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	protected WithTableReferenceItemProvider withTableReferenceItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.WithTableReference}.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Adapter createWithTableReferenceAdapter() {
+        if (withTableReferenceItemProvider == null) {
+            withTableReferenceItemProvider = new WithTableReferenceItemProvider(this);
+        }
+
+        return withTableReferenceItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.QueryNested} instances.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected QueryNestedItemProvider queryNestedItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.QueryNested}.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public Adapter createQueryNestedAdapter() {
+        if (queryNestedItemProvider == null) {
+            queryNestedItemProvider = new QueryNestedItemProvider(this);
+        }
+
+        return queryNestedItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionRow} instances.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected ValueExpressionRowItemProvider valueExpressionRowItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionRow}.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public Adapter createValueExpressionRowAdapter() {
+        if (valueExpressionRowItemProvider == null) {
+            valueExpressionRowItemProvider = new ValueExpressionRowItemProvider(this);
+        }
+
+        return valueExpressionRowItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.MergeTargetTable} instances.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected MergeTargetTableItemProvider mergeTargetTableItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.MergeTargetTable}.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public Adapter createMergeTargetTableAdapter() {
+        if (mergeTargetTableItemProvider == null) {
+            mergeTargetTableItemProvider = new MergeTargetTableItemProvider(this);
+        }
+
+        return mergeTargetTableItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.MergeSourceTable} instances.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected MergeSourceTableItemProvider mergeSourceTableItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.MergeSourceTable}.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public Adapter createMergeSourceTableAdapter() {
+        if (mergeSourceTableItemProvider == null) {
+            mergeSourceTableItemProvider = new MergeSourceTableItemProvider(this);
+        }
+
+        return mergeSourceTableItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.MergeOnCondition} instances.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected MergeOnConditionItemProvider mergeOnConditionItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.MergeOnCondition}.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public Adapter createMergeOnConditionAdapter() {
+        if (mergeOnConditionItemProvider == null) {
+            mergeOnConditionItemProvider = new MergeOnConditionItemProvider(this);
+        }
+
+        return mergeOnConditionItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.MergeUpdateSpecification} instances.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected MergeUpdateSpecificationItemProvider mergeUpdateSpecificationItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.MergeUpdateSpecification}.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public Adapter createMergeUpdateSpecificationAdapter() {
+        if (mergeUpdateSpecificationItemProvider == null) {
+            mergeUpdateSpecificationItemProvider = new MergeUpdateSpecificationItemProvider(this);
+        }
+
+        return mergeUpdateSpecificationItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.MergeInsertSpecification} instances.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected MergeInsertSpecificationItemProvider mergeInsertSpecificationItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.MergeInsertSpecification}.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public Adapter createMergeInsertSpecificationAdapter() {
+        if (mergeInsertSpecificationItemProvider == null) {
+            mergeInsertSpecificationItemProvider = new MergeInsertSpecificationItemProvider(this);
+        }
+
+        return mergeInsertSpecificationItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.MergeOperationSpecification} instances.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected MergeOperationSpecificationItemProvider mergeOperationSpecificationItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.MergeOperationSpecification}.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public Adapter createMergeOperationSpecificationAdapter() {
+        if (mergeOperationSpecificationItemProvider == null) {
+            mergeOperationSpecificationItemProvider = new MergeOperationSpecificationItemProvider(this);
+        }
+
+        return mergeOperationSpecificationItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.UpdateOfColumn} instances.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected UpdateOfColumnItemProvider updateOfColumnItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.UpdateOfColumn}.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public Adapter createUpdateOfColumnAdapter() {
+        if (updateOfColumnItemProvider == null) {
+            updateOfColumnItemProvider = new UpdateOfColumnItemProvider(this);
+        }
+
+        return updateOfColumnItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.UpdatabilityExpression} instances.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected UpdatabilityExpressionItemProvider updatabilityExpressionItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.UpdatabilityExpression}.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public Adapter createUpdatabilityExpressionAdapter() {
+        if (updatabilityExpressionItemProvider == null) {
+            updatabilityExpressionItemProvider = new UpdatabilityExpressionItemProvider(this);
+        }
+
+        return updatabilityExpressionItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.CallStatement} instances.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected CallStatementItemProvider callStatementItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.CallStatement}.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public Adapter createCallStatementAdapter() {
+        if (callStatementItemProvider == null) {
+            callStatementItemProvider = new CallStatementItemProvider(this);
+        }
+
+        return callStatementItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.ProcedureReference} instances.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected ProcedureReferenceItemProvider procedureReferenceItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.ProcedureReference}.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public Adapter createProcedureReferenceAdapter() {
+        if (procedureReferenceItemProvider == null) {
+            procedureReferenceItemProvider = new ProcedureReferenceItemProvider(this);
+        }
+
+        return procedureReferenceItemProvider;
+    }
+
+    /**
+     * This keeps track of the one adapter used for all {@link org.eclipse.datatools.modelbase.sql.query.TableQueryLateral} instances.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected TableQueryLateralItemProvider tableQueryLateralItemProvider;
+
+    /**
+     * This creates an adapter for a {@link org.eclipse.datatools.modelbase.sql.query.TableQueryLateral}.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public Adapter createTableQueryLateralAdapter() {
+        if (tableQueryLateralItemProvider == null) {
+            tableQueryLateralItemProvider = new TableQueryLateralItemProvider(this);
+        }
+
+        return tableQueryLateralItemProvider;
+    }
+
+    /**
+     * This returns the root adapter factory that contains this factory.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public ComposeableAdapterFactory getRootAdapterFactory() {
+        return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
+    }
+
+    /**
+     * This sets the composed adapter factory that contains this factory.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
+        this.parentAdapterFactory = parentAdapterFactory;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public boolean isFactoryForType(Object type) {
+        return supportedTypes.contains(type) || super.isFactoryForType(type);
+    }
+
+    /**
+     * This implementation substitutes the factory itself as the key for the adapter.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Adapter adapt(Notifier notifier, Object type) {
+        return super.adapt(notifier, this);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Object adapt(Object object, Object type) {
+        if (isFactoryForType(type)) {
+            Object adapter = super.adapt(object, type);
+            if (!(type instanceof Class) || (((Class)type).isInstance(adapter))) {
+                return adapter;
+            }
+        }
+
+        return null;
+    }
+
+    /**
+     * This adds a listener.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void addListener(INotifyChangedListener notifyChangedListener) {
+        changeNotifier.addListener(notifyChangedListener);
+    }
+
+    /**
+     * This removes a listener.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void removeListener(INotifyChangedListener notifyChangedListener) {
+        changeNotifier.removeListener(notifyChangedListener);
+    }
+
+    /**
+     * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void fireNotifyChanged(Notification notification) {
+        changeNotifier.fireNotifyChanged(notification);
+
+        if (parentAdapterFactory != null) {
+            parentAdapterFactory.fireNotifyChanged(notification);
+        }
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/SQLQueryObjectItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/SQLQueryObjectItemProvider.java
new file mode 100644
index 0000000..d316b58
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/SQLQueryObjectItemProvider.java
@@ -0,0 +1,96 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SQLQueryObjectItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryObject;
+import org.eclipse.datatools.modelbase.sql.schema.provider.SQLObjectItemProvider;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.SQLQueryObject} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SQLQueryObjectItemProvider
+  extends SQLObjectItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public SQLQueryObjectItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((SQLQueryObject)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_SQLQueryObject_type") :
+            getString("_UI_SQLQueryObject_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+        super.notifyChanged(notification);
+    }
+
+    /**
+     * Return the resource locator for this item provider's resources.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public ResourceLocator getResourceLocator() {
+        return SQLQueryEditPlugin.INSTANCE;
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/SearchConditionCombinedItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/SearchConditionCombinedItemProvider.java
new file mode 100644
index 0000000..160ae6c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/SearchConditionCombinedItemProvider.java
@@ -0,0 +1,153 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SearchConditionCombinedItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SearchConditionCombinedItemProvider
+  extends QuerySearchConditionItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public SearchConditionCombinedItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+            addCombinedOperatorPropertyDescriptor(object);
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This adds a property descriptor for the Combined Operator feature.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected void addCombinedOperatorPropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_SearchConditionCombined_combinedOperator_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_SearchConditionCombined_combinedOperator_feature", "_UI_SearchConditionCombined_type"),
+                 SQLQueryModelPackage.Literals.SEARCH_CONDITION_COMBINED__COMBINED_OPERATOR,
+                 true,
+                 false,
+                 false,
+                 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+                 null,
+                 null));
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.SEARCH_CONDITION_COMBINED__LEFT_CONDITION);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.SEARCH_CONDITION_COMBINED__RIGHT_CONDITION);
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((SearchConditionCombined)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_SearchConditionCombined_type") :
+            getString("_UI_SearchConditionCombined_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(SearchConditionCombined.class)) {
+            case SQLQueryModelPackage.SEARCH_CONDITION_COMBINED__COMBINED_OPERATOR:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+                return;
+            case SQLQueryModelPackage.SEARCH_CONDITION_COMBINED__LEFT_CONDITION:
+            case SQLQueryModelPackage.SEARCH_CONDITION_COMBINED__RIGHT_CONDITION:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/SearchConditionNestedItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/SearchConditionNestedItemProvider.java
new file mode 100644
index 0000000..35b3e53
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/SearchConditionNestedItemProvider.java
@@ -0,0 +1,123 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SearchConditionNestedItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionNested;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.SearchConditionNested} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SearchConditionNestedItemProvider
+  extends QuerySearchConditionItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public SearchConditionNestedItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.SEARCH_CONDITION_NESTED__NESTED_CONDITION);
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((SearchConditionNested)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_SearchConditionNested_type") :
+            getString("_UI_SearchConditionNested_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(SearchConditionNested.class)) {
+            case SQLQueryModelPackage.SEARCH_CONDITION_NESTED__NESTED_CONDITION:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/SuperGroupElementExpressionItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/SuperGroupElementExpressionItemProvider.java
new file mode 100644
index 0000000..512957a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/SuperGroupElementExpressionItemProvider.java
@@ -0,0 +1,123 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SuperGroupElementExpressionItemProvider.java,v 1.1 2007/09/25 23:18:02 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.SuperGroupElementExpression;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.SuperGroupElementExpression} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SuperGroupElementExpressionItemProvider
+  extends SuperGroupElementItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public SuperGroupElementExpressionItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.SUPER_GROUP_ELEMENT_EXPRESSION__GROUPING_EXPR);
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((SuperGroupElementExpression)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_SuperGroupElementExpression_type") :
+            getString("_UI_SuperGroupElementExpression_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(SuperGroupElementExpression.class)) {
+            case SQLQueryModelPackage.SUPER_GROUP_ELEMENT_EXPRESSION__GROUPING_EXPR:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/SuperGroupElementItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/SuperGroupElementItemProvider.java
new file mode 100644
index 0000000..b2b8d45
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/SuperGroupElementItemProvider.java
@@ -0,0 +1,85 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SuperGroupElementItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.SuperGroupElement;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.SuperGroupElement} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SuperGroupElementItemProvider
+  extends SQLQueryObjectItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public SuperGroupElementItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((SuperGroupElement)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_SuperGroupElement_type") :
+            getString("_UI_SuperGroupElement_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/SuperGroupElementSublistItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/SuperGroupElementSublistItemProvider.java
new file mode 100644
index 0000000..d34b499
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/SuperGroupElementSublistItemProvider.java
@@ -0,0 +1,123 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SuperGroupElementSublistItemProvider.java,v 1.1 2007/09/25 23:18:02 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.SuperGroupElementSublist;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.SuperGroupElementSublist} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SuperGroupElementSublistItemProvider
+  extends SuperGroupElementItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public SuperGroupElementSublistItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.SUPER_GROUP_ELEMENT_SUBLIST__SUPER_GROUP_ELEMENT_EXPR_LIST);
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((SuperGroupElementSublist)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_SuperGroupElementSublist_type") :
+            getString("_UI_SuperGroupElementSublist_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(SuperGroupElementSublist.class)) {
+            case SQLQueryModelPackage.SUPER_GROUP_ELEMENT_SUBLIST__SUPER_GROUP_ELEMENT_EXPR_LIST:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/SuperGroupItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/SuperGroupItemProvider.java
new file mode 100644
index 0000000..c93d43b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/SuperGroupItemProvider.java
@@ -0,0 +1,151 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SuperGroupItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.SuperGroup;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.SuperGroup} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SuperGroupItemProvider
+  extends GroupingItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public SuperGroupItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+            addSuperGroupTypePropertyDescriptor(object);
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This adds a property descriptor for the Super Group Type feature.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	protected void addSuperGroupTypePropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_SuperGroup_superGroupType_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_SuperGroup_superGroupType_feature", "_UI_SuperGroup_type"),
+                 SQLQueryModelPackage.Literals.SUPER_GROUP__SUPER_GROUP_TYPE,
+                 true,
+                 false,
+                 false,
+                 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+                 null,
+                 null));
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.SUPER_GROUP__SUPER_GROUP_ELEMENT_LIST);
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((SuperGroup)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_SuperGroup_type") :
+            getString("_UI_SuperGroup_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(SuperGroup.class)) {
+            case SQLQueryModelPackage.SUPER_GROUP__SUPER_GROUP_TYPE:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+                return;
+            case SQLQueryModelPackage.SUPER_GROUP__SUPER_GROUP_ELEMENT_LIST:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/TableCorrelationItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/TableCorrelationItemProvider.java
new file mode 100644
index 0000000..90e8ca7
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/TableCorrelationItemProvider.java
@@ -0,0 +1,123 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: TableCorrelationItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.TableCorrelation;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.TableCorrelation} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class TableCorrelationItemProvider
+  extends SQLQueryObjectItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public TableCorrelationItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.TABLE_CORRELATION__COLUMN_NAME_LIST);
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((TableCorrelation)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_TableCorrelation_type") :
+            getString("_UI_TableCorrelation_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(TableCorrelation.class)) {
+            case SQLQueryModelPackage.TABLE_CORRELATION__COLUMN_NAME_LIST:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/TableExpressionItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/TableExpressionItemProvider.java
new file mode 100644
index 0000000..74f5379
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/TableExpressionItemProvider.java
@@ -0,0 +1,173 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: TableExpressionItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.TableExpression;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.TableExpression} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class TableExpressionItemProvider
+  extends TableReferenceItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public TableExpressionItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+            addResultTableAllColumnsPropertyDescriptor(object);
+            addValueExprColumnsPropertyDescriptor(object);
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This adds a property descriptor for the Result Table All Columns feature.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected void addResultTableAllColumnsPropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_TableExpression_resultTableAllColumns_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_TableExpression_resultTableAllColumns_feature", "_UI_TableExpression_type"),
+                 SQLQueryModelPackage.Literals.TABLE_EXPRESSION__RESULT_TABLE_ALL_COLUMNS,
+                 true,
+                 false,
+                 false,
+                 null,
+                 null,
+                 null));
+    }
+
+    /**
+     * This adds a property descriptor for the Value Expr Columns feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected void addValueExprColumnsPropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_TableExpression_valueExprColumns_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_TableExpression_valueExprColumns_feature", "_UI_TableExpression_type"),
+                 SQLQueryModelPackage.Literals.TABLE_EXPRESSION__VALUE_EXPR_COLUMNS,
+                 true,
+                 false,
+                 false,
+                 null,
+                 null,
+                 null));
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated NOT
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            //childrenFeatures.add(SQLQueryModelPackage.eINSTANCE.getTableExpression_ColumnList());
+            //childrenFeatures.add(SQLQueryModelPackage.eINSTANCE.getTableExpression_TableCorrelation());
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((TableExpression)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_TableExpression_type") :
+            getString("_UI_TableExpression_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(TableExpression.class)) {
+            case SQLQueryModelPackage.TABLE_EXPRESSION__COLUMN_LIST:
+            case SQLQueryModelPackage.TABLE_EXPRESSION__TABLE_CORRELATION:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/TableFunctionItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/TableFunctionItemProvider.java
new file mode 100644
index 0000000..59a9c61
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/TableFunctionItemProvider.java
@@ -0,0 +1,147 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: TableFunctionItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.TableFunction;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.TableFunction} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class TableFunctionItemProvider
+  extends TableExpressionItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public TableFunctionItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+            addFunctionPropertyDescriptor(object);
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This adds a property descriptor for the Function feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected void addFunctionPropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_TableFunction_function_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_TableFunction_function_feature", "_UI_TableFunction_type"),
+                 SQLQueryModelPackage.Literals.TABLE_FUNCTION__FUNCTION,
+                 true,
+                 false,
+                 true,
+                 null,
+                 null,
+                 null));
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.TABLE_FUNCTION__PARAMETER_LIST);
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((TableFunction)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_TableFunction_type") :
+            getString("_UI_TableFunction_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(TableFunction.class)) {
+            case SQLQueryModelPackage.TABLE_FUNCTION__PARAMETER_LIST:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/TableInDatabaseItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/TableInDatabaseItemProvider.java
new file mode 100644
index 0000000..56b85dc
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/TableInDatabaseItemProvider.java
@@ -0,0 +1,134 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: TableInDatabaseItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.TableInDatabase;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.TableInDatabase} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class TableInDatabaseItemProvider
+  extends TableExpressionItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public TableInDatabaseItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+            addDatabaseTablePropertyDescriptor(object);
+            addDerivedColumnListPropertyDescriptor(object);
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This adds a property descriptor for the Database Table feature.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected void addDatabaseTablePropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_TableInDatabase_databaseTable_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_TableInDatabase_databaseTable_feature", "_UI_TableInDatabase_type"),
+                 SQLQueryModelPackage.Literals.TABLE_IN_DATABASE__DATABASE_TABLE,
+                 true,
+                 false,
+                 false,
+                 null,
+                 null,
+                 null));
+    }
+
+    /**
+     * This adds a property descriptor for the Derived Column List feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected void addDerivedColumnListPropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_TableInDatabase_derivedColumnList_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_TableInDatabase_derivedColumnList_feature", "_UI_TableInDatabase_type"),
+                 SQLQueryModelPackage.Literals.TABLE_IN_DATABASE__DERIVED_COLUMN_LIST,
+                 true,
+                 false,
+                 false,
+                 null,
+                 null,
+                 null));
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((TableInDatabase)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_TableInDatabase_type") :
+            getString("_UI_TableInDatabase_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/TableJoinedItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/TableJoinedItemProvider.java
new file mode 100644
index 0000000..d3fa52e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/TableJoinedItemProvider.java
@@ -0,0 +1,155 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: TableJoinedItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.TableJoined;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.TableJoined} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class TableJoinedItemProvider
+  extends TableReferenceItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public TableJoinedItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+            addJoinOperatorPropertyDescriptor(object);
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This adds a property descriptor for the Join Operator feature.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected void addJoinOperatorPropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_TableJoined_joinOperator_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_TableJoined_joinOperator_feature", "_UI_TableJoined_type"),
+                 SQLQueryModelPackage.Literals.TABLE_JOINED__JOIN_OPERATOR,
+                 true,
+                 false,
+                 false,
+                 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+                 null,
+                 null));
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.TABLE_JOINED__JOIN_CONDITION);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.TABLE_JOINED__TABLE_REF_RIGHT);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.TABLE_JOINED__TABLE_REF_LEFT);
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((TableJoined)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_TableJoined_type") :
+            getString("_UI_TableJoined_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(TableJoined.class)) {
+            case SQLQueryModelPackage.TABLE_JOINED__JOIN_OPERATOR:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+                return;
+            case SQLQueryModelPackage.TABLE_JOINED__JOIN_CONDITION:
+            case SQLQueryModelPackage.TABLE_JOINED__TABLE_REF_RIGHT:
+            case SQLQueryModelPackage.TABLE_JOINED__TABLE_REF_LEFT:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/TableNestedItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/TableNestedItemProvider.java
new file mode 100644
index 0000000..1ca85fa
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/TableNestedItemProvider.java
@@ -0,0 +1,123 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: TableNestedItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.TableNested;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.TableNested} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class TableNestedItemProvider
+  extends TableReferenceItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public TableNestedItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.TABLE_NESTED__NESTED_TABLE_REF);
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((TableNested)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_TableNested_type") :
+            getString("_UI_TableNested_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(TableNested.class)) {
+            case SQLQueryModelPackage.TABLE_NESTED__NESTED_TABLE_REF:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/TableQueryLateralItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/TableQueryLateralItemProvider.java
new file mode 100644
index 0000000..b6d11d1
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/TableQueryLateralItemProvider.java
@@ -0,0 +1,135 @@
+/**

+ * <copyright>

+ * </copyright>

+ *

+ * $Id$

+ */

+package org.eclipse.datatools.modelbase.sql.query.provider;

+

+

+import java.util.Collection;

+import java.util.List;

+

+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;

+import org.eclipse.datatools.modelbase.sql.query.TableQueryLateral;

+

+import org.eclipse.emf.common.notify.AdapterFactory;

+import org.eclipse.emf.common.notify.Notification;

+

+import org.eclipse.emf.ecore.EStructuralFeature;

+

+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;

+import org.eclipse.emf.edit.provider.IItemLabelProvider;

+import org.eclipse.emf.edit.provider.IItemPropertySource;

+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;

+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;

+import org.eclipse.emf.edit.provider.ViewerNotification;

+

+/**

+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.TableQueryLateral} object.

+ * <!-- begin-user-doc -->

+ * <!-- end-user-doc -->

+ * @generated

+ */

+public class TableQueryLateralItemProvider

+    extends TableExpressionItemProvider

+    implements

+        IEditingDomainItemProvider,

+        IStructuredItemContentProvider,

+        ITreeItemContentProvider,

+        IItemLabelProvider,

+        IItemPropertySource {

+    /**

+     * This constructs an instance from a factory and a notifier.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public TableQueryLateralItemProvider(AdapterFactory adapterFactory) {

+        super(adapterFactory);

+    }

+

+    /**

+     * This returns the property descriptors for the adapted class.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public List getPropertyDescriptors(Object object) {

+        if (itemPropertyDescriptors == null) {

+            super.getPropertyDescriptors(object);

+

+        }

+        return itemPropertyDescriptors;

+    }

+

+    /**

+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an

+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or

+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public Collection getChildrenFeatures(Object object) {

+        if (childrenFeatures == null) {

+            super.getChildrenFeatures(object);

+            childrenFeatures.add(SQLQueryModelPackage.Literals.TABLE_QUERY_LATERAL__QUERY);

+        }

+        return childrenFeatures;

+    }

+

+    /**

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    protected EStructuralFeature getChildFeature(Object object, Object child) {

+        // Check the type of the specified child object and return the proper feature to use for

+        // adding (see {@link AddCommand}) it as a child.

+

+        return super.getChildFeature(object, child);

+    }

+

+    /**

+     * This returns TableQueryLateral.gif.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public Object getImage(Object object) {

+        return overlayImage(object, getResourceLocator().getImage("full/obj16/TableQueryLateral"));

+    }

+

+    /**

+     * This returns the label text for the adapted class.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public String getText(Object object) {

+        String label = ((TableQueryLateral)object).getName();

+        return label == null || label.length() == 0 ?

+            getString("_UI_TableQueryLateral_type") :

+            getString("_UI_TableQueryLateral_type") + " " + label;

+    }

+

+    /**

+     * This handles model notifications by calling {@link #updateChildren} to update any cached

+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public void notifyChanged(Notification notification) {

+        updateChildren(notification);

+

+        switch (notification.getFeatureID(TableQueryLateral.class)) {

+            case SQLQueryModelPackage.TABLE_QUERY_LATERAL__QUERY:

+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));

+                return;

+        }

+        super.notifyChanged(notification);

+    }

+

+}

diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/TableReferenceItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/TableReferenceItemProvider.java
new file mode 100644
index 0000000..51c4299
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/TableReferenceItemProvider.java
@@ -0,0 +1,85 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: TableReferenceItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.TableReference;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.TableReference} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class TableReferenceItemProvider
+  extends SQLQueryObjectItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public TableReferenceItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((TableReference)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_TableReference_type") :
+            getString("_UI_TableReference_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/UpdatabilityExpressionItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/UpdatabilityExpressionItemProvider.java
new file mode 100644
index 0000000..741836d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/UpdatabilityExpressionItemProvider.java
@@ -0,0 +1,163 @@
+/**

+ * <copyright>

+ * </copyright>

+ *

+ * $Id$

+ */

+package org.eclipse.datatools.modelbase.sql.query.provider;

+

+

+import java.util.Collection;

+import java.util.List;

+

+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;

+import org.eclipse.datatools.modelbase.sql.query.UpdatabilityExpression;

+

+import org.eclipse.emf.common.notify.AdapterFactory;

+import org.eclipse.emf.common.notify.Notification;

+

+import org.eclipse.emf.ecore.EStructuralFeature;

+

+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;

+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;

+import org.eclipse.emf.edit.provider.IItemLabelProvider;

+import org.eclipse.emf.edit.provider.IItemPropertySource;

+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;

+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;

+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;

+import org.eclipse.emf.edit.provider.ViewerNotification;

+

+/**

+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.UpdatabilityExpression} object.

+ * <!-- begin-user-doc -->

+ * <!-- end-user-doc -->

+ * @generated

+ */

+public class UpdatabilityExpressionItemProvider

+    extends SQLQueryObjectItemProvider

+    implements

+        IEditingDomainItemProvider,

+        IStructuredItemContentProvider,

+        ITreeItemContentProvider,

+        IItemLabelProvider,

+        IItemPropertySource {

+    /**

+     * This constructs an instance from a factory and a notifier.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public UpdatabilityExpressionItemProvider(AdapterFactory adapterFactory) {

+        super(adapterFactory);

+    }

+

+    /**

+     * This returns the property descriptors for the adapted class.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public List getPropertyDescriptors(Object object) {

+        if (itemPropertyDescriptors == null) {

+            super.getPropertyDescriptors(object);

+

+            addUpdatabilityTypePropertyDescriptor(object);

+        }

+        return itemPropertyDescriptors;

+    }

+

+    /**

+     * This adds a property descriptor for the Updatability Type feature.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    protected void addUpdatabilityTypePropertyDescriptor(Object object) {

+        itemPropertyDescriptors.add

+            (createItemPropertyDescriptor

+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),

+                 getResourceLocator(),

+                 getString("_UI_UpdatabilityExpression_updatabilityType_feature"),

+                 getString("_UI_PropertyDescriptor_description", "_UI_UpdatabilityExpression_updatabilityType_feature", "_UI_UpdatabilityExpression_type"),

+                 SQLQueryModelPackage.Literals.UPDATABILITY_EXPRESSION__UPDATABILITY_TYPE,

+                 true,

+                 false,

+                 false,

+                 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,

+                 null,

+                 null));

+    }

+

+    /**

+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an

+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or

+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public Collection getChildrenFeatures(Object object) {

+        if (childrenFeatures == null) {

+            super.getChildrenFeatures(object);

+            childrenFeatures.add(SQLQueryModelPackage.Literals.UPDATABILITY_EXPRESSION__UPDATE_OF_COLUMN_LIST);

+        }

+        return childrenFeatures;

+    }

+

+    /**

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    protected EStructuralFeature getChildFeature(Object object, Object child) {

+        // Check the type of the specified child object and return the proper feature to use for

+        // adding (see {@link AddCommand}) it as a child.

+

+        return super.getChildFeature(object, child);

+    }

+

+    /**

+     * This returns UpdatabilityExpression.gif.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public Object getImage(Object object) {

+        return overlayImage(object, getResourceLocator().getImage("full/obj16/UpdatabilityExpression"));

+    }

+

+    /**

+     * This returns the label text for the adapted class.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public String getText(Object object) {

+        String label = ((UpdatabilityExpression)object).getName();

+        return label == null || label.length() == 0 ?

+            getString("_UI_UpdatabilityExpression_type") :

+            getString("_UI_UpdatabilityExpression_type") + " " + label;

+    }

+

+    /**

+     * This handles model notifications by calling {@link #updateChildren} to update any cached

+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public void notifyChanged(Notification notification) {

+        updateChildren(notification);

+

+        switch (notification.getFeatureID(UpdatabilityExpression.class)) {

+            case SQLQueryModelPackage.UPDATABILITY_EXPRESSION__UPDATABILITY_TYPE:

+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));

+                return;

+            case SQLQueryModelPackage.UPDATABILITY_EXPRESSION__UPDATE_OF_COLUMN_LIST:

+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));

+                return;

+        }

+        super.notifyChanged(notification);

+    }

+

+}

diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/UpdateAssignmentExpressionItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/UpdateAssignmentExpressionItemProvider.java
new file mode 100644
index 0000000..e81e210
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/UpdateAssignmentExpressionItemProvider.java
@@ -0,0 +1,148 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: UpdateAssignmentExpressionItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class UpdateAssignmentExpressionItemProvider
+  extends SQLQueryObjectItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public UpdateAssignmentExpressionItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+            addTargetColumnListPropertyDescriptor(object);
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This adds a property descriptor for the Target Column List feature.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected void addTargetColumnListPropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_UpdateAssignmentExpression_targetColumnList_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_UpdateAssignmentExpression_targetColumnList_feature", "_UI_UpdateAssignmentExpression_type"),
+                 SQLQueryModelPackage.Literals.UPDATE_ASSIGNMENT_EXPRESSION__TARGET_COLUMN_LIST,
+                 true,
+                 false,
+                 false,
+                 null,
+                 null,
+                 null));
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.UPDATE_ASSIGNMENT_EXPRESSION__UPDATE_SOURCE);
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((UpdateAssignmentExpression)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_UpdateAssignmentExpression_type") :
+            getString("_UI_UpdateAssignmentExpression_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(UpdateAssignmentExpression.class)) {
+            case SQLQueryModelPackage.UPDATE_ASSIGNMENT_EXPRESSION__UPDATE_SOURCE:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/UpdateOfColumnItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/UpdateOfColumnItemProvider.java
new file mode 100644
index 0000000..d3cefcd
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/UpdateOfColumnItemProvider.java
@@ -0,0 +1,96 @@
+/**

+ * <copyright>

+ * </copyright>

+ *

+ * $Id$

+ */

+package org.eclipse.datatools.modelbase.sql.query.provider;

+

+

+import java.util.List;

+

+import org.eclipse.datatools.modelbase.sql.query.UpdateOfColumn;

+

+import org.eclipse.emf.common.notify.AdapterFactory;

+import org.eclipse.emf.common.notify.Notification;

+

+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;

+import org.eclipse.emf.edit.provider.IItemLabelProvider;

+import org.eclipse.emf.edit.provider.IItemPropertySource;

+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;

+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;

+

+/**

+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.UpdateOfColumn} object.

+ * <!-- begin-user-doc -->

+ * <!-- end-user-doc -->

+ * @generated

+ */

+public class UpdateOfColumnItemProvider

+    extends SQLQueryObjectItemProvider

+    implements

+        IEditingDomainItemProvider,

+        IStructuredItemContentProvider,

+        ITreeItemContentProvider,

+        IItemLabelProvider,

+        IItemPropertySource {

+    /**

+     * This constructs an instance from a factory and a notifier.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public UpdateOfColumnItemProvider(AdapterFactory adapterFactory) {

+        super(adapterFactory);

+    }

+

+    /**

+     * This returns the property descriptors for the adapted class.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public List getPropertyDescriptors(Object object) {

+        if (itemPropertyDescriptors == null) {

+            super.getPropertyDescriptors(object);

+

+        }

+        return itemPropertyDescriptors;

+    }

+

+    /**

+     * This returns UpdateOfColumn.gif.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public Object getImage(Object object) {

+        return overlayImage(object, getResourceLocator().getImage("full/obj16/UpdateOfColumn"));

+    }

+

+    /**

+     * This returns the label text for the adapted class.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public String getText(Object object) {

+        String label = ((UpdateOfColumn)object).getName();

+        return label == null || label.length() == 0 ?

+            getString("_UI_UpdateOfColumn_type") :

+            getString("_UI_UpdateOfColumn_type") + " " + label;

+    }

+

+    /**

+     * This handles model notifications by calling {@link #updateChildren} to update any cached

+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public void notifyChanged(Notification notification) {

+        updateChildren(notification);

+        super.notifyChanged(notification);

+    }

+

+}

diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/UpdateSourceExprListItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/UpdateSourceExprListItemProvider.java
new file mode 100644
index 0000000..1de7494
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/UpdateSourceExprListItemProvider.java
@@ -0,0 +1,123 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: UpdateSourceExprListItemProvider.java,v 1.1 2007/09/25 23:18:02 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class UpdateSourceExprListItemProvider
+  extends UpdateSourceItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public UpdateSourceExprListItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.UPDATE_SOURCE_EXPR_LIST__VALUE_EXPR_LIST);
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((UpdateSourceExprList)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_UpdateSourceExprList_type") :
+            getString("_UI_UpdateSourceExprList_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(UpdateSourceExprList.class)) {
+            case SQLQueryModelPackage.UPDATE_SOURCE_EXPR_LIST__VALUE_EXPR_LIST:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/UpdateSourceItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/UpdateSourceItemProvider.java
new file mode 100644
index 0000000..687c535
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/UpdateSourceItemProvider.java
@@ -0,0 +1,85 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: UpdateSourceItemProvider.java,v 1.1 2007/09/25 23:18:02 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.UpdateSource;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.UpdateSource} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class UpdateSourceItemProvider
+  extends SQLQueryObjectItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public UpdateSourceItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((UpdateSource)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_UpdateSource_type") :
+            getString("_UI_UpdateSource_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/UpdateSourceQueryItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/UpdateSourceQueryItemProvider.java
new file mode 100644
index 0000000..8739bb4
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/UpdateSourceQueryItemProvider.java
@@ -0,0 +1,123 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: UpdateSourceQueryItemProvider.java,v 1.1 2007/09/25 23:18:02 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceQuery;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.UpdateSourceQuery} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class UpdateSourceQueryItemProvider
+  extends UpdateSourceItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public UpdateSourceQueryItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.UPDATE_SOURCE_QUERY__QUERY_EXPR);
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((UpdateSourceQuery)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_UpdateSourceQuery_type") :
+            getString("_UI_UpdateSourceQuery_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(UpdateSourceQuery.class)) {
+            case SQLQueryModelPackage.UPDATE_SOURCE_QUERY__QUERY_EXPR:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionAtomicItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionAtomicItemProvider.java
new file mode 100644
index 0000000..5011982
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionAtomicItemProvider.java
@@ -0,0 +1,85 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionAtomicItemProvider.java,v 1.1 2007/09/25 23:18:02 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionAtomic;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionAtomic} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ValueExpressionAtomicItemProvider
+  extends QueryValueExpressionItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public ValueExpressionAtomicItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((ValueExpressionAtomic)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_ValueExpressionAtomic_type") :
+            getString("_UI_ValueExpressionAtomic_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionCaseElseItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionCaseElseItemProvider.java
new file mode 100644
index 0000000..b23d1fa
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionCaseElseItemProvider.java
@@ -0,0 +1,123 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionCaseElseItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ValueExpressionCaseElseItemProvider
+  extends SQLQueryObjectItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public ValueExpressionCaseElseItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.VALUE_EXPRESSION_CASE_ELSE__VALUE_EXPR);
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((ValueExpressionCaseElse)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_ValueExpressionCaseElse_type") :
+            getString("_UI_ValueExpressionCaseElse_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(ValueExpressionCaseElse.class)) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_ELSE__VALUE_EXPR:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionCaseItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionCaseItemProvider.java
new file mode 100644
index 0000000..fa79fed
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionCaseItemProvider.java
@@ -0,0 +1,123 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionCaseItemProvider.java,v 1.1 2007/09/25 23:18:02 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCase;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCase} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ValueExpressionCaseItemProvider
+  extends ValueExpressionAtomicItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public ValueExpressionCaseItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.VALUE_EXPRESSION_CASE__CASE_ELSE);
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((ValueExpressionCase)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_ValueExpressionCase_type") :
+            getString("_UI_ValueExpressionCase_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(ValueExpressionCase.class)) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE__CASE_ELSE:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionCaseSearchContentItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionCaseSearchContentItemProvider.java
new file mode 100644
index 0000000..f4c8e37
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionCaseSearchContentItemProvider.java
@@ -0,0 +1,125 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionCaseSearchContentItemProvider.java,v 1.1 2007/09/25 23:18:02 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ValueExpressionCaseSearchContentItemProvider
+  extends SQLQueryObjectItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public ValueExpressionCaseSearchContentItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.VALUE_EXPRESSION_CASE_SEARCH_CONTENT__VALUE_EXPR);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.VALUE_EXPRESSION_CASE_SEARCH_CONTENT__SEARCH_CONDITION);
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((ValueExpressionCaseSearchContent)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_ValueExpressionCaseSearchContent_type") :
+            getString("_UI_ValueExpressionCaseSearchContent_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(ValueExpressionCaseSearchContent.class)) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH_CONTENT__VALUE_EXPR:
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH_CONTENT__SEARCH_CONDITION:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionCaseSearchItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionCaseSearchItemProvider.java
new file mode 100644
index 0000000..9ec75ea
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionCaseSearchItemProvider.java
@@ -0,0 +1,123 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionCaseSearchItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearch;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearch} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ValueExpressionCaseSearchItemProvider
+  extends ValueExpressionCaseItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public ValueExpressionCaseSearchItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.VALUE_EXPRESSION_CASE_SEARCH__SEARCH_CONTENT_LIST);
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((ValueExpressionCaseSearch)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_ValueExpressionCaseSearch_type") :
+            getString("_UI_ValueExpressionCaseSearch_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(ValueExpressionCaseSearch.class)) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH__SEARCH_CONTENT_LIST:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionCaseSimpleContentItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionCaseSimpleContentItemProvider.java
new file mode 100644
index 0000000..506418f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionCaseSimpleContentItemProvider.java
@@ -0,0 +1,125 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionCaseSimpleContentItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ValueExpressionCaseSimpleContentItemProvider
+  extends SQLQueryObjectItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public ValueExpressionCaseSimpleContentItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__WHEN_VALUE_EXPR);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__RESULT_VALUE_EXPR);
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((ValueExpressionCaseSimpleContent)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_ValueExpressionCaseSimpleContent_type") :
+            getString("_UI_ValueExpressionCaseSimpleContent_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(ValueExpressionCaseSimpleContent.class)) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__WHEN_VALUE_EXPR:
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__RESULT_VALUE_EXPR:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionCaseSimpleItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionCaseSimpleItemProvider.java
new file mode 100644
index 0000000..9769a55
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionCaseSimpleItemProvider.java
@@ -0,0 +1,125 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionCaseSimpleItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ValueExpressionCaseSimpleItemProvider
+  extends ValueExpressionCaseItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public ValueExpressionCaseSimpleItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.VALUE_EXPRESSION_CASE_SIMPLE__CONTENT_LIST);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.VALUE_EXPRESSION_CASE_SIMPLE__VALUE_EXPR);
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((ValueExpressionCaseSimple)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_ValueExpressionCaseSimple_type") :
+            getString("_UI_ValueExpressionCaseSimple_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(ValueExpressionCaseSimple.class)) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE__CONTENT_LIST:
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE__VALUE_EXPR:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionCastItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionCastItemProvider.java
new file mode 100644
index 0000000..8bd3208
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionCastItemProvider.java
@@ -0,0 +1,123 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionCastItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ValueExpressionCastItemProvider
+  extends ValueExpressionAtomicItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public ValueExpressionCastItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.VALUE_EXPRESSION_CAST__VALUE_EXPR);
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((ValueExpressionCast)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_ValueExpressionCast_type") :
+            getString("_UI_ValueExpressionCast_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(ValueExpressionCast.class)) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CAST__VALUE_EXPR:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionColumnItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionColumnItemProvider.java
new file mode 100644
index 0000000..7c83e57
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionColumnItemProvider.java
@@ -0,0 +1,203 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionColumnItemProvider.java,v 1.1 2007/09/25 23:18:02 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ValueExpressionColumnItemProvider
+  extends ValueExpressionAtomicItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public ValueExpressionColumnItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+            addAssignmentExprTargetPropertyDescriptor(object);
+            addInsertStatementPropertyDescriptor(object);
+            addTableExprPropertyDescriptor(object);
+            addTableInDatabasePropertyDescriptor(object);
+            addMergeInsertSpecPropertyDescriptor(object);
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This adds a property descriptor for the Assignment Expr Target feature.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected void addAssignmentExprTargetPropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_ValueExpressionColumn_assignmentExprTarget_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_ValueExpressionColumn_assignmentExprTarget_feature", "_UI_ValueExpressionColumn_type"),
+                 SQLQueryModelPackage.Literals.VALUE_EXPRESSION_COLUMN__ASSIGNMENT_EXPR_TARGET,
+                 true,
+                 false,
+                 false,
+                 null,
+                 null,
+                 null));
+    }
+
+    /**
+     * This adds a property descriptor for the Table Expr feature.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected void addTableExprPropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_ValueExpressionColumn_tableExpr_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_ValueExpressionColumn_tableExpr_feature", "_UI_ValueExpressionColumn_type"),
+                 SQLQueryModelPackage.Literals.VALUE_EXPRESSION_COLUMN__TABLE_EXPR,
+                 true,
+                 false,
+                 false,
+                 null,
+                 null,
+                 null));
+    }
+
+    /**
+     * This adds a property descriptor for the Table In Database feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected void addTableInDatabasePropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_ValueExpressionColumn_tableInDatabase_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_ValueExpressionColumn_tableInDatabase_feature", "_UI_ValueExpressionColumn_type"),
+                 SQLQueryModelPackage.Literals.VALUE_EXPRESSION_COLUMN__TABLE_IN_DATABASE,
+                 true,
+                 false,
+                 false,
+                 null,
+                 null,
+                 null));
+    }
+
+    /**
+     * This adds a property descriptor for the Merge Insert Spec feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected void addMergeInsertSpecPropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_ValueExpressionColumn_mergeInsertSpec_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_ValueExpressionColumn_mergeInsertSpec_feature", "_UI_ValueExpressionColumn_type"),
+                 SQLQueryModelPackage.Literals.VALUE_EXPRESSION_COLUMN__MERGE_INSERT_SPEC,
+                 true,
+                 false,
+                 true,
+                 null,
+                 null,
+                 null));
+    }
+
+    /**
+     * This adds a property descriptor for the Insert Statement feature.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected void addInsertStatementPropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_ValueExpressionColumn_insertStatement_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_ValueExpressionColumn_insertStatement_feature", "_UI_ValueExpressionColumn_type"),
+                 SQLQueryModelPackage.Literals.VALUE_EXPRESSION_COLUMN__INSERT_STATEMENT,
+                 true,
+                 false,
+                 false,
+                 null,
+                 null,
+                 null));
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((ValueExpressionColumn)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_ValueExpressionColumn_type") :
+            getString("_UI_ValueExpressionColumn_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionCombinedItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionCombinedItemProvider.java
new file mode 100644
index 0000000..48dd5cb
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionCombinedItemProvider.java
@@ -0,0 +1,153 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionCombinedItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ValueExpressionCombinedItemProvider
+  extends QueryValueExpressionItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public ValueExpressionCombinedItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+            addCombinedOperatorPropertyDescriptor(object);
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This adds a property descriptor for the Combined Operator feature.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected void addCombinedOperatorPropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_ValueExpressionCombined_combinedOperator_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_ValueExpressionCombined_combinedOperator_feature", "_UI_ValueExpressionCombined_type"),
+                 SQLQueryModelPackage.Literals.VALUE_EXPRESSION_COMBINED__COMBINED_OPERATOR,
+                 true,
+                 false,
+                 false,
+                 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+                 null,
+                 null));
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.VALUE_EXPRESSION_COMBINED__LEFT_VALUE_EXPR);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.VALUE_EXPRESSION_COMBINED__RIGHT_VALUE_EXPR);
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((ValueExpressionCombined)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_ValueExpressionCombined_type") :
+            getString("_UI_ValueExpressionCombined_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(ValueExpressionCombined.class)) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COMBINED__COMBINED_OPERATOR:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+                return;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COMBINED__LEFT_VALUE_EXPR:
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COMBINED__RIGHT_VALUE_EXPR:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionDefaultValueItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionDefaultValueItemProvider.java
new file mode 100644
index 0000000..460f664
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionDefaultValueItemProvider.java
@@ -0,0 +1,85 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionDefaultValueItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionDefaultValue;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionDefaultValue} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ValueExpressionDefaultValueItemProvider
+  extends ValueExpressionAtomicItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public ValueExpressionDefaultValueItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((ValueExpressionDefaultValue)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_ValueExpressionDefaultValue_type") :
+            getString("_UI_ValueExpressionDefaultValue_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionFunctionItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionFunctionItemProvider.java
new file mode 100644
index 0000000..15a9606
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionFunctionItemProvider.java
@@ -0,0 +1,222 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionFunctionItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ValueExpressionFunctionItemProvider
+  extends ValueExpressionAtomicItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public ValueExpressionFunctionItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+            addSpecialRegisterPropertyDescriptor(object);
+            addDistinctPropertyDescriptor(object);
+            addColumnFunctionPropertyDescriptor(object);
+            addFunctionPropertyDescriptor(object);
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This adds a property descriptor for the Special Register feature.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected void addSpecialRegisterPropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_ValueExpressionFunction_specialRegister_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_ValueExpressionFunction_specialRegister_feature", "_UI_ValueExpressionFunction_type"),
+                 SQLQueryModelPackage.Literals.VALUE_EXPRESSION_FUNCTION__SPECIAL_REGISTER,
+                 true,
+                 false,
+                 false,
+                 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+                 null,
+                 null));
+    }
+
+    /**
+     * This adds a property descriptor for the Distinct feature.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected void addDistinctPropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_ValueExpressionFunction_distinct_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_ValueExpressionFunction_distinct_feature", "_UI_ValueExpressionFunction_type"),
+                 SQLQueryModelPackage.Literals.VALUE_EXPRESSION_FUNCTION__DISTINCT,
+                 true,
+                 false,
+                 false,
+                 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+                 null,
+                 null));
+    }
+
+    /**
+     * This adds a property descriptor for the Column Function feature.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected void addColumnFunctionPropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_ValueExpressionFunction_columnFunction_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_ValueExpressionFunction_columnFunction_feature", "_UI_ValueExpressionFunction_type"),
+                 SQLQueryModelPackage.Literals.VALUE_EXPRESSION_FUNCTION__COLUMN_FUNCTION,
+                 true,
+                 false,
+                 false,
+                 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+                 null,
+                 null));
+    }
+
+    /**
+     * This adds a property descriptor for the Function feature.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	protected void addFunctionPropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_ValueExpressionFunction_function_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_ValueExpressionFunction_function_feature", "_UI_ValueExpressionFunction_type"),
+                 SQLQueryModelPackage.Literals.VALUE_EXPRESSION_FUNCTION__FUNCTION,
+                 true,
+                 false,
+                 false,
+                 null,
+                 null,
+                 null));
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.VALUE_EXPRESSION_FUNCTION__PARAMETER_LIST);
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((ValueExpressionFunction)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_ValueExpressionFunction_type") :
+            getString("_UI_ValueExpressionFunction_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(ValueExpressionFunction.class)) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__SPECIAL_REGISTER:
+            case SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__DISTINCT:
+            case SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__COLUMN_FUNCTION:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+                return;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__PARAMETER_LIST:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionLabeledDurationItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionLabeledDurationItemProvider.java
new file mode 100644
index 0000000..d1e0f77
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionLabeledDurationItemProvider.java
@@ -0,0 +1,151 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionLabeledDurationItemProvider.java,v 1.1 2007/09/25 23:18:02 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ValueExpressionLabeledDurationItemProvider
+  extends ValueExpressionAtomicItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public ValueExpressionLabeledDurationItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+            addLabeledDurationTypePropertyDescriptor(object);
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This adds a property descriptor for the Labeled Duration Type feature.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	protected void addLabeledDurationTypePropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_ValueExpressionLabeledDuration_labeledDurationType_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_ValueExpressionLabeledDuration_labeledDurationType_feature", "_UI_ValueExpressionLabeledDuration_type"),
+                 SQLQueryModelPackage.Literals.VALUE_EXPRESSION_LABELED_DURATION__LABELED_DURATION_TYPE,
+                 true,
+                 false,
+                 false,
+                 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+                 null,
+                 null));
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.VALUE_EXPRESSION_LABELED_DURATION__VALUE_EXPR);
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((ValueExpressionLabeledDuration)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_ValueExpressionLabeledDuration_type") :
+            getString("_UI_ValueExpressionLabeledDuration_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(ValueExpressionLabeledDuration.class)) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_LABELED_DURATION__LABELED_DURATION_TYPE:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+                return;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_LABELED_DURATION__VALUE_EXPR:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionNestedItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionNestedItemProvider.java
new file mode 100644
index 0000000..23d4816
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionNestedItemProvider.java
@@ -0,0 +1,123 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionNestedItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ValueExpressionNestedItemProvider
+  extends QueryValueExpressionItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public ValueExpressionNestedItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.Literals.VALUE_EXPRESSION_NESTED__NESTED_VALUE_EXPR);
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((ValueExpressionNested)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_ValueExpressionNested_type") :
+            getString("_UI_ValueExpressionNested_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(ValueExpressionNested.class)) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_NESTED__NESTED_VALUE_EXPR:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionNullValueItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionNullValueItemProvider.java
new file mode 100644
index 0000000..4bdf145
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionNullValueItemProvider.java
@@ -0,0 +1,85 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionNullValueItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNullValue;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionNullValue} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ValueExpressionNullValueItemProvider
+  extends ValueExpressionAtomicItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public ValueExpressionNullValueItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((ValueExpressionNullValue)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_ValueExpressionNullValue_type") :
+            getString("_UI_ValueExpressionNullValue_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionRowItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionRowItemProvider.java
new file mode 100644
index 0000000..9edbc0e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionRowItemProvider.java
@@ -0,0 +1,135 @@
+/**

+ * <copyright>

+ * </copyright>

+ *

+ * $Id$

+ */

+package org.eclipse.datatools.modelbase.sql.query.provider;

+

+

+import java.util.Collection;

+import java.util.List;

+

+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;

+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionRow;

+

+import org.eclipse.emf.common.notify.AdapterFactory;

+import org.eclipse.emf.common.notify.Notification;

+

+import org.eclipse.emf.ecore.EStructuralFeature;

+

+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;

+import org.eclipse.emf.edit.provider.IItemLabelProvider;

+import org.eclipse.emf.edit.provider.IItemPropertySource;

+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;

+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;

+import org.eclipse.emf.edit.provider.ViewerNotification;

+

+/**

+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionRow} object.

+ * <!-- begin-user-doc -->

+ * <!-- end-user-doc -->

+ * @generated

+ */

+public class ValueExpressionRowItemProvider

+    extends QueryValueExpressionItemProvider

+    implements

+        IEditingDomainItemProvider,

+        IStructuredItemContentProvider,

+        ITreeItemContentProvider,

+        IItemLabelProvider,

+        IItemPropertySource {

+    /**

+     * This constructs an instance from a factory and a notifier.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public ValueExpressionRowItemProvider(AdapterFactory adapterFactory) {

+        super(adapterFactory);

+    }

+

+    /**

+     * This returns the property descriptors for the adapted class.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public List getPropertyDescriptors(Object object) {

+        if (itemPropertyDescriptors == null) {

+            super.getPropertyDescriptors(object);

+

+        }

+        return itemPropertyDescriptors;

+    }

+

+    /**

+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an

+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or

+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public Collection getChildrenFeatures(Object object) {

+        if (childrenFeatures == null) {

+            super.getChildrenFeatures(object);

+            childrenFeatures.add(SQLQueryModelPackage.Literals.VALUE_EXPRESSION_ROW__VALUE_EXPR_LIST);

+        }

+        return childrenFeatures;

+    }

+

+    /**

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    protected EStructuralFeature getChildFeature(Object object, Object child) {

+        // Check the type of the specified child object and return the proper feature to use for

+        // adding (see {@link AddCommand}) it as a child.

+

+        return super.getChildFeature(object, child);

+    }

+

+    /**

+     * This returns ValueExpressionRow.gif.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public Object getImage(Object object) {

+        return overlayImage(object, getResourceLocator().getImage("full/obj16/ValueExpressionRow"));

+    }

+

+    /**

+     * This returns the label text for the adapted class.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public String getText(Object object) {

+        String label = ((ValueExpressionRow)object).getName();

+        return label == null || label.length() == 0 ?

+            getString("_UI_ValueExpressionRow_type") :

+            getString("_UI_ValueExpressionRow_type") + " " + label;

+    }

+

+    /**

+     * This handles model notifications by calling {@link #updateChildren} to update any cached

+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public void notifyChanged(Notification notification) {

+        updateChildren(notification);

+

+        switch (notification.getFeatureID(ValueExpressionRow.class)) {

+            case SQLQueryModelPackage.VALUE_EXPRESSION_ROW__VALUE_EXPR_LIST:

+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));

+                return;

+        }

+        super.notifyChanged(notification);

+    }

+

+}

diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionScalarSelectItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionScalarSelectItemProvider.java
new file mode 100644
index 0000000..561c17f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionScalarSelectItemProvider.java
@@ -0,0 +1,111 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionScalarSelectItemProvider.java,v 1.1 2007/09/25 23:18:02 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionScalarSelect;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionScalarSelect} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ValueExpressionScalarSelectItemProvider
+  extends ValueExpressionAtomicItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public ValueExpressionScalarSelectItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+            addQueryExprPropertyDescriptor(object);
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This adds a property descriptor for the Query Expr feature.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected void addQueryExprPropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_ValueExpressionScalarSelect_queryExpr_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_ValueExpressionScalarSelect_queryExpr_feature", "_UI_ValueExpressionScalarSelect_type"),
+                 SQLQueryModelPackage.Literals.VALUE_EXPRESSION_SCALAR_SELECT__QUERY_EXPR,
+                 true,
+                 false,
+                 false,
+                 null,
+                 null,
+                 null));
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((ValueExpressionScalarSelect)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_ValueExpressionScalarSelect_type") :
+            getString("_UI_ValueExpressionScalarSelect_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionSimpleItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionSimpleItemProvider.java
new file mode 100644
index 0000000..e868113
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionSimpleItemProvider.java
@@ -0,0 +1,118 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionSimpleItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionSimple;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionSimple} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ValueExpressionSimpleItemProvider
+  extends ValueExpressionAtomicItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public ValueExpressionSimpleItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+            addValuePropertyDescriptor(object);
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This adds a property descriptor for the Value feature.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected void addValuePropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_ValueExpressionSimple_value_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_ValueExpressionSimple_value_feature", "_UI_ValueExpressionSimple_type"),
+                 SQLQueryModelPackage.Literals.VALUE_EXPRESSION_SIMPLE__VALUE,
+                 true,
+                 false,
+                 false,
+                 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+                 null,
+                 null));
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((ValueExpressionSimple)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_ValueExpressionSimple_type") :
+            getString("_UI_ValueExpressionSimple_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(ValueExpressionSimple.class)) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_SIMPLE__VALUE:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionVariableItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionVariableItemProvider.java
new file mode 100644
index 0000000..126a707
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValueExpressionVariableItemProvider.java
@@ -0,0 +1,85 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionVariableItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionVariable;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionVariable} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ValueExpressionVariableItemProvider
+  extends ValueExpressionAtomicItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public ValueExpressionVariableItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((ValueExpressionVariable)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_ValueExpressionVariable_type") :
+            getString("_UI_ValueExpressionVariable_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValuesRowItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValuesRowItemProvider.java
new file mode 100644
index 0000000..55b7329
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/ValuesRowItemProvider.java
@@ -0,0 +1,133 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValuesRowItemProvider.java,v 1.1 2007/09/25 23:18:02 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.ValuesRow} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ValuesRowItemProvider
+  extends SQLQueryObjectItemProvider
+  implements
+    IEditingDomainItemProvider,
+    IStructuredItemContentProvider,
+    ITreeItemContentProvider,
+    IItemLabelProvider,
+    IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public ValuesRowItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated NOT
+     */
+  public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            //childrenFeatures.add(SQLQueryModelPackage.eINSTANCE.getValuesRow_ExprList());
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns ValuesRow.gif.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public Object getImage(Object object) {
+        return overlayImage(object, getResourceLocator().getImage("full/obj16/ValuesRow"));
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public String getText(Object object) {
+        String label = ((ValuesRow)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_ValuesRow_type") :
+            getString("_UI_ValuesRow_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(ValuesRow.class)) {
+            case SQLQueryModelPackage.VALUES_ROW__EXPR_LIST:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/WithTableReferenceItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/WithTableReferenceItemProvider.java
new file mode 100644
index 0000000..da9fb3a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/WithTableReferenceItemProvider.java
@@ -0,0 +1,111 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: WithTableReferenceItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.WithTableReference;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.WithTableReference} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class WithTableReferenceItemProvider
+	extends TableExpressionItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public WithTableReferenceItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+            addWithTableSpecificationPropertyDescriptor(object);
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This adds a property descriptor for the With Table Specification feature.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	protected void addWithTableSpecificationPropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_WithTableReference_withTableSpecification_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_WithTableReference_withTableSpecification_feature", "_UI_WithTableReference_type"),
+                 SQLQueryModelPackage.Literals.WITH_TABLE_REFERENCE__WITH_TABLE_SPECIFICATION,
+                 true,
+                 false,
+                 false,
+                 null,
+                 null,
+                 null));
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public String getText(Object object) {
+        String label = ((WithTableReference)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_WithTableReference_type") :
+            getString("_UI_WithTableReference_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/WithTableSpecificationItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/WithTableSpecificationItemProvider.java
new file mode 100644
index 0000000..a32ce25
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/query/provider/WithTableSpecificationItemProvider.java
@@ -0,0 +1,160 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: WithTableSpecificationItemProvider.java,v 1.1 2007/09/25 23:18:03 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.WithTableSpecification;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.datatools.modelbase.sql.query.WithTableSpecification} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class WithTableSpecificationItemProvider
+	extends SQLQueryObjectItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+    /**
+     * This constructs an instance from a factory and a notifier.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public WithTableSpecificationItemProvider(AdapterFactory adapterFactory) {
+        super(adapterFactory);
+    }
+
+    /**
+     * This returns the property descriptors for the adapted class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public List getPropertyDescriptors(Object object) {
+        if (itemPropertyDescriptors == null) {
+            super.getPropertyDescriptors(object);
+
+            addWithTableReferencesPropertyDescriptor(object);
+        }
+        return itemPropertyDescriptors;
+    }
+
+    /**
+     * This adds a property descriptor for the With Table References feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected void addWithTableReferencesPropertyDescriptor(Object object) {
+        itemPropertyDescriptors.add
+            (createItemPropertyDescriptor
+                (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+                 getResourceLocator(),
+                 getString("_UI_WithTableSpecification_withTableReferences_feature"),
+                 getString("_UI_PropertyDescriptor_description", "_UI_WithTableSpecification_withTableReferences_feature", "_UI_WithTableSpecification_type"),
+                 SQLQueryModelPackage.Literals.WITH_TABLE_SPECIFICATION__WITH_TABLE_REFERENCES,
+                 true,
+                 false,
+                 false,
+                 null,
+                 null,
+                 null));
+    }
+
+    /**
+     * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+     * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+     * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated NOT
+     */
+	public Collection getChildrenFeatures(Object object) {
+        if (childrenFeatures == null) {
+            super.getChildrenFeatures(object);
+            childrenFeatures.add(SQLQueryModelPackage.eINSTANCE.getWithTableSpecification_WithTableQueryExpr());
+            //childrenFeatures.add(SQLQueryModelPackage.eINSTANCE.getWithTableSpecification_ColumnNameList());
+        }
+        return childrenFeatures;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+        // Check the type of the specified child object and return the proper feature to use for
+        // adding (see {@link AddCommand}) it as a child.
+
+        return super.getChildFeature(object, child);
+    }
+
+    /**
+     * This returns WithTableSpecification.gif.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object getImage(Object object) {
+        return overlayImage(object, getResourceLocator().getImage("full/obj16/WithTableSpecification"));
+    }
+
+    /**
+     * This returns the label text for the adapted class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public String getText(Object object) {
+        String label = ((WithTableSpecification)object).getName();
+        return label == null || label.length() == 0 ?
+            getString("_UI_WithTableSpecification_type") :
+            getString("_UI_WithTableSpecification_type") + " " + label;
+    }
+
+    /**
+     * This handles model notifications by calling {@link #updateChildren} to update any cached
+     * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void notifyChanged(Notification notification) {
+        updateChildren(notification);
+
+        switch (notification.getFeatureID(WithTableSpecification.class)) {
+            case SQLQueryModelPackage.WITH_TABLE_SPECIFICATION__WITH_TABLE_QUERY_EXPR:
+            case SQLQueryModelPackage.WITH_TABLE_SPECIFICATION__COLUMN_NAME_LIST:
+                fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+                return;
+        }
+        super.notifyChanged(notification);
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/schema/provider/SQLObjectItemProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/schema/provider/SQLObjectItemProvider.java
new file mode 100644
index 0000000..5c7bde4
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/schema/provider/SQLObjectItemProvider.java
@@ -0,0 +1,192 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SQLObjectItemProvider.java,v 1.1 2007/03/22 17:10:14 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.schema.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaFactory;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.provider.ENamedElementItemProvider;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adpater for a {@link com.ibm.db.models.sql.schema.SQLObject} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SQLObjectItemProvider
+	extends ENamedElementItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLObjectItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addDescriptionPropertyDescriptor(object);
+			addLabelPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Description feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDescriptionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(new ItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_SQLObject_description_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_SQLObject_description_feature", "_UI_SQLObject_type"),
+				 SQLSchemaPackage.eINSTANCE.getSQLObject_Description(),
+				 true,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE));
+	}
+
+	/**
+	 * This adds a property descriptor for the Label feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addLabelPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(new ItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_SQLObject_label_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_SQLObject_label_feature", "_UI_SQLObject_type"),
+				 SQLSchemaPackage.eINSTANCE.getSQLObject_Label(),
+				 true,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Collection getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(SQLSchemaPackage.eINSTANCE.getSQLObject_Dependencies());
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * This returns SQLObject.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getImage(Object object) {
+		return getResourceLocator().getImage("full/obj16/SQLObject");
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText(Object object) {
+		String label = ((SQLObject)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_SQLObject_type") :
+			getString("_UI_SQLObject_type") + " " + label;
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(SQLObject.class)) {
+			case SQLSchemaPackage.SQL_OBJECT__DESCRIPTION:
+			case SQLSchemaPackage.SQL_OBJECT__LABEL:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds to the collection of {@link org.eclipse.emf.edit.command.CommandParameter}s
+	 * describing all of the children that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SQLSchemaPackage.eINSTANCE.getSQLObject_Dependencies(),
+				 SQLSchemaFactory.eINSTANCE.createDependency()));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ResourceLocator getResourceLocator() {
+		return SqlmodelEditPlugin.INSTANCE;
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/schema/provider/SqlmodelEditPlugin.java b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/schema/provider/SqlmodelEditPlugin.java
new file mode 100644
index 0000000..20136c8
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query.edit/src/org/eclipse/datatools/modelbase/sql/schema/provider/SqlmodelEditPlugin.java
@@ -0,0 +1,94 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SqlmodelEditPlugin.java,v 1.1 2007/03/22 17:10:14 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.schema.provider;
+
+import org.eclipse.emf.common.EMFPlugin;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.provider.EcoreEditPlugin;
+
+/**
+ * This is the central singleton for the SQLModel edit plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public final class SqlmodelEditPlugin extends EMFPlugin {
+	/**
+	 * Keep track of the singleton.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final SqlmodelEditPlugin INSTANCE = new SqlmodelEditPlugin();
+
+	/**
+	 * Keep track of the singleton.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static Implementation plugin;
+
+	/**
+	 * Create the instance.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SqlmodelEditPlugin() {
+		super
+		  (new ResourceLocator [] {
+		     EcoreEditPlugin.INSTANCE,
+		   });
+	}
+
+	/**
+	 * Returns the singleton instance of the Eclipse plugin.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the singleton instance.
+	 * @generated
+	 */
+	public ResourceLocator getPluginResourceLocator() {
+		return plugin;
+	}
+
+	/**
+	 * Returns the singleton instance of the Eclipse plugin.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the singleton instance.
+	 * @generated
+	 */
+	public static Implementation getPlugin() {
+		return plugin;
+	}
+
+	/**
+	 * The actual implementation of the Eclipse <b>Plugin</b>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static class Implementation extends EclipsePlugin {
+		/**
+		 * Creates an instance.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @param descriptor the description of the plugin.
+		 * @generated
+		 */
+		public Implementation() {
+			super();
+
+			// Remember the static instance.
+			//
+			plugin = this;
+		}
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/.classpath b/plugins/org.eclipse.datatools.modelbase.sql.query/.classpath
new file mode 100644
index 0000000..304e861
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/.gitignore b/plugins/org.eclipse.datatools.modelbase.sql.query/.gitignore
new file mode 100644
index 0000000..ba077a4
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/.gitignore
@@ -0,0 +1 @@
+bin
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/.options b/plugins/org.eclipse.datatools.modelbase.sql.query/.options
new file mode 100644
index 0000000..ab5f888
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/.options
@@ -0,0 +1 @@
+org.eclipse.datatools.modelbase.sql.query/debug=false
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/.project b/plugins/org.eclipse.datatools.modelbase.sql.query/.project
new file mode 100644
index 0000000..743737b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.datatools.modelbase.sql.query</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/.settings/.gitignore b/plugins/org.eclipse.datatools.modelbase.sql.query/.settings/.gitignore
new file mode 100644
index 0000000..013bce7
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/.settings/.gitignore
@@ -0,0 +1 @@
+org.eclipse.jdt.core.prefs
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/META-INF/MANIFEST.MF b/plugins/org.eclipse.datatools.modelbase.sql.query/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..b55166a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/META-INF/MANIFEST.MF
@@ -0,0 +1,20 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.datatools.modelbase.sql.query; singleton:=true
+Bundle-Version: 1.3.1.qualifier
+Bundle-Activator: org.eclipse.datatools.modelbase.sql.query.util.SQLQueryModelPlugin
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Require-Bundle: 
+ org.eclipse.core.runtime,
+ org.eclipse.datatools.modelbase.sql;visibility:=reexport
+Import-Package: com.ibm.icu.text;version="3.6.1",
+ com.ibm.icu.util;version="3.6.1"
+Export-Package: 
+ org.eclipse.datatools.modelbase.sql.query,
+ org.eclipse.datatools.modelbase.sql.query.helper,
+ org.eclipse.datatools.modelbase.sql.query.impl,
+ org.eclipse.datatools.modelbase.sql.query.util
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/about.html b/plugins/org.eclipse.datatools.modelbase.sql.query/about.html
new file mode 100644
index 0000000..129db9d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 15, 2009</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/build.properties b/plugins/org.eclipse.datatools.modelbase.sql.query/build.properties
new file mode 100644
index 0000000..13c0717
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/build.properties
@@ -0,0 +1,16 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               model/,\
+               .,\
+               plugin.xml,\
+               about.html,\
+               plugin.properties
+               
+src.dir =		src/
+plugin.version =	1.0.0.200706151
+javadoc.dir =		doc/api/
+download.dir =		./download/
+javac.source =		1.4
+javac.target =		1.4
+src.includes = about.html
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/build.xml b/plugins/org.eclipse.datatools.modelbase.sql.query/build.xml
new file mode 100644
index 0000000..99082a9
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/build.xml
@@ -0,0 +1,174 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ *************************************************************************
+ * Copyright (c) 2005 Sybase, Inc. and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *  Sybase, Inc.  - initial API and implementation
+ *  
+ ***************************************************************************
+ -->
+<project name="org.eclipse.datatools.modelbase.sql.query" default="build.jars" basedir=".">
+	<import file="../org.eclipse.datatools.build/common_build.xml" optional="true"/>
+	<property name="module.name" value="org.eclipse.datatools.modelbase.sql.query"/>
+	<property name="basews" value="${ws}"/>
+	<property name="baseos" value="${os}"/>
+	<property name="basearch" value="${arch}"/>
+	<property name="basenl" value="${nl}"/>
+	<property name="eclipse.home" location="."/>
+	<property file="build.properties"/>
+	<!-- JavaDoc settings -->
+	<property name="javadocWindowTitle" value="DTP SQL Query Model"/>
+	<property name="javadocDocTitle" value="DTP SQL Query Model API (Internal)"/>
+	<property name="javadocPackages" value="org.eclipse.datatools.modelbase.sql.query.*"/>
+	<property name="javadocFooter" value="&lt;i>Copyright &#169;  2005 IBM Corporation and others. All rights reserved. &lt;/i>"/>
+	<!-- Compiler settings. -->
+	<property name="javacFailOnError" value="true"/>
+	<property name="javacDebugInfo" value="on"/>
+	<property name="javacVerbose" value="true"/>
+	<property name="javacSource" value="${javac.source}"/>
+	<property name="javacTarget" value="${javac.target}"/>
+	<property name="compilerArg" value=""/>
+	<path id="path_bootclasspath">
+		<fileset dir="${java.home}/lib">
+			<include name="*.jar"/>
+		</fileset>
+		<!-- Plug-ins found in Eclipse install directory -->
+		<fileset dir="${eclipse.home}/plugins">
+			<include name="org.eclipse.core.runtime_*.jar"/>
+			<include name="org.eclipse.osgi_*.jar"/>
+			<include name="com.ibm.icu_*.jar"/>
+			<!-- Include jared EMF plug-ins -->
+			<include name="org.eclipse.emf.ecore_*.jar"/>
+			<include name="org.eclipse.emf.common_*.jar"/>
+			<include name="org.eclipse.emf.ecore.sdo_*.jar"/>
+			<include name="org.eclipse.emf.commonj.sdo_*.jar"/>
+			<include name="org.eclipse.emf.ecore.xmi_*.jar"/>
+			<include name="org.eclipse.emf.ecore.change_*.jar"/>
+			<!-- Include expanded EMF plug-ins -->
+			<include name="org.eclipse.core.runtime_*/org.eclipse.core.runtime_*.jar"/>
+			<include name="org.eclipse.osgi_*/org.eclipse.osgi_*.jar"/>
+			<include name="org.eclipse.emf.ecore_*/org.eclipse.emf.ecore*.jar"/>
+			<include name="org.eclipse.emf.common_*/org.eclipse.emf.common*.jar"/>
+			<include name="org.eclipse.emf.ecore.sdo_*/org.eclipse.emf.ecore.sdo*.jar"/>
+			<include name="org.eclipse.emf.commonj.sdo_*/org.eclipse.emf.commonj.sdo*.jar"/>
+			<include name="org.eclipse.emf.ecore.xmi_*/org.eclipse.emf.ecore.xmi*.jar"/>
+			<include name="org.eclipse.emf.ecore.change_*/org.eclipse.emf.ecore.change*.jar"/>
+		</fileset>
+		<!-- Dependencies on other DTP plug-ins, built before this one -->
+		<fileset dir="../">
+			<include name="org.eclipse.datatools.modelbase.sql/bin/*"/>
+			<include name="org.eclipse.datatools.modelbase.sql/sqlmodel.jar"/>
+		</fileset>
+	</path>
+	<property name="bootclasspath" refid="path_bootclasspath"/>
+	<target name="init" depends="properties">
+		<condition property="pluginTemp" value="${buildTempFolder}/plugins">
+			<isset property="buildTempFolder"/>
+		</condition>
+		<property name="pluginTemp" value="${basedir}"/>
+		<condition property="build.result.folder" value="${pluginTemp}/${module.name}">
+			<isset property="buildTempFolder"/>
+		</condition>
+		<property name="build.result.folder" value="${basedir}"/>
+		<property name="temp.folder" value="${basedir}/temp.folder"/>
+		<property name="plugin.destination" value="${basedir}"/>
+	</target>
+	<target name="properties" if="eclipse.running">
+		<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
+	</target>
+	<target name="build.update.jar" depends="init" description="Build the plug-in: org.eclipse.datatools.modelbase.sql.query for an update site.">
+		<delete dir="${temp.folder}"/>
+		<mkdir dir="${temp.folder}"/>
+		<antcall target="build.jars"/>
+		<antcall target="gather.bin.parts">
+			<param name="destination.temp.folder" value="${temp.folder}/"/>
+		</antcall>
+		<zip destfile="${plugin.destination}/${module.name}_${plugin.version}.jar" basedir="${temp.folder}/${module.name}_${plugin.version}" filesonly="false" whenempty="skip" update="false"/>
+		<delete dir="${temp.folder}"/>
+	</target>
+	<target name="sqlquerymodel.jar" depends="init" unless="sqlquerymodel.jar" description="Create jar: org.eclipse.datatools.modelbase.sql.query sqlquerymodel.jar.">
+		<delete dir="${temp.folder}/sqlquerymodel.jar.bin"/>
+		<mkdir dir="${temp.folder}/sqlquerymodel.jar.bin"/>
+		<!-- compile the source code -->
+		<javac destdir="${temp.folder}/sqlquerymodel.jar.bin" failonerror="${javacFailOnError}" verbose="${javacVerbose}" debug="${javacDebugInfo}" includeAntRuntime="no" bootclasspath="${bootclasspath}" source="${javacSource}" target="${javacTarget}">
+			<compilerarg line="${compilerArg}"/>
+			<classpath refid="path_bootclasspath"/>
+			<src path="src/"/>
+		</javac>
+		<!-- Copy necessary resources -->
+		<copy todir="${temp.folder}/sqlquerymodel.jar.bin" failonerror="true" overwrite="false">
+			<fileset dir="src/" excludes="**/*.java, **/package.htm*,null"/>
+		</copy>
+		<mkdir dir="${build.result.folder}"/>
+		<jar destfile="${build.result.folder}/sqlquerymodel.jar" basedir="${temp.folder}/sqlquerymodel.jar.bin"/>
+		<delete dir="${temp.folder}/sqlquerymodel.jar.bin"/>
+	</target>
+	<target name="sqlquerymodelsrc.zip" depends="init" unless="sqlquerymodelsrc.zip">
+		<mkdir dir="${build.result.folder}"/>
+		<zip destfile="${build.result.folder}/sqlquerymodelsrc.zip" filesonly="false" whenempty="skip" update="false">
+			<fileset dir="src/" includes="**/*.java"/>
+		</zip>
+	</target>
+	<target name="build.jars" depends="init" description="Build all the jars for the plug-in: org.eclipse.datatools.modelbase.sql.query.">
+		<available property="sqlquerymodel.jar" file="${build.result.folder}/sqlquerymodel.jar"/>
+		<antcall target="sqlquerymodel.jar"/>
+	</target>
+	<target name="build.sources" depends="init">
+		<available property="sqlquerymodelsrc.zip" file="${build.result.folder}/sqlquerymodelsrc.zip"/>
+		<antcall target="sqlquerymodelsrc.zip"/>
+	</target>
+	<target name="gather.bin.parts" depends="init" if="destination.temp.folder">
+		<mkdir dir="${destination.temp.folder}/${module.name}_${plugin.version}"/>
+		<copy todir="${destination.temp.folder}/${module.name}_${plugin.version}" failonerror="true" overwrite="false">
+			<fileset dir="${build.result.folder}" includes="sqlquerymodel.jar"/>
+		</copy>
+		<copy todir="${destination.temp.folder}/${module.name}_${plugin.version}" failonerror="true" overwrite="false">
+			<fileset dir="${basedir}" includes="plugin.xml,about.html,sqlquerymodel.jar,plugin.properties,META-INF/"/>
+		</copy>
+		<copy todir="${destination.temp.folder}/${module.name}_${plugin.version}" failonerror="false" overwrite="false">
+			<fileset dir="${basedir}" includes="sqlquerymodelsrc.zip"/>
+		</copy>
+	</target>
+	<target name="build.zips" depends="init"/>
+	<target name="gather.sources" depends="init" if="destination.temp.folder">
+		<mkdir dir="${destination.temp.folder}/${module.name}_${plugin.version}"/>
+		<copy file="${build.result.folder}/sqlquerymodelsrc.zip" todir="${destination.temp.folder}/${module.name}_${plugin.version}" failonerror="false" overwrite="false"/>
+	</target>
+	<target name="gather.logs" depends="init" if="destination.temp.folder">
+		<mkdir dir="${destination.temp.folder}/${module.name}_${plugin.version}"/>
+		<copy file="${temp.folder}/sqlquerymodel.jar.bin.log" todir="${destination.temp.folder}/${module.name}_${plugin.version}" failonerror="false" overwrite="false"/>
+	</target>
+	<target name="clean" depends="init" description="Clean the plug-in: org.eclipse.datatools.modelbase.sql.query of all the zips, jars and logs created.">
+		<delete file="${build.result.folder}/sqlquerymodel.jar"/>
+		<delete file="${build.result.folder}/sqlquerymodelsrc.zip"/>
+		<delete file="${plugin.destination}/${module.name}_${plugin.version}.jar"/>
+		<delete file="${plugin.destination}/${module.name}_${plugin.version}.zip"/>
+		<delete dir="${temp.folder}"/>
+	</target>
+	<target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+		<eclipse.convertPath fileSystemPath="C:/V3/3.1/eclipse/workspace-dtp/org.eclipse.datatools.modelbase.sql.query" property="resourcePath"/>
+		<eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+	</target>
+	<target name="zip.plugin" depends="init" description="Create a zip containing all the elements for the plug-in: org.eclipse.datatools.modelbase.sql.query.">
+		<delete dir="${temp.folder}"/>
+		<mkdir dir="${temp.folder}"/>
+		<antcall target="build.jars"/>
+		<antcall target="build.sources"/>
+		<antcall target="gather.bin.parts">
+			<param name="destination.temp.folder" value="${temp.folder}/"/>
+		</antcall>
+		<antcall target="gather.sources">
+			<param name="destination.temp.folder" value="${temp.folder}/"/>
+		</antcall>
+		<delete>
+			<fileset dir="${temp.folder}" includes="**/*.bin.log"/>
+		</delete>
+		<zip destfile="${plugin.destination}/${module.name}_${plugin.version}.zip" basedir="${temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+		<delete dir="${temp.folder}"/>
+	</target>
+</project>
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/model/.gitignore b/plugins/org.eclipse.datatools.modelbase.sql.query/model/.gitignore
new file mode 100644
index 0000000..f625a3f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/model/.gitignore
@@ -0,0 +1,2 @@
+/SQLQueryModel.ca~
+/SQLQueryModel.md~
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.cat b/plugins/org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.cat
new file mode 100644
index 0000000..77e207d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.cat
@@ -0,0 +1,25261 @@
+

+(object Petal

+    version    	50

+    _written   	"Rose 2006.0.0.060314"

+    charSet    	0)

+

+(object Class_Category "SQLQueryModel"

+    is_unit    	TRUE

+    is_loaded  	TRUE

+    attributes 	(list Attribute_Set

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"basePackage"

+	    value      	(value Text "org.eclipse.datatools.modelbase.sql"))

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"packageName"

+	    value      	(value Text "query"))

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"prefix"

+	    value      	(value Text "SQLQueryModel"))

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"nsURI"

+	    value      	(value Text "http:///org/eclipse/datatools/modelbase/sql/query/SQLQueryModel.ecore")))

+    quid       	"40467E9F03A6"

+    visible_categories 	(list visibility_relationship_list

+	(object Visibility_Relationship

+	    quid       	"3B38F6F300A9"

+	    supplier   	"Logical View::rdbschema"

+	    quidu      	"3738A5FB0023")

+	(object Visibility_Relationship

+	    quid       	"3B9D19DC01B5"

+	    supplier   	"Logical View::rlogic"

+	    quidu      	"3947FCCA01F9")

+	(object Visibility_Relationship

+	    quid       	"404E1CF70346"

+	    supplier   	"Logical View::SQLModel"

+	    quidu      	"3E9B1F8201C1"))

+    exportControl 	"Public"

+    logical_models 	(list unit_reference_list

+	(object Class "QueryStatement"

+	    quid       	"3B3785180139"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"404683B4025D"

+		    supplier   	"Logical View::SQLQueryModel::SQLQueryObject"

+		    quidu      	"4046839E02AB")

+		(object Inheritance_Relationship

+		    quid       	"40490B870362"

+		    supplier   	"Logical View::SQLModel::Statements::SQLDataStatement"

+		    quidu      	"4049092B0395"))

+	    abstract   	TRUE)

+	(object Class "QueryDeleteStatement"

+	    quid       	"3B378546017C"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"40490F1701B4"

+		    supplier   	"Logical View::SQLQueryModel::QueryChangeStatement"

+		    quidu      	"40490E600298")))

+	(object Class "QueryInsertStatement"

+	    quid       	"3B3785520223"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"40490F1301D7"

+		    supplier   	"Logical View::SQLQueryModel::QueryChangeStatement"

+		    quidu      	"40490E600298")))

+	(object Class "QuerySelectStatement"

+	    quid       	"3B37856000BB"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3B3785C7018B"

+		    supplier   	"Logical View::SQLQueryModel::QueryStatement"

+		    quidu      	"3B3785180139")))

+	(object Class "QueryUpdateStatement"

+	    quid       	"3B3785760076"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"40490F090074"

+		    supplier   	"Logical View::SQLQueryModel::QueryChangeStatement"

+		    quidu      	"40490E600298")))

+	(object Class "UpdateAssignmentExpression"

+	    quid       	"3B378BF6015F"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"404CFC4100D1"

+		    supplier   	"Logical View::SQLQueryModel::SQLQueryObject"

+		    quidu      	"4046839E02AB")))

+	(object Class "CursorReference"

+	    quid       	"3B378C08021A"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"404CFC3B01B9"

+		    supplier   	"Logical View::SQLQueryModel::SQLQueryObject"

+		    quidu      	"4046839E02AB")))

+	(object Class "QuerySearchCondition"

+	    quid       	"3B378C160224"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"404C48A2002A"

+		    supplier   	"Logical View::SQLQueryModel::SQLQueryObject"

+		    quidu      	"4046839E02AB")

+		(object Inheritance_Relationship

+		    quid       	"404CD97202A5"

+		    supplier   	"Logical View::SQLModel::Expressions::SearchCondition"

+		    quidu      	"3FABEC590086"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "negatedCondition"

+		    quid       	"3BE32A19004F"

+		    documentation 	"This represents NOT ( <searchCondition> ).  This attribute and paren can not both be true at the same time."

+		    type       	"boolean"

+		    exportControl 	"Public"))

+	    abstract   	TRUE)

+	(object Class "QueryExpressionBody"

+	    quid       	"3B37924A01CC"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3B37EF4C0061"

+		    supplier   	"Logical View::SQLQueryModel::TableExpression"

+		    quidu      	"3B37EE600288"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "rowFetchLimit"

+		    quid       	"49D166C4029F"

+		    type       	"int"

+		    exportControl 	"Public"))

+	    abstract   	TRUE)

+	(object Class "QueryValueExpression"

+	    quid       	"3B3792520160"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"404CDEDD0137"

+		    supplier   	"Logical View::SQLQueryModel::SQLQueryObject"

+		    quidu      	"4046839E02AB")

+		(object Inheritance_Relationship

+		    quid       	"404CDF0500DA"

+		    supplier   	"Logical View::SQLModel::Expressions::ValueExpression"

+		    quidu      	"3F4D273D00A9"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "unaryOperator"

+		    quid       	"3B3A5FE902E7"

+		    type       	"ValueExpressionUnaryOperator"

+		    quidu      	"3B3A5E0F015F"

+		    exportControl 	"Public")

+		(object ClassAttribute "dataType"

+		    quid       	"41647AC1029F"

+		    type       	"DataType"

+		    quidu      	"3E9B3F3400BF"

+		    exportControl 	"Public"))

+	    abstract   	TRUE)

+	(object Class "QueryExpressionRoot"

+	    quid       	"3B37968301D1"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"4049122F007D"

+		    supplier   	"Logical View::SQLQueryModel::SQLQueryObject"

+		    quidu      	"4046839E02AB")

+		(object Inheritance_Relationship

+		    quid       	"404CD86A02F5"

+		    supplier   	"Logical View::SQLModel::Expressions::QueryExpression"

+		    quidu      	"3F392200019B")))

+	(object Class "ValuesRow"

+	    quid       	"3B3796910130"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"404E4A8F00C1"

+		    supplier   	"Logical View::SQLQueryModel::SQLQueryObject"

+		    quidu      	"4046839E02AB")))

+	(object Class "QueryValues"

+	    quid       	"3B37969E01ED"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3B37F45F0131"

+		    supplier   	"Logical View::SQLQueryModel::QueryExpressionBody"

+		    quidu      	"3B37924A01CC")))

+	(object Class "TableReference"

+	    quid       	"3B37EE200178"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"404922A50195"

+		    supplier   	"Logical View::SQLQueryModel::SQLQueryObject"

+		    quidu      	"4046839E02AB"))

+	    abstract   	TRUE)

+	(object Class "TableExpression"

+	    quid       	"3B37EE600288"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3C1FB7ED00E8"

+		    supplier   	"Logical View::SQLQueryModel::TableReference"

+		    quidu      	"3B37EE200178"))

+	    abstract   	TRUE)

+	(object Class "TableJoined"

+	    quid       	"3B37EEB00323"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3C1FB7EA0080"

+		    supplier   	"Logical View::SQLQueryModel::TableReference"

+		    quidu      	"3B37EE200178"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "joinOperator"

+		    quid       	"3B3A113D0369"

+		    type       	"TableJoinedOperator"

+		    quidu      	"3B3A10F70322"

+		    exportControl 	"Public")))

+	(object Class "WithTableSpecification"

+	    quid       	"3B37EEBD019C"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"41F9707402EF"

+		    supplier   	"Logical View::SQLQueryModel::SQLQueryObject"

+		    quidu      	"4046839E02AB")))

+	(object Class "Predicate"

+	    quid       	"3B37F1C2039C"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3B37F1EE03E5"

+		    supplier   	"Logical View::SQLQueryModel::QuerySearchCondition"

+		    quidu      	"3B378C160224"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "negatedPredicate"

+		    quid       	"3DEE9E260007"

+		    documentation 	

+|This attribute adds the NOT keyword in front of a predicate, so when true you have NOT <predicate>.  If attribute "paren" in the superclass is also true, you get ( NOT <predicate> ).  If attribute "notParen" in the superclass is true, you get NOT ( NOT <predicate> ).

+		    

+		    type       	"boolean"

+		    exportControl 	"Public")

+		(object ClassAttribute "hasSelectivity"

+		    quid       	"3B3B7EF800D1"

+		    type       	"boolean"

+		    exportControl 	"Public")

+		(object ClassAttribute "selectivityValue"

+		    quid       	"3B3B7F0F017E"

+		    type       	"Integer"

+		    exportControl 	"Public"))

+	    abstract   	TRUE)

+	(object Class "SearchConditionCombined"

+	    quid       	"3B37F1CF032C"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3B37F1F101C3"

+		    supplier   	"Logical View::SQLQueryModel::QuerySearchCondition"

+		    quidu      	"3B378C160224"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "combinedOperator"

+		    quid       	"3B3A0FFB0316"

+		    type       	"SearchConditionCombinedOperator"

+		    quidu      	"3B3A0FC50214"

+		    exportControl 	"Public")))

+	(object Class "OrderByValueExpression"

+	    quid       	"3B37F35A0212"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"404D165700D4"

+		    supplier   	"Logical View::SQLQueryModel::OrderBySpecification"

+		    quidu      	"404D14E20381")))

+	(object Class "QueryCombined"

+	    quid       	"3B37F42D0189"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3B37F464012E"

+		    supplier   	"Logical View::SQLQueryModel::QueryExpressionBody"

+		    quidu      	"3B37924A01CC"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "combinedOperator"

+		    quid       	"3B3A1FAD0237"

+		    type       	"QueryCombinedOperator"

+		    quidu      	"3B3A1F54022F"

+		    exportControl 	"Public")))

+	(object Class "QuerySelect"

+	    quid       	"3B37F44F02C8"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3B37F4610260"

+		    supplier   	"Logical View::SQLQueryModel::QueryExpressionBody"

+		    quidu      	"3B37924A01CC"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "distinct"

+		    quid       	"3B3A0DA101EE"

+		    type       	"boolean"

+		    exportControl 	"Public")))

+	(object Class "GroupingSpecification"

+	    quid       	"3B37F63D0369"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"404CF96100D3"

+		    supplier   	"Logical View::SQLQueryModel::SQLQueryObject"

+		    quidu      	"4046839E02AB"))

+	    abstract   	TRUE)

+	(object Class "QueryResultSpecification"

+	    quid       	"3B37F66102FD"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"404E2B7E0181"

+		    supplier   	"Logical View::SQLQueryModel::SQLQueryObject"

+		    quidu      	"4046839E02AB"))

+	    abstract   	TRUE)

+	(object Class "ResultTableAllColumns"

+	    quid       	"3B37F93B0085"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3B37F953033D"

+		    supplier   	"Logical View::SQLQueryModel::QueryResultSpecification"

+		    quidu      	"3B37F66102FD")))

+	(object Class "ResultColumn"

+	    quid       	"3B37F947006F"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3B37F95502F0"

+		    supplier   	"Logical View::SQLQueryModel::QueryResultSpecification"

+		    quidu      	"3B37F66102FD")))

+	(object Class "PredicateBasic"

+	    quid       	"3B37FA6F011F"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3B37FAEB00EB"

+		    supplier   	"Logical View::SQLQueryModel::Predicate"

+		    quidu      	"3B37F1C2039C"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "comparisonOperator"

+		    quid       	"3B3A0B9200B0"

+		    type       	"PredicateComparisonOperator"

+		    quidu      	"3B3A0A6F00D9"

+		    exportControl 	"Public")))

+	(object Class "PredicateQuantified"

+	    quid       	"3B37FA7E008A"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3B37FAED0039"

+		    supplier   	"Logical View::SQLQueryModel::Predicate"

+		    quidu      	"3B37F1C2039C"))

+	    abstract   	TRUE)

+	(object Class "PredicateBetween"

+	    quid       	"3B37FA98004B"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3B37FAF0028D"

+		    supplier   	"Logical View::SQLQueryModel::Predicate"

+		    quidu      	"3B37F1C2039C"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "notBetween"

+		    quid       	"3B3A0C65015D"

+		    type       	"boolean"

+		    exportControl 	"Public")))

+	(object Class "PredicateExists"

+	    quid       	"3B37FAA50158"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3B37FAF302C3"

+		    supplier   	"Logical View::SQLQueryModel::Predicate"

+		    quidu      	"3B37F1C2039C")))

+	(object Class "PredicateIn"

+	    quid       	"3B37FAB303B1"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3B37FAF90376"

+		    supplier   	"Logical View::SQLQueryModel::Predicate"

+		    quidu      	"3B37F1C2039C"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "notIn"

+		    quid       	"3B3A0C83000C"

+		    type       	"boolean"

+		    exportControl 	"Public"))

+	    abstract   	TRUE)

+	(object Class "PredicateLike"

+	    quid       	"3B37FAC702A2"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3B37FAFC0095"

+		    supplier   	"Logical View::SQLQueryModel::Predicate"

+		    quidu      	"3B37F1C2039C"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "notLike"

+		    quid       	"3B3A0CA5019B"

+		    type       	"boolean"

+		    exportControl 	"Public")))

+	(object Class "PredicateIsNull"

+	    quid       	"3B37FAD50324"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3B37FAFF02CA"

+		    supplier   	"Logical View::SQLQueryModel::Predicate"

+		    quidu      	"3B37F1C2039C"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "notNull"

+		    quid       	"3B3A0CE2026B"

+		    type       	"boolean"

+		    exportControl 	"Public")))

+	(object Class "PredicateQuantifiedValueSelect"

+	    quid       	"3B37FB9C03C0"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3B37FBCF0360"

+		    supplier   	"Logical View::SQLQueryModel::PredicateQuantified"

+		    quidu      	"3B37FA7E008A"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "quantifiedType"

+		    quid       	"3B3A0AE50025"

+		    type       	"PredicateQuantifiedType"

+		    quidu      	"3B3A0500009D"

+		    exportControl 	"Public")

+		(object ClassAttribute "comparisonOperator"

+		    quid       	"3B3A0B0C02F2"

+		    type       	"PredicateComparisonOperator"

+		    quidu      	"3B3A0A6F00D9"

+		    exportControl 	"Public")))

+	(object Class "PredicateQuantifiedRowSelect"

+	    quid       	"3B37FBB7024D"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3B37FBD201F1"

+		    supplier   	"Logical View::SQLQueryModel::PredicateQuantified"

+		    quidu      	"3B37FA7E008A"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "quantifiedType"

+		    quid       	"3B3A0BC60123"

+		    type       	"PredicateQuantifiedType"

+		    quidu      	"3B3A0500009D"

+		    exportControl 	"Public")))

+	(object Class "PredicateInValueSelect"

+	    quid       	"3B37FBE4017F"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3B37FC2D01A2"

+		    supplier   	"Logical View::SQLQueryModel::PredicateIn"

+		    quidu      	"3B37FAB303B1")))

+	(object Class "PredicateInValueList"

+	    quid       	"3B37FBF403E5"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3B37FC2A039C"

+		    supplier   	"Logical View::SQLQueryModel::PredicateIn"

+		    quidu      	"3B37FAB303B1")))

+	(object Class "PredicateInValueRowSelect"

+	    quid       	"3B37FC0B03C0"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3B37FC31016C"

+		    supplier   	"Logical View::SQLQueryModel::PredicateIn"

+		    quidu      	"3B37FAB303B1")))

+	(object Class "ValueExpressionSimple"

+	    quid       	"3B389E9103C5"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"404D00100110"

+		    supplier   	"Logical View::SQLQueryModel::ValueExpressionAtomic"

+		    quidu      	"404CFF9003B4"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "value"

+		    quid       	"3B3A11EB01F7"

+		    type       	"String"

+		    exportControl 	"Public")))

+	(object Class "ValueExpressionColumn"

+	    quid       	"3B389EAF00BB"

+	    documentation 	"This is a VEC"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"404D003D00C4"

+		    supplier   	"Logical View::SQLQueryModel::ValueExpressionAtomic"

+		    quidu      	"404CFF9003B4")))

+	(object Class "ValueExpressionVariable"

+	    quid       	"3B389EC5029D"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"404D00350311"

+		    supplier   	"Logical View::SQLQueryModel::ValueExpressionAtomic"

+		    quidu      	"404CFF9003B4")))

+	(object Class "ValueExpressionScalarSelect"

+	    quid       	"3B389EE1015D"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"404D0046023A"

+		    supplier   	"Logical View::SQLQueryModel::ValueExpressionAtomic"

+		    quidu      	"404CFF9003B4")))

+	(object Class "ValueExpressionLabeledDuration"

+	    quid       	"3B389EF70385"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"404D00230320"

+		    supplier   	"Logical View::SQLQueryModel::ValueExpressionAtomic"

+		    quidu      	"404CFF9003B4"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "labeledDurationType"

+		    quid       	"3B3A625801E8"

+		    type       	"ValueExpressionLabeledDurationType"

+		    quidu      	"3B3A62830230"

+		    exportControl 	"Public")))

+	(object Class "ValueExpressionCase"

+	    quid       	"3B389F19026C"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"404D0086030E"

+		    supplier   	"Logical View::SQLQueryModel::ValueExpressionAtomic"

+		    quidu      	"404CFF9003B4"))

+	    abstract   	TRUE)

+	(object Class "ValueExpressionCast"

+	    quid       	"3B389F33029B"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"404D005E0021"

+		    supplier   	"Logical View::SQLQueryModel::ValueExpressionAtomic"

+		    quidu      	"404CFF9003B4")))

+	(object Class "ValueExpressionNullValue"

+	    quid       	"3B389F460086"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"404D00650216"

+		    supplier   	"Logical View::SQLQueryModel::ValueExpressionAtomic"

+		    quidu      	"404CFF9003B4")))

+	(object Class "ValueExpressionDefaultValue"

+	    quid       	"3B389F5E013E"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"404D007200FC"

+		    supplier   	"Logical View::SQLQueryModel::ValueExpressionAtomic"

+		    quidu      	"404CFF9003B4")))

+	(object Class "ValueExpressionFunction"

+	    quid       	"3B389F78002D"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"404D0054037A"

+		    supplier   	"Logical View::SQLQueryModel::ValueExpressionAtomic"

+		    quidu      	"404CFF9003B4"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "specialRegister"

+		    quid       	"3B3A167402DD"

+		    type       	"boolean"

+		    exportControl 	"Public")

+		(object ClassAttribute "distinct"

+		    quid       	"3C5F00D1036B"

+		    type       	"boolean"

+		    exportControl 	"Public")

+		(object ClassAttribute "columnFunction"

+		    quid       	"3C5F011003C6"

+		    type       	"boolean"

+		    exportControl 	"Public")))

+	(object Class "ValueExpressionCombined"

+	    quid       	"3B389F8603D1"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3B38A03D0153"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "combinedOperator"

+		    quid       	"3B3A601100FA"

+		    type       	"ValueExpressionCombinedOperator"

+		    quidu      	"3B3A5E3B0357"

+		    exportControl 	"Public")))

+	(object Class "GroupingSets"

+	    quid       	"3B38A4DC01A4"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3B38A50302FF"

+		    supplier   	"Logical View::SQLQueryModel::GroupingSpecification"

+		    quidu      	"3B37F63D0369")))

+	(object Class "Grouping"

+	    quid       	"3B38A4EC0266"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3B38A506030D"

+		    supplier   	"Logical View::SQLQueryModel::GroupingSpecification"

+		    quidu      	"3B37F63D0369"))

+	    abstract   	TRUE)

+	(object Class "GroupingSetsElement"

+	    quid       	"3B38A510018B"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"404CF96B0377"

+		    supplier   	"Logical View::SQLQueryModel::SQLQueryObject"

+		    quidu      	"4046839E02AB"))

+	    abstract   	TRUE)

+	(object Class "GroupingSetsElementSublist"

+	    quid       	"3B38A54D0297"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3B38A57C03CB"

+		    supplier   	"Logical View::SQLQueryModel::GroupingSetsElement"

+		    quidu      	"3B38A510018B")))

+	(object Class "GroupingSetsElementExpression"

+	    quid       	"3B38A56901C5"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3B38A57F0040"

+		    supplier   	"Logical View::SQLQueryModel::GroupingSetsElement"

+		    quidu      	"3B38A510018B")))

+	(object Class "SuperGroup"

+	    quid       	"3B38A6570326"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3B38A67601B8"

+		    supplier   	"Logical View::SQLQueryModel::Grouping"

+		    quidu      	"3B38A4EC0266"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "superGroupType"

+		    quid       	"3B39FDB60343"

+		    type       	"SuperGroupType"

+		    quidu      	"3B39FEAC03A1"

+		    exportControl 	"Public")))

+	(object Class "GroupingExpression"

+	    quid       	"3B38A6670094"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3B38A679000E"

+		    supplier   	"Logical View::SQLQueryModel::Grouping"

+		    quidu      	"3B38A4EC0266")))

+	(object Class "SuperGroupElement"

+	    quid       	"3B38A6870389"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"404CF9D0014B"

+		    supplier   	"Logical View::SQLQueryModel::SQLQueryObject"

+		    quidu      	"4046839E02AB"))

+	    abstract   	TRUE)

+	(object Class "SuperGroupElementSublist"

+	    quid       	"3B38A6A1037C"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3B38A6C40391"

+		    supplier   	"Logical View::SQLQueryModel::SuperGroupElement"

+		    quidu      	"3B38A6870389")))

+	(object Class "SuperGroupElementExpression"

+	    quid       	"3B38A6AF026E"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3B38A6C70074"

+		    supplier   	"Logical View::SQLQueryModel::SuperGroupElement"

+		    quidu      	"3B38A6870389")))

+	(object Class "ValueExpressionCaseSearch"

+	    quid       	"3B38A8D00055"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3B38A92E00B4"

+		    supplier   	"Logical View::SQLQueryModel::ValueExpressionCase"

+		    quidu      	"3B389F19026C")))

+	(object Class "ValueExpressionCaseSimple"

+	    quid       	"3B38A8EF0082"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3B38A93003BA"

+		    supplier   	"Logical View::SQLQueryModel::ValueExpressionCase"

+		    quidu      	"3B389F19026C")))

+	(object Class "ValueExpressionCaseElse"

+	    quid       	"3B38A90D01A7"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"404D07300361"

+		    supplier   	"Logical View::SQLQueryModel::SQLQueryObject"

+		    quidu      	"4046839E02AB")))

+	(object Class "ValueExpressionCaseSearchContent"

+	    quid       	"3B38A9A7034D"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"404D08840021"

+		    supplier   	"Logical View::SQLQueryModel::SQLQueryObject"

+		    quidu      	"4046839E02AB")))

+	(object Class "ValueExpressionCaseSimpleContent"

+	    quid       	"3B38A9C1019C"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"404D086F0338"

+		    supplier   	"Logical View::SQLQueryModel::SQLQueryObject"

+		    quidu      	"4046839E02AB")))

+	(object Class "SuperGroupType"

+	    quid       	"3B39FEAC03A1"

+	    stereotype 	"enumeration"

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "CUBE"

+		    quid       	"404C388500E6"

+		    exportControl 	"Public")

+		(object ClassAttribute "GRANDTOTAL"

+		    quid       	"404C388F01F9"

+		    exportControl 	"Public")

+		(object ClassAttribute "ROLLUP"

+		    quid       	"404C393003E5"

+		    exportControl 	"Public")))

+	(object Class "PredicateQuantifiedType"

+	    quid       	"3B3A0500009D"

+	    stereotype 	"enumeration"

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "SOME"

+		    quid       	"404C4FBA0266"

+		    exportControl 	"Public")

+		(object ClassAttribute "ANY"

+		    quid       	"404C4FBF00BE"

+		    exportControl 	"Public")

+		(object ClassAttribute "ALL"

+		    quid       	"404C4FC30060"

+		    exportControl 	"Public")))

+	(object Class "PredicateComparisonOperator"

+	    quid       	"3B3A0A6F00D9"

+	    stereotype 	"enumeration"

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "EQUAL"

+		    quid       	"404C4FFB0038"

+		    exportControl 	"Public")

+		(object ClassAttribute "NOT_EQUAL"

+		    quid       	"404C4FFF02BF"

+		    exportControl 	"Public")

+		(object ClassAttribute "LESS_THAN"

+		    quid       	"404C500D019D"

+		    exportControl 	"Public")

+		(object ClassAttribute "GREATER_THAN"

+		    quid       	"404C5013035E"

+		    exportControl 	"Public")

+		(object ClassAttribute "LESS_THAN_OR_EQUAL"

+		    quid       	"404C501E027E"

+		    exportControl 	"Public")

+		(object ClassAttribute "GREATER_THAN_OR_EQUAL"

+		    quid       	"404C5025013D"

+		    exportControl 	"Public")))

+	(object Class "SearchConditionCombinedOperator"

+	    quid       	"3B3A0FC50214"

+	    stereotype 	"enumeration"

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "AND"

+		    quid       	"404C519C004C"

+		    exportControl 	"Public")

+		(object ClassAttribute "OR"

+		    quid       	"404C51A002B5"

+		    exportControl 	"Public")))

+	(object Class "TableJoinedOperator"

+	    quid       	"3B3A10F70322"

+	    stereotype 	"enumeration"

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "DEFAULT_INNER"

+		    quid       	"4049232D006E"

+		    exportControl 	"Public")

+		(object ClassAttribute "EXPLICIT_INNER"

+		    quid       	"4049233501BA"

+		    exportControl 	"Public")

+		(object ClassAttribute "LEFT_OUTER"

+		    quid       	"404923460218"

+		    exportControl 	"Public")

+		(object ClassAttribute "RIGHT_OUTER"

+		    quid       	"4049234B0284"

+		    exportControl 	"Public")

+		(object ClassAttribute "FULL_OUTER"

+		    quid       	"40492353025D"

+		    exportControl 	"Public")))

+	(object Class "QueryCombinedOperator"

+	    quid       	"3B3A1F54022F"

+	    documentation 	

+|UNION=1

+|UNION_ALL=2

+|INTERSECT=3

+|INTERSECT_ALL=4

+|EXCEPT=5

+|EXCEPT_ALL=6

+	    

+	    stereotype 	"enumeration"

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "UNION"

+		    quid       	"4049175800CC"

+		    exportControl 	"Public")

+		(object ClassAttribute "UNION_ALL"

+		    quid       	"4049177101D7"

+		    exportControl 	"Public")

+		(object ClassAttribute "INTERSECT"

+		    quid       	"4049178B02ED"

+		    exportControl 	"Public")

+		(object ClassAttribute "INTERSECT_ALL"

+		    quid       	"404917940028"

+		    exportControl 	"Public")

+		(object ClassAttribute "EXCEPT"

+		    quid       	"4049179D01E4"

+		    exportControl 	"Public")

+		(object ClassAttribute "EXCEPT_ALL"

+		    quid       	"404917A20213"

+		    exportControl 	"Public")))

+	(object Class "ValueExpressionUnaryOperator"

+	    quid       	"3B3A5E0F015F"

+	    stereotype 	"enumeration"

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "NONE"

+		    quid       	"404D097D0065"

+		    exportControl 	"Public")

+		(object ClassAttribute "PLUS"

+		    quid       	"404D0987015A"

+		    exportControl 	"Public")

+		(object ClassAttribute "MINUS"

+		    quid       	"404D098B00DD"

+		    exportControl 	"Public")))

+	(object Class "ValueExpressionCombinedOperator"

+	    quid       	"3B3A5E3B0357"

+	    stereotype 	"enumeration"

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "ADD"

+		    quid       	"404CE20400FB"

+		    exportControl 	"Public")

+		(object ClassAttribute "SUBTRACT"

+		    quid       	"404CE20800D9"

+		    exportControl 	"Public")

+		(object ClassAttribute "MULTIPLY"

+		    quid       	"404CE20C037D"

+		    exportControl 	"Public")

+		(object ClassAttribute "DIVIDE"

+		    quid       	"404CE2120209"

+		    exportControl 	"Public")

+		(object ClassAttribute "CONCATENATE"

+		    quid       	"404CE2160183"

+		    exportControl 	"Public")))

+	(object Class "ValueExpressionLabeledDurationType"

+	    quid       	"3B3A62830230"

+	    stereotype 	"enumeration"

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "YEARS"

+		    quid       	"404CE14E0153"

+		    exportControl 	"Public")

+		(object ClassAttribute "MONTHS"

+		    quid       	"404CE143011B"

+		    exportControl 	"Public")

+		(object ClassAttribute "DAYS"

+		    quid       	"404CE12301F2"

+		    exportControl 	"Public")

+		(object ClassAttribute "HOURS"

+		    quid       	"404CE12900F6"

+		    exportControl 	"Public")

+		(object ClassAttribute "MINUTES"

+		    quid       	"404CE13E01B5"

+		    exportControl 	"Public")

+		(object ClassAttribute "SECONDS"

+		    quid       	"404CE148010F"

+		    exportControl 	"Public")

+		(object ClassAttribute "MICROSECONDS"

+		    quid       	"404CE1320398"

+		    exportControl 	"Public")))

+	(object Class "TableInDatabase"

+	    quid       	"3BF3D3560327"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3BF3D3DA011E"

+		    supplier   	"Logical View::SQLQueryModel::TableExpression"

+		    quidu      	"3B37EE600288")))

+	(object Class "TableFunction"

+	    quid       	"3BF3D3E801A0"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3BF3D3F70129"

+		    supplier   	"Logical View::SQLQueryModel::TableExpression"

+		    quidu      	"3B37EE600288")))

+	(object Class "SQLQueryObject"

+	    quid       	"4046839E02AB"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"404683B902A0"

+		    supplier   	"Logical View::SQLModel::Schema::SQLObject"

+		    quidu      	"3E9B3EB5002B"))

+	    operations 	(list Operations

+		(object Operation "getSQL"

+		    quid       	"404776F300CD"

+		    result     	"String"

+		    concurrency 	"Sequential"

+		    opExportControl 	"Public"

+		    uid        	0)

+		(object Operation "setSQL"

+		    quid       	"4193EFDF01E7"

+		    parameters 	(list Parameters

+			(object Parameter "sqlText"

+			    quid       	"4193EFF503DE"

+			    type       	"String"))

+		    result     	"void"

+		    concurrency 	"Sequential"

+		    opExportControl 	"Public"

+		    uid        	0))

+	    abstract   	TRUE)

+	(object Class "QueryChangeStatement"

+	    quid       	"40490E600298"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"40490EDD0342"

+		    supplier   	"Logical View::SQLQueryModel::QueryStatement"

+		    quidu      	"3B3785180139")

+		(object Inheritance_Relationship

+		    quid       	"40490F930040"

+		    supplier   	"Logical View::SQLModel::Statements::SQLDataChangeStatement"

+		    quidu      	"40490973001D"))

+	    abstract   	TRUE)

+	(object Class "ColumnName"

+	    quid       	"4049226F035A"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"404923E20186"

+		    supplier   	"Logical View::SQLQueryModel::SQLQueryObject"

+		    quidu      	"4046839E02AB")))

+	(object Class "TableNested"

+	    quid       	"404924F0038D"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"40492517032F"

+		    supplier   	"Logical View::SQLQueryModel::TableReference"

+		    quidu      	"3B37EE200178")))

+	(object Class "QueryMergeStatement"

+	    quid       	"404C2AAB0232"

+	    documentation 	

+|SQL syntax:

+|MERGE INTO <target table> [ [ AS] <merge correlation name> ]

+|USING <table reference>

+|ON <search condition> 

+|<merge operation specificaion list>

+|

+|where:

+|<merge operation specification list> ::=

+|    <merge operation specification> [<merge operation specification ...]

+|<merge operation specification> ::=

+|    <merge update specification>  |  <merge insert specification>

+|

+|Note: a non-syntactic rule is that the operation specification list can contain at most one update specification and one insert specification.

+|

+|Example:

+|MERGE INTO inventory AS in

+|USING 

+|  (SELECT partno, description, count 

+|   FROM shipment

+|   WHERE shipment.partno IS NOT NULL) AS sh

+|ON (in.partno = sh.partno)

+|WHEN MATCHED THEN

+|   UPDATE SET

+|        description = sh.description,

+|        quantity = in.quantity + sh.count

+|WHEN NOT MATCHED THEN

+|    INSERT (partno, description, quantity)

+|    VALUES (sh.partno, sh.description, sh.count) 

+	    

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"404C2AD802CD"

+		    supplier   	"Logical View::SQLQueryModel::QueryChangeStatement"

+		    quidu      	"40490E600298")))

+	(object Class "SearchConditionNested"

+	    quid       	"404C491D033E"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"404C4949003E"

+		    supplier   	"Logical View::SQLQueryModel::QuerySearchCondition"

+		    quidu      	"3B378C160224")))

+	(object Class "ValueExpressionNested"

+	    quid       	"404CFF7601CC"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"404D00AA0067"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160")))

+	(object Class "ValueExpressionAtomic"

+	    quid       	"404CFF9003B4"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"404D00B20108"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"))

+	    abstract   	TRUE)

+	(object Class "OrderBySpecification"

+	    quid       	"404D14E20381"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"404D177802CE"

+		    supplier   	"Logical View::SQLQueryModel::SQLQueryObject"

+		    quidu      	"4046839E02AB"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "descending"

+		    quid       	"404D15D90390"

+		    type       	"boolean"

+		    exportControl 	"Public")

+		(object ClassAttribute "OrderingSpecOption"

+		    quid       	"435960AB0302"

+		    type       	"OrderingSpecType"

+		    quidu      	"43596054009A"

+		    exportControl 	"Public")

+		(object ClassAttribute "NullOrderingOption"

+		    quid       	"435960E503C4"

+		    type       	"NullOrderingType"

+		    quidu      	"43595F9F031B"

+		    exportControl 	"Public"))

+	    abstract   	TRUE)

+	(object Class "OrderByOrdinal"

+	    quid       	"404D1615021A"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"404D164E0244"

+		    supplier   	"Logical View::SQLQueryModel::OrderBySpecification"

+		    quidu      	"404D14E20381"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "ordinalValue"

+		    quid       	"404D18240069"

+		    type       	"int"

+		    exportControl 	"Public")))

+	(object Class "TableCorrelation"

+	    quid       	"412F8BD80253"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"412F9AEA0288"

+		    supplier   	"Logical View::SQLQueryModel::SQLQueryObject"

+		    quidu      	"4046839E02AB")))

+	(object Class "UpdateSource"

+	    quid       	"4176D9920095"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"417D47620183"

+		    supplier   	"Logical View::SQLQueryModel::SQLQueryObject"

+		    quidu      	"4046839E02AB")))

+	(object Class "UpdateSourceExprList"

+	    quid       	"4176DB070150"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"4176DB1E0118"

+		    supplier   	"Logical View::SQLQueryModel::UpdateSource"

+		    quidu      	"4176D9920095")))

+	(object Class "UpdateSourceQuery"

+	    quid       	"4176DB2502C7"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"4176DB3500B8"

+		    supplier   	"Logical View::SQLQueryModel::UpdateSource"

+		    quidu      	"4176D9920095")))

+	(object Class "OrderByResultColumn"

+	    quid       	"41AB8B39017F"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"41AB8B390193"

+		    supplier   	"Logical View::SQLQueryModel::OrderBySpecification"

+		    quidu      	"404D14E20381")))

+	(object Class "WithTableReference"

+	    quid       	"41F971470060"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"41F9736403D7"

+		    supplier   	"Logical View::SQLQueryModel::TableExpression"

+		    quidu      	"3B37EE600288")))

+	(object Class "NullOrderingType"

+	    quid       	"43595F9F031B"

+	    stereotype 	"enumeration"

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "NONE"

+		    quid       	"4359602403C6"

+		    exportControl 	"Public")

+		(object ClassAttribute "NULLS_FIRST"

+		    quid       	"4359600E02FC"

+		    exportControl 	"Public")

+		(object ClassAttribute "NULLS_LAST"

+		    quid       	"4359601A03CC"

+		    exportControl 	"Public")))

+	(object Class "OrderingSpecType"

+	    quid       	"43596054009A"

+	    stereotype 	"enumeration"

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "NONE"

+		    quid       	"435960820349"

+		    exportControl 	"Public")

+		(object ClassAttribute "ASC"

+		    quid       	"435960720075"

+		    exportControl 	"Public")

+		(object ClassAttribute "DESC"

+		    quid       	"4359607903BE"

+		    exportControl 	"Public")))

+	(object Class "QueryNested"

+	    quid       	"4445534B01A5"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"4445535D0014"

+		    supplier   	"Logical View::SQLQueryModel::QueryExpressionBody"

+		    quidu      	"3B37924A01CC")))

+	(object Class "ValueExpressionRow"

+	    quid       	"486BD0B001FE"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"486BD0EC01DE"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160")))

+	(object Class "MergeTargetTable"

+	    quid       	"49717CEF01B5"

+	    documentation 	

+|SQL syntax:

+|<target table> [[AS] <merge correlation name>]

+|

+|where:

+|<target table> is a simple or qualified table name.

+|<merge correlation name> is a simple identifier

+	    

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"49718C4D0119"

+		    supplier   	"Logical View::SQLQueryModel::SQLQueryObject"

+		    quidu      	"4046839E02AB")))

+	(object Class "MergeSourceTable"

+	    quid       	"49717F4B0271"

+	    documentation 	

+|SQL syntax:

+|<table reference>

+|

+|The source table reference can be a table name, a query (SELECT expression), a joined table, a table function...

+	    

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"49718C5002FD"

+		    supplier   	"Logical View::SQLQueryModel::SQLQueryObject"

+		    quidu      	"4046839E02AB")))

+	(object Class "MergeOnCondition"

+	    quid       	"4971822C0148"

+	    documentation 	

+|SQL syntax:

+|<search condition>

+|

+	    

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"49718C5501E4"

+		    supplier   	"Logical View::SQLQueryModel::SQLQueryObject"

+		    quidu      	"4046839E02AB")))

+	(object Class "MergeUpdateSpecification"

+	    quid       	"4971844B003E"

+	    documentation 	

+|SQL syntax:

+|WHEN MATCHED THEN UPDATE SET <set clause list>

+|

+|where

+|<set clause list> is a list of assignement expressions, such as 

+|  description = sh.description

+|

+|The assignment expression list is modelled as a list of UpdateAssignementExpression objects, which in the general case can have a query exrpession as the assignement source, but for Merge only simple assignment list is allowed.

+	    

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"498A42D50148"

+		    supplier   	"Logical View::SQLQueryModel::MergeOperationSpecification"

+		    quidu      	"498A415902FD")))

+	(object Class "MergeInsertSpecification"

+	    quid       	"497185E60242"

+	    documentation 	

+|SQL syntax:

+|WHEN NOT MATCHED THEN 

+|INSERT <target column list> 

+|VALUES <insert value list>

+|

+|where

+|<target column list> is a simple list of column names

+|<insert value list> is a list of value expressions

+|

+|Note that the MergeInsertSpecification object does not "own" the column objects in the target column list.  They are "owned" by the table object in the MergeTargetTable

+	    

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"498A42D90271"

+		    supplier   	"Logical View::SQLQueryModel::MergeOperationSpecification"

+		    quidu      	"498A415902FD")))

+	(object Class "MergeOperationSpecification"

+	    quid       	"498A415902FD"

+	    documentation 	

+|SQL syntax:

+|<merge update specification>  |  <merge insert specification>

+|

+	    

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"498A4354034B"

+		    supplier   	"Logical View::SQLQueryModel::SQLQueryObject"

+		    quidu      	"4046839E02AB")))

+	(object Class "UpdateOfColumn"

+	    quid       	"49C49424033C"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"49C4946702FD"

+		    supplier   	"Logical View::SQLQueryModel::SQLQueryObject"

+		    quidu      	"4046839E02AB")))

+	(object Class "UpdatabilityType"

+	    quid       	"49C6948D0242"

+	    stereotype 	"enumeration"

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "READ_ONLY"

+		    quid       	"49C6956500DA"

+		    exportControl 	"Public")

+		(object ClassAttribute "UPDATE"

+		    quid       	"49C695890000"

+		    exportControl 	"Public")))

+	(object Class "UpdatabilityExpression"

+	    quid       	"49C69615004E"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"49C6965C000F"

+		    supplier   	"Logical View::SQLQueryModel::SQLQueryObject"

+		    quidu      	"4046839E02AB"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "updatabilityType"

+		    quid       	"49C6967C0213"

+		    type       	"UpdatabilityType"

+		    quidu      	"49C6948D0242"

+		    exportControl 	"Public")))

+	(object Class "CallStatement"

+	    quid       	"4B50CD41004E"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"4B50CD550213"

+		    supplier   	"Logical View::SQLQueryModel::SQLQueryObject"

+		    quidu      	"4046839E02AB")

+		(object Inheritance_Relationship

+		    quid       	"4B50CD59037A"

+		    supplier   	"Logical View::SQLModel::Statements::SQLControlStatement"

+		    quidu      	"4049095A0220")))

+	(object Class "ProcedureReference"

+	    quid       	"4BC79E0202DE"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"4BC79E290203"

+		    supplier   	"Logical View::SQLQueryModel::SQLQueryObject"

+		    quidu      	"4046839E02AB")))

+	(object Class "TableQueryLateral"

+	    quid       	"4E98855000BB"

+	    documentation 	

+|A "lateral" table query is a query that appears in the FROM clause.  However it is semantically different from a regular FROM clause query in that the lateral table query can itself contain references to other tables defined before (that is, to the left of it) in the same FROM clause.  Regular FROM clause queries can only refer to tables defined at a higher level in the statement.  In ISO SQL a lateral table query expression is prefixed by the keyword LATERAL.  (The DB2 SQL dialects prefix the lateral query table with the keyword TABLE.)

+|

+|For example, here is a statement containing a lateral table query expression:

+|

+|SELECT d.dept_name, e.emp_name

+|  FROM dept d, LATERAL( 

+|    SELECT emp_id, emp_name

+|    FROM emp

+|    WHERE emp_dept = d.dept_id ) as e

+|

+|The reference to d.dept_id is legal in a lateral table query, but would not be legal in a regular table query expression.

+	    

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"4E98856A034B"

+		    supplier   	"Logical View::SQLQueryModel::TableExpression"

+		    quidu      	"3B37EE600288")))

+	(object Association "$UNNAMED$0"

+	    quid       	"3B37928901A5"

+	    roles      	(list role_list

+		(object Role "updateStatement"

+		    quid       	"3B37928A002A"

+		    label      	"updateStatement"

+		    supplier   	"Logical View::SQLQueryModel::QueryUpdateStatement"

+		    quidu      	"3B3785760076"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "assignmentClause"

+		    quid       	"3B37928A0034"

+		    label      	"assignmentClause"

+		    supplier   	"Logical View::SQLQueryModel::UpdateAssignmentExpression"

+		    quidu      	"3B378BF6015F"

+		    client_cardinality 	(value cardinality "1..n")

+		    Constraints 	"ordered"

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$1"

+	    quid       	"3B37928B0298"

+	    roles      	(list role_list

+		(object Role "updateStatement"

+		    quid       	"3B37928C009B"

+		    label      	"updateStatement"

+		    supplier   	"Logical View::SQLQueryModel::QueryUpdateStatement"

+		    quidu      	"3B3785760076"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "whereCurrentOfClause"

+		    quid       	"3B37928C00A5"

+		    label      	"whereCurrentOfClause"

+		    supplier   	"Logical View::SQLQueryModel::CursorReference"

+		    quidu      	"3B378C08021A"

+		    client_cardinality 	(value cardinality "0..1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$2"

+	    quid       	"3B37928F0153"

+	    roles      	(list role_list

+		(object Role "updateStatement"

+		    quid       	"3B37928F0352"

+		    label      	"updateStatement"

+		    supplier   	"Logical View::SQLQueryModel::QueryUpdateStatement"

+		    quidu      	"3B3785760076"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "whereClause"

+		    attributes 	(list Attribute_Set

+			(object Attribute

+			    tool       	"Ecore"

+			    name       	"isUnsettable"

+			    value      	TRUE))

+		    quid       	"3B37928F035C"

+		    label      	"whereClause"

+		    supplier   	"Logical View::SQLQueryModel::QuerySearchCondition"

+		    quidu      	"3B378C160224"

+		    client_cardinality 	(value cardinality "0..1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$3"

+	    quid       	"3B3792910387"

+	    roles      	(list role_list

+		(object Role "updateStatement"

+		    attributes 	(list Attribute_Set)

+		    quid       	"3B379292028E"

+		    label      	"updateStatement"

+		    supplier   	"Logical View::SQLQueryModel::QueryUpdateStatement"

+		    quidu      	"3B3785760076"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "targetTable"

+		    attributes 	(list Attribute_Set

+			(object Attribute

+			    tool       	"Ecore"

+			    name       	"isUnsettable"

+			    value      	TRUE))

+		    quid       	"3B3792920298"

+		    label      	"targetTable"

+		    supplier   	"Logical View::SQLQueryModel::TableInDatabase"

+		    quidu      	"3BF3D3560327"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$4"

+	    quid       	"3B37935D03C6"

+	    roles      	(list role_list

+		(object Role "assignmentExprTarget"

+		    quid       	"3B37935E01D3"

+		    label      	"assignmentExprTarget"

+		    supplier   	"Logical View::SQLQueryModel::UpdateAssignmentExpression"

+		    quidu      	"3B378BF6015F"

+		    is_navigable 	TRUE)

+		(object Role "targetColumnList"

+		    quid       	"3B37935E01DD"

+		    label      	"targetColumnList"

+		    supplier   	"Logical View::SQLQueryModel::ValueExpressionColumn"

+		    quidu      	"3B389EAF00BB"

+		    client_cardinality 	(value cardinality "1..n")

+		    Constraints 	"ordered"

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$5"

+	    quid       	"3B3795650049"

+	    roles      	(list role_list

+		(object Role "deleteStatement"

+		    quid       	"3B379565025C"

+		    label      	"deleteStatement"

+		    supplier   	"Logical View::SQLQueryModel::QueryDeleteStatement"

+		    quidu      	"3B378546017C"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "whereCurrentOfClause"

+		    quid       	"3B3795650266"

+		    label      	"whereCurrentOfClause"

+		    supplier   	"Logical View::SQLQueryModel::CursorReference"

+		    quidu      	"3B378C08021A"

+		    client_cardinality 	(value cardinality "0..1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$6"

+	    quid       	"3B3795670010"

+	    roles      	(list role_list

+		(object Role "deleteStatement"

+		    quid       	"3B379567018C"

+		    label      	"deleteStatement"

+		    supplier   	"Logical View::SQLQueryModel::QueryDeleteStatement"

+		    quidu      	"3B378546017C"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "whereClause"

+		    attributes 	(list Attribute_Set

+			(object Attribute

+			    tool       	"Ecore"

+			    name       	"isUnsettable"

+			    value      	TRUE))

+		    quid       	"3B3795670196"

+		    label      	"whereClause"

+		    supplier   	"Logical View::SQLQueryModel::QuerySearchCondition"

+		    quidu      	"3B378C160224"

+		    client_cardinality 	(value cardinality "0..1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$7"

+	    quid       	"3B379568031E"

+	    roles      	(list role_list

+		(object Role "deleteStatement"

+		    quid       	"3B3795690167"

+		    label      	"deleteStatement"

+		    supplier   	"Logical View::SQLQueryModel::QueryDeleteStatement"

+		    quidu      	"3B378546017C"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "targetTable"

+		    attributes 	(list Attribute_Set

+			(object Attribute

+			    tool       	"Ecore"

+			    name       	"isUnsettable"

+			    value      	TRUE))

+		    quid       	"3B3795690171"

+		    label      	"targetTable"

+		    supplier   	"Logical View::SQLQueryModel::TableInDatabase"

+		    quidu      	"3BF3D3560327"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$8"

+	    quid       	"3B37973E0021"

+	    roles      	(list role_list

+		(object Role "insertStatement"

+		    quid       	"3B37973E02AC"

+		    label      	"insertStatement"

+		    supplier   	"Logical View::SQLQueryModel::QueryInsertStatement"

+		    quidu      	"3B3785520223"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "sourceQuery"

+		    quid       	"3B37973E02B6"

+		    label      	"sourceQuery"

+		    supplier   	"Logical View::SQLQueryModel::QueryExpressionRoot"

+		    quidu      	"3B37968301D1"

+		    client_cardinality 	(value cardinality "0..1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$9"

+	    quid       	"3B37974000CE"

+	    roles      	(list role_list

+		(object Role "insertStatement"

+		    quid       	"3B3797400309"

+		    label      	"insertStatement"

+		    supplier   	"Logical View::SQLQueryModel::QueryInsertStatement"

+		    quidu      	"3B3785520223"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "sourceValuesRowList"

+		    quid       	"3B379740030B"

+		    label      	"sourceValuesRowList"

+		    supplier   	"Logical View::SQLQueryModel::ValuesRow"

+		    quidu      	"3B3796910130"

+		    client_cardinality 	(value cardinality "0..n")

+		    Constraints 	"ordered"

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$10"

+	    quid       	"3B3797480120"

+	    roles      	(list role_list

+		(object Role "insertStatement"

+		    attributes 	(list Attribute_Set)

+		    quid       	"3B3797480396"

+		    label      	"insertStatement"

+		    supplier   	"Logical View::SQLQueryModel::QueryInsertStatement"

+		    quidu      	"3B3785520223"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "targetTable"

+		    attributes 	(list Attribute_Set

+			(object Attribute

+			    tool       	"Ecore"

+			    name       	"isUnsettable"

+			    value      	TRUE))

+		    quid       	"3B37974803AB"

+		    label      	"targetTable"

+		    supplier   	"Logical View::SQLQueryModel::TableInDatabase"

+		    quidu      	"3BF3D3560327"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$11"

+	    quid       	"3B37974E00C4"

+	    roles      	(list role_list

+		(object Role "valuesRow"

+		    quid       	"3B37974E02D7"

+		    label      	"valuesRow"

+		    supplier   	"Logical View::SQLQueryModel::ValuesRow"

+		    quidu      	"3B3796910130"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "exprList"

+		    quid       	"3B37974E02D9"

+		    label      	"exprList"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"

+		    client_cardinality 	(value cardinality "1..n")

+		    Constraints 	"ordered"

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$12"

+	    quid       	"3B37EF760210"

+	    roles      	(list role_list

+		(object Role "tableJoined"

+		    quid       	"3B37EF770117"

+		    label      	"tableJoined"

+		    supplier   	"Logical View::SQLQueryModel::TableJoined"

+		    quidu      	"3B37EEB00323"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "joinCondition"

+		    quid       	"3B37EF770121"

+		    label      	"joinCondition"

+		    supplier   	"Logical View::SQLQueryModel::QuerySearchCondition"

+		    quidu      	"3B378C160224"

+		    client_cardinality 	(value cardinality "0..1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$13"

+	    quid       	"3B37EFFB0315"

+	    roles      	(list role_list

+		(object Role "tableJoinedRight"

+		    quid       	"3B37EFFD01CE"

+		    label      	"tableJoinedRight"

+		    supplier   	"Logical View::SQLQueryModel::TableJoined"

+		    quidu      	"3B37EEB00323"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "tableRefRight"

+		    quid       	"3B37EFFD01D8"

+		    label      	"tableRefRight"

+		    supplier   	"Logical View::SQLQueryModel::TableReference"

+		    quidu      	"3B37EE200178"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$14"

+	    quid       	"3B37F011008C"

+	    roles      	(list role_list

+		(object Role "tableJoinedLeft"

+		    quid       	"3B37F01200E8"

+		    label      	"tableJoinedLeft"

+		    supplier   	"Logical View::SQLQueryModel::TableJoined"

+		    quidu      	"3B37EEB00323"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "tableRefLeft"

+		    quid       	"3B37F01200F2"

+		    label      	"tableRefLeft"

+		    supplier   	"Logical View::SQLQueryModel::TableReference"

+		    quidu      	"3B37EE200178"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$15"

+	    quid       	"3B37F2020023"

+	    roles      	(list role_list

+		(object Role "combinedLeft"

+		    quid       	"3B37F203013C"

+		    label      	"combinedLeft"

+		    supplier   	"Logical View::SQLQueryModel::SearchConditionCombined"

+		    quidu      	"3B37F1CF032C"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "leftCondition"

+		    quid       	"3B37F2030147"

+		    label      	"leftCondition"

+		    supplier   	"Logical View::SQLQueryModel::QuerySearchCondition"

+		    quidu      	"3B378C160224"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$16"

+	    quid       	"3B37F20B027E"

+	    roles      	(list role_list

+		(object Role "combinedRight"

+		    quid       	"3B37F20C0262"

+		    label      	"combinedRight"

+		    supplier   	"Logical View::SQLQueryModel::SearchConditionCombined"

+		    quidu      	"3B37F1CF032C"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "rightCondition"

+		    quid       	"3B37F20C0264"

+		    label      	"rightCondition"

+		    supplier   	"Logical View::SQLQueryModel::QuerySearchCondition"

+		    quidu      	"3B378C160224"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$17"

+	    quid       	"3B37F3F302B2"

+	    roles      	(list role_list

+		(object Role "selectStatement"

+		    quid       	"3B37F3F400A1"

+		    label      	"selectStatement"

+		    supplier   	"Logical View::SQLQueryModel::QuerySelectStatement"

+		    quidu      	"3B37856000BB"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "queryExpr"

+		    quid       	"3B37F3F400A3"

+		    label      	"queryExpr"

+		    supplier   	"Logical View::SQLQueryModel::QueryExpressionRoot"

+		    quidu      	"3B37968301D1"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$18"

+	    quid       	"3B37F3F503CD"

+	    roles      	(list role_list

+		(object Role "selectStatement"

+		    quid       	"3B37F3F6018A"

+		    label      	"selectStatement"

+		    supplier   	"Logical View::SQLQueryModel::QuerySelectStatement"

+		    quidu      	"3B37856000BB"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "orderByClause"

+		    quid       	"3B37F3F60194"

+		    label      	"orderByClause"

+		    supplier   	"Logical View::SQLQueryModel::OrderBySpecification"

+		    quidu      	"404D14E20381"

+		    client_cardinality 	(value cardinality "0..n")

+		    Constraints 	"ordered"

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$19"

+	    quid       	"3B37F3F80183"

+	    roles      	(list role_list

+		(object Role "orderByValueExpr"

+		    quid       	"3B37F3F80350"

+		    label      	"orderByValueExpr"

+		    supplier   	"Logical View::SQLQueryModel::OrderByValueExpression"

+		    quidu      	"3B37F35A0212"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "valueExpr"

+		    quid       	"3B37F3F80352"

+		    label      	"valueExpr"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$20"

+	    quid       	"3B37F3FB0368"

+	    roles      	(list role_list

+		(object Role "queryExpressionRoot "

+		    quid       	"3B37F3FC0189"

+		    label      	"queryExpressionRoot "

+		    supplier   	"Logical View::SQLQueryModel::QueryExpressionRoot"

+		    quidu      	"3B37968301D1"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "withClause"

+		    quid       	"3B37F3FC0193"

+		    label      	"withClause"

+		    supplier   	"Logical View::SQLQueryModel::WithTableSpecification"

+		    quidu      	"3B37EEBD019C"

+		    client_cardinality 	(value cardinality "0..n")

+		    Constraints 	"ordered"

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$21"

+	    quid       	"3B37F408023A"

+	    roles      	(list role_list

+		(object Role "queryExpression"

+		    quid       	"3B37F40900F1"

+		    label      	"queryExpression"

+		    supplier   	"Logical View::SQLQueryModel::QueryExpressionRoot"

+		    quidu      	"3B37968301D1"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "query"

+		    quid       	"3B37F40900FB"

+		    label      	"query"

+		    supplier   	"Logical View::SQLQueryModel::QueryExpressionBody"

+		    quidu      	"3B37924A01CC"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$22"

+	    quid       	"3B37F67B01C4"

+	    roles      	(list role_list

+		(object Role "querySelectHaving"

+		    quid       	"3B37F67C007B"

+		    label      	"querySelectHaving"

+		    supplier   	"Logical View::SQLQueryModel::QuerySelect"

+		    quidu      	"3B37F44F02C8"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "havingClause"

+		    attributes 	(list Attribute_Set

+			(object Attribute

+			    tool       	"Ecore"

+			    name       	"isUnsettable"

+			    value      	TRUE))

+		    quid       	"3B37F67C0085"

+		    label      	"havingClause"

+		    supplier   	"Logical View::SQLQueryModel::QuerySearchCondition"

+		    quidu      	"3B378C160224"

+		    client_cardinality 	(value cardinality "0..1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$23"

+	    quid       	"3B37F67E0204"

+	    roles      	(list role_list

+		(object Role "querySelectWhere"

+		    quid       	"3B37F67F013D"

+		    label      	"querySelectWhere"

+		    supplier   	"Logical View::SQLQueryModel::QuerySelect"

+		    quidu      	"3B37F44F02C8"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "whereClause"

+		    attributes 	(list Attribute_Set

+			(object Attribute

+			    tool       	"Ecore"

+			    name       	"isUnsettable"

+			    value      	TRUE))

+		    quid       	"3B37F67F013F"

+		    label      	"whereClause"

+		    supplier   	"Logical View::SQLQueryModel::QuerySearchCondition"

+		    quidu      	"3B378C160224"

+		    client_cardinality 	(value cardinality "0..1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$24"

+	    quid       	"3B37F6880259"

+	    roles      	(list role_list

+		(object Role "querySelect"

+		    quid       	"3B37F6890174"

+		    label      	"querySelect"

+		    supplier   	"Logical View::SQLQueryModel::QuerySelect"

+		    quidu      	"3B37F44F02C8"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "groupByClause"

+		    quid       	"3B37F6890176"

+		    label      	"groupByClause"

+		    supplier   	"Logical View::SQLQueryModel::GroupingSpecification"

+		    quidu      	"3B37F63D0369"

+		    client_cardinality 	(value cardinality "0..n")

+		    Constraints 	"ordered"

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$25"

+	    quid       	"3B37F6900264"

+	    roles      	(list role_list

+		(object Role "querySelect"

+		    quid       	"3B37F69102CA"

+		    label      	"querySelect"

+		    supplier   	"Logical View::SQLQueryModel::QuerySelect"

+		    quidu      	"3B37F44F02C8"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "selectClause"

+		    quid       	"3B37F69102CC"

+		    label      	"selectClause"

+		    supplier   	"Logical View::SQLQueryModel::QueryResultSpecification"

+		    quidu      	"3B37F66102FD"

+		    client_cardinality 	(value cardinality "0..n")

+		    Constraints 	"ordered"

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$26"

+	    quid       	"3B37F69401CA"

+	    roles      	(list role_list

+		(object Role "querySelect"

+		    quid       	"3B37F69403B4"

+		    label      	"querySelect"

+		    supplier   	"Logical View::SQLQueryModel::QuerySelect"

+		    quidu      	"3B37F44F02C8"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "fromClause"

+		    quid       	"3B37F69403BE"

+		    label      	"fromClause"

+		    supplier   	"Logical View::SQLQueryModel::TableReference"

+		    quidu      	"3B37EE200178"

+		    client_cardinality 	(value cardinality "1..n")

+		    Constraints 	"ordered"

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$27"

+	    quid       	"3B37F9D90051"

+	    roles      	(list role_list

+		(object Role "resultColumn"

+		    quid       	"3B37F9D901AF"

+		    label      	"resultColumn"

+		    supplier   	"Logical View::SQLQueryModel::ResultColumn"

+		    quidu      	"3B37F947006F"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "valueExpr"

+		    quid       	"3B37F9D901B1"

+		    label      	"valueExpr"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$28"

+	    quid       	"3B37FB2D01EA"

+	    roles      	(list role_list

+		(object Role "basicRight"

+		    quid       	"3B37FB2D03A3"

+		    label      	"basicRight"

+		    supplier   	"Logical View::SQLQueryModel::PredicateBasic"

+		    quidu      	"3B37FA6F011F"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "rightValueExpr"

+		    quid       	"3B37FB2D03A5"

+		    label      	"rightValueExpr"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$29"

+	    quid       	"3B37FB2F0215"

+	    roles      	(list role_list

+		(object Role "basicLeft"

+		    quid       	"3B37FB2F03CE"

+		    label      	"basicLeft"

+		    supplier   	"Logical View::SQLQueryModel::PredicateBasic"

+		    quidu      	"3B37FA6F011F"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "leftValueExpr"

+		    quid       	"3B37FB2F03D0"

+		    label      	"leftValueExpr"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$30"

+	    quid       	"3B37FB5501D4"

+	    roles      	(list role_list

+		(object Role "likePattern"

+		    quid       	"3B37FB550396"

+		    label      	"likePattern"

+		    supplier   	"Logical View::SQLQueryModel::PredicateLike"

+		    quidu      	"3B37FAC702A2"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "patternValueExpr"

+		    quid       	"3B37FB550398"

+		    label      	"patternValueExpr"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$31"

+	    quid       	"3B37FB580282"

+	    roles      	(list role_list

+		(object Role "likeMatching"

+		    quid       	"3B37FB59003F"

+		    label      	"likeMatching"

+		    supplier   	"Logical View::SQLQueryModel::PredicateLike"

+		    quidu      	"3B37FAC702A2"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "matchingValueExpr"

+		    quid       	"3B37FB590049"

+		    label      	"matchingValueExpr"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$32"

+	    quid       	"3B37FB600107"

+	    roles      	(list role_list

+		(object Role "predicateNull"

+		    quid       	"3B37FB6002E8"

+		    label      	"predicateNull"

+		    supplier   	"Logical View::SQLQueryModel::PredicateIsNull"

+		    quidu      	"3B37FAD50324"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "valueExpr"

+		    quid       	"3B37FB6002F2"

+		    label      	"valueExpr"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$33"

+	    quid       	"3B37FCD10176"

+	    roles      	(list role_list

+		(object Role "inValueListRight"

+		    quid       	"3B37FCD20005"

+		    label      	"inValueListRight"

+		    supplier   	"Logical View::SQLQueryModel::PredicateInValueList"

+		    quidu      	"3B37FBF403E5"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "valueExprList"

+		    quid       	"3B37FCD20007"

+		    label      	"valueExprList"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"

+		    client_cardinality 	(value cardinality "1..n")

+		    Constraints 	"ordered"

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$34"

+	    quid       	"3B37FCD40044"

+	    roles      	(list role_list

+		(object Role "inValueListLeft"

+		    quid       	"3B37FCD401AC"

+		    label      	"inValueListLeft"

+		    supplier   	"Logical View::SQLQueryModel::PredicateInValueList"

+		    quidu      	"3B37FBF403E5"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "valueExpr"

+		    quid       	"3B37FCD401AE"

+		    label      	"valueExpr"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$35"

+	    quid       	"3B37FD6F00A1"

+	    roles      	(list role_list

+		(object Role "inValueRowSelectLeft"

+		    quid       	"3B37FD6F0259"

+		    label      	"inValueRowSelectLeft"

+		    supplier   	"Logical View::SQLQueryModel::PredicateInValueRowSelect"

+		    quidu      	"3B37FC0B03C0"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "valueExprList"

+		    quid       	"3B37FD6F0263"

+		    label      	"valueExprList"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"

+		    client_cardinality 	(value cardinality "1..n")

+		    Constraints 	"ordered"

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$36"

+	    quid       	"3B37FD710234"

+	    roles      	(list role_list

+		(object Role "inValueRowSelectRight"

+		    quid       	"3B37FD7103A7"

+		    label      	"inValueRowSelectRight"

+		    supplier   	"Logical View::SQLQueryModel::PredicateInValueRowSelect"

+		    quidu      	"3B37FC0B03C0"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "queryExpr"

+		    quid       	"3B37FD7103B1"

+		    label      	"queryExpr"

+		    supplier   	"Logical View::SQLQueryModel::QueryExpressionRoot"

+		    quidu      	"3B37968301D1"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$37"

+	    quid       	"3B37FD7702A1"

+	    roles      	(list role_list

+		(object Role "inValueSelectRight"

+		    quid       	"3B37FD780090"

+		    label      	"inValueSelectRight"

+		    supplier   	"Logical View::SQLQueryModel::PredicateInValueSelect"

+		    quidu      	"3B37FBE4017F"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "queryExpr"

+		    quid       	"3B37FD78009A"

+		    label      	"queryExpr"

+		    supplier   	"Logical View::SQLQueryModel::QueryExpressionRoot"

+		    quidu      	"3B37968301D1"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$38"

+	    quid       	"3B37FD79036C"

+	    roles      	(list role_list

+		(object Role "inValueSelectLeft"

+		    quid       	"3B37FD7A0165"

+		    label      	"inValueSelectLeft"

+		    supplier   	"Logical View::SQLQueryModel::PredicateInValueSelect"

+		    quidu      	"3B37FBE4017F"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "valueExpr"

+		    quid       	"3B37FD7A016F"

+		    label      	"valueExpr"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$39"

+	    quid       	"3B37FD810255"

+	    roles      	(list role_list

+		(object Role "quantifiedRowSelectRight"

+		    quid       	"3B37FD820044"

+		    label      	"quantifiedRowSelectRight"

+		    supplier   	"Logical View::SQLQueryModel::PredicateQuantifiedRowSelect"

+		    quidu      	"3B37FBB7024D"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "queryExpr"

+		    quid       	"3B37FD820046"

+		    label      	"queryExpr"

+		    supplier   	"Logical View::SQLQueryModel::QueryExpressionRoot"

+		    quidu      	"3B37968301D1"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$40"

+	    quid       	"3B37FD83038F"

+	    roles      	(list role_list

+		(object Role "quantifiedRowSelectLeft"

+		    quid       	"3B37FD840173"

+		    label      	"quantifiedRowSelectLeft"

+		    supplier   	"Logical View::SQLQueryModel::PredicateQuantifiedRowSelect"

+		    quidu      	"3B37FBB7024D"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "valueExprList"

+		    quid       	"3B37FD840175"

+		    label      	"valueExprList"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"

+		    client_cardinality 	(value cardinality "1..n")

+		    Constraints 	"ordered"

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$41"

+	    quid       	"3B37FD8502FB"

+	    roles      	(list role_list

+		(object Role "quantifiedValueSelectRight"

+		    quid       	"3B37FD8600D6"

+		    label      	"quantifiedValueSelectRight"

+		    supplier   	"Logical View::SQLQueryModel::PredicateQuantifiedValueSelect"

+		    quidu      	"3B37FB9C03C0"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "queryExpr"

+		    quid       	"3B37FD8600E0"

+		    label      	"queryExpr"

+		    supplier   	"Logical View::SQLQueryModel::QueryExpressionRoot"

+		    quidu      	"3B37968301D1"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$42"

+	    quid       	"3B37FD87024A"

+	    roles      	(list role_list

+		(object Role "quantifiedValueSelectLeft"

+		    quid       	"3B37FD880010"

+		    label      	"quantifiedValueSelectLeft"

+		    supplier   	"Logical View::SQLQueryModel::PredicateQuantifiedValueSelect"

+		    quidu      	"3B37FB9C03C0"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "valueExpr"

+		    quid       	"3B37FD880012"

+		    label      	"valueExpr"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$43"

+	    quid       	"3B37FE4D00D2"

+	    roles      	(list role_list

+		(object Role "betweenLeft"

+		    quid       	"3B37FE4E0110"

+		    label      	"betweenLeft"

+		    supplier   	"Logical View::SQLQueryModel::PredicateBetween"

+		    quidu      	"3B37FA98004B"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "leftValueExpr"

+		    quid       	"3B37FE4E011A"

+		    label      	"leftValueExpr"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$44"

+	    quid       	"3B37FE530185"

+	    roles      	(list role_list

+		(object Role "betweenRight1"

+		    quid       	"3B37FE540078"

+		    label      	"betweenRight1"

+		    supplier   	"Logical View::SQLQueryModel::PredicateBetween"

+		    quidu      	"3B37FA98004B"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "rightValueExpr1"

+		    quid       	"3B37FE540083"

+		    label      	"rightValueExpr1"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$45"

+	    quid       	"3B37FE560229"

+	    roles      	(list role_list

+		(object Role "betweenRight2"

+		    quid       	"3B37FE570068"

+		    label      	"betweenRight2"

+		    supplier   	"Logical View::SQLQueryModel::PredicateBetween"

+		    quidu      	"3B37FA98004B"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "rightValueExpr2"

+		    quid       	"3B37FE570072"

+		    label      	"rightValueExpr2"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$46"

+	    quid       	"3B38A0AF031A"

+	    roles      	(list role_list

+		(object Role "valueExpr"

+		    quid       	"3B38A0B00343"

+		    label      	"valueExpr"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "valueExprCast"

+		    quid       	"3B38A0B00375"

+		    label      	"valueExprCast"

+		    supplier   	"Logical View::SQLQueryModel::ValueExpressionCast"

+		    quidu      	"3B389F33029B"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$47"

+	    quid       	"3B38A10F0282"

+	    roles      	(list role_list

+		(object Role "parameterList"

+		    quid       	"3B38A11800D6"

+		    label      	"parameterList"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"

+		    client_cardinality 	(value cardinality "0..n")

+		    Constraints 	"ordered"

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "valueExprFunction"

+		    quid       	"3B38A1180108"

+		    label      	"valueExprFunction"

+		    supplier   	"Logical View::SQLQueryModel::ValueExpressionFunction"

+		    quidu      	"3B389F78002D"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$48"

+	    quid       	"3B38A1D3032E"

+	    roles      	(list role_list

+		(object Role "leftValueExpr"

+		    quid       	"3B38A1DD011F"

+		    label      	"leftValueExpr"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "valueExprCombinedLeft"

+		    quid       	"3B38A1DD015B"

+		    label      	"valueExprCombinedLeft"

+		    supplier   	"Logical View::SQLQueryModel::ValueExpressionCombined"

+		    quidu      	"3B389F8603D1"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$49"

+	    quid       	"3B38A25500FA"

+	    roles      	(list role_list

+		(object Role "valueExprCombinedRight"

+		    quid       	"3B38A25C01FE"

+		    label      	"valueExprCombinedRight"

+		    supplier   	"Logical View::SQLQueryModel::ValueExpressionCombined"

+		    quidu      	"3B389F8603D1"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "rightValueExpr"

+		    quid       	"3B38A25C0208"

+		    label      	"rightValueExpr"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$50"

+	    quid       	"3B38A5230323"

+	    roles      	(list role_list

+		(object Role "groupingSets"

+		    quid       	"3B38A5240112"

+		    label      	"groupingSets"

+		    supplier   	"Logical View::SQLQueryModel::GroupingSets"

+		    quidu      	"3B38A4DC01A4"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "groupingSetsElementList"

+		    quid       	"3B38A524011C"

+		    label      	"groupingSetsElementList"

+		    supplier   	"Logical View::SQLQueryModel::GroupingSetsElement"

+		    quidu      	"3B38A510018B"

+		    client_cardinality 	(value cardinality "1..n")

+		    Constraints 	"ordered"

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$51"

+	    quid       	"3B38A5C0021A"

+	    roles      	(list role_list

+		(object Role "groupingSetsElementExprList"

+		    quid       	"3B38A5C20368"

+		    label      	"groupingSetsElementExprList"

+		    supplier   	"Logical View::SQLQueryModel::GroupingSetsElementExpression"

+		    quidu      	"3B38A56901C5"

+		    client_cardinality 	(value cardinality "1..n")

+		    Constraints 	"ordered"

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "groupingSetsElementSublist"

+		    quid       	"3B38A5C20372"

+		    label      	"groupingSetsElementSublist"

+		    supplier   	"Logical View::SQLQueryModel::GroupingSetsElementSublist"

+		    quidu      	"3B38A54D0297"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$52"

+	    quid       	"3B38A62A029F"

+	    roles      	(list role_list

+		(object Role "groupingSetsElementExpr"

+		    quid       	"3B38A62C005D"

+		    label      	"groupingSetsElementExpr"

+		    supplier   	"Logical View::SQLQueryModel::GroupingSetsElementExpression"

+		    quidu      	"3B38A56901C5"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "grouping "

+		    quid       	"3B38A62C0067"

+		    label      	"grouping "

+		    supplier   	"Logical View::SQLQueryModel::Grouping"

+		    quidu      	"3B38A4EC0266"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$53"

+	    quid       	"3B38A70101E0"

+	    roles      	(list role_list

+		(object Role "superGroupElementSublist"

+		    quid       	"3B38A7020340"

+		    label      	"superGroupElementSublist"

+		    supplier   	"Logical View::SQLQueryModel::SuperGroupElementSublist"

+		    quidu      	"3B38A6A1037C"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "superGroupElementExprList"

+		    quid       	"3B38A7020342"

+		    label      	"superGroupElementExprList"

+		    supplier   	"Logical View::SQLQueryModel::SuperGroupElementExpression"

+		    quidu      	"3B38A6AF026E"

+		    client_cardinality 	(value cardinality "1..n")

+		    Constraints 	"ordered"

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$54"

+	    quid       	"3B38A731009E"

+	    roles      	(list role_list

+		(object Role "superGroup"

+		    quid       	"3B38A7310289"

+		    label      	"superGroup"

+		    supplier   	"Logical View::SQLQueryModel::SuperGroup"

+		    quidu      	"3B38A6570326"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "superGroupElementList"

+		    quid       	"3B38A7310293"

+		    label      	"superGroupElementList"

+		    supplier   	"Logical View::SQLQueryModel::SuperGroupElement"

+		    quidu      	"3B38A6870389"

+		    client_cardinality 	(value cardinality "0..n")

+		    Constraints 	"ordered"

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$55"

+	    quid       	"3B38A78A002E"

+	    roles      	(list role_list

+		(object Role "groupingExpr"

+		    quid       	"3B38A78A01FB"

+		    label      	"groupingExpr"

+		    supplier   	"Logical View::SQLQueryModel::GroupingExpression"

+		    quidu      	"3B38A6670094"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "valueExpr"

+		    quid       	"3B38A78A0205"

+		    label      	"valueExpr"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$56"

+	    quid       	"3B38A7A50376"

+	    roles      	(list role_list

+		(object Role "groupingExpr"

+		    quid       	"3B38A7A9015F"

+		    label      	"groupingExpr"

+		    supplier   	"Logical View::SQLQueryModel::GroupingExpression"

+		    quidu      	"3B38A6670094"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "superGroupElementExpr"

+		    quid       	"3B38A7A90169"

+		    label      	"superGroupElementExpr"

+		    supplier   	"Logical View::SQLQueryModel::SuperGroupElementExpression"

+		    quidu      	"3B38A6AF026E"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$57"

+	    quid       	"3B38A97000B9"

+	    roles      	(list role_list

+		(object Role "valueExprCase"

+		    quid       	"3B38A9700362"

+		    label      	"valueExprCase"

+		    supplier   	"Logical View::SQLQueryModel::ValueExpressionCase"

+		    quidu      	"3B389F19026C"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "caseElse"

+		    quid       	"3B38A970036C"

+		    label      	"caseElse"

+		    supplier   	"Logical View::SQLQueryModel::ValueExpressionCaseElse"

+		    quidu      	"3B38A90D01A7"

+		    client_cardinality 	(value cardinality "0..1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$58"

+	    quid       	"3B38AA3102F2"

+	    roles      	(list role_list

+		(object Role "valueExprCaseSimple"

+		    quid       	"3B38AA3200EA"

+		    label      	"valueExprCaseSimple"

+		    supplier   	"Logical View::SQLQueryModel::ValueExpressionCaseSimple"

+		    quidu      	"3B38A8EF0082"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "contentList"

+		    quid       	"3B38AA3200EC"

+		    label      	"contentList"

+		    supplier   	"Logical View::SQLQueryModel::ValueExpressionCaseSimpleContent"

+		    quidu      	"3B38A9C1019C"

+		    client_cardinality 	(value cardinality "1..n")

+		    Constraints 	"ordered"

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$59"

+	    quid       	"3B38AAA4013E"

+	    roles      	(list role_list

+		(object Role "valueExprCaseElse"

+		    quid       	"3B38AAA50077"

+		    label      	"valueExprCaseElse"

+		    supplier   	"Logical View::SQLQueryModel::ValueExpressionCaseElse"

+		    quidu      	"3B38A90D01A7"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "valueExpr"

+		    quid       	"3B38AAA50081"

+		    label      	"valueExpr"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"

+		    client_cardinality 	(value cardinality "0..1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$60"

+	    quid       	"3B38AACF019A"

+	    roles      	(list role_list

+		(object Role "valueExprCaseSimple"

+		    quid       	"3B38AAD000E7"

+		    label      	"valueExprCaseSimple"

+		    supplier   	"Logical View::SQLQueryModel::ValueExpressionCaseSimple"

+		    quidu      	"3B38A8EF0082"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "valueExpr"

+		    quid       	"3B38AAD000E9"

+		    label      	"valueExpr"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$61"

+	    quid       	"3B38AB040128"

+	    roles      	(list role_list

+		(object Role "valueExprCaseSimpleContentWhen"

+		    quid       	"3B38AB0800CA"

+		    label      	"valueExprCaseSimpleContentWhen"

+		    supplier   	"Logical View::SQLQueryModel::ValueExpressionCaseSimpleContent"

+		    quidu      	"3B38A9C1019C"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "whenValueExpr"

+		    quid       	"3B38AB0800D4"

+		    label      	"whenValueExpr"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$62"

+	    quid       	"3B38AB0F02BF"

+	    roles      	(list role_list

+		(object Role "valueExprCaseSimpleContentResult"

+		    quid       	"3B38AB1201DD"

+		    label      	"valueExprCaseSimpleContentResult"

+		    supplier   	"Logical View::SQLQueryModel::ValueExpressionCaseSimpleContent"

+		    quidu      	"3B38A9C1019C"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "resultValueExpr"

+		    quid       	"3B38AB1201DF"

+		    label      	"resultValueExpr"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$63"

+	    quid       	"3B38AB1701C6"

+	    roles      	(list role_list

+		(object Role "valueExprCaseSearchContent"

+		    quid       	"3B38AB1903B3"

+		    label      	"valueExprCaseSearchContent"

+		    supplier   	"Logical View::SQLQueryModel::ValueExpressionCaseSearchContent"

+		    quidu      	"3B38A9A7034D"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "valueExpr"

+		    quid       	"3B38AB1903B5"

+		    label      	"valueExpr"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$64"

+	    quid       	"3B38ABC6011D"

+	    roles      	(list role_list

+		(object Role "valueExprCaseSearchContent"

+		    quid       	"3B38ABC60330"

+		    label      	"valueExprCaseSearchContent"

+		    supplier   	"Logical View::SQLQueryModel::ValueExpressionCaseSearchContent"

+		    quidu      	"3B38A9A7034D"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "searchCondition"

+		    quid       	"3B38ABC60332"

+		    label      	"searchCondition"

+		    supplier   	"Logical View::SQLQueryModel::QuerySearchCondition"

+		    quidu      	"3B378C160224"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$65"

+	    quid       	"3B3A0F03019D"

+	    roles      	(list role_list

+		(object Role "combinedLeft"

+		    quid       	"3B3A0F060101"

+		    label      	"combinedLeft"

+		    supplier   	"Logical View::SQLQueryModel::QueryCombined"

+		    quidu      	"3B37F42D0189"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "leftQuery"

+		    quid       	"3B3A0F06011F"

+		    label      	"leftQuery"

+		    supplier   	"Logical View::SQLQueryModel::QueryExpressionBody"

+		    quidu      	"3B37924A01CC"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$66"

+	    quid       	"3B3A0F090214"

+	    roles      	(list role_list

+		(object Role "combinedRight"

+		    quid       	"3B3A0F0C00CD"

+		    label      	"combinedRight"

+		    supplier   	"Logical View::SQLQueryModel::QueryCombined"

+		    quidu      	"3B37F42D0189"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "rightQuery"

+		    quid       	"3B3A0F0C00E1"

+		    label      	"rightQuery"

+		    supplier   	"Logical View::SQLQueryModel::QueryExpressionBody"

+		    quidu      	"3B37924A01CC"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$67"

+	    quid       	"3B3A5AE7026B"

+	    roles      	(list role_list

+		(object Role "predicateExists"

+		    quid       	"3B3A5AE800C8"

+		    label      	"predicateExists"

+		    supplier   	"Logical View::SQLQueryModel::PredicateExists"

+		    quidu      	"3B37FAA50158"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "queryExpr"

+		    quid       	"3B3A5AE800D2"

+		    label      	"queryExpr"

+		    supplier   	"Logical View::SQLQueryModel::QueryExpressionBody"

+		    quidu      	"3B37924A01CC"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$68"

+	    quid       	"3B3A5B53039D"

+	    roles      	(list role_list

+		(object Role "likeEscape"

+		    quid       	"3B3A5B54018C"

+		    label      	"likeEscape"

+		    supplier   	"Logical View::SQLQueryModel::PredicateLike"

+		    quidu      	"3B37FAC702A2"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "escapeValueExpr"

+		    quid       	"3B3A5B54018E"

+		    label      	"escapeValueExpr"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"

+		    client_cardinality 	(value cardinality "0..1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$69"

+	    quid       	"3B3A5BBF0226"

+	    roles      	(list role_list

+		(object Role "querySelect"

+		    quid       	"3B3A5BC0003C"

+		    label      	"querySelect"

+		    supplier   	"Logical View::SQLQueryModel::QuerySelect"

+		    quidu      	"3B37F44F02C8"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "intoClause"

+		    quid       	"3B3A5BC00046"

+		    label      	"intoClause"

+		    supplier   	"Logical View::SQLQueryModel::ValueExpressionVariable"

+		    quidu      	"3B389EC5029D"

+		    client_cardinality 	(value cardinality "0..n")

+		    Constraints 	"ordered"

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$70"

+	    quid       	"3B3A684C0244"

+	    roles      	(list role_list

+		(object Role "valueExpr"

+		    quid       	"3B3A684F0176"

+		    label      	"valueExpr"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "valueExprLabeledDuration"

+		    quid       	"3B3A684F01D0"

+		    label      	"valueExprLabeledDuration"

+		    supplier   	"Logical View::SQLQueryModel::ValueExpressionLabeledDuration"

+		    quidu      	"3B389EF70385"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$71"

+	    quid       	"3B8C1E7D0239"

+	    roles      	(list role_list

+		(object Role "parentTableExpr"

+		    attributes 	(list Attribute_Set

+			(object Attribute

+			    tool       	"Ecore"

+			    name       	"isUnsettable"

+			    value      	TRUE))

+		    quid       	"3B8C1E7E0168"

+		    label      	"parentTableExpr"

+		    supplier   	"Logical View::SQLQueryModel::TableExpression"

+		    quidu      	"3B37EE600288"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "columnList"

+		    attributes 	(list Attribute_Set

+			(object Attribute

+			    tool       	"eCore"

+			    name       	"isTransient"

+			    value      	FALSE))

+		    quid       	"3B8C1E7E0172"

+		    label      	"columnList"

+		    supplier   	"Logical View::SQLQueryModel::ValueExpressionColumn"

+		    quidu      	"3B389EAF00BB"

+		    client_cardinality 	(value cardinality "0..n")

+		    Constraints 	"ordered"

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$72"

+	    quid       	"3BDE1A410126"

+	    roles      	(list role_list

+		(object Role "valueExprCaseSearch"

+		    quid       	"3BDE1A4103C5"

+		    label      	"valueExprCaseSearch"

+		    supplier   	"Logical View::SQLQueryModel::ValueExpressionCaseSearch"

+		    quidu      	"3B38A8D00055"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "searchContentList"

+		    quid       	"3BDE1A4103D0"

+		    label      	"searchContentList"

+		    supplier   	"Logical View::SQLQueryModel::ValueExpressionCaseSearchContent"

+		    quidu      	"3B38A9A7034D"

+		    client_cardinality 	(value cardinality "1..n")

+		    Constraints 	"ordered"

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$73"

+	    quid       	"404925200025"

+	    roles      	(list role_list

+		(object Role "nestedTableRef"

+		    quid       	"404925230029"

+		    label      	"nestedTableRef"

+		    supplier   	"Logical View::SQLQueryModel::TableReference"

+		    quidu      	"3B37EE200178"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "nest"

+		    quid       	"404925230034"

+		    label      	"nest"

+		    supplier   	"Logical View::SQLQueryModel::TableNested"

+		    quidu      	"404924F0038D"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$74"

+	    quid       	"404C4A000222"

+	    roles      	(list role_list

+		(object Role "nestedCondition"

+		    quid       	"404C4A030384"

+		    label      	"nestedCondition"

+		    supplier   	"Logical View::SQLQueryModel::QuerySearchCondition"

+		    quidu      	"3B378C160224"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "nest"

+		    quid       	"404C4A030398"

+		    label      	"nest"

+		    supplier   	"Logical View::SQLQueryModel::SearchConditionNested"

+		    quidu      	"404C491D033E"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$75"

+	    quid       	"404D1D93022C"

+	    roles      	(list role_list

+		(object Role "nestedValueExpr"

+		    quid       	"404D1D9602EE"

+		    label      	"nestedValueExpr"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "nest"

+		    quid       	"404D1D960316"

+		    label      	"nest"

+		    supplier   	"Logical View::SQLQueryModel::ValueExpressionNested"

+		    quidu      	"404CFF7601CC"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$76"

+	    quid       	"412F75A3032D"

+	    roles      	(list role_list

+		(object Role "databaseTable "

+		    quid       	"412F75A50055"

+		    label      	"databaseTable "

+		    supplier   	"Logical View::SQLModel::Tables::Table"

+		    quidu      	"3E9B1FB60047"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Reference"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$77"

+		    quid       	"412F75A50073"

+		    supplier   	"Logical View::SQLQueryModel::TableInDatabase"

+		    quidu      	"3BF3D3560327")))

+	(object Association "$UNNAMED$78"

+	    quid       	"412F8CBC0208"

+	    roles      	(list role_list

+		(object Role "tableCorrelation"

+		    quid       	"412F8CBE0297"

+		    label      	"tableCorrelation"

+		    supplier   	"Logical View::SQLQueryModel::TableCorrelation"

+		    quidu      	"412F8BD80253"

+		    client_cardinality 	(value cardinality "0..1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "tableExpr"

+		    quid       	"412F8CBE02BF"

+		    label      	"tableExpr"

+		    supplier   	"Logical View::SQLQueryModel::TableExpression"

+		    quidu      	"3B37EE600288"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$79"

+	    quid       	"412F8DAA01C1"

+	    roles      	(list role_list

+		(object Role "columnNameList"

+		    quid       	"412F8DAB02BD"

+		    label      	"columnNameList"

+		    supplier   	"Logical View::SQLQueryModel::ColumnName"

+		    quidu      	"4049226F035A"

+		    client_cardinality 	(value cardinality "0..n")

+		    Constraints 	"ordered"

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "tableCorrelation"

+		    quid       	"412F8DAB02C7"

+		    label      	"tableCorrelation"

+		    supplier   	"Logical View::SQLQueryModel::TableCorrelation"

+		    quidu      	"412F8BD80253"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$80"

+	    quid       	"412F99C002F9"

+	    roles      	(list role_list

+		(object Role "targetColumnList"

+		    quid       	"412F99C102FA"

+		    label      	"targetColumnList"

+		    supplier   	"Logical View::SQLQueryModel::ValueExpressionColumn"

+		    quidu      	"3B389EAF00BB"

+		    client_cardinality 	(value cardinality "0..n")

+		    Constraints 	"ordered"

+		    Containment 	"By Reference"

+		    is_navigable 	TRUE)

+		(object Role "insertStatement"

+		    quid       	"412F99C1030F"

+		    label      	"insertStatement"

+		    supplier   	"Logical View::SQLQueryModel::QueryInsertStatement"

+		    quidu      	"3B3785520223"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$81"

+	    quid       	"4176D9FF033E"

+	    roles      	(list role_list

+		(object Role "updateSource"

+		    quid       	"4176DA000335"

+		    label      	"updateSource"

+		    supplier   	"Logical View::SQLQueryModel::UpdateSource"

+		    quidu      	"4176D9920095"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "updateAssignmentExpr"

+		    quid       	"4176DA000337"

+		    label      	"updateAssignmentExpr"

+		    supplier   	"Logical View::SQLQueryModel::UpdateAssignmentExpression"

+		    quidu      	"3B378BF6015F"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$82"

+	    quid       	"4176DB4E0000"

+	    roles      	(list role_list

+		(object Role "valueExprList"

+		    quid       	"4176DB4F03C3"

+		    label      	"valueExprList"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"

+		    client_cardinality 	(value cardinality "1..n")

+		    Constraints 	"ordered"

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "updateSourceExprList"

+		    quid       	"4176DB4F03D7"

+		    label      	"updateSourceExprList"

+		    supplier   	"Logical View::SQLQueryModel::UpdateSourceExprList"

+		    quidu      	"4176DB070150"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$83"

+	    quid       	"4176DC0C01E0"

+	    roles      	(list role_list

+		(object Role "queryExpr"

+		    quid       	"4176DC0D0245"

+		    label      	"queryExpr"

+		    supplier   	"Logical View::SQLQueryModel::QueryExpressionBody"

+		    quidu      	"3B37924A01CC"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "updateSourceQuery"

+		    quid       	"4176DC0D0247"

+		    label      	"updateSourceQuery"

+		    supplier   	"Logical View::SQLQueryModel::UpdateSourceQuery"

+		    quidu      	"4176DB2502C7"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$84"

+	    quid       	"41990B8303E2"

+	    roles      	(list role_list

+		(object Role "queryExpr"

+		    quid       	"41990B85012A"

+		    label      	"queryExpr"

+		    supplier   	"Logical View::SQLQueryModel::QueryExpressionRoot"

+		    quidu      	"3B37968301D1"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "valExprScalarSelect"

+		    quid       	"41990B85012C"

+		    label      	"valExprScalarSelect"

+		    supplier   	"Logical View::SQLQueryModel::ValueExpressionScalarSelect"

+		    quidu      	"3B389EE1015D"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$85"

+	    quid       	"41AB8B960230"

+	    roles      	(list role_list

+		(object Role "resultCol"

+		    quid       	"41AB8B970246"

+		    label      	"resultCol"

+		    supplier   	"Logical View::SQLQueryModel::ResultColumn"

+		    quidu      	"3B37F947006F"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE)

+		(object Role "orderByResultCol"

+		    quid       	"41AB8B970248"

+		    label      	"orderByResultCol"

+		    supplier   	"Logical View::SQLQueryModel::OrderByResultColumn"

+		    quidu      	"41AB8B39017F"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$86"

+	    quid       	"41B8F9BD01F7"

+	    roles      	(list role_list

+		(object Role "tableExpr"

+		    quid       	"41B8F9BE01AF"

+		    label      	"tableExpr"

+		    supplier   	"Logical View::SQLQueryModel::TableExpression"

+		    quidu      	"3B37EE600288"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE)

+		(object Role "resultTableAllColumns"

+		    quid       	"41B8F9BE01B1"

+		    label      	"resultTableAllColumns"

+		    supplier   	"Logical View::SQLQueryModel::ResultTableAllColumns"

+		    quidu      	"3B37F93B0085"

+		    client_cardinality 	(value cardinality "0..n")

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$87"

+	    quid       	"41F971E90098"

+	    roles      	(list role_list

+		(object Role "withTableQueryExpr"

+		    quid       	"41F971EA0088"

+		    label      	"withTableQueryExpr"

+		    supplier   	"Logical View::SQLQueryModel::QueryExpressionBody"

+		    quidu      	"3B37924A01CC"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "withTableSpecification"

+		    quid       	"41F971EA0092"

+		    label      	"withTableSpecification"

+		    supplier   	"Logical View::SQLQueryModel::WithTableSpecification"

+		    quidu      	"3B37EEBD019C"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$88"

+	    quid       	"41F973BA0398"

+	    roles      	(list role_list

+		(object Role "withTableSpecification"

+		    quid       	"41F973BD01CC"

+		    label      	"withTableSpecification"

+		    supplier   	"Logical View::SQLQueryModel::WithTableSpecification"

+		    quidu      	"3B37EEBD019C"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE)

+		(object Role "withTableReferences"

+		    quid       	"41F973BD01CE"

+		    label      	"withTableReferences"

+		    supplier   	"Logical View::SQLQueryModel::WithTableReference"

+		    quidu      	"41F971470060"

+		    client_cardinality 	(value cardinality "0..n")

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$89"

+	    quid       	"41F9748E0122"

+	    roles      	(list role_list

+		(object Role "columnNameList"

+		    quid       	"41F9748F0099"

+		    label      	"columnNameList"

+		    supplier   	"Logical View::SQLQueryModel::ColumnName"

+		    quidu      	"4049226F035A"

+		    client_cardinality 	(value cardinality "0..n")

+		    Constraints 	"ordered"

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "withTableSpecification"

+		    quid       	"41F9748F009B"

+		    label      	"withTableSpecification"

+		    supplier   	"Logical View::SQLQueryModel::WithTableSpecification"

+		    quidu      	"3B37EEBD019C"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$90"

+	    quid       	"41FA8D26028E"

+	    roles      	(list role_list

+		(object Role "function"

+		    quid       	"41FA8D2800F6"

+		    label      	"function"

+		    supplier   	"Logical View::SQLModel::Routines::Function"

+		    quidu      	"3F3D3B50012C"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$91"

+		    quid       	"41FA8D28010A"

+		    supplier   	"Logical View::SQLQueryModel::ValueExpressionFunction"

+		    quidu      	"3B389F78002D")))

+	(object Association "$UNNAMED$92"

+	    quid       	"42029BB0019B"

+	    roles      	(list role_list

+		(object Role "valuesRowList"

+		    quid       	"42029BB100A2"

+		    label      	"valuesRowList"

+		    supplier   	"Logical View::SQLQueryModel::ValuesRow"

+		    quidu      	"3B3796910130"

+		    client_cardinality 	(value cardinality "1..n")

+		    Constraints 	"ordered"

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "queryValues"

+		    quid       	"42029BB100A4"

+		    label      	"queryValues"

+		    supplier   	"Logical View::SQLQueryModel::QueryValues"

+		    quidu      	"3B37969E01ED"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$93"

+	    quid       	"421269CE0197"

+	    roles      	(list role_list

+		(object Role "tableExpr"

+		    quid       	"421269D003C2"

+		    label      	"tableExpr"

+		    supplier   	"Logical View::SQLQueryModel::TableExpression"

+		    quidu      	"3B37EE600288"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE)

+		(object Role "valueExprColumns"

+		    quid       	"421269D003CC"

+		    label      	"valueExprColumns"

+		    supplier   	"Logical View::SQLQueryModel::ValueExpressionColumn"

+		    quidu      	"3B389EAF00BB"

+		    client_cardinality 	(value cardinality "0..n")

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$94"

+	    quid       	"4238889402F3"

+	    documentation 	"Associates a <code>TableInDatabase</code> with the columns in the statement that are derived from it."

+	    roles      	(list role_list

+		(object Role "tableInDatabase"

+		    quid       	"4238889502A4"

+		    documentation 	"Gets the <code>TableInDatabase</code> from which this column is ulitimately derived, if any."

+		    label      	"tableInDatabase"

+		    supplier   	"Logical View::SQLQueryModel::TableInDatabase"

+		    quidu      	"3BF3D3560327"

+		    client_cardinality 	(value cardinality "0..1")

+		    is_navigable 	TRUE)

+		(object Role "derivedColumnList"

+		    quid       	"4238889502A6"

+		    documentation 	"Gets the list of columns used anywhere in the statement that are derived from this table."

+		    label      	"derivedColumnList"

+		    supplier   	"Logical View::SQLQueryModel::ValueExpressionColumn"

+		    quidu      	"3B389EAF00BB"

+		    client_cardinality 	(value cardinality "0..n")

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$95"

+	    quid       	"4445749A0364"

+	    roles      	(list role_list

+		(object Role "nestedQuery"

+		    quid       	"4445749C0399"

+		    label      	"nestedQuery"

+		    supplier   	"Logical View::SQLQueryModel::QueryExpressionBody"

+		    quidu      	"3B37924A01CC"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "queryNest"

+		    quid       	"4445749C039B"

+		    label      	"queryNest"

+		    supplier   	"Logical View::SQLQueryModel::QueryNested"

+		    quidu      	"4445534B01A5"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$96"

+	    quid       	"486BCF040297"

+	    roles      	(list role_list

+		(object Role "function"

+		    quid       	"486BCF060041"

+		    label      	"function"

+		    supplier   	"Logical View::SQLModel::Routines::Function"

+		    quidu      	"3F3D3B50012C"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$97"

+		    quid       	"486BCF060055"

+		    supplier   	"Logical View::SQLQueryModel::TableFunction"

+		    quidu      	"3BF3D3E801A0")))

+	(object Association "$UNNAMED$98"

+	    quid       	"486BCF89034A"

+	    roles      	(list role_list

+		(object Role "parameterList"

+		    quid       	"486BCF8B0036"

+		    label      	"parameterList"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"

+		    client_cardinality 	(value cardinality "0..n")

+		    Constraints 	"ordered"

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "tableFunction"

+		    quid       	"486BCF8B0054"

+		    label      	"tableFunction"

+		    supplier   	"Logical View::SQLQueryModel::TableFunction"

+		    quidu      	"3BF3D3E801A0"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$99"

+	    quid       	"486BD3F20001"

+	    roles      	(list role_list

+		(object Role "valueExprList"

+		    quid       	"486BD3F300A3"

+		    label      	"valueExprList"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"

+		    client_cardinality 	(value cardinality "0..n")

+		    Constraints 	"ordered"

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "valueExprRow"

+		    quid       	"486BD3F300D5"

+		    label      	"valueExprRow"

+		    supplier   	"Logical View::SQLQueryModel::ValueExpressionRow"

+		    quidu      	"486BD0B001FE"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$100"

+	    quid       	"49717D6901B5"

+	    roles      	(list role_list

+		(object Role "targetTable"

+		    quid       	"49717D6A0109"

+		    label      	"targetTable"

+		    supplier   	"Logical View::SQLQueryModel::MergeTargetTable"

+		    quidu      	"49717CEF01B5"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "mergeStatement"

+		    quid       	"49717D6A0119"

+		    label      	"mergeStatement"

+		    supplier   	"Logical View::SQLQueryModel::QueryMergeStatement"

+		    quidu      	"404C2AAB0232"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$101"

+	    quid       	"49717F570148"

+	    roles      	(list role_list

+		(object Role "$UNNAMED$102"

+		    quid       	"49717F58008C"

+		    supplier   	"Logical View::SQLQueryModel::QueryMergeStatement"

+		    quidu      	"404C2AAB0232"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$103"

+		    quid       	"49717F58008E"

+		    supplier   	"Logical View::SQLQueryModel::MergeSourceTable"

+		    quidu      	"49717F4B0271")))

+	(object Association "$UNNAMED$104"

+	    quid       	"49717F5F009C"

+	    roles      	(list role_list

+		(object Role "sourceTable"

+		    quid       	"49717F5F037A"

+		    label      	"sourceTable"

+		    supplier   	"Logical View::SQLQueryModel::MergeSourceTable"

+		    quidu      	"49717F4B0271"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "mergeStatement"

+		    quid       	"49717F5F038A"

+		    label      	"mergeStatement"

+		    supplier   	"Logical View::SQLQueryModel::QueryMergeStatement"

+		    quidu      	"404C2AAB0232"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$105"

+	    quid       	"49717FDB008C"

+	    roles      	(list role_list

+		(object Role "tableRef"

+		    quid       	"49717FDC0148"

+		    label      	"tableRef"

+		    supplier   	"Logical View::SQLQueryModel::TableReference"

+		    quidu      	"3B37EE200178"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "mergeSourceTable"

+		    quid       	"49717FDC014A"

+		    label      	"mergeSourceTable"

+		    supplier   	"Logical View::SQLQueryModel::MergeSourceTable"

+		    quidu      	"49717F4B0271"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$106"

+	    quid       	"4971824601C5"

+	    roles      	(list role_list

+		(object Role "onCondition"

+		    quid       	"497182470203"

+		    label      	"onCondition"

+		    supplier   	"Logical View::SQLQueryModel::MergeOnCondition"

+		    quidu      	"4971822C0148"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "mergeStatement"

+		    quid       	"497182470205"

+		    label      	"mergeStatement"

+		    supplier   	"Logical View::SQLQueryModel::QueryMergeStatement"

+		    quidu      	"404C2AAB0232"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$107"

+	    quid       	"497182B402FD"

+	    roles      	(list role_list

+		(object Role "searchCondition"

+		    quid       	"497182B501A5"

+		    label      	"searchCondition"

+		    supplier   	"Logical View::SQLQueryModel::QuerySearchCondition"

+		    quidu      	"3B378C160224"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "mergeOnCondition"

+		    quid       	"497182B501A7"

+		    label      	"mergeOnCondition"

+		    supplier   	"Logical View::SQLQueryModel::MergeOnCondition"

+		    quidu      	"4971822C0148"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$108"

+	    quid       	"497184D0035B"

+	    roles      	(list role_list

+		(object Role "assignementExprList"

+		    quid       	"497184D10251"

+		    label      	"assignementExprList"

+		    supplier   	"Logical View::SQLQueryModel::UpdateAssignmentExpression"

+		    quidu      	"3B378BF6015F"

+		    client_cardinality 	(value cardinality "1..n")

+		    Constraints 	"ordered"

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "mergeUpdateSpec"

+		    quid       	"497184D10253"

+		    label      	"mergeUpdateSpec"

+		    supplier   	"Logical View::SQLQueryModel::MergeUpdateSpecification"

+		    quidu      	"4971844B003E"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$109"

+	    quid       	"4971885002BF"

+	    roles      	(list role_list

+		(object Role "targetColumnList"

+		    quid       	"497188510196"

+		    label      	"targetColumnList"

+		    supplier   	"Logical View::SQLQueryModel::ValueExpressionColumn"

+		    quidu      	"3B389EAF00BB"

+		    client_cardinality 	(value cardinality "0..n")

+		    Constraints 	"ordered"

+		    is_navigable 	TRUE)

+		(object Role "mergeInsertSpec"

+		    quid       	"497188510198"

+		    label      	"mergeInsertSpec"

+		    supplier   	"Logical View::SQLQueryModel::MergeInsertSpecification"

+		    quidu      	"497185E60242"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$110"

+	    quid       	"497188C0001F"

+	    roles      	(list role_list

+		(object Role "sourceValuesRow"

+		    quid       	"497188C003B9"

+		    label      	"sourceValuesRow"

+		    supplier   	"Logical View::SQLQueryModel::ValuesRow"

+		    quidu      	"3B3796910130"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$111"

+		    quid       	"497188C003BB"

+		    supplier   	"Logical View::SQLQueryModel::MergeInsertSpecification"

+		    quidu      	"497185E60242"

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$112"

+	    quid       	"498BA98501C5"

+	    roles      	(list role_list

+		(object Role "operationSpecList"

+		    quid       	"498BA98600CB"

+		    label      	"operationSpecList"

+		    supplier   	"Logical View::SQLQueryModel::MergeOperationSpecification"

+		    quidu      	"498A415902FD"

+		    client_cardinality 	(value cardinality "1..n")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "mergeStatement"

+		    quid       	"498BA98600CD"

+		    label      	"mergeStatement"

+		    supplier   	"Logical View::SQLQueryModel::QueryMergeStatement"

+		    quidu      	"404C2AAB0232"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$113"

+	    quid       	"498E982B029F"

+	    roles      	(list role_list

+		(object Role "tableExpr"

+		    quid       	"498E982D0119"

+		    label      	"tableExpr"

+		    supplier   	"Logical View::SQLQueryModel::TableExpression"

+		    quidu      	"3B37EE600288"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "mergeTargetTable"

+		    quid       	"498E982D0128"

+		    label      	"mergeTargetTable"

+		    supplier   	"Logical View::SQLQueryModel::MergeTargetTable"

+		    quidu      	"49717CEF01B5"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$114"

+	    quid       	"49C696C1000F"

+	    roles      	(list role_list

+		(object Role "updateOfColumnList"

+		    quid       	"49C696C102AF"

+		    label      	"updateOfColumnList"

+		    supplier   	"Logical View::SQLQueryModel::UpdateOfColumn"

+		    quidu      	"49C49424033C"

+		    client_cardinality 	(value cardinality "0..n")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "updatabilityExpr"

+		    quid       	"49C696C102B1"

+		    label      	"updatabilityExpr"

+		    supplier   	"Logical View::SQLQueryModel::UpdatabilityExpression"

+		    quidu      	"49C69615004E"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$115"

+	    quid       	"49C697180167"

+	    roles      	(list role_list

+		(object Role "updatabilityExpr"

+		    quid       	"49C69719001F"

+		    label      	"updatabilityExpr"

+		    supplier   	"Logical View::SQLQueryModel::UpdatabilityExpression"

+		    quidu      	"49C69615004E"

+		    client_cardinality 	(value cardinality "0..1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "selectStatement"

+		    quid       	"49C697190021"

+		    label      	"selectStatement"

+		    supplier   	"Logical View::SQLQueryModel::QuerySelectStatement"

+		    quidu      	"3B37856000BB"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$116"

+	    quid       	"49D404D0038A"

+	    roles      	(list role_list

+		(object Role "sortSpecList"

+		    quid       	"49D404D10261"

+		    label      	"sortSpecList"

+		    supplier   	"Logical View::SQLQueryModel::OrderBySpecification"

+		    quidu      	"404D14E20381"

+		    client_cardinality 	(value cardinality "0..n")

+		    Constraints 	"ordered"

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "query"

+		    quid       	"49D404D10271"

+		    label      	"query"

+		    supplier   	"Logical View::SQLQueryModel::QueryExpressionBody"

+		    quidu      	"3B37924A01CC"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$117"

+	    quid       	"4B50D0F40196"

+	    roles      	(list role_list

+		(object Role "argumentList"

+		    quid       	"4B50D0F50290"

+		    label      	"argumentList"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"

+		    client_cardinality 	(value cardinality "0..n")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "callStatement"

+		    quid       	"4B50D0F502EE"

+		    label      	"callStatement"

+		    supplier   	"Logical View::SQLQueryModel::CallStatement"

+		    quidu      	"4B50CD41004E"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$118"

+	    quid       	"4BC79E530271"

+	    roles      	(list role_list

+		(object Role "procedureRef"

+		    quid       	"4BC79E5401D4"

+		    label      	"procedureRef"

+		    supplier   	"Logical View::SQLQueryModel::ProcedureReference"

+		    quidu      	"4BC79E0202DE"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "callStatement"

+		    quid       	"4BC79E5401D6"

+		    label      	"callStatement"

+		    supplier   	"Logical View::SQLQueryModel::CallStatement"

+		    quidu      	"4B50CD41004E"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$119"

+	    quid       	"4BC79ECF02BF"

+	    roles      	(list role_list

+		(object Role "procedure"

+		    quid       	"4BC79ED00213"

+		    label      	"procedure"

+		    supplier   	"Logical View::SQLModel::Routines::Procedure"

+		    quidu      	"3F3D3B200263"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$120"

+		    quid       	"4BC79ED00215"

+		    supplier   	"Logical View::SQLQueryModel::ProcedureReference"

+		    quidu      	"4BC79E0202DE")))

+	(object Association "$UNNAMED$121"

+	    quid       	"4E9885A3001F"

+	    roles      	(list role_list

+		(object Role "query"

+		    quid       	"4E9885A5005D"

+		    label      	"query"

+		    supplier   	"Logical View::SQLQueryModel::QueryExpressionBody"

+		    quidu      	"3B37924A01CC"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$122"

+		    quid       	"4E9885A5005F"

+		    supplier   	"Logical View::SQLQueryModel::TableQueryLateral"

+		    quidu      	"4E98855000BB"

+		    is_aggregate 	TRUE))))

+    logical_presentations 	(list unit_reference_list

+	(object ClassDiagram "QueryStatement"

+	    quid       	"3B37846A01BB"

+	    title      	"QueryStatement"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	0

+	    origin_y   	0

+	    items      	(list diagram_item_list

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryDeleteStatement" @1

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    ShowOperationSignature 	TRUE

+		    location   	(2106, 1885)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@1

+			location   	(1865, 1835)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	482

+			justify    	0

+			label      	"QueryDeleteStatement")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B378546017C"

+		    width      	500

+		    height     	125

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryInsertStatement" @2

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    ShowOperationSignature 	TRUE

+		    location   	(403, 1885)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@2

+			location   	(153, 1838)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	501

+			justify    	0

+			label      	"QueryInsertStatement")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B3785520223"

+		    width      	519

+		    height     	119

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QuerySelectStatement" @3

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    ShowOperationSignature 	TRUE

+		    location   	(838, 1340)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@3

+			location   	(601, 1293)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	475

+			justify    	0

+			label      	"QuerySelectStatement")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B37856000BB"

+		    width      	493

+		    height     	119

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryUpdateStatement" @4

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    ShowOperationSignature 	TRUE

+		    location   	(962, 1885)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@4

+			location   	(721, 1838)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	483

+			justify    	0

+			label      	"QueryUpdateStatement")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B3785760076"

+		    width      	501

+		    height     	119

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryStatement" @5

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    ShowOperationSignature 	TRUE

+		    location   	(1222, 520)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@5

+			location   	(1019, 442)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	407

+			justify    	0

+			label      	"QueryStatement")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B3785180139"

+		    width      	425

+		    height     	181

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLModel::Schema::SQLObject" @6

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    location   	(378, 183)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@6

+			location   	(181, 54)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	394

+			justify    	0

+			label      	"SQLObject")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3E9B3EB5002B"

+		    width      	412

+		    height     	282

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::SQLQueryObject" @7

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(378, 519)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@7

+			location   	(206, 413)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	344

+			justify    	0

+			label      	"SQLQueryObject")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"4046839E02AB"

+		    width      	362

+		    height     	236

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @8

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404683B4025D"

+		    client     	@5

+		    supplier   	@7

+		    vertices   	(list Points

+			(1009, 519)

+			(559, 519))

+		    line_style 	0)

+		(object InheritView "" @9

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404683B902A0"

+		    client     	@7

+		    supplier   	@6

+		    vertices   	(list Points

+			(378, 400)

+			(378, 324))

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLModel::Statements::SQLDataStatement" @10

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2043, 524)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@10

+			location   	(1814, 472)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	458

+			justify    	0

+			label      	"SQLDataStatement")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@10

+			location   	(1814, 422)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	458

+			justify    	0

+			label      	"<<Interface>>")

+		    icon       	"Interface"

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	14597606

+		    quidu      	"4049092B0395"

+		    width      	476

+		    height     	228

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryChangeStatement" @11

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1548, 1338)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@11

+			location   	(1313, 1287)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	470

+			justify    	0

+			label      	"QueryChangeStatement")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"40490E600298"

+		    width      	488

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @12

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"40490B870362"

+		    client     	@5

+		    supplier   	@10

+		    vertices   	(list Points

+			(1434, 521)

+			(1804, 522))

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLModel::Statements::SQLDataChangeStatement" @13

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2048, 983)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@13

+			location   	(1738, 931)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	620

+			justify    	0

+			label      	"SQLDataChangeStatement")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@13

+			location   	(1738, 881)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	620

+			justify    	0

+			label      	"<<Interface>>")

+		    icon       	"Interface"

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	14597606

+		    quidu      	"40490973001D"

+		    width      	638

+		    height     	228

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @14

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"40490A210226"

+		    client     	@13

+		    supplier   	@10

+		    vertices   	(list Points

+			(2046, 868)

+			(2044, 638))

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryMergeStatement" @15

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1533, 1884)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@15

+			location   	(1314, 1833)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	438

+			justify    	0

+			label      	"QueryMergeStatement")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"404C2AAB0232"

+		    width      	456

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritTreeView "" @16

+		    location   	(1548, 1641)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@11

+		    vertices   	(list Points

+			(1548, 1641)

+			(1548, 1401)))

+		(object InheritView "" @17

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"40490F090074"

+		    client     	@4

+		    supplier   	@11

+		    vertices   	(list Points

+			(965, 1826)

+			(965, 1641))

+		    line_style 	3

+		    origin_attachment 	(965, 1826)

+		    terminal_attachment 	(965, 1641)

+		    drawSupplier 	@16)

+		(object InheritView "" @18

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"40490F1301D7"

+		    client     	@2

+		    supplier   	@11

+		    vertices   	(list Points

+			(381, 1825)

+			(381, 1641))

+		    line_style 	3

+		    origin_attachment 	(381, 1825)

+		    terminal_attachment 	(381, 1641)

+		    drawSupplier 	@16)

+		(object InheritView "" @19

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"40490F1701B4"

+		    client     	@1

+		    supplier   	@11

+		    vertices   	(list Points

+			(2128, 1823)

+			(2128, 1641))

+		    line_style 	3

+		    origin_attachment 	(2128, 1823)

+		    terminal_attachment 	(2128, 1641)

+		    drawSupplier 	@16)

+		(object InheritView "" @20

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404C2AD802CD"

+		    client     	@15

+		    supplier   	@11

+		    vertices   	(list Points

+			(1531, 1821)

+			(1531, 1641))

+		    line_style 	3

+		    origin_attachment 	(1531, 1821)

+		    terminal_attachment 	(1531, 1641)

+		    drawSupplier 	@16)

+		(object InheritView "" @21

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"40490F930040"

+		    client     	@11

+		    supplier   	@13

+		    vertices   	(list Points

+			(1635, 1274)

+			(1884, 1097))

+		    line_style 	0)

+		(object InheritTreeView "" @22

+		    location   	(1209, 1131)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@5

+		    vertices   	(list Points

+			(1209, 1131)

+			(1209, 610)))

+		(object InheritView "" @23

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B3785C7018B"

+		    client     	@3

+		    supplier   	@5

+		    vertices   	(list Points

+			(853, 1280)

+			(853, 1131))

+		    line_style 	3

+		    origin_attachment 	(853, 1280)

+		    terminal_attachment 	(853, 1131)

+		    drawSupplier 	@22)

+		(object InheritView "" @24

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"40490EDD0342"

+		    client     	@11

+		    supplier   	@5

+		    vertices   	(list Points

+			(1541, 1275)

+			(1541, 1131))

+		    line_style 	3

+		    origin_attachment 	(1541, 1275)

+		    terminal_attachment 	(1541, 1131)

+		    drawSupplier 	@22)))

+	(object ClassDiagram "UpdateStatement"

+	    quid       	"3B378BA00346"

+	    title      	"UpdateStatement"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	0

+	    origin_y   	812

+	    items      	(list diagram_item_list

+		(object NoteView @25

+		    location   	(1991, 1190)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@25

+			location   	(1756, 1081)

+			fill_color 	13434879

+			nlines     	4

+			max_width  	434

+			justify    	1

+			label      	"Cannot have both a WHERE clause and a WHERE CURRENT OF clause.")

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	494

+		    height     	231)

+		(object ClassView "Class" "Logical View::SQLQueryModel::SQLQueryObject" @26

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2002, 130)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@26

+			location   	(1830, 24)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	344

+			justify    	0

+			label      	"SQLQueryObject")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"4046839E02AB"

+		    width      	362

+		    height     	236

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::CursorReference" @27

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1998, 523)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@27

+			location   	(1764, 473)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	469

+			justify    	0

+			label      	"CursorReference")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B378C08021A"

+		    width      	487

+		    height     	125

+		    annotation 	8)

+		(object AttachView "" @28

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@27

+		    supplier   	@25

+		    vertices   	(list Points

+			(1997, 585)

+			(1991, 1074))

+		    line_style 	0)

+		(object InheritView "" @29

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404CFC3B01B9"

+		    client     	@27

+		    supplier   	@26

+		    vertices   	(list Points

+			(1998, 460)

+			(2000, 248))

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QuerySearchCondition" @30

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1611, 772)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@30

+			location   	(1389, 725)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	445

+			justify    	0

+			label      	"QuerySearchCondition")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B378C160224"

+		    width      	463

+		    height     	119

+		    annotation 	8)

+		(object AttachView "" @31

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@30

+		    supplier   	@25

+		    vertices   	(list Points

+			(1665, 831)

+			(1886, 1074))

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLQueryModel::TableInDatabase" @32

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(303, 775)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@32

+			location   	(87, 728)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	432

+			justify    	0

+			label      	"TableInDatabase")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3BF3D3560327"

+		    width      	450

+		    height     	119

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryUpdateStatement" @33

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    ShowOperationSignature 	TRUE

+		    location   	(958, 187)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@33

+			location   	(673, 130)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	570

+			justify    	0

+			label      	"QueryUpdateStatement")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B3785760076"

+		    width      	588

+		    height     	138

+		    annotation 	8)

+		(object AssociationViewNew "$UNNAMED$1" @34

+		    location   	(1489, 358)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37928B0298"

+		    roleview_list 	(list RoleViews

+			(object RoleView "updateStatement" @35

+			    Parent_View 	@34

+			    location   	(70, -819)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @36

+				Parent_View 	@35

+				location   	(1456, 275)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	342

+				justify    	0

+				label      	"+updateStatement"

+				pctDist    	0.172284

+				height     	69

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37928C009B"

+			    client     	@34

+			    supplier   	@33

+			    vertices   	(list Points

+				(1489, 358)

+				(1176, 256))

+			    line_style 	0)

+			(object RoleView "whereCurrentOfClause" @37

+			    Parent_View 	@34

+			    location   	(70, -819)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @38

+				Parent_View 	@37

+				location   	(1963, 353)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	437

+				justify    	0

+				label      	"+whereCurrentOfClause"

+				pctDist    	1.350383

+				height     	150

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37928C00A5"

+			    client     	@34

+			    supplier   	@27

+			    vertices   	(list Points

+				(1489, 358)

+				(1809, 460))

+			    line_style 	0

+			    label      	(object SegLabel @39

+				Parent_View 	@37

+				location   	(1860, 417)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..1"

+				pctDist    	1.115813

+				height     	59

+				orientation 	0))))

+		(object AssociationViewNew "$UNNAMED$2" @40

+		    location   	(1289, 484)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37928F0153"

+		    roleview_list 	(list RoleViews

+			(object RoleView "updateStatement" @41

+			    Parent_View 	@40

+			    location   	(-761, -693)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @42

+				Parent_View 	@41

+				location   	(1165, 334)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	342

+				justify    	0

+				label      	"+updateStatement"

+				pctDist    	0.568085

+				height     	30

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37928F0352"

+			    client     	@40

+			    supplier   	@33

+			    vertices   	(list Points

+				(1289, 484)

+				(1034, 256))

+			    line_style 	0)

+			(object RoleView "whereClause" @43

+			    Parent_View 	@40

+			    location   	(-761, -693)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @44

+				Parent_View 	@43

+				location   	(1683, 674)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	272

+				justify    	0

+				label      	"+whereClause"

+				pctDist    	1.226907

+				height     	121

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37928F035C"

+			    client     	@40

+			    supplier   	@30

+			    vertices   	(list Points

+				(1289, 484)

+				(1544, 712))

+			    line_style 	0

+			    label      	(object SegLabel @45

+				Parent_View 	@43

+				location   	(1414, 668)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..1"

+				pctDist    	0.627393

+				height     	55

+				orientation 	1))))

+		(object AssociationViewNew "$UNNAMED$3" @46

+		    location   	(622, 485)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B3792910387"

+		    roleview_list 	(list RoleViews

+			(object RoleView "updateStatement" @47

+			    Parent_View 	@46

+			    location   	(-2119, -677)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @48

+				Parent_View 	@47

+				location   	(609, 293)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	342

+				justify    	0

+				label      	"+updateStatement"

+				pctDist    	0.344465

+				height     	153

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B379292028E"

+			    client     	@46

+			    supplier   	@33

+			    vertices   	(list Points

+				(622, 485)

+				(879, 256))

+			    line_style 	0)

+			(object RoleView "targetTable" @49

+			    Parent_View 	@46

+			    location   	(-2119, -677)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @50

+				Parent_View 	@49

+				location   	(187, 680)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	233

+				justify    	0

+				label      	"+targetTable"

+				pctDist    	1.320831

+				height     	146

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B3792920298"

+			    client     	@46

+			    supplier   	@32

+			    vertices   	(list Points

+				(622, 485)

+				(366, 715))

+			    line_style 	0

+			    label      	(object SegLabel @51

+				Parent_View 	@49

+				location   	(348, 679)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.971322

+				height     	41

+				orientation 	1))))

+		(object ClassView "Class" "Logical View::SQLQueryModel::ValueExpressionColumn" @52

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(429, 1209)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@52

+			location   	(193, 1158)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	472

+			justify    	0

+			label      	"ValueExpressionColumn")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B389EAF00BB"

+		    width      	490

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::UpdateSource" @53

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1183, 1079)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@53

+			location   	(1031, 1028)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	304

+			justify    	0

+			label      	"UpdateSource")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4176D9920095"

+		    width      	322

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::UpdateAssignmentExpression" @54

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(956, 778)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@54

+			location   	(684, 731)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	544

+			justify    	0

+			label      	"UpdateAssignmentExpression")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B378BF6015F"

+		    width      	562

+		    height     	119

+		    annotation 	8)

+		(object AssociationViewNew "$UNNAMED$0" @55

+		    location   	(956, 487)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37928901A5"

+		    roleview_list 	(list RoleViews

+			(object RoleView "updateStatement" @56

+			    Parent_View 	@55

+			    location   	(172, -715)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @57

+				Parent_View 	@56

+				location   	(760, 382)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	419

+				justify    	0

+				label      	"+updateStatement"

+				pctDist    	0.455903

+				height     	197

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37928A002A"

+			    client     	@55

+			    supplier   	@33

+			    vertices   	(list Points

+				(956, 487)

+				(957, 256))

+			    line_style 	0)

+			(object RoleView "assignmentClause" @58

+			    Parent_View 	@55

+			    location   	(172, -715)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @59

+				Parent_View 	@58

+				location   	(755, 681)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	361

+				justify    	0

+				label      	"+assignmentClause"

+				pctDist    	0.839827

+				height     	201

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37928A0034"

+			    client     	@55

+			    supplier   	@54

+			    vertices   	(list Points

+				(956, 487)

+				(956, 718))

+			    line_style 	0

+			    label      	(object SegLabel @60

+				Parent_View 	@58

+				location   	(1034, 678)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1..n"

+				pctDist    	0.826840

+				height     	78

+				orientation 	0)

+			    label      	(object SegLabel @61

+				Parent_View 	@58

+				location   	(1187, 675)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	3

+				anchor_loc 	1

+				nlines     	1

+				max_width  	158

+				justify    	0

+				label      	"{ordered}"

+				pctDist    	0.819839

+				height     	231

+				orientation 	0))))

+		(object AssociationViewNew "$UNNAMED$4" @62

+		    location   	(693, 991)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37935D03C6"

+		    roleview_list 	(list RoleViews

+			(object RoleView "assignmentExprTarget" @63

+			    Parent_View 	@62

+			    location   	(298, -639)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @64

+				Parent_View 	@63

+				location   	(695, 881)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	433

+				justify    	0

+				label      	"+assignmentExprTarget"

+				pctDist    	0.291846

+				height     	85

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37935E01D3"

+			    client     	@62

+			    supplier   	@54

+			    vertices   	(list Points

+				(693, 991)

+				(881, 837))

+			    line_style 	0)

+			(object RoleView "targetColumnList" @65

+			    Parent_View 	@62

+			    location   	(298, -639)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @66

+				Parent_View 	@65

+				location   	(369, 1107)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	339

+				justify    	0

+				label      	"+targetColumnList"

+				pctDist    	1.338992

+				height     	117

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37935E01DD"

+			    client     	@62

+			    supplier   	@52

+			    vertices   	(list Points

+				(693, 991)

+				(505, 1145))

+			    line_style 	0

+			    label      	(object SegLabel @67

+				Parent_View 	@65

+				location   	(632, 1108)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1..n"

+				pctDist    	0.507479

+				height     	52

+				orientation 	0)

+			    label      	(object SegLabel @68

+				Parent_View 	@65

+				location   	(775, 1101)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	3

+				anchor_loc 	1

+				nlines     	1

+				max_width  	158

+				justify    	0

+				label      	"{ordered}"

+				pctDist    	0.027161

+				height     	137

+				orientation 	0))))

+		(object InheritView "" @69

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404CFC4100D1"

+		    client     	@54

+		    supplier   	@26

+		    vertices   	(list Points

+			(1050, 718)

+			(1820, 241))

+		    line_style 	0)

+		(object AssociationViewNew "$UNNAMED$81" @70

+		    location   	(1067, 926)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4176D9FF033E"

+		    roleview_list 	(list RoleViews

+			(object RoleView "updateSource" @71

+			    Parent_View 	@70

+			    location   	(105, 146)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @72

+				Parent_View 	@71

+				location   	(1012, 972)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	281

+				justify    	0

+				label      	"+updateSource"

+				pctDist    	0.022798

+				height     	73

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4176DA000335"

+			    client     	@70

+			    supplier   	@53

+			    vertices   	(list Points

+				(1067, 926)

+				(1134, 1015))

+			    line_style 	0

+			    label      	(object SegLabel @73

+				Parent_View 	@71

+				location   	(1171, 974)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.900000

+				height     	54

+				orientation 	0))

+			(object RoleView "updateAssignmentExpr" @74

+			    Parent_View 	@70

+			    location   	(105, 146)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @75

+				Parent_View 	@74

+				location   	(1280, 881)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	454

+				justify    	0

+				label      	"+updateAssignmentExpr"

+				pctDist    	-0.832635

+				height     	198

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4176DA000337"

+			    client     	@70

+			    supplier   	@54

+			    vertices   	(list Points

+				(1067, 926)

+				(1000, 837))

+			    line_style 	0)))

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryValueExpression" @76

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(884, 1729)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@76

+			location   	(662, 1679)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	444

+			justify    	0

+			label      	"QueryValueExpression")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B3792520160"

+		    width      	462

+		    height     	125

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::UpdateSourceExprList" @77

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(884, 1417)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@77

+			location   	(664, 1366)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	440

+			justify    	0

+			label      	"UpdateSourceExprList")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4176DB070150"

+		    width      	458

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$82" @78

+		    location   	(884, 1573)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4176DB4E0000"

+		    roleview_list 	(list RoleViews

+			(object RoleView "valueExprList" @79

+			    Parent_View 	@78

+			    location   	(0, 156)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @80

+				Parent_View 	@79

+				location   	(651, 1635)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	400

+				justify    	0

+				label      	"+valueExprList"

+				pctDist    	0.663158

+				height     	234

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4176DB4F03C3"

+			    client     	@78

+			    supplier   	@76

+			    vertices   	(list Points

+				(884, 1573)

+				(884, 1666))

+			    line_style 	0

+			    label      	(object SegLabel @81

+				Parent_View 	@79

+				location   	(937, 1642)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1..n"

+				pctDist    	0.747368

+				height     	53

+				orientation 	0)

+			    label      	(object SegLabel @82

+				Parent_View 	@79

+				location   	(1058, 1642)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	3

+				anchor_loc 	1

+				nlines     	1

+				max_width  	159

+				justify    	0

+				label      	"{ordered}"

+				pctDist    	0.747368

+				height     	174

+				orientation 	0))

+			(object RoleView "updateSourceExprList" @83

+			    Parent_View 	@78

+			    location   	(0, 156)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @84

+				Parent_View 	@83

+				location   	(646, 1523)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	431

+				justify    	0

+				label      	"+updateSourceExprList"

+				pctDist    	0.536842

+				height     	239

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4176DB4F03D7"

+			    client     	@78

+			    supplier   	@77

+			    vertices   	(list Points

+				(884, 1573)

+				(884, 1480))

+			    line_style 	0)))

+		(object InheritTreeView "" @85

+		    location   	(1183, 1232)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@53

+		    vertices   	(list Points

+			(1183, 1232)

+			(1183, 1142)))

+		(object InheritView "" @86

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4176DB1E0118"

+		    client     	@77

+		    supplier   	@53

+		    vertices   	(list Points

+			(885, 1354)

+			(885, 1232))

+		    line_style 	3

+		    origin_attachment 	(885, 1354)

+		    terminal_attachment 	(885, 1232)

+		    drawSupplier 	@85)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryExpressionBody" @87

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1521, 1729)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@87

+			location   	(1252, 1679)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	538

+			justify    	0

+			label      	"QueryExpressionBody")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B37924A01CC"

+		    width      	556

+		    height     	125

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::UpdateSourceQuery" @88

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1521, 1430)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@88

+			location   	(1315, 1379)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	412

+			justify    	0

+			label      	"UpdateSourceQuery")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4176DB2502C7"

+		    width      	430

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @89

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4176DB3500B8"

+		    client     	@88

+		    supplier   	@53

+		    vertices   	(list Points

+			(1513, 1367)

+			(1513, 1232))

+		    line_style 	3

+		    origin_attachment 	(1513, 1367)

+		    terminal_attachment 	(1513, 1232)

+		    drawSupplier 	@85)

+		(object AssociationViewNew "$UNNAMED$83" @90

+		    location   	(1521, 1579)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4176DC0C01E0"

+		    roleview_list 	(list RoleViews

+			(object RoleView "queryExpr" @91

+			    Parent_View 	@90

+			    location   	(39, 162)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @92

+				Parent_View 	@91

+				location   	(1384, 1625)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	219

+				justify    	0

+				label      	"+queryExpr"

+				pctDist    	0.540230

+				height     	138

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4176DC0D0245"

+			    client     	@90

+			    supplier   	@87

+			    vertices   	(list Points

+				(1521, 1579)

+				(1521, 1666))

+			    line_style 	0

+			    label      	(object SegLabel @93

+				Parent_View 	@91

+				location   	(1575, 1657)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.900000

+				height     	54

+				orientation 	0))

+			(object RoleView "updateSourceQuery" @94

+			    Parent_View 	@90

+			    location   	(39, 162)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @95

+				Parent_View 	@94

+				location   	(1302, 1532)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	385

+				justify    	0

+				label      	"+updateSourceQuery"

+				pctDist    	0.551724

+				height     	220

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4176DC0D0247"

+			    client     	@90

+			    supplier   	@88

+			    vertices   	(list Points

+				(1521, 1579)

+				(1521, 1493))

+			    line_style 	0

+			    label      	(object SegLabel @96

+				Parent_View 	@94

+				location   	(1583, 1527)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.618529

+				height     	62

+				orientation 	1))))

+		(object InheritView "" @97

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"417D47620183"

+		    client     	@53

+		    supplier   	@26

+		    vertices   	(list Points

+			(1207, 1015)

+			(1363, 634)

+			(1852, 248))

+		    line_style 	0)))

+	(object ClassDiagram "DeleteStatement"

+	    quid       	"3B37953400C0"

+	    title      	"DeleteStatement"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	1088

+	    origin_y   	176

+	    items      	(list diagram_item_list

+		(object ClassView "Class" "Logical View::SQLQueryModel::CursorReference" @98

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1889, 903)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@98

+			location   	(1645, 853)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	489

+			justify    	0

+			label      	"CursorReference")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B378C08021A"

+		    width      	507

+		    height     	125

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QuerySearchCondition" @99

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1228, 897)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@99

+			location   	(984, 850)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	489

+			justify    	0

+			label      	"QuerySearchCondition")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B378C160224"

+		    width      	507

+		    height     	119

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryDeleteStatement" @100

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    ShowOperationSignature 	TRUE

+		    location   	(1232, 432)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@100

+			location   	(988, 379)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	489

+			justify    	0

+			label      	"QueryDeleteStatement")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B378546017C"

+		    width      	507

+		    height     	131

+		    annotation 	8)

+		(object AssociationViewNew "$UNNAMED$5" @101

+		    location   	(1562, 668)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B3795650049"

+		    roleview_list 	(list RoleViews

+			(object RoleView "deleteStatement" @102

+			    Parent_View 	@101

+			    location   	(955, -292)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @103

+				Parent_View 	@102

+				location   	(1504, 555)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	322

+				justify    	0

+				label      	"+deleteStatement"

+				pctDist    	0.384967

+				height     	59

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B379565025C"

+			    client     	@101

+			    supplier   	@100

+			    vertices   	(list Points

+				(1562, 668)

+				(1322, 497))

+			    line_style 	0)

+			(object RoleView "whereCurrentOfClause" @104

+			    Parent_View 	@101

+			    location   	(955, -292)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @105

+				Parent_View 	@104

+				location   	(1993, 797)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	437

+				justify    	0

+				label      	"+whereCurrentOfClause"

+				pctDist    	1.447067

+				height     	148

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B3795650266"

+			    client     	@101

+			    supplier   	@98

+			    vertices   	(list Points

+				(1562, 668)

+				(1801, 840))

+			    line_style 	0

+			    label      	(object SegLabel @106

+				Parent_View 	@104

+				location   	(1683, 813)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..1"

+				pctDist    	0.617556

+				height     	47

+				orientation 	1))))

+		(object AssociationViewNew "$UNNAMED$6" @107

+		    location   	(1229, 667)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B3795670010"

+		    roleview_list 	(list RoleViews

+			(object RoleView "deleteStatement" @108

+			    Parent_View 	@107

+			    location   	(-9, -293)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @109

+				Parent_View 	@108

+				location   	(1229, 634)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	322

+				justify    	0

+				label      	"+deleteStatement"

+				pctDist    	0.196979

+				height     	1

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B379567018C"

+			    client     	@107

+			    supplier   	@100

+			    vertices   	(list Points

+				(1229, 667)

+				(1230, 497))

+			    line_style 	0)

+			(object RoleView "whereClause" @110

+			    Parent_View 	@107

+			    location   	(-9, -293)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @111

+				Parent_View 	@110

+				location   	(1386, 800)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	272

+				justify    	0

+				label      	"+whereClause"

+				pctDist    	0.781065

+				height     	158

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B3795670196"

+			    client     	@107

+			    supplier   	@99

+			    vertices   	(list Points

+				(1229, 667)

+				(1228, 837))

+			    line_style 	0

+			    label      	(object SegLabel @112

+				Parent_View 	@110

+				location   	(1155, 797)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..1"

+				pctDist    	0.763676

+				height     	74

+				orientation 	1))))

+		(object ClassView "Class" "Logical View::SQLQueryModel::TableInDatabase" @113

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(537, 906)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@113

+			location   	(284, 856)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	507

+			justify    	0

+			label      	"TableInDatabase")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3BF3D3560327"

+		    width      	525

+		    height     	125

+		    annotation 	8)

+		(object AssociationViewNew "$UNNAMED$7" @114

+		    location   	(880, 670)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B379568031E"

+		    roleview_list 	(list RoleViews

+			(object RoleView "deleteStatement" @115

+			    Parent_View 	@114

+			    location   	(-1049, -275)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @116

+				Parent_View 	@115

+				location   	(1027, 562)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	322

+				justify    	0

+				label      	"+deleteStatement"

+				pctDist    	0.587895

+				height     	8

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B3795690167"

+			    client     	@114

+			    supplier   	@100

+			    vertices   	(list Points

+				(880, 670)

+				(1134, 497))

+			    line_style 	0)

+			(object RoleView "targetTable" @117

+			    Parent_View 	@114

+			    location   	(-1049, -275)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @118

+				Parent_View 	@117

+				location   	(509, 798)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	233

+				justify    	0

+				label      	"+targetTable"

+				pctDist    	1.236916

+				height     	104

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B3795690171"

+			    client     	@114

+			    supplier   	@113

+			    vertices   	(list Points

+				(880, 670)

+				(626, 843))

+			    line_style 	0

+			    label      	(object SegLabel @119

+				Parent_View 	@117

+				location   	(747, 812)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.622931

+				height     	42

+				orientation 	0))))

+		(object NoteView @120

+		    location   	(1567, 1313)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@120

+			location   	(1311, 1226)

+			fill_color 	13434879

+			nlines     	3

+			max_width  	477

+			justify    	1

+			label      	"Cannot have both WHERE clause and WHERE CURRENT OF clause.")

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	537

+		    height     	187)

+		(object AttachView "" @121

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@98

+		    supplier   	@120

+		    vertices   	(list Points

+			(1838, 965)

+			(1639, 1219))

+		    line_style 	0)

+		(object AttachView "" @122

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@99

+		    supplier   	@120

+		    vertices   	(list Points

+			(1276, 956)

+			(1489, 1219))

+		    line_style 	0)))

+	(object ClassDiagram "InsertStatement"

+	    quid       	"3B37965B0042"

+	    title      	"InsertStatement"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	0

+	    origin_y   	144

+	    items      	(list diagram_item_list

+		(object NoteView @123

+		    location   	(2064, 334)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@123

+			location   	(1842, 247)

+			fill_color 	13434879

+			nlines     	3

+			max_width  	408

+			justify    	1

+			label      	"Cannot have both a source values row list and a source query.")

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	468

+		    height     	187)

+		(object NoteView @124

+		    location   	(334, 1159)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@124

+			location   	(131, 1078)

+			fill_color 	13434879

+			nlines     	3

+			max_width  	371

+			justify    	1

+			label      	"The insert target table cannot have a correlation name.")

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	431

+		    height     	175)

+		(object ClassView "Class" "Logical View::SQLQueryModel::SQLQueryObject" @125

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2145, 1158)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@125

+			location   	(1973, 1052)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	344

+			justify    	0

+			label      	"SQLQueryObject")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"4046839E02AB"

+		    width      	362

+		    height     	236

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryValueExpression" @126

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1508, 1183)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@126

+			location   	(1277, 1133)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	463

+			justify    	0

+			label      	"QueryValueExpression")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B3792520160"

+		    width      	481

+		    height     	125

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryExpressionRoot" @127

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1964, 821)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@127

+			location   	(1751, 771)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	426

+			justify    	0

+			label      	"QueryExpressionRoot")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B37968301D1"

+		    width      	444

+		    height     	125

+		    annotation 	8)

+		(object AttachView "" @128

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@123

+		    supplier   	@127

+		    vertices   	(list Points

+			(2044, 427)

+			(1976, 758))

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLQueryModel::ValuesRow" @129

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1508, 819)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@129

+			location   	(1330, 763)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	356

+			justify    	0

+			label      	"ValuesRow")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B3796910130"

+		    width      	374

+		    height     	137

+		    annotation 	8)

+		(object AssociationViewNew "$UNNAMED$11" @130

+		    location   	(1508, 1003)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37974E00C4"

+		    roleview_list 	(list RoleViews

+			(object RoleView "valuesRow" @131

+			    Parent_View 	@130

+			    location   	(361, -413)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @132

+				Parent_View 	@131

+				location   	(1671, 949)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	230

+				justify    	0

+				label      	"+valuesRow"

+				pctDist    	0.469027

+				height     	163

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37974E02D7"

+			    client     	@130

+			    supplier   	@129

+			    vertices   	(list Points

+				(1508, 1003)

+				(1508, 887))

+			    line_style 	0)

+			(object RoleView "exprList" @133

+			    Parent_View 	@130

+			    location   	(361, -413)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @134

+				Parent_View 	@133

+				location   	(1339, 1091)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	174

+				justify    	0

+				label      	"+exprList"

+				pctDist    	0.752212

+				height     	170

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37974E02D9"

+			    client     	@130

+			    supplier   	@126

+			    vertices   	(list Points

+				(1508, 1003)

+				(1508, 1120))

+			    line_style 	0

+			    label      	(object SegLabel @135

+				Parent_View 	@133

+				location   	(1561, 1088)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1..n"

+				pctDist    	0.728517

+				height     	53

+				orientation 	0)

+			    label      	(object SegLabel @136

+				Parent_View 	@133

+				location   	(1715, 1089)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	3

+				anchor_loc 	1

+				nlines     	1

+				max_width  	162

+				justify    	0

+				label      	"{ordered}"

+				pctDist    	0.734513

+				height     	207

+				orientation 	0))))

+		(object AttachView "" @137

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@123

+		    supplier   	@129

+		    vertices   	(list Points

+			(1954, 427)

+			(1585, 750))

+		    line_style 	0)

+		(object InheritView "" @138

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404E4A8F00C1"

+		    client     	@129

+		    supplier   	@125

+		    vertices   	(list Points

+			(1637, 887)

+			(1963, 1061))

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLQueryModel::TableInDatabase" @139

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(338, 819)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@139

+			location   	(94, 772)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	489

+			justify    	0

+			label      	"TableInDatabase")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3BF3D3560327"

+		    width      	507

+		    height     	119

+		    annotation 	8)

+		(object AttachView "" @140

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@124

+		    supplier   	@139

+		    vertices   	(list Points

+			(335, 1071)

+			(337, 878))

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLQueryModel::ValueExpressionColumn" @141

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(963, 819)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@141

+			location   	(727, 768)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	472

+			justify    	0

+			label      	"ValueExpressionColumn")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B389EAF00BB"

+		    width      	490

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryInsertStatement" @142

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    ShowOperationSignature 	TRUE

+		    location   	(1270, 300)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@142

+			location   	(983, 250)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	575

+			justify    	0

+			label      	"QueryInsertStatement")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B3785520223"

+		    width      	593

+		    height     	125

+		    annotation 	8)

+		(object AssociationViewNew "$UNNAMED$8" @143

+		    location   	(1617, 560)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37973E0021"

+		    roleview_list 	(list RoleViews

+			(object RoleView "insertStatement" @144

+			    Parent_View 	@143

+			    location   	(1264, -287)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @145

+				Parent_View 	@144

+				location   	(1645, 438)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	327

+				justify    	0

+				label      	"+insertStatement"

+				pctDist    	0.158378

+				height     	115

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37973E02AC"

+			    client     	@143

+			    supplier   	@142

+			    vertices   	(list Points

+				(1617, 560)

+				(1353, 362))

+			    line_style 	0)

+			(object RoleView "sourceQuery" @146

+			    Parent_View 	@143

+			    location   	(1264, -287)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @147

+				Parent_View 	@146

+				location   	(2094, 722)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	255

+				justify    	0

+				label      	"+sourceQuery"

+				pctDist    	1.450980

+				height     	158

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37973E02B6"

+			    client     	@143

+			    supplier   	@127

+			    vertices   	(list Points

+				(1617, 560)

+				(1881, 758))

+			    line_style 	0

+			    label      	(object SegLabel @148

+				Parent_View 	@146

+				location   	(1906, 726)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..1"

+				pctDist    	1.003181

+				height     	41

+				orientation 	0))))

+		(object AssociationViewNew "$UNNAMED$9" @149

+		    location   	(1387, 556)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37974000CE"

+		    roleview_list 	(list RoleViews

+			(object RoleView "insertStatement" @150

+			    Parent_View 	@149

+			    location   	(543, -262)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @151

+				Parent_View 	@150

+				location   	(1354, 474)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	316

+				justify    	0

+				label      	"+insertStatement"

+				pctDist    	0.422275

+				height     	4

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B3797400309"

+			    client     	@149

+			    supplier   	@142

+			    vertices   	(list Points

+				(1387, 556)

+				(1298, 362))

+			    line_style 	0)

+			(object RoleView "sourceValuesRowList" @152

+			    Parent_View 	@149

+			    location   	(543, -262)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @153

+				Parent_View 	@152

+				location   	(1487, 664)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	423

+				justify    	0

+				label      	"+sourceValuesRowList"

+				pctDist    	0.658584

+				height     	46

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B379740030B"

+			    client     	@149

+			    supplier   	@129

+			    vertices   	(list Points

+				(1387, 556)

+				(1476, 750))

+			    line_style 	0

+			    label      	(object SegLabel @154

+				Parent_View 	@152

+				location   	(1533, 719)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.975322

+				height     	65

+				orientation 	0)

+			    label      	(object SegLabel @155

+				Parent_View 	@152

+				location   	(1659, 716)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	3

+				anchor_loc 	1

+				nlines     	1

+				max_width  	162

+				justify    	0

+				label      	"{ordered}"

+				pctDist    	1.207854

+				height     	181

+				orientation 	0))))

+		(object AssociationViewNew "$UNNAMED$10" @156

+		    location   	(799, 560)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B3797480120"

+		    roleview_list 	(list RoleViews

+			(object RoleView "insertStatement" @157

+			    Parent_View 	@156

+			    location   	(-1187, -271)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @158

+				Parent_View 	@157

+				location   	(790, 436)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	316

+				justify    	0

+				label      	"+insertStatement"

+				pctDist    	0.129412

+				height     	114

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B3797480396"

+			    client     	@156

+			    supplier   	@142

+			    vertices   	(list Points

+				(799, 560)

+				(1155, 362))

+			    line_style 	0)

+			(object RoleView "targetTable" @159

+			    Parent_View 	@156

+			    location   	(-1187, -271)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @160

+				Parent_View 	@159

+				location   	(277, 721)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	233

+				justify    	0

+				label      	"+targetTable"

+				pctDist    	1.310104

+				height     	116

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37974803AB"

+			    client     	@156

+			    supplier   	@139

+			    vertices   	(list Points

+				(799, 560)

+				(442, 759))

+			    line_style 	0

+			    label      	(object SegLabel @161

+				Parent_View 	@159

+				location   	(444, 727)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.959609

+				height     	29

+				orientation 	1))))

+		(object AssociationViewNew "$UNNAMED$80" @162

+		    location   	(1116, 558)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"412F99C002F9"

+		    roleview_list 	(list RoleViews

+			(object RoleView "targetColumnList" @163

+			    Parent_View 	@162

+			    location   	(-158, 259)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @164

+				Parent_View 	@163

+				location   	(833, 709)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	351

+				justify    	0

+				label      	"+targetColumnList"

+				pctDist    	1.197456

+				height     	168

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"412F99C102FA"

+			    client     	@162

+			    supplier   	@141

+			    vertices   	(list Points

+				(1116, 558)

+				(999, 755))

+			    line_style 	0

+			    label      	(object SegLabel @165

+				Parent_View 	@163

+				location   	(1099, 707)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.604079

+				height     	61

+				orientation 	0)

+			    label      	(object SegLabel @166

+				Parent_View 	@163

+				location   	(1229, 711)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	3

+				anchor_loc 	1

+				nlines     	1

+				max_width  	182

+				justify    	0

+				label      	"{ordered}"

+				pctDist    	0.322264

+				height     	175

+				orientation 	0))

+			(object RoleView "insertStatement" @167

+			    Parent_View 	@162

+			    location   	(-158, 259)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @168

+				Parent_View 	@167

+				location   	(1146, 424)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	326

+				justify    	0

+				label      	"+insertStatement"

+				pctDist    	0.579908

+				height     	44

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"412F99C1030F"

+			    client     	@162

+			    supplier   	@142

+			    vertices   	(list Points

+				(1116, 558)

+				(1232, 362))

+			    line_style 	0)))))

+	(object ClassDiagram "TableReference"

+	    quid       	"3B37EE12005F"

+	    title      	"TableReference"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	0

+	    origin_y   	913

+	    items      	(list diagram_item_list

+		(object ClassView "Class" "Logical View::SQLQueryModel::SQLQueryObject" @169

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(390, 169)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@169

+			location   	(218, 63)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	344

+			justify    	0

+			label      	"SQLQueryObject")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"4046839E02AB"

+		    compartment 	(object Compartment

+			Parent_View 	@169

+			location   	(218, 124)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	TRUE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	3

+			max_width  	221

+			justify    	1)

+		    width      	362

+		    height     	236

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::TableJoinedOperator" @170

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1963, 2561)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@170

+			location   	(1726, 2402)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	474

+			justify    	0

+			label      	"TableJoinedOperator")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@170

+			location   	(1726, 2352)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	474

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	15329769

+		    quidu      	"3B3A10F70322"

+		    compartment 	(object Compartment

+			Parent_View 	@170

+			location   	(1726, 2463)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	6

+			max_width  	384

+			justify    	1)

+		    width      	492

+		    height     	442

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QuerySearchCondition" @171

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1890, 1416)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@171

+			location   	(1618, 1363)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	544

+			justify    	0

+			label      	"QuerySearchCondition")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B378C160224"

+		    width      	562

+		    height     	131

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::TableJoined" @172

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1654, 1056)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@172

+			location   	(1316, 978)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	676

+			justify    	0

+			label      	"TableJoined")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B37EEB00323"

+		    compartment 	(object Compartment

+			Parent_View 	@172

+			location   	(1316, 1039)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	2

+			max_width  	684

+			justify    	1)

+		    width      	694

+		    height     	181

+		    annotation 	8)

+		(object AssociationViewNew "$UNNAMED$12" @173

+		    location   	(1779, 1248)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37EF760210"

+		    roleview_list 	(list RoleViews

+			(object RoleView "tableJoined" @174

+			    Parent_View 	@173

+			    location   	(1460, -312)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @175

+				Parent_View 	@174

+				location   	(1896, 1203)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	235

+				justify    	0

+				label      	"+tableJoined"

+				pctDist    	-0.222655

+				height     	123

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37EF770117"

+			    client     	@173

+			    supplier   	@172

+			    vertices   	(list Points

+				(1779, 1248)

+				(1712, 1146))

+			    line_style 	0)

+			(object RoleView "joinCondition" @176

+			    Parent_View 	@173

+			    location   	(1460, -312)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @177

+				Parent_View 	@176

+				location   	(2087, 1321)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	258

+				justify    	0

+				label      	"+joinCondition"

+				pctDist    	1.891403

+				height     	218

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37EF770121"

+			    client     	@173

+			    supplier   	@171

+			    vertices   	(list Points

+				(1779, 1248)

+				(1846, 1350))

+			    line_style 	0

+			    label      	(object SegLabel @178

+				Parent_View 	@176

+				location   	(1896, 1317)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..1"

+				pctDist    	0.993213

+				height     	61

+				orientation 	0))))

+		(object ClassView "Class" "Logical View::SQLQueryModel::TableReference" @179

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1110, 169)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@179

+			location   	(888, 119)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	444

+			justify    	0

+			label      	"TableReference")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B37EE200178"

+		    width      	462

+		    height     	125

+		    annotation 	8)

+		(object AssociationViewNew "$UNNAMED$13" @180

+		    location   	(1851, 389)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37EFFB0315"

+		    roleview_list 	(list RoleViews

+			(object RoleView "tableJoinedRight" @181

+			    Parent_View 	@180

+			    location   	(863, -11)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @182

+				Parent_View 	@181

+				location   	(1926, 926)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	319

+				justify    	0

+				label      	"+tableJoinedRight"

+				pctDist    	0.746478

+				height     	108

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37EFFD01CE"

+			    client     	@180

+			    supplier   	@172

+			    vertices   	(list Points

+				(1851, 389)

+				(1851, 847)

+				(1737, 965))

+			    line_style 	0

+			    label      	(object SegLabel @183

+				Parent_View 	@181

+				location   	(1862, 900)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.784375

+				height     	45

+				orientation 	0))

+			(object RoleView "tableRefRight" @184

+			    Parent_View 	@180

+			    location   	(863, -11)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @185

+				Parent_View 	@184

+				location   	(1559, 283)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	276

+				justify    	0

+				label      	"+tableRefRight"

+				pctDist    	0.635631

+				height     	46

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37EFFD01D8"

+			    client     	@180

+			    supplier   	@179

+			    vertices   	(list Points

+				(1851, 389)

+				(1851, 282)

+				(1341, 204))

+			    line_style 	0

+			    label      	(object SegLabel @186

+				Parent_View 	@184

+				location   	(1390, 171)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.929236

+				height     	41

+				orientation 	1))))

+		(object AssociationViewNew "$UNNAMED$14" @187

+		    location   	(1654, 469)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37F011008C"

+		    roleview_list 	(list RoleViews

+			(object RoleView "tableJoinedLeft" @188

+			    Parent_View 	@187

+			    location   	(666, 69)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @189

+				Parent_View 	@188

+				location   	(1536, 895)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	299

+				justify    	0

+				label      	"+tableJoinedLeft"

+				pctDist    	0.859642

+				height     	119

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37F01200E8"

+			    client     	@187

+			    supplier   	@172

+			    vertices   	(list Points

+				(1654, 469)

+				(1654, 965))

+			    line_style 	0

+			    label      	(object SegLabel @190

+				Parent_View 	@188

+				location   	(1700, 890)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.847958

+				height     	46

+				orientation 	0))

+			(object RoleView "tableRefLeft" @191

+			    Parent_View 	@187

+			    location   	(666, 69)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @192

+				Parent_View 	@191

+				location   	(1371, 362)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	240

+				justify    	0

+				label      	"+tableRefLeft"

+				pctDist    	0.712183

+				height     	83

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37F01200F2"

+			    client     	@187

+			    supplier   	@179

+			    vertices   	(list Points

+				(1654, 469)

+				(1654, 388)

+				(1269, 231))

+			    line_style 	0

+			    label      	(object SegLabel @193

+				Parent_View 	@191

+				location   	(1321, 296)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.856248

+				height     	41

+				orientation 	0))))

+		(object InheritView "" @194

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404922A50195"

+		    client     	@179

+		    supplier   	@169

+		    vertices   	(list Points

+			(878, 169)

+			(571, 169))

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLQueryModel::TableNested" @195

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1183, 845)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@195

+			location   	(1052, 794)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	262

+			justify    	0

+			label      	"TableNested")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"404924F0038D"

+		    width      	280

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$73" @196

+		    location   	(1250, 501)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404925200025"

+		    roleview_list 	(list RoleViews

+			(object RoleView "nestedTableRef" @197

+			    Parent_View 	@196

+			    location   	(248, -479)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @198

+				Parent_View 	@197

+				location   	(1065, 351)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	306

+				justify    	0

+				label      	"+nestedTableRef"

+				pctDist    	0.721742

+				height     	112

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"404925230029"

+			    client     	@196

+			    supplier   	@179

+			    vertices   	(list Points

+				(1250, 501)

+				(1135, 231))

+			    line_style 	0

+			    label      	(object SegLabel @199

+				Parent_View 	@197

+				location   	(1197, 239)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.900000

+				height     	54

+				orientation 	1))

+			(object RoleView "nest" @200

+			    Parent_View 	@196

+			    location   	(248, -479)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @201

+				Parent_View 	@200

+				location   	(1359, 720)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	260

+				justify    	0

+				label      	"+nest"

+				pctDist    	0.645115

+				height     	131

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"404925230034"

+			    client     	@196

+			    supplier   	@195

+			    vertices   	(list Points

+				(1250, 501)

+				(1273, 556)

+				(1202, 781))

+			    line_style 	0)))

+		(object NoteView @202

+		    location   	(221, 1677)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@202

+			location   	(71, 1486)

+			fill_color 	13434879

+			nlines     	7

+			max_width  	265

+			justify    	1

+			label      	"Acts as a query model representation (proxy) for a table or view in a relational database")

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	325

+		    height     	394)

+		(object ClassView "Class" "Logical View::SQLQueryModel::WithTableSpecification" @203

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1742, 2223)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@203

+			location   	(1520, 2171)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	444

+			justify    	0

+			label      	"WithTableSpecification")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B37EEBD019C"

+		    width      	462

+		    height     	128

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::WithTableReference" @204

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1742, 1924)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@204

+			location   	(1543, 1873)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	398

+			justify    	0

+			label      	"WithTableReference")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"41F971470060"

+		    width      	416

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$88" @205

+		    location   	(1742, 2072)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"41F973BA0398"

+		    roleview_list 	(list RoleViews

+			(object RoleView "withTableSpecification" @206

+			    Parent_View 	@205

+			    location   	(0, 148)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @207

+				Parent_View 	@206

+				location   	(1506, 2115)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	434

+				justify    	0

+				label      	"+withTableSpecification"

+				pctDist    	0.503192

+				height     	237

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"41F973BD01CC"

+			    client     	@205

+			    supplier   	@203

+			    vertices   	(list Points

+				(1742, 2072)

+				(1742, 2158))

+			    line_style 	0

+			    label      	(object SegLabel @208

+				Parent_View 	@206

+				location   	(1796, 2149)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.900000

+				height     	54

+				orientation 	0))

+			(object RoleView "withTableReferences" @209

+			    Parent_View 	@205

+			    location   	(0, 148)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @210

+				Parent_View 	@209

+				location   	(1506, 2013)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	399

+				justify    	0

+				label      	"+withTableReferences"

+				pctDist    	0.696619

+				height     	237

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"41F973BD01CE"

+			    client     	@205

+			    supplier   	@204

+			    vertices   	(list Points

+				(1742, 2072)

+				(1742, 1987))

+			    line_style 	0

+			    label      	(object SegLabel @211

+				Parent_View 	@209

+				location   	(1809, 2024)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.564706

+				height     	67

+				orientation 	1))))

+		(object ClassView "Class" "Logical View::SQLQueryModel::ColumnName" @212

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(388, 469)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@212

+			location   	(163, 422)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	451

+			justify    	0

+			label      	"ColumnName")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4049226F035A"

+		    width      	469

+		    height     	119

+		    annotation 	8)

+		(object InheritView "" @213

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404923E20186"

+		    client     	@212

+		    supplier   	@169

+		    vertices   	(list Points

+			(390, 410)

+			(390, 287))

+		    line_style 	3

+		    origin_attachment 	(390, 410)

+		    terminal_attachment 	(390, 287))

+		(object InheritTreeView "" @214

+		    location   	(1104, 613)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@179

+		    vertices   	(list Points

+			(1104, 613)

+			(1104, 231)))

+		(object InheritView "" @215

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"40492517032F"

+		    client     	@195

+		    supplier   	@179

+		    vertices   	(list Points

+			(1166, 781)

+			(1166, 613))

+		    line_style 	3

+		    origin_attachment 	(1166, 781)

+		    terminal_attachment 	(1166, 613)

+		    drawSupplier 	@214)

+		(object InheritView "" @216

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3C1FB7EA0080"

+		    client     	@172

+		    supplier   	@179

+		    vertices   	(list Points

+			(1551, 966)

+			(1551, 613))

+		    line_style 	3

+		    origin_attachment 	(1551, 966)

+		    terminal_attachment 	(1551, 613)

+		    drawSupplier 	@214)

+		(object ClassView "Class" "Logical View::SQLQueryModel::TableCorrelation" @217

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(390, 741)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@217

+			location   	(230, 690)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	320

+			justify    	0

+			label      	"TableCorrelation")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"412F8BD80253"

+		    width      	338

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$79" @218

+		    location   	(388, 602)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"412F8DAA01C1"

+		    roleview_list 	(list RoleViews

+			(object RoleView "columnNameList" @219

+			    Parent_View 	@218

+			    location   	(-2, -139)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @220

+				Parent_View 	@219

+				location   	(202, 555)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	346

+				justify    	0

+				label      	"+columnNameList"

+				pctDist    	0.653333

+				height     	187

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"412F8DAB02BD"

+			    client     	@218

+			    supplier   	@212

+			    vertices   	(list Points

+				(388, 602)

+				(388, 528))

+			    line_style 	0

+			    label      	(object SegLabel @221

+				Parent_View 	@219

+				location   	(455, 565)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.520000

+				height     	67

+				orientation 	1)

+			    label      	(object SegLabel @222

+				Parent_View 	@219

+				location   	(599, 564)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	3

+				anchor_loc 	1

+				nlines     	1

+				max_width  	176

+				justify    	0

+				label      	"{ordered}"

+				pctDist    	0.533333

+				height     	211

+				orientation 	1))

+			(object RoleView "tableCorrelation" @223

+			    Parent_View 	@218

+			    location   	(-2, -139)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @224

+				Parent_View 	@223

+				location   	(209, 650)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	330

+				justify    	0

+				label      	"+tableCorrelation"

+				pctDist    	0.607892

+				height     	181

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"412F8DAB02C7"

+			    client     	@218

+			    supplier   	@217

+			    vertices   	(list Points

+				(388, 602)

+				(389, 677))

+			    line_style 	0)))

+		(object InheritView "" @225

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"412F9AEA0288"

+		    client     	@217

+		    supplier   	@169

+		    vertices   	(list Points

+			(559, 707)

+			(713, 677)

+			(713, 262)

+			(571, 220))

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLModel::Tables::Table" @226

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(351, 2132)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@226

+			location   	(256, 2057)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	190

+			justify    	0

+			label      	"Table")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3E9B1FB60047"

+		    width      	208

+		    height     	174

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::TableExpression" @227

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(858, 1053)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@227

+			location   	(533, 978)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	651

+			justify    	0

+			label      	"TableExpression")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B37EE600288"

+		    width      	669

+		    height     	175

+		    annotation 	8)

+		(object InheritView "" @228

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3C1FB7ED00E8"

+		    client     	@227

+		    supplier   	@179

+		    vertices   	(list Points

+			(847, 966)

+			(847, 613))

+		    line_style 	3

+		    origin_attachment 	(847, 966)

+		    terminal_attachment 	(847, 613)

+		    drawSupplier 	@214)

+		(object AssociationViewNew "$UNNAMED$78" @229

+		    location   	(605, 884)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"412F8CBC0208"

+		    roleview_list 	(list RoleViews

+			(object RoleView "tableCorrelation" @230

+			    Parent_View 	@229

+			    location   	(-123, -169)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @231

+				Parent_View 	@230

+				location   	(310, 853)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	330

+				justify    	0

+				label      	"+tableCorrelation"

+				pctDist    	1.832925

+				height     	138

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"412F8CBE0297"

+			    client     	@229

+			    supplier   	@217

+			    vertices   	(list Points

+				(605, 884)

+				(484, 804))

+			    line_style 	0

+			    label      	(object SegLabel @232

+				Parent_View 	@230

+				location   	(619, 834)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..1"

+				pctDist    	0.117820

+				height     	50

+				orientation 	1))

+			(object RoleView "tableExpr" @233

+			    Parent_View 	@229

+			    location   	(-123, -169)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @234

+				Parent_View 	@233

+				location   	(520, 943)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	207

+				justify    	0

+				label      	"+tableExpr"

+				pctDist    	-0.277770

+				height     	97

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"412F8CBE02BF"

+			    client     	@229

+			    supplier   	@227

+			    vertices   	(list Points

+				(605, 884)

+				(726, 965))

+			    line_style 	0)))

+		(object ClassView "Class" "Logical View::SQLQueryModel::TableInDatabase" @235

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(689, 1716)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@235

+			location   	(524, 1665)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	330

+			justify    	0

+			label      	"TableInDatabase")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3BF3D3560327"

+		    width      	348

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$76" @236

+		    location   	(528, 1911)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"412F75A3032D"

+		    roleview_list 	(list RoleViews

+			(object RoleView "databaseTable " @237

+			    Parent_View 	@236

+			    location   	(125, 442)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @238

+				Parent_View 	@237

+				location   	(271, 2005)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	307

+				justify    	0

+				label      	"+databaseTable "

+				pctDist    	1.371920

+				height     	142

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"412F75A50055"

+			    client     	@236

+			    supplier   	@226

+			    vertices   	(list Points

+				(528, 1911)

+				(421, 2044))

+			    line_style 	0

+			    label      	(object SegLabel @239

+				Parent_View 	@237

+				location   	(502, 2012)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.556490

+				height     	43

+				orientation 	0))

+			(object RoleView "$UNNAMED$77" @240

+			    Parent_View 	@236

+			    location   	(125, 442)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @241

+				Parent_View 	@240

+				location   	(582, 1780)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				hidden     	TRUE

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	259

+				justify    	0

+				label      	""

+				pctDist    	0.800000

+				height     	42

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"412F75A50073"

+			    client     	@236

+			    supplier   	@235

+			    vertices   	(list Points

+				(528, 1911)

+				(636, 1779))

+			    line_style 	0)))

+		(object AttachView "" @242

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@235

+		    supplier   	@202

+		    vertices   	(list Points

+			(514, 1701)

+			(383, 1689))

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLQueryModel::ValueExpressionColumn" @243

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(390, 1352)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@243

+			location   	(154, 1301)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	472

+			justify    	0

+			label      	"ValueExpressionColumn")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B389EAF00BB"

+		    width      	490

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$71" @244

+		    location   	(602, 1214)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B8C1E7D0239"

+		    roleview_list 	(list RoleViews

+			(object RoleView "columnList" @245

+			    Parent_View 	@244

+			    location   	(-256, 161)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @246

+				Parent_View 	@245

+				location   	(309, 1252)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	354

+				justify    	0

+				label      	"+columnList"

+				pctDist    	1.970590

+				height     	128

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B8C1E7E0172"

+			    client     	@244

+			    supplier   	@243

+			    vertices   	(list Points

+				(602, 1214)

+				(487, 1288))

+			    line_style 	0

+			    label      	(object SegLabel @247

+				Parent_View 	@245

+				location   	(620, 1261)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.081439

+				height     	49

+				orientation 	0)

+			    label      	(object SegLabel @248

+				Parent_View 	@245

+				location   	(749, 1258)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	3

+				anchor_loc 	1

+				nlines     	1

+				max_width  	176

+				justify    	0

+				label      	"{ordered}"

+				pctDist    	-0.739960

+				height     	117

+				orientation 	0))

+			(object RoleView "parentTableExpr" @249

+			    Parent_View 	@244

+			    location   	(-256, 161)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @250

+				Parent_View 	@249

+				location   	(504, 1175)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	319

+				justify    	0

+				label      	"+parentTableExpr"

+				pctDist    	-0.450243

+				height     	87

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B8C1E7E0168"

+			    client     	@244

+			    supplier   	@227

+			    vertices   	(list Points

+				(602, 1214)

+				(718, 1140))

+			    line_style 	0

+			    label      	(object SegLabel @251

+				Parent_View 	@249

+				location   	(737, 1180)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.953940

+				height     	44

+				orientation 	1))))

+		(object AssociationViewNew "$UNNAMED$94" @252

+		    location   	(538, 1533)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4238889402F3"

+		    roleview_list 	(list RoleViews

+			(object RoleView "tableInDatabase" @253

+			    Parent_View 	@252

+			    location   	(148, 181)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @254

+				Parent_View 	@253

+				location   	(791, 1615)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	316

+				justify    	0

+				label      	"+tableInDatabase"

+				pctDist    	1.458027

+				height     	144

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4238889502A4"

+			    client     	@252

+			    supplier   	@235

+			    vertices   	(list Points

+				(538, 1533)

+				(636, 1652))

+			    line_style 	0

+			    label      	(object SegLabel @255

+				Parent_View 	@253

+				location   	(549, 1619)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..1"

+				pctDist    	0.481001

+				height     	47

+				orientation 	1))

+			(object RoleView "derivedColumnList" @256

+			    Parent_View 	@252

+			    location   	(148, 181)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @257

+				Parent_View 	@256

+				location   	(677, 1455)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	359

+				justify    	0

+				label      	"+derivedColumnList"

+				pctDist    	-0.178331

+				height     	158

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4238889502A6"

+			    client     	@252

+			    supplier   	@243

+			    vertices   	(list Points

+				(538, 1533)

+				(441, 1415))

+			    line_style 	0

+			    label      	(object SegLabel @258

+				Parent_View 	@256

+				location   	(403, 1447)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	1.005357

+				height     	50

+				orientation 	0))))

+		(object ClassView "Class" "Logical View::SQLModel::Routines::Function" @259

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1261, 2431)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@259

+			location   	(1149, 2356)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	224

+			justify    	0

+			label      	"Function")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F3D3B50012C"

+		    width      	242

+		    height     	174

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryValueExpression" @260

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(689, 2405)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@260

+			location   	(467, 2353)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	444

+			justify    	0

+			label      	"QueryValueExpression")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B3792520160"

+		    width      	462

+		    height     	128

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::TableFunction" @261

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1001, 1924)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@261

+			location   	(859, 1872)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	284

+			justify    	0

+			label      	"TableFunction")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3BF3D3E801A0"

+		    width      	302

+		    height     	128

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$96" @262

+		    location   	(1125, 2165)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"486BCF040297"

+		    roleview_list 	(list RoleViews

+			(object RoleView "function" @263

+			    Parent_View 	@262

+			    location   	(124, 241)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @264

+				Parent_View 	@263

+				location   	(1318, 2319)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	182

+				justify    	0

+				label      	"+function"

+				pctDist    	1.116452

+				height     	102

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"486BCF060041"

+			    client     	@262

+			    supplier   	@259

+			    vertices   	(list Points

+				(1125, 2165)

+				(1216, 2343))

+			    line_style 	0

+			    label      	(object SegLabel @265

+				Parent_View 	@263

+				location   	(1153, 2311)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.716202

+				height     	43

+				orientation 	1))

+			(object RoleView "$UNNAMED$97" @266

+			    Parent_View 	@262

+			    location   	(124, 241)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"486BCF060055"

+			    client     	@262

+			    supplier   	@261

+			    vertices   	(list Points

+				(1125, 2165)

+				(1034, 1988))

+			    line_style 	0)))

+		(object AssociationViewNew "$UNNAMED$98" @267

+		    location   	(844, 2164)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"486BCF89034A"

+		    roleview_list 	(list RoleViews

+			(object RoleView "parameterList" @268

+			    Parent_View 	@267

+			    location   	(-157, 240)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @269

+				Parent_View 	@268

+				location   	(574, 2296)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	279

+				justify    	0

+				label      	"+parameterList"

+				pctDist    	1.230920

+				height     	156

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"486BCF8B0036"

+			    client     	@267

+			    supplier   	@260

+			    vertices   	(list Points

+				(844, 2164)

+				(730, 2340))

+			    line_style 	0

+			    label      	(object SegLabel @270

+				Parent_View 	@268

+				location   	(828, 2301)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.589830

+				height     	61

+				orientation 	0)

+			    label      	(object SegLabel @271

+				Parent_View 	@268

+				location   	(965, 2303)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	3

+				anchor_loc 	1

+				nlines     	1

+				max_width  	160

+				justify    	0

+				label      	"{ordered}"

+				pctDist    	0.242654

+				height     	177

+				orientation 	0))

+			(object RoleView "tableFunction" @272

+			    Parent_View 	@267

+			    location   	(-157, 240)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @273

+				Parent_View 	@272

+				location   	(757, 2027)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	269

+				justify    	0

+				label      	"+tableFunction"

+				pctDist    	0.324206

+				height     	149

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"486BCF8B0054"

+			    client     	@267

+			    supplier   	@261

+			    vertices   	(list Points

+				(844, 2164)

+				(958, 1988))

+			    line_style 	0

+			    label      	(object SegLabel @274

+				Parent_View 	@272

+				location   	(991, 2035)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.900000

+				height     	54

+				orientation 	1))))

+		(object InheritTreeView "" @275

+		    location   	(879, 1572)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@227

+		    vertices   	(list Points

+			(879, 1572)

+			(879, 1140)))

+		(object InheritView "" @276

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"41F9736403D7"

+		    client     	@204

+		    supplier   	@227

+		    vertices   	(list Points

+			(1742, 1861)

+			(1742, 1572))

+		    line_style 	3

+		    origin_attachment 	(1742, 1861)

+		    terminal_attachment 	(1742, 1572)

+		    drawSupplier 	@275)

+		(object InheritView "" @277

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3BF3D3DA011E"

+		    client     	@235

+		    supplier   	@227

+		    vertices   	(list Points

+			(689, 1653)

+			(689, 1572))

+		    line_style 	3

+		    origin_attachment 	(689, 1653)

+		    terminal_attachment 	(689, 1572)

+		    drawSupplier 	@275)

+		(object InheritView "" @278

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3BF3D3F70129"

+		    client     	@261

+		    supplier   	@227

+		    vertices   	(list Points

+			(1001, 1860)

+			(1001, 1572))

+		    line_style 	3

+		    origin_attachment 	(1001, 1860)

+		    terminal_attachment 	(1001, 1572)

+		    drawSupplier 	@275)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryExpressionBody" @279

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1378, 1716)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@279

+			location   	(1134, 1666)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	488

+			justify    	0

+			label      	"QueryExpressionBody")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B37924A01CC"

+		    compartment 	(object Compartment

+			Parent_View 	@279

+			location   	(1134, 1727)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	TRUE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	2

+			max_width  	390

+			justify    	1)

+		    width      	506

+		    height     	125

+		    annotation 	8)

+		(object InheritView "" @280

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37EF4C0061"

+		    client     	@279

+		    supplier   	@227

+		    vertices   	(list Points

+			(1378, 1654)

+			(1378, 1572))

+		    line_style 	3

+		    origin_attachment 	(1378, 1654)

+		    terminal_attachment 	(1378, 1572)

+		    drawSupplier 	@275)

+		(object ClassView "Class" "Logical View::SQLQueryModel::TableQueryLateral" @281

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2015, 1716)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@281

+			location   	(1831, 1665)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	368

+			justify    	0

+			label      	"TableQueryLateral")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4E98855000BB"

+		    width      	386

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @282

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4E98856A034B"

+		    client     	@281

+		    supplier   	@227

+		    vertices   	(list Points

+			(2010, 1653)

+			(2010, 1572))

+		    line_style 	3

+		    origin_attachment 	(2010, 1653)

+		    terminal_attachment 	(2010, 1572)

+		    drawSupplier 	@275)

+		(object AssociationViewNew "$UNNAMED$121" @283

+		    location   	(1726, 1716)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4E9885A3001F"

+		    roleview_list 	(list RoleViews

+			(object RoleView "query" @284

+			    Parent_View 	@283

+			    location   	(-289, 0)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @285

+				Parent_View 	@284

+				location   	(1701, 1675)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	138

+				justify    	0

+				label      	"+query"

+				pctDist    	0.270833

+				height     	42

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4E9885A5005D"

+			    client     	@283

+			    supplier   	@279

+			    vertices   	(list Points

+				(1726, 1716)

+				(1631, 1716))

+			    line_style 	0

+			    label      	(object SegLabel @286

+				Parent_View 	@284

+				location   	(1642, 1770)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.900000

+				height     	54

+				orientation 	0))

+			(object RoleView "$UNNAMED$122" @287

+			    Parent_View 	@283

+			    location   	(-289, 0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4E9885A5005F"

+			    client     	@283

+			    supplier   	@281

+			    vertices   	(list Points

+				(1726, 1716)

+				(1821, 1716))

+			    line_style 	0)))))

+	(object ClassDiagram "QueryExpression"

+	    quid       	"3B37F312024A"

+	    title      	"QueryExpression"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	13

+	    origin_y   	0

+	    items      	(list diagram_item_list

+		(object ClassView "Class" "Logical View::SQLQueryModel::QuerySelect" @288

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(904, 1941)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@288

+			location   	(713, 1869)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	382

+			justify    	0

+			label      	"QuerySelect")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B37F44F02C8"

+		    width      	400

+		    height     	169

+		    annotation 	8)

+		(object NoteView @289

+		    location   	(453, 177)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@289

+			location   	(106, 46)

+			fill_color 	13434879

+			nlines     	5

+			max_width  	658

+			justify    	1

+			label      	"The SQL representation of a query expression may begin with either the SELECT or WITH keywords (indicating the presence of a WITH clause).")

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	718

+		    height     	275)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryCombinedOperator" @290

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1794, 2361)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@290

+			location   	(1509, 2177)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	570

+			justify    	0

+			label      	"QueryCombinedOperator")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@290

+			location   	(1509, 2127)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	570

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	15329769

+		    quidu      	"3B3A1F54022F"

+		    width      	588

+		    height     	492

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Expressions::QueryExpression" @291

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2145, 221)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@291

+			location   	(1974, 114)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	342

+			justify    	0

+			label      	"QueryExpression")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@291

+			location   	(1974, 64)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	342

+			justify    	0

+			label      	"<<Interface>>")

+		    icon       	"Interface"

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	14597606

+		    quidu      	"3F392200019B"

+		    width      	360

+		    height     	338

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryValues" @292

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(441, 1920)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@292

+			location   	(260, 1870)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	363

+			justify    	0

+			label      	"QueryValues")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B37969E01ED"

+		    width      	381

+		    height     	125

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryValueExpression" @293

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(442, 2496)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@293

+			location   	(220, 2444)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	444

+			justify    	0

+			label      	"QueryValueExpression")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B3792520160"

+		    width      	462

+		    height     	128

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::ValuesRow" @294

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(442, 2197)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@294

+			location   	(320, 2146)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	244

+			justify    	0

+			label      	"ValuesRow")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B3796910130"

+		    width      	262

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$92" @295

+		    location   	(441, 2057)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"42029BB0019B"

+		    roleview_list 	(list RoleViews

+			(object RoleView "valuesRowList" @296

+			    Parent_View 	@295

+			    location   	(-300, 614)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @297

+				Parent_View 	@296

+				location   	(257, 2096)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	284

+				justify    	0

+				label      	"+valuesRowList"

+				pctDist    	0.518954

+				height     	185

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"42029BB100A2"

+			    client     	@295

+			    supplier   	@294

+			    vertices   	(list Points

+				(441, 2057)

+				(441, 2133))

+			    line_style 	0

+			    label      	(object SegLabel @298

+				Parent_View 	@296

+				location   	(493, 2095)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1..n"

+				pctDist    	0.504241

+				height     	52

+				orientation 	0)

+			    label      	(object SegLabel @299

+				Parent_View 	@296

+				location   	(639, 2090)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	3

+				anchor_loc 	1

+				nlines     	1

+				max_width  	159

+				justify    	0

+				label      	"{ordered}"

+				pctDist    	0.452484

+				height     	198

+				orientation 	0))

+			(object RoleView "queryValues" @300

+			    Parent_View 	@295

+			    location   	(-300, 614)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @301

+				Parent_View 	@300

+				location   	(256, 2006)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	250

+				justify    	0

+				label      	"+queryValues"

+				pctDist    	0.681612

+				height     	186

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"42029BB100A4"

+			    client     	@295

+			    supplier   	@292

+			    vertices   	(list Points

+				(441, 2057)

+				(441, 1982))

+			    line_style 	0

+			    label      	(object SegLabel @302

+				Parent_View 	@300

+				location   	(494, 1997)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.795327

+				height     	53

+				orientation 	1))))

+		(object AssociationViewNew "$UNNAMED$11" @303

+		    location   	(442, 2345)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37974E00C4"

+		    roleview_list 	(list RoleViews

+			(object RoleView "exprList" @304

+			    Parent_View 	@303

+			    location   	(-299, 629)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @305

+				Parent_View 	@304

+				location   	(326, 2400)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	174

+				justify    	0

+				label      	"+exprList"

+				pctDist    	0.639535

+				height     	117

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37974E02D9"

+			    client     	@303

+			    supplier   	@293

+			    vertices   	(list Points

+				(442, 2345)

+				(442, 2431))

+			    line_style 	0

+			    label      	(object SegLabel @306

+				Parent_View 	@304

+				location   	(498, 2402)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1..n"

+				pctDist    	0.662791

+				height     	56

+				orientation 	0)

+			    label      	(object SegLabel @307

+				Parent_View 	@304

+				location   	(644, 2396)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	3

+				anchor_loc 	1

+				nlines     	1

+				max_width  	159

+				justify    	0

+				label      	"{ordered}"

+				pctDist    	0.604651

+				height     	202

+				orientation 	0))

+			(object RoleView "valuesRow" @308

+			    Parent_View 	@303

+			    location   	(-299, 629)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @309

+				Parent_View 	@308

+				location   	(283, 2290)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	230

+				justify    	0

+				label      	"+valuesRow"

+				pctDist    	0.647059

+				height     	160

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37974E02D7"

+			    client     	@303

+			    supplier   	@294

+			    vertices   	(list Points

+				(442, 2345)

+				(442, 2260))

+			    line_style 	0)))

+		(object NoteView @310

+		    location   	(2040, 855)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@310

+			location   	(1887, 664)

+			fill_color 	13434879

+			nlines     	7

+			max_width  	271

+			justify    	1

+			label      	"The rowFetchLimit attribute is for the SQL clause FETCH FIRST n ROWS ONLY")

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	331

+		    height     	394)

+		(object ClassView "Class" "Logical View::SQLQueryModel::ColumnName" @311

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(416, 936)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@311

+			location   	(279, 885)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	274

+			justify    	0

+			label      	"ColumnName")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4049226F035A"

+		    width      	292

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryCombined" @312

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1791, 1944)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@312

+			location   	(1591, 1872)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	401

+			justify    	0

+			label      	"QueryCombined")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B37F42D0189"

+		    width      	419

+		    height     	169

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryExpressionRoot" @313

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1256, 220)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@313

+			location   	(1025, 173)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	463

+			justify    	0

+			label      	"QueryExpressionRoot")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B37968301D1"

+		    width      	481

+		    height     	119

+		    annotation 	8)

+		(object AttachView "" @314

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@289

+		    supplier   	@313

+		    vertices   	(list Points

+			(812, 195)

+			(1015, 206))

+		    line_style 	0)

+		(object InheritView "" @315

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404CD86A02F5"

+		    client     	@313

+		    supplier   	@291

+		    vertices   	(list Points

+			(1496, 220)

+			(1964, 220))

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLQueryModel::WithTableSpecification" @316

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(414, 567)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@316

+			location   	(167, 520)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	494

+			justify    	0

+			label      	"WithTableSpecification")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B37EEBD019C"

+		    width      	512

+		    height     	118

+		    annotation 	8)

+		(object AssociationViewNew "$UNNAMED$20" @317

+		    location   	(829, 393)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37F3FB0368"

+		    roleview_list 	(list RoleViews

+			(object RoleView "queryExpressionRoot " @318

+			    Parent_View 	@317

+			    location   	(582, -607)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @319

+				Parent_View 	@318

+				location   	(881, 347)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	424

+				justify    	0

+				label      	"+queryExpressionRoot "

+				pctDist    	0.218980

+				height     	23

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37F3FC0189"

+			    client     	@317

+			    supplier   	@313

+			    vertices   	(list Points

+				(829, 393)

+				(1104, 279))

+			    line_style 	0)

+			(object RoleView "withClause" @320

+			    Parent_View 	@317

+			    location   	(582, -607)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @321

+				Parent_View 	@320

+				location   	(342, 471)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	226

+				justify    	0

+				label      	"+withClause"

+				pctDist    	1.607051

+				height     	113

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37F3FC0193"

+			    client     	@317

+			    supplier   	@316

+			    vertices   	(list Points

+				(829, 393)

+				(551, 507))

+			    line_style 	0

+			    label      	(object SegLabel @322

+				Parent_View 	@320

+				location   	(521, 471)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	1.053957

+				height     	47

+				orientation 	1)

+			    label      	(object SegLabel @323

+				Parent_View 	@320

+				location   	(683, 474)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	3

+				anchor_loc 	1

+				nlines     	1

+				max_width  	162

+				justify    	0

+				label      	"{ordered}"

+				pctDist    	0.555443

+				height     	19

+				orientation 	0))))

+		(object AssociationViewNew "$UNNAMED$89" @324

+		    location   	(414, 749)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"41F9748E0122"

+		    roleview_list 	(list RoleViews

+			(object RoleView "columnNameList" @325

+			    Parent_View 	@324

+			    location   	(-2, 8)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @326

+				Parent_View 	@325

+				location   	(231, 835)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	338

+				justify    	0

+				label      	"+columnNameList"

+				pctDist    	0.691667

+				height     	185

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"41F9748F0099"

+			    client     	@324

+			    supplier   	@311

+			    vertices   	(list Points

+				(414, 749)

+				(415, 872))

+			    line_style 	0

+			    label      	(object SegLabel @327

+				Parent_View 	@325

+				location   	(469, 836)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.716667

+				height     	54

+				orientation 	0)

+			    label      	(object SegLabel @328

+				Parent_View 	@325

+				location   	(602, 832)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	3

+				anchor_loc 	1

+				nlines     	1

+				max_width  	159

+				justify    	0

+				label      	"{ordered}"

+				pctDist    	0.694215

+				height     	187

+				orientation 	0))

+			(object RoleView "withTableSpecification" @329

+			    Parent_View 	@324

+			    location   	(-2, 8)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @330

+				Parent_View 	@329

+				location   	(288, 704)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	434

+				justify    	0

+				label      	"+withTableSpecification"

+				pctDist    	0.366667

+				height     	127

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"41F9748F009B"

+			    client     	@324

+			    supplier   	@316

+			    vertices   	(list Points

+				(414, 749)

+				(414, 626))

+			    line_style 	0

+			    label      	(object SegLabel @331

+				Parent_View 	@329

+				location   	(529, 704)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.366667

+				height     	115

+				orientation 	1))))

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryNested" @332

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1326, 1924)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@332

+			location   	(1191, 1873)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	270

+			justify    	0

+			label      	"QueryNested")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4445534B01A5"

+		    width      	288

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::OrderBySpecification" @333

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(663, 1443)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@333

+			location   	(268, 1312)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	790

+			justify    	0

+			label      	"OrderBySpecification")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"404D14E20381"

+		    width      	808

+		    height     	286

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryExpressionBody" @334

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1257, 855)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@334

+			location   	(1004, 783)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	507

+			justify    	0

+			label      	"QueryExpressionBody")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B37924A01CC"

+		    width      	525

+		    height     	169

+		    annotation 	8)

+		(object AssociationViewNew "$UNNAMED$65" @335

+		    location   	(1744, 1274)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B3A0F03019D"

+		    roleview_list 	(list RoleViews

+			(object RoleView "combinedLeft" @336

+			    Parent_View 	@335

+			    location   	(290, 278)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @337

+				Parent_View 	@336

+				location   	(1614, 1826)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	274

+				justify    	0

+				label      	"+combinedLeft"

+				pctDist    	0.945545

+				height     	176

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B3A0F060101"

+			    client     	@335

+			    supplier   	@312

+			    vertices   	(list Points

+				(1744, 1274)

+				(1790, 1313)

+				(1790, 1859))

+			    line_style 	0)

+			(object RoleView "leftQuery" @338

+			    Parent_View 	@335

+			    location   	(290, 278)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @339

+				Parent_View 	@338

+				location   	(1428, 1017)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	186

+				justify    	0

+				label      	"+leftQuery"

+				pctDist    	0.791961

+				height     	11

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B3A0F06011F"

+			    client     	@335

+			    supplier   	@334

+			    vertices   	(list Points

+				(1744, 1274)

+				(1354, 939))

+			    line_style 	0

+			    label      	(object SegLabel @340

+				Parent_View 	@338

+				location   	(1701, 974)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.443658

+				height     	199

+				orientation 	1))))

+		(object AssociationViewNew "$UNNAMED$66" @341

+		    location   	(1908, 1283)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B3A0F090214"

+		    roleview_list 	(list RoleViews

+			(object RoleView "combinedRight" @342

+			    Parent_View 	@341

+			    location   	(454, 287)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @343

+				Parent_View 	@342

+				location   	(2001, 1829)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	296

+				justify    	0

+				label      	"+combinedRight"

+				pctDist    	0.873000

+				height     	172

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B3A0F0C00CD"

+			    client     	@341

+			    supplier   	@312

+			    vertices   	(list Points

+				(1908, 1283)

+				(1965, 1320)

+				(1813, 1859))

+			    line_style 	0)

+			(object RoleView "rightQuery" @344

+			    Parent_View 	@341

+			    location   	(454, 287)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @345

+				Parent_View 	@344

+				location   	(1554, 974)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	220

+				justify    	0

+				label      	"+rightQuery"

+				pctDist    	0.742963

+				height     	65

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B3A0F0C00E1"

+			    client     	@341

+			    supplier   	@334

+			    vertices   	(list Points

+				(1908, 1283)

+				(1385, 939))

+			    line_style 	0

+			    label      	(object SegLabel @346

+				Parent_View 	@344

+				location   	(1513, 1085)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.700636

+				height     	52

+				orientation 	0))))

+		(object AssociationViewNew "$UNNAMED$21" @347

+		    location   	(1256, 524)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37F408023A"

+		    roleview_list 	(list RoleViews

+			(object RoleView "queryExpression" @348

+			    Parent_View 	@347

+			    location   	(-198, -472)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @349

+				Parent_View 	@348

+				location   	(1478, 329)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	330

+				justify    	0

+				label      	"+queryExpression"

+				pctDist    	0.795918

+				height     	222

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37F40900F1"

+			    client     	@347

+			    supplier   	@313

+			    vertices   	(list Points

+				(1256, 524)

+				(1256, 279))

+			    line_style 	0)

+			(object RoleView "query" @350

+			    Parent_View 	@347

+			    location   	(-198, -472)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @351

+				Parent_View 	@350

+				location   	(1348, 743)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	138

+				justify    	0

+				label      	"+query"

+				pctDist    	0.890244

+				height     	92

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37F40900FB"

+			    client     	@347

+			    supplier   	@334

+			    vertices   	(list Points

+				(1256, 524)

+				(1256, 770))

+			    line_style 	0

+			    label      	(object SegLabel @352

+				Parent_View 	@350

+				location   	(1448, 748)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.910569

+				height     	192

+				orientation 	0))))

+		(object AssociationViewNew "$UNNAMED$87" @353

+		    location   	(799, 698)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"41F971E90098"

+		    roleview_list 	(list RoleViews

+			(object RoleView "withTableQueryExpr" @354

+			    Parent_View 	@353

+			    location   	(383, -43)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @355

+				Parent_View 	@354

+				location   	(925, 743)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	463

+				justify    	0

+				label      	"+withTableQueryExpr"

+				pctDist    	0.597510

+				height     	2

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"41F971EA0088"

+			    client     	@353

+			    supplier   	@334

+			    vertices   	(list Points

+				(799, 698)

+				(1012, 770))

+			    line_style 	0

+			    label      	(object SegLabel @356

+				Parent_View 	@354

+				location   	(1157, 752)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	1.591606

+				height     	65

+				orientation 	0))

+			(object RoleView "withTableSpecification" @357

+			    Parent_View 	@353

+			    location   	(383, -43)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @358

+				Parent_View 	@357

+				location   	(887, 640)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	434

+				justify    	0

+				label      	"+withTableSpecification"

+				pctDist    	-0.293783

+				height     	84

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"41F971EA0092"

+			    client     	@353

+			    supplier   	@316

+			    vertices   	(list Points

+				(799, 698)

+				(591, 626))

+			    line_style 	0

+			    label      	(object SegLabel @359

+				Parent_View 	@357

+				location   	(1136, 639)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	-1.340488

+				height     	165

+				orientation 	1))))

+		(object AssociationViewNew "$UNNAMED$95" @360

+		    location   	(1474, 1383)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4445749A0364"

+		    roleview_list 	(list RoleViews

+			(object RoleView "nestedQuery" @361

+			    Parent_View 	@360

+			    location   	(148, -60)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @362

+				Parent_View 	@361

+				location   	(1358, 1078)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	254

+				justify    	0

+				label      	"+nestedQuery"

+				pctDist    	0.699109

+				height     	15

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4445749C0399"

+			    client     	@360

+			    supplier   	@334

+			    vertices   	(list Points

+				(1474, 1383)

+				(1494, 1310)

+				(1301, 939))

+			    line_style 	0

+			    label      	(object SegLabel @363

+				Parent_View 	@361

+				location   	(1546, 1032)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.608232

+				height     	175

+				orientation 	1))

+			(object RoleView "queryNest" @364

+			    Parent_View 	@360

+			    location   	(148, -60)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @365

+				Parent_View 	@364

+				location   	(1196, 1823)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	214

+				justify    	0

+				label      	"+queryNest"

+				pctDist    	1.006490

+				height     	151

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4445749C039B"

+			    client     	@360

+			    supplier   	@332

+			    vertices   	(list Points

+				(1474, 1383)

+				(1342, 1860))

+			    line_style 	0)))

+		(object AttachView "" @366

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@310

+		    supplier   	@334

+		    vertices   	(list Points

+			(1874, 855)

+			(1519, 855))

+		    line_style 	0)

+		(object AssociationViewNew "$UNNAMED$116" @367

+		    location   	(988, 1119)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"49D404D0038A"

+		    roleview_list 	(list RoleViews

+			(object RoleView "sortSpecList" @368

+			    Parent_View 	@367

+			    location   	(-269, 264)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @369

+				Parent_View 	@368

+				location   	(618, 1258)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	393

+				justify    	0

+				label      	"+sortSpecList"

+				pctDist    	1.413446

+				height     	164

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"49D404D10261"

+			    client     	@367

+			    supplier   	@333

+			    vertices   	(list Points

+				(988, 1119)

+				(805, 1299))

+			    line_style 	0

+			    label      	(object SegLabel @370

+				Parent_View 	@368

+				location   	(937, 1260)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.532449

+				height     	64

+				orientation 	0)

+			    label      	(object SegLabel @371

+				Parent_View 	@368

+				location   	(1092, 1266)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	3

+				anchor_loc 	1

+				nlines     	1

+				max_width  	174

+				justify    	0

+				label      	"{ordered}"

+				pctDist    	0.117087

+				height     	177

+				orientation 	0))

+			(object RoleView "query" @372

+			    Parent_View 	@367

+			    location   	(-269, 264)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @373

+				Parent_View 	@372

+				location   	(1032, 966)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	138

+				justify    	0

+				label      	"+query"

+				pctDist    	0.543836

+				height     	79

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"49D404D10271"

+			    client     	@367

+			    supplier   	@334

+			    vertices   	(list Points

+				(988, 1119)

+				(1169, 939))

+			    line_style 	0)))

+		(object InheritTreeView "" @374

+		    location   	(1259, 1714)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@334

+		    vertices   	(list Points

+			(1259, 1714)

+			(1259, 939)))

+		(object InheritView "" @375

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37F464012E"

+		    client     	@312

+		    supplier   	@334

+		    vertices   	(list Points

+			(1769, 1859)

+			(1769, 1714))

+		    line_style 	3

+		    origin_attachment 	(1769, 1859)

+		    terminal_attachment 	(1769, 1714)

+		    drawSupplier 	@374)

+		(object InheritView "" @376

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37F45F0131"

+		    client     	@292

+		    supplier   	@334

+		    vertices   	(list Points

+			(451, 1857)

+			(451, 1714))

+		    line_style 	3

+		    origin_attachment 	(451, 1857)

+		    terminal_attachment 	(451, 1714)

+		    drawSupplier 	@374)

+		(object InheritView "" @377

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4445535D0014"

+		    client     	@332

+		    supplier   	@334

+		    vertices   	(list Points

+			(1322, 1861)

+			(1322, 1714))

+		    line_style 	3

+		    origin_attachment 	(1322, 1861)

+		    terminal_attachment 	(1322, 1714)

+		    drawSupplier 	@374)

+		(object InheritView "" @378

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37F4610260"

+		    client     	@288

+		    supplier   	@334

+		    vertices   	(list Points

+			(900, 1857)

+			(900, 1714))

+		    line_style 	3

+		    origin_attachment 	(900, 1857)

+		    terminal_attachment 	(900, 1714)

+		    drawSupplier 	@374)))

+	(object ClassDiagram "QuerySelect"

+	    quid       	"3B37F5D70218"

+	    title      	"QuerySelect"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	0

+	    origin_y   	0

+	    items      	(list diagram_item_list

+		(object ClassView "Class" "Logical View::SQLQueryModel::QuerySearchCondition" @379

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1822, 849)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@379

+			location   	(1594, 802)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	457

+			justify    	0

+			label      	"QuerySearchCondition")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B378C160224"

+		    width      	475

+		    height     	119

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::GroupingSpecification" @380

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1993, 1180)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@380

+			location   	(1727, 1130)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	532

+			justify    	0

+			label      	"GroupingSpecification")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B37F63D0369"

+		    width      	550

+		    height     	125

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryResultSpecification" @381

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(375, 849)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@381

+			location   	(62, 799)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	626

+			justify    	0

+			label      	"QueryResultSpecification")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B37F66102FD"

+		    width      	644

+		    height     	125

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::ValueExpressionVariable" @382

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(666, 1115)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@382

+			location   	(394, 1065)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	545

+			justify    	0

+			label      	"ValueExpressionVariable")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B389EC5029D"

+		    width      	563

+		    height     	125

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QuerySelect" @383

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1256, 353)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@383

+			location   	(1015, 272)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	482

+			justify    	0

+			label      	"QuerySelect")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B37F44F02C8"

+		    width      	500

+		    height     	187

+		    annotation 	8)

+		(object AssociationViewNew "$UNNAMED$22" @384

+		    location   	(1672, 588)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37F67B01C4"

+		    roleview_list 	(list RoleViews

+			(object RoleView "querySelectHaving" @385

+			    Parent_View 	@384

+			    location   	(1278, -96)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @386

+				Parent_View 	@385

+				location   	(1652, 492)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	364

+				justify    	0

+				label      	"+querySelectHaving"

+				pctDist    	0.224277

+				height     	73

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37F67C007B"

+			    client     	@384

+			    supplier   	@383

+			    vertices   	(list Points

+				(1672, 588)

+				(1423, 446))

+			    line_style 	0)

+			(object RoleView "havingClause" @387

+			    Parent_View 	@384

+			    location   	(1278, -96)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @388

+				Parent_View 	@387

+				location   	(1965, 737)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	262

+				justify    	0

+				label      	"+havingClause"

+				pctDist    	0.820205

+				height     	144

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37F67C0085"

+			    client     	@384

+			    supplier   	@379

+			    vertices   	(list Points

+				(1672, 588)

+				(1821, 672)

+				(1821, 789))

+			    line_style 	0

+			    label      	(object SegLabel @389

+				Parent_View 	@387

+				location   	(1903, 709)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..1"

+				pctDist    	0.721776

+				height     	82

+				orientation 	0))))

+		(object AssociationViewNew "$UNNAMED$23" @390

+		    location   	(1557, 617)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37F67E0204"

+		    roleview_list 	(list RoleViews

+			(object RoleView "querySelectWhere" @391

+			    Parent_View 	@390

+			    location   	(1163, -67)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @392

+				Parent_View 	@391

+				location   	(1591, 582)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	373

+				justify    	0

+				label      	"+querySelectWhere"

+				pctDist    	-0.010036

+				height     	49

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37F67F013D"

+			    client     	@390

+			    supplier   	@383

+			    vertices   	(list Points

+				(1557, 617)

+				(1361, 446))

+			    line_style 	0)

+			(object RoleView "whereClause" @393

+			    Parent_View 	@390

+			    location   	(1163, -67)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @394

+				Parent_View 	@393

+				location   	(1715, 750)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	272

+				justify    	0

+				label      	"+whereClause"

+				pctDist    	0.790456

+				height     	4

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37F67F013F"

+			    client     	@390

+			    supplier   	@379

+			    vertices   	(list Points

+				(1557, 617)

+				(1752, 789))

+			    line_style 	0

+			    label      	(object SegLabel @395

+				Parent_View 	@393

+				location   	(1737, 712)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..1"

+				pctDist    	0.750524

+				height     	48

+				orientation 	0))))

+		(object AssociationViewNew "$UNNAMED$24" @396

+		    location   	(2068, 605)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37F6880259"

+		    roleview_list 	(list RoleViews

+			(object RoleView "querySelect" @397

+			    Parent_View 	@396

+			    location   	(940, -45)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @398

+				Parent_View 	@397

+				location   	(1704, 420)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	245

+				justify    	0

+				label      	"+querySelect"

+				pctDist    	0.683879

+				height     	68

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37F6890174"

+			    client     	@396

+			    supplier   	@383

+			    vertices   	(list Points

+				(2068, 605)

+				(1506, 430))

+			    line_style 	0)

+			(object RoleView "groupByClause" @399

+			    Parent_View 	@396

+			    location   	(940, -45)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @400

+				Parent_View 	@399

+				location   	(2238, 1082)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	298

+				justify    	0

+				label      	"+groupByClause"

+				pctDist    	0.754846

+				height     	151

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37F6890176"

+			    client     	@396

+			    supplier   	@380

+			    vertices   	(list Points

+				(2068, 605)

+				(2132, 625)

+				(2132, 969)

+				(2032, 1117))

+			    line_style 	0

+			    label      	(object SegLabel @401

+				Parent_View 	@399

+				location   	(1772, 1082)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	1.652583

+				height     	235

+				orientation 	0)

+			    label      	(object SegLabel @402

+				Parent_View 	@399

+				location   	(1918, 1081)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	3

+				anchor_loc 	1

+				nlines     	1

+				max_width  	162

+				justify    	0

+				label      	"{ordered}"

+				pctDist    	1.190321

+				height     	115

+				orientation 	0))))

+		(object AssociationViewNew "$UNNAMED$25" @403

+		    location   	(788, 616)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37F6900264"

+		    roleview_list 	(list RoleViews

+			(object RoleView "querySelect" @404

+			    Parent_View 	@403

+			    location   	(-1043, -27)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @405

+				Parent_View 	@404

+				location   	(861, 491)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	245

+				justify    	0

+				label      	"+querySelect"

+				pctDist    	0.361867

+				height     	75

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37F69102CA"

+			    client     	@403

+			    supplier   	@383

+			    vertices   	(list Points

+				(788, 616)

+				(1087, 446))

+			    line_style 	0)

+			(object RoleView "selectClause" @406

+			    Parent_View 	@403

+			    location   	(-1043, -27)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @407

+				Parent_View 	@406

+				location   	(311, 754)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	257

+				justify    	0

+				label      	"+selectClause"

+				pctDist    	1.399770

+				height     	115

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37F69102CC"

+			    client     	@403

+			    supplier   	@381

+			    vertices   	(list Points

+				(788, 616)

+				(483, 786))

+			    line_style 	0

+			    label      	(object SegLabel @408

+				Parent_View 	@406

+				location   	(615, 759)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.638830

+				height     	40

+				orientation 	0)

+			    label      	(object SegLabel @409

+				Parent_View 	@406

+				location   	(748, 759)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	3

+				anchor_loc 	1

+				nlines     	1

+				max_width  	162

+				justify    	0

+				label      	"{ordered}"

+				pctDist    	0.305502

+				height     	104

+				orientation 	0))))

+		(object AssociationViewNew "$UNNAMED$69" @410

+		    location   	(948, 749)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B3A5BBF0226"

+		    roleview_list 	(list RoleViews

+			(object RoleView "querySelect" @411

+			    Parent_View 	@410

+			    location   	(636, 587)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @412

+				Parent_View 	@411

+				location   	(1054, 567)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	245

+				justify    	0

+				label      	"+querySelect"

+				pctDist    	0.544473

+				height     	28

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B3A5BC0003C"

+			    client     	@410

+			    supplier   	@383

+			    vertices   	(list Points

+				(948, 749)

+				(1182, 446))

+			    line_style 	0)

+			(object RoleView "intoClause" @413

+			    Parent_View 	@410

+			    location   	(636, 587)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @414

+				Parent_View 	@413

+				location   	(599, 1026)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	226

+				justify    	0

+				label      	"+intoClause"

+				pctDist    	1.130962

+				height     	107

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B3A5BC00046"

+			    client     	@410

+			    supplier   	@382

+			    vertices   	(list Points

+				(948, 749)

+				(712, 1052))

+			    line_style 	0

+			    label      	(object SegLabel @415

+				Parent_View 	@413

+				location   	(825, 1024)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.765953

+				height     	71

+				orientation 	0)

+			    label      	(object SegLabel @416

+				Parent_View 	@413

+				location   	(962, 1020)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	3

+				anchor_loc 	1

+				nlines     	1

+				max_width  	162

+				justify    	0

+				label      	"{ordered}"

+				pctDist    	0.540037

+				height     	177

+				orientation 	0))))

+		(object ClassView "Class" "Logical View::SQLQueryModel::TableReference" @417

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1253, 846)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@417

+			location   	(1009, 799)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	489

+			justify    	0

+			label      	"TableReference")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B37EE200178"

+		    width      	507

+		    height     	119

+		    annotation 	8)

+		(object AssociationViewNew "$UNNAMED$26" @418

+		    location   	(1254, 616)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37F69401CA"

+		    roleview_list 	(list RoleViews

+			(object RoleView "querySelect" @419

+			    Parent_View 	@418

+			    location   	(-740, 385)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @420

+				Parent_View 	@419

+				location   	(1286, 528)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	245

+				justify    	0

+				label      	"+querySelect"

+				pctDist    	0.516234

+				height     	31

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37F69403B4"

+			    client     	@418

+			    supplier   	@383

+			    vertices   	(list Points

+				(1254, 616)

+				(1255, 446))

+			    line_style 	0)

+			(object RoleView "fromClause" @421

+			    Parent_View 	@418

+			    location   	(-740, 385)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @422

+				Parent_View 	@421

+				location   	(1120, 752)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	233

+				justify    	0

+				label      	"+fromClause"

+				pctDist    	0.805966

+				height     	134

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37F69403BE"

+			    client     	@418

+			    supplier   	@417

+			    vertices   	(list Points

+				(1254, 616)

+				(1253, 786))

+			    line_style 	0

+			    label      	(object SegLabel @423

+				Parent_View 	@421

+				location   	(1314, 750)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1..n"

+				pctDist    	0.792899

+				height     	61

+				orientation 	0)

+			    label      	(object SegLabel @424

+				Parent_View 	@421

+				location   	(1440, 749)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	3

+				anchor_loc 	1

+				nlines     	1

+				max_width  	162

+				justify    	0

+				label      	"{ordered}"

+				pctDist    	0.775148

+				height     	187

+				orientation 	0))))

+		(object NoteView @425

+		    location   	(376, 519)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@425

+			location   	(151, 444)

+			fill_color 	13434879

+			nlines     	3

+			max_width  	414

+			justify    	1

+			label      	

+|"SELECT *" is implied if the select clause is empty.

+			)

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	474

+		    height     	162)

+		(object AttachView "" @426

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@425

+		    supplier   	@381

+		    vertices   	(list Points

+			(375, 600)

+			(375, 786))

+		    line_style 	0)))

+	(object ClassDiagram "SearchCondition"

+	    quid       	"3B37FA440267"

+	    title      	"SearchCondition"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	0

+	    origin_y   	1532

+	    items      	(list diagram_item_list

+		(object ClassView "Class" "Logical View::SQLQueryModel::Predicate" @427

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1248, 597)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@427

+			location   	(963, 465)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	570

+			justify    	0

+			label      	"Predicate")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B37F1C2039C"

+		    width      	588

+		    height     	288

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::PredicateQuantified" @428

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(976, 1077)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@428

+			location   	(754, 1024)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	444

+			justify    	0

+			label      	"PredicateQuantified")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B37FA7E008A"

+		    width      	462

+		    height     	131

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::PredicateIn" @429

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2635, 1091)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@429

+			location   	(2422, 1019)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	426

+			justify    	0

+			label      	"PredicateIn")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B37FAB303B1"

+		    width      	444

+		    height     	168

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::PredicateBasic" @430

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(354, 1099)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@430

+			location   	(57, 1018)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	594

+			justify    	0

+			label      	"PredicateBasic")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B37FA6F011F"

+		    width      	612

+		    height     	187

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryValueExpression" @431

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(366, 1523)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@431

+			location   	(144, 1476)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	444

+			justify    	0

+			label      	"QueryValueExpression")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B3792520160"

+		    width      	462

+		    height     	119

+		    annotation 	8)

+		(object AssociationViewNew "$UNNAMED$28" @432

+		    location   	(510, 1331)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37FB2D01EA"

+		    roleview_list 	(list RoleViews

+			(object RoleView "basicRight" @433

+			    Parent_View 	@432

+			    location   	(207, 346)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @434

+				Parent_View 	@433

+				location   	(639, 1236)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	223

+				justify    	0

+				label      	"+basicRight"

+				pctDist    	1.283784

+				height     	129

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37FB2D03A3"

+			    client     	@432

+			    supplier   	@430

+			    vertices   	(list Points

+				(510, 1331)

+				(510, 1257)

+				(446, 1192))

+			    line_style 	0)

+			(object RoleView "rightValueExpr" @435

+			    Parent_View 	@432

+			    location   	(207, 346)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @436

+				Parent_View 	@435

+				location   	(683, 1429)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	293

+				justify    	0

+				label      	"+rightValueExpr"

+				pctDist    	1.139535

+				height     	173

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37FB2D03A5"

+			    client     	@432

+			    supplier   	@431

+			    vertices   	(list Points

+				(510, 1331)

+				(510, 1417)

+				(445, 1463))

+			    line_style 	0

+			    label      	(object SegLabel @437

+				Parent_View 	@435

+				location   	(568, 1370)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.237179

+				height     	58

+				orientation 	0))))

+		(object AssociationViewNew "$UNNAMED$29" @438

+		    location   	(359, 1327)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37FB2F0215"

+		    roleview_list 	(list RoleViews

+			(object RoleView "basicLeft" @439

+			    Parent_View 	@438

+			    location   	(56, 342)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @440

+				Parent_View 	@439

+				location   	(225, 1233)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	191

+				justify    	0

+				label      	"+basicLeft"

+				pctDist    	0.725568

+				height     	133

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37FB2F03CE"

+			    client     	@438

+			    supplier   	@430

+			    vertices   	(list Points

+				(359, 1327)

+				(355, 1192))

+			    line_style 	0)

+			(object RoleView "leftValueExpr" @441

+			    Parent_View 	@438

+			    location   	(56, 342)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @442

+				Parent_View 	@441

+				location   	(218, 1430)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	277

+				justify    	0

+				label      	"+leftValueExpr"

+				pctDist    	0.734848

+				height     	145

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37FB2F03D0"

+			    client     	@438

+			    supplier   	@431

+			    vertices   	(list Points

+				(359, 1327)

+				(363, 1463))

+			    line_style 	0

+			    label      	(object SegLabel @443

+				Parent_View 	@441

+				location   	(317, 1369)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.310606

+				height     	44

+				orientation 	1))))

+		(object ClassView "Class" "Logical View::SQLQueryModel::PredicateIsNull" @444

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(3776, 1093)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@444

+			location   	(3573, 1012)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	407

+			justify    	0

+			label      	"PredicateIsNull")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B37FAD50324"

+		    width      	425

+		    height     	187

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryValueExpression" @445

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(3776, 1530)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@445

+			location   	(3548, 1477)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	457

+			justify    	0

+			label      	"QueryValueExpression")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B3792520160"

+		    width      	475

+		    height     	131

+		    annotation 	8)

+		(object AssociationViewNew "$UNNAMED$32" @446

+		    location   	(3776, 1325)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37FB600107"

+		    roleview_list 	(list RoleViews

+			(object RoleView "predicateNull" @447

+			    Parent_View 	@446

+			    location   	(35, 328)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @448

+				Parent_View 	@447

+				location   	(3946, 1235)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	259

+				justify    	0

+				label      	"+predicateNull"

+				pctDist    	0.647482

+				height     	170

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37FB6002E8"

+			    client     	@446

+			    supplier   	@444

+			    vertices   	(list Points

+				(3776, 1325)

+				(3776, 1186))

+			    line_style 	0)

+			(object RoleView "valueExpr" @449

+			    Parent_View 	@446

+			    location   	(35, 328)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @450

+				Parent_View 	@449

+				location   	(3952, 1430)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	204

+				justify    	0

+				label      	"+valueExpr"

+				pctDist    	0.755396

+				height     	176

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37FB6002F2"

+			    client     	@446

+			    supplier   	@445

+			    vertices   	(list Points

+				(3776, 1325)

+				(3776, 1464))

+			    line_style 	0

+			    label      	(object SegLabel @451

+				Parent_View 	@449

+				location   	(3804, 1413)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.639219

+				height     	28

+				orientation 	0))))

+		(object ClassView "Class" "Logical View::SQLQueryModel::PredicateInValueList" @452

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2688, 1957)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@452

+			location   	(2400, 1904)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	576

+			justify    	0

+			label      	"PredicateInValueList")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B37FBF403E5"

+		    width      	594

+		    height     	131

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryValueExpression" @453

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2684, 2322)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@453

+			location   	(2456, 2272)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	457

+			justify    	0

+			label      	"QueryValueExpression")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B3792520160"

+		    width      	475

+		    height     	125

+		    annotation 	8)

+		(object AssociationViewNew "$UNNAMED$33" @454

+		    location   	(2802, 2162)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37FCD10176"

+		    roleview_list 	(list RoleViews

+			(object RoleView "inValueListRight" @455

+			    Parent_View 	@454

+			    location   	(175, 559)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @456

+				Parent_View 	@455

+				location   	(2915, 2059)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	316

+				justify    	0

+				label      	"+inValueListRight"

+				pctDist    	2.503333

+				height     	29

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37FCD20005"

+			    client     	@454

+			    supplier   	@452

+			    vertices   	(list Points

+				(2802, 2162)

+				(2838, 2114)

+				(2750, 2022))

+			    line_style 	0)

+			(object RoleView "valueExprList" @457

+			    Parent_View 	@454

+			    location   	(175, 559)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @458

+				Parent_View 	@457

+				location   	(2920, 2194)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	275

+				justify    	0

+				label      	"+valueExprList"

+				pctDist    	-0.389587

+				height     	113

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37FCD20007"

+			    client     	@454

+			    supplier   	@453

+			    vertices   	(list Points

+				(2802, 2162)

+				(2729, 2259))

+			    line_style 	0

+			    label      	(object SegLabel @459

+				Parent_View 	@457

+				location   	(2829, 2234)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1..n"

+				pctDist    	0.343136

+				height     	65

+				orientation 	0)

+			    label      	(object SegLabel @460

+				Parent_View 	@457

+				location   	(2964, 2240)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	3

+				anchor_loc 	1

+				nlines     	1

+				max_width  	162

+				justify    	0

+				label      	"{ordered}"

+				pctDist    	-0.315082

+				height     	176

+				orientation 	0))))

+		(object AssociationViewNew "$UNNAMED$34" @461

+		    location   	(2685, 2140)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37FCD40044"

+		    roleview_list 	(list RoleViews

+			(object RoleView "inValueListLeft" @462

+			    Parent_View 	@461

+			    location   	(58, 537)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @463

+				Parent_View 	@462

+				location   	(2580, 2064)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	292

+				justify    	0

+				label      	"+inValueListLeft"

+				pctDist    	0.637134

+				height     	107

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37FCD401AC"

+			    client     	@461

+			    supplier   	@452

+			    vertices   	(list Points

+				(2685, 2140)

+				(2686, 2022))

+			    line_style 	0)

+			(object RoleView "valueExpr" @464

+			    Parent_View 	@461

+			    location   	(58, 537)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @465

+				Parent_View 	@464

+				location   	(2532, 2238)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	204

+				justify    	0

+				label      	"+valueExpr"

+				pctDist    	0.827586

+				height     	153

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37FCD401AE"

+			    client     	@461

+			    supplier   	@453

+			    vertices   	(list Points

+				(2685, 2140)

+				(2684, 2259))

+			    line_style 	0

+			    label      	(object SegLabel @466

+				Parent_View 	@464

+				location   	(2636, 2190)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.420690

+				height     	50

+				orientation 	1))))

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryValueExpression" @467

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(3361, 2310)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@467

+			location   	(3158, 2263)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	407

+			justify    	0

+			label      	"QueryValueExpression")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B3792520160"

+		    width      	425

+		    height     	118

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::PredicateInValueRowSelect" @468

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(3360, 1957)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@468

+			location   	(3060, 1904)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	600

+			justify    	0

+			label      	"PredicateInValueRowSelect")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B37FC0B03C0"

+		    width      	618

+		    height     	131

+		    annotation 	8)

+		(object AssociationViewNew "$UNNAMED$35" @469

+		    location   	(3360, 2136)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37FD6F00A1"

+		    roleview_list 	(list RoleViews

+			(object RoleView "inValueRowSelectLeft" @470

+			    Parent_View 	@469

+			    location   	(185, 526)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @471

+				Parent_View 	@470

+				location   	(3293, 2120)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	424

+				justify    	0

+				label      	"+inValueRowSelectLeft"

+				pctDist    	0.140351

+				height     	67

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37FD6F0259"

+			    client     	@469

+			    supplier   	@468

+			    vertices   	(list Points

+				(3360, 2136)

+				(3360, 2022))

+			    line_style 	0)

+			(object RoleView "valueExprList" @472

+			    Parent_View 	@469

+			    location   	(185, 526)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @473

+				Parent_View 	@472

+				location   	(3223, 2223)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	275

+				justify    	0

+				label      	"+valueExprList"

+				pctDist    	0.763158

+				height     	138

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37FD6F0263"

+			    client     	@469

+			    supplier   	@467

+			    vertices   	(list Points

+				(3360, 2136)

+				(3360, 2250))

+			    line_style 	0

+			    label      	(object SegLabel @474

+				Parent_View 	@472

+				location   	(3431, 2219)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1..n"

+				pctDist    	0.736842

+				height     	71

+				orientation 	0)

+			    label      	(object SegLabel @475

+				Parent_View 	@472

+				location   	(3569, 2214)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	3

+				anchor_loc 	1

+				nlines     	1

+				max_width  	162

+				justify    	0

+				label      	"{ordered}"

+				pctDist    	0.692982

+				height     	209

+				orientation 	0))))

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryExpressionRoot" @476

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(3934, 2296)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@476

+			location   	(3728, 2246)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	413

+			justify    	0

+			label      	"QueryExpressionRoot")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B37968301D1"

+		    width      	431

+		    height     	125

+		    annotation 	8)

+		(object AssociationViewNew "$UNNAMED$36" @477

+		    location   	(3650, 2127)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37FD710234"

+		    roleview_list 	(list RoleViews

+			(object RoleView "inValueRowSelectRight" @478

+			    Parent_View 	@477

+			    location   	(20, 533)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @479

+				Parent_View 	@478

+				location   	(3815, 2053)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	450

+				justify    	0

+				label      	"+inValueRowSelectRight"

+				pctDist    	-0.505387

+				height     	147

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37FD7103A7"

+			    client     	@477

+			    supplier   	@468

+			    vertices   	(list Points

+				(3650, 2127)

+				(3472, 2022))

+			    line_style 	0)

+			(object RoleView "queryExpr" @480

+			    Parent_View 	@477

+			    location   	(20, 533)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @481

+				Parent_View 	@480

+				location   	(3951, 2194)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	219

+				justify    	0

+				label      	"+queryExpr"

+				pctDist    	1.413222

+				height     	96

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37FD7103B1"

+			    client     	@477

+			    supplier   	@476

+			    vertices   	(list Points

+				(3650, 2127)

+				(3830, 2233))

+			    line_style 	0

+			    label      	(object SegLabel @482

+				Parent_View 	@480

+				location   	(3801, 2253)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.928068

+				height     	32

+				orientation 	1))))

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryExpressionRoot" @483

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2337, 2517)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@483

+			location   	(2134, 2470)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	407

+			justify    	0

+			label      	"QueryExpressionRoot")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B37968301D1"

+		    width      	425

+		    height     	119

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::PredicateInValueSelect" @484

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2048, 1957)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@484

+			location   	(1789, 1907)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	519

+			justify    	0

+			label      	"PredicateInValueSelect")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B37FBE4017F"

+		    width      	537

+		    height     	125

+		    annotation 	8)

+		(object AssociationViewNew "$UNNAMED$37" @485

+		    location   	(2336, 2205)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37FD7702A1"

+		    roleview_list 	(list RoleViews

+			(object RoleView "inValueSelectRight" @486

+			    Parent_View 	@485

+			    location   	(-51, 580)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @487

+				Parent_View 	@486

+				location   	(2272, 2090)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	372

+				justify    	0

+				label      	"+inValueSelectRight"

+				pctDist    	0.495897

+				height     	11

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37FD780090"

+			    client     	@485

+			    supplier   	@484

+			    vertices   	(list Points

+				(2336, 2205)

+				(2336, 2145)

+				(2144, 2019))

+			    line_style 	0)

+			(object RoleView "queryExpr" @488

+			    Parent_View 	@485

+			    location   	(-51, 580)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @489

+				Parent_View 	@488

+				location   	(2463, 2424)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	219

+				justify    	0

+				label      	"+queryExpr"

+				pctDist    	0.867544

+				height     	127

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37FD78009A"

+			    client     	@485

+			    supplier   	@483

+			    vertices   	(list Points

+				(2336, 2205)

+				(2336, 2457))

+			    line_style 	0

+			    label      	(object SegLabel @490

+				Parent_View 	@488

+				location   	(2292, 2428)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.883439

+				height     	45

+				orientation 	1))))

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryValueExpression" @491

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2047, 2314)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@491

+			location   	(1844, 2267)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	407

+			justify    	0

+			label      	"QueryValueExpression")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B3792520160"

+		    width      	425

+		    height     	119

+		    annotation 	8)

+		(object AssociationViewNew "$UNNAMED$38" @492

+		    location   	(2047, 2136)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37FD79036C"

+		    roleview_list 	(list RoleViews

+			(object RoleView "inValueSelectLeft" @493

+			    Parent_View 	@492

+			    location   	(88, 493)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @494

+				Parent_View 	@493

+				location   	(1897, 2068)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	347

+				justify    	0

+				label      	"+inValueSelectLeft"

+				pctDist    	0.581197

+				height     	150

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37FD7A0165"

+			    client     	@492

+			    supplier   	@484

+			    vertices   	(list Points

+				(2047, 2136)

+				(2047, 2019))

+			    line_style 	0)

+			(object RoleView "valueExpr" @495

+			    Parent_View 	@492

+			    location   	(88, 493)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @496

+				Parent_View 	@495

+				location   	(1922, 2218)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	204

+				justify    	0

+				label      	"+valueExpr"

+				pctDist    	0.694915

+				height     	125

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37FD7A016F"

+			    client     	@492

+			    supplier   	@491

+			    vertices   	(list Points

+				(2047, 2136)

+				(2047, 2254))

+			    line_style 	0

+			    label      	(object SegLabel @497

+				Parent_View 	@495

+				location   	(2086, 2227)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.775624

+				height     	39

+				orientation 	0))))

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryExpressionRoot" @498

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1485, 2514)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@498

+			location   	(1282, 2467)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	407

+			justify    	0

+			label      	"QueryExpressionRoot")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B37968301D1"

+		    width      	425

+		    height     	119

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::PredicateQuantifiedRowSelect" @499

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1341, 1977)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@499

+			location   	(966, 1905)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	750

+			justify    	0

+			label      	"PredicateQuantifiedRowSelect")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B37FBB7024D"

+		    width      	768

+		    height     	168

+		    annotation 	8)

+		(object AssociationViewNew "$UNNAMED$39" @500

+		    location   	(1459, 2219)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37FD810255"

+		    roleview_list 	(list RoleViews

+			(object RoleView "quantifiedRowSelectRight" @501

+			    Parent_View 	@500

+			    location   	(-72, 595)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @502

+				Parent_View 	@501

+				location   	(1663, 2118)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	492

+				justify    	0

+				label      	"+quantifiedRowSelectRight"

+				pctDist    	0.001482

+				height     	228

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37FD820044"

+			    client     	@500

+			    supplier   	@499

+			    vertices   	(list Points

+				(1459, 2219)

+				(1382, 2061))

+			    line_style 	0)

+			(object RoleView "queryExpr" @503

+			    Parent_View 	@500

+			    location   	(-72, 595)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @504

+				Parent_View 	@503

+				location   	(1634, 2421)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	219

+				justify    	0

+				label      	"+queryExpr"

+				pctDist    	0.863300

+				height     	149

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37FD820046"

+			    client     	@500

+			    supplier   	@498

+			    vertices   	(list Points

+				(1459, 2219)

+				(1485, 2273)

+				(1485, 2454))

+			    line_style 	0

+			    label      	(object SegLabel @505

+				Parent_View 	@503

+				location   	(1434, 2411)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.827158

+				height     	52

+				orientation 	1))))

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryValueExpression" @506

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1066, 2323)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@506

+			location   	(860, 2276)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	413

+			justify    	0

+			label      	"QueryValueExpression")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B3792520160"

+		    width      	431

+		    height     	119

+		    annotation 	8)

+		(object AssociationViewNew "$UNNAMED$40" @507

+		    location   	(1192, 2162)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37FD83038F"

+		    roleview_list 	(list RoleViews

+			(object RoleView "quantifiedRowSelectLeft" @508

+			    Parent_View 	@507

+			    location   	(111, 516)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @509

+				Parent_View 	@508

+				location   	(1140, 2109)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	460

+				justify    	0

+				label      	"+quantifiedRowSelectLeft"

+				pctDist    	0.068071

+				height     	74

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37FD840173"

+			    client     	@507

+			    supplier   	@499

+			    vertices   	(list Points

+				(1192, 2162)

+				(1271, 2061))

+			    line_style 	0)

+			(object RoleView "valueExprList" @510

+			    Parent_View 	@507

+			    location   	(111, 516)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @511

+				Parent_View 	@510

+				location   	(969, 2228)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	275

+				justify    	0

+				label      	"+valueExprList"

+				pctDist    	1.495824

+				height     	134

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37FD840175"

+			    client     	@507

+			    supplier   	@506

+			    vertices   	(list Points

+				(1192, 2162)

+				(1112, 2263))

+			    line_style 	0

+			    label      	(object SegLabel @512

+				Parent_View 	@510

+				location   	(1197, 2229)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1..n"

+				pctDist    	0.379549

+				height     	46

+				orientation 	0)

+			    label      	(object SegLabel @513

+				Parent_View 	@510

+				location   	(1328, 2233)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	3

+				anchor_loc 	1

+				nlines     	1

+				max_width  	162

+				justify    	0

+				label      	"{ordered}"

+				pctDist    	-0.246271

+				height     	150

+				orientation 	0))))

+		(object ClassView "Class" "Logical View::SQLQueryModel::PredicateBetween" @514

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1545, 1095)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@514

+			location   	(1304, 1020)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	482

+			justify    	0

+			label      	"PredicateBetween")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B37FA98004B"

+		    width      	500

+		    height     	175

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryValueExpression" @515

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1535, 1523)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@515

+			location   	(1307, 1473)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	457

+			justify    	0

+			label      	"QueryValueExpression")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B3792520160"

+		    width      	475

+		    height     	125

+		    annotation 	8)

+		(object AssociationViewNew "$UNNAMED$43" @516

+		    location   	(1317, 1326)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37FE4D00D2"

+		    roleview_list 	(list RoleViews

+			(object RoleView "betweenLeft" @517

+			    Parent_View 	@516

+			    location   	(-161, 316)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @518

+				Parent_View 	@517

+				location   	(1217, 1214)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	244

+				justify    	0

+				label      	"+betweenLeft"

+				pctDist    	1.287356

+				height     	100

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37FE4E0110"

+			    client     	@516

+			    supplier   	@514

+			    vertices   	(list Points

+				(1317, 1326)

+				(1317, 1239)

+				(1405, 1182))

+			    line_style 	0)

+			(object RoleView "leftValueExpr" @519

+			    Parent_View 	@516

+			    location   	(-161, 316)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @520

+				Parent_View 	@519

+				location   	(1225, 1426)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	277

+				justify    	0

+				label      	"+leftValueExpr"

+				pctDist    	1.666667

+				height     	92

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37FE4E011A"

+			    client     	@516

+			    supplier   	@515

+			    vertices   	(list Points

+				(1317, 1326)

+				(1317, 1386)

+				(1436, 1460))

+			    line_style 	0

+			    label      	(object SegLabel @521

+				Parent_View 	@519

+				location   	(1367, 1389)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.521983

+				height     	25

+				orientation 	0))))

+		(object AssociationViewNew "$UNNAMED$44" @522

+		    location   	(1539, 1321)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37FE530185"

+		    roleview_list 	(list RoleViews

+			(object RoleView "betweenRight1" @523

+			    Parent_View 	@522

+			    location   	(61, 311)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @524

+				Parent_View 	@523

+				location   	(1552, 1266)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	298

+				justify    	0

+				label      	"+betweenRight1"

+				pctDist    	0.397517

+				height     	12

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37FE540078"

+			    client     	@522

+			    supplier   	@514

+			    vertices   	(list Points

+				(1539, 1321)

+				(1542, 1182))

+			    line_style 	0)

+			(object RoleView "rightValueExpr1" @525

+			    Parent_View 	@522

+			    location   	(61, 311)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @526

+				Parent_View 	@525

+				location   	(1565, 1393)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	312

+				justify    	0

+				label      	"+rightValueExpr1"

+				pctDist    	0.520900

+				height     	28

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37FE540083"

+			    client     	@522

+			    supplier   	@515

+			    vertices   	(list Points

+				(1539, 1321)

+				(1536, 1460))

+			    line_style 	0

+			    label      	(object SegLabel @527

+				Parent_View 	@525

+				location   	(1509, 1437)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.836863

+				height     	28

+				orientation 	1))))

+		(object AssociationViewNew "$UNNAMED$45" @528

+		    location   	(1785, 1335)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37FE560229"

+		    roleview_list 	(list RoleViews

+			(object RoleView "betweenRight2" @529

+			    Parent_View 	@528

+			    location   	(307, 325)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @530

+				Parent_View 	@529

+				location   	(1918, 1245)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	298

+				justify    	0

+				label      	"+betweenRight2"

+				pctDist    	0.441176

+				height     	133

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37FE570068"

+			    client     	@528

+			    supplier   	@514

+			    vertices   	(list Points

+				(1785, 1335)

+				(1785, 1236)

+				(1695, 1182))

+			    line_style 	0)

+			(object RoleView "rightValueExpr2" @531

+			    Parent_View 	@528

+			    location   	(307, 325)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @532

+				Parent_View 	@531

+				location   	(1813, 1436)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	312

+				justify    	0

+				label      	"+rightValueExpr2"

+				pctDist    	1.683333

+				height     	28

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37FE570072"

+			    client     	@528

+			    supplier   	@515

+			    vertices   	(list Points

+				(1785, 1335)

+				(1785, 1395)

+				(1657, 1460))

+			    line_style 	0

+			    label      	(object SegLabel @533

+				Parent_View 	@531

+				location   	(1627, 1436)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	1.082537

+				height     	36

+				orientation 	1))))

+		(object InheritTreeView "" @534

+		    location   	(976, 1755)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@428

+		    vertices   	(list Points

+			(976, 1755)

+			(976, 1142)))

+		(object InheritView "" @535

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37FBD201F1"

+		    client     	@499

+		    supplier   	@428

+		    vertices   	(list Points

+			(1325, 1893)

+			(1325, 1755))

+		    line_style 	3

+		    origin_attachment 	(1325, 1893)

+		    terminal_attachment 	(1325, 1755)

+		    drawSupplier 	@534)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryExpressionRoot" @536

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(638, 2520)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@536

+			location   	(426, 2473)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	425

+			justify    	0

+			label      	"QueryExpressionRoot")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B37968301D1"

+		    width      	443

+		    height     	118

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::PredicateQuantifiedValueSelect" @537

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(464, 2005)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@537

+			location   	(61, 1905)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	807

+			justify    	0

+			label      	"PredicateQuantifiedValueSelect")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B37FB9C03C0"

+		    width      	825

+		    height     	225

+		    annotation 	8)

+		(object InheritView "" @538

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37FBCF0360"

+		    client     	@537

+		    supplier   	@428

+		    vertices   	(list Points

+			(451, 1892)

+			(451, 1755))

+		    line_style 	3

+		    origin_attachment 	(451, 1892)

+		    terminal_attachment 	(451, 1755)

+		    drawSupplier 	@534)

+		(object AssociationViewNew "$UNNAMED$41" @539

+		    location   	(638, 2333)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37FD8502FB"

+		    roleview_list 	(list RoleViews

+			(object RoleView "quantifiedValueSelectRight" @540

+			    Parent_View 	@539

+			    location   	(4, 715)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @541

+				Parent_View 	@540

+				location   	(794, 2152)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	518

+				justify    	0

+				label      	"+quantifiedValueSelectRight"

+				pctDist    	3.016667

+				height     	156

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37FD8600D6"

+			    client     	@539

+			    supplier   	@537

+			    vertices   	(list Points

+				(638, 2333)

+				(638, 2273)

+				(537, 2117))

+			    line_style 	0)

+			(object RoleView "queryExpr" @542

+			    Parent_View 	@539

+			    location   	(4, 715)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @543

+				Parent_View 	@542

+				location   	(770, 2443)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	219

+				justify    	0

+				label      	"+queryExpr"

+				pctDist    	0.866442

+				height     	132

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37FD8600E0"

+			    client     	@539

+			    supplier   	@536

+			    vertices   	(list Points

+				(638, 2333)

+				(638, 2460))

+			    line_style 	0

+			    label      	(object SegLabel @544

+				Parent_View 	@542

+				location   	(594, 2444)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.874494

+				height     	45

+				orientation 	1))))

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryValueExpression" @545

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(273, 2332)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@545

+			location   	(60, 2282)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	426

+			justify    	0

+			label      	"QueryValueExpression")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B3792520160"

+		    width      	444

+		    height     	125

+		    annotation 	8)

+		(object AssociationViewNew "$UNNAMED$42" @546

+		    location   	(352, 2193)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37FD87024A"

+		    roleview_list 	(list RoleViews

+			(object RoleView "quantifiedValueSelectLeft" @547

+			    Parent_View 	@546

+			    location   	(149, 553)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @548

+				Parent_View 	@547

+				location   	(245, 2143)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	480

+				justify    	0

+				label      	"+quantifiedValueSelectLeft"

+				pctDist    	-0.155475

+				height     	119

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37FD880010"

+			    client     	@546

+			    supplier   	@537

+			    vertices   	(list Points

+				(352, 2193)

+				(396, 2117))

+			    line_style 	0)

+			(object RoleView "valueExpr" @549

+			    Parent_View 	@546

+			    location   	(149, 553)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @550

+				Parent_View 	@549

+				location   	(206, 2233)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	204

+				justify    	0

+				label      	"+valueExpr"

+				pctDist    	1.228734

+				height     	108

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37FD880012"

+			    client     	@546

+			    supplier   	@545

+			    vertices   	(list Points

+				(352, 2193)

+				(307, 2269))

+			    line_style 	0

+			    label      	(object SegLabel @551

+				Parent_View 	@549

+				location   	(400, 2244)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.244295

+				height     	67

+				orientation 	0))))

+		(object ClassView "Class" "Logical View::SQLQueryModel::PredicateExists" @552

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2128, 1077)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@552

+			location   	(1928, 1024)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	400

+			justify    	0

+			label      	"PredicateExists")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B37FAA50158"

+		    width      	418

+		    height     	131

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryExpressionBody" @553

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2128, 1521)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@553

+			location   	(1859, 1471)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	538

+			justify    	0

+			label      	"QueryExpressionBody")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B37924A01CC"

+		    width      	556

+		    height     	125

+		    annotation 	8)

+		(object AssociationViewNew "$UNNAMED$67" @554

+		    location   	(2128, 1300)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B3A5AE7026B"

+		    roleview_list 	(list RoleViews

+			(object RoleView "predicateExists" @555

+			    Parent_View 	@554

+			    location   	(111, 297)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @556

+				Parent_View 	@555

+				location   	(2302, 1212)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	305

+				justify    	0

+				label      	"+predicateExists"

+				pctDist    	0.566038

+				height     	174

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B3A5AE800C8"

+			    client     	@554

+			    supplier   	@552

+			    vertices   	(list Points

+				(2128, 1300)

+				(2128, 1142))

+			    line_style 	0)

+			(object RoleView "queryExpr" @557

+			    Parent_View 	@554

+			    location   	(111, 297)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @558

+				Parent_View 	@557

+				location   	(2278, 1417)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	219

+				justify    	0

+				label      	"+queryExpr"

+				pctDist    	0.743590

+				height     	150

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B3A5AE800D2"

+			    client     	@554

+			    supplier   	@553

+			    vertices   	(list Points

+				(2128, 1300)

+				(2128, 1458))

+			    line_style 	0

+			    label      	(object SegLabel @559

+				Parent_View 	@557

+				location   	(2084, 1411)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.708333

+				height     	45

+				orientation 	1))))

+		(object InheritTreeView "" @560

+		    location   	(1244, 875)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@427

+		    vertices   	(list Points

+			(1244, 875)

+			(1244, 741)))

+		(object InheritView "" @561

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37FAED0039"

+		    client     	@428

+		    supplier   	@427

+		    vertices   	(list Points

+			(976, 1012)

+			(976, 875))

+		    line_style 	3

+		    origin_attachment 	(976, 1012)

+		    terminal_attachment 	(976, 875)

+		    drawSupplier 	@560)

+		(object InheritView "" @562

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37FAF90376"

+		    client     	@429

+		    supplier   	@427

+		    vertices   	(list Points

+			(2629, 1007)

+			(2629, 875))

+		    line_style 	3

+		    origin_attachment 	(2629, 1007)

+		    terminal_attachment 	(2629, 875)

+		    drawSupplier 	@560)

+		(object InheritView "" @563

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37FAEB00EB"

+		    client     	@430

+		    supplier   	@427

+		    vertices   	(list Points

+			(494, 1005)

+			(494, 875))

+		    line_style 	3

+		    origin_attachment 	(494, 1005)

+		    terminal_attachment 	(494, 875)

+		    drawSupplier 	@560)

+		(object InheritView "" @564

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37FAFF02CA"

+		    client     	@444

+		    supplier   	@427

+		    vertices   	(list Points

+			(3757, 999)

+			(3757, 875))

+		    line_style 	3

+		    origin_attachment 	(3757, 999)

+		    terminal_attachment 	(3757, 875)

+		    drawSupplier 	@560)

+		(object InheritView "" @565

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37FAF0028D"

+		    client     	@514

+		    supplier   	@427

+		    vertices   	(list Points

+			(1517, 1007)

+			(1517, 875))

+		    line_style 	3

+		    origin_attachment 	(1517, 1007)

+		    terminal_attachment 	(1517, 875)

+		    drawSupplier 	@560)

+		(object InheritView "" @566

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37FAF302C3"

+		    client     	@552

+		    supplier   	@427

+		    vertices   	(list Points

+			(2104, 1012)

+			(2104, 875))

+		    line_style 	3

+		    origin_attachment 	(2104, 1012)

+		    terminal_attachment 	(2104, 875)

+		    drawSupplier 	@560)

+		(object ClassView "Class" "Logical View::SQLQueryModel::PredicateLike" @567

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(3216, 1093)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@567

+			location   	(3007, 1018)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	419

+			justify    	0

+			label      	"PredicateLike")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B37FAC702A2"

+		    width      	437

+		    height     	175

+		    annotation 	8)

+		(object InheritView "" @568

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37FAFC0095"

+		    client     	@567

+		    supplier   	@427

+		    vertices   	(list Points

+			(3204, 1006)

+			(3204, 875))

+		    line_style 	3

+		    origin_attachment 	(3204, 1006)

+		    terminal_attachment 	(3204, 875)

+		    drawSupplier 	@560)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryValueExpression" @569

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(3218, 1526)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@569

+			location   	(2987, 1473)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	463

+			justify    	0

+			label      	"QueryValueExpression")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B3792520160"

+		    width      	481

+		    height     	131

+		    annotation 	8)

+		(object AssociationViewNew "$UNNAMED$30" @570

+		    location   	(3216, 1320)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37FB5501D4"

+		    roleview_list 	(list RoleViews

+			(object RoleView "likePattern" @571

+			    Parent_View 	@570

+			    location   	(63, 323)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @572

+				Parent_View 	@571

+				location   	(2900, 1228)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	226

+				justify    	0

+				label      	"+likePattern"

+				pctDist    	0.657143

+				height     	317

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37FB550396"

+			    client     	@570

+			    supplier   	@567

+			    vertices   	(list Points

+				(3216, 1320)

+				(3216, 1180))

+			    line_style 	0)

+			(object RoleView "patternValueExpr" @573

+			    Parent_View 	@570

+			    location   	(63, 323)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @574

+				Parent_View 	@573

+				location   	(2972, 1430)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	343

+				justify    	0

+				label      	"+patternValueExpr"

+				pctDist    	0.771429

+				height     	246

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37FB550398"

+			    client     	@570

+			    supplier   	@569

+			    vertices   	(list Points

+				(3216, 1320)

+				(3217, 1460))

+			    line_style 	0

+			    label      	(object SegLabel @575

+				Parent_View 	@573

+				location   	(3245, 1393)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.521429

+				height     	28

+				orientation 	0))))

+		(object AssociationViewNew "$UNNAMED$31" @576

+		    location   	(3000, 1326)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37FB580282"

+		    roleview_list 	(list RoleViews

+			(object RoleView "likeMatching" @577

+			    Parent_View 	@576

+			    location   	(-153, 329)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @578

+				Parent_View 	@577

+				location   	(3204, 1256)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	269

+				justify    	0

+				label      	"+likeMatching"

+				pctDist    	1.276894

+				height     	130

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37FB59003F"

+			    client     	@576

+			    supplier   	@567

+			    vertices   	(list Points

+				(3000, 1326)

+				(3000, 1242)

+				(3087, 1180))

+			    line_style 	0)

+			(object RoleView "matchingValueExpr" @579

+			    Parent_View 	@576

+			    location   	(-153, 329)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @580

+				Parent_View 	@579

+				location   	(3420, 1432)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	384

+				justify    	0

+				label      	"+matchingValueExpr"

+				pctDist    	2.764772

+				height     	189

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37FB590049"

+			    client     	@576

+			    supplier   	@569

+			    vertices   	(list Points

+				(3000, 1326)

+				(3000, 1386)

+				(3115, 1460))

+			    line_style 	0

+			    label      	(object SegLabel @581

+				Parent_View 	@579

+				location   	(3103, 1398)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.783147

+				height     	46

+				orientation 	0))))

+		(object AssociationViewNew "$UNNAMED$68" @582

+		    location   	(3401, 1326)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B3A5B53039D"

+		    roleview_list 	(list RoleViews

+			(object RoleView "likeEscape" @583

+			    Parent_View 	@582

+			    location   	(248, 329)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @584

+				Parent_View 	@583

+				location   	(3480, 1242)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	230

+				justify    	0

+				label      	"+likeEscape"

+				pctDist    	0.464088

+				height     	79

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B3A5B54018C"

+			    client     	@582

+			    supplier   	@567

+			    vertices   	(list Points

+				(3401, 1326)

+				(3401, 1241)

+				(3325, 1180))

+			    line_style 	0)

+			(object RoleView "escapeValueExpr" @585

+			    Parent_View 	@582

+			    location   	(248, 329)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @586

+				Parent_View 	@585

+				location   	(3572, 1391)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	356

+				justify    	0

+				label      	"+escapeValueExpr"

+				pctDist    	0.364641

+				height     	171

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B3A5B54018E"

+			    client     	@582

+			    supplier   	@569

+			    vertices   	(list Points

+				(3401, 1326)

+				(3401, 1401)

+				(3312, 1460))

+			    line_style 	0

+			    label      	(object SegLabel @587

+				Parent_View 	@585

+				location   	(3456, 1356)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	69

+				justify    	0

+				label      	"0..1"

+				pctDist    	0.167630

+				height     	55

+				orientation 	0))))

+		(object NoteView @588

+		    location   	(1757, 1781)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@588

+			location   	(1541, 1722)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	396

+			justify    	1

+			label      	"Quantifier ALL is not allowed.")

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	456

+		    height     	131)

+		(object AttachView "" @589

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@588

+		    supplier   	@499

+		    vertices   	(list Points

+			(1617, 1846)

+			(1518, 1892))

+		    line_style 	0)

+		(object InheritTreeView "" @590

+		    location   	(2635, 1780)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@429

+		    vertices   	(list Points

+			(2635, 1780)

+			(2635, 1175)))

+		(object InheritView "" @591

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37FC31016C"

+		    client     	@468

+		    supplier   	@429

+		    vertices   	(list Points

+			(3359, 1892)

+			(3359, 1780))

+		    line_style 	3

+		    origin_attachment 	(3359, 1892)

+		    terminal_attachment 	(3359, 1780)

+		    drawSupplier 	@590)

+		(object InheritView "" @592

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37FC2D01A2"

+		    client     	@484

+		    supplier   	@429

+		    vertices   	(list Points

+			(2038, 1895)

+			(2038, 1780))

+		    line_style 	3

+		    origin_attachment 	(2038, 1895)

+		    terminal_attachment 	(2038, 1780)

+		    drawSupplier 	@590)

+		(object InheritView "" @593

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37FC2A039C"

+		    client     	@452

+		    supplier   	@429

+		    vertices   	(list Points

+			(2637, 1891)

+			(2637, 1780))

+		    line_style 	3

+		    origin_attachment 	(2637, 1891)

+		    terminal_attachment 	(2637, 1780)

+		    drawSupplier 	@590)

+		(object ClassView "Class" "Logical View::SQLQueryModel::SQLQueryObject" @594

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(3225, 168)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@594

+			location   	(3053, 62)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	344

+			justify    	0

+			label      	"SQLQueryObject")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"4046839E02AB"

+		    width      	362

+		    height     	236

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::SearchConditionCombined" @595

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2982, 568)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@595

+			location   	(2526, 471)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	913

+			justify    	0

+			label      	"SearchConditionCombined")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B37F1CF032C"

+		    width      	931

+		    height     	219

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QuerySearchCondition" @596

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2042, 165)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@596

+			location   	(1770, 80)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	545

+			justify    	0

+			label      	"QuerySearchCondition")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B378C160224"

+		    width      	563

+		    height     	194

+		    annotation 	8)

+		(object InheritTreeView "" @597

+		    location   	(2042, 372)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@596

+		    vertices   	(list Points

+			(2042, 372)

+			(2042, 262)))

+		(object InheritView "" @598

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37F1F101C3"

+		    client     	@595

+		    supplier   	@596

+		    vertices   	(list Points

+			(2830, 458)

+			(2830, 372))

+		    line_style 	3

+		    origin_attachment 	(2830, 458)

+		    terminal_attachment 	(2830, 372)

+		    drawSupplier 	@597)

+		(object AssociationViewNew "$UNNAMED$15" @599

+		    location   	(2650, 287)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37F2020023"

+		    roleview_list 	(list RoleViews

+			(object RoleView "combinedLeft" @600

+			    Parent_View 	@599

+			    location   	(1606, 34)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @601

+				Parent_View 	@600

+				location   	(2713, 417)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	284

+				justify    	0

+				label      	"+combinedLeft"

+				pctDist    	0.262193

+				height     	114

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37F203013C"

+			    client     	@599

+			    supplier   	@595

+			    vertices   	(list Points

+				(2650, 287)

+				(2816, 321)

+				(2908, 458))

+			    line_style 	0)

+			(object RoleView "leftCondition" @602

+			    Parent_View 	@599

+			    location   	(1606, 34)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @603

+				Parent_View 	@602

+				location   	(2498, 295)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	246

+				justify    	0

+				label      	"+leftCondition"

+				pctDist    	0.444038

+				height     	39

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37F2030147"

+			    client     	@599

+			    supplier   	@596

+			    vertices   	(list Points

+				(2650, 287)

+				(2323, 221))

+			    line_style 	0

+			    label      	(object SegLabel @604

+				Parent_View 	@602

+				location   	(2364, 270)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.855370

+				height     	41

+				orientation 	0))))

+		(object AssociationViewNew "$UNNAMED$16" @605

+		    location   	(2727, 265)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37F20B027E"

+		    roleview_list 	(list RoleViews

+			(object RoleView "combinedRight" @606

+			    Parent_View 	@605

+			    location   	(1683, 12)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @607

+				Parent_View 	@606

+				location   	(3163, 416)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	296

+				justify    	0

+				label      	"+combinedRight"

+				pctDist    	0.905766

+				height     	185

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37F20C0262"

+			    client     	@605

+			    supplier   	@595

+			    vertices   	(list Points

+				(2727, 265)

+				(2976, 302)

+				(2979, 458))

+			    line_style 	0)

+			(object RoleView "rightCondition" @608

+			    Parent_View 	@605

+			    location   	(1683, 12)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @609

+				Parent_View 	@608

+				location   	(2527, 202)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	285

+				justify    	0

+				label      	"+rightCondition"

+				pctDist    	0.506173

+				height     	34

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37F20C0264"

+			    client     	@605

+			    supplier   	@596

+			    vertices   	(list Points

+				(2727, 265)

+				(2323, 205))

+			    line_style 	0

+			    label      	(object SegLabel @610

+				Parent_View 	@608

+				location   	(2372, 179)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	38

+				justify    	0

+				label      	"1"

+				pctDist    	0.895062

+				height     	34

+				orientation 	1))))

+		(object InheritView "" @611

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37F1EE03E5"

+		    client     	@427

+		    supplier   	@596

+		    vertices   	(list Points

+			(1241, 452)

+			(1241, 372))

+		    line_style 	3

+		    origin_attachment 	(1241, 452)

+		    terminal_attachment 	(1241, 372)

+		    drawSupplier 	@597)

+		(object ClassView "Class" "Logical View::SQLQueryModel::SearchConditionNested" @612

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2028, 519)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@612

+			location   	(1801, 468)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	454

+			justify    	0

+			label      	"SearchConditionNested")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"404C491D033E"

+		    width      	472

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @613

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404C4949003E"

+		    client     	@612

+		    supplier   	@596

+		    vertices   	(list Points

+			(2029, 456)

+			(2029, 372))

+		    line_style 	3

+		    origin_attachment 	(2029, 456)

+		    terminal_attachment 	(2029, 372)

+		    drawSupplier 	@597)

+		(object AssociationViewNew "$UNNAMED$74" @614

+		    location   	(2165, 374)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404C4A000222"

+		    roleview_list 	(list RoleViews

+			(object RoleView "nestedCondition" @615

+			    Parent_View 	@614

+			    location   	(146, -535)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @616

+				Parent_View 	@615

+				location   	(2036, 0)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	332

+				justify    	0

+				label      	"+nestedCondition"

+				pctDist    	2.704954

+				height     	124

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"404C4A030384"

+			    client     	@614

+			    supplier   	@596

+			    vertices   	(list Points

+				(2165, 374)

+				(2207, 331)

+				(2138, 262))

+			    line_style 	0

+			    label      	(object SegLabel @617

+				Parent_View 	@615

+				location   	(2220, 289)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.510090

+				height     	40

+				orientation 	1))

+			(object RoleView "nest" @618

+			    Parent_View 	@614

+			    location   	(146, -535)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @619

+				Parent_View 	@618

+				location   	(2297, 421)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	447

+				justify    	0

+				label      	"+nest"

+				pctDist    	-0.539508

+				height     	127

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"404C4A030398"

+			    client     	@614

+			    supplier   	@612

+			    vertices   	(list Points

+				(2165, 374)

+				(2087, 455))

+			    line_style 	0)))

+		(object ClassView "Class" "Logical View::SQLQueryModel::PredicateQuantifiedType" @620

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1352, 2795)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@620

+			location   	(1075, 2686)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	554

+			justify    	0

+			label      	"PredicateQuantifiedType")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@620

+			location   	(1075, 2636)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	554

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	15329769

+		    quidu      	"3B3A0500009D"

+		    width      	572

+		    height     	342

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::PredicateComparisonOperator" @621

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(3445, 2704)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@621

+			location   	(3084, 2520)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	722

+			justify    	0

+			label      	"PredicateComparisonOperator")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@621

+			location   	(3084, 2470)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	722

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	15329769

+		    quidu      	"3B3A0A6F00D9"

+		    width      	740

+		    height     	492

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::SearchConditionCombinedOperator" @622

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2379, 2808)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@622

+			location   	(1988, 2724)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	782

+			justify    	0

+			label      	"SearchConditionCombinedOperator")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@622

+			location   	(1988, 2674)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	782

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	15329769

+		    quidu      	"3B3A0FC50214"

+		    width      	800

+		    height     	292

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Expressions::SearchCondition" @623

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1158, 168)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@623

+			location   	(993, 61)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	330

+			justify    	0

+			label      	"SearchCondition")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@623

+			location   	(993, 11)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	330

+			justify    	0

+			label      	"<<Interface>>")

+		    icon       	"Interface"

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	14597606

+		    quidu      	"3FABEC590086"

+		    width      	348

+		    height     	338

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @624

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404C48A2002A"

+		    client     	@596

+		    supplier   	@594

+		    vertices   	(list Points

+			(2323, 165)

+			(3043, 167))

+		    line_style 	0)

+		(object InheritView "" @625

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404CD97202A5"

+		    client     	@596

+		    supplier   	@623

+		    vertices   	(list Points

+			(1760, 165)

+			(1332, 167))

+		    line_style 	0)))

+	(object ClassDiagram "ValueExpression"

+	    quid       	"3B389E6B0366"

+	    title      	"ValueExpression"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	282

+	    origin_y   	1050

+	    items      	(list diagram_item_list

+		(object ClassView "Class" "Logical View::SQLQueryModel::ValueExpressionSimple" @626

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(520, 1066)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@626

+			location   	(248, 988)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	544

+			justify    	0

+			label      	"ValueExpressionSimple")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B389E9103C5"

+		    width      	562

+		    height     	181

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::ValueExpressionVariable" @627

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(878, 1759)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@627

+			location   	(593, 1712)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	570

+			justify    	0

+			label      	"ValueExpressionVariable")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B389EC5029D"

+		    width      	588

+		    height     	119

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::ValueExpressionNullValue" @628

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2834, 1027)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@628

+			location   	(2597, 980)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	475

+			justify    	0

+			label      	"ValueExpressionNullValue")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B389F460086"

+		    width      	493

+		    height     	119

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::ValueExpressionDefaultValue" @629

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(3146, 1235)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@629

+			location   	(2871, 1188)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	551

+			justify    	0

+			label      	"ValueExpressionDefaultValue")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B389F5E013E"

+		    width      	569

+		    height     	119

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::ValueExpressionCase" @630

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(3588, 1027)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@630

+			location   	(3238, 980)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	700

+			justify    	0

+			label      	"ValueExpressionCase")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B389F19026C"

+		    width      	718

+		    height     	119

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::ValueExpressionCaseElse" @631

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(4349, 1352)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@631

+			location   	(4018, 1305)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	663

+			justify    	0

+			label      	"ValueExpressionCaseElse")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B38A90D01A7"

+		    width      	681

+		    height     	119

+		    annotation 	8)

+		(object AssociationViewNew "$UNNAMED$57" @632

+		    location   	(3970, 1189)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B38A97000B9"

+		    roleview_list 	(list RoleViews

+			(object RoleView "valueExprCase" @633

+			    Parent_View 	@632

+			    location   	(-392, 58)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @634

+				Parent_View 	@633

+				location   	(3777, 1180)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	302

+				justify    	0

+				label      	"+valueExprCase"

+				pctDist    	0.699348

+				height     	69

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B38A9700362"

+			    client     	@632

+			    supplier   	@630

+			    vertices   	(list Points

+				(3970, 1189)

+				(3729, 1086))

+			    line_style 	0)

+			(object RoleView "caseElse" @635

+			    Parent_View 	@632

+			    location   	(-392, 58)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @636

+				Parent_View 	@635

+				location   	(4349, 1278)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	210

+				justify    	0

+				label      	"+caseElse"

+				pctDist    	1.448063

+				height     	66

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B38A970036C"

+			    client     	@632

+			    supplier   	@631

+			    vertices   	(list Points

+				(3970, 1189)

+				(4214, 1292))

+			    line_style 	0

+			    label      	(object SegLabel @637

+				Parent_View 	@635

+				location   	(4009, 1239)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..1"

+				pctDist    	0.202493

+				height     	32

+				orientation 	1))))

+		(object ClassView "Class" "Logical View::SQLQueryModel::ValueExpressionCaseSimple" @638

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(3965, 1744)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@638

+			location   	(3640, 1694)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	651

+			justify    	0

+			label      	"ValueExpressionCaseSimple")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B38A8EF0082"

+		    width      	669

+		    height     	125

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::ValueExpressionCaseSimpleContent" @639

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(3656, 2162)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@639

+			location   	(3271, 2112)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	770

+			justify    	0

+			label      	"ValueExpressionCaseSimpleContent")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B38A9C1019C"

+		    width      	788

+		    height     	125

+		    annotation 	8)

+		(object AssociationViewNew "$UNNAMED$58" @640

+		    location   	(3808, 1952)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B38AA3102F2"

+		    roleview_list 	(list RoleViews

+			(object RoleView "valueExprCaseSimple" @641

+			    Parent_View 	@640

+			    location   	(55, 409)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @642

+				Parent_View 	@641

+				location   	(3817, 1871)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	432

+				justify    	0

+				label      	"+valueExprCaseSimple"

+				pctDist    	0.390186

+				height     	42

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B38AA3200EA"

+			    client     	@640

+			    supplier   	@638

+			    vertices   	(list Points

+				(3808, 1952)

+				(3916, 1806))

+			    line_style 	0)

+			(object RoleView "contentList" @643

+			    Parent_View 	@640

+			    location   	(55, 409)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @644

+				Parent_View 	@643

+				location   	(3563, 2063)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	228

+				justify    	0

+				label      	"+contentList"

+				pctDist    	1.292129

+				height     	133

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B38AA3200EC"

+			    client     	@640

+			    supplier   	@639

+			    vertices   	(list Points

+				(3808, 1952)

+				(3700, 2099))

+			    line_style 	0

+			    label      	(object SegLabel @645

+				Parent_View 	@643

+				location   	(3785, 2069)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1..n"

+				pctDist    	0.595979

+				height     	51

+				orientation 	0)

+			    label      	(object SegLabel @646

+				Parent_View 	@643

+				location   	(3928, 2072)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	3

+				anchor_loc 	1

+				nlines     	1

+				max_width  	162

+				justify    	0

+				label      	"{ordered}"

+				pctDist    	0.143900

+				height     	167

+				orientation 	0))))

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryValueExpression" @647

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(4346, 2162)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@647

+			location   	(4099, 2112)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	494

+			justify    	0

+			label      	"QueryValueExpression")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B3792520160"

+		    width      	512

+		    height     	125

+		    annotation 	8)

+		(object AssociationViewNew "$UNNAMED$59" @648

+		    location   	(4347, 1755)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B38AAA4013E"

+		    roleview_list 	(list RoleViews

+			(object RoleView "valueExprCaseElse" @649

+			    Parent_View 	@648

+			    location   	(-319, 168)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @650

+				Parent_View 	@649

+				location   	(4118, 1451)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	376

+				justify    	0

+				label      	"+valueExprCaseElse"

+				pctDist    	0.885017

+				height     	231

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B38AAA50077"

+			    client     	@648

+			    supplier   	@631

+			    vertices   	(list Points

+				(4347, 1755)

+				(4348, 1411))

+			    line_style 	0)

+			(object RoleView "valueExpr" @651

+			    Parent_View 	@648

+			    location   	(-319, 168)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @652

+				Parent_View 	@651

+				location   	(4570, 2040)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	204

+				justify    	0

+				label      	"+valueExpr"

+				pctDist    	0.829861

+				height     	224

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B38AAA50081"

+			    client     	@648

+			    supplier   	@647

+			    vertices   	(list Points

+				(4347, 1755)

+				(4346, 2099))

+			    line_style 	0

+			    label      	(object SegLabel @653

+				Parent_View 	@651

+				location   	(4407, 2052)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..1"

+				pctDist    	0.867521

+				height     	61

+				orientation 	0))))

+		(object AssociationViewNew "$UNNAMED$60" @654

+		    location   	(4155, 1952)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B38AACF019A"

+		    roleview_list 	(list RoleViews

+			(object RoleView "valueExprCaseSimple" @655

+			    Parent_View 	@654

+			    location   	(-492, 352)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @656

+				Parent_View 	@655

+				location   	(4286, 1857)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	432

+				justify    	0

+				label      	"+valueExprCaseSimple"

+				pctDist    	-0.093807

+				height     	161

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B38AAD000E7"

+			    client     	@654

+			    supplier   	@638

+			    vertices   	(list Points

+				(4155, 1952)

+				(4021, 1806))

+			    line_style 	0)

+			(object RoleView "valueExpr" @657

+			    Parent_View 	@654

+			    location   	(-492, 352)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @658

+				Parent_View 	@657

+				location   	(4215, 2057)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	204

+				justify    	0

+				label      	"+valueExpr"

+				pctDist    	0.593327

+				height     	27

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B38AAD000E9"

+			    client     	@654

+			    supplier   	@647

+			    vertices   	(list Points

+				(4155, 1952)

+				(4289, 2099))

+			    line_style 	0

+			    label      	(object SegLabel @659

+				Parent_View 	@657

+				location   	(4338, 2068)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	1.054078

+				height     	58

+				orientation 	0))))

+		(object AssociationViewNew "$UNNAMED$61" @660

+		    location   	(3941, 2581)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B38AB040128"

+		    roleview_list 	(list RoleViews

+			(object RoleView "valueExprCaseSimpleContentWhen" @661

+			    Parent_View 	@660

+			    location   	(-706, 981)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @662

+				Parent_View 	@661

+				location   	(3353, 2354)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	672

+				justify    	0

+				label      	"+valueExprCaseSimpleContentWhen"

+				pctDist    	0.797823

+				height     	303

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B38AB0800CA"

+			    client     	@660

+			    supplier   	@639

+			    vertices   	(list Points

+				(3941, 2581)

+				(3655, 2581)

+				(3655, 2224))

+			    line_style 	0)

+			(object RoleView "whenValueExpr" @663

+			    Parent_View 	@660

+			    location   	(-706, 981)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @664

+				Parent_View 	@663

+				location   	(4158, 2528)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	318

+				justify    	0

+				label      	"+whenValueExpr"

+				pctDist    	0.472464

+				height     	65

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B38AB0800D4"

+			    client     	@660

+			    supplier   	@647

+			    vertices   	(list Points

+				(3941, 2581)

+				(4208, 2581)

+				(4323, 2224))

+			    line_style 	0

+			    label      	(object SegLabel @665

+				Parent_View 	@663

+				location   	(4257, 2251)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	362

+				justify    	0

+				label      	"1"

+				pctDist    	0.932027

+				height     	56

+				orientation 	0))))

+		(object AssociationViewNew "$UNNAMED$62" @666

+		    location   	(3966, 2468)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B38AB0F02BF"

+		    roleview_list 	(list RoleViews

+			(object RoleView "valueExprCaseSimpleContentResult" @667

+			    Parent_View 	@666

+			    location   	(-681, 868)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @668

+				Parent_View 	@667

+				location   	(4044, 2322)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	680

+				justify    	0

+				label      	"+valueExprCaseSimpleContentResult"

+				pctDist    	-0.412698

+				height     	146

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B38AB1201DD"

+			    client     	@666

+			    supplier   	@639

+			    vertices   	(list Points

+				(3966, 2468)

+				(3777, 2468)

+				(3680, 2224))

+			    line_style 	0)

+			(object RoleView "resultValueExpr" @669

+			    Parent_View 	@666

+			    location   	(-681, 868)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @670

+				Parent_View 	@669

+				location   	(4085, 2258)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	318

+				justify    	0

+				label      	"+resultValueExpr"

+				pctDist    	0.658897

+				height     	149

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B38AB1201DF"

+			    client     	@666

+			    supplier   	@647

+			    vertices   	(list Points

+				(3966, 2468)

+				(4111, 2468)

+				(4296, 2224))

+			    line_style 	0

+			    label      	(object SegLabel @671

+				Parent_View 	@669

+				location   	(4303, 2267)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.933558

+				height     	32

+				orientation 	1))))

+		(object ClassView "Class" "Logical View::SQLQueryModel::QuerySearchCondition" @672

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2562, 2436)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@672

+			location   	(2324, 2389)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	476

+			justify    	0

+			label      	"QuerySearchCondition")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B378C160224"

+		    width      	494

+		    height     	119

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::ValueExpressionCaseSearch" @673

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(3249, 1744)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@673

+			location   	(2946, 1697)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	607

+			justify    	0

+			label      	"ValueExpressionCaseSearch")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B38A8D00055"

+		    width      	625

+		    height     	119

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::ValueExpressionCaseSearchContent" @674

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2765, 2162)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@674

+			location   	(2377, 2115)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	776

+			justify    	0

+			label      	"ValueExpressionCaseSearchContent")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B38A9A7034D"

+		    width      	794

+		    height     	119

+		    annotation 	8)

+		(object AssociationViewNew "$UNNAMED$63" @675

+		    location   	(3717, 2678)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B38AB1701C6"

+		    roleview_list 	(list RoleViews

+			(object RoleView "valueExprCaseSearchContent" @676

+			    Parent_View 	@675

+			    location   	(-930, 1078)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @677

+				Parent_View 	@676

+				location   	(3001, 2276)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	570

+				justify    	0

+				label      	"+valueExprCaseSearchContent"

+				pctDist    	0.848515

+				height     	86

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B38AB1903B3"

+			    client     	@675

+			    supplier   	@674

+			    vertices   	(list Points

+				(3717, 2678)

+				(3280, 2678)

+				(2824, 2221))

+			    line_style 	0)

+			(object RoleView "valueExpr" @678

+			    Parent_View 	@675

+			    location   	(-930, 1078)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @679

+				Parent_View 	@678

+				location   	(4522, 2266)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	204

+				justify    	0

+				label      	"+valueExpr"

+				pctDist    	0.961219

+				height     	176

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B38AB1903B5"

+			    client     	@675

+			    supplier   	@647

+			    vertices   	(list Points

+				(3717, 2678)

+				(4346, 2678)

+				(4346, 2224))

+			    line_style 	0

+			    label      	(object SegLabel @680

+				Parent_View 	@678

+				location   	(4389, 2282)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.947247

+				height     	43

+				orientation 	1))))

+		(object AssociationViewNew "$UNNAMED$64" @681

+		    location   	(2662, 2298)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B38ABC6011D"

+		    roleview_list 	(list RoleViews

+			(object RoleView "valueExprCaseSearchContent" @682

+			    Parent_View 	@681

+			    location   	(-50, 89)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @683

+				Parent_View 	@682

+				location   	(2367, 2266)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	570

+				justify    	0

+				label      	"+valueExprCaseSearchContent"

+				pctDist    	-1.563650

+				height     	258

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B38ABC60330"

+			    client     	@681

+			    supplier   	@674

+			    vertices   	(list Points

+				(2662, 2298)

+				(2719, 2221))

+			    line_style 	0)

+			(object RoleView "searchCondition" @684

+			    Parent_View 	@681

+			    location   	(-50, 89)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @685

+				Parent_View 	@684

+				location   	(2429, 2342)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	331

+				justify    	0

+				label      	"+searchCondition"

+				pctDist    	1.814141

+				height     	162

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B38ABC60332"

+			    client     	@681

+			    supplier   	@672

+			    vertices   	(list Points

+				(2662, 2298)

+				(2604, 2376))

+			    line_style 	0

+			    label      	(object SegLabel @686

+				Parent_View 	@684

+				location   	(2675, 2348)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.355631

+				height     	41

+				orientation 	0))))

+		(object AssociationViewNew "$UNNAMED$72" @687

+		    location   	(3004, 1952)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3BDE1A410126"

+		    roleview_list 	(list RoleViews

+			(object RoleView "valueExprCaseSearch" @688

+			    Parent_View 	@687

+			    location   	(94, 399)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @689

+				Parent_View 	@688

+				location   	(3360, 1863)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	428

+				justify    	0

+				label      	"+valueExprCaseSearch"

+				pctDist    	1.433104

+				height     	165

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3BDE1A4103C5"

+			    client     	@687

+			    supplier   	@673

+			    vertices   	(list Points

+				(3004, 1952)

+				(3177, 1803))

+			    line_style 	0)

+			(object RoleView "searchContentList" @690

+			    Parent_View 	@687

+			    location   	(94, 399)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @691

+				Parent_View 	@690

+				location   	(2630, 2062)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	359

+				justify    	0

+				label      	"+searchContentList"

+				pctDist    	1.551660

+				height     	162

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3BDE1A4103D0"

+			    client     	@687

+			    supplier   	@674

+			    vertices   	(list Points

+				(3004, 1952)

+				(2830, 2102))

+			    line_style 	0

+			    label      	(object SegLabel @692

+				Parent_View 	@690

+				location   	(2967, 2063)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1..n"

+				pctDist    	0.442961

+				height     	60

+				orientation 	0)

+			    label      	(object SegLabel @693

+				Parent_View 	@690

+				location   	(3118, 2063)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	3

+				anchor_loc 	1

+				nlines     	1

+				max_width  	158

+				justify    	0

+				label      	"{ordered}"

+				pctDist    	-0.058594

+				height     	159

+				orientation 	0))))

+		(object ClassView "Class" "Logical View::SQLQueryModel::SQLQueryObject" @694

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(3562, 195)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@694

+			location   	(3390, 89)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	344

+			justify    	0

+			label      	"SQLQueryObject")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"4046839E02AB"

+		    width      	362

+		    height     	236

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Expressions::ValueExpression" @695

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(858, 208)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@695

+			location   	(682, 101)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	352

+			justify    	0

+			label      	"ValueExpression")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@695

+			location   	(682, 51)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	352

+			justify    	0

+			label      	"<<Interface>>")

+		    icon       	"Interface"

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	14597606

+		    quidu      	"3F4D273D00A9"

+		    width      	370

+		    height     	338

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::ValueExpressionLabeledDurationType" @696

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(481, 2678)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@696

+			location   	(60, 2469)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	842

+			justify    	0

+			label      	"ValueExpressionLabeledDurationType")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@696

+			location   	(60, 2419)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	842

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	15329769

+		    quidu      	"3B3A62830230"

+		    width      	860

+		    height     	542

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::ValueExpressionCombinedOperator" @697

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1508, 2717)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@697

+			location   	(1107, 2558)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	802

+			justify    	0

+			label      	"ValueExpressionCombinedOperator")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@697

+			location   	(1107, 2508)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	802

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	15329769

+		    quidu      	"3B3A5E3B0357"

+		    width      	820

+		    height     	442

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::ValueExpressionAtomic" @698

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(988, 611)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@698

+			location   	(750, 560)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	476

+			justify    	0

+			label      	"ValueExpressionAtomic")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"404CFF9003B4"

+		    width      	494

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritTreeView "" @699

+		    location   	(3584, 1595)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@630

+		    vertices   	(list Points

+			(3584, 1595)

+			(3584, 1086)))

+		(object InheritView "" @700

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B38A93003BA"

+		    client     	@638

+		    supplier   	@630

+		    vertices   	(list Points

+			(3975, 1681)

+			(3975, 1595))

+		    line_style 	3

+		    origin_attachment 	(3975, 1681)

+		    terminal_attachment 	(3975, 1595)

+		    drawSupplier 	@699)

+		(object InheritView "" @701

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B38A92E00B4"

+		    client     	@673

+		    supplier   	@630

+		    vertices   	(list Points

+			(3250, 1685)

+			(3250, 1595))

+		    line_style 	3

+		    origin_attachment 	(3250, 1685)

+		    terminal_attachment 	(3250, 1595)

+		    drawSupplier 	@699)

+		(object ClassView "Class" "Logical View::SQLQueryModel::ValueExpressionUnaryOperator" @702

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2444, 2756)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@702

+			location   	(2089, 2658)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	710

+			justify    	0

+			label      	"ValueExpressionUnaryOperator")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@702

+			location   	(2089, 2608)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	710

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	15329769

+		    quidu      	"3B3A5E0F015F"

+		    width      	728

+		    height     	320

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritTreeView "" @703

+		    location   	(3562, 416)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@694

+		    vertices   	(list Points

+			(3562, 416)

+			(3562, 313)))

+		(object InheritView "" @704

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404D086F0338"

+		    client     	@639

+		    supplier   	@694

+		    vertices   	(list Points

+			(3655, 2100)

+			(3655, 416))

+		    line_style 	3

+		    origin_attachment 	(3655, 2100)

+		    terminal_attachment 	(3655, 416)

+		    drawSupplier 	@703)

+		(object InheritView "" @705

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404D08840021"

+		    client     	@674

+		    supplier   	@694

+		    vertices   	(list Points

+			(2765, 2103)

+			(2765, 416))

+		    line_style 	3

+		    origin_attachment 	(2765, 2103)

+		    terminal_attachment 	(2765, 416)

+		    drawSupplier 	@703)

+		(object InheritView "" @706

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404D07300361"

+		    client     	@631

+		    supplier   	@694

+		    vertices   	(list Points

+			(4323, 1293)

+			(4323, 416))

+		    line_style 	3

+		    origin_attachment 	(4323, 1293)

+		    terminal_attachment 	(4323, 416)

+		    drawSupplier 	@703)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryExpressionRoot" @707

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1700, 2111)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@707

+			location   	(1485, 2059)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	430

+			justify    	0

+			label      	"QueryExpressionRoot")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B37968301D1"

+		    width      	448

+		    height     	128

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::ValueExpressionScalarSelect" @708

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1700, 1759)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@708

+			location   	(1384, 1712)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	632

+			justify    	0

+			label      	"ValueExpressionScalarSelect")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B389EE1015D"

+		    width      	650

+		    height     	119

+		    annotation 	8)

+		(object AssociationViewNew "$UNNAMED$84" @709

+		    location   	(1700, 1932)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"41990B8303E2"

+		    roleview_list 	(list RoleViews

+			(object RoleView "queryExpr" @710

+			    Parent_View 	@709

+			    location   	(-3, 177)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @711

+				Parent_View 	@710

+				location   	(1557, 2008)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	219

+				justify    	0

+				label      	"+queryExpr"

+				pctDist    	0.678571

+				height     	144

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"41990B85012A"

+			    client     	@709

+			    supplier   	@707

+			    vertices   	(list Points

+				(1700, 1932)

+				(1700, 2046))

+			    line_style 	0

+			    label      	(object SegLabel @712

+				Parent_View 	@710

+				location   	(1754, 2021)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.782609

+				height     	54

+				orientation 	0))

+			(object RoleView "valExprScalarSelect" @713

+			    Parent_View 	@709

+			    location   	(-3, 177)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @714

+				Parent_View 	@713

+				location   	(1450, 1856)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	453

+				justify    	0

+				label      	"+valExprScalarSelect"

+				pctDist    	0.675676

+				height     	251

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"41990B85012C"

+			    client     	@709

+			    supplier   	@708

+			    vertices   	(list Points

+				(1700, 1932)

+				(1700, 1818))

+			    line_style 	0)))

+		(object ClassView "Class" "Logical View::SQLQueryModel::TableExpression" @715

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1300, 1404)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@715

+			location   	(1134, 1353)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	332

+			justify    	0

+			label      	"TableExpression")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B37EE600288"

+		    width      	350

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::ValueExpressionColumn" @716

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1300, 1040)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@716

+			location   	(984, 993)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	632

+			justify    	0

+			label      	"ValueExpressionColumn")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B389EAF00BB"

+		    width      	650

+		    height     	118

+		    annotation 	8)

+		(object AssociationViewNew "$UNNAMED$93" @717

+		    location   	(1300, 1219)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"421269CE0197"

+		    roleview_list 	(list RoleViews

+			(object RoleView "tableExpr" @718

+			    Parent_View 	@717

+			    location   	(0, 179)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @719

+				Parent_View 	@718

+				location   	(1170, 1304)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	204

+				justify    	0

+				label      	"+tableExpr"

+				pctDist    	0.702479

+				height     	131

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"421269D003C2"

+			    client     	@717

+			    supplier   	@715

+			    vertices   	(list Points

+				(1300, 1219)

+				(1300, 1340))

+			    line_style 	0

+			    label      	(object SegLabel @720

+				Parent_View 	@718

+				location   	(1342, 1301)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.685950

+				height     	42

+				orientation 	0))

+			(object RoleView "valueExprColumns" @721

+			    Parent_View 	@717

+			    location   	(0, 179)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @722

+				Parent_View 	@721

+				location   	(1102, 1150)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	374

+				justify    	0

+				label      	"+valueExprColumns"

+				pctDist    	0.583333

+				height     	199

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"421269D003CC"

+			    client     	@717

+			    supplier   	@716

+			    vertices   	(list Points

+				(1300, 1219)

+				(1300, 1099))

+			    line_style 	0

+			    label      	(object SegLabel @723

+				Parent_View 	@721

+				location   	(1365, 1137)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.691667

+				height     	65

+				orientation 	1))))

+		(object InheritTreeView "" @724

+		    location   	(988, 778)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@698

+		    vertices   	(list Points

+			(988, 778)

+			(988, 674)))

+		(object InheritView "" @725

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404D00350311"

+		    client     	@627

+		    supplier   	@698

+		    vertices   	(list Points

+			(881, 1700)

+			(881, 778))

+		    line_style 	3

+		    origin_attachment 	(881, 1700)

+		    terminal_attachment 	(881, 778)

+		    drawSupplier 	@724)

+		(object InheritView "" @726

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404D00650216"

+		    client     	@628

+		    supplier   	@698

+		    vertices   	(list Points

+			(2828, 967)

+			(2828, 778))

+		    line_style 	3

+		    origin_attachment 	(2828, 967)

+		    terminal_attachment 	(2828, 778)

+		    drawSupplier 	@724)

+		(object InheritView "" @727

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404D007200FC"

+		    client     	@629

+		    supplier   	@698

+		    vertices   	(list Points

+			(3154, 1176)

+			(3154, 778))

+		    line_style 	3

+		    origin_attachment 	(3154, 1176)

+		    terminal_attachment 	(3154, 778)

+		    drawSupplier 	@724)

+		(object InheritView "" @728

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404D0086030E"

+		    client     	@630

+		    supplier   	@698

+		    vertices   	(list Points

+			(3592, 968)

+			(3592, 778))

+		    line_style 	3

+		    origin_attachment 	(3592, 968)

+		    terminal_attachment 	(3592, 778)

+		    drawSupplier 	@724)

+		(object InheritView "" @729

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404D00100110"

+		    client     	@626

+		    supplier   	@698

+		    vertices   	(list Points

+			(510, 976)

+			(510, 778))

+		    line_style 	3

+		    origin_attachment 	(510, 976)

+		    terminal_attachment 	(510, 778)

+		    drawSupplier 	@724)

+		(object InheritView "" @730

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404D0046023A"

+		    client     	@708

+		    supplier   	@698

+		    vertices   	(list Points

+			(1694, 1700)

+			(1694, 778))

+		    line_style 	3

+		    origin_attachment 	(1694, 1700)

+		    terminal_attachment 	(1694, 778)

+		    drawSupplier 	@724)

+		(object InheritView "" @731

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404D003D00C4"

+		    client     	@716

+		    supplier   	@698

+		    vertices   	(list Points

+			(1294, 980)

+			(1294, 778))

+		    line_style 	3

+		    origin_attachment 	(1294, 980)

+		    terminal_attachment 	(1294, 778)

+		    drawSupplier 	@724)

+		(object ClassView "Class" "Logical View::SQLModel::Routines::Function" @732

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2106, 1534)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@732

+			location   	(1994, 1459)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	224

+			justify    	0

+			label      	"Function")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	12187127

+		    quidu      	"3F3D3B50012C"

+		    width      	242

+		    height     	174

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::ValueExpressionCast" @733

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2493, 1748)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@733

+			location   	(2258, 1698)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	470

+			justify    	0

+			label      	"ValueExpressionCast")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B389F33029B"

+		    width      	488

+		    height     	125

+		    annotation 	8)

+		(object InheritView "" @734

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404D005E0021"

+		    client     	@733

+		    supplier   	@698

+		    vertices   	(list Points

+			(2494, 1686)

+			(2494, 778))

+		    line_style 	3

+		    origin_attachment 	(2494, 1686)

+		    terminal_attachment 	(2494, 778)

+		    drawSupplier 	@724)

+		(object ClassView "Class" "Logical View::SQLQueryModel::ValueExpressionCombined" @735

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(3205, 605)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@735

+			location   	(2821, 533)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	769

+			justify    	0

+			label      	"ValueExpressionCombined")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B389F8603D1"

+		    width      	787

+		    height     	169

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::ValueExpressionLabeledDuration" @736

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(650, 2106)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@736

+			location   	(53, 2031)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	1194

+			justify    	0

+			label      	"ValueExpressionLabeledDuration")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B389EF70385"

+		    width      	1212

+		    height     	175

+		    annotation 	8)

+		(object InheritView "" @737

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404D00230320"

+		    client     	@736

+		    supplier   	@698

+		    vertices   	(list Points

+			(141, 2019)

+			(141, 778))

+		    line_style 	3

+		    origin_attachment 	(141, 2019)

+		    terminal_attachment 	(141, 778)

+		    drawSupplier 	@724)

+		(object ClassView "Class" "Logical View::SQLQueryModel::ValueExpressionNested" @738

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2223, 611)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@738

+			location   	(1991, 560)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	464

+			justify    	0

+			label      	"ValueExpressionNested")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"404CFF7601CC"

+		    width      	482

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::ValueExpressionFunction" @739

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2106, 1118)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@739

+			location   	(1796, 990)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	620

+			justify    	0

+			label      	"ValueExpressionFunction")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B389F78002D"

+		    width      	638

+		    height     	281

+		    annotation 	8)

+		(object InheritView "" @740

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404D0054037A"

+		    client     	@739

+		    supplier   	@698

+		    vertices   	(list Points

+			(2088, 977)

+			(2088, 778))

+		    line_style 	3

+		    origin_attachment 	(2088, 977)

+		    terminal_attachment 	(2088, 778)

+		    drawSupplier 	@724)

+		(object AssociationViewNew "$UNNAMED$90" @741

+		    location   	(2106, 1352)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"41FA8D26028E"

+		    roleview_list 	(list RoleViews

+			(object RoleView "function" @742

+			    Parent_View 	@741

+			    location   	(0, 234)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @743

+				Parent_View 	@742

+				location   	(1987, 1401)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	182

+				justify    	0

+				label      	"+function"

+				pctDist    	0.531915

+				height     	120

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"41FA8D2800F6"

+			    client     	@741

+			    supplier   	@732

+			    vertices   	(list Points

+				(2106, 1352)

+				(2106, 1446))

+			    line_style 	0

+			    label      	(object SegLabel @744

+				Parent_View 	@742

+				location   	(2161, 1399)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.500000

+				height     	55

+				orientation 	0))

+			(object RoleView "$UNNAMED$91" @745

+			    Parent_View 	@741

+			    location   	(0, 234)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"41FA8D28010A"

+			    client     	@741

+			    supplier   	@739

+			    vertices   	(list Points

+				(2106, 1352)

+				(2106, 1258))

+			    line_style 	0)))

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryValueExpression" @746

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2252, 201)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@746

+			location   	(1802, 95)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	900

+			justify    	0

+			label      	"QueryValueExpression")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B3792520160"

+		    width      	918

+		    height     	237

+		    annotation 	8)

+		(object InheritTreeView "" @747

+		    location   	(2222, 472)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@746

+		    vertices   	(list Points

+			(2222, 472)

+			(2222, 319)))

+		(object AssociationViewNew "$UNNAMED$46" @748

+		    location   	(2579, 949)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B38A0AF031A"

+		    roleview_list 	(list RoleViews

+			(object RoleView "valueExpr" @749

+			    Parent_View 	@748

+			    location   	(-1624, 302)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @750

+				Parent_View 	@749

+				location   	(2584, 352)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	204

+				justify    	0

+				label      	"+valueExpr"

+				pctDist    	0.773000

+				height     	103

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B38A0B00343"

+			    client     	@748

+			    supplier   	@746

+			    vertices   	(list Points

+				(2579, 949)

+				(2625, 522)

+				(2389, 319))

+			    line_style 	0

+			    label      	(object SegLabel @751

+				Parent_View 	@749

+				location   	(2388, 357)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.970496

+				height     	30

+				orientation 	0))

+			(object RoleView "valueExprCast" @752

+			    Parent_View 	@748

+			    location   	(-1624, 302)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @753

+				Parent_View 	@752

+				location   	(2681, 1651)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	290

+				justify    	0

+				label      	"+valueExprCast"

+				pctDist    	0.927779

+				height     	177

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B38A0B00375"

+			    client     	@748

+			    supplier   	@733

+			    vertices   	(list Points

+				(2579, 949)

+				(2499, 1685))

+			    line_style 	0)))

+		(object InheritView "" @754

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B38A03D0153"

+		    client     	@735

+		    supplier   	@746

+		    vertices   	(list Points

+			(3206, 521)

+			(3206, 472))

+		    line_style 	3

+		    origin_attachment 	(3206, 521)

+		    terminal_attachment 	(3206, 472)

+		    drawSupplier 	@747)

+		(object AssociationViewNew "$UNNAMED$49" @755

+		    location   	(3063, 326)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B38A25500FA"

+		    roleview_list 	(list RoleViews

+			(object RoleView "valueExprCombinedRight" @756

+			    Parent_View 	@755

+			    location   	(1541, 101)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @757

+				Parent_View 	@756

+				location   	(2922, 500)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	482

+				justify    	0

+				label      	"+valueExprCombinedRight"

+				pctDist    	-0.589562

+				height     	194

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B38A25C01FE"

+			    client     	@755

+			    supplier   	@735

+			    vertices   	(list Points

+				(3063, 326)

+				(3250, 356)

+				(3250, 450)

+				(3228, 520))

+			    line_style 	0)

+			(object RoleView "rightValueExpr" @758

+			    Parent_View 	@755

+			    location   	(1541, 101)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @759

+				Parent_View 	@758

+				location   	(2964, 244)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	293

+				justify    	0

+				label      	"+rightValueExpr"

+				pctDist    	0.310079

+				height     	66

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B38A25C0208"

+			    client     	@755

+			    supplier   	@746

+			    vertices   	(list Points

+				(3063, 326)

+				(2711, 270))

+			    line_style 	0

+			    label      	(object SegLabel @760

+				Parent_View 	@758

+				location   	(2730, 246)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.958753

+				height     	27

+				orientation 	1))))

+		(object AssociationViewNew "$UNNAMED$48" @761

+		    location   	(3108, 302)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B38A1D3032E"

+		    roleview_list 	(list RoleViews

+			(object RoleView "leftValueExpr" @762

+			    Parent_View 	@761

+			    location   	(-3433, -370)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @763

+				Parent_View 	@762

+				location   	(2902, 356)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	277

+				justify    	0

+				label      	"+leftValueExpr"

+				pctDist    	0.498029

+				height     	79

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B38A1DD011F"

+			    client     	@761

+			    supplier   	@746

+			    vertices   	(list Points

+				(3108, 302)

+				(2711, 254))

+			    line_style 	0

+			    label      	(object SegLabel @764

+				Parent_View 	@762

+				location   	(2728, 322)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.941719

+				height     	65

+				orientation 	0))

+			(object RoleView "valueExprCombinedLeft" @765

+			    Parent_View 	@761

+			    location   	(-3433, -370)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @766

+				Parent_View 	@765

+				location   	(2969, 448)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	450

+				justify    	0

+				label      	"+valueExprCombinedLeft"

+				pctDist    	-0.623914

+				height     	161

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B38A1DD015B"

+			    client     	@761

+			    supplier   	@735

+			    vertices   	(list Points

+				(3108, 302)

+				(3300, 325)

+				(3300, 450)

+				(3255, 520))

+			    line_style 	0)))

+		(object AssociationViewNew "$UNNAMED$70" @767

+		    location   	(136, 608)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B3A684C0244"

+		    roleview_list 	(list RoleViews

+			(object RoleView "valueExpr" @768

+			    Parent_View 	@767

+			    location   	(-648, -1579)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @769

+				Parent_View 	@768

+				location   	(1635, 269)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	204

+				justify    	0

+				label      	"+valueExpr"

+				pctDist    	0.910156

+				height     	50

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B3A684F0176"

+			    client     	@767

+			    supplier   	@746

+			    vertices   	(list Points

+				(136, 608)

+				(1792, 288))

+			    line_style 	0

+			    label      	(object SegLabel @770

+				Parent_View 	@768

+				location   	(1762, 264)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.984766

+				height     	31

+				orientation 	0))

+			(object RoleView "valueExprLabeledDuration" @771

+			    Parent_View 	@767

+			    location   	(-648, -1579)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @772

+				Parent_View 	@771

+				location   	(298, 1964)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	490

+				justify    	0

+				label      	"+valueExprLabeledDuration"

+				pctDist    	0.866891

+				height     	131

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B3A684F01D0"

+			    client     	@767

+			    supplier   	@736

+			    vertices   	(list Points

+				(136, 608)

+				(63, 622)

+				(63, 1575)

+				(552, 2018))

+			    line_style 	0)))

+		(object InheritView "" @773

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404CDEDD0137"

+		    client     	@746

+		    supplier   	@694

+		    vertices   	(list Points

+			(2711, 198)

+			(3380, 195))

+		    line_style 	0)

+		(object InheritView "" @774

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404CDF0500DA"

+		    client     	@746

+		    supplier   	@695

+		    vertices   	(list Points

+			(1792, 202)

+			(1043, 206))

+		    line_style 	0)

+		(object InheritView "" @775

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404D00B20108"

+		    client     	@698

+		    supplier   	@746

+		    vertices   	(list Points

+			(987, 548)

+			(987, 472))

+		    line_style 	3

+		    origin_attachment 	(987, 548)

+		    terminal_attachment 	(987, 472)

+		    drawSupplier 	@747)

+		(object InheritView "" @776

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404D00AA0067"

+		    client     	@738

+		    supplier   	@746

+		    vertices   	(list Points

+			(2222, 548)

+			(2222, 472))

+		    line_style 	3

+		    origin_attachment 	(2222, 548)

+		    terminal_attachment 	(2222, 472)

+		    drawSupplier 	@747)

+		(object AssociationViewNew "$UNNAMED$75" @777

+		    location   	(2342, 383)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404D1D93022C"

+		    roleview_list 	(list RoleViews

+			(object RoleView "nestedValueExpr" @778

+			    Parent_View 	@777

+			    location   	(121, -223)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @779

+				Parent_View 	@778

+				location   	(2413, 428)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	346

+				justify    	0

+				label      	"+nestedValueExpr"

+				pctDist    	-1.025000

+				height     	44

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"404D1D9602EE"

+			    client     	@777

+			    supplier   	@746

+			    vertices   	(list Points

+				(2342, 383)

+				(2310, 319))

+			    line_style 	0

+			    label      	(object SegLabel @780

+				Parent_View 	@778

+				location   	(2296, 354)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.656250

+				height     	29

+				orientation 	0))

+			(object RoleView "nest" @781

+			    Parent_View 	@777

+			    location   	(121, -223)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @782

+				Parent_View 	@781

+				location   	(2392, 517)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	343

+				justify    	0

+				label      	"+nest"

+				pctDist    	0.514169

+				height     	70

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"404D1D960316"

+			    client     	@777

+			    supplier   	@738

+			    vertices   	(list Points

+				(2342, 383)

+				(2369, 437)

+				(2274, 547))

+			    line_style 	0)))

+		(object AssociationViewNew "$UNNAMED$47" @783

+		    location   	(1897, 616)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B38A10F0282"

+		    roleview_list 	(list RoleViews

+			(object RoleView "parameterList" @784

+			    Parent_View 	@783

+			    location   	(-4012, -49)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @785

+				Parent_View 	@784

+				location   	(1868, 396)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	279

+				justify    	0

+				label      	"+parameterList"

+				pctDist    	0.398471

+				height     	120

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B38A11800D6"

+			    client     	@783

+			    supplier   	@746

+			    vertices   	(list Points

+				(1897, 616)

+				(1897, 531)

+				(2121, 319))

+			    line_style 	0

+			    label      	(object SegLabel @786

+				Parent_View 	@784

+				location   	(2039, 391)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.723590

+				height     	6

+				orientation 	0)

+			    label      	(object SegLabel @787

+				Parent_View 	@784

+				location   	(2172, 399)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	3

+				anchor_loc 	1

+				nlines     	1

+				max_width  	162

+				justify    	0

+				label      	"{ordered}"

+				pctDist    	0.959727

+				height     	93

+				orientation 	1))

+			(object RoleView "valueExprFunction" @788

+			    Parent_View 	@783

+			    location   	(-4012, -49)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @789

+				Parent_View 	@788

+				location   	(2184, 933)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	358

+				justify    	0

+				label      	"+valueExprFunction"

+				pctDist    	1.656004

+				height     	178

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B38A1180108"

+			    client     	@783

+			    supplier   	@739

+			    vertices   	(list Points

+				(1897, 616)

+				(1897, 869)

+				(1988, 977))

+			    line_style 	0)))

+		(object ClassView "Class" "Logical View::SQLQueryModel::ValueExpressionRow" @790

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1599, 611)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@790

+			location   	(1382, 560)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	434

+			justify    	0

+			label      	"ValueExpressionRow")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"486BD0B001FE"

+		    width      	452

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @791

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"486BD0EC01DE"

+		    client     	@790

+		    supplier   	@746

+		    vertices   	(list Points

+			(1600, 548)

+			(1600, 472))

+		    line_style 	3

+		    origin_attachment 	(1600, 548)

+		    terminal_attachment 	(1600, 472)

+		    drawSupplier 	@747)

+		(object AssociationViewNew "$UNNAMED$99" @792

+		    location   	(1878, 433)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"486BD3F20001"

+		    roleview_list 	(list RoleViews

+			(object RoleView "valueExprList" @793

+			    Parent_View 	@792

+			    location   	(279, -178)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @794

+				Parent_View 	@793

+				location   	(1799, 349)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	275

+				justify    	0

+				label      	"+valueExprList"

+				pctDist    	-0.113487

+				height     	115

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"486BD3F300A3"

+			    client     	@792

+			    supplier   	@746

+			    vertices   	(list Points

+				(1878, 433)

+				(2060, 319))

+			    line_style 	0

+			    label      	(object SegLabel @795

+				Parent_View 	@793

+				location   	(1981, 352)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.609150

+				height     	15

+				orientation 	0)

+			    label      	(object SegLabel @796

+				Parent_View 	@793

+				location   	(2107, 351)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	3

+				anchor_loc 	1

+				nlines     	1

+				max_width  	158

+				justify    	0

+				label      	"{ordered}"

+				pctDist    	1.112793

+				height     	52

+				orientation 	1))

+			(object RoleView "valueExprRow" @797

+			    Parent_View 	@792

+			    location   	(279, -178)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @798

+				Parent_View 	@797

+				location   	(1531, 516)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	289

+				justify    	0

+				label      	"+valueExprRow"

+				pctDist    	1.579785

+				height     	116

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"486BD3F300D5"

+			    client     	@792

+			    supplier   	@790

+			    vertices   	(list Points

+				(1878, 433)

+				(1696, 547))

+			    line_style 	0

+			    label      	(object SegLabel @799

+				Parent_View 	@797

+				location   	(1704, 504)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.870287

+				height     	34

+				orientation 	1))))))

+	(object ClassDiagram "GroupingSpecification"

+	    quid       	"3B38A4B001BF"

+	    title      	"GroupingSpecification"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	0

+	    origin_y   	0

+	    items      	(list diagram_item_list

+		(object ClassView "Class" "Logical View::SQLQueryModel::GroupingSpecification" @800

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1166, 100)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@800

+			location   	(910, 53)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	513

+			justify    	0

+			label      	"GroupingSpecification")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B37F63D0369"

+		    width      	531

+		    height     	118

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::GroupingSets" @801

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1718, 433)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@801

+			location   	(1518, 383)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	401

+			justify    	0

+			label      	"GroupingSets")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B38A4DC01A4"

+		    width      	419

+		    height     	125

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::GroupingSetsElement" @802

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1718, 750)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@802

+			location   	(1465, 700)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	507

+			justify    	0

+			label      	"GroupingSetsElement")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B38A510018B"

+		    width      	525

+		    height     	125

+		    annotation 	8)

+		(object AssociationViewNew "$UNNAMED$50" @803

+		    location   	(1718, 591)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B38A5230323"

+		    roleview_list 	(list RoleViews

+			(object RoleView "groupingSets" @804

+			    Parent_View 	@803

+			    location   	(759, -565)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @805

+				Parent_View 	@804

+				location   	(1557, 533)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	274

+				justify    	0

+				label      	"+groupingSets"

+				pctDist    	0.619424

+				height     	162

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B38A5240112"

+			    client     	@803

+			    supplier   	@801

+			    vertices   	(list Points

+				(1718, 591)

+				(1718, 495))

+			    line_style 	0)

+			(object RoleView "groupingSetsElementList" @806

+			    Parent_View 	@803

+			    location   	(759, -565)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @807

+				Parent_View 	@806

+				location   	(1968, 651)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	480

+				justify    	0

+				label      	"+groupingSetsElementList"

+				pctDist    	0.624824

+				height     	250

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B38A524011C"

+			    client     	@803

+			    supplier   	@802

+			    vertices   	(list Points

+				(1718, 591)

+				(1718, 687))

+			    line_style 	0

+			    label      	(object SegLabel @808

+				Parent_View 	@806

+				location   	(1655, 646)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1..n"

+				pctDist    	0.575257

+				height     	64

+				orientation 	1)

+			    label      	(object SegLabel @809

+				Parent_View 	@806

+				location   	(1514, 643)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	3

+				anchor_loc 	1

+				nlines     	1

+				max_width  	175

+				justify    	0

+				label      	"{ordered}"

+				pctDist    	0.544025

+				height     	205

+				orientation 	1))))

+		(object ClassView "Class" "Logical View::SQLQueryModel::GroupingSetsElementSublist" @810

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2020, 1485)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@810

+			location   	(1717, 1435)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	607

+			justify    	0

+			label      	"GroupingSetsElementSublist")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B38A54D0297"

+		    width      	625

+		    height     	125

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::GroupingSetsElementExpression" @811

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1733, 1193)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@811

+			location   	(1377, 1143)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	713

+			justify    	0

+			label      	"GroupingSetsElementExpression")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B38A56901C5"

+		    width      	731

+		    height     	125

+		    annotation 	8)

+		(object AssociationViewNew "$UNNAMED$51" @812

+		    location   	(1876, 1338)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B38A5C0021A"

+		    roleview_list 	(list RoleViews

+			(object RoleView "groupingSetsElementExprList" @813

+			    Parent_View 	@812

+			    location   	(1445, -174)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @814

+				Parent_View 	@813

+				location   	(1518, 1292)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	561

+				justify    	0

+				label      	"+groupingSetsElementExprList"

+				pctDist    	2.436935

+				height     	222

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B38A5C20368"

+			    client     	@812

+			    supplier   	@811

+			    vertices   	(list Points

+				(1876, 1338)

+				(1794, 1255))

+			    line_style 	0

+			    label      	(object SegLabel @815

+				Parent_View 	@813

+				location   	(1910, 1294)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	68

+				justify    	0

+				label      	"1..n"

+				pctDist    	0.063469

+				height     	55

+				orientation 	1)

+			    label      	(object SegLabel @816

+				Parent_View 	@813

+				location   	(2060, 1298)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	3

+				anchor_loc 	1

+				nlines     	1

+				max_width  	162

+				justify    	0

+				label      	"{ordered}"

+				pctDist    	-0.864468

+				height     	159

+				orientation 	1))

+			(object RoleView "groupingSetsElementSublist" @817

+			    Parent_View 	@812

+			    location   	(1445, -174)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @818

+				Parent_View 	@817

+				location   	(1610, 1392)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	543

+				justify    	0

+				label      	"+groupingSetsElementSublist"

+				pctDist    	-1.253701

+				height     	228

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B38A5C20372"

+			    client     	@812

+			    supplier   	@810

+			    vertices   	(list Points

+				(1876, 1338)

+				(1959, 1422))

+			    line_style 	0)))

+		(object ClassView "Class" "Logical View::SQLQueryModel::Grouping" @819

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(629, 434)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@819

+			location   	(515, 383)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	228

+			justify    	0

+			label      	"Grouping")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B38A4EC0266"

+		    width      	246

+		    height     	126

+		    annotation 	8)

+		(object AssociationViewNew "$UNNAMED$52" @820

+		    location   	(1251, 690)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B38A62A029F"

+		    roleview_list 	(list RoleViews

+			(object RoleView "groupingSetsElementExpr" @821

+			    Parent_View 	@820

+			    location   	(-252, -119)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @822

+				Parent_View 	@821

+				location   	(1940, 1097)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	504

+				justify    	0

+				label      	"+groupingSetsElementExpr"

+				pctDist    	1.264884

+				height     	217

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B38A62C005D"

+			    client     	@820

+			    supplier   	@811

+			    vertices   	(list Points

+				(1251, 690)

+				(1672, 1130))

+			    line_style 	0)

+			(object RoleView "grouping " @823

+			    Parent_View 	@820

+			    location   	(-252, -119)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @824

+				Parent_View 	@823

+				location   	(873, 475)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	192

+				justify    	0

+				label      	"+grouping "

+				pctDist    	0.801061

+				height     	41

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B38A62C0067"

+			    client     	@820

+			    supplier   	@819

+			    vertices   	(list Points

+				(1251, 690)

+				(1007, 434)

+				(752, 434))

+			    line_style 	0

+			    label      	(object SegLabel @825

+				Parent_View 	@823

+				location   	(813, 381)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.900000

+				height     	54

+				orientation 	1))))

+		(object ClassView "Class" "Logical View::SQLQueryModel::SuperGroup" @826

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(975, 871)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@826

+			location   	(615, 820)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	720

+			justify    	0

+			label      	"SuperGroup")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B38A6570326"

+		    width      	738

+		    height     	126

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::SuperGroupElement" @827

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(962, 1192)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@827

+			location   	(730, 1136)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	464

+			justify    	0

+			label      	"SuperGroupElement")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B38A6870389"

+		    width      	482

+		    height     	137

+		    annotation 	8)

+		(object AssociationViewNew "$UNNAMED$54" @828

+		    location   	(967, 1028)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B38A731009E"

+		    roleview_list 	(list RoleViews

+			(object RoleView "superGroup" @829

+			    Parent_View 	@828

+			    location   	(-892, -487)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @830

+				Parent_View 	@829

+				location   	(818, 961)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	235

+				justify    	0

+				label      	"+superGroup"

+				pctDist    	0.659769

+				height     	153

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B38A7310289"

+			    client     	@828

+			    supplier   	@826

+			    vertices   	(list Points

+				(967, 1028)

+				(971, 934))

+			    line_style 	0)

+			(object RoleView "superGroupElementList" @831

+			    Parent_View 	@828

+			    location   	(-892, -487)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @832

+				Parent_View 	@831

+				location   	(931, 1042)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	453

+				justify    	0

+				label      	"+superGroupElementList"

+				pctDist    	0.161290

+				height     	37

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B38A7310293"

+			    client     	@828

+			    supplier   	@827

+			    vertices   	(list Points

+				(967, 1028)

+				(963, 1123))

+			    line_style 	0

+			    label      	(object SegLabel @833

+				Parent_View 	@831

+				location   	(1034, 1089)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	119

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.634409

+				height     	69

+				orientation 	0)

+			    label      	(object SegLabel @834

+				Parent_View 	@831

+				location   	(1169, 1096)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	3

+				anchor_loc 	1

+				nlines     	1

+				max_width  	162

+				justify    	0

+				label      	"{ordered}"

+				pctDist    	0.666667

+				height     	204

+				orientation 	0))))

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryValueExpression" @835

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(331, 1191)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@835

+			location   	(115, 1141)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	432

+			justify    	0

+			label      	"QueryValueExpression")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B3792520160"

+		    width      	450

+		    height     	125

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::SuperGroupElementSublist" @836

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1256, 1621)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@836

+			location   	(971, 1571)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	570

+			justify    	0

+			label      	"SuperGroupElementSublist")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B38A6A1037C"

+		    width      	588

+		    height     	125

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::GroupingExpression" @837

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(334, 871)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@837

+			location   	(106, 821)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	457

+			justify    	0

+			label      	"GroupingExpression")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B38A6670094"

+		    width      	475

+		    height     	125

+		    annotation 	8)

+		(object AssociationViewNew "$UNNAMED$55" @838

+		    location   	(332, 1030)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B38A78A002E"

+		    roleview_list 	(list RoleViews

+			(object RoleView "groupingExpr" @839

+			    Parent_View 	@838

+			    location   	(-2071, -457)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @840

+				Parent_View 	@839

+				location   	(499, 973)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	269

+				justify    	0

+				label      	"+groupingExpr"

+				pctDist    	0.616638

+				height     	166

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B38A78A01FB"

+			    client     	@838

+			    supplier   	@837

+			    vertices   	(list Points

+				(332, 1030)

+				(333, 933))

+			    line_style 	0)

+			(object RoleView "valueExpr" @841

+			    Parent_View 	@838

+			    location   	(-2071, -457)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @842

+				Parent_View 	@841

+				location   	(521, 1094)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	204

+				justify    	0

+				label      	"+valueExpr"

+				pctDist    	0.643564

+				height     	190

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B38A78A0205"

+			    client     	@838

+			    supplier   	@835

+			    vertices   	(list Points

+				(332, 1030)

+				(331, 1128))

+			    line_style 	0

+			    label      	(object SegLabel @843

+				Parent_View 	@841

+				location   	(377, 1088)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.587500

+				height     	46

+				orientation 	0))))

+		(object ClassView "Class" "Logical View::SQLQueryModel::SuperGroupElementExpression" @844

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(544, 1634)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@844

+			location   	(209, 1571)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	670

+			justify    	0

+			label      	"SuperGroupElementExpression")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B38A6AF026E"

+		    width      	688

+		    height     	150

+		    annotation 	8)

+		(object AssociationViewNew "$UNNAMED$53" @845

+		    location   	(910, 1856)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B38A70101E0"

+		    roleview_list 	(list RoleViews

+			(object RoleView "superGroupElementSublist" @846

+			    Parent_View 	@845

+			    location   	(-1578, -63)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @847

+				Parent_View 	@846

+				location   	(1565, 1729)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	515

+				justify    	0

+				label      	"+superGroupElementSublist"

+				pctDist    	0.914339

+				height     	311

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B38A7020340"

+			    client     	@845

+			    supplier   	@836

+			    vertices   	(list Points

+				(910, 1856)

+				(1253, 1856)

+				(1254, 1683))

+			    line_style 	0)

+			(object RoleView "superGroupElementExprList" @848

+			    Parent_View 	@845

+			    location   	(-1578, -63)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @849

+				Parent_View 	@848

+				location   	(301, 1747)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	538

+				justify    	0

+				label      	"+superGroupElementExprList"

+				pctDist    	0.923183

+				height     	241

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B38A7020342"

+			    client     	@845

+			    supplier   	@844

+			    vertices   	(list Points

+				(910, 1856)

+				(541, 1856)

+				(542, 1709))

+			    line_style 	0

+			    label      	(object SegLabel @850

+				Parent_View 	@848

+				location   	(619, 1747)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1..n"

+				pctDist    	0.927375

+				height     	77

+				orientation 	1)

+			    label      	(object SegLabel @851

+				Parent_View 	@848

+				location   	(756, 1751)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	3

+				anchor_loc 	1

+				nlines     	1

+				max_width  	162

+				justify    	0

+				label      	"{ordered}"

+				pctDist    	0.298450

+				height     	105

+				orientation 	1))))

+		(object AssociationViewNew "$UNNAMED$56" @852

+		    location   	(50, 1302)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B38A7A50376"

+		    roleview_list 	(list RoleViews

+			(object RoleView "groupingExpr" @853

+			    Parent_View 	@852

+			    location   	(-2438, -617)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @854

+				Parent_View 	@853

+				location   	(156, 975)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	269

+				justify    	0

+				label      	"+groupingExpr"

+				pctDist    	0.799876

+				height     	14

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B38A7A9015F"

+			    client     	@852

+			    supplier   	@837

+			    vertices   	(list Points

+				(50, 1302)

+				(50, 1066)

+				(241, 933))

+			    line_style 	0

+			    label      	(object SegLabel @855

+				Parent_View 	@853

+				location   	(195, 916)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.938279

+				height     	41

+				orientation 	0))

+			(object RoleView "superGroupElementExpr" @856

+			    Parent_View 	@852

+			    location   	(-2438, -617)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @857

+				Parent_View 	@856

+				location   	(597, 1501)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	472

+				justify    	0

+				label      	"+superGroupElementExpr"

+				pctDist    	1.494266

+				height     	141

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B38A7A90169"

+			    client     	@852

+			    supplier   	@844

+			    vertices   	(list Points

+				(50, 1302)

+				(50, 1413)

+				(378, 1558))

+			    line_style 	0)))

+		(object InheritTreeView "" @858

+		    location   	(631, 713)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@819

+		    vertices   	(list Points

+			(631, 713)

+			(631, 497)))

+		(object InheritView "" @859

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B38A679000E"

+		    client     	@837

+		    supplier   	@819

+		    vertices   	(list Points

+			(334, 809)

+			(334, 713))

+		    line_style 	3

+		    origin_attachment 	(334, 809)

+		    terminal_attachment 	(334, 713)

+		    drawSupplier 	@858)

+		(object InheritView "" @860

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B38A67601B8"

+		    client     	@826

+		    supplier   	@819

+		    vertices   	(list Points

+			(947, 808)

+			(947, 713))

+		    line_style 	3

+		    origin_attachment 	(947, 808)

+		    terminal_attachment 	(947, 713)

+		    drawSupplier 	@858)

+		(object InheritTreeView "" @861

+		    location   	(1163, 281)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@800

+		    vertices   	(list Points

+			(1163, 281)

+			(1163, 159)))

+		(object InheritView "" @862

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B38A506030D"

+		    client     	@819

+		    supplier   	@800

+		    vertices   	(list Points

+			(628, 371)

+			(628, 281))

+		    line_style 	3

+		    origin_attachment 	(628, 371)

+		    terminal_attachment 	(628, 281)

+		    drawSupplier 	@861)

+		(object InheritView "" @863

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B38A50302FF"

+		    client     	@801

+		    supplier   	@800

+		    vertices   	(list Points

+			(1723, 370)

+			(1723, 281))

+		    line_style 	3

+		    origin_attachment 	(1723, 370)

+		    terminal_attachment 	(1723, 281)

+		    drawSupplier 	@861)

+		(object ClassView "Class" "Logical View::SQLQueryModel::SuperGroupType" @864

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(962, 2119)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@864

+			location   	(765, 2010)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	394

+			justify    	0

+			label      	"SuperGroupType")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@864

+			location   	(765, 1960)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	394

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	15329769

+		    quidu      	"3B39FEAC03A1"

+		    width      	412

+		    height     	342

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritTreeView "" @865

+		    location   	(1707, 985)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@802

+		    vertices   	(list Points

+			(1707, 985)

+			(1707, 812)))

+		(object InheritView "" @866

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B38A57C03CB"

+		    client     	@810

+		    supplier   	@802

+		    vertices   	(list Points

+			(2126, 1423)

+			(2126, 985))

+		    line_style 	3

+		    origin_attachment 	(2126, 1423)

+		    terminal_attachment 	(2126, 985)

+		    drawSupplier 	@865)

+		(object InheritView "" @867

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B38A57F0040"

+		    client     	@811

+		    supplier   	@802

+		    vertices   	(list Points

+			(1504, 1131)

+			(1504, 985))

+		    line_style 	3

+		    origin_attachment 	(1504, 1131)

+		    terminal_attachment 	(1504, 985)

+		    drawSupplier 	@865)

+		(object ClassView "Class" "Logical View::SQLQueryModel::SQLQueryObject" @868

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2015, 117)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@868

+			location   	(1813, 11)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	404

+			justify    	0

+			label      	"SQLQueryObject")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"4046839E02AB"

+		    width      	422

+		    height     	236

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @869

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404CF96100D3"

+		    client     	@800

+		    supplier   	@868

+		    vertices   	(list Points

+			(1431, 105)

+			(1803, 112))

+		    line_style 	0)

+		(object InheritView "" @870

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404CF96B0377"

+		    client     	@802

+		    supplier   	@868

+		    vertices   	(list Points

+			(1787, 687)

+			(2010, 488)

+			(2012, 235))

+		    line_style 	0)

+		(object InheritView "" @871

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404CF9D0014B"

+		    client     	@827

+		    supplier   	@868

+		    vertices   	(list Points

+			(1093, 1123)

+			(1379, 978)

+			(1379, 344)

+			(1803, 191))

+		    line_style 	0)

+		(object InheritTreeView "" @872

+		    location   	(953, 1403)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@827

+		    vertices   	(list Points

+			(953, 1403)

+			(953, 1260)))

+		(object InheritView "" @873

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B38A6C40391"

+		    client     	@836

+		    supplier   	@827

+		    vertices   	(list Points

+			(1253, 1559)

+			(1253, 1403))

+		    line_style 	3

+		    origin_attachment 	(1253, 1559)

+		    terminal_attachment 	(1253, 1403)

+		    drawSupplier 	@872)

+		(object InheritView "" @874

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B38A6C70074"

+		    client     	@844

+		    supplier   	@827

+		    vertices   	(list Points

+			(538, 1559)

+			(538, 1403))

+		    line_style 	3

+		    origin_attachment 	(538, 1559)

+		    terminal_attachment 	(538, 1403)

+		    drawSupplier 	@872)))

+	(object ClassDiagram "SelectStatement"

+	    quid       	"4047870800B9"

+	    title      	"SelectStatement"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	0

+	    origin_y   	56

+	    items      	(list diagram_item_list

+		(object NoteView @875

+		    location   	(384, 357)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@875

+			location   	(93, 248)

+			fill_color 	13434879

+			nlines     	4

+			max_width  	546

+			justify    	1

+			label      	"The SQL representation of a Select statement may begin with either the SELECT or WITH keywords.")

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	606

+		    height     	231)

+		(object ClassView "Class" "Logical View::SQLQueryModel::UpdatabilityType" @876

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1971, 1440)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@876

+			location   	(1807, 1356)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	328

+			justify    	0

+			label      	"UpdatabilityType")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@876

+			location   	(1807, 1306)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	328

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	15329769

+		    quidu      	"49C6948D0242"

+		    width      	346

+		    height     	292

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::UpdateOfColumn" @877

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1962, 1110)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@877

+			location   	(1793, 1059)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	338

+			justify    	0

+			label      	"UpdateOfColumn")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"49C49424033C"

+		    width      	356

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::OrderBySpecification" @878

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1127, 1053)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@878

+			location   	(811, 1003)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	632

+			justify    	0

+			label      	"OrderBySpecification")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"404D14E20381"

+		    width      	650

+		    height     	125

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryExpressionRoot" @879

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(555, 747)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@879

+			location   	(340, 696)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	430

+			justify    	0

+			label      	"QueryExpressionRoot")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B37968301D1"

+		    width      	448

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::UpdatabilityExpression" @880

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1962, 732)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@880

+			location   	(1620, 651)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	684

+			justify    	0

+			label      	"UpdatabilityExpression")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"49C69615004E"

+		    width      	702

+		    height     	186

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$114" @881

+		    location   	(1962, 935)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"49C696C1000F"

+		    roleview_list 	(list RoleViews

+			(object RoleView "updateOfColumnList" @882

+			    Parent_View 	@881

+			    location   	(-39, 200)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @883

+				Parent_View 	@882

+				location   	(1737, 1013)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	410

+				justify    	0

+				label      	"+updateOfColumnList"

+				pctDist    	0.714149

+				height     	226

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"49C696C102AF"

+			    client     	@881

+			    supplier   	@877

+			    vertices   	(list Points

+				(1962, 935)

+				(1962, 1046))

+			    line_style 	0

+			    label      	(object SegLabel @884

+				Parent_View 	@882

+				location   	(2025, 1019)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.755042

+				height     	63

+				orientation 	0))

+			(object RoleView "updatabilityExpr" @885

+			    Parent_View 	@881

+			    location   	(-39, 200)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @886

+				Parent_View 	@885

+				location   	(1773, 867)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	325

+				justify    	0

+				label      	"+updatabilityExpr"

+				pctDist    	0.614012

+				height     	190

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"49C696C102B1"

+			    client     	@881

+			    supplier   	@880

+			    vertices   	(list Points

+				(1962, 935)

+				(1962, 825))

+			    line_style 	0)))

+		(object ClassView "Class" "Logical View::SQLQueryModel::QuerySelectStatement" @887

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    ShowOperationSignature 	TRUE

+		    location   	(1125, 357)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@887

+			location   	(856, 303)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	538

+			justify    	0

+			label      	"QuerySelectStatement")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B37856000BB"

+		    width      	556

+		    height     	132

+		    annotation 	8)

+		(object AssociationViewNew "$UNNAMED$18" @888

+		    location   	(1125, 706)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37F3F503CD"

+		    roleview_list 	(list RoleViews

+			(object RoleView "selectStatement" @889

+			    Parent_View 	@888

+			    location   	(-141, 25)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @890

+				Parent_View 	@889

+				location   	(1128, 531)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	321

+				justify    	0

+				label      	"+selectStatement"

+				pctDist    	0.618849

+				height     	3

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37F3F6018A"

+			    client     	@888

+			    supplier   	@887

+			    vertices   	(list Points

+				(1125, 706)

+				(1125, 423))

+			    line_style 	0)

+			(object RoleView "orderByClause" @891

+			    Parent_View 	@888

+			    location   	(-141, 25)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @892

+				Parent_View 	@891

+				location   	(949, 952)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	299

+				justify    	0

+				label      	"+orderByClause"

+				pctDist    	0.867411

+				height     	178

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37F3F60194"

+			    client     	@888

+			    supplier   	@878

+			    vertices   	(list Points

+				(1125, 706)

+				(1126, 990))

+			    line_style 	0

+			    label      	(object SegLabel @893

+				Parent_View 	@891

+				location   	(1180, 955)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.879046

+				height     	54

+				orientation 	0)

+			    label      	(object SegLabel @894

+				Parent_View 	@891

+				location   	(1313, 954)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	3

+				anchor_loc 	1

+				nlines     	1

+				max_width  	162

+				justify    	0

+				label      	"{ordered}"

+				pctDist    	0.878472

+				height     	187

+				orientation 	0))))

+		(object AttachView "" @895

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@875

+		    supplier   	@887

+		    vertices   	(list Points

+			(687, 357)

+			(846, 357))

+		    line_style 	0)

+		(object AssociationViewNew "$UNNAMED$17" @896

+		    location   	(835, 553)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37F3F302B2"

+		    roleview_list 	(list RoleViews

+			(object RoleView "queryExpr" @897

+			    Parent_View 	@896

+			    location   	(294, 403)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @898

+				Parent_View 	@897

+				location   	(524, 658)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	219

+				justify    	0

+				label      	"+queryExpr"

+				pctDist    	1.376779

+				height     	90

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37F3F400A3"

+			    client     	@896

+			    supplier   	@879

+			    vertices   	(list Points

+				(835, 553)

+				(645, 683))

+			    line_style 	0

+			    label      	(object SegLabel @899

+				Parent_View 	@897

+				location   	(759, 646)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.502277

+				height     	34

+				orientation 	0))

+			(object RoleView "selectStatement" @900

+			    Parent_View 	@896

+			    location   	(294, 403)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @901

+				Parent_View 	@900

+				location   	(909, 478)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	333

+				justify    	0

+				label      	"+selectStatement"

+				pctDist    	0.446674

+				height     	22

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37F3F400A1"

+			    client     	@896

+			    supplier   	@887

+			    vertices   	(list Points

+				(835, 553)

+				(1026, 423))

+			    line_style 	0)))

+		(object AssociationViewNew "$UNNAMED$115" @902

+		    location   	(1514, 530)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"49C697180167"

+		    roleview_list 	(list RoleViews

+			(object RoleView "updatabilityExpr" @903

+			    Parent_View 	@902

+			    location   	(320, 182)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @904

+				Parent_View 	@903

+				location   	(1497, 600)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	325

+				justify    	0

+				label      	"+updatabilityExpr"

+				pctDist    	0.045885

+				height     	71

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"49C69719001F"

+			    client     	@902

+			    supplier   	@880

+			    vertices   	(list Points

+				(1514, 530)

+				(1756, 638))

+			    line_style 	0

+			    label      	(object SegLabel @905

+				Parent_View 	@903

+				location   	(1806, 604)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..1"

+				pctDist    	1.127520

+				height     	53

+				orientation 	0))

+			(object RoleView "selectStatement" @906

+			    Parent_View 	@902

+			    location   	(320, 182)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @907

+				Parent_View 	@906

+				location   	(1318, 477)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	327

+				justify    	0

+				label      	"+selectStatement"

+				pctDist    	0.770557

+				height     	32

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"49C697190021"

+			    client     	@902

+			    supplier   	@887

+			    vertices   	(list Points

+				(1514, 530)

+				(1276, 423))

+			    line_style 	0)))

+		(object NoteView @908

+		    location   	(1962, 264)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@908

+			location   	(1603, 98)

+			fill_color 	13434879

+			nlines     	6

+			max_width  	683

+			justify    	1

+			label      	

+|In SQL, the UpdatabilityExpression can be one of:

+|- FOR READ ONLY

+|- FOR UPDATE

+|- FOR UPDATE OF <column name list>

+			)

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	743

+		    height     	344)

+		(object AttachView "" @909

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@908

+		    supplier   	@880

+		    vertices   	(list Points

+			(1962, 436)

+			(1962, 638))

+		    line_style 	0)))

+	(object ClassDiagram "MergeStatement"

+	    quid       	"404C2A670298"

+	    title      	"MergeStatement"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	0

+	    origin_y   	0

+	    items      	(list diagram_item_list

+		(object NoteView @910

+		    location   	(1822, 1976)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@910

+			location   	(1265, 1916)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	1078

+			justify    	1

+			label      	

+|The Update Spec is for WHEN MATCHED expressions.  

+|The Insert Spec is for WHEN NOT MATCHED expressions.

+			)

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	1138

+		    height     	132)

+		(object NoteView @911

+		    location   	(1508, 1612)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@911

+			location   	(1211, 1434)

+			fill_color 	13434879

+			nlines     	7

+			max_width  	558

+			justify    	1

+			label      	"In a Merge statement the UpdateSource of the UpdateAssignmentExpression can only be a UpdateSourceExprList.  (A query expr source is not allowed.)")

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	618

+		    height     	368)

+		(object ClassView "Class" "Logical View::SQLQueryModel::UpdateAssignmentExpression" @912

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1509, 1104)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@912

+			location   	(1222, 1053)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	574

+			justify    	0

+			label      	"UpdateAssignmentExpression")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B378BF6015F"

+		    width      	592

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AttachView "" @913

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@911

+		    supplier   	@912

+		    vertices   	(list Points

+			(1508, 1427)

+			(1508, 1167))

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLQueryModel::MergeUpdateSpecification" @914

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1509, 702)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@914

+			location   	(1258, 651)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	502

+			justify    	0

+			label      	"MergeUpdateSpecification")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4971844B003E"

+		    width      	520

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$108" @915

+		    location   	(1509, 902)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"497184D0035B"

+		    roleview_list 	(list RoleViews

+			(object RoleView "assignementExprList" @916

+			    Parent_View 	@915

+			    location   	(15, 269)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @917

+				Parent_View 	@916

+				location   	(1279, 1009)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	411

+				justify    	0

+				label      	"+assignementExprList"

+				pctDist    	0.783440

+				height     	231

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"497184D10251"

+			    client     	@915

+			    supplier   	@912

+			    vertices   	(list Points

+				(1509, 902)

+				(1509, 1040))

+			    line_style 	0

+			    label      	(object SegLabel @918

+				Parent_View 	@916

+				location   	(1578, 1009)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1..n"

+				pctDist    	0.783440

+				height     	69

+				orientation 	0)

+			    label      	(object SegLabel @919

+				Parent_View 	@916

+				location   	(1717, 1006)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	3

+				anchor_loc 	1

+				nlines     	1

+				max_width  	171

+				justify    	0

+				label      	"{ordered}"

+				pctDist    	0.764331

+				height     	208

+				orientation 	0))

+			(object RoleView "mergeUpdateSpec" @920

+			    Parent_View 	@915

+			    location   	(15, 269)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @921

+				Parent_View 	@920

+				location   	(1496, 842)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	359

+				justify    	0

+				label      	"+mergeUpdateSpec"

+				pctDist    	0.437956

+				height     	13

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"497184D10253"

+			    client     	@915

+			    supplier   	@914

+			    vertices   	(list Points

+				(1509, 902)

+				(1509, 765))

+			    line_style 	0)))

+		(object ClassView "Class" "Logical View::SQLQueryModel::ValueExpressionColumn" @922

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2133, 1107)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@922

+			location   	(1896, 1056)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	474

+			justify    	0

+			label      	"ValueExpressionColumn")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B389EAF00BB"

+		    width      	492

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::ValuesRow" @923

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2418, 909)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@923

+			location   	(2296, 858)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	244

+			justify    	0

+			label      	"ValuesRow")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B3796910130"

+		    width      	262

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::MergeInsertSpecification" @924

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2133, 702)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@924

+			location   	(1889, 651)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	488

+			justify    	0

+			label      	"MergeInsertSpecification")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"497185E60242"

+		    width      	506

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$109" @925

+		    location   	(2133, 904)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4971885002BF"

+		    roleview_list 	(list RoleViews

+			(object RoleView "targetColumnList" @926

+			    Parent_View 	@925

+			    location   	(378, 466)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @927

+				Parent_View 	@926

+				location   	(2330, 1012)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	339

+				justify    	0

+				label      	"+targetColumnList"

+				pctDist    	0.776978

+				height     	197

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"497188510196"

+			    client     	@925

+			    supplier   	@922

+			    vertices   	(list Points

+				(2133, 904)

+				(2133, 1043))

+			    line_style 	0

+			    label      	(object SegLabel @928

+				Parent_View 	@926

+				location   	(1914, 1010)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.762590

+				height     	220

+				orientation 	1)

+			    label      	(object SegLabel @929

+				Parent_View 	@926

+				location   	(2048, 1010)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	3

+				anchor_loc 	1

+				nlines     	1

+				max_width  	171

+				justify    	0

+				label      	"{ordered}"

+				pctDist    	0.762590

+				height     	86

+				orientation 	1))

+			(object RoleView "mergeInsertSpec" @930

+			    Parent_View 	@925

+			    location   	(378, 466)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @931

+				Parent_View 	@930

+				location   	(1924, 805)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	341

+				justify    	0

+				label      	"+mergeInsertSpec"

+				pctDist    	0.712230

+				height     	209

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"497188510198"

+			    client     	@925

+			    supplier   	@924

+			    vertices   	(list Points

+				(2133, 904)

+				(2133, 765))

+			    line_style 	0)))

+		(object AssociationViewNew "$UNNAMED$110" @932

+		    location   	(2274, 805)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"497188C0001F"

+		    roleview_list 	(list RoleViews

+			(object RoleView "sourceValuesRow" @933

+			    Parent_View 	@932

+			    location   	(519, 367)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @934

+				Parent_View 	@933

+				location   	(2473, 808)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	365

+				justify    	0

+				label      	"+sourceValuesRow"

+				pctDist    	2.387793

+				height     	114

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"497188C003B9"

+			    client     	@932

+			    supplier   	@923

+			    vertices   	(list Points

+				(2274, 805)

+				(2330, 845))

+			    line_style 	0

+			    label      	(object SegLabel @935

+				Parent_View 	@933

+				location   	(2243, 828)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	-0.184122

+				height     	37

+				orientation 	1))

+			(object RoleView "$UNNAMED$111" @936

+			    Parent_View 	@932

+			    location   	(519, 367)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"497188C003BB"

+			    client     	@932

+			    supplier   	@924

+			    vertices   	(list Points

+				(2274, 805)

+				(2218, 765))

+			    line_style 	0)))

+		(object NoteView @937

+		    location   	(2132, 1612)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@937

+			location   	(1866, 1443)

+			fill_color 	13434879

+			nlines     	6

+			max_width  	496

+			justify    	1

+			label      	

+|Note the MergeInsertSpec does not "own" the targetColumnList objects.  The column objects are "owned" by the targetTable table expression.

+			)

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	556

+		    height     	350)

+		(object AttachView "" @938

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@937

+		    supplier   	@922

+		    vertices   	(list Points

+			(2132, 1436)

+			(2132, 1170))

+		    line_style 	0)

+		(object NoteView @939

+		    location   	(585, 1651)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@939

+			location   	(207, 1520)

+			fill_color 	13434879

+			nlines     	5

+			max_width  	721

+			justify    	1

+			label      	"Note: the clauses of the Merge statement are modelled as separate objects (such as MergeTargetTable) in order to make it easier to override or extend parts of the statement.")

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	781

+		    height     	275)

+		(object NoteView @940

+		    location   	(2392, 429)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@940

+			location   	(2192, 301)

+			fill_color 	13434879

+			nlines     	5

+			max_width  	365

+			justify    	1

+			label      	"The operation spec list can contain at most one update spec and one insert spec,")

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	425

+		    height     	269)

+		(object ClassView "Class" "Logical View::SQLQueryModel::TableReference" @941

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(432, 990)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@941

+			location   	(266, 939)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	332

+			justify    	0

+			label      	"TableReference")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B37EE200178"

+		    width      	350

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QuerySearchCondition" @942

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(843, 1299)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@942

+			location   	(571, 1218)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	544

+			justify    	0

+			label      	"QuerySearchCondition")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B378C160224"

+		    width      	562

+		    height     	186

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::MergeSourceTable" @943

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(819, 654)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@943

+			location   	(629, 603)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	380

+			justify    	0

+			label      	"MergeSourceTable")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"49717F4B0271"

+		    width      	398

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$105" @944

+		    location   	(625, 821)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"49717FDB008C"

+		    roleview_list 	(list RoleViews

+			(object RoleView "tableRef" @945

+			    Parent_View 	@944

+			    location   	(-281, 179)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @946

+				Parent_View 	@945

+				location   	(383, 895)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	244

+				justify    	0

+				label      	"+tableRef"

+				pctDist    	1.452754

+				height     	104

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"49717FDC0148"

+			    client     	@944

+			    supplier   	@941

+			    vertices   	(list Points

+				(625, 821)

+				(503, 926))

+			    line_style 	0

+			    label      	(object SegLabel @947

+				Parent_View 	@945

+				location   	(607, 900)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.412823

+				height     	48

+				orientation 	0))

+			(object RoleView "mergeSourceTable" @948

+			    Parent_View 	@944

+			    location   	(-281, 179)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @949

+				Parent_View 	@948

+				location   	(472, 782)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	371

+				justify    	0

+				label      	"+mergeSourceTable"

+				pctDist    	-0.578416

+				height     	131

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"49717FDC014A"

+			    client     	@944

+			    supplier   	@943

+			    vertices   	(list Points

+				(625, 821)

+				(744, 717))

+			    line_style 	0)))

+		(object ClassView "Class" "Logical View::SQLQueryModel::MergeOnCondition" @950

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1041, 897)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@950

+			location   	(852, 846)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	378

+			justify    	0

+			label      	"MergeOnCondition")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4971822C0148"

+		    width      	396

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$107" @951

+		    location   	(947, 1082)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"497182B402FD"

+		    roleview_list 	(list RoleViews

+			(object RoleView "searchCondition" @952

+			    Parent_View 	@951

+			    location   	(-142, 245)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @953

+				Parent_View 	@952

+				location   	(680, 1179)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	331

+				justify    	0

+				label      	"+searchCondition"

+				pctDist    	1.489606

+				height     	199

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"497182B501A5"

+			    client     	@951

+			    supplier   	@942

+			    vertices   	(list Points

+				(947, 1082)

+				(886, 1205))

+			    line_style 	0

+			    label      	(object SegLabel @954

+				Parent_View 	@952

+				location   	(957, 1175)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.582547

+				height     	50

+				orientation 	0))

+			(object RoleView "mergeOnCondition" @955

+			    Parent_View 	@951

+			    location   	(-142, 245)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @956

+				Parent_View 	@955

+				location   	(861, 1037)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	363

+				justify    	0

+				label      	"+mergeOnCondition"

+				pctDist    	0.013170

+				height     	98

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"497182B501A7"

+			    client     	@951

+			    supplier   	@950

+			    vertices   	(list Points

+				(947, 1082)

+				(1008, 960))

+			    line_style 	0)))

+		(object ClassView "Class" "Logical View::SQLQueryModel::MergeOperationSpecification" @957

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1782, 429)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@957

+			location   	(1507, 378)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	550

+			justify    	0

+			label      	"MergeOperationSpecification")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"498A415902FD"

+		    width      	568

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritTreeView "" @958

+		    location   	(1782, 582)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@957

+		    vertices   	(list Points

+			(1782, 582)

+			(1782, 492)))

+		(object InheritView "" @959

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"498A42D90271"

+		    client     	@924

+		    supplier   	@957

+		    vertices   	(list Points

+			(2112, 639)

+			(2112, 582))

+		    line_style 	3

+		    origin_attachment 	(2112, 639)

+		    terminal_attachment 	(2112, 582)

+		    drawSupplier 	@958)

+		(object InheritView "" @960

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"498A42D50148"

+		    client     	@914

+		    supplier   	@957

+		    vertices   	(list Points

+			(1503, 639)

+			(1503, 582))

+		    line_style 	3

+		    origin_attachment 	(1503, 639)

+		    terminal_attachment 	(1503, 582)

+		    drawSupplier 	@958)

+		(object AttachView "" @961

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@940

+		    supplier   	@957

+		    vertices   	(list Points

+			(2179, 429)

+			(2066, 429))

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryMergeStatement" @962

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1338, 105)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@962

+			location   	(1119, 53)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	438

+			justify    	0

+			label      	"QueryMergeStatement")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"404C2AAB0232"

+		    width      	456

+		    height     	128

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$104" @963

+		    location   	(1077, 379)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"49717F5F009C"

+		    roleview_list 	(list RoleViews

+			(object RoleView "sourceTable" @964

+			    Parent_View 	@963

+			    location   	(-171, 211)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @965

+				Parent_View 	@964

+				location   	(749, 555)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	253

+				justify    	0

+				label      	"+sourceTable"

+				pctDist    	1.219773

+				height     	119

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"49717F5F037A"

+			    client     	@963

+			    supplier   	@943

+			    vertices   	(list Points

+				(1077, 379)

+				(878, 590))

+			    line_style 	0

+			    label      	(object SegLabel @966

+				Parent_View 	@964

+				location   	(964, 558)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.716738

+				height     	41

+				orientation 	0))

+			(object RoleView "mergeStatement" @967

+			    Parent_View 	@963

+			    location   	(-171, 211)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @968

+				Parent_View 	@967

+				location   	(1092, 260)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	335

+				justify    	0

+				label      	"+mergeStatement"

+				pctDist    	0.332900

+				height     	72

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"49717F5F038A"

+			    client     	@963

+			    supplier   	@962

+			    vertices   	(list Points

+				(1077, 379)

+				(1275, 169))

+			    line_style 	0)))

+		(object AssociationViewNew "$UNNAMED$106" @969

+		    location   	(1187, 501)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4971824601C5"

+		    roleview_list 	(list RoleViews

+			(object RoleView "onCondition" @970

+			    Parent_View 	@969

+			    location   	(-61, 333)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @971

+				Parent_View 	@970

+				location   	(934, 800)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	254

+				justify    	0

+				label      	"+onCondition"

+				pctDist    	1.042484

+				height     	133

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"497182470203"

+			    client     	@969

+			    supplier   	@950

+			    vertices   	(list Points

+				(1187, 501)

+				(1063, 833))

+			    line_style 	0

+			    label      	(object SegLabel @972

+				Parent_View 	@970

+				location   	(1121, 793)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.840393

+				height     	41

+				orientation 	0))

+			(object RoleView "mergeStatement" @973

+			    Parent_View 	@969

+			    location   	(-61, 333)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @974

+				Parent_View 	@973

+				location   	(1235, 312)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	335

+				justify    	0

+				label      	"+mergeStatement"

+				pctDist    	0.548234

+				height     	24

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"497182470205"

+			    client     	@969

+			    supplier   	@962

+			    vertices   	(list Points

+				(1187, 501)

+				(1312, 169))

+			    line_style 	0)))

+		(object AssociationViewNew "$UNNAMED$112" @975

+		    location   	(1561, 267)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"498BA98501C5"

+		    roleview_list 	(list RoleViews

+			(object RoleView "operationSpecList" @976

+			    Parent_View 	@975

+			    location   	(222, 163)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @977

+				Parent_View 	@976

+				location   	(1880, 325)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	363

+				justify    	0

+				label      	"+operationSpecList"

+				pctDist    	1.758836

+				height     	142

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"498BA98600CB"

+			    client     	@975

+			    supplier   	@957

+			    vertices   	(list Points

+				(1561, 267)

+				(1695, 365))

+			    line_style 	0

+			    label      	(object SegLabel @978

+				Parent_View 	@976

+				location   	(1580, 328)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1..n"

+				pctDist    	0.310181

+				height     	39

+				orientation 	1))

+			(object RoleView "mergeStatement" @979

+			    Parent_View 	@975

+			    location   	(222, 163)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @980

+				Parent_View 	@979

+				location   	(1430, 223)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	337

+				justify    	0

+				label      	"+mergeStatement"

+				pctDist    	0.800000

+				height     	42

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"498BA98600CD"

+			    client     	@975

+			    supplier   	@962

+			    vertices   	(list Points

+				(1561, 267)

+				(1427, 169))

+			    line_style 	0)))

+		(object ClassView "Class" "Logical View::SQLQueryModel::TableExpression" @981

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(219, 681)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@981

+			location   	(54, 630)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	330

+			justify    	0

+			label      	"TableExpression")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B37EE600288"

+		    width      	348

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::MergeTargetTable" @982

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(714, 417)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@982

+			location   	(532, 366)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	364

+			justify    	0

+			label      	"MergeTargetTable")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"49717CEF01B5"

+		    width      	382

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$100" @983

+		    location   	(1023, 261)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"49717D6901B5"

+		    roleview_list 	(list RoleViews

+			(object RoleView "targetTable" @984

+			    Parent_View 	@983

+			    location   	(-225, 93)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @985

+				Parent_View 	@984

+				location   	(671, 315)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	234

+				justify    	0

+				label      	"+targetTable"

+				pctDist    	1.644346

+				height     	110

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"49717D6A0109"

+			    client     	@983

+			    supplier   	@982

+			    vertices   	(list Points

+				(1023, 261)

+				(836, 353))

+			    line_style 	0

+			    label      	(object SegLabel @986

+				Parent_View 	@984

+				location   	(816, 324)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	1.039966

+				height     	37

+				orientation 	1))

+			(object RoleView "mergeStatement" @987

+			    Parent_View 	@983

+			    location   	(-225, 93)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @988

+				Parent_View 	@987

+				location   	(940, 200)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	335

+				justify    	0

+				label      	"+mergeStatement"

+				pctDist    	-0.235294

+				height     	93

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"49717D6A0119"

+			    client     	@983

+			    supplier   	@962

+			    vertices   	(list Points

+				(1023, 261)

+				(1206, 169))

+			    line_style 	0)))

+		(object AssociationViewNew "$UNNAMED$113" @989

+		    location   	(465, 548)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"498E982B029F"

+		    roleview_list 	(list RoleViews

+			(object RoleView "tableExpr" @990

+			    Parent_View 	@989

+			    location   	(-249, 131)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @991

+				Parent_View 	@990

+				location   	(182, 594)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	204

+				justify    	0

+				label      	"+tableExpr"

+				pctDist    	1.881088

+				height     	95

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"498E982D0119"

+			    client     	@989

+			    supplier   	@981

+			    vertices   	(list Points

+				(465, 548)

+				(335, 617))

+			    line_style 	0

+			    label      	(object SegLabel @992

+				Parent_View 	@990

+				location   	(349, 580)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.812955

+				height     	28

+				orientation 	1))

+			(object RoleView "mergeTargetTable" @993

+			    Parent_View 	@989

+			    location   	(-249, 131)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @994

+				Parent_View 	@993

+				location   	(351, 498)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	358

+				justify    	0

+				label      	"+mergeTargetTable"

+				pctDist    	-0.532749

+				height     	98

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"498E982D0128"

+			    client     	@989

+			    supplier   	@982

+			    vertices   	(list Points

+				(465, 548)

+				(590, 480))

+			    line_style 	0)))

+		(object NoteView @995

+		    location   	(220, 1299)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@995

+			location   	(36, 1164)

+			fill_color 	13434879

+			nlines     	5

+			max_width  	333

+			justify    	1

+			label      	"ISO SQL allows only a Table or View (TableInDatabase) here.")

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	393

+		    height     	282)

+		(object AttachView "" @996

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@981

+		    supplier   	@995

+		    vertices   	(list Points

+			(219, 744)

+			(219, 1157))

+		    line_style 	0)))

+	(object ClassDiagram "OrderBySpecification"

+	    quid       	"404D17B30193"

+	    title      	"OrderBySpecification"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	362

+	    origin_y   	0

+	    items      	(list diagram_item_list

+		(object ClassView "Class" "Logical View::SQLQueryModel::OrderBySpecification" @997

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1247, 260)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@997

+			location   	(819, 150)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	857

+			justify    	0

+			label      	"OrderBySpecification")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"404D14E20381"

+		    width      	875

+		    height     	244

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::OrderByOrdinal" @998

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(624, 702)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@998

+			location   	(446, 621)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	356

+			justify    	0

+			label      	"OrderByOrdinal")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"404D1615021A"

+		    width      	374

+		    height     	186

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::OrderByValueExpression" @999

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1899, 675)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@999

+			location   	(1656, 624)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	486

+			justify    	0

+			label      	"OrderByValueExpression")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B37F35A0212"

+		    width      	504

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryValueExpression" @1000

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1898, 1105)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@1000

+			location   	(1673, 1055)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	450

+			justify    	0

+			label      	"QueryValueExpression")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B3792520160"

+		    width      	468

+		    height     	125

+		    annotation 	8)

+		(object AssociationViewNew "$UNNAMED$19" @1001

+		    location   	(1898, 890)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37F3F80183"

+		    roleview_list 	(list RoleViews

+			(object RoleView "orderByValueExpr" @1002

+			    Parent_View 	@1001

+			    location   	(-99, 206)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @1003

+				Parent_View 	@1002

+				location   	(1699, 796)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	364

+				justify    	0

+				label      	"+orderByValueExpr"

+				pctDist    	0.615942

+				height     	200

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37F3F80350"

+			    client     	@1001

+			    supplier   	@999

+			    vertices   	(list Points

+				(1898, 890)

+				(1898, 738))

+			    line_style 	0)

+			(object RoleView "valueExpr" @1004

+			    Parent_View 	@1001

+			    location   	(-99, 206)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @1005

+				Parent_View 	@1004

+				location   	(1766, 1003)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	217

+				justify    	0

+				label      	"+valueExpr"

+				pctDist    	0.741007

+				height     	133

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37F3F80352"

+			    client     	@1001

+			    supplier   	@1000

+			    vertices   	(list Points

+				(1898, 890)

+				(1898, 1042))

+			    line_style 	0

+			    label      	(object SegLabel @1006

+				Parent_View 	@1004

+				location   	(1942, 1004)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.755396

+				height     	44

+				orientation 	0))))

+		(object InheritTreeView "" @1007

+		    location   	(1247, 503)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@997

+		    vertices   	(list Points

+			(1247, 503)

+			(1247, 382)))

+		(object InheritView "" @1008

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404D165700D4"

+		    client     	@999

+		    supplier   	@997

+		    vertices   	(list Points

+			(1898, 612)

+			(1898, 503))

+		    line_style 	3

+		    origin_attachment 	(1898, 612)

+		    terminal_attachment 	(1898, 503)

+		    drawSupplier 	@1007)

+		(object InheritView "" @1009

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404D164E0244"

+		    client     	@998

+		    supplier   	@997

+		    vertices   	(list Points

+			(615, 608)

+			(615, 503))

+		    line_style 	3

+		    origin_attachment 	(615, 608)

+		    terminal_attachment 	(615, 503)

+		    drawSupplier 	@1007)

+		(object ClassView "Class" "Logical View::SQLQueryModel::ResultColumn" @1010

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1248, 1104)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@1010

+			location   	(1107, 1053)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	282

+			justify    	0

+			label      	"ResultColumn")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B37F947006F"

+		    width      	300

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::OrderByResultColumn" @1011

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1248, 675)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@1011

+			location   	(1032, 624)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	432

+			justify    	0

+			label      	"OrderByResultColumn")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"41AB8B39017F"

+		    width      	450

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @1012

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"41AB8B390193"

+		    client     	@1011

+		    supplier   	@997

+		    vertices   	(list Points

+			(1246, 612)

+			(1246, 503))

+		    line_style 	3

+		    origin_attachment 	(1246, 612)

+		    terminal_attachment 	(1246, 503)

+		    drawSupplier 	@1007)

+		(object AssociationViewNew "$UNNAMED$85" @1013

+		    location   	(1248, 889)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"41AB8B960230"

+		    roleview_list 	(list RoleViews

+			(object RoleView "resultCol" @1014

+			    Parent_View 	@1013

+			    location   	(0, 213)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @1015

+				Parent_View 	@1014

+				location   	(1117, 1007)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	194

+				justify    	0

+				label      	"+resultCol"

+				pctDist    	0.788922

+				height     	132

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"41AB8B970246"

+			    client     	@1013

+			    supplier   	@1010

+			    vertices   	(list Points

+				(1248, 889)

+				(1248, 1040))

+			    line_style 	0

+			    label      	(object SegLabel @1016

+				Parent_View 	@1014

+				location   	(1302, 999)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.730857

+				height     	54

+				orientation 	0))

+			(object RoleView "orderByResultCol" @1017

+			    Parent_View 	@1013

+			    location   	(0, 213)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @1018

+				Parent_View 	@1017

+				location   	(1233, 782)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	347

+				justify    	0

+				label      	"+orderByResultCol"

+				pctDist    	0.715946

+				height     	16

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"41AB8B970248"

+			    client     	@1013

+			    supplier   	@1011

+			    vertices   	(list Points

+				(1248, 889)

+				(1248, 738))

+			    line_style 	0)))

+		(object ClassView "Class" "Logical View::SQLQueryModel::NullOrderingType" @1019

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1560, 1495)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@1019

+			location   	(1359, 1386)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	402

+			justify    	0

+			label      	"NullOrderingType")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@1019

+			location   	(1359, 1336)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	402

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	14079702

+		    quidu      	"43595F9F031B"

+		    width      	420

+		    height     	342

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::OrderingSpecType" @1020

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(871, 1495)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@1020

+			location   	(652, 1386)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	438

+			justify    	0

+			label      	"OrderingSpecType")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@1020

+			location   	(652, 1336)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	438

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	14079702

+		    quidu      	"43596054009A"

+		    width      	456

+		    height     	342

+		    annotation 	8

+		    autoResize 	TRUE)))

+	(object ClassDiagram "ResultColumnSpecification"

+	    quid       	"404E2B3003B9"

+	    title      	"ResultColumnSpecification"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	0

+	    origin_y   	850

+	    items      	(list diagram_item_list

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryResultSpecification" @1021

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1117, 380)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@1021

+			location   	(804, 330)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	626

+			justify    	0

+			label      	"QueryResultSpecification")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B37F66102FD"

+		    width      	644

+		    height     	125

+		    annotation 	8)

+		(object NoteView @1022

+		    location   	(1922, 587)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@1022

+			location   	(1741, 524)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	327

+			justify    	1

+			label      	"Represents <tablename>.*")

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	387

+		    height     	138)

+		(object ClassView "Class" "Logical View::SQLQueryModel::ResultColumn" @1023

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(756, 846)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@1023

+			location   	(556, 796)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	401

+			justify    	0

+			label      	"ResultColumn")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B37F947006F"

+		    width      	419

+		    height     	125

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryValueExpression" @1024

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(756, 1187)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@1024

+			location   	(553, 1137)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	406

+			justify    	0

+			label      	"QueryValueExpression")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B3792520160"

+		    width      	424

+		    height     	125

+		    annotation 	8)

+		(object AssociationViewNew "$UNNAMED$27" @1025

+		    location   	(756, 1016)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37F9D90051"

+		    roleview_list 	(list RoleViews

+			(object RoleView "resultColumn" @1026

+			    Parent_View 	@1025

+			    location   	(-1767, -387)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @1027

+				Parent_View 	@1026

+				location   	(915, 973)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	278

+				justify    	0

+				label      	"+resultColumn"

+				pctDist    	0.406250

+				height     	159

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37F9D901AF"

+			    client     	@1025

+			    supplier   	@1023

+			    vertices   	(list Points

+				(756, 1016)

+				(756, 908))

+			    line_style 	0)

+			(object RoleView "valueExpr" @1028

+			    Parent_View 	@1025

+			    location   	(-1767, -387)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @1029

+				Parent_View 	@1028

+				location   	(903, 1086)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	204

+				justify    	0

+				label      	"+valueExpr"

+				pctDist    	0.660971

+				height     	147

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3B37F9D901B1"

+			    client     	@1025

+			    supplier   	@1024

+			    vertices   	(list Points

+				(756, 1016)

+				(756, 1124))

+			    line_style 	0

+			    label      	(object SegLabel @1030

+				Parent_View 	@1028

+				location   	(724, 1066)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.469455

+				height     	33

+				orientation 	1))))

+		(object ClassView "Class" "Logical View::SQLQueryModel::SQLQueryObject" @1031

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(351, 377)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@1031

+			location   	(149, 271)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	404

+			justify    	0

+			label      	"SQLQueryObject")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"4046839E02AB"

+		    width      	422

+		    height     	236

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @1032

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404E2B7E0181"

+		    client     	@1021

+		    supplier   	@1031

+		    vertices   	(list Points

+			(794, 378)

+			(562, 377))

+		    line_style 	0)

+		(object InheritTreeView "" @1033

+		    location   	(1116, 639)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@1021

+		    vertices   	(list Points

+			(1116, 639)

+			(1116, 442)))

+		(object InheritView "" @1034

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37F95502F0"

+		    client     	@1023

+		    supplier   	@1021

+		    vertices   	(list Points

+			(763, 783)

+			(763, 639))

+		    line_style 	3

+		    origin_attachment 	(763, 783)

+		    terminal_attachment 	(763, 639)

+		    drawSupplier 	@1033)

+		(object ClassView "Class" "Logical View::SQLQueryModel::TableExpression" @1035

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1509, 1182)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@1035

+			location   	(1343, 1131)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	332

+			justify    	0

+			label      	"TableExpression")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B37EE600288"

+		    width      	350

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::ResultTableAllColumns" @1036

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1508, 845)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@1036

+			location   	(1224, 792)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	569

+			justify    	0

+			label      	"ResultTableAllColumns")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B37F93B0085"

+		    width      	587

+		    height     	131

+		    annotation 	8)

+		(object AttachView "" @1037

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@1022

+		    supplier   	@1036

+		    vertices   	(list Points

+			(1809, 656)

+			(1612, 779))

+		    line_style 	0)

+		(object InheritView "" @1038

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3B37F953033D"

+		    client     	@1036

+		    supplier   	@1021

+		    vertices   	(list Points

+			(1496, 780)

+			(1496, 639))

+		    line_style 	3

+		    origin_attachment 	(1496, 780)

+		    terminal_attachment 	(1496, 639)

+		    drawSupplier 	@1033)

+		(object AssociationViewNew "$UNNAMED$86" @1039

+		    location   	(1508, 1014)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"41B8F9BD01F7"

+		    roleview_list 	(list RoleViews

+			(object RoleView "tableExpr" @1040

+			    Parent_View 	@1039

+			    location   	(0, 169)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @1041

+				Parent_View 	@1040

+				location   	(1376, 1084)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	204

+				justify    	0

+				label      	"+tableExpr"

+				pctDist    	0.685714

+				height     	133

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"41B8F9BE01AF"

+			    client     	@1039

+			    supplier   	@1035

+			    vertices   	(list Points

+				(1508, 1014)

+				(1508, 1118))

+			    line_style 	0

+			    label      	(object SegLabel @1042

+				Parent_View 	@1040

+				location   	(1563, 1081)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.647619

+				height     	55

+				orientation 	0))

+			(object RoleView "resultTableAllColumns" @1043

+			    Parent_View 	@1039

+			    location   	(0, 169)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @1044

+				Parent_View 	@1043

+				location   	(1274, 944)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	442

+				justify    	0

+				label      	"+resultTableAllColumns"

+				pctDist    	0.673077

+				height     	235

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"41B8F9BE01B1"

+			    client     	@1039

+			    supplier   	@1036

+			    vertices   	(list Points

+				(1508, 1014)

+				(1508, 910))

+			    line_style 	0

+			    label      	(object SegLabel @1045

+				Parent_View 	@1043

+				location   	(1586, 945)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.663462

+				height     	78

+				orientation 	1))))))

+	(object ClassDiagram "CallStatement"

+	    quid       	"4B50CA4200EA"

+	    title      	"CallStatement"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	0

+	    origin_y   	0

+	    items      	(list diagram_item_list

+		(object ClassView "Class" "Logical View::SQLModel::Schema::SQLObject" @1046

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    location   	(408, 273)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@1046

+			location   	(211, 144)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	394

+			justify    	0

+			label      	"SQLObject")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3E9B3EB5002B"

+		    width      	412

+		    height     	282

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::SQLQueryObject" @1047

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    location   	(403, 663)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@1047

+			location   	(231, 611)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	344

+			justify    	0

+			label      	"SQLQueryObject")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"4046839E02AB"

+		    width      	362

+		    height     	128

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @1048

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404683B902A0"

+		    client     	@1047

+		    supplier   	@1046

+		    vertices   	(list Points

+			(403, 598)

+			(405, 414))

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLModel::Statements::SQLControlStatement" @1049

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1911, 663)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@1049

+			location   	(1696, 611)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	430

+			justify    	0

+			label      	"SQLControlStatement")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@1049

+			location   	(1696, 561)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	430

+			justify    	0

+			label      	"<<Interface>>")

+		    icon       	"Interface"

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	14532070

+		    quidu      	"4049095A0220"

+		    width      	448

+		    height     	228

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryValueExpression" @1050

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1534, 1040)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@1050

+			location   	(1312, 988)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	444

+			justify    	0

+			label      	"QueryValueExpression")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B3792520160"

+		    width      	462

+		    height     	128

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::CallStatement" @1051

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1144, 663)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@1051

+			location   	(1000, 612)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	288

+			justify    	0

+			label      	"CallStatement")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4B50CD41004E"

+		    width      	306

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @1052

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4B50CD550213"

+		    client     	@1051

+		    supplier   	@1047

+		    vertices   	(list Points

+			(990, 663)

+			(584, 663))

+		    line_style 	0)

+		(object InheritView "" @1053

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4B50CD59037A"

+		    client     	@1051

+		    supplier   	@1049

+		    vertices   	(list Points

+			(1297, 663)

+			(1686, 663))

+		    line_style 	0)

+		(object AssociationViewNew "$UNNAMED$117" @1054

+		    location   	(1338, 850)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4B50D0F40196"

+		    roleview_list 	(list RoleViews

+			(object RoleView "argumentList" @1055

+			    Parent_View 	@1054

+			    location   	(276, 199)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @1056

+				Parent_View 	@1055

+				location   	(1259, 943)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	269

+				justify    	0

+				label      	"+argumentList"

+				pctDist    	0.036571

+				height     	122

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4B50D0F50290"

+			    client     	@1054

+			    supplier   	@1050

+			    vertices   	(list Points

+				(1338, 850)

+				(1467, 975))

+			    line_style 	0

+			    label      	(object SegLabel @1057

+				Parent_View 	@1055

+				location   	(1510, 942)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	1.044071

+				height     	54

+				orientation 	0))

+			(object RoleView "callStatement" @1058

+			    Parent_View 	@1054

+			    location   	(276, 199)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @1059

+				Parent_View 	@1058

+				location   	(1464, 745)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	280

+				justify    	0

+				label      	"+callStatement"

+				pctDist    	-0.105038

+				height     	163

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4B50D0F502EE"

+			    client     	@1054

+			    supplier   	@1051

+			    vertices   	(list Points

+				(1338, 850)

+				(1210, 726))

+			    line_style 	0

+			    label      	(object SegLabel @1060

+				Parent_View 	@1058

+				location   	(1282, 745)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.639993

+				height     	37

+				orientation 	1))))

+		(object ClassView "Class" "Logical View::SQLModel::Routines::Procedure" @1061

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(741, 1352)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@1061

+			location   	(626, 1277)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	230

+			justify    	0

+			label      	"Procedure")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F3D3B200263"

+		    width      	248

+		    height     	174

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::ProcedureReference" @1062

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(741, 1040)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@1062

+			location   	(539, 989)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	404

+			justify    	0

+			label      	"ProcedureReference")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4BC79E0202DE"

+		    width      	422

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$118" @1063

+		    location   	(940, 851)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4BC79E530271"

+		    roleview_list 	(list RoleViews

+			(object RoleView "procedureRef" @1064

+			    Parent_View 	@1063

+			    location   	(-204, 188)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @1065

+				Parent_View 	@1064

+				location   	(601, 932)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	271

+				justify    	0

+				label      	"+procedureRef"

+				pctDist    	1.662220

+				height     	173

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4BC79E5401D4"

+			    client     	@1063

+			    supplier   	@1062

+			    vertices   	(list Points

+				(940, 851)

+				(805, 976))

+			    line_style 	0

+			    label      	(object SegLabel @1066

+				Parent_View 	@1064

+				location   	(784, 936)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.942884

+				height     	45

+				orientation 	1))

+			(object RoleView "callStatement" @1067

+			    Parent_View 	@1063

+			    location   	(-204, 188)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @1068

+				Parent_View 	@1067

+				location   	(822, 750)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	277

+				justify    	0

+				label      	"+callStatement"

+				pctDist    	-0.102886

+				height     	156

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4BC79E5401D6"

+			    client     	@1063

+			    supplier   	@1051

+			    vertices   	(list Points

+				(940, 851)

+				(1073, 726))

+			    line_style 	0

+			    label      	(object SegLabel @1069

+				Parent_View 	@1067

+				location   	(1006, 756)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.620440

+				height     	26

+				orientation 	0))))

+		(object AssociationViewNew "$UNNAMED$119" @1070

+		    location   	(741, 1183)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4BC79ECF02BF"

+		    roleview_list 	(list RoleViews

+			(object RoleView "procedure" @1071

+			    Parent_View 	@1070

+			    location   	(0, 143)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @1072

+				Parent_View 	@1071

+				location   	(597, 1222)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	216

+				justify    	0

+				label      	"+procedure"

+				pctDist    	0.481481

+				height     	144

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4BC79ED00213"

+			    client     	@1070

+			    supplier   	@1061

+			    vertices   	(list Points

+				(741, 1183)

+				(741, 1264))

+			    line_style 	0

+			    label      	(object SegLabel @1073

+				Parent_View 	@1071

+				location   	(796, 1214)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.382716

+				height     	55

+				orientation 	0))

+			(object RoleView "$UNNAMED$120" @1074

+			    Parent_View 	@1070

+			    location   	(0, 143)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4BC79ED00215"

+			    client     	@1070

+			    supplier   	@1062

+			    vertices   	(list Points

+				(741, 1183)

+				(741, 1103))

+			    line_style 	0)))))))

diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore b/plugins/org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore
new file mode 100644
index 0000000..ebc2dd5
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore
@@ -0,0 +1,808 @@
+<?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="query"

+    nsURI="http:///org/eclipse/datatools/modelbase/sql/query/SQLQueryModel.ecore"

+    nsPrefix="org.eclipse.datatools.modelbase.sql.query">

+  <eClassifiers xsi:type="ecore:EClass" name="QueryStatement" abstract="true" eSuperTypes="#//SQLQueryObject ../../org.eclipse.datatools.modelbase.sql/model/sqlmodel.ecore#//statements/SQLDataStatement"/>

+  <eClassifiers xsi:type="ecore:EClass" name="QueryDeleteStatement" eSuperTypes="#//QueryChangeStatement">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="whereCurrentOfClause" eType="#//CursorReference"

+        containment="true" eOpposite="#//CursorReference/deleteStatement"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="whereClause" eType="#//QuerySearchCondition"

+        unsettable="true" containment="true" eOpposite="#//QuerySearchCondition/deleteStatement"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="targetTable" lowerBound="1"

+        eType="#//TableInDatabase" unsettable="true" containment="true" eOpposite="#//TableInDatabase/deleteStatement"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="QueryInsertStatement" eSuperTypes="#//QueryChangeStatement">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="sourceQuery" eType="#//QueryExpressionRoot"

+        containment="true" eOpposite="#//QueryExpressionRoot/insertStatement"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="sourceValuesRowList" upperBound="-1"

+        eType="#//ValuesRow" containment="true" eOpposite="#//ValuesRow/insertStatement"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="targetTable" lowerBound="1"

+        eType="#//TableInDatabase" unsettable="true" containment="true" eOpposite="#//TableInDatabase/insertStatement"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="targetColumnList" upperBound="-1"

+        eType="#//ValueExpressionColumn" eOpposite="#//ValueExpressionColumn/insertStatement"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="QuerySelectStatement" eSuperTypes="#//QueryStatement">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="queryExpr" lowerBound="1"

+        eType="#//QueryExpressionRoot" containment="true" eOpposite="#//QueryExpressionRoot/selectStatement"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="orderByClause" upperBound="-1"

+        eType="#//OrderBySpecification" containment="true" eOpposite="#//OrderBySpecification/selectStatement"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="updatabilityExpr" eType="#//UpdatabilityExpression"

+        containment="true" eOpposite="#//UpdatabilityExpression/selectStatement"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="QueryUpdateStatement" eSuperTypes="#//QueryChangeStatement">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="assignmentClause" lowerBound="1"

+        upperBound="-1" eType="#//UpdateAssignmentExpression" containment="true" eOpposite="#//UpdateAssignmentExpression/updateStatement"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="whereCurrentOfClause" eType="#//CursorReference"

+        containment="true" eOpposite="#//CursorReference/updateStatement"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="whereClause" eType="#//QuerySearchCondition"

+        unsettable="true" containment="true" eOpposite="#//QuerySearchCondition/updateStatement"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="targetTable" lowerBound="1"

+        eType="#//TableInDatabase" unsettable="true" containment="true" eOpposite="#//TableInDatabase/updateStatement"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="UpdateAssignmentExpression" eSuperTypes="#//SQLQueryObject">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="updateStatement" eType="#//QueryUpdateStatement"

+        transient="true" eOpposite="#//QueryUpdateStatement/assignmentClause"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="targetColumnList" lowerBound="1"

+        upperBound="-1" eType="#//ValueExpressionColumn" eOpposite="#//ValueExpressionColumn/assignmentExprTarget"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="updateSource" lowerBound="1"

+        eType="#//UpdateSource" containment="true" eOpposite="#//UpdateSource/updateAssignmentExpr"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="mergeUpdateSpec" eType="#//MergeUpdateSpecification"

+        transient="true" eOpposite="#//MergeUpdateSpecification/assignementExprList"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="CursorReference" eSuperTypes="#//SQLQueryObject">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="updateStatement" eType="#//QueryUpdateStatement"

+        transient="true" eOpposite="#//QueryUpdateStatement/whereCurrentOfClause"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="deleteStatement" eType="#//QueryDeleteStatement"

+        transient="true" eOpposite="#//QueryDeleteStatement/whereCurrentOfClause"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="QuerySearchCondition" abstract="true"

+      eSuperTypes="#//SQLQueryObject ../../org.eclipse.datatools.modelbase.sql/model/sqlmodel.ecore#//expressions/SearchCondition">

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="negatedCondition" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="This represents NOT ( &lt;searchCondition> ).  This attribute and paren can not both be true at the same time."/>

+      </eAnnotations>

+    </eStructuralFeatures>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="updateStatement" eType="#//QueryUpdateStatement"

+        transient="true" eOpposite="#//QueryUpdateStatement/whereClause"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="deleteStatement" eType="#//QueryDeleteStatement"

+        transient="true" eOpposite="#//QueryDeleteStatement/whereClause"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="tableJoined" eType="#//TableJoined"

+        transient="true" eOpposite="#//TableJoined/joinCondition"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="combinedLeft" eType="#//SearchConditionCombined"

+        transient="true" eOpposite="#//SearchConditionCombined/leftCondition"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="combinedRight" eType="#//SearchConditionCombined"

+        transient="true" eOpposite="#//SearchConditionCombined/rightCondition"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="querySelectHaving" eType="#//QuerySelect"

+        transient="true" eOpposite="#//QuerySelect/havingClause"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="querySelectWhere" eType="#//QuerySelect"

+        transient="true" eOpposite="#//QuerySelect/whereClause"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueExprCaseSearchContent"

+        eType="#//ValueExpressionCaseSearchContent" transient="true" eOpposite="#//ValueExpressionCaseSearchContent/searchCondition"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="nest" eType="#//SearchConditionNested"

+        transient="true" eOpposite="#//SearchConditionNested/nestedCondition"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="mergeOnCondition" eType="#//MergeOnCondition"

+        transient="true" eOpposite="#//MergeOnCondition/searchCondition"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="QueryExpressionBody" abstract="true"

+      eSuperTypes="#//TableExpression">

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="rowFetchLimit" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="queryExpression" eType="#//QueryExpressionRoot"

+        transient="true" eOpposite="#//QueryExpressionRoot/query"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="combinedLeft" eType="#//QueryCombined"

+        transient="true" eOpposite="#//QueryCombined/leftQuery"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="combinedRight" eType="#//QueryCombined"

+        transient="true" eOpposite="#//QueryCombined/rightQuery"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="predicateExists" eType="#//PredicateExists"

+        transient="true" eOpposite="#//PredicateExists/queryExpr"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="updateSourceQuery" lowerBound="1"

+        eType="#//UpdateSourceQuery" transient="true" eOpposite="#//UpdateSourceQuery/queryExpr"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="withTableSpecification"

+        lowerBound="1" eType="#//WithTableSpecification" transient="true" eOpposite="#//WithTableSpecification/withTableQueryExpr"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="queryNest" eType="#//QueryNested"

+        transient="true" eOpposite="#//QueryNested/nestedQuery"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="sortSpecList" upperBound="-1"

+        eType="#//OrderBySpecification" containment="true" eOpposite="#//OrderBySpecification/query"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="QueryValueExpression" abstract="true"

+      eSuperTypes="#//SQLQueryObject ../../org.eclipse.datatools.modelbase.sql/model/sqlmodel.ecore#//expressions/ValueExpression">

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="unaryOperator" eType="#//ValueExpressionUnaryOperator"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="dataType" eType="ecore:EClass ../../org.eclipse.datatools.modelbase.sql/model/sqlmodel.ecore#//datatypes/DataType"

+        containment="true" resolveProxies="false"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valuesRow" eType="#//ValuesRow"

+        transient="true" eOpposite="#//ValuesRow/exprList"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="orderByValueExpr" eType="#//OrderByValueExpression"

+        transient="true" eOpposite="#//OrderByValueExpression/valueExpr"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="resultColumn" eType="#//ResultColumn"

+        transient="true" eOpposite="#//ResultColumn/valueExpr"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="basicRight" eType="#//PredicateBasic"

+        transient="true" eOpposite="#//PredicateBasic/rightValueExpr"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="basicLeft" eType="#//PredicateBasic"

+        transient="true" eOpposite="#//PredicateBasic/leftValueExpr"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="likePattern" eType="#//PredicateLike"

+        transient="true" eOpposite="#//PredicateLike/patternValueExpr"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="likeMatching" eType="#//PredicateLike"

+        transient="true" eOpposite="#//PredicateLike/matchingValueExpr"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="predicateNull" eType="#//PredicateIsNull"

+        transient="true" eOpposite="#//PredicateIsNull/valueExpr"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="inValueListRight" eType="#//PredicateInValueList"

+        transient="true" eOpposite="#//PredicateInValueList/valueExprList"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="inValueListLeft" eType="#//PredicateInValueList"

+        transient="true" eOpposite="#//PredicateInValueList/valueExpr"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="inValueRowSelectLeft" eType="#//PredicateInValueRowSelect"

+        transient="true" eOpposite="#//PredicateInValueRowSelect/valueExprList"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="inValueSelectLeft" eType="#//PredicateInValueSelect"

+        transient="true" eOpposite="#//PredicateInValueSelect/valueExpr"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="quantifiedRowSelectLeft"

+        eType="#//PredicateQuantifiedRowSelect" transient="true" eOpposite="#//PredicateQuantifiedRowSelect/valueExprList"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="quantifiedValueSelectLeft"

+        eType="#//PredicateQuantifiedValueSelect" transient="true" eOpposite="#//PredicateQuantifiedValueSelect/valueExpr"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="betweenLeft" eType="#//PredicateBetween"

+        transient="true" eOpposite="#//PredicateBetween/leftValueExpr"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="betweenRight1" eType="#//PredicateBetween"

+        transient="true" eOpposite="#//PredicateBetween/rightValueExpr1"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="betweenRight2" eType="#//PredicateBetween"

+        transient="true" eOpposite="#//PredicateBetween/rightValueExpr2"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueExprCast" eType="#//ValueExpressionCast"

+        transient="true" eOpposite="#//ValueExpressionCast/valueExpr"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueExprFunction" eType="#//ValueExpressionFunction"

+        transient="true" eOpposite="#//ValueExpressionFunction/parameterList"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueExprCombinedLeft"

+        eType="#//ValueExpressionCombined" transient="true" eOpposite="#//ValueExpressionCombined/leftValueExpr"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueExprCombinedRight"

+        eType="#//ValueExpressionCombined" transient="true" eOpposite="#//ValueExpressionCombined/rightValueExpr"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="groupingExpr" eType="#//GroupingExpression"

+        transient="true" eOpposite="#//GroupingExpression/valueExpr"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueExprCaseElse" eType="#//ValueExpressionCaseElse"

+        transient="true" eOpposite="#//ValueExpressionCaseElse/valueExpr"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueExprCaseSimple" eType="#//ValueExpressionCaseSimple"

+        transient="true" eOpposite="#//ValueExpressionCaseSimple/valueExpr"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueExprCaseSimpleContentWhen"

+        eType="#//ValueExpressionCaseSimpleContent" transient="true" eOpposite="#//ValueExpressionCaseSimpleContent/whenValueExpr"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueExprCaseSimpleContentResult"

+        eType="#//ValueExpressionCaseSimpleContent" transient="true" eOpposite="#//ValueExpressionCaseSimpleContent/resultValueExpr"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueExprCaseSearchContent"

+        eType="#//ValueExpressionCaseSearchContent" transient="true" eOpposite="#//ValueExpressionCaseSearchContent/valueExpr"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="likeEscape" eType="#//PredicateLike"

+        transient="true" eOpposite="#//PredicateLike/escapeValueExpr"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueExprLabeledDuration"

+        eType="#//ValueExpressionLabeledDuration" transient="true" eOpposite="#//ValueExpressionLabeledDuration/valueExpr"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="nest" eType="#//ValueExpressionNested"

+        transient="true" eOpposite="#//ValueExpressionNested/nestedValueExpr"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="updateSourceExprList" eType="#//UpdateSourceExprList"

+        transient="true" eOpposite="#//UpdateSourceExprList/valueExprList"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="tableFunction" lowerBound="1"

+        eType="#//TableFunction" transient="true" eOpposite="#//TableFunction/parameterList"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueExprRow" lowerBound="1"

+        eType="#//ValueExpressionRow" transient="true" eOpposite="#//ValueExpressionRow/valueExprList"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="callStatement" lowerBound="1"

+        eType="#//CallStatement" transient="true" eOpposite="#//CallStatement/argumentList"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="QueryExpressionRoot" eSuperTypes="#//SQLQueryObject ../../org.eclipse.datatools.modelbase.sql/model/sqlmodel.ecore#//expressions/QueryExpression">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="insertStatement" eType="#//QueryInsertStatement"

+        transient="true" eOpposite="#//QueryInsertStatement/sourceQuery"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="selectStatement" eType="#//QuerySelectStatement"

+        transient="true" eOpposite="#//QuerySelectStatement/queryExpr"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="withClause" upperBound="-1"

+        eType="#//WithTableSpecification" containment="true" eOpposite="#//WithTableSpecification/queryExpressionRoot"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="query" lowerBound="1" eType="#//QueryExpressionBody"

+        containment="true" eOpposite="#//QueryExpressionBody/queryExpression"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="inValueRowSelectRight"

+        eType="#//PredicateInValueRowSelect" transient="true" eOpposite="#//PredicateInValueRowSelect/queryExpr"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="inValueSelectRight" eType="#//PredicateInValueSelect"

+        transient="true" eOpposite="#//PredicateInValueSelect/queryExpr"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="quantifiedRowSelectRight"

+        eType="#//PredicateQuantifiedRowSelect" transient="true" eOpposite="#//PredicateQuantifiedRowSelect/queryExpr"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="quantifiedValueSelectRight"

+        eType="#//PredicateQuantifiedValueSelect" transient="true" eOpposite="#//PredicateQuantifiedValueSelect/queryExpr"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valExprScalarSelect" eType="#//ValueExpressionScalarSelect"

+        transient="true" eOpposite="#//ValueExpressionScalarSelect/queryExpr"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="ValuesRow" eSuperTypes="#//SQLQueryObject">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="insertStatement" eType="#//QueryInsertStatement"

+        transient="true" eOpposite="#//QueryInsertStatement/sourceValuesRowList"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="exprList" lowerBound="1"

+        upperBound="-1" eType="#//QueryValueExpression" containment="true" eOpposite="#//QueryValueExpression/valuesRow"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="queryValues" lowerBound="1"

+        eType="#//QueryValues" transient="true" eOpposite="#//QueryValues/valuesRowList"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="QueryValues" eSuperTypes="#//QueryExpressionBody">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valuesRowList" lowerBound="1"

+        upperBound="-1" eType="#//ValuesRow" containment="true" eOpposite="#//ValuesRow/queryValues"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="TableReference" abstract="true" eSuperTypes="#//SQLQueryObject">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="tableJoinedRight" lowerBound="1"

+        eType="#//TableJoined" transient="true" eOpposite="#//TableJoined/tableRefRight"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="tableJoinedLeft" lowerBound="1"

+        eType="#//TableJoined" transient="true" eOpposite="#//TableJoined/tableRefLeft"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="querySelect" eType="#//QuerySelect"

+        transient="true" eOpposite="#//QuerySelect/fromClause"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="nest" eType="#//TableNested"

+        transient="true" eOpposite="#//TableNested/nestedTableRef"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="mergeSourceTable" eType="#//MergeSourceTable"

+        transient="true" eOpposite="#//MergeSourceTable/tableRef"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="TableExpression" abstract="true" eSuperTypes="#//TableReference">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="columnList" upperBound="-1"

+        eType="#//ValueExpressionColumn" containment="true" eOpposite="#//ValueExpressionColumn/parentTableExpr"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="tableCorrelation" eType="#//TableCorrelation"

+        containment="true" eOpposite="#//TableCorrelation/tableExpr"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="resultTableAllColumns"

+        upperBound="-1" eType="#//ResultTableAllColumns" eOpposite="#//ResultTableAllColumns/tableExpr"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueExprColumns" upperBound="-1"

+        eType="#//ValueExpressionColumn" eOpposite="#//ValueExpressionColumn/tableExpr"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="mergeTargetTable" eType="#//MergeTargetTable"

+        transient="true" eOpposite="#//MergeTargetTable/tableExpr"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="TableJoined" eSuperTypes="#//TableReference">

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="joinOperator" eType="#//TableJoinedOperator"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="joinCondition" eType="#//QuerySearchCondition"

+        containment="true" eOpposite="#//QuerySearchCondition/tableJoined"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="tableRefRight" lowerBound="1"

+        eType="#//TableReference" containment="true" eOpposite="#//TableReference/tableJoinedRight"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="tableRefLeft" lowerBound="1"

+        eType="#//TableReference" containment="true" eOpposite="#//TableReference/tableJoinedLeft"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="WithTableSpecification" eSuperTypes="#//SQLQueryObject">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="queryExpressionRoot" eType="#//QueryExpressionRoot"

+        transient="true" eOpposite="#//QueryExpressionRoot/withClause"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="withTableQueryExpr" lowerBound="1"

+        eType="#//QueryExpressionBody" containment="true" eOpposite="#//QueryExpressionBody/withTableSpecification"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="withTableReferences" upperBound="-1"

+        eType="#//WithTableReference" eOpposite="#//WithTableReference/withTableSpecification"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="columnNameList" upperBound="-1"

+        eType="#//ColumnName" containment="true" eOpposite="#//ColumnName/withTableSpecification"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="Predicate" abstract="true" eSuperTypes="#//QuerySearchCondition">

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="negatedPredicate" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="This attribute adds the NOT keyword in front of a predicate, so when true you have NOT &lt;predicate>.  If attribute &quot;paren&quot; in the superclass is also true, you get ( NOT &lt;predicate> ).  If attribute &quot;notParen&quot; in the superclass is true, you get NOT ( NOT &lt;predicate> )."/>

+      </eAnnotations>

+    </eStructuralFeatures>

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="hasSelectivity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="selectivityValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="SearchConditionCombined" eSuperTypes="#//QuerySearchCondition">

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="combinedOperator" eType="#//SearchConditionCombinedOperator"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="leftCondition" lowerBound="1"

+        eType="#//QuerySearchCondition" containment="true" eOpposite="#//QuerySearchCondition/combinedLeft"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="rightCondition" lowerBound="1"

+        eType="#//QuerySearchCondition" containment="true" eOpposite="#//QuerySearchCondition/combinedRight"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="OrderByValueExpression" eSuperTypes="#//OrderBySpecification">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueExpr" lowerBound="1"

+        eType="#//QueryValueExpression" containment="true" eOpposite="#//QueryValueExpression/orderByValueExpr"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="QueryCombined" eSuperTypes="#//QueryExpressionBody">

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="combinedOperator" eType="#//QueryCombinedOperator"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="leftQuery" lowerBound="1"

+        eType="#//QueryExpressionBody" containment="true" eOpposite="#//QueryExpressionBody/combinedLeft"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="rightQuery" lowerBound="1"

+        eType="#//QueryExpressionBody" containment="true" eOpposite="#//QueryExpressionBody/combinedRight"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="QuerySelect" eSuperTypes="#//QueryExpressionBody">

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="distinct" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="havingClause" eType="#//QuerySearchCondition"

+        unsettable="true" containment="true" eOpposite="#//QuerySearchCondition/querySelectHaving"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="whereClause" eType="#//QuerySearchCondition"

+        unsettable="true" containment="true" eOpposite="#//QuerySearchCondition/querySelectWhere"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="groupByClause" upperBound="-1"

+        eType="#//GroupingSpecification" containment="true" eOpposite="#//GroupingSpecification/querySelect"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="selectClause" upperBound="-1"

+        eType="#//QueryResultSpecification" containment="true" eOpposite="#//QueryResultSpecification/querySelect"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="fromClause" lowerBound="1"

+        upperBound="-1" eType="#//TableReference" containment="true" eOpposite="#//TableReference/querySelect"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="intoClause" upperBound="-1"

+        eType="#//ValueExpressionVariable" containment="true" eOpposite="#//ValueExpressionVariable/querySelect"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="GroupingSpecification" abstract="true"

+      eSuperTypes="#//SQLQueryObject">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="querySelect" eType="#//QuerySelect"

+        transient="true" eOpposite="#//QuerySelect/groupByClause"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="QueryResultSpecification" abstract="true"

+      eSuperTypes="#//SQLQueryObject">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="querySelect" eType="#//QuerySelect"

+        transient="true" eOpposite="#//QuerySelect/selectClause"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="ResultTableAllColumns" eSuperTypes="#//QueryResultSpecification">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="tableExpr" lowerBound="1"

+        eType="#//TableExpression" eOpposite="#//TableExpression/resultTableAllColumns"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="ResultColumn" eSuperTypes="#//QueryResultSpecification">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueExpr" lowerBound="1"

+        eType="#//QueryValueExpression" containment="true" eOpposite="#//QueryValueExpression/resultColumn"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="orderByResultCol" upperBound="-1"

+        eType="#//OrderByResultColumn" eOpposite="#//OrderByResultColumn/resultCol"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="PredicateBasic" eSuperTypes="#//Predicate">

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="comparisonOperator" eType="#//PredicateComparisonOperator"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="rightValueExpr" lowerBound="1"

+        eType="#//QueryValueExpression" containment="true" eOpposite="#//QueryValueExpression/basicRight"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="leftValueExpr" lowerBound="1"

+        eType="#//QueryValueExpression" containment="true" eOpposite="#//QueryValueExpression/basicLeft"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="PredicateQuantified" abstract="true"

+      eSuperTypes="#//Predicate"/>

+  <eClassifiers xsi:type="ecore:EClass" name="PredicateBetween" eSuperTypes="#//Predicate">

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="notBetween" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="leftValueExpr" lowerBound="1"

+        eType="#//QueryValueExpression" containment="true" eOpposite="#//QueryValueExpression/betweenLeft"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="rightValueExpr1" lowerBound="1"

+        eType="#//QueryValueExpression" containment="true" eOpposite="#//QueryValueExpression/betweenRight1"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="rightValueExpr2" lowerBound="1"

+        eType="#//QueryValueExpression" containment="true" eOpposite="#//QueryValueExpression/betweenRight2"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="PredicateExists" eSuperTypes="#//Predicate">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="queryExpr" lowerBound="1"

+        eType="#//QueryExpressionBody" containment="true" eOpposite="#//QueryExpressionBody/predicateExists"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="PredicateIn" abstract="true" eSuperTypes="#//Predicate">

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="notIn" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="PredicateLike" eSuperTypes="#//Predicate">

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="notLike" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="patternValueExpr" lowerBound="1"

+        eType="#//QueryValueExpression" containment="true" eOpposite="#//QueryValueExpression/likePattern"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="matchingValueExpr" lowerBound="1"

+        eType="#//QueryValueExpression" containment="true" eOpposite="#//QueryValueExpression/likeMatching"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="escapeValueExpr" eType="#//QueryValueExpression"

+        containment="true" eOpposite="#//QueryValueExpression/likeEscape"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="PredicateIsNull" eSuperTypes="#//Predicate">

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="notNull" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueExpr" lowerBound="1"

+        eType="#//QueryValueExpression" containment="true" eOpposite="#//QueryValueExpression/predicateNull"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="PredicateQuantifiedValueSelect" eSuperTypes="#//PredicateQuantified">

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="quantifiedType" eType="#//PredicateQuantifiedType"/>

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="comparisonOperator" eType="#//PredicateComparisonOperator"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="queryExpr" lowerBound="1"

+        eType="#//QueryExpressionRoot" containment="true" eOpposite="#//QueryExpressionRoot/quantifiedValueSelectRight"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueExpr" lowerBound="1"

+        eType="#//QueryValueExpression" containment="true" eOpposite="#//QueryValueExpression/quantifiedValueSelectLeft"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="PredicateQuantifiedRowSelect" eSuperTypes="#//PredicateQuantified">

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="quantifiedType" eType="#//PredicateQuantifiedType"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="queryExpr" lowerBound="1"

+        eType="#//QueryExpressionRoot" containment="true" eOpposite="#//QueryExpressionRoot/quantifiedRowSelectRight"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueExprList" lowerBound="1"

+        upperBound="-1" eType="#//QueryValueExpression" containment="true" eOpposite="#//QueryValueExpression/quantifiedRowSelectLeft"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="PredicateInValueSelect" eSuperTypes="#//PredicateIn">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="queryExpr" lowerBound="1"

+        eType="#//QueryExpressionRoot" containment="true" eOpposite="#//QueryExpressionRoot/inValueSelectRight"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueExpr" lowerBound="1"

+        eType="#//QueryValueExpression" containment="true" eOpposite="#//QueryValueExpression/inValueSelectLeft"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="PredicateInValueList" eSuperTypes="#//PredicateIn">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueExprList" lowerBound="1"

+        upperBound="-1" eType="#//QueryValueExpression" containment="true" eOpposite="#//QueryValueExpression/inValueListRight"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueExpr" lowerBound="1"

+        eType="#//QueryValueExpression" containment="true" eOpposite="#//QueryValueExpression/inValueListLeft"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="PredicateInValueRowSelect" eSuperTypes="#//PredicateIn">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueExprList" lowerBound="1"

+        upperBound="-1" eType="#//QueryValueExpression" containment="true" eOpposite="#//QueryValueExpression/inValueRowSelectLeft"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="queryExpr" lowerBound="1"

+        eType="#//QueryExpressionRoot" containment="true" eOpposite="#//QueryExpressionRoot/inValueRowSelectRight"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="ValueExpressionSimple" eSuperTypes="#//ValueExpressionAtomic">

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="ValueExpressionColumn" eSuperTypes="#//ValueExpressionAtomic">

+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+      <details key="documentation" value="This is a VEC"/>

+    </eAnnotations>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="assignmentExprTarget" upperBound="-1"

+        eType="#//UpdateAssignmentExpression" eOpposite="#//UpdateAssignmentExpression/targetColumnList"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="parentTableExpr" lowerBound="1"

+        eType="#//TableExpression" transient="true" unsettable="true" eOpposite="#//TableExpression/columnList"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="insertStatement" upperBound="-1"

+        eType="#//QueryInsertStatement" eOpposite="#//QueryInsertStatement/targetColumnList"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="tableExpr" lowerBound="1"

+        eType="#//TableExpression" eOpposite="#//TableExpression/valueExprColumns"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="tableInDatabase" eType="#//TableInDatabase"

+        eOpposite="#//TableInDatabase/derivedColumnList">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Gets the &lt;code>TableInDatabase&lt;/code> from which this column is ulitimately derived, if any."/>

+      </eAnnotations>

+    </eStructuralFeatures>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="mergeInsertSpec" upperBound="-1"

+        eType="#//MergeInsertSpecification" eOpposite="#//MergeInsertSpecification/targetColumnList"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="ValueExpressionVariable" eSuperTypes="#//ValueExpressionAtomic">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="querySelect" eType="#//QuerySelect"

+        transient="true" eOpposite="#//QuerySelect/intoClause"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="ValueExpressionScalarSelect" eSuperTypes="#//ValueExpressionAtomic">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="queryExpr" lowerBound="1"

+        eType="#//QueryExpressionRoot" containment="true" eOpposite="#//QueryExpressionRoot/valExprScalarSelect"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="ValueExpressionLabeledDuration" eSuperTypes="#//ValueExpressionAtomic">

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="labeledDurationType" eType="#//ValueExpressionLabeledDurationType"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueExpr" lowerBound="1"

+        eType="#//QueryValueExpression" containment="true" eOpposite="#//QueryValueExpression/valueExprLabeledDuration"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="ValueExpressionCase" abstract="true"

+      eSuperTypes="#//ValueExpressionAtomic">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="caseElse" eType="#//ValueExpressionCaseElse"

+        containment="true" eOpposite="#//ValueExpressionCaseElse/valueExprCase"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="ValueExpressionCast" eSuperTypes="#//ValueExpressionAtomic">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueExpr" lowerBound="1"

+        eType="#//QueryValueExpression" containment="true" eOpposite="#//QueryValueExpression/valueExprCast"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="ValueExpressionNullValue" eSuperTypes="#//ValueExpressionAtomic"/>

+  <eClassifiers xsi:type="ecore:EClass" name="ValueExpressionDefaultValue" eSuperTypes="#//ValueExpressionAtomic"/>

+  <eClassifiers xsi:type="ecore:EClass" name="ValueExpressionFunction" eSuperTypes="#//ValueExpressionAtomic">

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="specialRegister" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="distinct" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="columnFunction" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="parameterList" upperBound="-1"

+        eType="#//QueryValueExpression" containment="true" eOpposite="#//QueryValueExpression/valueExprFunction"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="function" lowerBound="1"

+        eType="ecore:EClass ../../org.eclipse.datatools.modelbase.sql/model/sqlmodel.ecore#//routines/Function"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="ValueExpressionCombined" eSuperTypes="#//QueryValueExpression">

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="combinedOperator" eType="#//ValueExpressionCombinedOperator"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="leftValueExpr" lowerBound="1"

+        eType="#//QueryValueExpression" containment="true" eOpposite="#//QueryValueExpression/valueExprCombinedLeft"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="rightValueExpr" lowerBound="1"

+        eType="#//QueryValueExpression" containment="true" eOpposite="#//QueryValueExpression/valueExprCombinedRight"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="GroupingSets" eSuperTypes="#//GroupingSpecification">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="groupingSetsElementList"

+        lowerBound="1" upperBound="-1" eType="#//GroupingSetsElement" containment="true"

+        eOpposite="#//GroupingSetsElement/groupingSets"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="Grouping" abstract="true" eSuperTypes="#//GroupingSpecification">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="groupingSetsElementExpr"

+        eType="#//GroupingSetsElementExpression" transient="true" eOpposite="#//GroupingSetsElementExpression/grouping"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="GroupingSetsElement" abstract="true"

+      eSuperTypes="#//SQLQueryObject">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="groupingSets" eType="#//GroupingSets"

+        transient="true" eOpposite="#//GroupingSets/groupingSetsElementList"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="GroupingSetsElementSublist" eSuperTypes="#//GroupingSetsElement">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="groupingSetsElementExprList"

+        lowerBound="1" upperBound="-1" eType="#//GroupingSetsElementExpression" containment="true"

+        eOpposite="#//GroupingSetsElementExpression/groupingSetsElementSublist"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="GroupingSetsElementExpression" eSuperTypes="#//GroupingSetsElement">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="groupingSetsElementSublist"

+        eType="#//GroupingSetsElementSublist" transient="true" eOpposite="#//GroupingSetsElementSublist/groupingSetsElementExprList"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="grouping" lowerBound="1"

+        eType="#//Grouping" containment="true" eOpposite="#//Grouping/groupingSetsElementExpr"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="SuperGroup" eSuperTypes="#//Grouping">

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="superGroupType" eType="#//SuperGroupType"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="superGroupElementList"

+        upperBound="-1" eType="#//SuperGroupElement" containment="true" eOpposite="#//SuperGroupElement/superGroup"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="GroupingExpression" eSuperTypes="#//Grouping">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueExpr" lowerBound="1"

+        eType="#//QueryValueExpression" containment="true" eOpposite="#//QueryValueExpression/groupingExpr"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="superGroupElementExpr"

+        eType="#//SuperGroupElementExpression" transient="true" eOpposite="#//SuperGroupElementExpression/groupingExpr"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="SuperGroupElement" abstract="true" eSuperTypes="#//SQLQueryObject">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="superGroup" eType="#//SuperGroup"

+        transient="true" eOpposite="#//SuperGroup/superGroupElementList"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="SuperGroupElementSublist" eSuperTypes="#//SuperGroupElement">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="superGroupElementExprList"

+        lowerBound="1" upperBound="-1" eType="#//SuperGroupElementExpression" containment="true"

+        eOpposite="#//SuperGroupElementExpression/superGroupElementSublist"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="SuperGroupElementExpression" eSuperTypes="#//SuperGroupElement">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="superGroupElementSublist"

+        eType="#//SuperGroupElementSublist" transient="true" eOpposite="#//SuperGroupElementSublist/superGroupElementExprList"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="groupingExpr" lowerBound="1"

+        eType="#//GroupingExpression" containment="true" eOpposite="#//GroupingExpression/superGroupElementExpr"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="ValueExpressionCaseSearch" eSuperTypes="#//ValueExpressionCase">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="searchContentList" lowerBound="1"

+        upperBound="-1" eType="#//ValueExpressionCaseSearchContent" containment="true"

+        eOpposite="#//ValueExpressionCaseSearchContent/valueExprCaseSearch"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="ValueExpressionCaseSimple" eSuperTypes="#//ValueExpressionCase">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="contentList" lowerBound="1"

+        upperBound="-1" eType="#//ValueExpressionCaseSimpleContent" containment="true"

+        eOpposite="#//ValueExpressionCaseSimpleContent/valueExprCaseSimple"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueExpr" lowerBound="1"

+        eType="#//QueryValueExpression" containment="true" eOpposite="#//QueryValueExpression/valueExprCaseSimple"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="ValueExpressionCaseElse" eSuperTypes="#//SQLQueryObject">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueExprCase" eType="#//ValueExpressionCase"

+        transient="true" eOpposite="#//ValueExpressionCase/caseElse"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueExpr" eType="#//QueryValueExpression"

+        containment="true" eOpposite="#//QueryValueExpression/valueExprCaseElse"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="ValueExpressionCaseSearchContent" eSuperTypes="#//SQLQueryObject">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueExpr" lowerBound="1"

+        eType="#//QueryValueExpression" containment="true" eOpposite="#//QueryValueExpression/valueExprCaseSearchContent"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="searchCondition" lowerBound="1"

+        eType="#//QuerySearchCondition" containment="true" eOpposite="#//QuerySearchCondition/valueExprCaseSearchContent"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueExprCaseSearch" eType="#//ValueExpressionCaseSearch"

+        transient="true" eOpposite="#//ValueExpressionCaseSearch/searchContentList"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="ValueExpressionCaseSimpleContent" eSuperTypes="#//SQLQueryObject">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueExprCaseSimple" eType="#//ValueExpressionCaseSimple"

+        transient="true" eOpposite="#//ValueExpressionCaseSimple/contentList"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="whenValueExpr" lowerBound="1"

+        eType="#//QueryValueExpression" containment="true" eOpposite="#//QueryValueExpression/valueExprCaseSimpleContentWhen"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="resultValueExpr" lowerBound="1"

+        eType="#//QueryValueExpression" containment="true" eOpposite="#//QueryValueExpression/valueExprCaseSimpleContentResult"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EEnum" name="SuperGroupType">

+    <eLiterals name="CUBE"/>

+    <eLiterals name="GRANDTOTAL" value="1"/>

+    <eLiterals name="ROLLUP" value="2"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EEnum" name="PredicateQuantifiedType">

+    <eLiterals name="SOME"/>

+    <eLiterals name="ANY" value="1"/>

+    <eLiterals name="ALL" value="2"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EEnum" name="PredicateComparisonOperator">

+    <eLiterals name="EQUAL"/>

+    <eLiterals name="NOT_EQUAL" value="1"/>

+    <eLiterals name="LESS_THAN" value="2"/>

+    <eLiterals name="GREATER_THAN" value="3"/>

+    <eLiterals name="LESS_THAN_OR_EQUAL" value="4"/>

+    <eLiterals name="GREATER_THAN_OR_EQUAL" value="5"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EEnum" name="SearchConditionCombinedOperator">

+    <eLiterals name="AND"/>

+    <eLiterals name="OR" value="1"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EEnum" name="TableJoinedOperator">

+    <eLiterals name="DEFAULT_INNER"/>

+    <eLiterals name="EXPLICIT_INNER" value="1"/>

+    <eLiterals name="LEFT_OUTER" value="2"/>

+    <eLiterals name="RIGHT_OUTER" value="3"/>

+    <eLiterals name="FULL_OUTER" value="4"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EEnum" name="QueryCombinedOperator">

+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+      <details key="documentation" value="UNION=1&#xD;&#xA;UNION_ALL=2&#xD;&#xA;INTERSECT=3&#xD;&#xA;INTERSECT_ALL=4&#xD;&#xA;EXCEPT=5&#xD;&#xA;EXCEPT_ALL=6"/>

+    </eAnnotations>

+    <eLiterals name="UNION"/>

+    <eLiterals name="UNION_ALL" value="1"/>

+    <eLiterals name="INTERSECT" value="2"/>

+    <eLiterals name="INTERSECT_ALL" value="3"/>

+    <eLiterals name="EXCEPT" value="4"/>

+    <eLiterals name="EXCEPT_ALL" value="5"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EEnum" name="ValueExpressionUnaryOperator">

+    <eLiterals name="NONE"/>

+    <eLiterals name="PLUS" value="1"/>

+    <eLiterals name="MINUS" value="2"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EEnum" name="ValueExpressionCombinedOperator">

+    <eLiterals name="ADD"/>

+    <eLiterals name="SUBTRACT" value="1"/>

+    <eLiterals name="MULTIPLY" value="2"/>

+    <eLiterals name="DIVIDE" value="3"/>

+    <eLiterals name="CONCATENATE" value="4"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EEnum" name="ValueExpressionLabeledDurationType">

+    <eLiterals name="YEARS"/>

+    <eLiterals name="MONTHS" value="1"/>

+    <eLiterals name="DAYS" value="2"/>

+    <eLiterals name="HOURS" value="3"/>

+    <eLiterals name="MINUTES" value="4"/>

+    <eLiterals name="SECONDS" value="5"/>

+    <eLiterals name="MICROSECONDS" value="6"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="TableInDatabase" eSuperTypes="#//TableExpression">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="updateStatement" eType="#//QueryUpdateStatement"

+        transient="true" eOpposite="#//QueryUpdateStatement/targetTable"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="deleteStatement" eType="#//QueryDeleteStatement"

+        transient="true" eOpposite="#//QueryDeleteStatement/targetTable"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="insertStatement" eType="#//QueryInsertStatement"

+        transient="true" eOpposite="#//QueryInsertStatement/targetTable"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="databaseTable" lowerBound="1"

+        eType="ecore:EClass ../../org.eclipse.datatools.modelbase.sql/model/sqlmodel.ecore#//tables/Table"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="derivedColumnList" upperBound="-1"

+        eType="#//ValueExpressionColumn" eOpposite="#//ValueExpressionColumn/tableInDatabase">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Gets the list of columns used anywhere in the statement that are derived from this table."/>

+      </eAnnotations>

+    </eStructuralFeatures>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="TableFunction" eSuperTypes="#//TableExpression">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="function" lowerBound="1"

+        eType="ecore:EClass ../../org.eclipse.datatools.modelbase.sql/model/sqlmodel.ecore#//routines/Function"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="parameterList" upperBound="-1"

+        eType="#//QueryValueExpression" containment="true" eOpposite="#//QueryValueExpression/tableFunction"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="SQLQueryObject" abstract="true" eSuperTypes="../../org.eclipse.datatools.modelbase.sql/model/sqlmodel.ecore#//schema/SQLObject">

+    <eOperations name="getSQL" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+    <eOperations name="setSQL">

+      <eParameters name="sqlText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+    </eOperations>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="QueryChangeStatement" abstract="true"

+      eSuperTypes="#//QueryStatement ../../org.eclipse.datatools.modelbase.sql/model/sqlmodel.ecore#//statements/SQLDataChangeStatement"/>

+  <eClassifiers xsi:type="ecore:EClass" name="ColumnName" eSuperTypes="#//SQLQueryObject">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="tableCorrelation" eType="#//TableCorrelation"

+        transient="true" eOpposite="#//TableCorrelation/columnNameList"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="withTableSpecification"

+        lowerBound="1" eType="#//WithTableSpecification" transient="true" eOpposite="#//WithTableSpecification/columnNameList"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="TableNested" eSuperTypes="#//TableReference">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="nestedTableRef" lowerBound="1"

+        eType="#//TableReference" containment="true" eOpposite="#//TableReference/nest"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="QueryMergeStatement" eSuperTypes="#//QueryChangeStatement">

+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+      <details key="documentation" value="SQL syntax:&#xD;&#xA;MERGE INTO &lt;target table> [ [ AS] &lt;merge correlation name> ]&#xD;&#xA;USING &lt;table reference>&#xD;&#xA;ON &lt;search condition> &#xD;&#xA;&lt;merge operation specificaion list>&#xD;&#xA;&#xD;&#xA;where:&#xD;&#xA;&lt;merge operation specification list> ::=&#xD;&#xA;    &lt;merge operation specification> [&lt;merge operation specification ...]&#xD;&#xA;&lt;merge operation specification> ::=&#xD;&#xA;    &lt;merge update specification>  |  &lt;merge insert specification>&#xD;&#xA;&#xD;&#xA;Note: a non-syntactic rule is that the operation specification list can contain at most one update specification and one insert specification.&#xD;&#xA;&#xD;&#xA;Example:&#xD;&#xA;MERGE INTO inventory AS in&#xD;&#xA;USING &#xD;&#xA;  (SELECT partno, description, count &#xD;&#xA;   FROM shipment&#xD;&#xA;   WHERE shipment.partno IS NOT NULL) AS sh&#xD;&#xA;ON (in.partno = sh.partno)&#xD;&#xA;WHEN MATCHED THEN&#xD;&#xA;   UPDATE SET&#xD;&#xA;        description = sh.description,&#xD;&#xA;        quantity = in.quantity + sh.count&#xD;&#xA;WHEN NOT MATCHED THEN&#xD;&#xA;    INSERT (partno, description, quantity)&#xD;&#xA;    VALUES (sh.partno, sh.description, sh.count) "/>

+    </eAnnotations>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="targetTable" lowerBound="1"

+        eType="#//MergeTargetTable" containment="true" eOpposite="#//MergeTargetTable/mergeStatement"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="sourceTable" lowerBound="1"

+        eType="#//MergeSourceTable" containment="true" eOpposite="#//MergeSourceTable/mergeStatement"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="onCondition" lowerBound="1"

+        eType="#//MergeOnCondition" containment="true" eOpposite="#//MergeOnCondition/mergeStatement"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="operationSpecList" lowerBound="1"

+        upperBound="-1" eType="#//MergeOperationSpecification" containment="true"

+        eOpposite="#//MergeOperationSpecification/mergeStatement"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="SearchConditionNested" eSuperTypes="#//QuerySearchCondition">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="nestedCondition" lowerBound="1"

+        eType="#//QuerySearchCondition" containment="true" eOpposite="#//QuerySearchCondition/nest"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="ValueExpressionNested" eSuperTypes="#//QueryValueExpression">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="nestedValueExpr" lowerBound="1"

+        eType="#//QueryValueExpression" containment="true" eOpposite="#//QueryValueExpression/nest"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="ValueExpressionAtomic" abstract="true"

+      eSuperTypes="#//QueryValueExpression"/>

+  <eClassifiers xsi:type="ecore:EClass" name="OrderBySpecification" abstract="true"

+      eSuperTypes="#//SQLQueryObject">

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="descending" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="OrderingSpecOption" eType="#//OrderingSpecType"/>

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="NullOrderingOption" eType="#//NullOrderingType"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="selectStatement" eType="#//QuerySelectStatement"

+        transient="true" eOpposite="#//QuerySelectStatement/orderByClause"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="query" eType="#//QueryExpressionBody"

+        transient="true" eOpposite="#//QueryExpressionBody/sortSpecList"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="OrderByOrdinal" eSuperTypes="#//OrderBySpecification">

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="ordinalValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="TableCorrelation" eSuperTypes="#//SQLQueryObject">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="tableExpr" eType="#//TableExpression"

+        transient="true" eOpposite="#//TableExpression/tableCorrelation"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="columnNameList" upperBound="-1"

+        eType="#//ColumnName" containment="true" eOpposite="#//ColumnName/tableCorrelation"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="UpdateSource" eSuperTypes="#//SQLQueryObject">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="updateAssignmentExpr" eType="#//UpdateAssignmentExpression"

+        transient="true" eOpposite="#//UpdateAssignmentExpression/updateSource"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="UpdateSourceExprList" eSuperTypes="#//UpdateSource">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueExprList" lowerBound="1"

+        upperBound="-1" eType="#//QueryValueExpression" containment="true" eOpposite="#//QueryValueExpression/updateSourceExprList"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="UpdateSourceQuery" eSuperTypes="#//UpdateSource">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="queryExpr" lowerBound="1"

+        eType="#//QueryExpressionBody" containment="true" eOpposite="#//QueryExpressionBody/updateSourceQuery"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="OrderByResultColumn" eSuperTypes="#//OrderBySpecification">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="resultCol" lowerBound="1"

+        eType="#//ResultColumn" eOpposite="#//ResultColumn/orderByResultCol"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="WithTableReference" eSuperTypes="#//TableExpression">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="withTableSpecification"

+        lowerBound="1" eType="#//WithTableSpecification" eOpposite="#//WithTableSpecification/withTableReferences"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EEnum" name="NullOrderingType">

+    <eLiterals name="NONE"/>

+    <eLiterals name="NULLS_FIRST" value="1"/>

+    <eLiterals name="NULLS_LAST" value="2"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EEnum" name="OrderingSpecType">

+    <eLiterals name="NONE"/>

+    <eLiterals name="ASC" value="1"/>

+    <eLiterals name="DESC" value="2"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="QueryNested" eSuperTypes="#//QueryExpressionBody">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="nestedQuery" lowerBound="1"

+        eType="#//QueryExpressionBody" containment="true" eOpposite="#//QueryExpressionBody/queryNest"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="ValueExpressionRow" eSuperTypes="#//QueryValueExpression">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueExprList" upperBound="-1"

+        eType="#//QueryValueExpression" containment="true" eOpposite="#//QueryValueExpression/valueExprRow"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="MergeTargetTable" eSuperTypes="#//SQLQueryObject">

+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+      <details key="documentation" value="SQL syntax:&#xD;&#xA;&lt;target table> [[AS] &lt;merge correlation name>]&#xD;&#xA;&#xD;&#xA;where:&#xD;&#xA;&lt;target table> is a simple or qualified table name.&#xD;&#xA;&lt;merge correlation name> is a simple identifier"/>

+    </eAnnotations>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="mergeStatement" eType="#//QueryMergeStatement"

+        transient="true" eOpposite="#//QueryMergeStatement/targetTable"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="tableExpr" lowerBound="1"

+        eType="#//TableExpression" containment="true" eOpposite="#//TableExpression/mergeTargetTable"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="MergeSourceTable" eSuperTypes="#//SQLQueryObject">

+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+      <details key="documentation" value="SQL syntax:&#xD;&#xA;&lt;table reference>&#xD;&#xA;&#xD;&#xA;The source table reference can be a table name, a query (SELECT expression), a joined table, a table function..."/>

+    </eAnnotations>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="QueryMergeStatement" upperBound="-1"

+        eType="#//QueryMergeStatement"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="mergeStatement" eType="#//QueryMergeStatement"

+        transient="true" eOpposite="#//QueryMergeStatement/sourceTable"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="tableRef" lowerBound="1"

+        eType="#//TableReference" containment="true" eOpposite="#//TableReference/mergeSourceTable"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="MergeOnCondition" eSuperTypes="#//SQLQueryObject">

+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+      <details key="documentation" value="SQL syntax:&#xD;&#xA;&lt;search condition>&#xD;&#xA;"/>

+    </eAnnotations>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="mergeStatement" eType="#//QueryMergeStatement"

+        transient="true" eOpposite="#//QueryMergeStatement/onCondition"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="searchCondition" lowerBound="1"

+        eType="#//QuerySearchCondition" containment="true" eOpposite="#//QuerySearchCondition/mergeOnCondition"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="MergeUpdateSpecification" eSuperTypes="#//MergeOperationSpecification">

+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+      <details key="documentation" value="SQL syntax:&#xD;&#xA;WHEN MATCHED THEN UPDATE SET &lt;set clause list>&#xD;&#xA;&#xD;&#xA;where&#xD;&#xA;&lt;set clause list> is a list of assignement expressions, such as &#xD;&#xA;  description = sh.description&#xD;&#xA;&#xD;&#xA;The assignment expression list is modelled as a list of UpdateAssignementExpression objects, which in the general case can have a query exrpession as the assignement source, but for Merge only simple assignment list is allowed."/>

+    </eAnnotations>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="assignementExprList" lowerBound="1"

+        upperBound="-1" eType="#//UpdateAssignmentExpression" containment="true" eOpposite="#//UpdateAssignmentExpression/mergeUpdateSpec"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="MergeInsertSpecification" eSuperTypes="#//MergeOperationSpecification">

+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+      <details key="documentation" value="SQL syntax:&#xD;&#xA;WHEN NOT MATCHED THEN &#xD;&#xA;INSERT &lt;target column list> &#xD;&#xA;VALUES &lt;insert value list>&#xD;&#xA;&#xD;&#xA;where&#xD;&#xA;&lt;target column list> is a simple list of column names&#xD;&#xA;&lt;insert value list> is a list of value expressions&#xD;&#xA;&#xD;&#xA;Note that the MergeInsertSpecification object does not &quot;own&quot; the column objects in the target column list.  They are &quot;owned&quot; by the table object in the MergeTargetTable"/>

+    </eAnnotations>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="targetColumnList" upperBound="-1"

+        eType="#//ValueExpressionColumn" eOpposite="#//ValueExpressionColumn/mergeInsertSpec"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="sourceValuesRow" lowerBound="1"

+        eType="#//ValuesRow" containment="true"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="MergeOperationSpecification" eSuperTypes="#//SQLQueryObject">

+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+      <details key="documentation" value="SQL syntax:&#xD;&#xA;&lt;merge update specification>  |  &lt;merge insert specification>&#xD;&#xA;"/>

+    </eAnnotations>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="mergeStatement" eType="#//QueryMergeStatement"

+        transient="true" eOpposite="#//QueryMergeStatement/operationSpecList"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="UpdateOfColumn" eSuperTypes="#//SQLQueryObject">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="updatabilityExpr" eType="#//UpdatabilityExpression"

+        transient="true" eOpposite="#//UpdatabilityExpression/updateOfColumnList"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EEnum" name="UpdatabilityType">

+    <eLiterals name="READ_ONLY"/>

+    <eLiterals name="UPDATE" value="1"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="UpdatabilityExpression" eSuperTypes="#//SQLQueryObject">

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="updatabilityType" eType="#//UpdatabilityType"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="updateOfColumnList" upperBound="-1"

+        eType="#//UpdateOfColumn" containment="true" eOpposite="#//UpdateOfColumn/updatabilityExpr"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="selectStatement" eType="#//QuerySelectStatement"

+        transient="true" eOpposite="#//QuerySelectStatement/updatabilityExpr"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="CallStatement" eSuperTypes="#//SQLQueryObject ../../org.eclipse.datatools.modelbase.sql/model/sqlmodel.ecore#//statements/SQLControlStatement">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="argumentList" upperBound="-1"

+        eType="#//QueryValueExpression" containment="true" eOpposite="#//QueryValueExpression/callStatement"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="procedureRef" lowerBound="1"

+        eType="#//ProcedureReference" containment="true" eOpposite="#//ProcedureReference/callStatement"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="ProcedureReference" eSuperTypes="#//SQLQueryObject">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="callStatement" lowerBound="1"

+        eType="#//CallStatement" transient="true" eOpposite="#//CallStatement/procedureRef"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="procedure" lowerBound="1"

+        eType="ecore:EClass ../../org.eclipse.datatools.modelbase.sql/model/sqlmodel.ecore#//routines/Procedure"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="TableQueryLateral" eSuperTypes="#//TableExpression">

+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+      <details key="documentation" value="A &quot;lateral&quot; table query is a query that appears in the FROM clause.  However it is semantically different from a regular FROM clause query in that the lateral table query can itself contain references to other tables defined before (that is, to the left of it) in the same FROM clause.  Regular FROM clause queries can only refer to tables defined at a higher level in the statement.  In ISO SQL a lateral table query expression is prefixed by the keyword LATERAL.  (The DB2 SQL dialects prefix the lateral query table with the keyword TABLE.)&#xD;&#xA;&#xD;&#xA;For example, here is a statement containing a lateral table query expression:&#xD;&#xA;&#xD;&#xA;SELECT d.dept_name, e.emp_name&#xD;&#xA;  FROM dept d, LATERAL( &#xD;&#xA;    SELECT emp_id, emp_name&#xD;&#xA;    FROM emp&#xD;&#xA;    WHERE emp_dept = d.dept_id ) as e&#xD;&#xA;&#xD;&#xA;The reference to d.dept_id is legal in a lateral table query, but would not be legal in a regular table query expression."/>

+    </eAnnotations>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="query" lowerBound="1" eType="#//QueryExpressionBody"

+        containment="true"/>

+  </eClassifiers>

+</ecore:EPackage>

diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.genmodel b/plugins/org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.genmodel
new file mode 100644
index 0000000..0a51ed5
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.genmodel
@@ -0,0 +1,532 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<genmodel:GenModel xmi:version="2.0"

+    xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"

+    xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.datatools.modelbase.sql.query/src"

+    creationCommands="false" editDirectory="/org.eclipse.datatools.modelbase.sql.query.edit/src"

+    editorDirectory="/org.eclipse.datatools.modelbase.sql.query.editor/src" modelPluginID="org.eclipse.datatools.modelbase.sql.query"

+    runtimeJar="true" modelName="SQLQueryModel" editPluginClass="org.eclipse.datatools.modelbase.sql.query.provider.SQLQueryEditPlugin"

+    editorPluginClass="org.eclipse.datatools.modelbase.sql.query.presentation.SQLQueryEditorPlugin"

+    importerID="org.eclipse.emf.importer.rose" usedGenPackages="../../org.eclipse.datatools.modelbase.sql/model/sqlmodel.genmodel#//sqlmodel ../../org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore">

+  <foreignModel>SQLQueryModel.mdl</foreignModel>

+  <foreignModel>ECORE_MODEL_PLUGIN_PATH</foreignModel>

+  <foreignModel>../..</foreignModel>

+  <foreignModel>CDM_EXTRACT_PATH</foreignModel>

+  <foreignModel>SQL_MODEL_PLUGIN_PATH</foreignModel>

+  <genPackages prefix="SQLQueryModel" basePackage="org.eclipse.datatools.modelbase.sql"

+      ecorePackage="SQLQueryModel.ecore#/">

+    <genEnums ecoreEnum="SQLQueryModel.ecore#//SuperGroupType">

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//SuperGroupType/CUBE"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//SuperGroupType/GRANDTOTAL"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//SuperGroupType/ROLLUP"/>

+    </genEnums>

+    <genEnums ecoreEnum="SQLQueryModel.ecore#//PredicateQuantifiedType">

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//PredicateQuantifiedType/SOME"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//PredicateQuantifiedType/ANY"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//PredicateQuantifiedType/ALL"/>

+    </genEnums>

+    <genEnums ecoreEnum="SQLQueryModel.ecore#//PredicateComparisonOperator">

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//PredicateComparisonOperator/EQUAL"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//PredicateComparisonOperator/NOT_EQUAL"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//PredicateComparisonOperator/LESS_THAN"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//PredicateComparisonOperator/GREATER_THAN"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//PredicateComparisonOperator/LESS_THAN_OR_EQUAL"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//PredicateComparisonOperator/GREATER_THAN_OR_EQUAL"/>

+    </genEnums>

+    <genEnums ecoreEnum="SQLQueryModel.ecore#//SearchConditionCombinedOperator">

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//SearchConditionCombinedOperator/AND"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//SearchConditionCombinedOperator/OR"/>

+    </genEnums>

+    <genEnums ecoreEnum="SQLQueryModel.ecore#//TableJoinedOperator">

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//TableJoinedOperator/DEFAULT_INNER"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//TableJoinedOperator/EXPLICIT_INNER"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//TableJoinedOperator/LEFT_OUTER"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//TableJoinedOperator/RIGHT_OUTER"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//TableJoinedOperator/FULL_OUTER"/>

+    </genEnums>

+    <genEnums ecoreEnum="SQLQueryModel.ecore#//QueryCombinedOperator">

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//QueryCombinedOperator/UNION"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//QueryCombinedOperator/UNION_ALL"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//QueryCombinedOperator/INTERSECT"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//QueryCombinedOperator/INTERSECT_ALL"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//QueryCombinedOperator/EXCEPT"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//QueryCombinedOperator/EXCEPT_ALL"/>

+    </genEnums>

+    <genEnums ecoreEnum="SQLQueryModel.ecore#//ValueExpressionUnaryOperator">

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//ValueExpressionUnaryOperator/NONE"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//ValueExpressionUnaryOperator/PLUS"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//ValueExpressionUnaryOperator/MINUS"/>

+    </genEnums>

+    <genEnums ecoreEnum="SQLQueryModel.ecore#//ValueExpressionCombinedOperator">

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//ValueExpressionCombinedOperator/ADD"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//ValueExpressionCombinedOperator/SUBTRACT"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//ValueExpressionCombinedOperator/MULTIPLY"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//ValueExpressionCombinedOperator/DIVIDE"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//ValueExpressionCombinedOperator/CONCATENATE"/>

+    </genEnums>

+    <genEnums ecoreEnum="SQLQueryModel.ecore#//ValueExpressionLabeledDurationType">

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//ValueExpressionLabeledDurationType/YEARS"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//ValueExpressionLabeledDurationType/MONTHS"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//ValueExpressionLabeledDurationType/DAYS"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//ValueExpressionLabeledDurationType/HOURS"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//ValueExpressionLabeledDurationType/MINUTES"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//ValueExpressionLabeledDurationType/SECONDS"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//ValueExpressionLabeledDurationType/MICROSECONDS"/>

+    </genEnums>

+    <genEnums ecoreEnum="SQLQueryModel.ecore#//NullOrderingType">

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//NullOrderingType/NONE"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//NullOrderingType/NULLS_FIRST"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//NullOrderingType/NULLS_LAST"/>

+    </genEnums>

+    <genEnums ecoreEnum="SQLQueryModel.ecore#//OrderingSpecType">

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//OrderingSpecType/NONE"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//OrderingSpecType/ASC"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//OrderingSpecType/DESC"/>

+    </genEnums>

+    <genEnums typeSafeEnumCompatible="false" ecoreEnum="SQLQueryModel.ecore#//UpdatabilityType">

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//UpdatabilityType/READ_ONLY"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLQueryModel.ecore#//UpdatabilityType/UPDATE"/>

+    </genEnums>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//QueryStatement"/>

+    <genClasses ecoreClass="SQLQueryModel.ecore#//QueryDeleteStatement">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryDeleteStatement/whereCurrentOfClause"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryDeleteStatement/whereClause"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryDeleteStatement/targetTable"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLQueryModel.ecore#//QueryInsertStatement">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryInsertStatement/sourceQuery"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryInsertStatement/sourceValuesRowList"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryInsertStatement/targetTable"/>

+      <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryInsertStatement/targetColumnList"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLQueryModel.ecore#//QuerySelectStatement">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QuerySelectStatement/queryExpr"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QuerySelectStatement/orderByClause"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QuerySelectStatement/updatabilityExpr"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLQueryModel.ecore#//QueryUpdateStatement">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryUpdateStatement/assignmentClause"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryUpdateStatement/whereCurrentOfClause"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryUpdateStatement/whereClause"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryUpdateStatement/targetTable"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//UpdateAssignmentExpression">

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//UpdateAssignmentExpression/updateStatement"/>

+      <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//UpdateAssignmentExpression/targetColumnList"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//UpdateAssignmentExpression/updateSource"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//UpdateAssignmentExpression/mergeUpdateSpec"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//CursorReference">

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//CursorReference/updateStatement"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//CursorReference/deleteStatement"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//QuerySearchCondition">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLQueryModel.ecore#//QuerySearchCondition/negatedCondition"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QuerySearchCondition/updateStatement"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QuerySearchCondition/deleteStatement"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QuerySearchCondition/tableJoined"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QuerySearchCondition/combinedLeft"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QuerySearchCondition/combinedRight"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QuerySearchCondition/querySelectHaving"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QuerySearchCondition/querySelectWhere"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QuerySearchCondition/valueExprCaseSearchContent"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QuerySearchCondition/nest"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QuerySearchCondition/mergeOnCondition"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//QueryExpressionBody">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLQueryModel.ecore#//QueryExpressionBody/rowFetchLimit"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryExpressionBody/queryExpression"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryExpressionBody/combinedLeft"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryExpressionBody/combinedRight"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryExpressionBody/predicateExists"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryExpressionBody/updateSourceQuery"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryExpressionBody/withTableSpecification"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryExpressionBody/queryNest"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryExpressionBody/sortSpecList"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//QueryValueExpression">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLQueryModel.ecore#//QueryValueExpression/unaryOperator"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryValueExpression/dataType"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryValueExpression/valuesRow"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryValueExpression/orderByValueExpr"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryValueExpression/resultColumn"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryValueExpression/basicRight"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryValueExpression/basicLeft"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryValueExpression/likePattern"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryValueExpression/likeMatching"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryValueExpression/predicateNull"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryValueExpression/inValueListRight"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryValueExpression/inValueListLeft"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryValueExpression/inValueRowSelectLeft"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryValueExpression/inValueSelectLeft"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryValueExpression/quantifiedRowSelectLeft"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryValueExpression/quantifiedValueSelectLeft"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryValueExpression/betweenLeft"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryValueExpression/betweenRight1"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryValueExpression/betweenRight2"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryValueExpression/valueExprCast"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryValueExpression/valueExprFunction"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryValueExpression/valueExprCombinedLeft"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryValueExpression/valueExprCombinedRight"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryValueExpression/groupingExpr"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryValueExpression/valueExprCaseElse"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryValueExpression/valueExprCaseSimple"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryValueExpression/valueExprCaseSimpleContentWhen"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryValueExpression/valueExprCaseSimpleContentResult"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryValueExpression/valueExprCaseSearchContent"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryValueExpression/likeEscape"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryValueExpression/valueExprLabeledDuration"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryValueExpression/nest"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryValueExpression/updateSourceExprList"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryValueExpression/tableFunction"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryValueExpression/valueExprRow"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryValueExpression/callStatement"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//QueryExpressionRoot">

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryExpressionRoot/insertStatement"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryExpressionRoot/selectStatement"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryExpressionRoot/withClause"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryExpressionRoot/query"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryExpressionRoot/inValueRowSelectRight"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryExpressionRoot/inValueSelectRight"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryExpressionRoot/quantifiedRowSelectRight"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryExpressionRoot/quantifiedValueSelectRight"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryExpressionRoot/valExprScalarSelect"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLQueryModel.ecore#//ValuesRow">

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//ValuesRow/insertStatement"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//ValuesRow/exprList"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//ValuesRow/queryValues"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLQueryModel.ecore#//QueryValues">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryValues/valuesRowList"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//TableReference">

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//TableReference/tableJoinedRight"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//TableReference/tableJoinedLeft"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//TableReference/querySelect"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//TableReference/nest"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//TableReference/mergeSourceTable"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//TableExpression">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//TableExpression/columnList"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//TableExpression/tableCorrelation"/>

+      <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//TableExpression/resultTableAllColumns"/>

+      <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//TableExpression/valueExprColumns"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//TableExpression/mergeTargetTable"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//TableJoined">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLQueryModel.ecore#//TableJoined/joinOperator"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//TableJoined/joinCondition"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//TableJoined/tableRefRight"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//TableJoined/tableRefLeft"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLQueryModel.ecore#//WithTableSpecification">

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//WithTableSpecification/queryExpressionRoot"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//WithTableSpecification/withTableQueryExpr"/>

+      <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//WithTableSpecification/withTableReferences"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//WithTableSpecification/columnNameList"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//Predicate">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLQueryModel.ecore#//Predicate/negatedPredicate"/>

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLQueryModel.ecore#//Predicate/hasSelectivity"/>

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLQueryModel.ecore#//Predicate/selectivityValue"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//SearchConditionCombined">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLQueryModel.ecore#//SearchConditionCombined/combinedOperator"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//SearchConditionCombined/leftCondition"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//SearchConditionCombined/rightCondition"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//OrderByValueExpression">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//OrderByValueExpression/valueExpr"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLQueryModel.ecore#//QueryCombined">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLQueryModel.ecore#//QueryCombined/combinedOperator"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryCombined/leftQuery"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryCombined/rightQuery"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLQueryModel.ecore#//QuerySelect">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLQueryModel.ecore#//QuerySelect/distinct"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QuerySelect/havingClause"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QuerySelect/whereClause"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QuerySelect/groupByClause"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QuerySelect/selectClause"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QuerySelect/fromClause"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QuerySelect/intoClause"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//GroupingSpecification">

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//GroupingSpecification/querySelect"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//QueryResultSpecification">

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryResultSpecification/querySelect"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//ResultTableAllColumns">

+      <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//ResultTableAllColumns/tableExpr"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//ResultColumn">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//ResultColumn/valueExpr"/>

+      <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//ResultColumn/orderByResultCol"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//PredicateBasic">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLQueryModel.ecore#//PredicateBasic/comparisonOperator"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//PredicateBasic/rightValueExpr"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//PredicateBasic/leftValueExpr"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//PredicateQuantified"/>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//PredicateBetween">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLQueryModel.ecore#//PredicateBetween/notBetween"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//PredicateBetween/leftValueExpr"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//PredicateBetween/rightValueExpr1"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//PredicateBetween/rightValueExpr2"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//PredicateExists">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//PredicateExists/queryExpr"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//PredicateIn">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLQueryModel.ecore#//PredicateIn/notIn"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//PredicateLike">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLQueryModel.ecore#//PredicateLike/notLike"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//PredicateLike/patternValueExpr"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//PredicateLike/matchingValueExpr"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//PredicateLike/escapeValueExpr"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//PredicateIsNull">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLQueryModel.ecore#//PredicateIsNull/notNull"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//PredicateIsNull/valueExpr"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//PredicateQuantifiedValueSelect">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLQueryModel.ecore#//PredicateQuantifiedValueSelect/quantifiedType"/>

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLQueryModel.ecore#//PredicateQuantifiedValueSelect/comparisonOperator"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//PredicateQuantifiedValueSelect/queryExpr"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//PredicateQuantifiedValueSelect/valueExpr"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//PredicateQuantifiedRowSelect">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLQueryModel.ecore#//PredicateQuantifiedRowSelect/quantifiedType"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//PredicateQuantifiedRowSelect/queryExpr"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//PredicateQuantifiedRowSelect/valueExprList"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//PredicateInValueSelect">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//PredicateInValueSelect/queryExpr"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//PredicateInValueSelect/valueExpr"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//PredicateInValueList">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//PredicateInValueList/valueExprList"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//PredicateInValueList/valueExpr"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//PredicateInValueRowSelect">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//PredicateInValueRowSelect/valueExprList"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//PredicateInValueRowSelect/queryExpr"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//ValueExpressionSimple">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLQueryModel.ecore#//ValueExpressionSimple/value"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//ValueExpressionColumn">

+      <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//ValueExpressionColumn/assignmentExprTarget"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//ValueExpressionColumn/parentTableExpr"/>

+      <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//ValueExpressionColumn/insertStatement"/>

+      <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//ValueExpressionColumn/tableExpr"/>

+      <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//ValueExpressionColumn/tableInDatabase"/>

+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//ValueExpressionColumn/mergeInsertSpec"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//ValueExpressionVariable">

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//ValueExpressionVariable/querySelect"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//ValueExpressionScalarSelect">

+      <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//ValueExpressionScalarSelect/queryExpr"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//ValueExpressionLabeledDuration">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLQueryModel.ecore#//ValueExpressionLabeledDuration/labeledDurationType"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//ValueExpressionLabeledDuration/valueExpr"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//ValueExpressionCase">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//ValueExpressionCase/caseElse"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//ValueExpressionCast">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//ValueExpressionCast/valueExpr"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//ValueExpressionNullValue"/>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//ValueExpressionDefaultValue"/>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//ValueExpressionFunction">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLQueryModel.ecore#//ValueExpressionFunction/specialRegister"/>

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLQueryModel.ecore#//ValueExpressionFunction/distinct"/>

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLQueryModel.ecore#//ValueExpressionFunction/columnFunction"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//ValueExpressionFunction/parameterList"/>

+      <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//ValueExpressionFunction/function"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//ValueExpressionCombined">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLQueryModel.ecore#//ValueExpressionCombined/combinedOperator"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//ValueExpressionCombined/leftValueExpr"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//ValueExpressionCombined/rightValueExpr"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//GroupingSets">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//GroupingSets/groupingSetsElementList"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//Grouping">

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//Grouping/groupingSetsElementExpr"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//GroupingSetsElement">

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//GroupingSetsElement/groupingSets"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//GroupingSetsElementSublist">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//GroupingSetsElementSublist/groupingSetsElementExprList"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//GroupingSetsElementExpression">

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//GroupingSetsElementExpression/groupingSetsElementSublist"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//GroupingSetsElementExpression/grouping"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//SuperGroup">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLQueryModel.ecore#//SuperGroup/superGroupType"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//SuperGroup/superGroupElementList"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//GroupingExpression">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//GroupingExpression/valueExpr"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//GroupingExpression/superGroupElementExpr"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//SuperGroupElement">

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//SuperGroupElement/superGroup"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//SuperGroupElementSublist">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//SuperGroupElementSublist/superGroupElementExprList"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//SuperGroupElementExpression">

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//SuperGroupElementExpression/superGroupElementSublist"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//SuperGroupElementExpression/groupingExpr"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//ValueExpressionCaseSearch">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//ValueExpressionCaseSearch/searchContentList"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//ValueExpressionCaseSimple">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//ValueExpressionCaseSimple/contentList"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//ValueExpressionCaseSimple/valueExpr"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//ValueExpressionCaseElse">

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//ValueExpressionCaseElse/valueExprCase"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//ValueExpressionCaseElse/valueExpr"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//ValueExpressionCaseSearchContent">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//ValueExpressionCaseSearchContent/valueExpr"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//ValueExpressionCaseSearchContent/searchCondition"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//ValueExpressionCaseSearchContent/valueExprCaseSearch"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//ValueExpressionCaseSimpleContent">

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//ValueExpressionCaseSimpleContent/valueExprCaseSimple"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//ValueExpressionCaseSimpleContent/whenValueExpr"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//ValueExpressionCaseSimpleContent/resultValueExpr"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//TableInDatabase">

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//TableInDatabase/updateStatement"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//TableInDatabase/deleteStatement"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//TableInDatabase/insertStatement"/>

+      <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//TableInDatabase/databaseTable"/>

+      <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//TableInDatabase/derivedColumnList"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//TableFunction">

+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//TableFunction/function"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//TableFunction/parameterList"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//SQLQueryObject">

+      <genOperations ecoreOperation="SQLQueryModel.ecore#//SQLQueryObject/getSQL"/>

+      <genOperations ecoreOperation="SQLQueryModel.ecore#//SQLQueryObject/setSQL">

+        <genParameters ecoreParameter="SQLQueryModel.ecore#//SQLQueryObject/setSQL/sqlText"/>

+      </genOperations>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//QueryChangeStatement"/>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//ColumnName">

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//ColumnName/tableCorrelation"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//ColumnName/withTableSpecification"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//TableNested">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//TableNested/nestedTableRef"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//QueryMergeStatement">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryMergeStatement/targetTable"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryMergeStatement/sourceTable"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryMergeStatement/onCondition"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryMergeStatement/operationSpecList"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//SearchConditionNested">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//SearchConditionNested/nestedCondition"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//ValueExpressionNested">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//ValueExpressionNested/nestedValueExpr"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//ValueExpressionAtomic"/>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//OrderBySpecification">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLQueryModel.ecore#//OrderBySpecification/descending"/>

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLQueryModel.ecore#//OrderBySpecification/OrderingSpecOption"/>

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLQueryModel.ecore#//OrderBySpecification/NullOrderingOption"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//OrderBySpecification/selectStatement"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//OrderBySpecification/query"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//OrderByOrdinal">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLQueryModel.ecore#//OrderByOrdinal/ordinalValue"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//TableCorrelation">

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//TableCorrelation/tableExpr"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//TableCorrelation/columnNameList"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//UpdateSource">

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//UpdateSource/updateAssignmentExpr"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//UpdateSourceExprList">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//UpdateSourceExprList/valueExprList"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//UpdateSourceQuery">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//UpdateSourceQuery/queryExpr"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//OrderByResultColumn">

+      <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//OrderByResultColumn/resultCol"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//WithTableReference">

+      <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//WithTableReference/withTableSpecification"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLQueryModel.ecore#//QueryNested">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//QueryNested/nestedQuery"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLQueryModel.ecore#//ValueExpressionRow">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//ValueExpressionRow/valueExprList"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLQueryModel.ecore#//MergeTargetTable">

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//MergeTargetTable/mergeStatement"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//MergeTargetTable/tableExpr"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLQueryModel.ecore#//MergeSourceTable">

+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//MergeSourceTable/QueryMergeStatement"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//MergeSourceTable/mergeStatement"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//MergeSourceTable/tableRef"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLQueryModel.ecore#//MergeOnCondition">

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//MergeOnCondition/mergeStatement"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//MergeOnCondition/searchCondition"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLQueryModel.ecore#//MergeUpdateSpecification">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//MergeUpdateSpecification/assignementExprList"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLQueryModel.ecore#//MergeInsertSpecification">

+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//MergeInsertSpecification/targetColumnList"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//MergeInsertSpecification/sourceValuesRow"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLQueryModel.ecore#//MergeOperationSpecification">

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//MergeOperationSpecification/mergeStatement"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLQueryModel.ecore#//UpdateOfColumn">

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//UpdateOfColumn/updatabilityExpr"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLQueryModel.ecore#//UpdatabilityExpression">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLQueryModel.ecore#//UpdatabilityExpression/updatabilityType"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//UpdatabilityExpression/updateOfColumnList"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//UpdatabilityExpression/selectStatement"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLQueryModel.ecore#//CallStatement">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//CallStatement/argumentList"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//CallStatement/procedureRef"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLQueryModel.ecore#//ProcedureReference">

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//ProcedureReference/callStatement"/>

+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//ProcedureReference/procedure"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLQueryModel.ecore#//TableQueryLateral">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLQueryModel.ecore#//TableQueryLateral/query"/>

+    </genClasses>

+  </genPackages>

+</genmodel:GenModel>

diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.mdl b/plugins/org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.mdl
new file mode 100644
index 0000000..93ac406
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.mdl
@@ -0,0 +1,5234 @@
+

+(object Petal

+    version    	50

+    _written   	"Rose 2006.0.0.060314"

+    charSet    	0)

+

+(object Design "Logical View"

+    is_unit    	TRUE

+    is_loaded  	TRUE

+    attributes 	(list Attribute_Set

+	(object Attribute

+	    tool       	"Java"

+	    name       	"IDE"

+	    value      	"Internal Editor")

+	(object Attribute

+	    tool       	"Java"

+	    name       	"UserDefineTagName1"

+	    value      	"")

+	(object Attribute

+	    tool       	"Java"

+	    name       	"UserDefineTagText1"

+	    value      	"")

+	(object Attribute

+	    tool       	"Java"

+	    name       	"UserDefineTagApply1"

+	    value      	"")

+	(object Attribute

+	    tool       	"Java"

+	    name       	"UserDefineTagName2"

+	    value      	"")

+	(object Attribute

+	    tool       	"Java"

+	    name       	"UserDefineTagText2"

+	    value      	"")

+	(object Attribute

+	    tool       	"Java"

+	    name       	"UserDefineTagApply2"

+	    value      	"")

+	(object Attribute

+	    tool       	"Java"

+	    name       	"UserDefineTagName3"

+	    value      	"")

+	(object Attribute

+	    tool       	"Java"

+	    name       	"UserDefineTagText3"

+	    value      	"")

+	(object Attribute

+	    tool       	"Java"

+	    name       	"UserDefineTagApply3"

+	    value      	""))

+    quid       	"40D75E7A0180"

+    enforceClosureAutoLoad 	FALSE

+    defaults   	(object defaults

+	rightMargin 	0.250000

+	leftMargin 	0.250000

+	topMargin  	0.250000

+	bottomMargin 	0.500000

+	pageOverlap 	0.250000

+	clipIconLabels 	TRUE

+	autoResize 	TRUE

+	snapToGrid 	TRUE

+	gridX      	13

+	gridY      	13

+	defaultFont 	(object Font

+	    size       	10

+	    face       	"Arial"

+	    bold       	FALSE

+	    italics    	FALSE

+	    underline  	FALSE

+	    strike     	FALSE

+	    color      	0

+	    default_color 	TRUE)

+	showMessageNum 	3

+	showClassOfObject 	TRUE

+	notation   	"Unified")

+    root_usecase_package 	(object Class_Category "Use Case View"

+	quid       	"40D75E7A0182"

+	exportControl 	"Public"

+	global     	TRUE

+	logical_models 	(list unit_reference_list)

+	logical_presentations 	(list unit_reference_list

+	    (object UseCaseDiagram "Main"

+		quid       	"40D75E7A0195"

+		title      	"Main"

+		zoom       	100

+		max_height 	28350

+		max_width  	21600

+		origin_x   	0

+		origin_y   	0

+		items      	(list diagram_item_list))))

+    root_category 	(object Class_Category "Logical View"

+	quid       	"40D75E7A0181"

+	exportControl 	"Public"

+	global     	TRUE

+	subsystem  	"Component View"

+	quidu      	"40D75E7A0183"

+	logical_models 	(list unit_reference_list

+	    (object Class_Category "SQLQueryModel"

+		is_unit    	TRUE

+		is_loaded  	FALSE

+		file_name  	"$CDM_EXTRACT_PATH\\org.eclipse.datatools.modelbase.sql.query\\model\\SQLQueryModel.cat"

+		quid       	"40467E9F03A6")

+	    (object Class_Category "SQLModel"

+		is_unit    	TRUE

+		is_loaded  	FALSE

+		file_name  	"$CDM_EXTRACT_PATH\\org.eclipse.datatools.modelbase.sql\\model\\SQLModel.cat"

+		quid       	"3E9B1F8201C1")

+	    (object Class_Category "ecore"

+		is_unit    	TRUE

+		is_loaded  	FALSE

+		file_name  	"$ECORE_MODEL_PLUGIN_PATH\\org.eclipse.emf.ecore\\model\\org.eclipse.emf.Ecore.cat"

+		quid       	"39A5ED04004E"))

+	logical_presentations 	(list unit_reference_list

+	    (object ClassDiagram "Main"

+		quid       	"40D75E7A0187"

+		title      	"Main"

+		zoom       	100

+		max_height 	28350

+		max_width  	21600

+		origin_x   	0

+		origin_y   	0

+		items      	(list diagram_item_list

+		    (object CategoryView "Logical View::SQLQueryModel" @1

+			location   	(910, 923)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@1

+			    location   	(707, 839)

+			    fill_color 	13434879

+			    nlines     	2

+			    max_width  	406

+			    justify    	0

+			    label      	"SQLQueryModel")

+			icon_style 	"Icon"

+			line_color 	3342489

+			fill_color 	13434879

+			quidu      	"40467E9F03A6"

+			width      	418

+			height     	180)

+		    (object CategoryView "Logical View::SQLModel" @2

+			location   	(910, 585)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@2

+			    location   	(766, 501)

+			    fill_color 	13434879

+			    nlines     	2

+			    max_width  	288

+			    justify    	0

+			    label      	"SQLModel")

+			icon_style 	"Icon"

+			line_color 	3342489

+			fill_color 	13434879

+			quidu      	"3E9B1F8201C1"

+			width      	300

+			height     	180)

+		    (object ImportView "" @3

+			stereotype 	TRUE

+			line_color 	3342489

+			quidu      	"404E1CF70346"

+			client     	@1

+			supplier   	@2

+			vertices   	(list Points

+			    (910, 778)

+			    (910, 675))

+			line_style 	0)

+		    (object CategoryView "Logical View::ecore" @4

+			location   	(910, 195)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@4

+			    location   	(766, 111)

+			    fill_color 	13434879

+			    nlines     	2

+			    max_width  	288

+			    justify    	0

+			    label      	"ecore")

+			icon_style 	"Icon"

+			line_color 	3342489

+			fill_color 	13434879

+			quidu      	"39A5ED04004E"

+			width      	300

+			height     	180)

+		    (object ImportView "" @5

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			stereotype 	TRUE

+			line_color 	3342489

+			quidu      	"412E744E00CF"

+			client     	@2

+			supplier   	@4

+			vertices   	(list Points

+			    (910, 440)

+			    (910, 285))

+			line_style 	0)))))

+    root_subsystem 	(object SubSystem "Component View"

+	quid       	"40D75E7A0183"

+	physical_models 	(list unit_reference_list)

+	physical_presentations 	(list unit_reference_list

+	    (object Module_Diagram "Main"

+		quid       	"40D75E7A0194"

+		title      	"Main"

+		zoom       	100

+		max_height 	28350

+		max_width  	21600

+		origin_x   	0

+		origin_y   	0

+		items      	(list diagram_item_list)))

+	category   	"Logical View"

+	quidu      	"498B7A2300EB")

+    process_structure 	(object Processes

+	quid       	"40D75E7A0184"

+	ProcsNDevs 	(list

+	    (object Process_Diagram "Deployment View"

+		quid       	"40D75E7A0186"

+		title      	"Deployment View"

+		zoom       	100

+		max_height 	28350

+		max_width  	21600

+		origin_x   	0

+		origin_y   	0

+		items      	(list diagram_item_list))))

+    properties 	(object Properties

+	attributes 	(list Attribute_Set

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"propertyId"

+		value      	"809135966")

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"default__Role"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"Synchronize"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"InitialValue"

+			value      	"")))

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"default__Inherit"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"Synchronize"

+			value      	TRUE)))

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"default__Module-Spec"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"Synchronize"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"RevEngRootDirectory"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"RootPackage"

+			value      	"C++ Reverse Engineered")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"RevEngDirectoriesAsPackages"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"HeaderFileExtension"

+			value      	".h")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"ImplementationFileExtension"

+			value      	".cpp")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"NewHeaderFileDirectory"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"NewImplementationFileDirectory"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"FileCapitalization"

+			value      	("FileCapitalizationSet" 0))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CodeGenExtraDirectories"

+			value      	("CodeGenExtraDirectoriesSet" 0))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"StripClassPrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"UseTabs"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"TabWidth"

+			value      	8)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"IndentWidth"

+			value      	4)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"AccessIndentation"

+			value      	-2)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CreateBackupFiles"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"ModelIdCommentRules"

+			value      	("ModelIdCommentRulesSet" 1))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CommentRules"

+			value      	("CommentRulesSet" 1))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"PageWidth"

+			value      	80)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"ClassMemberOrder"

+			value      	("MemberOrderSet" 1))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"OneParameterPerLine"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"NamespaceBraceStyle"

+			value      	("BraceStyleSet" 2))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"ClassBraceStyle"

+			value      	("BraceStyleSet" 2))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"FunctionBraceStyle"

+			value      	("BraceStyleSet" 2))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"Copyright"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"InitialHeaderIncludes"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"InitialBodyIncludes"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CodeGenExtraDirectoriesSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"None"

+				value      	0)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Namespaces"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Packages"

+				value      	2)))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"FileCapitalizationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Same as model"

+				value      	0)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Lower case"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Upper case"

+				value      	2)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Lower case with underscores"

+				value      	3)))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"BraceStyleSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"B1"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"B2"

+				value      	2)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"B3"

+				value      	3)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"B4"

+				value      	4)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"B5"

+				value      	5)))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"MemberOrderSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Public First"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Private First"

+				value      	2)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Order by kind"

+				value      	3)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Unordered"

+				value      	4)))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"ModelIdCommentRulesSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Code generation only"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Code generation and reverse engineering"

+				value      	2)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Never generate model IDs"

+				value      	3)))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CommentRulesSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Always synchronize"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Code generation only"

+				value      	2)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Reverse engineering only"

+				value      	3)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Never synchronize"

+				value      	4)))))

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"default__Module-Body"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"Synchronize"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"RevEngRootDirectory"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"RootPackage"

+			value      	"C++ Reverse Engineered")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"RevEngDirectoriesAsPackages"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"HeaderFileExtension"

+			value      	".h")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"ImplementationFileExtension"

+			value      	".cpp")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"NewHeaderFileDirectory"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"NewImplementationFileDirectory"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"FileCapitalization"

+			value      	("FileCapitalizationSet" 0))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CodeGenExtraDirectories"

+			value      	("CodeGenExtraDirectoriesSet" 0))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"StripClassPrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"UseTabs"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"TabWidth"

+			value      	8)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"IndentWidth"

+			value      	4)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"AccessIndentation"

+			value      	-2)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CreateBackupFiles"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"ModelIdCommentRules"

+			value      	("ModelIdCommentRulesSet" 1))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CommentRules"

+			value      	("CommentRulesSet" 1))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"PageWidth"

+			value      	80)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"ClassMemberOrder"

+			value      	("MemberOrderSet" 1))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"OneParameterPerLine"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"NamespaceBraceStyle"

+			value      	("BraceStyleSet" 2))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"ClassBraceStyle"

+			value      	("BraceStyleSet" 2))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"FunctionBraceStyle"

+			value      	("BraceStyleSet" 2))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"Copyright"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"InitialHeaderIncludes"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"InitialBodyIncludes"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CodeGenExtraDirectoriesSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"None"

+				value      	0)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Namespaces"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Packages"

+				value      	2)))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"FileCapitalizationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Same as model"

+				value      	0)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Lower case"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Upper case"

+				value      	2)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Lower case with underscores"

+				value      	3)))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"BraceStyleSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"B1"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"B2"

+				value      	2)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"B3"

+				value      	3)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"B4"

+				value      	4)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"B5"

+				value      	5)))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"MemberOrderSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Public First"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Private First"

+				value      	2)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Order by kind"

+				value      	3)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Unordered"

+				value      	4)))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"ModelIdCommentRulesSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Code generation only"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Code generation and reverse engineering"

+				value      	2)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Never generate model IDs"

+				value      	3)))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CommentRulesSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Always synchronize"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Code generation only"

+				value      	2)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Reverse engineering only"

+				value      	3)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Never synchronize"

+				value      	4)))))

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"default__Param"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CodeName"

+			value      	"")))

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"default__Attribute"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"Synchronize"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CodeName"

+			value      	"")))

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"default__Operation"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"Synchronize"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"InitialCodeBody"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"Inline"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"GenerateFunctionBody"

+			value      	("GenerateFunctionBodySet" 2))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"GenerateFunctionBodySet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Default"

+				value      	2)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"True"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"False"

+				value      	0)))))

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"default__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"Synchronize"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"ImplementationType"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"HeaderSourceFile"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"BodySourceFile"

+			value      	"")))

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"default__Category"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"IsNamespace"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"default__Uses"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"BodyReferenceOnly"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"ANSI C++ Event Watcher"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"ANSIConvert"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"propertyId"

+		value      	"838326200")

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"default__Project"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SpecFileExtension"

+			value      	"1.ada")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SpecFileBackupExtension"

+			value      	"1.ad~")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SpecFileTemporaryExtension"

+			value      	"1.ad#")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"BodyFileExtension"

+			value      	"2.ada")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"BodyFileBackupExtension"

+			value      	"2.ad~")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"BodyFileTemporaryExtension"

+			value      	"2.ad#")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"CreateMissingDirectories"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GenerateBodies"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GenerateAccessorOperations"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GenerateStandardOperations"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"DefaultCodeBody"

+			value      	"[statement]")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ImplicitParameter"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"CommentWidth"

+			value      	60)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"StopOnError"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ErrorLimit"

+			value      	30)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"UseFileName"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Directory"

+			value      	"$ROSEADA83_SOURCE")))

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"default__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ClassName"

+			value      	"Object")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ClassAccess"

+			value      	("ImplementationSet" 43))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ImplementationType"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"IsSubtype"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"PolymorphicUnit"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"HandleName"

+			value      	"Handle")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"HandleAccess"

+			value      	("ImplementationSet" 45))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Discriminant"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Variant"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"EnumerationLiteralPrefix"

+			value      	"A_")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"RecordFieldPrefix"

+			value      	"The_")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GenerateAccessorOperations"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GenerateStandardOperations"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ImplicitParameter"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ClassParameterName"

+			value      	"This")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"DefaultConstructorKind"

+			value      	("ConstructorKindSet" 199))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"DefaultConstructorName"

+			value      	"Create")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineDefaultConstructor"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"CopyConstructorKind"

+			value      	("ConstructorKindSet" 199))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"CopyConstructorName"

+			value      	"Copy")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineCopyConstructor"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"DestructorName"

+			value      	"Free")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineDestructor"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ClassEqualityOperation"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"HandleEqualityOperation"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineEquality"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"IsTask"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Representation"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ImplementationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Public"

+				value      	45)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Private"

+				value      	43)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"LimitedPrivate"

+				value      	200)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"DoNotCreate"

+				value      	201)))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ConstructorKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Procedure"

+				value      	202)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Function"

+				value      	199)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"DoNotCreate"

+				value      	201)))))

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"default__Module-Spec"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Generate"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"CopyrightNotice"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"FileName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ReturnType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GenericFormalParameters"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"AdditionalWiths"

+			value      	(value Text ""))))

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"default__Module-Body"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Generate"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"CopyrightNotice"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"FileName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ReturnType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"AdditionalWiths"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"IsSubunit"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"default__Operation"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SubprogramImplementation"

+			value      	("SubprogramImplementationSet" 2))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Renames"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ClassParameterMode"

+			value      	("ParameterModeSet" 203))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Inline"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"EntryCode"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ExitCode"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InitialCodeBody"

+			value      	"${default}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Representation"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SubprogramImplementationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Spec"

+				value      	224)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Body"

+				value      	2)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Renaming"

+				value      	222)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Separate"

+				value      	223)))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ParameterModeSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Default"

+				value      	232)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"In"

+				value      	204)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Out"

+				value      	205)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"InOut"

+				value      	203)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"FunctionReturn"

+				value      	206)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"DoNotCreate"

+				value      	201)))))

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"default__Param"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Mode"

+			value      	("ParameterModeSet" 232))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ParameterModeSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Default"

+				value      	232)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"In"

+				value      	204)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Out"

+				value      	205)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"InOut"

+				value      	203)))))

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"default__Has"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"NameIfUnlabeled"

+			value      	"The_${supplier}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"DataMemberName"

+			value      	"${relationship}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GetName"

+			value      	"Get_${relationship}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineGet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SetName"

+			value      	"Set_${relationship}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineSet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"IsConstant"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InitialValue"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Declare"

+			value      	("DeclareSet" 234))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Variant"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ContainerGeneric"

+			value      	"List")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ContainerType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ContainerDeclarations"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SelectorName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SelectorType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"DeclareSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Before"

+				value      	233)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"After"

+				value      	234)))))

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"default__Attribute"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"DataMemberName"

+			value      	"${attribute}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GetName"

+			value      	"Get_${attribute}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineGet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SetName"

+			value      	"Set_${attribute}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineSet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"IsConstant"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InitialValue"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Declare"

+			value      	("DeclareSet" 234))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Variant"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Representation"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"DeclareSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Before"

+				value      	233)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"After"

+				value      	234)))))

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"default__Association"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"NameIfUnlabeled"

+			value      	"The_${targetClass}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GetName"

+			value      	"Get_${association}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineGet"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SetName"

+			value      	"Set_${association}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineSet"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GenerateAssociate"

+			value      	("ProcedureKindSet" 202))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"AssociateName"

+			value      	"Associate")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineAssociate"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GenerateDissociate"

+			value      	("ProcedureKindSet" 202))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"DissociateName"

+			value      	"Dissociate")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineDissociate"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ProcedureKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Procedure"

+				value      	202)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"DoNotCreate"

+				value      	201)))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"FunctionKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Function"

+				value      	199)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"DoNotCreate"

+				value      	201)))))

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"default__Role"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"NameIfUnlabeled"

+			value      	"The_${targetClass}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"DataMemberName"

+			value      	"${target}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GetName"

+			value      	"Get_${target}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineGet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SetName"

+			value      	"Set_${target}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineSet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"IsConstant"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InitialValue"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Declare"

+			value      	("DeclareSet" 234))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Representation"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ContainerGeneric"

+			value      	"List")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ContainerType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ContainerDeclarations"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SelectorName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SelectorType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ProcedureKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Procedure"

+				value      	202)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"DoNotCreate"

+				value      	201)))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"DeclareSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Before"

+				value      	233)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"After"

+				value      	234)))))

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"default__Subsystem"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Directory"

+			value      	"AUTO GENERATE")))

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"propertyId"

+		value      	"838326200")

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"default__Project"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SpecFileExtension"

+			value      	"1.ada")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SpecFileBackupExtension"

+			value      	"1.ad~")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SpecFileTemporaryExtension"

+			value      	"1.ad#")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"BodyFileExtension"

+			value      	"2.ada")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"BodyFileBackupExtension"

+			value      	"2.ad~")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"BodyFileTemporaryExtension"

+			value      	"2.ad#")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"CreateMissingDirectories"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"UseColonNotation"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateBodies"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAccessorOperations"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateStandardOperations"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"DefaultCodeBody"

+			value      	"[statement]")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ImplicitParameter"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"CommentWidth"

+			value      	60)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"StopOnError"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ErrorLimit"

+			value      	30)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"UseFileName"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Directory"

+			value      	"$ROSEADA95_SOURCE")))

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"default__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"TypeName"

+			value      	"Object")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"TypeVisibility"

+			value      	("TypeVisibilitySet" 43))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"TypeImplementation"

+			value      	("TypeImplementationSet" 208))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IncompleteType"

+			value      	("IncompleteTypeSet" 1))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"TypeControl"

+			value      	("TypeControlSet" 225))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"TypeControlName"

+			value      	"Controlled_${type}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"TypeControlVisibility"

+			value      	("TypeVisibilitySet" 43))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"TypeDefinition"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordImplementation"

+			value      	("RecordImplementationSet" 209))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordKindPackageName"

+			value      	"${class}_Record_Kinds")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IsLimited"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IsSubtype"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAccessType"

+			value      	("GenerateAccessTypeSet" 230))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AccessTypeName"

+			value      	"Handle")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AccessTypeVisibility"

+			value      	("TypeVisibilitySet" 45))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AccessTypeDefinition"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AccessClassWide"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"MaybeAliased"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ParameterizedImplementation"

+			value      	("ParameterizedImplementationSet" 11))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ParentClassName"

+			value      	"Superclass")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"EnumerationLiteralPrefix"

+			value      	"A_")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordFieldPrefix"

+			value      	"The_")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ArrayOfTypeName"

+			value      	"Array_Of_${type}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AccessArrayOfTypeName"

+			value      	"Access_Array_Of_${type}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ArrayOfAccessTypeName"

+			value      	"Array_Of_${access_type}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AccessArrayOfAccessTypeName"

+			value      	"Access_Array_Of_${access_type}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ArrayIndexDefinition"

+			value      	"Positive range <>")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAccessorOperations"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateStandardOperations"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ImplicitParameter"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ImplicitParameterName"

+			value      	"This")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateDefaultConstructor"

+			value      	("SubprogramKindSet" 199))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"DefaultConstructorName"

+			value      	"Create")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineDefaultConstructor"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateCopyConstructor"

+			value      	("SubprogramKindSet" 199))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"CopyConstructorName"

+			value      	"Copy")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineCopyConstructor"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateDestructor"

+			value      	("ProcedureKindSet" 202))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"DestructorName"

+			value      	"Free")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineDestructor"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateTypeEquality"

+			value      	("FunctionKindSet" 201))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"TypeEqualityName"

+			value      	(value Text 

+|"="

+			))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineEquality"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Representation"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"TypeImplementationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Tagged"

+				value      	208)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Record"

+				value      	210)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Mixin"

+				value      	211)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Protected"

+				value      	44)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Task"

+				value      	212)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IncompleteTypeSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotDeclare"

+				value      	1)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"NoDiscriminantPart"

+				value      	2)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"UnknownDiscriminantPart"

+				value      	3)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"KnownDiscriminantPart"

+				value      	4)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordImplementationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"SingleType"

+				value      	209)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"MultipleTypes"

+				value      	213)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ParameterizedImplementationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Generic"

+				value      	11)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Unconstrained"

+				value      	214)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"TypeVisibilitySet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Public"

+				value      	45)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Private"

+				value      	43)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SubprogramKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Procedure"

+				value      	202)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Function"

+				value      	199)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ProcedureKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Procedure"

+				value      	202)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"FunctionKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Function"

+				value      	199)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"TypeControlSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"None"

+				value      	225)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"InitializationOnly"

+				value      	226)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"AssignmentFinalizationOnly"

+				value      	227)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"All"

+				value      	228)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAccessTypeSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Always"

+				value      	229)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Auto"

+				value      	230)))))

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"default__Module-Spec"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Generate"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"CopyrightNotice"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"FileName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ReturnType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenericFormalParameters"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AdditionalWiths"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IsPrivate"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"default__Module-Body"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Generate"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"CopyrightNotice"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"FileName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ReturnType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AdditionalWiths"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IsSubunit"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"default__Operation"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SubprogramImplementation"

+			value      	("SubprogramImplementationSet" 2))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Renames"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateOverriding"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ImplicitParameterMode"

+			value      	("ParameterModeSet" 203))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ImplicitParameterClassWide"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAccessOperation"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Inline"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"EntryCode"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ExitCode"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InitialCodeBody"

+			value      	"${default}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"EntryBarrierCondition"

+			value      	"True")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Representation"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SubprogramImplementationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Spec"

+				value      	224)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Body"

+				value      	2)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Abstract"

+				value      	221)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Renaming"

+				value      	222)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"RenamingAsBody"

+				value      	231)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Separate"

+				value      	223)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ParameterModeSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Default"

+				value      	232)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"In"

+				value      	204)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Out"

+				value      	205)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"InOut"

+				value      	203)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Access"

+				value      	220)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))))

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"default__Param"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Mode"

+			value      	("ParameterModeSet" 232))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ParameterModeSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Default"

+				value      	232)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"In"

+				value      	204)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Out"

+				value      	205)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"InOut"

+				value      	203)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Access"

+				value      	220)))))

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"default__Has"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"NameIfUnlabeled"

+			value      	"The_${supplier}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordFieldImplementation"

+			value      	("RecordFieldImplementationSet" 216))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AccessDiscriminantClassWide"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordFieldName"

+			value      	"${relationship}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateGet"

+			value      	("FunctionKindSet" 199))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAccessGet"

+			value      	("FunctionKindSet" 201))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GetName"

+			value      	"Get_${relationship}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineGet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateSet"

+			value      	("ProcedureKindSet" 202))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAccessSet"

+			value      	("ProcedureKindSet" 201))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SetName"

+			value      	"Set_${relationship}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineSet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IsAliased"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IsConstant"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InitialValue"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Declare"

+			value      	("DeclareSet" 234))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ContainerImplementation"

+			value      	("ContainerImplementationSet" 217))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ContainerGeneric"

+			value      	"List")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ContainerType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ContainerDeclarations"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SelectorName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SelectorType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"DeclareSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Before"

+				value      	233)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"After"

+				value      	234)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordFieldImplementationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Component"

+				value      	216)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Discriminant"

+				value      	218)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"AccessDiscriminant"

+				value      	219)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ContainerImplementationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Array"

+				value      	217)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Generic"

+				value      	11)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ProcedureKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Procedure"

+				value      	202)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"FunctionKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Function"

+				value      	199)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))))

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"default__Attribute"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordFieldImplementation"

+			value      	("RecordFieldImplementationSet" 216))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AccessDiscriminantClassWide"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordFieldName"

+			value      	"${attribute}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateGet"

+			value      	("FunctionKindSet" 199))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAccessGet"

+			value      	("FunctionKindSet" 201))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GetName"

+			value      	"Get_${attribute}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineGet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateSet"

+			value      	("ProcedureKindSet" 202))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAccessSet"

+			value      	("ProcedureKindSet" 201))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SetName"

+			value      	"Set_${attribute}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineSet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IsAliased"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IsConstant"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InitialValue"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Declare"

+			value      	("DeclareSet" 234))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Representation"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"DeclareSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Before"

+				value      	233)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"After"

+				value      	234)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordFieldImplementationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Component"

+				value      	216)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Discriminant"

+				value      	218)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"AccessDiscriminant"

+				value      	219)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ProcedureKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Procedure"

+				value      	202)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"FunctionKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Function"

+				value      	199)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))))

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"default__Association"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"NameIfUnlabeled"

+			value      	"The_${targetClass}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateGet"

+			value      	("FunctionKindSet" 199))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GetName"

+			value      	"Get_${association}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineGet"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateSet"

+			value      	("ProcedureKindSet" 202))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SetName"

+			value      	"Set_${association}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineSet"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAssociate"

+			value      	("ProcedureKindSet" 202))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AssociateName"

+			value      	"Associate")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineAssociate"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateDissociate"

+			value      	("ProcedureKindSet" 202))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"DissociateName"

+			value      	"Dissociate")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineDissociate"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ProcedureKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Procedure"

+				value      	202)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"FunctionKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Function"

+				value      	199)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))))

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"default__Role"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"NameIfUnlabeled"

+			value      	"The_${targetClass}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordFieldImplementation"

+			value      	("RecordFieldImplementationSet" 216))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AccessDiscriminantClassWide"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordFieldName"

+			value      	"${target}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateGet"

+			value      	("FunctionKindSet" 199))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAccessGet"

+			value      	("FunctionKindSet" 201))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GetName"

+			value      	"Get_${target}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineGet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateSet"

+			value      	("ProcedureKindSet" 202))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAccessSet"

+			value      	("ProcedureKindSet" 201))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SetName"

+			value      	"Set_${target}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineSet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IsAliased"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IsConstant"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InitialValue"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Declare"

+			value      	("DeclareSet" 234))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Representation"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ContainerImplementation"

+			value      	("ContainerImplementationSet" 217))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ContainerGeneric"

+			value      	"List")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ContainerType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ContainerDeclarations"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SelectorName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SelectorType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ProcedureKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Procedure"

+				value      	202)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"DeclareSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Before"

+				value      	233)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"After"

+				value      	234)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordFieldImplementationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Component"

+				value      	216)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Discriminant"

+				value      	218)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"AccessDiscriminant"

+				value      	219)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ContainerImplementationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Array"

+				value      	217)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Generic"

+				value      	11)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"FunctionKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Function"

+				value      	199)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))))

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"default__Subsystem"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Directory"

+			value      	"AUTO GENERATE")))

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"CORBA"

+		name       	"propertyId"

+		value      	"809135966")

+	    (object Attribute

+		tool       	"CORBA"

+		name       	"default__Project"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"CreateMissingDirectories"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"Editor"

+			value      	("EditorType" 100))

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"IncludePath"

+			value      	"")

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"StopOnError"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"EditorType"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"CORBA"

+				name       	"BuiltIn"

+				value      	100)

+			    (object Attribute

+				tool       	"CORBA"

+				name       	"WindowsShell"

+				value      	101)))

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"PathSeparator"

+			value      	"")))

+	    (object Attribute

+		tool       	"CORBA"

+		name       	"default__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"ArrayDimensions"

+			value      	"")

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"ConstValue"

+			value      	"")

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"ImplementationType"

+			value      	"")))

+	    (object Attribute

+		tool       	"CORBA"

+		name       	"default__Module-Spec"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"AdditionalIncludes"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"CmIdentification"

+			value      	(value Text "  %X% %Q% %Z% %W%"))

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"CopyrightNotice"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"InclusionProtectionSymbol"

+			value      	"AUTO GENERATE")))

+	    (object Attribute

+		tool       	"CORBA"

+		name       	"default__Module-Body"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"AdditionalIncludes"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"CmIdentification"

+			value      	(value Text "  %X% %Q% %Z% %W%"))

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"CopyrightNotice"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"InclusionProtectionSymbol"

+			value      	"AUTO GENERATE")))

+	    (object Attribute

+		tool       	"CORBA"

+		name       	"default__Operation"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"Context"

+			value      	"")

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"OperationIsOneWay"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"CORBA"

+		name       	"default__Attribute"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"ArrayDimensions"

+			value      	"")

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"CaseSpecifier"

+			value      	"")

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"IsReadOnly"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"Order"

+			value      	"")))

+	    (object Attribute

+		tool       	"CORBA"

+		name       	"default__Role"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"ArrayDimensions"

+			value      	"")

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"CaseSpecifier"

+			value      	"")

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"GenerateForwardReference"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"IsReadOnly"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"Order"

+			value      	"")

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"BoundedRoleType"

+			value      	("AssocTypeSet" 47))

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"AssocTypeSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"CORBA"

+				name       	"Array"

+				value      	24)

+			    (object Attribute

+				tool       	"CORBA"

+				name       	"Sequence"

+				value      	47)))))

+	    (object Attribute

+		tool       	"CORBA"

+		name       	"default__Uses"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"GenerateForwardReference"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"CORBA"

+		name       	"default__Param"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"Direction"

+			value      	("ParamDirectionTypeSet" 102))

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"ParamDirectionTypeSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"CORBA"

+				name       	"in"

+				value      	102)

+			    (object Attribute

+				tool       	"CORBA"

+				name       	"inout"

+				value      	103)

+			    (object Attribute

+				tool       	"CORBA"

+				name       	"out"

+				value      	104)))))

+	    (object Attribute

+		tool       	"CORBA"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"Data Modeler"

+		name       	"propertyId"

+		value      	"809135966")

+	    (object Attribute

+		tool       	"Data Modeler"

+		name       	"default__Project"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"project"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"TableCounter"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ViewCounter"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DomainCounter"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"SPPackageCounter"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"TriggerCounter"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IndexCounter"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ConstraintCounter"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"StoreProcedureCounter"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"PrimaryKeyCounter"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ForeignKeyCounter"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"JoinCounter"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"TableSpaceCounter"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"cONTAINERCounter"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"TablePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ViewPrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DomainPrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"TriggerPrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IndexPrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ConstraintPrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"StoreProcedurePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"PrimaryKeyPrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ForeignKeyPrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"TableSpacePrefix"

+			value      	"")))

+	    (object Attribute

+		tool       	"Data Modeler"

+		name       	"default__Module-Spec"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"dmItem"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DMName"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsDatabase"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"TargetDatabase"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"Location"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsTableSpace"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"TableSpaceType"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsDeault"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"BufferPool"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ExtentSize"

+			value      	1)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"PrefetchSize"

+			value      	1)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"PageSize"

+			value      	4)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ManagedBy"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ContainerList"

+			value      	"")))

+	    (object Attribute

+		tool       	"Data Modeler"

+		name       	"default__Category"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"dmItem"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DMName"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"dmSchema"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"dmDomainPackage"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsSchema"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsDomainPackage"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsRootSchema"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsRootDomainPackage"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsSchemaPackage"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DatabaseID"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DBMS"

+			value      	"")))

+	    (object Attribute

+		tool       	"Data Modeler"

+		name       	"default__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"dmItem"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DMName"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsTable"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsView"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsDomain"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsSPPackage"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"Synonymns"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"TableSpaceID"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"SourceId"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"SourceType"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"CorrelationName"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"SelectClause"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsUpdateable"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"CheckOption"

+			value      	"None")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsSnapShot"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsDistinct"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"PersistToServer"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsPackage"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Data Modeler"

+		name       	"default__Attribute"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"dmItem"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DMName"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"Ordinal"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsIdentity"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsUnique"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"NullsAllowed"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"Length"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"Scale"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ColumnType"

+			value      	"Native")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ForBitData"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DefaultValueType"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DefaultValue"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"SourceId"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"SourceType"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"OID"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Data Modeler"

+		name       	"default__Association"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"dmItem"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DMName"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsRelationship"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"SourceId"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"SourceType"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"RIMethod"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ParentUpdateRule"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ParentUpdateRuleName"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ParentDeleteRule"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ParentDeleteRuleName"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ChildInsertRestrict"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ChildInsertRestrictName"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ChildMultiplicity"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ChildMultiplicityName"

+			value      	"")))

+	    (object Attribute

+		tool       	"Data Modeler"

+		name       	"default__Role"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"dmItem"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DMName"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ConstraintName"

+			value      	"")))

+	    (object Attribute

+		tool       	"Data Modeler"

+		name       	"default__Operation"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"dmItem"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DMName"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsConstraint"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ConstraintType"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsIndex"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsTrigger"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsStoredProcedure"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsCluster"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"TableSpace"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"FillFactor"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"KeyList"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"CheckPredicate"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsUnique"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DeferalMode"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"InitialCheckTime"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"TriggerType"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsInsertEvent"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsUpdateEvent"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsDeleteEvent"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"RefOldTable"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"RefNewTable"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"RefOldRow"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"RefNewRow"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsRow"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"WhenClause"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"Language"

+			value      	"SQL")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ProcType"

+			value      	"Procedure")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsDeterministic"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ParameterStyle"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ReturnedNull"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ExternalName"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"Length"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"Scale"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ForBitData"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DefaultValue"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DefaultValueType"

+			value      	"")))

+	    (object Attribute

+		tool       	"Data Modeler"

+		name       	"default__Parameter"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"dmItem"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DMName"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsInParameter"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsOutParameter"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"Ordinal"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"Length"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"Scale"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ForBitData"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DefaultValueType"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DefaultValue"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"OperationID"

+			value      	"")))

+	    (object Attribute

+		tool       	"Data Modeler"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"Data Modeler Communicator"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"Deploy"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"Java"

+		name       	"propertyId"

+		value      	"809135966")

+	    (object Attribute

+		tool       	"Java"

+		name       	"default__Project"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Java"

+			name       	"RootDir"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"CreateMissingDirectories"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"StopOnError"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"UsePrefixes"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"AutoSync"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"NotShowRoseIDDlg"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"ShowCodegenDlg"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateRoseID"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateDefaultJ2EEJavadoc"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateDefaultReturnLine"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"JavadocDefaultAuthor"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"JavadocDefaultVersion"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"JavadocDefaultSince"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"UserDefineJavaDocTags"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"JavadocNumAsterisks"

+			value      	0)

+		    (object Attribute

+			tool       	"Java"

+			name       	"MaxNumChars"

+			value      	80)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Editor"

+			value      	("EditorType" 100))

+		    (object Attribute

+			tool       	"Java"

+			name       	"VM"

+			value      	("VMType" 200))

+		    (object Attribute

+			tool       	"Java"

+			name       	"ClassPath"

+			value      	"C:\\CMVC\\exe\\lib\\SWINGALL.JAR;C:\\CMVC\\exe\\lib\\JHALL.JAR;C:\\CMVC\\exe\\lib\\MERGE95.JAR;.;c:\\lpexw\\bin;C:\\PROGRA~1\\IBM\\SQLLIB\\java\\db2java.zip;C:\\PROGRA~1\\IBM\\SQLLIB\\java\\db2jcc.jar;C:\\PROGRA~1\\IBM\\SQLLIB\\java\\sqlj.zip;C:\\PROGRA~1\\IBM\\SQLLIB\\bin;C:\\PROGRA~1\\IBM\\SQLLIB\\java\\common.jar;")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ReferenceClasspath"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"EditorType"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Java"

+				name       	"BuiltIn"

+				value      	100)))

+		    (object Attribute

+			tool       	"Java"

+			name       	"VMType"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Java"

+				name       	"Sun"

+				value      	200)))

+		    (object Attribute

+			tool       	"Java"

+			name       	"VAJavaWorkingFolder"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"InstanceVariablePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ClassVariablePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"DefaultAttributeDataType"

+			value      	"int")

+		    (object Attribute

+			tool       	"Java"

+			name       	"DefaultOperationReturnType"

+			value      	"void")

+		    (object Attribute

+			tool       	"Java"

+			name       	"NoClassCustomDlg"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"GlobalImports"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Java"

+			name       	"OpenBraceClassStyle"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"OpenBraceMethodStyle"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"UseTabs"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"UseSpaces"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"SpacingItems"

+			value      	3)

+		    (object Attribute

+			tool       	"Java"

+			name       	"RoseDefaultCommentStyle"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"AsteriskCommentStyle"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"JavaCommentStyle"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"JavadocAuthor"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"JavadocSince"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"JavadocVersion"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"BeanPrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"BeanSuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"RemotePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"RemoteSuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"HomePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"HomeSuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"LocalPrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"LocalSuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"LocalHomePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"LocalHomeSuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"PrimaryKeyPrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"PrimaryKeySuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBDTDLocation"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletDTDLocation"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"DefaultEJBVersion"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"DefaultServletVersion"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"SourceControl"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"SCCSelected"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"SCCProjectSourceRoot"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"SCCProjectName"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"SCCComment"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Java"

+		name       	"default__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Java"

+			name       	"Final"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Static"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateDefaultConstructor"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"ConstructorIs"

+			value      	("Ctor_Set" 62))

+		    (object Attribute

+			tool       	"Java"

+			name       	"Ctor_Set"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Java"

+				name       	"public"

+				value      	62)

+			    (object Attribute

+				tool       	"Java"

+				name       	"protected"

+				value      	63)

+			    (object Attribute

+				tool       	"Java"

+				name       	"private"

+				value      	64)

+			    (object Attribute

+				tool       	"Java"

+				name       	"package"

+				value      	65)))

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateFinalizer"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateStaticInitializer"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateInstanceInitializer"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateCode"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"DisableAutoSync"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"ReadOnly"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Strictfp"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Java"

+		name       	"Default_Servlet__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletName"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletContextRef"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"IsSingleThread"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletInitParameter"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletInitParameterNames"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletIsSecure"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletRequestDispatcher"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletRequestDispatcherPath"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"DispatcherInclude"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"DispatcherForward"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletSecurityRoles"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletgetInfo"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletXMLFilePath"

+			value      	"")))

+	    (object Attribute

+		tool       	"Java"

+		name       	"Http_Servlet__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletRequestAttribute"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletRequestAttributesNames"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"MethodForRequestAttributes"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletRequestParameter"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletRequestParameterNames"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"MethodForRequestParameters"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletHeader"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletHeaderNames"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"MethodForHeaders"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletIntHeader"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletDateHeader"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletCookie"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"MethodForCookie"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletContentType"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateHTML"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Java"

+		name       	"Default_EJB__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Java"

+			name       	"Generate_XML_DD"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBCmpField"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBEnvironmentProperties"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBCnxFactory"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBReferences"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBSecurityRoles"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBNameInJAR"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBSessionType"

+			value      	("EJBSessionType_Set" 200))

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBSessionType_Set"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Java"

+				name       	""

+				value      	200)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Stateless"

+				value      	201)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Stateful"

+				value      	202)))

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBTransactionType"

+			value      	("EJBTransactionType_Set" 211))

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBTransactionType_Set"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Java"

+				name       	"Container"

+				value      	211)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Bean"

+				value      	212)))

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBPersistenceType"

+			value      	("EJBPersistenceType_Set" 220))

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBPersistenceType_Set"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Java"

+				name       	""

+				value      	220)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Bean"

+				value      	221)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Container"

+				value      	222)))

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBReentrant"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBSessionSync"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBVersion"

+			value      	("EJBVersion_Set" 230))

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBVersion_Set"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Java"

+				name       	"2.0"

+				value      	230)

+			    (object Attribute

+				tool       	"Java"

+				name       	"1.x"

+				value      	231)))

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBXMLFilePath"

+			value      	"")))

+	    (object Attribute

+		tool       	"Java"

+		name       	"default__Module-Spec"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Java"

+			name       	"CmIdentification"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Java"

+			name       	"CopyrightNotice"

+			value      	(value Text ""))))

+	    (object Attribute

+		tool       	"Java"

+		name       	"default__Module-Body"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Java"

+			name       	"CmIdentification"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Java"

+			name       	"CopyrightNotice"

+			value      	(value Text ""))))

+	    (object Attribute

+		tool       	"Java"

+		name       	"default__Operation"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Java"

+			name       	"Abstract"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Static"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Final"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Native"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Synchronized"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateFullyQualifiedReturn"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"ReplaceExistingCode"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Strictfp"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Java"

+		name       	"default__Attribute"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Java"

+			name       	"Final"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Transient"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Volatile"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"PropertyType"

+			value      	("BeanProperty_Set" 71))

+		    (object Attribute

+			tool       	"Java"

+			name       	"BeanProperty_Set"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Java"

+				name       	"Not A Property"

+				value      	71)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Simple"

+				value      	72)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Bound"

+				value      	73)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Constrained"

+				value      	74)))

+		    (object Attribute

+			tool       	"Java"

+			name       	"IndividualChangeMgt"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Read/Write"

+			value      	("Read/Write_Set" 81))

+		    (object Attribute

+			tool       	"Java"

+			name       	"Read/Write_Set"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Java"

+				name       	"Read & Write"

+				value      	81)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Read Only"

+				value      	82)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Write Only"

+				value      	83)))

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateFullyQualifiedTypes"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Java"

+		name       	"default__Role"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Java"

+			name       	"ContainerClass"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"InitialValue"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"Final"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Transient"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Volatile"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"PropertyType"

+			value      	("BeanProperty_Set" 71))

+		    (object Attribute

+			tool       	"Java"

+			name       	"BeanProperty_Set"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Java"

+				name       	"Not A Property"

+				value      	71)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Simple"

+				value      	72)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Bound"

+				value      	73)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Constrained"

+				value      	74)))

+		    (object Attribute

+			tool       	"Java"

+			name       	"IndividualChangeMgt"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Read/Write"

+			value      	("Read/Write_Set" 81))

+		    (object Attribute

+			tool       	"Java"

+			name       	"Read/Write_Set"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Java"

+				name       	"Read & Write"

+				value      	81)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Read Only"

+				value      	82)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Write Only"

+				value      	83)))

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateFullyQualifiedTypes"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"IsNavigable"

+			value      	TRUE)))

+	    (object Attribute

+		tool       	"Java"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"Oracle8"

+		name       	"propertyId"

+		value      	"360000002")

+	    (object Attribute

+		tool       	"Oracle8"

+		name       	"default__Project"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"DDLScriptFilename"

+			value      	"DDL1.SQL")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"DropClause"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"PrimaryKeyColumnName"

+			value      	"_ID")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"PrimaryKeyColumnType"

+			value      	"NUMBER(5,0)")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"SchemaNamePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"SchemaNameSuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TableNamePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TableNameSuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TypeNamePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TypeNameSuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"ViewNamePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"ViewNameSuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"VarrayNamePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"VarrayNameSuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"NestedTableNamePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"NestedTableNameSuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"ObjectTableNamePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"ObjectTableNameSuffix"

+			value      	"")))

+	    (object Attribute

+		tool       	"Oracle8"

+		name       	"default__Module-Spec"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"IsSchema"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Oracle8"

+		name       	"default__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"OID"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"WhereClause"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"CheckConstraint"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"CollectionTypeLength"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"CollectionTypePrecision"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"CollectionTypeScale"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"CollectionOfREFS"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Oracle8"

+		name       	"default__Operation"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"MethodKind"

+			value      	("MethodKindSet" 1903))

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"OverloadID"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"OrderNumber"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"IsReadNoDataState"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"IsReadNoProcessState"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"IsWriteNoDataState"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"IsWriteNoProcessState"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"IsSelfish"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TriggerType"

+			value      	("TriggerTypeSet" 1801))

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TriggerEvent"

+			value      	("TriggerEventSet" 1601))

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TriggerText"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TriggerReferencingNames"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TriggerForEach"

+			value      	("TriggerForEachSet" 1701))

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TriggerWhenClause"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"MethodKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"MapMethod"

+				value      	1901)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"OrderMethod"

+				value      	1902)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"Function"

+				value      	1903)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"Procedure"

+				value      	1904)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"Operator"

+				value      	1905)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"Constructor"

+				value      	1906)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"Destructor"

+				value      	1907)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"Trigger"

+				value      	1908)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"Calculated"

+				value      	1909)))

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TriggerTypeSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"AFTER"

+				value      	1801)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"BEFORE"

+				value      	1802)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"INSTEAD OF"

+				value      	1803)))

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TriggerForEachSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"ROW"

+				value      	1701)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"STATEMENT"

+				value      	1702)))

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TriggerEventSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"INSERT"

+				value      	1601)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"UPDATE"

+				value      	1602)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"DELETE"

+				value      	1603)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"INSERT OR UPDATE"

+				value      	1604)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"INSERT OR DELETE"

+				value      	1605)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"UPDATE OR DELETE"

+				value      	1606)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"INSERT OR UPDATE OR DELETE"

+				value      	1607)))))

+	    (object Attribute

+		tool       	"Oracle8"

+		name       	"default__Role"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"OrderNumber"

+			value      	"")))

+	    (object Attribute

+		tool       	"Oracle8"

+		name       	"default__Attribute"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"OrderNumber"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"IsUnique"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"NullsAllowed"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"Length"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"Precision"

+			value      	"2")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"Scale"

+			value      	"6")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"IsIndex"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"IsPrimaryKey"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"CompositeUnique"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"CheckConstraint"

+			value      	"")))

+	    (object Attribute

+		tool       	"Oracle8"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"ComponentTest"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"Rose Model Integrator"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"Rose Web Publisher"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"TopLink"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"COM"

+		name       	"propertyId"

+		value      	"783606378")

+	    (object Attribute

+		tool       	"COM"

+		name       	"default__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"COM"

+			name       	"TypeKinds"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"COM"

+				name       	"enum"

+				value      	100)

+			    (object Attribute

+				tool       	"COM"

+				name       	"record"

+				value      	101)

+			    (object Attribute

+				tool       	"COM"

+				name       	"module"

+				value      	102)

+			    (object Attribute

+				tool       	"COM"

+				name       	"interface"

+				value      	103)

+			    (object Attribute

+				tool       	"COM"

+				name       	"dispinterface"

+				value      	104)

+			    (object Attribute

+				tool       	"COM"

+				name       	"coclass"

+				value      	105)

+			    (object Attribute

+				tool       	"COM"

+				name       	"alias"

+				value      	106)

+			    (object Attribute

+				tool       	"COM"

+				name       	"union"

+				value      	107)

+			    (object Attribute

+				tool       	"COM"

+				name       	"max"

+				value      	108)

+			    (object Attribute

+				tool       	"COM"

+				name       	"(none)"

+				value      	109)))

+		    (object Attribute

+			tool       	"COM"

+			name       	"Generate"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"COM"

+			name       	"kind"

+			value      	("TypeKinds" 109))

+		    (object Attribute

+			tool       	"COM"

+			name       	"uuid"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"version"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"helpstring"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"helpcontext"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"attributes"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"dllname"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"alias"

+			value      	"")))

+	    (object Attribute

+		tool       	"COM"

+		name       	"default__Operation"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"COM"

+			name       	"Generate"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"COM"

+			name       	"id"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"helpstring"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"attributes"

+			value      	"")))

+	    (object Attribute

+		tool       	"COM"

+		name       	"default__Attribute"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"COM"

+			name       	"Generate"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"COM"

+			name       	"id"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"helpstring"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"attributes"

+			value      	"")))

+	    (object Attribute

+		tool       	"COM"

+		name       	"default__Module-Spec"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"COM"

+			name       	"Generate"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"COM"

+			name       	"filename"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"library"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"uuid"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"version"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"helpstring"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"helpfile"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"helpcontext"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"lcid"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"attributes"

+			value      	"")))

+	    (object Attribute

+		tool       	"COM"

+		name       	"default__Param"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"COM"

+			name       	"attributes"

+			value      	"")))

+	    (object Attribute

+		tool       	"COM"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"Version Control"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"Visual Basic"

+		name       	"propertyId"

+		value      	"783606378")

+	    (object Attribute

+		tool       	"Visual Basic"

+		name       	"default__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"UpdateCode"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"UpdateModel"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"InstancingSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Visual Basic"

+				name       	"Private"

+				value      	221)

+			    (object Attribute

+				tool       	"Visual Basic"

+				name       	"PublicNotCreatable"

+				value      	213)

+			    (object Attribute

+				tool       	"Visual Basic"

+				name       	"SingleUse"

+				value      	214)

+			    (object Attribute

+				tool       	"Visual Basic"

+				name       	"GlobalSingleUse"

+				value      	215)

+			    (object Attribute

+				tool       	"Visual Basic"

+				name       	"MultiUse"

+				value      	219)

+			    (object Attribute

+				tool       	"Visual Basic"

+				name       	"GlobalMultiUse"

+				value      	220)))

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"BaseSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Visual Basic"

+				name       	"(none)"

+				value      	222)

+			    (object Attribute

+				tool       	"Visual Basic"

+				name       	"0"

+				value      	223)

+			    (object Attribute

+				tool       	"Visual Basic"

+				name       	"1"

+				value      	224)))

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"OptionBase"

+			value      	("BaseSet" 222))

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"OptionExplicit"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"OptionCompare"

+			value      	("CompareSet" 202))

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"Instancing"

+			value      	("InstancingSet" 219))

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"CompareSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Visual Basic"

+				name       	"(none)"

+				value      	202)

+			    (object Attribute

+				tool       	"Visual Basic"

+				name       	"Binary"

+				value      	203)

+			    (object Attribute

+				tool       	"Visual Basic"

+				name       	"Text"

+				value      	204)))))

+	    (object Attribute

+		tool       	"Visual Basic"

+		name       	"default__Operation"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"LibraryName"

+			value      	"")

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"AliasName"

+			value      	"")

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"IsStatic"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"ProcedureID"

+			value      	"")

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"ReplaceExistingBody"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"DefaultBody"

+			value      	(value Text ""))))

+	    (object Attribute

+		tool       	"Visual Basic"

+		name       	"default__Attribute"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"New"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"WithEvents"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"ProcedureID"

+			value      	"")

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"PropertyName"

+			value      	"")

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"Subscript"

+			value      	"")))

+	    (object Attribute

+		tool       	"Visual Basic"

+		name       	"default__Role"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"UpdateCode"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"New"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"WithEvents"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"FullName"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"ProcedureID"

+			value      	"")

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"PropertyName"

+			value      	"")

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"Subscript"

+			value      	"")))

+	    (object Attribute

+		tool       	"Visual Basic"

+		name       	"default__Inherit"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"ImplementsDelegation"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"FullName"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Visual Basic"

+		name       	"default__Param"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"ByVal"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"ByRef"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"Optional"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"ParamArray"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Visual Basic"

+		name       	"default__Module-Spec"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"ProjectFile"

+			value      	"")

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"UpdateCode"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"UpdateModel"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"ImportReferences"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"QuickImport"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"ImportBinary"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Visual Basic"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"VisualStudio"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"Web Modeler"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"XML_DTD"

+		name       	"propertyId"

+		value      	"809135966")

+	    (object Attribute

+		tool       	"XML_DTD"

+		name       	"default__Project"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"CreateMissingDirectories"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"Editor"

+			value      	("EditorType" 100))

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"StopOnError"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"EditorType"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"XML_DTD"

+				name       	"BuiltIn"

+				value      	100)

+			    (object Attribute

+				tool       	"XML_DTD"

+				name       	"WindowsShell"

+				value      	101)))))

+	    (object Attribute

+		tool       	"XML_DTD"

+		name       	"default__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"Entity_SystemID"

+			value      	"")

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"Entity_PublicID"

+			value      	"")

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"NotationValue"

+			value      	"")

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"InternalValue"

+			value      	"")

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"ParameterEntity"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"ExternalEntity"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"Notation_SystemID"

+			value      	"")

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"Notation_PublicID"

+			value      	"")))

+	    (object Attribute

+		tool       	"XML_DTD"

+		name       	"default__Attribute"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"DefaultDeclType"

+			value      	"")))

+	    (object Attribute

+		tool       	"XML_DTD"

+		name       	"default__Module-Spec"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"Assign All"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"ComponentPath"

+			value      	"")))

+	    (object Attribute

+		tool       	"XML_DTD"

+		name       	"HiddenTool"

+		value      	FALSE))

+	quid       	"40D75E7A0185"))

diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/plugin.properties b/plugins/org.eclipse.datatools.modelbase.sql.query/plugin.properties
new file mode 100644
index 0000000..b042c6f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/plugin.properties
@@ -0,0 +1,24 @@
+# NLS_MESSAGEFORMAT_VAR          needed to handle quotes correctly
+# ====================================================================
+
+# ====================================================================
+# $Id: plugin.properties,v 1.4 2006/05/10 14:30:22 jgraham Exp $
+# @generated NOT
+# ====================================================================
+
+# ====================================================================
+# To code developer:
+#   Do NOT change the properties between this line and the
+#   "%%% END OF TRANSLATED PROPERTIES %%%" line.
+#   Make a new property name, append to the end of the file and change
+#   the code to use the new property.
+# ====================================================================
+
+# ====================================================================
+# %%% END OF TRANSLATED PROPERTIES %%%
+# ====================================================================
+
+pluginName = Eclipse Data Tools Platform SQL Query Model Plugin
+nl1PluginName = SQL Query Model Nl1 Fragment
+providerName = Eclipse Data Tools Platform
+
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/plugin.xml b/plugins/org.eclipse.datatools.modelbase.sql.query/plugin.xml
new file mode 100644
index 0000000..7d68c9d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/plugin.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+<plugin>
+
+   <extension-point id="sourceWriterExtension" name="SourceWriterExtension" schema="schema/sourceWriterExtension.exsd"/>
+     
+   <extension
+         point="org.eclipse.datatools.modelbase.sql.query.sourceWriterExtension">
+      <pluginJava class="org.eclipse.datatools.modelbase.sql.query.util.SQLQueryModelPlugin"/>
+      <sourceWriter
+            class="org.eclipse.datatools.modelbase.sql.query.util.SQLQuerySourceWriter"
+            packageName="org.eclipse.datatools.modelbase.sql.query"
+            implPackageName="org.eclipse.datatools.modelbase.sql.query.impl"/>
+   </extension>
+
+   <extension point="org.eclipse.emf.ecore.generated_package">
+      <package
+            uri="http:///org/eclipse/datatools/modelbase/sql/query/SQLQueryModel.ecore"
+            class="org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage"
+            genModel="model/SQLQueryModel.genmodel">
+      </package>
+    </extension>
+    
+</plugin>
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/schema-doc/org_eclipse_datatools_modelbase_sql_query_sourceWriterExtension.html b/plugins/org.eclipse.datatools.modelbase.sql.query/schema-doc/org_eclipse_datatools_modelbase_sql_query_sourceWriterExtension.html
new file mode 100644
index 0000000..06cb693
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/schema-doc/org_eclipse_datatools_modelbase_sql_query_sourceWriterExtension.html
@@ -0,0 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>SourceWriterExtension</title>
+<style>@import url("file:/c:/V3/3.1/eclipse/plugins/org.eclipse.sdk_3.1.0/book.css");</style>
+<style>@import url("file:/c:/V3/3.1/eclipse/plugins/org.eclipse.platform.doc.isv_3.1.0/schema.css");</style>
+</HEAD>
+<BODY>
+<H1><CENTER>SourceWriterExtension</CENTER></H1>
+<p></p>
+<h6 class=CaptionFigColumn id=header>Identifier: </h6>org.eclipse.datatools.modelbase.sql.query.sourcewriterextension<p></p>
+<h6 class=CaptionFigColumn id=header>Since: </h6>[Enter the first release in which this extension point appears.]
+<p></p>
+
+<p>
+<h6 class=CaptionFigColumn id=header>Description: </h6>[Enter description of this extension point.]</p>
+<p><h6 class=CaptionFigColumn id=header>Configuration Markup:</h6></p>
+<p class=code id=dtd>&lt;!ELEMENT <a name="e.extension">extension</a> (<a href="#e.pluginJava">pluginJava</a> , <a href="#e.sourceWriter">sourceWriter</a>+)&gt;</p>
+<p class=code id=dtd>&lt;!ATTLIST extension</p>
+<p class=code id=dtdAttlist>point&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>id&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>name&nbsp;&nbsp;CDATA #IMPLIED&gt;</p>
+<p></p>
+<ul class=ConfigMarkup id=attlistDesc>
+</ul>
+<br><p class=code id=dtd>&lt;!ELEMENT <a name="e.pluginJava">pluginJava</a> EMPTY&gt;</p>
+<p class=code id=dtd>&lt;!ATTLIST pluginJava</p>
+<p class=code id=dtdAttlist>class&nbsp;CDATA #REQUIRED&gt;</p>
+<p></p>
+<p class=ConfigMarkup id=elementDesc>
+The Plugin class that must extend SQLQueryModelPlugin to invoke the registration of SourceWriters at plugin start time</p>
+<br>
+<ul class=ConfigMarkup id=attlistDesc>
+<li><b>class</b> - The Plugin.java file providing life-cycle methods for this plugin</li>
+</ul>
+<br><p class=code id=dtd>&lt;!ELEMENT <a name="e.sourceWriter">sourceWriter</a> EMPTY&gt;</p>
+<p class=code id=dtd>&lt;!ATTLIST sourceWriter</p>
+<p class=code id=dtdAttlist>class&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>packageName&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>implPackageName&nbsp;CDATA #REQUIRED&gt;</p>
+<p></p>
+<ul class=ConfigMarkup id=attlistDesc>
+<li><b>class</b> - The SQLQuerySourceWriter specified by fully qualified class name must implement "appendSQL" methods that have SQLQueryObject arguments out of the package specified in this extension-point's attribute "packageName"</li>
+<li><b>packageName</b> - The package name of the SQLQueryObjects that the SourceWriter is capable of generating SQL source for. The SQLQuerySourceWriter specified by fully qualified class name in this extension-point config attribute "class" must implement "appendSQL" methods that have arguments out of the package specified here</li>
+<li><b>implPackageName</b> - The package name of the SQLQueryObject implementations that the SourceWriter is capable of generating SQL source for. SQLQueryObject implementations must have suffix "Impl" appended to Class name of SQLQueryObject interfaces in package specified by attribute "packageName" in this extension-point configuration</li>
+</ul>
+<br><h6 class=CaptionFigColumn id=header>Examples: </h6>[Enter extension point usage example here.]
+<p></p>
+
+<h6 class=CaptionFigColumn id=header>API Information: </h6>[Enter API information here.]
+<p></p>
+
+<h6 class=CaptionFigColumn id=header>Supplied Implementation: </h6>[Enter information about supplied implementation of this extension point.]
+<p></p>
+
+<br>
+<p class=note id=copyright>
+</p>
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/schema/sourceWriterExtension.exsd b/plugins/org.eclipse.datatools.modelbase.sql.query/schema/sourceWriterExtension.exsd
new file mode 100644
index 0000000..5e631b7
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/schema/sourceWriterExtension.exsd
@@ -0,0 +1,137 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.datatools.modelbase.sql.query" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+      <appInfo>
+         <meta.schema plugin="org.eclipse.datatools.modelbase.sql.query" id="sourcewriterextension" name="SourceWriterExtension"/>
+      </appInfo>
+      <documentation>
+         [Enter description of this extension point.]
+      </documentation>
+   </annotation>
+
+   <element name="extension">
+      <complexType>
+         <sequence>
+            <element ref="pluginJava"/>
+            <element ref="sourceWriter" minOccurs="1" maxOccurs="100"/>
+         </sequence>
+         <attribute name="point" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="pluginJava">
+      <annotation>
+         <documentation>
+            The Plugin class that must extend SQLQueryModelPlugin to invoke the registration of SourceWriters at plugin start time
+         </documentation>
+      </annotation>
+      <complexType>
+         <attribute name="class" type="string" use="required">
+            <annotation>
+               <documentation>
+                  The Plugin.java file providing life-cycle methods for this plugin
+               </documentation>
+               <appInfo>
+                  <meta.attribute kind="java" basedOn="org.eclipse.datatools.modelbase.sql.query.util.SQLQueryModelPlugin:"/>
+               </appInfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="sourceWriter">
+      <complexType>
+         <attribute name="class" type="string" use="required">
+            <annotation>
+               <documentation>
+                  The SQLQuerySourceWriter specified by fully qualified class name must implement &quot;appendSQL&quot; methods that have SQLQueryObject arguments out of the package specified in this extension-point&apos;s attribute &quot;packageName&quot;
+               </documentation>
+               <appInfo>
+                  <meta.attribute kind="java" basedOn="org.eclipse.datatools.modelbase.sql.query.util.SQLQuerySourceWriter:"/>
+               </appInfo>
+            </annotation>
+         </attribute>
+         <attribute name="packageName" type="string" use="required">
+            <annotation>
+               <documentation>
+                  The package name of the SQLQueryObjects that the SourceWriter is capable of generating SQL source for. The SQLQuerySourceWriter specified by fully qualified class name in this extension-point config attribute &quot;class&quot; must implement &quot;appendSQL&quot; methods that have arguments out of the package specified here
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="implPackageName" type="string" use="required">
+            <annotation>
+               <documentation>
+                  The package name of the SQLQueryObject implementations that the SourceWriter is capable of generating SQL source for. SQLQueryObject implementations must have suffix &quot;Impl&quot; appended to Class name of SQLQueryObject interfaces in package specified by attribute &quot;packageName&quot; in this extension-point configuration
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="since"/>
+      </appInfo>
+      <documentation>
+         [Enter the first release in which this extension point appears.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="examples"/>
+      </appInfo>
+      <documentation>
+         [Enter extension point usage example here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="apiInfo"/>
+      </appInfo>
+      <documentation>
+         [Enter API information here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="implementation"/>
+      </appInfo>
+      <documentation>
+         [Enter information about supplied implementation of this extension point.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="copyright"/>
+      </appInfo>
+      <documentation>
+         
+      </documentation>
+   </annotation>
+
+</schema>
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/CallStatement.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/CallStatement.java
new file mode 100644
index 0000000..7a52ab4
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/CallStatement.java
@@ -0,0 +1,77 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+import org.eclipse.datatools.modelbase.sql.statements.SQLControlStatement;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Call Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.CallStatement#getArgumentList <em>Argument List</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.CallStatement#getProcedureRef <em>Procedure Ref</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getCallStatement()
+ * @model
+ * @generated
+ */
+public interface CallStatement extends SQLQueryObject, SQLControlStatement {
+    /**
+     * Returns the value of the '<em><b>Argument List</b></em>' containment reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getCallStatement <em>Call Statement</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Argument List</em>' containment reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Argument List</em>' containment reference list.
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getCallStatement_ArgumentList()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getCallStatement
+     * @model type="org.eclipse.datatools.modelbase.sql.query.QueryValueExpression" opposite="callStatement" containment="true"
+     * @generated
+     */
+    EList getArgumentList();
+
+    /**
+     * Returns the value of the '<em><b>Procedure Ref</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.ProcedureReference#getCallStatement <em>Call Statement</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Procedure Ref</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Procedure Ref</em>' containment reference.
+     * @see #setProcedureRef(ProcedureReference)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getCallStatement_ProcedureRef()
+     * @see org.eclipse.datatools.modelbase.sql.query.ProcedureReference#getCallStatement
+     * @model opposite="callStatement" containment="true" required="true"
+     * @generated
+     */
+    ProcedureReference getProcedureRef();
+
+    /**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.CallStatement#getProcedureRef <em>Procedure Ref</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Procedure Ref</em>' containment reference.
+     * @see #getProcedureRef()
+     * @generated
+     */
+    void setProcedureRef(ProcedureReference value);
+
+} // CallStatement
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ColumnName.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ColumnName.java
new file mode 100644
index 0000000..b4267d9
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ColumnName.java
@@ -0,0 +1,84 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ColumnName.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Column Name</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.ColumnName#getTableCorrelation <em>Table Correlation</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.ColumnName#getWithTableSpecification <em>With Table Specification</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getColumnName()
+ * @model
+ * @generated
+ */
+public interface ColumnName extends SQLQueryObject{
+	/**
+     * Returns the value of the '<em><b>Table Correlation</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.TableCorrelation#getColumnNameList <em>Column Name List</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Table Correlation</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Table Correlation</em>' container reference.
+     * @see #setTableCorrelation(TableCorrelation)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getColumnName_TableCorrelation()
+     * @see org.eclipse.datatools.modelbase.sql.query.TableCorrelation#getColumnNameList
+     * @model opposite="columnNameList"
+     * @generated
+     */
+    TableCorrelation getTableCorrelation();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.ColumnName#getTableCorrelation <em>Table Correlation</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Table Correlation</em>' container reference.
+     * @see #getTableCorrelation()
+     * @generated
+     */
+    void setTableCorrelation(TableCorrelation value);
+
+	/**
+     * Returns the value of the '<em><b>With Table Specification</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.WithTableSpecification#getColumnNameList <em>Column Name List</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>With Table Specification</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>With Table Specification</em>' container reference.
+     * @see #setWithTableSpecification(WithTableSpecification)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getColumnName_WithTableSpecification()
+     * @see org.eclipse.datatools.modelbase.sql.query.WithTableSpecification#getColumnNameList
+     * @model opposite="columnNameList" required="true"
+     * @generated
+     */
+    WithTableSpecification getWithTableSpecification();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.ColumnName#getWithTableSpecification <em>With Table Specification</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>With Table Specification</em>' container reference.
+     * @see #getWithTableSpecification()
+     * @generated
+     */
+    void setWithTableSpecification(WithTableSpecification value);
+
+} // SQLColumnName
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/CursorReference.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/CursorReference.java
new file mode 100644
index 0000000..2893783
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/CursorReference.java
@@ -0,0 +1,84 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: CursorReference.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Cursor Reference</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.CursorReference#getUpdateStatement <em>Update Statement</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.CursorReference#getDeleteStatement <em>Delete Statement</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getCursorReference()
+ * @model
+ * @generated
+ */
+public interface CursorReference extends SQLQueryObject{
+	/**
+     * Returns the value of the '<em><b>Update Statement</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement#getWhereCurrentOfClause <em>Where Current Of Clause</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Update Statement</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Update Statement</em>' container reference.
+     * @see #setUpdateStatement(QueryUpdateStatement)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getCursorReference_UpdateStatement()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement#getWhereCurrentOfClause
+     * @model opposite="whereCurrentOfClause"
+     * @generated
+     */
+    QueryUpdateStatement getUpdateStatement();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.CursorReference#getUpdateStatement <em>Update Statement</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Update Statement</em>' container reference.
+     * @see #getUpdateStatement()
+     * @generated
+     */
+    void setUpdateStatement(QueryUpdateStatement value);
+
+	/**
+     * Returns the value of the '<em><b>Delete Statement</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement#getWhereCurrentOfClause <em>Where Current Of Clause</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Delete Statement</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Delete Statement</em>' container reference.
+     * @see #setDeleteStatement(QueryDeleteStatement)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getCursorReference_DeleteStatement()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement#getWhereCurrentOfClause
+     * @model opposite="whereCurrentOfClause"
+     * @generated
+     */
+    QueryDeleteStatement getDeleteStatement();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.CursorReference#getDeleteStatement <em>Delete Statement</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Delete Statement</em>' container reference.
+     * @see #getDeleteStatement()
+     * @generated
+     */
+    void setDeleteStatement(QueryDeleteStatement value);
+
+} // SQLCursorReference
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/Grouping.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/Grouping.java
new file mode 100644
index 0000000..0f04a93
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/Grouping.java
@@ -0,0 +1,55 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: Grouping.java,v 1.2 2005/12/22 22:18:50 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Group</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.Grouping#getGroupingSetsElementExpr <em>Grouping Sets Element Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getGrouping()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Grouping extends GroupingSpecification{
+	/**
+     * Returns the value of the '<em><b>Grouping Sets Element Expr</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementExpression#getGrouping <em>Grouping</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Grouping Sets Element Expr</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Grouping Sets Element Expr</em>' container reference.
+     * @see #setGroupingSetsElementExpr(GroupingSetsElementExpression)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getGrouping_GroupingSetsElementExpr()
+     * @see org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementExpression#getGrouping
+     * @model opposite="grouping"
+     * @generated
+     */
+    GroupingSetsElementExpression getGroupingSetsElementExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.Grouping#getGroupingSetsElementExpr <em>Grouping Sets Element Expr</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Grouping Sets Element Expr</em>' container reference.
+     * @see #getGroupingSetsElementExpr()
+     * @generated
+     */
+    void setGroupingSetsElementExpr(GroupingSetsElementExpression value);
+
+} // SQLGroup
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/GroupingExpression.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/GroupingExpression.java
new file mode 100644
index 0000000..3db1544
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/GroupingExpression.java
@@ -0,0 +1,84 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: GroupingExpression.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Grouping Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.GroupingExpression#getValueExpr <em>Value Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.GroupingExpression#getSuperGroupElementExpr <em>Super Group Element Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getGroupingExpression()
+ * @model
+ * @generated
+ */
+public interface GroupingExpression extends Grouping{
+	/**
+     * Returns the value of the '<em><b>Value Expr</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getGroupingExpr <em>Grouping Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Expr</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Expr</em>' containment reference.
+     * @see #setValueExpr(QueryValueExpression)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getGroupingExpression_ValueExpr()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getGroupingExpr
+     * @model opposite="groupingExpr" containment="true" required="true"
+     * @generated
+     */
+    QueryValueExpression getValueExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.GroupingExpression#getValueExpr <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Expr</em>' containment reference.
+     * @see #getValueExpr()
+     * @generated
+     */
+    void setValueExpr(QueryValueExpression value);
+
+	/**
+     * Returns the value of the '<em><b>Super Group Element Expr</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.SuperGroupElementExpression#getGroupingExpr <em>Grouping Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Super Group Element Expr</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Super Group Element Expr</em>' container reference.
+     * @see #setSuperGroupElementExpr(SuperGroupElementExpression)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getGroupingExpression_SuperGroupElementExpr()
+     * @see org.eclipse.datatools.modelbase.sql.query.SuperGroupElementExpression#getGroupingExpr
+     * @model opposite="groupingExpr"
+     * @generated
+     */
+    SuperGroupElementExpression getSuperGroupElementExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.GroupingExpression#getSuperGroupElementExpr <em>Super Group Element Expr</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Super Group Element Expr</em>' container reference.
+     * @see #getSuperGroupElementExpr()
+     * @generated
+     */
+    void setSuperGroupElementExpr(SuperGroupElementExpression value);
+
+} // SQLGroupingExpression
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/GroupingSets.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/GroupingSets.java
new file mode 100644
index 0000000..5282db0
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/GroupingSets.java
@@ -0,0 +1,46 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: GroupingSets.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Grouping Sets</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.GroupingSets#getGroupingSetsElementList <em>Grouping Sets Element List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getGroupingSets()
+ * @model
+ * @generated
+ */
+public interface GroupingSets extends GroupingSpecification{
+	/**
+     * Returns the value of the '<em><b>Grouping Sets Element List</b></em>' containment reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.query.GroupingSetsElement}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.GroupingSetsElement#getGroupingSets <em>Grouping Sets</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Grouping Sets Element List</em>' containment reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Grouping Sets Element List</em>' containment reference list.
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getGroupingSets_GroupingSetsElementList()
+     * @see org.eclipse.datatools.modelbase.sql.query.GroupingSetsElement#getGroupingSets
+     * @model type="org.eclipse.datatools.modelbase.sql.query.GroupingSetsElement" opposite="groupingSets" containment="true" required="true"
+     * @generated
+     */
+    EList getGroupingSetsElementList();
+
+} // SQLGroupingSets
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/GroupingSetsElement.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/GroupingSetsElement.java
new file mode 100644
index 0000000..b24d8c4
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/GroupingSetsElement.java
@@ -0,0 +1,55 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: GroupingSetsElement.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Grouping Sets Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.GroupingSetsElement#getGroupingSets <em>Grouping Sets</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getGroupingSetsElement()
+ * @model abstract="true"
+ * @generated
+ */
+public interface GroupingSetsElement extends SQLQueryObject{
+	/**
+     * Returns the value of the '<em><b>Grouping Sets</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.GroupingSets#getGroupingSetsElementList <em>Grouping Sets Element List</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Grouping Sets</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Grouping Sets</em>' container reference.
+     * @see #setGroupingSets(GroupingSets)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getGroupingSetsElement_GroupingSets()
+     * @see org.eclipse.datatools.modelbase.sql.query.GroupingSets#getGroupingSetsElementList
+     * @model opposite="groupingSetsElementList"
+     * @generated
+     */
+    GroupingSets getGroupingSets();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.GroupingSetsElement#getGroupingSets <em>Grouping Sets</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Grouping Sets</em>' container reference.
+     * @see #getGroupingSets()
+     * @generated
+     */
+    void setGroupingSets(GroupingSets value);
+
+} // SQLGroupingSetsElement
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/GroupingSetsElementExpression.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/GroupingSetsElementExpression.java
new file mode 100644
index 0000000..915063f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/GroupingSetsElementExpression.java
@@ -0,0 +1,84 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: GroupingSetsElementExpression.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Grouping Sets Element Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementExpression#getGroupingSetsElementSublist <em>Grouping Sets Element Sublist</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementExpression#getGrouping <em>Grouping</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getGroupingSetsElementExpression()
+ * @model
+ * @generated
+ */
+public interface GroupingSetsElementExpression extends GroupingSetsElement{
+	/**
+     * Returns the value of the '<em><b>Grouping Sets Element Sublist</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementSublist#getGroupingSetsElementExprList <em>Grouping Sets Element Expr List</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Grouping Sets Element Sublist</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Grouping Sets Element Sublist</em>' container reference.
+     * @see #setGroupingSetsElementSublist(GroupingSetsElementSublist)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getGroupingSetsElementExpression_GroupingSetsElementSublist()
+     * @see org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementSublist#getGroupingSetsElementExprList
+     * @model opposite="groupingSetsElementExprList"
+     * @generated
+     */
+    GroupingSetsElementSublist getGroupingSetsElementSublist();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementExpression#getGroupingSetsElementSublist <em>Grouping Sets Element Sublist</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Grouping Sets Element Sublist</em>' container reference.
+     * @see #getGroupingSetsElementSublist()
+     * @generated
+     */
+    void setGroupingSetsElementSublist(GroupingSetsElementSublist value);
+
+	/**
+     * Returns the value of the '<em><b>Grouping</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.Grouping#getGroupingSetsElementExpr <em>Grouping Sets Element Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Grouping</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Grouping</em>' containment reference.
+     * @see #setGrouping(Grouping)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getGroupingSetsElementExpression_Grouping()
+     * @see org.eclipse.datatools.modelbase.sql.query.Grouping#getGroupingSetsElementExpr
+     * @model opposite="groupingSetsElementExpr" containment="true" required="true"
+     * @generated
+     */
+    Grouping getGrouping();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementExpression#getGrouping <em>Grouping</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Grouping</em>' containment reference.
+     * @see #getGrouping()
+     * @generated
+     */
+    void setGrouping(Grouping value);
+
+} // SQLGroupingSetsElementExpression
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/GroupingSetsElementSublist.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/GroupingSetsElementSublist.java
new file mode 100644
index 0000000..2aa69e1
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/GroupingSetsElementSublist.java
@@ -0,0 +1,46 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: GroupingSetsElementSublist.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Grouping Sets Element Sublist</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementSublist#getGroupingSetsElementExprList <em>Grouping Sets Element Expr List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getGroupingSetsElementSublist()
+ * @model
+ * @generated
+ */
+public interface GroupingSetsElementSublist extends GroupingSetsElement{
+	/**
+     * Returns the value of the '<em><b>Grouping Sets Element Expr List</b></em>' containment reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementExpression}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementExpression#getGroupingSetsElementSublist <em>Grouping Sets Element Sublist</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Grouping Sets Element Expr List</em>' containment reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Grouping Sets Element Expr List</em>' containment reference list.
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getGroupingSetsElementSublist_GroupingSetsElementExprList()
+     * @see org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementExpression#getGroupingSetsElementSublist
+     * @model type="org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementExpression" opposite="groupingSetsElementSublist" containment="true" required="true"
+     * @generated
+     */
+    EList getGroupingSetsElementExprList();
+
+} // SQLGroupingSetsElementSublist
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/GroupingSpecification.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/GroupingSpecification.java
new file mode 100644
index 0000000..4cb1762
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/GroupingSpecification.java
@@ -0,0 +1,55 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: GroupingSpecification.java,v 1.2 2005/12/22 22:18:50 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Group By Specification</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.GroupingSpecification#getQuerySelect <em>Query Select</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getGroupingSpecification()
+ * @model abstract="true"
+ * @generated
+ */
+public interface GroupingSpecification extends SQLQueryObject{
+	/**
+     * Returns the value of the '<em><b>Query Select</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QuerySelect#getGroupByClause <em>Group By Clause</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Query Select</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Query Select</em>' container reference.
+     * @see #setQuerySelect(QuerySelect)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getGroupingSpecification_QuerySelect()
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySelect#getGroupByClause
+     * @model opposite="groupByClause"
+     * @generated
+     */
+    QuerySelect getQuerySelect();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.GroupingSpecification#getQuerySelect <em>Query Select</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Query Select</em>' container reference.
+     * @see #getQuerySelect()
+     * @generated
+     */
+    void setQuerySelect(QuerySelect value);
+
+} // SQLGroupBySpecification
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/MergeInsertSpecification.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/MergeInsertSpecification.java
new file mode 100644
index 0000000..bb29f75
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/MergeInsertSpecification.java
@@ -0,0 +1,86 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Merge Insert Specification</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * SQL syntax:
+ * WHEN NOT MATCHED THEN 
+ * INSERT <target column list> 
+ * VALUES <insert value list>
+ * 
+ * where
+ * <target column list> is a simple list of column names
+ * <insert value list> is a list of value expressions
+ * 
+ * Note that the MergeInsertSpecification object does not "own" the column objects in the target column list.  They are "owned" by the table object in the MergeTargetTable
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.MergeInsertSpecification#getTargetColumnList <em>Target Column List</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.MergeInsertSpecification#getSourceValuesRow <em>Source Values Row</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getMergeInsertSpecification()
+ * @model
+ * @generated
+ */
+public interface MergeInsertSpecification extends MergeOperationSpecification {
+    /**
+     * Returns the value of the '<em><b>Target Column List</b></em>' reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn#getMergeInsertSpec <em>Merge Insert Spec</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Target Column List</em>' reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Target Column List</em>' reference list.
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getMergeInsertSpecification_TargetColumnList()
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn#getMergeInsertSpec
+     * @model type="org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn" opposite="mergeInsertSpec"
+     * @generated
+     */
+    EList getTargetColumnList();
+
+    /**
+     * Returns the value of the '<em><b>Source Values Row</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Source Values Row</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Source Values Row</em>' containment reference.
+     * @see #setSourceValuesRow(ValuesRow)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getMergeInsertSpecification_SourceValuesRow()
+     * @model containment="true" required="true"
+     * @generated
+     */
+    ValuesRow getSourceValuesRow();
+
+    /**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.MergeInsertSpecification#getSourceValuesRow <em>Source Values Row</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Source Values Row</em>' containment reference.
+     * @see #getSourceValuesRow()
+     * @generated
+     */
+    void setSourceValuesRow(ValuesRow value);
+
+} // MergeInsertSpecification
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/MergeOnCondition.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/MergeOnCondition.java
new file mode 100644
index 0000000..5939fe1
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/MergeOnCondition.java
@@ -0,0 +1,90 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Merge On Condition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * SQL syntax:
+ * <search condition>
+ * 
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.MergeOnCondition#getMergeStatement <em>Merge Statement</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.MergeOnCondition#getSearchCondition <em>Search Condition</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getMergeOnCondition()
+ * @model
+ * @generated
+ */
+public interface MergeOnCondition extends SQLQueryObject {
+    /**
+     * Returns the value of the '<em><b>Merge Statement</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryMergeStatement#getOnCondition <em>On Condition</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Merge Statement</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Merge Statement</em>' container reference.
+     * @see #setMergeStatement(QueryMergeStatement)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getMergeOnCondition_MergeStatement()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryMergeStatement#getOnCondition
+     * @model opposite="onCondition"
+     * @generated
+     */
+    QueryMergeStatement getMergeStatement();
+
+    /**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.MergeOnCondition#getMergeStatement <em>Merge Statement</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Merge Statement</em>' container reference.
+     * @see #getMergeStatement()
+     * @generated
+     */
+    void setMergeStatement(QueryMergeStatement value);
+
+    /**
+     * Returns the value of the '<em><b>Search Condition</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getMergeOnCondition <em>Merge On Condition</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Search Condition</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Search Condition</em>' containment reference.
+     * @see #setSearchCondition(QuerySearchCondition)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getMergeOnCondition_SearchCondition()
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getMergeOnCondition
+     * @model opposite="mergeOnCondition" containment="true" required="true"
+     * @generated
+     */
+    QuerySearchCondition getSearchCondition();
+
+    /**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.MergeOnCondition#getSearchCondition <em>Search Condition</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Search Condition</em>' containment reference.
+     * @see #getSearchCondition()
+     * @generated
+     */
+    void setSearchCondition(QuerySearchCondition value);
+
+} // MergeOnCondition
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/MergeOperationSpecification.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/MergeOperationSpecification.java
new file mode 100644
index 0000000..e356490
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/MergeOperationSpecification.java
@@ -0,0 +1,61 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Merge Operation Specification</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * SQL syntax:
+ * <merge update specification>  |  <merge insert specification>
+ * 
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.MergeOperationSpecification#getMergeStatement <em>Merge Statement</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getMergeOperationSpecification()
+ * @model
+ * @generated
+ */
+public interface MergeOperationSpecification extends SQLQueryObject {
+    /**
+     * Returns the value of the '<em><b>Merge Statement</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryMergeStatement#getOperationSpecList <em>Operation Spec List</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Merge Statement</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Merge Statement</em>' container reference.
+     * @see #setMergeStatement(QueryMergeStatement)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getMergeOperationSpecification_MergeStatement()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryMergeStatement#getOperationSpecList
+     * @model opposite="operationSpecList"
+     * @generated
+     */
+    QueryMergeStatement getMergeStatement();
+
+    /**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.MergeOperationSpecification#getMergeStatement <em>Merge Statement</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Merge Statement</em>' container reference.
+     * @see #getMergeStatement()
+     * @generated
+     */
+    void setMergeStatement(QueryMergeStatement value);
+
+} // MergeOperationSpecification
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/MergeSourceTable.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/MergeSourceTable.java
new file mode 100644
index 0000000..d92199d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/MergeSourceTable.java
@@ -0,0 +1,109 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Merge Source Table</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * SQL syntax:
+ * <table reference>
+ * 
+ * The source table reference can be a table name, a query (SELECT expression), a joined table, a table function...
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.MergeSourceTable#getQueryMergeStatement <em>Query Merge Statement</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.MergeSourceTable#getMergeStatement <em>Merge Statement</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.MergeSourceTable#getTableRef <em>Table Ref</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getMergeSourceTable()
+ * @model
+ * @generated
+ */
+public interface MergeSourceTable extends SQLQueryObject {
+    /**
+     * Returns the value of the '<em><b>Query Merge Statement</b></em>' reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.query.QueryMergeStatement}.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Query Merge Statement</em>' reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Query Merge Statement</em>' reference list.
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getMergeSourceTable_QueryMergeStatement()
+     * @model type="org.eclipse.datatools.modelbase.sql.query.QueryMergeStatement"
+     * @generated
+     */
+    EList getQueryMergeStatement();
+
+    /**
+     * Returns the value of the '<em><b>Merge Statement</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryMergeStatement#getSourceTable <em>Source Table</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Merge Statement</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Merge Statement</em>' container reference.
+     * @see #setMergeStatement(QueryMergeStatement)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getMergeSourceTable_MergeStatement()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryMergeStatement#getSourceTable
+     * @model opposite="sourceTable"
+     * @generated
+     */
+    QueryMergeStatement getMergeStatement();
+
+    /**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.MergeSourceTable#getMergeStatement <em>Merge Statement</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Merge Statement</em>' container reference.
+     * @see #getMergeStatement()
+     * @generated
+     */
+    void setMergeStatement(QueryMergeStatement value);
+
+    /**
+     * Returns the value of the '<em><b>Table Ref</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.TableReference#getMergeSourceTable <em>Merge Source Table</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Table Ref</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Table Ref</em>' containment reference.
+     * @see #setTableRef(TableReference)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getMergeSourceTable_TableRef()
+     * @see org.eclipse.datatools.modelbase.sql.query.TableReference#getMergeSourceTable
+     * @model opposite="mergeSourceTable" containment="true" required="true"
+     * @generated
+     */
+    TableReference getTableRef();
+
+    /**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.MergeSourceTable#getTableRef <em>Table Ref</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Table Ref</em>' containment reference.
+     * @see #getTableRef()
+     * @generated
+     */
+    void setTableRef(TableReference value);
+
+} // MergeSourceTable
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/MergeTargetTable.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/MergeTargetTable.java
new file mode 100644
index 0000000..68563fb
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/MergeTargetTable.java
@@ -0,0 +1,93 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Merge Target Table</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * SQL syntax:
+ * <target table> [[AS] <merge correlation name>]
+ * 
+ * where:
+ * <target table> is a simple or qualified table name.
+ * <merge correlation name> is a simple identifier
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.MergeTargetTable#getMergeStatement <em>Merge Statement</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.MergeTargetTable#getTableExpr <em>Table Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getMergeTargetTable()
+ * @model
+ * @generated
+ */
+public interface MergeTargetTable extends SQLQueryObject {
+    /**
+     * Returns the value of the '<em><b>Merge Statement</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryMergeStatement#getTargetTable <em>Target Table</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Merge Statement</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Merge Statement</em>' container reference.
+     * @see #setMergeStatement(QueryMergeStatement)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getMergeTargetTable_MergeStatement()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryMergeStatement#getTargetTable
+     * @model opposite="targetTable"
+     * @generated
+     */
+    QueryMergeStatement getMergeStatement();
+
+    /**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.MergeTargetTable#getMergeStatement <em>Merge Statement</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Merge Statement</em>' container reference.
+     * @see #getMergeStatement()
+     * @generated
+     */
+    void setMergeStatement(QueryMergeStatement value);
+
+    /**
+     * Returns the value of the '<em><b>Table Expr</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.TableExpression#getMergeTargetTable <em>Merge Target Table</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Table Expr</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Table Expr</em>' containment reference.
+     * @see #setTableExpr(TableExpression)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getMergeTargetTable_TableExpr()
+     * @see org.eclipse.datatools.modelbase.sql.query.TableExpression#getMergeTargetTable
+     * @model opposite="mergeTargetTable" containment="true" required="true"
+     * @generated
+     */
+    TableExpression getTableExpr();
+
+    /**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.MergeTargetTable#getTableExpr <em>Table Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Table Expr</em>' containment reference.
+     * @see #getTableExpr()
+     * @generated
+     */
+    void setTableExpr(TableExpression value);
+
+} // MergeTargetTable
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/MergeUpdateSpecification.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/MergeUpdateSpecification.java
new file mode 100644
index 0000000..4a455e2
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/MergeUpdateSpecification.java
@@ -0,0 +1,57 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Merge Update Specification</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * SQL syntax:
+ * WHEN MATCHED THEN UPDATE SET <set clause list>
+ * 
+ * where
+ * <set clause list> is a list of assignement expressions, such as 
+ *   description = sh.description
+ * 
+ * The assignment expression list is modelled as a list of UpdateAssignementExpression objects, which in the general case can have a query exrpession as the assignement source, but for Merge only simple assignment list is allowed.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.MergeUpdateSpecification#getAssignementExprList <em>Assignement Expr List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getMergeUpdateSpecification()
+ * @model
+ * @generated
+ */
+public interface MergeUpdateSpecification extends MergeOperationSpecification {
+    /**
+     * Returns the value of the '<em><b>Assignement Expr List</b></em>' containment reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression#getMergeUpdateSpec <em>Merge Update Spec</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Assignement Expr List</em>' containment reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Assignement Expr List</em>' containment reference list.
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getMergeUpdateSpecification_AssignementExprList()
+     * @see org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression#getMergeUpdateSpec
+     * @model type="org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression" opposite="mergeUpdateSpec" containment="true" required="true"
+     * @generated
+     */
+    EList getAssignementExprList();
+
+} // MergeUpdateSpecification
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/NullOrderingType.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/NullOrderingType.java
new file mode 100644
index 0000000..4aa435f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/NullOrderingType.java
@@ -0,0 +1,178 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: NullOrderingType.java,v 1.4 2007/02/08 17:00:23 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Null Ordering Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getNullOrderingType()
+ * @model
+ * @generated
+ */
+public final class NullOrderingType extends AbstractEnumerator {
+	/**
+     * The '<em><b>NONE</b></em>' literal value.
+     * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NONE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+     * @see #NONE_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+	public static final int NONE = 0;
+
+	/**
+     * The '<em><b>NULLS FIRST</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>NULLS FIRST</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #NULLS_FIRST_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int NULLS_FIRST = 1;
+
+	/**
+     * The '<em><b>NULLS LAST</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>NULLS LAST</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #NULLS_LAST_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int NULLS_LAST = 2;
+
+	/**
+     * The '<em><b>NONE</b></em>' literal object.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see #NONE
+     * @generated
+     * @ordered
+     */
+	public static final NullOrderingType NONE_LITERAL = new NullOrderingType(NONE, "NONE", "NONE");
+
+	/**
+     * The '<em><b>NULLS FIRST</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #NULLS_FIRST
+     * @generated
+     * @ordered
+     */
+    public static final NullOrderingType NULLS_FIRST_LITERAL = new NullOrderingType(NULLS_FIRST, "NULLS_FIRST", "NULLS_FIRST");
+
+	/**
+     * The '<em><b>NULLS LAST</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #NULLS_LAST
+     * @generated
+     * @ordered
+     */
+    public static final NullOrderingType NULLS_LAST_LITERAL = new NullOrderingType(NULLS_LAST, "NULLS_LAST", "NULLS_LAST");
+
+	/**
+     * An array of all the '<em><b>Null Ordering Type</b></em>' enumerators.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private static final NullOrderingType[] VALUES_ARRAY =
+		new NullOrderingType[] {
+            NONE_LITERAL,
+            NULLS_FIRST_LITERAL,
+            NULLS_LAST_LITERAL,
+        };
+
+	/**
+     * A public read-only list of all the '<em><b>Null Ordering Type</b></em>' enumerators.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+     * Returns the '<em><b>Null Ordering Type</b></em>' literal with the specified literal value.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public static NullOrderingType get(String literal) {
+        for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+            NullOrderingType result = VALUES_ARRAY[i];
+            if (result.toString().equals(literal)) {
+                return result;
+            }
+        }
+        return null;
+    }
+
+	/**
+     * Returns the '<em><b>Null Ordering Type</b></em>' literal with the specified name.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public static NullOrderingType getByName(String name) {
+        for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+            NullOrderingType result = VALUES_ARRAY[i];
+            if (result.getName().equals(name)) {
+                return result;
+            }
+        }
+        return null;
+    }
+
+	/**
+     * Returns the '<em><b>Null Ordering Type</b></em>' literal with the specified integer value.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public static NullOrderingType get(int value) {
+        switch (value) {
+            case NONE: return NONE_LITERAL;
+            case NULLS_FIRST: return NULLS_FIRST_LITERAL;
+            case NULLS_LAST: return NULLS_LAST_LITERAL;
+        }
+        return null;
+    }
+
+	/**
+     * Only this class can construct instances.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private NullOrderingType(int value, String name, String literal) {
+        super(value, name, literal);
+    }
+
+} //NullOrderingType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/OrderByOrdinal.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/OrderByOrdinal.java
new file mode 100644
index 0000000..fec4745
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/OrderByOrdinal.java
@@ -0,0 +1,53 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: OrderByOrdinal.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Order By Ordinal</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.OrderByOrdinal#getOrdinalValue <em>Ordinal Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getOrderByOrdinal()
+ * @model
+ * @generated
+ */
+public interface OrderByOrdinal extends OrderBySpecification{
+	/**
+     * Returns the value of the '<em><b>Ordinal Value</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Ordinal Value</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Ordinal Value</em>' attribute.
+     * @see #setOrdinalValue(int)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getOrderByOrdinal_OrdinalValue()
+     * @model
+     * @generated
+     */
+    int getOrdinalValue();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.OrderByOrdinal#getOrdinalValue <em>Ordinal Value</em>}' attribute.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Ordinal Value</em>' attribute.
+     * @see #getOrdinalValue()
+     * @generated
+     */
+  void setOrdinalValue(int value);
+
+} // SQLOrderByOrdinal
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/OrderByResultColumn.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/OrderByResultColumn.java
new file mode 100644
index 0000000..74b1fb8
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/OrderByResultColumn.java
@@ -0,0 +1,55 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: OrderByResultColumn.java,v 1.2 2005/12/22 22:18:50 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Order By Result Column</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.OrderByResultColumn#getResultCol <em>Result Col</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getOrderByResultColumn()
+ * @model
+ * @generated
+ */
+public interface OrderByResultColumn extends OrderBySpecification{
+	/**
+     * Returns the value of the '<em><b>Result Col</b></em>' reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.ResultColumn#getOrderByResultCol <em>Order By Result Col</em>}'.
+     * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Result Col</em>' reference isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+     * @return the value of the '<em>Result Col</em>' reference.
+     * @see #setResultCol(ResultColumn)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getOrderByResultColumn_ResultCol()
+     * @see org.eclipse.datatools.modelbase.sql.query.ResultColumn#getOrderByResultCol
+     * @model opposite="orderByResultCol" required="true"
+     * @generated
+     */
+  ResultColumn getResultCol();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.OrderByResultColumn#getResultCol <em>Result Col</em>}' reference.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Result Col</em>' reference.
+     * @see #getResultCol()
+     * @generated
+     */
+  void setResultCol(ResultColumn value);
+
+} // OrderByResultColumn
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/OrderBySpecification.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/OrderBySpecification.java
new file mode 100644
index 0000000..bafff82
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/OrderBySpecification.java
@@ -0,0 +1,171 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: OrderBySpecification.java,v 1.3 2008/01/31 02:57:16 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Order By Specification</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.OrderBySpecification#isDescending <em>Descending</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.OrderBySpecification#getOrderingSpecOption <em>Ordering Spec Option</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.OrderBySpecification#getNullOrderingOption <em>Null Ordering Option</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.OrderBySpecification#getSelectStatement <em>Select Statement</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.OrderBySpecification#getQuery <em>Query</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getOrderBySpecification()
+ * @model abstract="true"
+ * @generated
+ */
+public interface OrderBySpecification extends SQLQueryObject{
+	/**
+     * Returns the value of the '<em><b>Descending</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Descending</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Descending</em>' attribute.
+     * @see #setDescending(boolean)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getOrderBySpecification_Descending()
+     * @model
+     * @generated
+     */
+    boolean isDescending();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.OrderBySpecification#isDescending <em>Descending</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Descending</em>' attribute.
+     * @see #isDescending()
+     * @generated
+     */
+    void setDescending(boolean value);
+
+	/**
+     * Returns the value of the '<em><b>Ordering Spec Option</b></em>' attribute.
+     * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.query.OrderingSpecType}.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Ordering Spec Option</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Ordering Spec Option</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.query.OrderingSpecType
+     * @see #setOrderingSpecOption(OrderingSpecType)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getOrderBySpecification_OrderingSpecOption()
+     * @model
+     * @generated
+     */
+    OrderingSpecType getOrderingSpecOption();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.OrderBySpecification#getOrderingSpecOption <em>Ordering Spec Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Ordering Spec Option</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.query.OrderingSpecType
+     * @see #getOrderingSpecOption()
+     * @generated
+     */
+    void setOrderingSpecOption(OrderingSpecType value);
+
+	/**
+     * Returns the value of the '<em><b>Null Ordering Option</b></em>' attribute.
+     * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.query.NullOrderingType}.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Null Ordering Option</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Null Ordering Option</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.query.NullOrderingType
+     * @see #setNullOrderingOption(NullOrderingType)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getOrderBySpecification_NullOrderingOption()
+     * @model
+     * @generated
+     */
+    NullOrderingType getNullOrderingOption();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.OrderBySpecification#getNullOrderingOption <em>Null Ordering Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Null Ordering Option</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.query.NullOrderingType
+     * @see #getNullOrderingOption()
+     * @generated
+     */
+    void setNullOrderingOption(NullOrderingType value);
+
+	/**
+     * Returns the value of the '<em><b>Select Statement</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QuerySelectStatement#getOrderByClause <em>Order By Clause</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Select Statement</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Select Statement</em>' container reference.
+     * @see #setSelectStatement(QuerySelectStatement)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getOrderBySpecification_SelectStatement()
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySelectStatement#getOrderByClause
+     * @model opposite="orderByClause"
+     * @generated
+     */
+    QuerySelectStatement getSelectStatement();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.OrderBySpecification#getSelectStatement <em>Select Statement</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Select Statement</em>' container reference.
+     * @see #getSelectStatement()
+     * @generated
+     */
+    void setSelectStatement(QuerySelectStatement value);
+
+    /**
+     * Returns the value of the '<em><b>Query</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getSortSpecList <em>Sort Spec List</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Query</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Query</em>' container reference.
+     * @see #setQuery(QueryExpressionBody)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getOrderBySpecification_Query()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getSortSpecList
+     * @model opposite="sortSpecList"
+     * @generated
+     */
+    QueryExpressionBody getQuery();
+
+    /**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.OrderBySpecification#getQuery <em>Query</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Query</em>' container reference.
+     * @see #getQuery()
+     * @generated
+     */
+    void setQuery(QueryExpressionBody value);
+
+} // SQLOrderBySpecification
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/OrderByValueExpression.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/OrderByValueExpression.java
new file mode 100644
index 0000000..77e90a2
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/OrderByValueExpression.java
@@ -0,0 +1,55 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: OrderByValueExpression.java,v 1.2 2005/12/22 22:18:50 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Order By Value Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression#getValueExpr <em>Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getOrderByValueExpression()
+ * @model
+ * @generated
+ */
+public interface OrderByValueExpression extends OrderBySpecification{
+	/**
+     * Returns the value of the '<em><b>Value Expr</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getOrderByValueExpr <em>Order By Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Expr</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Expr</em>' containment reference.
+     * @see #setValueExpr(QueryValueExpression)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getOrderByValueExpression_ValueExpr()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getOrderByValueExpr
+     * @model opposite="orderByValueExpr" containment="true" required="true"
+     * @generated
+     */
+    QueryValueExpression getValueExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression#getValueExpr <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Expr</em>' containment reference.
+     * @see #getValueExpr()
+     * @generated
+     */
+    void setValueExpr(QueryValueExpression value);
+
+} // SQLOrderByValueExpression
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/OrderingSpecType.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/OrderingSpecType.java
new file mode 100644
index 0000000..c40d008
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/OrderingSpecType.java
@@ -0,0 +1,178 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: OrderingSpecType.java,v 1.4 2007/02/08 17:00:24 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Ordering Spec Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getOrderingSpecType()
+ * @model
+ * @generated
+ */
+public final class OrderingSpecType extends AbstractEnumerator {
+	/**
+     * The '<em><b>NONE</b></em>' literal value.
+     * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NONE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+     * @see #NONE_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+	public static final int NONE = 0;
+
+	/**
+     * The '<em><b>ASC</b></em>' literal value.
+     * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>ASC</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+     * @see #ASC_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+	public static final int ASC = 1;
+
+	/**
+     * The '<em><b>DESC</b></em>' literal value.
+     * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>DESC</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+     * @see #DESC_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+	public static final int DESC = 2;
+
+	/**
+     * The '<em><b>NONE</b></em>' literal object.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see #NONE
+     * @generated
+     * @ordered
+     */
+	public static final OrderingSpecType NONE_LITERAL = new OrderingSpecType(NONE, "NONE", "NONE");
+
+	/**
+     * The '<em><b>ASC</b></em>' literal object.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see #ASC
+     * @generated
+     * @ordered
+     */
+	public static final OrderingSpecType ASC_LITERAL = new OrderingSpecType(ASC, "ASC", "ASC");
+
+	/**
+     * The '<em><b>DESC</b></em>' literal object.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see #DESC
+     * @generated
+     * @ordered
+     */
+	public static final OrderingSpecType DESC_LITERAL = new OrderingSpecType(DESC, "DESC", "DESC");
+
+	/**
+     * An array of all the '<em><b>Ordering Spec Type</b></em>' enumerators.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private static final OrderingSpecType[] VALUES_ARRAY =
+		new OrderingSpecType[] {
+            NONE_LITERAL,
+            ASC_LITERAL,
+            DESC_LITERAL,
+        };
+
+	/**
+     * A public read-only list of all the '<em><b>Ordering Spec Type</b></em>' enumerators.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+     * Returns the '<em><b>Ordering Spec Type</b></em>' literal with the specified literal value.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public static OrderingSpecType get(String literal) {
+        for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+            OrderingSpecType result = VALUES_ARRAY[i];
+            if (result.toString().equals(literal)) {
+                return result;
+            }
+        }
+        return null;
+    }
+
+	/**
+     * Returns the '<em><b>Ordering Spec Type</b></em>' literal with the specified name.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public static OrderingSpecType getByName(String name) {
+        for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+            OrderingSpecType result = VALUES_ARRAY[i];
+            if (result.getName().equals(name)) {
+                return result;
+            }
+        }
+        return null;
+    }
+
+	/**
+     * Returns the '<em><b>Ordering Spec Type</b></em>' literal with the specified integer value.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public static OrderingSpecType get(int value) {
+        switch (value) {
+            case NONE: return NONE_LITERAL;
+            case ASC: return ASC_LITERAL;
+            case DESC: return DESC_LITERAL;
+        }
+        return null;
+    }
+
+	/**
+     * Only this class can construct instances.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private OrderingSpecType(int value, String name, String literal) {
+        super(value, name, literal);
+    }
+
+} //OrderingSpecType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/Predicate.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/Predicate.java
new file mode 100644
index 0000000..79b203c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/Predicate.java
@@ -0,0 +1,106 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: Predicate.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.Predicate#isNegatedPredicate <em>Negated Predicate</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.Predicate#isHasSelectivity <em>Has Selectivity</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.Predicate#getSelectivityValue <em>Selectivity Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getPredicate()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Predicate extends QuerySearchCondition{
+	/**
+     * Returns the value of the '<em><b>Negated Predicate</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * <!-- begin-model-doc -->
+     * This attribute adds the NOT keyword in front of a predicate, so when true you have NOT <predicate>.  If attribute "paren" in the superclass is also true, you get ( NOT <predicate> ).  If attribute "notParen" in the superclass is true, you get NOT ( NOT <predicate> ).
+     * <!-- end-model-doc -->
+     * @return the value of the '<em>Negated Predicate</em>' attribute.
+     * @see #setNegatedPredicate(boolean)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getPredicate_NegatedPredicate()
+     * @model
+     * @generated
+     */
+    boolean isNegatedPredicate();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.Predicate#isNegatedPredicate <em>Negated Predicate</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Negated Predicate</em>' attribute.
+     * @see #isNegatedPredicate()
+     * @generated
+     */
+    void setNegatedPredicate(boolean value);
+
+	/**
+     * Returns the value of the '<em><b>Has Selectivity</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Has Selectivity</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Has Selectivity</em>' attribute.
+     * @see #setHasSelectivity(boolean)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getPredicate_HasSelectivity()
+     * @model
+     * @generated
+     */
+    boolean isHasSelectivity();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.Predicate#isHasSelectivity <em>Has Selectivity</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Has Selectivity</em>' attribute.
+     * @see #isHasSelectivity()
+     * @generated
+     */
+    void setHasSelectivity(boolean value);
+
+	/**
+     * Returns the value of the '<em><b>Selectivity Value</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Selectivity Value</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Selectivity Value</em>' attribute.
+     * @see #setSelectivityValue(Integer)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getPredicate_SelectivityValue()
+     * @model
+     * @generated
+     */
+    Integer getSelectivityValue();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.Predicate#getSelectivityValue <em>Selectivity Value</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Selectivity Value</em>' attribute.
+     * @see #getSelectivityValue()
+     * @generated
+     */
+    void setSelectivityValue(Integer value);
+
+} // SQLPredicate
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/PredicateBasic.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/PredicateBasic.java
new file mode 100644
index 0000000..b3e29b1
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/PredicateBasic.java
@@ -0,0 +1,114 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PredicateBasic.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Predicate Basic</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.PredicateBasic#getComparisonOperator <em>Comparison Operator</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.PredicateBasic#getRightValueExpr <em>Right Value Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.PredicateBasic#getLeftValueExpr <em>Left Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getPredicateBasic()
+ * @model
+ * @generated
+ */
+public interface PredicateBasic extends Predicate{
+	/**
+     * Returns the value of the '<em><b>Comparison Operator</b></em>' attribute.
+     * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.query.PredicateComparisonOperator}.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Comparison Operator</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Comparison Operator</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateComparisonOperator
+     * @see #setComparisonOperator(PredicateComparisonOperator)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getPredicateBasic_ComparisonOperator()
+     * @model
+     * @generated
+     */
+    PredicateComparisonOperator getComparisonOperator();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.PredicateBasic#getComparisonOperator <em>Comparison Operator</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Comparison Operator</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateComparisonOperator
+     * @see #getComparisonOperator()
+     * @generated
+     */
+    void setComparisonOperator(PredicateComparisonOperator value);
+
+	/**
+     * Returns the value of the '<em><b>Right Value Expr</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getBasicRight <em>Basic Right</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Right Value Expr</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Right Value Expr</em>' containment reference.
+     * @see #setRightValueExpr(QueryValueExpression)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getPredicateBasic_RightValueExpr()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getBasicRight
+     * @model opposite="basicRight" containment="true" required="true"
+     * @generated
+     */
+    QueryValueExpression getRightValueExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.PredicateBasic#getRightValueExpr <em>Right Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Right Value Expr</em>' containment reference.
+     * @see #getRightValueExpr()
+     * @generated
+     */
+    void setRightValueExpr(QueryValueExpression value);
+
+	/**
+     * Returns the value of the '<em><b>Left Value Expr</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getBasicLeft <em>Basic Left</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Left Value Expr</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Left Value Expr</em>' containment reference.
+     * @see #setLeftValueExpr(QueryValueExpression)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getPredicateBasic_LeftValueExpr()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getBasicLeft
+     * @model opposite="basicLeft" containment="true" required="true"
+     * @generated
+     */
+    QueryValueExpression getLeftValueExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.PredicateBasic#getLeftValueExpr <em>Left Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Left Value Expr</em>' containment reference.
+     * @see #getLeftValueExpr()
+     * @generated
+     */
+    void setLeftValueExpr(QueryValueExpression value);
+
+} // SQLPredicateBasic
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/PredicateBetween.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/PredicateBetween.java
new file mode 100644
index 0000000..0c4d0e9
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/PredicateBetween.java
@@ -0,0 +1,140 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PredicateBetween.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Predicate Between</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.PredicateBetween#isNotBetween <em>Not Between</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.PredicateBetween#getLeftValueExpr <em>Left Value Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.PredicateBetween#getRightValueExpr1 <em>Right Value Expr1</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.PredicateBetween#getRightValueExpr2 <em>Right Value Expr2</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getPredicateBetween()
+ * @model
+ * @generated
+ */
+public interface PredicateBetween extends Predicate{
+	/**
+     * Returns the value of the '<em><b>Not Between</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Not Between</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Not Between</em>' attribute.
+     * @see #setNotBetween(boolean)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getPredicateBetween_NotBetween()
+     * @model
+     * @generated
+     */
+    boolean isNotBetween();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.PredicateBetween#isNotBetween <em>Not Between</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Not Between</em>' attribute.
+     * @see #isNotBetween()
+     * @generated
+     */
+    void setNotBetween(boolean value);
+
+	/**
+     * Returns the value of the '<em><b>Left Value Expr</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getBetweenLeft <em>Between Left</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Left Value Expr</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Left Value Expr</em>' containment reference.
+     * @see #setLeftValueExpr(QueryValueExpression)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getPredicateBetween_LeftValueExpr()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getBetweenLeft
+     * @model opposite="betweenLeft" containment="true" required="true"
+     * @generated
+     */
+    QueryValueExpression getLeftValueExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.PredicateBetween#getLeftValueExpr <em>Left Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Left Value Expr</em>' containment reference.
+     * @see #getLeftValueExpr()
+     * @generated
+     */
+    void setLeftValueExpr(QueryValueExpression value);
+
+	/**
+     * Returns the value of the '<em><b>Right Value Expr1</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getBetweenRight1 <em>Between Right1</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Right Value Expr1</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Right Value Expr1</em>' containment reference.
+     * @see #setRightValueExpr1(QueryValueExpression)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getPredicateBetween_RightValueExpr1()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getBetweenRight1
+     * @model opposite="betweenRight1" containment="true" required="true"
+     * @generated
+     */
+    QueryValueExpression getRightValueExpr1();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.PredicateBetween#getRightValueExpr1 <em>Right Value Expr1</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Right Value Expr1</em>' containment reference.
+     * @see #getRightValueExpr1()
+     * @generated
+     */
+    void setRightValueExpr1(QueryValueExpression value);
+
+	/**
+     * Returns the value of the '<em><b>Right Value Expr2</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getBetweenRight2 <em>Between Right2</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Right Value Expr2</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Right Value Expr2</em>' containment reference.
+     * @see #setRightValueExpr2(QueryValueExpression)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getPredicateBetween_RightValueExpr2()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getBetweenRight2
+     * @model opposite="betweenRight2" containment="true" required="true"
+     * @generated
+     */
+    QueryValueExpression getRightValueExpr2();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.PredicateBetween#getRightValueExpr2 <em>Right Value Expr2</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Right Value Expr2</em>' containment reference.
+     * @see #getRightValueExpr2()
+     * @generated
+     */
+    void setRightValueExpr2(QueryValueExpression value);
+
+} // SQLPredicateBetween
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/PredicateComparisonOperator.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/PredicateComparisonOperator.java
new file mode 100644
index 0000000..fc3d12c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/PredicateComparisonOperator.java
@@ -0,0 +1,259 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PredicateComparisonOperator.java,v 1.4 2007/02/08 17:00:24 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>SQL Predicate Comparison Operator</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getPredicateComparisonOperator()
+ * @model
+ * @generated
+ */
+public final class PredicateComparisonOperator extends AbstractEnumerator {
+	/**
+     * The '<em><b>EQUAL</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #EQUAL_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int EQUAL = 0;
+
+	/**
+     * The '<em><b>NOT EQUAL</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #NOT_EQUAL_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int NOT_EQUAL = 1;
+
+	/**
+     * The '<em><b>LESS THAN</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #LESS_THAN_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int LESS_THAN = 2;
+
+	/**
+     * The '<em><b>GREATER THAN</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #GREATER_THAN_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int GREATER_THAN = 3;
+
+	/**
+     * The '<em><b>LESS THAN OR EQUAL</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #LESS_THAN_OR_EQUAL_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int LESS_THAN_OR_EQUAL = 4;
+
+	/**
+     * The '<em><b>GREATER THAN OR EQUAL</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #GREATER_THAN_OR_EQUAL_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int GREATER_THAN_OR_EQUAL = 5;
+
+	/**
+     * The '<em><b>EQUAL</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>EQUAL</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #EQUAL
+     * @generated
+     * @ordered
+     */
+    public static final PredicateComparisonOperator EQUAL_LITERAL = new PredicateComparisonOperator(EQUAL, "EQUAL", "EQUAL");
+
+	/**
+     * The '<em><b>NOT EQUAL</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>NOT EQUAL</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #NOT_EQUAL
+     * @generated
+     * @ordered
+     */
+    public static final PredicateComparisonOperator NOT_EQUAL_LITERAL = new PredicateComparisonOperator(NOT_EQUAL, "NOT_EQUAL", "NOT_EQUAL");
+
+	/**
+     * The '<em><b>LESS THAN</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>LESS THAN</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #LESS_THAN
+     * @generated
+     * @ordered
+     */
+    public static final PredicateComparisonOperator LESS_THAN_LITERAL = new PredicateComparisonOperator(LESS_THAN, "LESS_THAN", "LESS_THAN");
+
+	/**
+     * The '<em><b>GREATER THAN</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>GREATER THAN</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #GREATER_THAN
+     * @generated
+     * @ordered
+     */
+    public static final PredicateComparisonOperator GREATER_THAN_LITERAL = new PredicateComparisonOperator(GREATER_THAN, "GREATER_THAN", "GREATER_THAN");
+
+	/**
+     * The '<em><b>LESS THAN OR EQUAL</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>LESS THAN OR EQUAL</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #LESS_THAN_OR_EQUAL
+     * @generated
+     * @ordered
+     */
+    public static final PredicateComparisonOperator LESS_THAN_OR_EQUAL_LITERAL = new PredicateComparisonOperator(LESS_THAN_OR_EQUAL, "LESS_THAN_OR_EQUAL", "LESS_THAN_OR_EQUAL");
+
+	/**
+     * The '<em><b>GREATER THAN OR EQUAL</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>GREATER THAN OR EQUAL</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #GREATER_THAN_OR_EQUAL
+     * @generated
+     * @ordered
+     */
+    public static final PredicateComparisonOperator GREATER_THAN_OR_EQUAL_LITERAL = new PredicateComparisonOperator(GREATER_THAN_OR_EQUAL, "GREATER_THAN_OR_EQUAL", "GREATER_THAN_OR_EQUAL");
+
+	/**
+     * An array of all the '<em><b>Predicate Comparison Operator</b></em>' enumerators.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private static final PredicateComparisonOperator[] VALUES_ARRAY =
+		new PredicateComparisonOperator[] {
+            EQUAL_LITERAL,
+            NOT_EQUAL_LITERAL,
+            LESS_THAN_LITERAL,
+            GREATER_THAN_LITERAL,
+            LESS_THAN_OR_EQUAL_LITERAL,
+            GREATER_THAN_OR_EQUAL_LITERAL,
+        };
+
+	/**
+     * A public read-only list of all the '<em><b>Predicate Comparison Operator</b></em>' enumerators.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+     * Returns the '<em><b>Predicate Comparison Operator</b></em>' literal with the specified literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static PredicateComparisonOperator get(String literal) {
+        for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+            PredicateComparisonOperator result = VALUES_ARRAY[i];
+            if (result.toString().equals(literal)) {
+                return result;
+            }
+        }
+        return null;
+    }
+
+	/**
+     * Returns the '<em><b>Predicate Comparison Operator</b></em>' literal with the specified name.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public static PredicateComparisonOperator getByName(String name) {
+        for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+            PredicateComparisonOperator result = VALUES_ARRAY[i];
+            if (result.getName().equals(name)) {
+                return result;
+            }
+        }
+        return null;
+    }
+
+	/**
+     * Returns the '<em><b>Predicate Comparison Operator</b></em>' literal with the specified integer value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static PredicateComparisonOperator get(int value) {
+        switch (value) {
+            case EQUAL: return EQUAL_LITERAL;
+            case NOT_EQUAL: return NOT_EQUAL_LITERAL;
+            case LESS_THAN: return LESS_THAN_LITERAL;
+            case GREATER_THAN: return GREATER_THAN_LITERAL;
+            case LESS_THAN_OR_EQUAL: return LESS_THAN_OR_EQUAL_LITERAL;
+            case GREATER_THAN_OR_EQUAL: return GREATER_THAN_OR_EQUAL_LITERAL;
+        }
+        return null;
+    }
+
+	/**
+     * Only this class can construct instances.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private PredicateComparisonOperator(int value, String name, String literal) {
+        super(value, name, literal);
+    }
+
+} //SQLPredicateComparisonOperator
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/PredicateExists.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/PredicateExists.java
new file mode 100644
index 0000000..e8b22c5
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/PredicateExists.java
@@ -0,0 +1,55 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PredicateExists.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Predicate Exists</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.PredicateExists#getQueryExpr <em>Query Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getPredicateExists()
+ * @model
+ * @generated
+ */
+public interface PredicateExists extends Predicate{
+	/**
+     * Returns the value of the '<em><b>Query Expr</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getPredicateExists <em>Predicate Exists</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Query Expr</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Query Expr</em>' containment reference.
+     * @see #setQueryExpr(QueryExpressionBody)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getPredicateExists_QueryExpr()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getPredicateExists
+     * @model opposite="predicateExists" containment="true" required="true"
+     * @generated
+     */
+    QueryExpressionBody getQueryExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.PredicateExists#getQueryExpr <em>Query Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Query Expr</em>' containment reference.
+     * @see #getQueryExpr()
+     * @generated
+     */
+    void setQueryExpr(QueryExpressionBody value);
+
+} // SQLPredicateExists
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/PredicateIn.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/PredicateIn.java
new file mode 100644
index 0000000..3875675
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/PredicateIn.java
@@ -0,0 +1,53 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PredicateIn.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Predicate In</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.PredicateIn#isNotIn <em>Not In</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getPredicateIn()
+ * @model abstract="true"
+ * @generated
+ */
+public interface PredicateIn extends Predicate{
+	/**
+     * Returns the value of the '<em><b>Not In</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Not In</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Not In</em>' attribute.
+     * @see #setNotIn(boolean)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getPredicateIn_NotIn()
+     * @model
+     * @generated
+     */
+    boolean isNotIn();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.PredicateIn#isNotIn <em>Not In</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Not In</em>' attribute.
+     * @see #isNotIn()
+     * @generated
+     */
+    void setNotIn(boolean value);
+
+} // SQLPredicateIn
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/PredicateInValueList.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/PredicateInValueList.java
new file mode 100644
index 0000000..fb8beda
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/PredicateInValueList.java
@@ -0,0 +1,75 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PredicateInValueList.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Predicate In Value List</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.PredicateInValueList#getValueExprList <em>Value Expr List</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.PredicateInValueList#getValueExpr <em>Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getPredicateInValueList()
+ * @model
+ * @generated
+ */
+public interface PredicateInValueList extends PredicateIn{
+	/**
+     * Returns the value of the '<em><b>Value Expr List</b></em>' containment reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getInValueListRight <em>In Value List Right</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Expr List</em>' containment reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Expr List</em>' containment reference list.
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getPredicateInValueList_ValueExprList()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getInValueListRight
+     * @model type="org.eclipse.datatools.modelbase.sql.query.QueryValueExpression" opposite="inValueListRight" containment="true" required="true"
+     * @generated
+     */
+    EList getValueExprList();
+
+	/**
+     * Returns the value of the '<em><b>Value Expr</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getInValueListLeft <em>In Value List Left</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Expr</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Expr</em>' containment reference.
+     * @see #setValueExpr(QueryValueExpression)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getPredicateInValueList_ValueExpr()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getInValueListLeft
+     * @model opposite="inValueListLeft" containment="true" required="true"
+     * @generated
+     */
+    QueryValueExpression getValueExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.PredicateInValueList#getValueExpr <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Expr</em>' containment reference.
+     * @see #getValueExpr()
+     * @generated
+     */
+    void setValueExpr(QueryValueExpression value);
+
+} // SQLPredicateInValueList
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/PredicateInValueRowSelect.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/PredicateInValueRowSelect.java
new file mode 100644
index 0000000..e73d27b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/PredicateInValueRowSelect.java
@@ -0,0 +1,75 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PredicateInValueRowSelect.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Predicate In Value Row Select</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect#getValueExprList <em>Value Expr List</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect#getQueryExpr <em>Query Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getPredicateInValueRowSelect()
+ * @model
+ * @generated
+ */
+public interface PredicateInValueRowSelect extends PredicateIn{
+	/**
+     * Returns the value of the '<em><b>Value Expr List</b></em>' containment reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getInValueRowSelectLeft <em>In Value Row Select Left</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Expr List</em>' containment reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Expr List</em>' containment reference list.
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getPredicateInValueRowSelect_ValueExprList()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getInValueRowSelectLeft
+     * @model type="org.eclipse.datatools.modelbase.sql.query.QueryValueExpression" opposite="inValueRowSelectLeft" containment="true" required="true"
+     * @generated
+     */
+    EList getValueExprList();
+
+	/**
+     * Returns the value of the '<em><b>Query Expr</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getInValueRowSelectRight <em>In Value Row Select Right</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Query Expr</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Query Expr</em>' containment reference.
+     * @see #setQueryExpr(QueryExpressionRoot)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getPredicateInValueRowSelect_QueryExpr()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getInValueRowSelectRight
+     * @model opposite="inValueRowSelectRight" containment="true" required="true"
+     * @generated
+     */
+    QueryExpressionRoot getQueryExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect#getQueryExpr <em>Query Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Query Expr</em>' containment reference.
+     * @see #getQueryExpr()
+     * @generated
+     */
+    void setQueryExpr(QueryExpressionRoot value);
+
+} // SQLPredicateInValueRowSelect
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/PredicateInValueSelect.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/PredicateInValueSelect.java
new file mode 100644
index 0000000..923910a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/PredicateInValueSelect.java
@@ -0,0 +1,84 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PredicateInValueSelect.java,v 1.2 2005/12/22 22:18:50 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Predicate In Value Select</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect#getQueryExpr <em>Query Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect#getValueExpr <em>Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getPredicateInValueSelect()
+ * @model
+ * @generated
+ */
+public interface PredicateInValueSelect extends PredicateIn{
+	/**
+     * Returns the value of the '<em><b>Query Expr</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getInValueSelectRight <em>In Value Select Right</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Query Expr</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Query Expr</em>' containment reference.
+     * @see #setQueryExpr(QueryExpressionRoot)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getPredicateInValueSelect_QueryExpr()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getInValueSelectRight
+     * @model opposite="inValueSelectRight" containment="true" required="true"
+     * @generated
+     */
+    QueryExpressionRoot getQueryExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect#getQueryExpr <em>Query Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Query Expr</em>' containment reference.
+     * @see #getQueryExpr()
+     * @generated
+     */
+    void setQueryExpr(QueryExpressionRoot value);
+
+	/**
+     * Returns the value of the '<em><b>Value Expr</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getInValueSelectLeft <em>In Value Select Left</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Expr</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Expr</em>' containment reference.
+     * @see #setValueExpr(QueryValueExpression)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getPredicateInValueSelect_ValueExpr()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getInValueSelectLeft
+     * @model opposite="inValueSelectLeft" containment="true" required="true"
+     * @generated
+     */
+    QueryValueExpression getValueExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect#getValueExpr <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Expr</em>' containment reference.
+     * @see #getValueExpr()
+     * @generated
+     */
+    void setValueExpr(QueryValueExpression value);
+
+} // SQLPredicateInValueSelect
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/PredicateIsNull.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/PredicateIsNull.java
new file mode 100644
index 0000000..ff1c91e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/PredicateIsNull.java
@@ -0,0 +1,82 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PredicateIsNull.java,v 1.2 2005/12/22 22:18:50 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Predicate Null</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.PredicateIsNull#isNotNull <em>Not Null</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.PredicateIsNull#getValueExpr <em>Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getPredicateIsNull()
+ * @model
+ * @generated
+ */
+public interface PredicateIsNull extends Predicate{
+	/**
+     * Returns the value of the '<em><b>Not Null</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Not Null</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Not Null</em>' attribute.
+     * @see #setNotNull(boolean)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getPredicateIsNull_NotNull()
+     * @model
+     * @generated
+     */
+    boolean isNotNull();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.PredicateIsNull#isNotNull <em>Not Null</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Not Null</em>' attribute.
+     * @see #isNotNull()
+     * @generated
+     */
+    void setNotNull(boolean value);
+
+	/**
+     * Returns the value of the '<em><b>Value Expr</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getPredicateNull <em>Predicate Null</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Expr</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Expr</em>' containment reference.
+     * @see #setValueExpr(QueryValueExpression)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getPredicateIsNull_ValueExpr()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getPredicateNull
+     * @model opposite="predicateNull" containment="true" required="true"
+     * @generated
+     */
+    QueryValueExpression getValueExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.PredicateIsNull#getValueExpr <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Expr</em>' containment reference.
+     * @see #getValueExpr()
+     * @generated
+     */
+    void setValueExpr(QueryValueExpression value);
+
+} // SQLPredicateNull
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/PredicateLike.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/PredicateLike.java
new file mode 100644
index 0000000..06f0928
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/PredicateLike.java
@@ -0,0 +1,140 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PredicateLike.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Predicate Like</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.PredicateLike#isNotLike <em>Not Like</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.PredicateLike#getPatternValueExpr <em>Pattern Value Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.PredicateLike#getMatchingValueExpr <em>Matching Value Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.PredicateLike#getEscapeValueExpr <em>Escape Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getPredicateLike()
+ * @model
+ * @generated
+ */
+public interface PredicateLike extends Predicate{
+	/**
+     * Returns the value of the '<em><b>Not Like</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Not Like</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Not Like</em>' attribute.
+     * @see #setNotLike(boolean)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getPredicateLike_NotLike()
+     * @model
+     * @generated
+     */
+    boolean isNotLike();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.PredicateLike#isNotLike <em>Not Like</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Not Like</em>' attribute.
+     * @see #isNotLike()
+     * @generated
+     */
+    void setNotLike(boolean value);
+
+	/**
+     * Returns the value of the '<em><b>Pattern Value Expr</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getLikePattern <em>Like Pattern</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Pattern Value Expr</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Pattern Value Expr</em>' containment reference.
+     * @see #setPatternValueExpr(QueryValueExpression)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getPredicateLike_PatternValueExpr()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getLikePattern
+     * @model opposite="likePattern" containment="true" required="true"
+     * @generated
+     */
+    QueryValueExpression getPatternValueExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.PredicateLike#getPatternValueExpr <em>Pattern Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Pattern Value Expr</em>' containment reference.
+     * @see #getPatternValueExpr()
+     * @generated
+     */
+    void setPatternValueExpr(QueryValueExpression value);
+
+	/**
+     * Returns the value of the '<em><b>Matching Value Expr</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getLikeMatching <em>Like Matching</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Matching Value Expr</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Matching Value Expr</em>' containment reference.
+     * @see #setMatchingValueExpr(QueryValueExpression)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getPredicateLike_MatchingValueExpr()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getLikeMatching
+     * @model opposite="likeMatching" containment="true" required="true"
+     * @generated
+     */
+    QueryValueExpression getMatchingValueExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.PredicateLike#getMatchingValueExpr <em>Matching Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Matching Value Expr</em>' containment reference.
+     * @see #getMatchingValueExpr()
+     * @generated
+     */
+    void setMatchingValueExpr(QueryValueExpression value);
+
+	/**
+     * Returns the value of the '<em><b>Escape Value Expr</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getLikeEscape <em>Like Escape</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Escape Value Expr</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Escape Value Expr</em>' containment reference.
+     * @see #setEscapeValueExpr(QueryValueExpression)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getPredicateLike_EscapeValueExpr()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getLikeEscape
+     * @model opposite="likeEscape" containment="true"
+     * @generated
+     */
+    QueryValueExpression getEscapeValueExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.PredicateLike#getEscapeValueExpr <em>Escape Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Escape Value Expr</em>' containment reference.
+     * @see #getEscapeValueExpr()
+     * @generated
+     */
+    void setEscapeValueExpr(QueryValueExpression value);
+
+} // SQLPredicateLike
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/PredicateQuantified.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/PredicateQuantified.java
new file mode 100644
index 0000000..47ef515
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/PredicateQuantified.java
@@ -0,0 +1,21 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PredicateQuantified.java,v 1.1 2005/12/16 13:11:14 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Predicate Quantified</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getPredicateQuantified()
+ * @model abstract="true"
+ * @generated
+ */
+public interface PredicateQuantified extends Predicate{
+} // SQLPredicateQuantified
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/PredicateQuantifiedRowSelect.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/PredicateQuantifiedRowSelect.java
new file mode 100644
index 0000000..f7fd310
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/PredicateQuantifiedRowSelect.java
@@ -0,0 +1,105 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PredicateQuantifiedRowSelect.java,v 1.2 2005/12/22 22:18:50 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Predicate Quantified Row Select</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect#getQuantifiedType <em>Quantified Type</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect#getQueryExpr <em>Query Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect#getValueExprList <em>Value Expr List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getPredicateQuantifiedRowSelect()
+ * @model
+ * @generated
+ */
+public interface PredicateQuantifiedRowSelect extends PredicateQuantified{
+	/**
+     * Returns the value of the '<em><b>Quantified Type</b></em>' attribute.
+     * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedType}.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Quantified Type</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Quantified Type</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedType
+     * @see #setQuantifiedType(PredicateQuantifiedType)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getPredicateQuantifiedRowSelect_QuantifiedType()
+     * @model
+     * @generated
+     */
+    PredicateQuantifiedType getQuantifiedType();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect#getQuantifiedType <em>Quantified Type</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Quantified Type</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedType
+     * @see #getQuantifiedType()
+     * @generated
+     */
+    void setQuantifiedType(PredicateQuantifiedType value);
+
+	/**
+     * Returns the value of the '<em><b>Query Expr</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getQuantifiedRowSelectRight <em>Quantified Row Select Right</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Query Expr</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Query Expr</em>' containment reference.
+     * @see #setQueryExpr(QueryExpressionRoot)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getPredicateQuantifiedRowSelect_QueryExpr()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getQuantifiedRowSelectRight
+     * @model opposite="quantifiedRowSelectRight" containment="true" required="true"
+     * @generated
+     */
+    QueryExpressionRoot getQueryExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect#getQueryExpr <em>Query Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Query Expr</em>' containment reference.
+     * @see #getQueryExpr()
+     * @generated
+     */
+    void setQueryExpr(QueryExpressionRoot value);
+
+	/**
+     * Returns the value of the '<em><b>Value Expr List</b></em>' containment reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getQuantifiedRowSelectLeft <em>Quantified Row Select Left</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Expr List</em>' containment reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Expr List</em>' containment reference list.
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getPredicateQuantifiedRowSelect_ValueExprList()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getQuantifiedRowSelectLeft
+     * @model type="org.eclipse.datatools.modelbase.sql.query.QueryValueExpression" opposite="quantifiedRowSelectLeft" containment="true" required="true"
+     * @generated
+     */
+    EList getValueExprList();
+
+} // SQLPredicateQuantifiedRowSelect
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/PredicateQuantifiedType.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/PredicateQuantifiedType.java
new file mode 100644
index 0000000..fd81bc0
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/PredicateQuantifiedType.java
@@ -0,0 +1,178 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PredicateQuantifiedType.java,v 1.4 2007/02/08 17:00:23 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>SQL Predicate Quantified Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getPredicateQuantifiedType()
+ * @model
+ * @generated
+ */
+public final class PredicateQuantifiedType extends AbstractEnumerator {
+	/**
+     * The '<em><b>SOME</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #SOME_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int SOME = 0;
+
+	/**
+     * The '<em><b>ANY</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #ANY_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int ANY = 1;
+
+	/**
+     * The '<em><b>ALL</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #ALL_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int ALL = 2;
+
+	/**
+     * The '<em><b>SOME</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>SOME</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #SOME
+     * @generated
+     * @ordered
+     */
+    public static final PredicateQuantifiedType SOME_LITERAL = new PredicateQuantifiedType(SOME, "SOME", "SOME");
+
+	/**
+     * The '<em><b>ANY</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>ANY</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #ANY
+     * @generated
+     * @ordered
+     */
+    public static final PredicateQuantifiedType ANY_LITERAL = new PredicateQuantifiedType(ANY, "ANY", "ANY");
+
+	/**
+     * The '<em><b>ALL</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>ALL</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #ALL
+     * @generated
+     * @ordered
+     */
+    public static final PredicateQuantifiedType ALL_LITERAL = new PredicateQuantifiedType(ALL, "ALL", "ALL");
+
+	/**
+     * An array of all the '<em><b>Predicate Quantified Type</b></em>' enumerators.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private static final PredicateQuantifiedType[] VALUES_ARRAY =
+		new PredicateQuantifiedType[] {
+            SOME_LITERAL,
+            ANY_LITERAL,
+            ALL_LITERAL,
+        };
+
+	/**
+     * A public read-only list of all the '<em><b>Predicate Quantified Type</b></em>' enumerators.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+     * Returns the '<em><b>Predicate Quantified Type</b></em>' literal with the specified literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static PredicateQuantifiedType get(String literal) {
+        for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+            PredicateQuantifiedType result = VALUES_ARRAY[i];
+            if (result.toString().equals(literal)) {
+                return result;
+            }
+        }
+        return null;
+    }
+
+	/**
+     * Returns the '<em><b>Predicate Quantified Type</b></em>' literal with the specified name.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public static PredicateQuantifiedType getByName(String name) {
+        for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+            PredicateQuantifiedType result = VALUES_ARRAY[i];
+            if (result.getName().equals(name)) {
+                return result;
+            }
+        }
+        return null;
+    }
+
+	/**
+     * Returns the '<em><b>Predicate Quantified Type</b></em>' literal with the specified integer value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static PredicateQuantifiedType get(int value) {
+        switch (value) {
+            case SOME: return SOME_LITERAL;
+            case ANY: return ANY_LITERAL;
+            case ALL: return ALL_LITERAL;
+        }
+        return null;
+    }
+
+	/**
+     * Only this class can construct instances.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private PredicateQuantifiedType(int value, String name, String literal) {
+        super(value, name, literal);
+    }
+
+} //SQLPredicateQuantifiedType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/PredicateQuantifiedValueSelect.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/PredicateQuantifiedValueSelect.java
new file mode 100644
index 0000000..018d832
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/PredicateQuantifiedValueSelect.java
@@ -0,0 +1,144 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PredicateQuantifiedValueSelect.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Predicate Quantified Value Select</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect#getQuantifiedType <em>Quantified Type</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect#getComparisonOperator <em>Comparison Operator</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect#getQueryExpr <em>Query Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect#getValueExpr <em>Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getPredicateQuantifiedValueSelect()
+ * @model
+ * @generated
+ */
+public interface PredicateQuantifiedValueSelect extends PredicateQuantified{
+	/**
+     * Returns the value of the '<em><b>Quantified Type</b></em>' attribute.
+     * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedType}.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Quantified Type</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Quantified Type</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedType
+     * @see #setQuantifiedType(PredicateQuantifiedType)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getPredicateQuantifiedValueSelect_QuantifiedType()
+     * @model
+     * @generated
+     */
+    PredicateQuantifiedType getQuantifiedType();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect#getQuantifiedType <em>Quantified Type</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Quantified Type</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedType
+     * @see #getQuantifiedType()
+     * @generated
+     */
+    void setQuantifiedType(PredicateQuantifiedType value);
+
+	/**
+     * Returns the value of the '<em><b>Comparison Operator</b></em>' attribute.
+     * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.query.PredicateComparisonOperator}.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Comparison Operator</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Comparison Operator</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateComparisonOperator
+     * @see #setComparisonOperator(PredicateComparisonOperator)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getPredicateQuantifiedValueSelect_ComparisonOperator()
+     * @model
+     * @generated
+     */
+    PredicateComparisonOperator getComparisonOperator();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect#getComparisonOperator <em>Comparison Operator</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Comparison Operator</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateComparisonOperator
+     * @see #getComparisonOperator()
+     * @generated
+     */
+    void setComparisonOperator(PredicateComparisonOperator value);
+
+	/**
+     * Returns the value of the '<em><b>Query Expr</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getQuantifiedValueSelectRight <em>Quantified Value Select Right</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Query Expr</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Query Expr</em>' containment reference.
+     * @see #setQueryExpr(QueryExpressionRoot)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getPredicateQuantifiedValueSelect_QueryExpr()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getQuantifiedValueSelectRight
+     * @model opposite="quantifiedValueSelectRight" containment="true" required="true"
+     * @generated
+     */
+    QueryExpressionRoot getQueryExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect#getQueryExpr <em>Query Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Query Expr</em>' containment reference.
+     * @see #getQueryExpr()
+     * @generated
+     */
+    void setQueryExpr(QueryExpressionRoot value);
+
+	/**
+     * Returns the value of the '<em><b>Value Expr</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getQuantifiedValueSelectLeft <em>Quantified Value Select Left</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Expr</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Expr</em>' containment reference.
+     * @see #setValueExpr(QueryValueExpression)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getPredicateQuantifiedValueSelect_ValueExpr()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getQuantifiedValueSelectLeft
+     * @model opposite="quantifiedValueSelectLeft" containment="true" required="true"
+     * @generated
+     */
+    QueryValueExpression getValueExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect#getValueExpr <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Expr</em>' containment reference.
+     * @see #getValueExpr()
+     * @generated
+     */
+    void setValueExpr(QueryValueExpression value);
+
+} // SQLPredicateQuantifiedValueSelect
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ProcedureReference.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ProcedureReference.java
new file mode 100644
index 0000000..a0be838
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ProcedureReference.java
@@ -0,0 +1,83 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+import org.eclipse.datatools.modelbase.sql.routines.Procedure;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Procedure Reference</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.ProcedureReference#getCallStatement <em>Call Statement</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.ProcedureReference#getProcedure <em>Procedure</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getProcedureReference()
+ * @model
+ * @generated
+ */
+public interface ProcedureReference extends SQLQueryObject {
+    /**
+     * Returns the value of the '<em><b>Call Statement</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.CallStatement#getProcedureRef <em>Procedure Ref</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Call Statement</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Call Statement</em>' container reference.
+     * @see #setCallStatement(CallStatement)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getProcedureReference_CallStatement()
+     * @see org.eclipse.datatools.modelbase.sql.query.CallStatement#getProcedureRef
+     * @model opposite="procedureRef" required="true"
+     * @generated
+     */
+    CallStatement getCallStatement();
+
+    /**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.ProcedureReference#getCallStatement <em>Call Statement</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Call Statement</em>' container reference.
+     * @see #getCallStatement()
+     * @generated
+     */
+    void setCallStatement(CallStatement value);
+
+    /**
+     * Returns the value of the '<em><b>Procedure</b></em>' reference.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Procedure</em>' reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Procedure</em>' reference.
+     * @see #setProcedure(Procedure)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getProcedureReference_Procedure()
+     * @model required="true"
+     * @generated
+     */
+    Procedure getProcedure();
+
+    /**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.ProcedureReference#getProcedure <em>Procedure</em>}' reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Procedure</em>' reference.
+     * @see #getProcedure()
+     * @generated
+     */
+    void setProcedure(Procedure value);
+
+} // ProcedureReference
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QueryChangeStatement.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QueryChangeStatement.java
new file mode 100644
index 0000000..7bb14fe
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QueryChangeStatement.java
@@ -0,0 +1,23 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QueryChangeStatement.java,v 1.1 2005/12/16 13:11:14 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+import org.eclipse.datatools.modelbase.sql.statements.SQLDataChangeStatement;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Change Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryChangeStatement()
+ * @model abstract="true"
+ * @generated
+ */
+public interface QueryChangeStatement extends QueryStatement, SQLDataChangeStatement{
+} // SQLQueryChangeStatement
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QueryCombined.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QueryCombined.java
new file mode 100644
index 0000000..7746c1e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QueryCombined.java
@@ -0,0 +1,114 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QueryCombined.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Combined</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryCombined#getCombinedOperator <em>Combined Operator</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryCombined#getLeftQuery <em>Left Query</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryCombined#getRightQuery <em>Right Query</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryCombined()
+ * @model
+ * @generated
+ */
+public interface QueryCombined extends QueryExpressionBody{
+	/**
+     * Returns the value of the '<em><b>Combined Operator</b></em>' attribute.
+     * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.query.QueryCombinedOperator}.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Combined Operator</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Combined Operator</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryCombinedOperator
+     * @see #setCombinedOperator(QueryCombinedOperator)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryCombined_CombinedOperator()
+     * @model
+     * @generated
+     */
+    QueryCombinedOperator getCombinedOperator();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryCombined#getCombinedOperator <em>Combined Operator</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Combined Operator</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryCombinedOperator
+     * @see #getCombinedOperator()
+     * @generated
+     */
+    void setCombinedOperator(QueryCombinedOperator value);
+
+	/**
+     * Returns the value of the '<em><b>Left Query</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getCombinedLeft <em>Combined Left</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Left Query</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Left Query</em>' containment reference.
+     * @see #setLeftQuery(QueryExpressionBody)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryCombined_LeftQuery()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getCombinedLeft
+     * @model opposite="combinedLeft" containment="true" required="true"
+     * @generated
+     */
+    QueryExpressionBody getLeftQuery();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryCombined#getLeftQuery <em>Left Query</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Left Query</em>' containment reference.
+     * @see #getLeftQuery()
+     * @generated
+     */
+    void setLeftQuery(QueryExpressionBody value);
+
+	/**
+     * Returns the value of the '<em><b>Right Query</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getCombinedRight <em>Combined Right</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Right Query</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Right Query</em>' containment reference.
+     * @see #setRightQuery(QueryExpressionBody)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryCombined_RightQuery()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getCombinedRight
+     * @model opposite="combinedRight" containment="true" required="true"
+     * @generated
+     */
+    QueryExpressionBody getRightQuery();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryCombined#getRightQuery <em>Right Query</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Right Query</em>' containment reference.
+     * @see #getRightQuery()
+     * @generated
+     */
+    void setRightQuery(QueryExpressionBody value);
+
+} // SQLQueryCombined
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QueryCombinedOperator.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QueryCombinedOperator.java
new file mode 100644
index 0000000..9f8127a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QueryCombinedOperator.java
@@ -0,0 +1,267 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QueryCombinedOperator.java,v 1.4 2007/02/08 17:00:24 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Combined Operator</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * UNION=1
+ * UNION_ALL=2
+ * INTERSECT=3
+ * INTERSECT_ALL=4
+ * EXCEPT=5
+ * EXCEPT_ALL=6
+ * <!-- end-model-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryCombinedOperator()
+ * @model
+ * @generated
+ */
+public final class QueryCombinedOperator extends AbstractEnumerator {
+	/**
+     * The '<em><b>UNION</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #UNION_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int UNION = 0;
+
+	/**
+     * The '<em><b>UNION ALL</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #UNION_ALL_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int UNION_ALL = 1;
+
+	/**
+     * The '<em><b>INTERSECT</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #INTERSECT_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int INTERSECT = 2;
+
+	/**
+     * The '<em><b>INTERSECT ALL</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #INTERSECT_ALL_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int INTERSECT_ALL = 3;
+
+	/**
+     * The '<em><b>EXCEPT</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #EXCEPT_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int EXCEPT = 4;
+
+	/**
+     * The '<em><b>EXCEPT ALL</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #EXCEPT_ALL_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int EXCEPT_ALL = 5;
+
+	/**
+     * The '<em><b>UNION</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>UNION</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #UNION
+     * @generated
+     * @ordered
+     */
+    public static final QueryCombinedOperator UNION_LITERAL = new QueryCombinedOperator(UNION, "UNION", "UNION");
+
+	/**
+     * The '<em><b>UNION ALL</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>UNION ALL</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #UNION_ALL
+     * @generated
+     * @ordered
+     */
+    public static final QueryCombinedOperator UNION_ALL_LITERAL = new QueryCombinedOperator(UNION_ALL, "UNION_ALL", "UNION_ALL");
+
+	/**
+     * The '<em><b>INTERSECT</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>INTERSECT</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #INTERSECT
+     * @generated
+     * @ordered
+     */
+    public static final QueryCombinedOperator INTERSECT_LITERAL = new QueryCombinedOperator(INTERSECT, "INTERSECT", "INTERSECT");
+
+	/**
+     * The '<em><b>INTERSECT ALL</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>INTERSECT ALL</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #INTERSECT_ALL
+     * @generated
+     * @ordered
+     */
+    public static final QueryCombinedOperator INTERSECT_ALL_LITERAL = new QueryCombinedOperator(INTERSECT_ALL, "INTERSECT_ALL", "INTERSECT_ALL");
+
+	/**
+     * The '<em><b>EXCEPT</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>EXCEPT</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #EXCEPT
+     * @generated
+     * @ordered
+     */
+    public static final QueryCombinedOperator EXCEPT_LITERAL = new QueryCombinedOperator(EXCEPT, "EXCEPT", "EXCEPT");
+
+	/**
+     * The '<em><b>EXCEPT ALL</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>EXCEPT ALL</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #EXCEPT_ALL
+     * @generated
+     * @ordered
+     */
+    public static final QueryCombinedOperator EXCEPT_ALL_LITERAL = new QueryCombinedOperator(EXCEPT_ALL, "EXCEPT_ALL", "EXCEPT_ALL");
+
+	/**
+     * An array of all the '<em><b>Query Combined Operator</b></em>' enumerators.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private static final QueryCombinedOperator[] VALUES_ARRAY =
+		new QueryCombinedOperator[] {
+            UNION_LITERAL,
+            UNION_ALL_LITERAL,
+            INTERSECT_LITERAL,
+            INTERSECT_ALL_LITERAL,
+            EXCEPT_LITERAL,
+            EXCEPT_ALL_LITERAL,
+        };
+
+	/**
+     * A public read-only list of all the '<em><b>Query Combined Operator</b></em>' enumerators.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+     * Returns the '<em><b>Query Combined Operator</b></em>' literal with the specified literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static QueryCombinedOperator get(String literal) {
+        for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+            QueryCombinedOperator result = VALUES_ARRAY[i];
+            if (result.toString().equals(literal)) {
+                return result;
+            }
+        }
+        return null;
+    }
+
+	/**
+     * Returns the '<em><b>Query Combined Operator</b></em>' literal with the specified name.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public static QueryCombinedOperator getByName(String name) {
+        for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+            QueryCombinedOperator result = VALUES_ARRAY[i];
+            if (result.getName().equals(name)) {
+                return result;
+            }
+        }
+        return null;
+    }
+
+	/**
+     * Returns the '<em><b>Query Combined Operator</b></em>' literal with the specified integer value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static QueryCombinedOperator get(int value) {
+        switch (value) {
+            case UNION: return UNION_LITERAL;
+            case UNION_ALL: return UNION_ALL_LITERAL;
+            case INTERSECT: return INTERSECT_LITERAL;
+            case INTERSECT_ALL: return INTERSECT_ALL_LITERAL;
+            case EXCEPT: return EXCEPT_LITERAL;
+            case EXCEPT_ALL: return EXCEPT_ALL_LITERAL;
+        }
+        return null;
+    }
+
+	/**
+     * Only this class can construct instances.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private QueryCombinedOperator(int value, String name, String literal) {
+        super(value, name, literal);
+    }
+
+} //SQLQueryCombinedOperator
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QueryDeleteStatement.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QueryDeleteStatement.java
new file mode 100644
index 0000000..4f726c2
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QueryDeleteStatement.java
@@ -0,0 +1,167 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QueryDeleteStatement.java,v 1.2 2005/12/22 22:18:50 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Delete Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement#getWhereCurrentOfClause <em>Where Current Of Clause</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement#getWhereClause <em>Where Clause</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement#getTargetTable <em>Target Table</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryDeleteStatement()
+ * @model
+ * @generated
+ */
+public interface QueryDeleteStatement extends QueryChangeStatement{
+	/**
+     * Returns the value of the '<em><b>Where Current Of Clause</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.CursorReference#getDeleteStatement <em>Delete Statement</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Where Current Of Clause</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Where Current Of Clause</em>' containment reference.
+     * @see #setWhereCurrentOfClause(CursorReference)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryDeleteStatement_WhereCurrentOfClause()
+     * @see org.eclipse.datatools.modelbase.sql.query.CursorReference#getDeleteStatement
+     * @model opposite="deleteStatement" containment="true"
+     * @generated
+     */
+    CursorReference getWhereCurrentOfClause();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement#getWhereCurrentOfClause <em>Where Current Of Clause</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Where Current Of Clause</em>' containment reference.
+     * @see #getWhereCurrentOfClause()
+     * @generated
+     */
+    void setWhereCurrentOfClause(CursorReference value);
+
+	/**
+     * Returns the value of the '<em><b>Where Clause</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getDeleteStatement <em>Delete Statement</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Where Clause</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Where Clause</em>' containment reference.
+     * @see #isSetWhereClause()
+     * @see #unsetWhereClause()
+     * @see #setWhereClause(QuerySearchCondition)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryDeleteStatement_WhereClause()
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getDeleteStatement
+     * @model opposite="deleteStatement" containment="true" unsettable="true"
+     * @generated
+     */
+    QuerySearchCondition getWhereClause();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement#getWhereClause <em>Where Clause</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Where Clause</em>' containment reference.
+     * @see #isSetWhereClause()
+     * @see #unsetWhereClause()
+     * @see #getWhereClause()
+     * @generated
+     */
+    void setWhereClause(QuerySearchCondition value);
+
+	/**
+     * Unsets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement#getWhereClause <em>Where Clause</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #isSetWhereClause()
+     * @see #getWhereClause()
+     * @see #setWhereClause(QuerySearchCondition)
+     * @generated
+     */
+    void unsetWhereClause();
+
+	/**
+     * Returns whether the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement#getWhereClause <em>Where Clause</em>}' containment reference is set.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return whether the value of the '<em>Where Clause</em>' containment reference is set.
+     * @see #unsetWhereClause()
+     * @see #getWhereClause()
+     * @see #setWhereClause(QuerySearchCondition)
+     * @generated
+     */
+    boolean isSetWhereClause();
+
+	/**
+     * Returns the value of the '<em><b>Target Table</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.TableInDatabase#getDeleteStatement <em>Delete Statement</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Target Table</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Target Table</em>' containment reference.
+     * @see #isSetTargetTable()
+     * @see #unsetTargetTable()
+     * @see #setTargetTable(TableInDatabase)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryDeleteStatement_TargetTable()
+     * @see org.eclipse.datatools.modelbase.sql.query.TableInDatabase#getDeleteStatement
+     * @model opposite="deleteStatement" containment="true" unsettable="true" required="true"
+     * @generated
+     */
+    TableInDatabase getTargetTable();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement#getTargetTable <em>Target Table</em>}' containment reference.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Target Table</em>' containment reference.
+     * @see #isSetTargetTable()
+     * @see #unsetTargetTable()
+     * @see #getTargetTable()
+     * @generated
+     */
+  void setTargetTable(TableInDatabase value);
+
+	/**
+     * Unsets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement#getTargetTable <em>Target Table</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #isSetTargetTable()
+     * @see #getTargetTable()
+     * @see #setTargetTable(TableInDatabase)
+     * @generated
+     */
+    void unsetTargetTable();
+
+	/**
+     * Returns whether the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement#getTargetTable <em>Target Table</em>}' containment reference is set.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return whether the value of the '<em>Target Table</em>' containment reference is set.
+     * @see #unsetTargetTable()
+     * @see #getTargetTable()
+     * @see #setTargetTable(TableInDatabase)
+     * @generated
+     */
+    boolean isSetTargetTable();
+
+} // SQLDeleteStatement
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QueryExpressionBody.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QueryExpressionBody.java
new file mode 100644
index 0000000..d9b5a2d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QueryExpressionBody.java
@@ -0,0 +1,277 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QueryExpressionBody.java,v 1.3 2008/01/31 02:57:16 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+import org.eclipse.emf.common.util.EList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Expression Body</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getRowFetchLimit <em>Row Fetch Limit</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getQueryExpression <em>Query Expression</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getCombinedLeft <em>Combined Left</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getCombinedRight <em>Combined Right</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getPredicateExists <em>Predicate Exists</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getUpdateSourceQuery <em>Update Source Query</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getWithTableSpecification <em>With Table Specification</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getQueryNest <em>Query Nest</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getSortSpecList <em>Sort Spec List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryExpressionBody()
+ * @model abstract="true"
+ * @generated
+ */
+public interface QueryExpressionBody extends TableExpression{
+	/**
+     * Returns the value of the '<em><b>Row Fetch Limit</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Row Fetch Limit</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Row Fetch Limit</em>' attribute.
+     * @see #setRowFetchLimit(int)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryExpressionBody_RowFetchLimit()
+     * @model
+     * @generated
+     */
+    int getRowFetchLimit();
+
+    /**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getRowFetchLimit <em>Row Fetch Limit</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Row Fetch Limit</em>' attribute.
+     * @see #getRowFetchLimit()
+     * @generated
+     */
+    void setRowFetchLimit(int value);
+
+    /**
+     * Returns the value of the '<em><b>Query Expression</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getQuery <em>Query</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Query Expression</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Query Expression</em>' container reference.
+     * @see #setQueryExpression(QueryExpressionRoot)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryExpressionBody_QueryExpression()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getQuery
+     * @model opposite="query"
+     * @generated
+     */
+    QueryExpressionRoot getQueryExpression();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getQueryExpression <em>Query Expression</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Query Expression</em>' container reference.
+     * @see #getQueryExpression()
+     * @generated
+     */
+    void setQueryExpression(QueryExpressionRoot value);
+
+	/**
+     * Returns the value of the '<em><b>Combined Left</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryCombined#getLeftQuery <em>Left Query</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Combined Left</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Combined Left</em>' container reference.
+     * @see #setCombinedLeft(QueryCombined)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryExpressionBody_CombinedLeft()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryCombined#getLeftQuery
+     * @model opposite="leftQuery"
+     * @generated
+     */
+    QueryCombined getCombinedLeft();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getCombinedLeft <em>Combined Left</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Combined Left</em>' container reference.
+     * @see #getCombinedLeft()
+     * @generated
+     */
+    void setCombinedLeft(QueryCombined value);
+
+	/**
+     * Returns the value of the '<em><b>Combined Right</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryCombined#getRightQuery <em>Right Query</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Combined Right</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Combined Right</em>' container reference.
+     * @see #setCombinedRight(QueryCombined)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryExpressionBody_CombinedRight()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryCombined#getRightQuery
+     * @model opposite="rightQuery"
+     * @generated
+     */
+    QueryCombined getCombinedRight();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getCombinedRight <em>Combined Right</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Combined Right</em>' container reference.
+     * @see #getCombinedRight()
+     * @generated
+     */
+    void setCombinedRight(QueryCombined value);
+
+	/**
+     * Returns the value of the '<em><b>Predicate Exists</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.PredicateExists#getQueryExpr <em>Query Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Predicate Exists</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Predicate Exists</em>' container reference.
+     * @see #setPredicateExists(PredicateExists)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryExpressionBody_PredicateExists()
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateExists#getQueryExpr
+     * @model opposite="queryExpr"
+     * @generated
+     */
+    PredicateExists getPredicateExists();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getPredicateExists <em>Predicate Exists</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Predicate Exists</em>' container reference.
+     * @see #getPredicateExists()
+     * @generated
+     */
+    void setPredicateExists(PredicateExists value);
+
+	/**
+     * Returns the value of the '<em><b>Update Source Query</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.UpdateSourceQuery#getQueryExpr <em>Query Expr</em>}'.
+     * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Update Source Query</em>' container reference isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+     * @return the value of the '<em>Update Source Query</em>' container reference.
+     * @see #setUpdateSourceQuery(UpdateSourceQuery)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryExpressionBody_UpdateSourceQuery()
+     * @see org.eclipse.datatools.modelbase.sql.query.UpdateSourceQuery#getQueryExpr
+     * @model opposite="queryExpr" required="true"
+     * @generated
+     */
+  UpdateSourceQuery getUpdateSourceQuery();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getUpdateSourceQuery <em>Update Source Query</em>}' container reference.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Update Source Query</em>' container reference.
+     * @see #getUpdateSourceQuery()
+     * @generated
+     */
+  void setUpdateSourceQuery(UpdateSourceQuery value);
+
+	/**
+     * Returns the value of the '<em><b>With Table Specification</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.WithTableSpecification#getWithTableQueryExpr <em>With Table Query Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>With Table Specification</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>With Table Specification</em>' container reference.
+     * @see #setWithTableSpecification(WithTableSpecification)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryExpressionBody_WithTableSpecification()
+     * @see org.eclipse.datatools.modelbase.sql.query.WithTableSpecification#getWithTableQueryExpr
+     * @model opposite="withTableQueryExpr" required="true"
+     * @generated
+     */
+    WithTableSpecification getWithTableSpecification();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getWithTableSpecification <em>With Table Specification</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>With Table Specification</em>' container reference.
+     * @see #getWithTableSpecification()
+     * @generated
+     */
+    void setWithTableSpecification(WithTableSpecification value);
+
+    /**
+     * Returns the value of the '<em><b>Query Nest</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryNested#getNestedQuery <em>Nested Query</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Query Nest</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Query Nest</em>' container reference.
+     * @see #setQueryNest(QueryNested)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryExpressionBody_QueryNest()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryNested#getNestedQuery
+     * @model opposite="nestedQuery"
+     * @generated
+     */
+    QueryNested getQueryNest();
+
+    /**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getQueryNest <em>Query Nest</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Query Nest</em>' container reference.
+     * @see #getQueryNest()
+     * @generated
+     */
+    void setQueryNest(QueryNested value);
+
+    /**
+     * Returns the value of the '<em><b>Sort Spec List</b></em>' containment reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.query.OrderBySpecification}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.OrderBySpecification#getQuery <em>Query</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Sort Spec List</em>' containment reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Sort Spec List</em>' containment reference list.
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryExpressionBody_SortSpecList()
+     * @see org.eclipse.datatools.modelbase.sql.query.OrderBySpecification#getQuery
+     * @model type="org.eclipse.datatools.modelbase.sql.query.OrderBySpecification" opposite="query" containment="true"
+     * @generated
+     */
+    EList getSortSpecList();
+
+} // SQLQueryExpressionBody
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QueryExpressionRoot.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QueryExpressionRoot.java
new file mode 100644
index 0000000..a0b433e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QueryExpressionRoot.java
@@ -0,0 +1,298 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QueryExpressionRoot.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+import org.eclipse.datatools.modelbase.sql.expressions.QueryExpression;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getInsertStatement <em>Insert Statement</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getSelectStatement <em>Select Statement</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getWithClause <em>With Clause</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getQuery <em>Query</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getInValueRowSelectRight <em>In Value Row Select Right</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getInValueSelectRight <em>In Value Select Right</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getQuantifiedRowSelectRight <em>Quantified Row Select Right</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getQuantifiedValueSelectRight <em>Quantified Value Select Right</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getValExprScalarSelect <em>Val Expr Scalar Select</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryExpressionRoot()
+ * @model
+ * @generated
+ */
+public interface QueryExpressionRoot extends SQLQueryObject, QueryExpression{
+	/**
+     * Returns the value of the '<em><b>Insert Statement</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryInsertStatement#getSourceQuery <em>Source Query</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Insert Statement</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Insert Statement</em>' container reference.
+     * @see #setInsertStatement(QueryInsertStatement)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryExpressionRoot_InsertStatement()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryInsertStatement#getSourceQuery
+     * @model opposite="sourceQuery"
+     * @generated
+     */
+    QueryInsertStatement getInsertStatement();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getInsertStatement <em>Insert Statement</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Insert Statement</em>' container reference.
+     * @see #getInsertStatement()
+     * @generated
+     */
+    void setInsertStatement(QueryInsertStatement value);
+
+	/**
+     * Returns the value of the '<em><b>Select Statement</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QuerySelectStatement#getQueryExpr <em>Query Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Select Statement</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Select Statement</em>' container reference.
+     * @see #setSelectStatement(QuerySelectStatement)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryExpressionRoot_SelectStatement()
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySelectStatement#getQueryExpr
+     * @model opposite="queryExpr"
+     * @generated
+     */
+    QuerySelectStatement getSelectStatement();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getSelectStatement <em>Select Statement</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Select Statement</em>' container reference.
+     * @see #getSelectStatement()
+     * @generated
+     */
+    void setSelectStatement(QuerySelectStatement value);
+
+	/**
+     * Returns the value of the '<em><b>With Clause</b></em>' containment reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.query.WithTableSpecification}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.WithTableSpecification#getQueryExpressionRoot <em>Query Expression Root</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>With Clause</em>' containment reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>With Clause</em>' containment reference list.
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryExpressionRoot_WithClause()
+     * @see org.eclipse.datatools.modelbase.sql.query.WithTableSpecification#getQueryExpressionRoot
+     * @model type="org.eclipse.datatools.modelbase.sql.query.WithTableSpecification" opposite="queryExpressionRoot" containment="true"
+     * @generated
+     */
+    EList getWithClause();
+
+	/**
+     * Returns the value of the '<em><b>Query</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getQueryExpression <em>Query Expression</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Query</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Query</em>' containment reference.
+     * @see #setQuery(QueryExpressionBody)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryExpressionRoot_Query()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getQueryExpression
+     * @model opposite="queryExpression" containment="true" required="true"
+     * @generated
+     */
+    QueryExpressionBody getQuery();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getQuery <em>Query</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Query</em>' containment reference.
+     * @see #getQuery()
+     * @generated
+     */
+    void setQuery(QueryExpressionBody value);
+
+	/**
+     * Returns the value of the '<em><b>In Value Row Select Right</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect#getQueryExpr <em>Query Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>In Value Row Select Right</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>In Value Row Select Right</em>' container reference.
+     * @see #setInValueRowSelectRight(PredicateInValueRowSelect)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryExpressionRoot_InValueRowSelectRight()
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect#getQueryExpr
+     * @model opposite="queryExpr"
+     * @generated
+     */
+    PredicateInValueRowSelect getInValueRowSelectRight();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getInValueRowSelectRight <em>In Value Row Select Right</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>In Value Row Select Right</em>' container reference.
+     * @see #getInValueRowSelectRight()
+     * @generated
+     */
+    void setInValueRowSelectRight(PredicateInValueRowSelect value);
+
+	/**
+     * Returns the value of the '<em><b>In Value Select Right</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect#getQueryExpr <em>Query Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>In Value Select Right</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>In Value Select Right</em>' container reference.
+     * @see #setInValueSelectRight(PredicateInValueSelect)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryExpressionRoot_InValueSelectRight()
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect#getQueryExpr
+     * @model opposite="queryExpr"
+     * @generated
+     */
+    PredicateInValueSelect getInValueSelectRight();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getInValueSelectRight <em>In Value Select Right</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>In Value Select Right</em>' container reference.
+     * @see #getInValueSelectRight()
+     * @generated
+     */
+    void setInValueSelectRight(PredicateInValueSelect value);
+
+	/**
+     * Returns the value of the '<em><b>Quantified Row Select Right</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect#getQueryExpr <em>Query Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Quantified Row Select Right</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Quantified Row Select Right</em>' container reference.
+     * @see #setQuantifiedRowSelectRight(PredicateQuantifiedRowSelect)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryExpressionRoot_QuantifiedRowSelectRight()
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect#getQueryExpr
+     * @model opposite="queryExpr"
+     * @generated
+     */
+    PredicateQuantifiedRowSelect getQuantifiedRowSelectRight();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getQuantifiedRowSelectRight <em>Quantified Row Select Right</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Quantified Row Select Right</em>' container reference.
+     * @see #getQuantifiedRowSelectRight()
+     * @generated
+     */
+    void setQuantifiedRowSelectRight(PredicateQuantifiedRowSelect value);
+
+	/**
+     * Returns the value of the '<em><b>Quantified Value Select Right</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect#getQueryExpr <em>Query Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Quantified Value Select Right</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Quantified Value Select Right</em>' container reference.
+     * @see #setQuantifiedValueSelectRight(PredicateQuantifiedValueSelect)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryExpressionRoot_QuantifiedValueSelectRight()
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect#getQueryExpr
+     * @model opposite="queryExpr"
+     * @generated
+     */
+    PredicateQuantifiedValueSelect getQuantifiedValueSelectRight();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getQuantifiedValueSelectRight <em>Quantified Value Select Right</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Quantified Value Select Right</em>' container reference.
+     * @see #getQuantifiedValueSelectRight()
+     * @generated
+     */
+    void setQuantifiedValueSelectRight(PredicateQuantifiedValueSelect value);
+
+	/**
+     * Returns the value of the '<em><b>Val Expr Scalar Select</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionScalarSelect#getQueryExpr <em>Query Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Val Expr Scalar Select</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Val Expr Scalar Select</em>' container reference.
+     * @see #setValExprScalarSelect(ValueExpressionScalarSelect)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryExpressionRoot_ValExprScalarSelect()
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionScalarSelect#getQueryExpr
+     * @model opposite="queryExpr"
+     * @generated
+     */
+    ValueExpressionScalarSelect getValExprScalarSelect();
+
+    /**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getValExprScalarSelect <em>Val Expr Scalar Select</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Val Expr Scalar Select</em>' container reference.
+     * @see #getValExprScalarSelect()
+     * @generated
+     */
+    void setValExprScalarSelect(ValueExpressionScalarSelect value);
+
+    /**
+     * Returns the value of the '<em><b>Value Expr Scalar Selects</b></em>' reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionScalarSelect}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionScalarSelect#getQueryExpr <em>Query Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Expr Scalar Selects</em>' reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Expr Scalar Selects</em>' reference list.
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryExpressionRoot_ValueExprScalarSelects()
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionScalarSelect#getQueryExpr
+     * @model type="org.eclipse.datatools.modelbase.sql.query.ValueExpressionScalarSelect" opposite="queryExpr"
+     * @generated NOT
+     * @deprecated Use getValExprScalarSelect instead, which returns a single element instead of a list
+     */
+    EList getValueExprScalarSelects();
+} // SQLQueryExpression
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QueryInsertStatement.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QueryInsertStatement.java
new file mode 100644
index 0000000..2ecd3a0
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QueryInsertStatement.java
@@ -0,0 +1,150 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QueryInsertStatement.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Insert Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryInsertStatement#getSourceQuery <em>Source Query</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryInsertStatement#getSourceValuesRowList <em>Source Values Row List</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryInsertStatement#getTargetTable <em>Target Table</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryInsertStatement#getTargetColumnList <em>Target Column List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryInsertStatement()
+ * @model
+ * @generated
+ */
+public interface QueryInsertStatement extends QueryChangeStatement{
+	/**
+     * Returns the value of the '<em><b>Source Query</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getInsertStatement <em>Insert Statement</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Source Query</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Source Query</em>' containment reference.
+     * @see #setSourceQuery(QueryExpressionRoot)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryInsertStatement_SourceQuery()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getInsertStatement
+     * @model opposite="insertStatement" containment="true"
+     * @generated
+     */
+    QueryExpressionRoot getSourceQuery();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryInsertStatement#getSourceQuery <em>Source Query</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Source Query</em>' containment reference.
+     * @see #getSourceQuery()
+     * @generated
+     */
+    void setSourceQuery(QueryExpressionRoot value);
+
+	/**
+     * Returns the value of the '<em><b>Source Values Row List</b></em>' containment reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.query.ValuesRow}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.ValuesRow#getInsertStatement <em>Insert Statement</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Source Values Row List</em>' containment reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Source Values Row List</em>' containment reference list.
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryInsertStatement_SourceValuesRowList()
+     * @see org.eclipse.datatools.modelbase.sql.query.ValuesRow#getInsertStatement
+     * @model type="org.eclipse.datatools.modelbase.sql.query.ValuesRow" opposite="insertStatement" containment="true"
+     * @generated
+     */
+    EList getSourceValuesRowList();
+
+	/**
+     * Returns the value of the '<em><b>Target Table</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.TableInDatabase#getInsertStatement <em>Insert Statement</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Target Table</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Target Table</em>' containment reference.
+     * @see #isSetTargetTable()
+     * @see #unsetTargetTable()
+     * @see #setTargetTable(TableInDatabase)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryInsertStatement_TargetTable()
+     * @see org.eclipse.datatools.modelbase.sql.query.TableInDatabase#getInsertStatement
+     * @model opposite="insertStatement" containment="true" unsettable="true" required="true"
+     * @generated
+     */
+    TableInDatabase getTargetTable();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryInsertStatement#getTargetTable <em>Target Table</em>}' containment reference.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Target Table</em>' containment reference.
+     * @see #isSetTargetTable()
+     * @see #unsetTargetTable()
+     * @see #getTargetTable()
+     * @generated
+     */
+  void setTargetTable(TableInDatabase value);
+
+	/**
+     * Unsets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryInsertStatement#getTargetTable <em>Target Table</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #isSetTargetTable()
+     * @see #getTargetTable()
+     * @see #setTargetTable(TableInDatabase)
+     * @generated
+     */
+    void unsetTargetTable();
+
+	/**
+     * Returns whether the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryInsertStatement#getTargetTable <em>Target Table</em>}' containment reference is set.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return whether the value of the '<em>Target Table</em>' containment reference is set.
+     * @see #unsetTargetTable()
+     * @see #getTargetTable()
+     * @see #setTargetTable(TableInDatabase)
+     * @generated
+     */
+    boolean isSetTargetTable();
+
+	/**
+     * Returns the value of the '<em><b>Target Column List</b></em>' reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn#getInsertStatement <em>Insert Statement</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Target Column List</em>' reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Target Column List</em>' reference list.
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryInsertStatement_TargetColumnList()
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn#getInsertStatement
+     * @model type="org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn" opposite="insertStatement"
+     * @generated
+     */
+    EList getTargetColumnList();
+
+} // SQLInsertStatement
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QueryMergeStatement.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QueryMergeStatement.java
new file mode 100644
index 0000000..947c7de
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QueryMergeStatement.java
@@ -0,0 +1,165 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QueryMergeStatement.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+import org.eclipse.emf.common.util.EList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Merge Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * SQL syntax:
+ * MERGE INTO <target table> [ [ AS] <merge correlation name> ]
+ * USING <table reference>
+ * ON <search condition> 
+ * <merge operation specificaion list>
+ * 
+ * where:
+ * <merge operation specification list> ::=
+ *     <merge operation specification> [<merge operation specification ...]
+ * <merge operation specification> ::=
+ *     <merge update specification>  |  <merge insert specification>
+ * 
+ * Note: a non-syntactic rule is that the operation specification list can contain at most one update specification and one insert specification.
+ * 
+ * Example:
+ * MERGE INTO inventory AS in
+ * USING 
+ *   (SELECT partno, description, count 
+ *    FROM shipment
+ *    WHERE shipment.partno IS NOT NULL) AS sh
+ * ON (in.partno = sh.partno)
+ * WHEN MATCHED THEN
+ *    UPDATE SET
+ *         description = sh.description,
+ *         quantity = in.quantity + sh.count
+ * WHEN NOT MATCHED THEN
+ *     INSERT (partno, description, quantity)
+ *     VALUES (sh.partno, sh.description, sh.count) 
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryMergeStatement#getTargetTable <em>Target Table</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryMergeStatement#getSourceTable <em>Source Table</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryMergeStatement#getOnCondition <em>On Condition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryMergeStatement#getOperationSpecList <em>Operation Spec List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryMergeStatement()
+ * @model
+ * @generated
+ */
+public interface QueryMergeStatement extends QueryChangeStatement{
+
+    /**
+     * Returns the value of the '<em><b>Target Table</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.MergeTargetTable#getMergeStatement <em>Merge Statement</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Target Table</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Target Table</em>' containment reference.
+     * @see #setTargetTable(MergeTargetTable)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryMergeStatement_TargetTable()
+     * @see org.eclipse.datatools.modelbase.sql.query.MergeTargetTable#getMergeStatement
+     * @model opposite="mergeStatement" containment="true" required="true"
+     * @generated
+     */
+    MergeTargetTable getTargetTable();
+
+    /**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryMergeStatement#getTargetTable <em>Target Table</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Target Table</em>' containment reference.
+     * @see #getTargetTable()
+     * @generated
+     */
+    void setTargetTable(MergeTargetTable value);
+
+    /**
+     * Returns the value of the '<em><b>Source Table</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.MergeSourceTable#getMergeStatement <em>Merge Statement</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Source Table</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Source Table</em>' containment reference.
+     * @see #setSourceTable(MergeSourceTable)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryMergeStatement_SourceTable()
+     * @see org.eclipse.datatools.modelbase.sql.query.MergeSourceTable#getMergeStatement
+     * @model opposite="mergeStatement" containment="true" required="true"
+     * @generated
+     */
+    MergeSourceTable getSourceTable();
+
+    /**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryMergeStatement#getSourceTable <em>Source Table</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Source Table</em>' containment reference.
+     * @see #getSourceTable()
+     * @generated
+     */
+    void setSourceTable(MergeSourceTable value);
+
+    /**
+     * Returns the value of the '<em><b>On Condition</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.MergeOnCondition#getMergeStatement <em>Merge Statement</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>On Condition</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>On Condition</em>' containment reference.
+     * @see #setOnCondition(MergeOnCondition)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryMergeStatement_OnCondition()
+     * @see org.eclipse.datatools.modelbase.sql.query.MergeOnCondition#getMergeStatement
+     * @model opposite="mergeStatement" containment="true" required="true"
+     * @generated
+     */
+    MergeOnCondition getOnCondition();
+
+    /**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryMergeStatement#getOnCondition <em>On Condition</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>On Condition</em>' containment reference.
+     * @see #getOnCondition()
+     * @generated
+     */
+    void setOnCondition(MergeOnCondition value);
+
+    /**
+     * Returns the value of the '<em><b>Operation Spec List</b></em>' containment reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.query.MergeOperationSpecification}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.MergeOperationSpecification#getMergeStatement <em>Merge Statement</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Operation Spec List</em>' containment reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Operation Spec List</em>' containment reference list.
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryMergeStatement_OperationSpecList()
+     * @see org.eclipse.datatools.modelbase.sql.query.MergeOperationSpecification#getMergeStatement
+     * @model type="org.eclipse.datatools.modelbase.sql.query.MergeOperationSpecification" opposite="mergeStatement" containment="true" required="true"
+     * @generated
+     */
+    EList getOperationSpecList();
+} // SQLMergeStatement
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QueryNested.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QueryNested.java
new file mode 100644
index 0000000..7957e7f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QueryNested.java
@@ -0,0 +1,55 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Query Nested</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryNested#getNestedQuery <em>Nested Query</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryNested()
+ * @model
+ * @generated
+ */
+public interface QueryNested extends QueryExpressionBody {
+    /**
+     * Returns the value of the '<em><b>Nested Query</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getQueryNest <em>Query Nest</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Nested Query</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Nested Query</em>' containment reference.
+     * @see #setNestedQuery(QueryExpressionBody)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryNested_NestedQuery()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getQueryNest
+     * @model opposite="queryNest" containment="true" required="true"
+     * @generated
+     */
+    QueryExpressionBody getNestedQuery();
+
+    /**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryNested#getNestedQuery <em>Nested Query</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Nested Query</em>' containment reference.
+     * @see #getNestedQuery()
+     * @generated
+     */
+    void setNestedQuery(QueryExpressionBody value);
+
+} // QueryNested
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QueryResultSpecification.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QueryResultSpecification.java
new file mode 100644
index 0000000..22a83b6
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QueryResultSpecification.java
@@ -0,0 +1,55 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QueryResultSpecification.java,v 1.2 2005/12/22 22:18:50 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Result Column Specification</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryResultSpecification#getQuerySelect <em>Query Select</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryResultSpecification()
+ * @model abstract="true"
+ * @generated
+ */
+public interface QueryResultSpecification extends SQLQueryObject{
+	/**
+     * Returns the value of the '<em><b>Query Select</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QuerySelect#getSelectClause <em>Select Clause</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Query Select</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Query Select</em>' container reference.
+     * @see #setQuerySelect(QuerySelect)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryResultSpecification_QuerySelect()
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySelect#getSelectClause
+     * @model opposite="selectClause"
+     * @generated
+     */
+    QuerySelect getQuerySelect();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryResultSpecification#getQuerySelect <em>Query Select</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Query Select</em>' container reference.
+     * @see #getQuerySelect()
+     * @generated
+     */
+    void setQuerySelect(QuerySelect value);
+
+} // SQLResultColumnSpecification
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QuerySearchCondition.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QuerySearchCondition.java
new file mode 100644
index 0000000..9c0675e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QuerySearchCondition.java
@@ -0,0 +1,344 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QuerySearchCondition.java,v 1.3 2008/01/31 02:57:16 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+import org.eclipse.datatools.modelbase.sql.expressions.SearchCondition;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Search Condition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#isNegatedCondition <em>Negated Condition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getUpdateStatement <em>Update Statement</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getDeleteStatement <em>Delete Statement</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getTableJoined <em>Table Joined</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getCombinedLeft <em>Combined Left</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getCombinedRight <em>Combined Right</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getQuerySelectHaving <em>Query Select Having</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getQuerySelectWhere <em>Query Select Where</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getValueExprCaseSearchContent <em>Value Expr Case Search Content</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getNest <em>Nest</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getMergeOnCondition <em>Merge On Condition</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQuerySearchCondition()
+ * @model abstract="true"
+ * @generated
+ */
+public interface QuerySearchCondition extends SQLQueryObject, SearchCondition{
+	/**
+     * Returns the value of the '<em><b>Negated Condition</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * <!-- begin-model-doc -->
+     * This represents NOT ( <searchCondition> ).  This attribute and paren can not both be true at the same time.
+     * <!-- end-model-doc -->
+     * @return the value of the '<em>Negated Condition</em>' attribute.
+     * @see #setNegatedCondition(boolean)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQuerySearchCondition_NegatedCondition()
+     * @model
+     * @generated
+     */
+    boolean isNegatedCondition();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#isNegatedCondition <em>Negated Condition</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Negated Condition</em>' attribute.
+     * @see #isNegatedCondition()
+     * @generated
+     */
+    void setNegatedCondition(boolean value);
+
+	/**
+     * Returns the value of the '<em><b>Update Statement</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement#getWhereClause <em>Where Clause</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Update Statement</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Update Statement</em>' container reference.
+     * @see #setUpdateStatement(QueryUpdateStatement)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQuerySearchCondition_UpdateStatement()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement#getWhereClause
+     * @model opposite="whereClause"
+     * @generated
+     */
+    QueryUpdateStatement getUpdateStatement();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getUpdateStatement <em>Update Statement</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Update Statement</em>' container reference.
+     * @see #getUpdateStatement()
+     * @generated
+     */
+    void setUpdateStatement(QueryUpdateStatement value);
+
+	/**
+     * Returns the value of the '<em><b>Delete Statement</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement#getWhereClause <em>Where Clause</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Delete Statement</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Delete Statement</em>' container reference.
+     * @see #setDeleteStatement(QueryDeleteStatement)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQuerySearchCondition_DeleteStatement()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement#getWhereClause
+     * @model opposite="whereClause"
+     * @generated
+     */
+    QueryDeleteStatement getDeleteStatement();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getDeleteStatement <em>Delete Statement</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Delete Statement</em>' container reference.
+     * @see #getDeleteStatement()
+     * @generated
+     */
+    void setDeleteStatement(QueryDeleteStatement value);
+
+	/**
+     * Returns the value of the '<em><b>Table Joined</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.TableJoined#getJoinCondition <em>Join Condition</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Table Joined</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Table Joined</em>' container reference.
+     * @see #setTableJoined(TableJoined)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQuerySearchCondition_TableJoined()
+     * @see org.eclipse.datatools.modelbase.sql.query.TableJoined#getJoinCondition
+     * @model opposite="joinCondition"
+     * @generated
+     */
+    TableJoined getTableJoined();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getTableJoined <em>Table Joined</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Table Joined</em>' container reference.
+     * @see #getTableJoined()
+     * @generated
+     */
+    void setTableJoined(TableJoined value);
+
+	/**
+     * Returns the value of the '<em><b>Combined Left</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined#getLeftCondition <em>Left Condition</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Combined Left</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Combined Left</em>' container reference.
+     * @see #setCombinedLeft(SearchConditionCombined)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQuerySearchCondition_CombinedLeft()
+     * @see org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined#getLeftCondition
+     * @model opposite="leftCondition"
+     * @generated
+     */
+    SearchConditionCombined getCombinedLeft();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getCombinedLeft <em>Combined Left</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Combined Left</em>' container reference.
+     * @see #getCombinedLeft()
+     * @generated
+     */
+    void setCombinedLeft(SearchConditionCombined value);
+
+	/**
+     * Returns the value of the '<em><b>Combined Right</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined#getRightCondition <em>Right Condition</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Combined Right</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Combined Right</em>' container reference.
+     * @see #setCombinedRight(SearchConditionCombined)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQuerySearchCondition_CombinedRight()
+     * @see org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined#getRightCondition
+     * @model opposite="rightCondition"
+     * @generated
+     */
+    SearchConditionCombined getCombinedRight();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getCombinedRight <em>Combined Right</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Combined Right</em>' container reference.
+     * @see #getCombinedRight()
+     * @generated
+     */
+    void setCombinedRight(SearchConditionCombined value);
+
+	/**
+     * Returns the value of the '<em><b>Query Select Having</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QuerySelect#getHavingClause <em>Having Clause</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Query Select Having</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Query Select Having</em>' container reference.
+     * @see #setQuerySelectHaving(QuerySelect)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQuerySearchCondition_QuerySelectHaving()
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySelect#getHavingClause
+     * @model opposite="havingClause"
+     * @generated
+     */
+    QuerySelect getQuerySelectHaving();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getQuerySelectHaving <em>Query Select Having</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Query Select Having</em>' container reference.
+     * @see #getQuerySelectHaving()
+     * @generated
+     */
+    void setQuerySelectHaving(QuerySelect value);
+
+	/**
+     * Returns the value of the '<em><b>Query Select Where</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QuerySelect#getWhereClause <em>Where Clause</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Query Select Where</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Query Select Where</em>' container reference.
+     * @see #setQuerySelectWhere(QuerySelect)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQuerySearchCondition_QuerySelectWhere()
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySelect#getWhereClause
+     * @model opposite="whereClause"
+     * @generated
+     */
+    QuerySelect getQuerySelectWhere();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getQuerySelectWhere <em>Query Select Where</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Query Select Where</em>' container reference.
+     * @see #getQuerySelectWhere()
+     * @generated
+     */
+    void setQuerySelectWhere(QuerySelect value);
+
+	/**
+     * Returns the value of the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent#getSearchCondition <em>Search Condition</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Expr Case Search Content</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Expr Case Search Content</em>' container reference.
+     * @see #setValueExprCaseSearchContent(ValueExpressionCaseSearchContent)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQuerySearchCondition_ValueExprCaseSearchContent()
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent#getSearchCondition
+     * @model opposite="searchCondition"
+     * @generated
+     */
+    ValueExpressionCaseSearchContent getValueExprCaseSearchContent();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getValueExprCaseSearchContent <em>Value Expr Case Search Content</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Expr Case Search Content</em>' container reference.
+     * @see #getValueExprCaseSearchContent()
+     * @generated
+     */
+    void setValueExprCaseSearchContent(ValueExpressionCaseSearchContent value);
+
+	/**
+     * Returns the value of the '<em><b>Nest</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.SearchConditionNested#getNestedCondition <em>Nested Condition</em>}'.
+     * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Nest</em>' container reference isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+     * @return the value of the '<em>Nest</em>' container reference.
+     * @see #setNest(SearchConditionNested)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQuerySearchCondition_Nest()
+     * @see org.eclipse.datatools.modelbase.sql.query.SearchConditionNested#getNestedCondition
+     * @model opposite="nestedCondition"
+     * @generated
+     */
+  SearchConditionNested getNest();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getNest <em>Nest</em>}' container reference.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Nest</em>' container reference.
+     * @see #getNest()
+     * @generated
+     */
+  void setNest(SearchConditionNested value);
+
+    /**
+     * Returns the value of the '<em><b>Merge On Condition</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.MergeOnCondition#getSearchCondition <em>Search Condition</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Merge On Condition</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Merge On Condition</em>' container reference.
+     * @see #setMergeOnCondition(MergeOnCondition)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQuerySearchCondition_MergeOnCondition()
+     * @see org.eclipse.datatools.modelbase.sql.query.MergeOnCondition#getSearchCondition
+     * @model opposite="searchCondition"
+     * @generated
+     */
+    MergeOnCondition getMergeOnCondition();
+
+    /**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getMergeOnCondition <em>Merge On Condition</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Merge On Condition</em>' container reference.
+     * @see #getMergeOnCondition()
+     * @generated
+     */
+    void setMergeOnCondition(MergeOnCondition value);
+
+} // SQLSearchCondition
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QuerySelect.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QuerySelect.java
new file mode 100644
index 0000000..6764741
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QuerySelect.java
@@ -0,0 +1,242 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QuerySelect.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Select</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QuerySelect#isDistinct <em>Distinct</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QuerySelect#getHavingClause <em>Having Clause</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QuerySelect#getWhereClause <em>Where Clause</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QuerySelect#getGroupByClause <em>Group By Clause</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QuerySelect#getSelectClause <em>Select Clause</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QuerySelect#getFromClause <em>From Clause</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QuerySelect#getIntoClause <em>Into Clause</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQuerySelect()
+ * @model
+ * @generated
+ */
+public interface QuerySelect extends QueryExpressionBody{
+	/**
+     * Returns the value of the '<em><b>Distinct</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Distinct</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Distinct</em>' attribute.
+     * @see #setDistinct(boolean)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQuerySelect_Distinct()
+     * @model
+     * @generated
+     */
+    boolean isDistinct();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QuerySelect#isDistinct <em>Distinct</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Distinct</em>' attribute.
+     * @see #isDistinct()
+     * @generated
+     */
+    void setDistinct(boolean value);
+
+	/**
+     * Returns the value of the '<em><b>Having Clause</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getQuerySelectHaving <em>Query Select Having</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Having Clause</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Having Clause</em>' containment reference.
+     * @see #isSetHavingClause()
+     * @see #unsetHavingClause()
+     * @see #setHavingClause(QuerySearchCondition)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQuerySelect_HavingClause()
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getQuerySelectHaving
+     * @model opposite="querySelectHaving" containment="true" unsettable="true"
+     * @generated
+     */
+    QuerySearchCondition getHavingClause();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QuerySelect#getHavingClause <em>Having Clause</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Having Clause</em>' containment reference.
+     * @see #isSetHavingClause()
+     * @see #unsetHavingClause()
+     * @see #getHavingClause()
+     * @generated
+     */
+    void setHavingClause(QuerySearchCondition value);
+
+	/**
+     * Unsets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QuerySelect#getHavingClause <em>Having Clause</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #isSetHavingClause()
+     * @see #getHavingClause()
+     * @see #setHavingClause(QuerySearchCondition)
+     * @generated
+     */
+    void unsetHavingClause();
+
+	/**
+     * Returns whether the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QuerySelect#getHavingClause <em>Having Clause</em>}' containment reference is set.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return whether the value of the '<em>Having Clause</em>' containment reference is set.
+     * @see #unsetHavingClause()
+     * @see #getHavingClause()
+     * @see #setHavingClause(QuerySearchCondition)
+     * @generated
+     */
+    boolean isSetHavingClause();
+
+	/**
+     * Returns the value of the '<em><b>Where Clause</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getQuerySelectWhere <em>Query Select Where</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Where Clause</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Where Clause</em>' containment reference.
+     * @see #isSetWhereClause()
+     * @see #unsetWhereClause()
+     * @see #setWhereClause(QuerySearchCondition)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQuerySelect_WhereClause()
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getQuerySelectWhere
+     * @model opposite="querySelectWhere" containment="true" unsettable="true"
+     * @generated
+     */
+    QuerySearchCondition getWhereClause();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QuerySelect#getWhereClause <em>Where Clause</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Where Clause</em>' containment reference.
+     * @see #isSetWhereClause()
+     * @see #unsetWhereClause()
+     * @see #getWhereClause()
+     * @generated
+     */
+    void setWhereClause(QuerySearchCondition value);
+
+	/**
+     * Unsets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QuerySelect#getWhereClause <em>Where Clause</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #isSetWhereClause()
+     * @see #getWhereClause()
+     * @see #setWhereClause(QuerySearchCondition)
+     * @generated
+     */
+    void unsetWhereClause();
+
+	/**
+     * Returns whether the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QuerySelect#getWhereClause <em>Where Clause</em>}' containment reference is set.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return whether the value of the '<em>Where Clause</em>' containment reference is set.
+     * @see #unsetWhereClause()
+     * @see #getWhereClause()
+     * @see #setWhereClause(QuerySearchCondition)
+     * @generated
+     */
+    boolean isSetWhereClause();
+
+	/**
+     * Returns the value of the '<em><b>Group By Clause</b></em>' containment reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.query.GroupingSpecification}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.GroupingSpecification#getQuerySelect <em>Query Select</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Group By Clause</em>' containment reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Group By Clause</em>' containment reference list.
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQuerySelect_GroupByClause()
+     * @see org.eclipse.datatools.modelbase.sql.query.GroupingSpecification#getQuerySelect
+     * @model type="org.eclipse.datatools.modelbase.sql.query.GroupingSpecification" opposite="querySelect" containment="true"
+     * @generated
+     */
+    EList getGroupByClause();
+
+	/**
+     * Returns the value of the '<em><b>Select Clause</b></em>' containment reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.query.QueryResultSpecification}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryResultSpecification#getQuerySelect <em>Query Select</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Select Clause</em>' containment reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Select Clause</em>' containment reference list.
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQuerySelect_SelectClause()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryResultSpecification#getQuerySelect
+     * @model type="org.eclipse.datatools.modelbase.sql.query.QueryResultSpecification" opposite="querySelect" containment="true"
+     * @generated
+     */
+    EList getSelectClause();
+
+	/**
+     * Returns the value of the '<em><b>From Clause</b></em>' containment reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.query.TableReference}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.TableReference#getQuerySelect <em>Query Select</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>From Clause</em>' containment reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>From Clause</em>' containment reference list.
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQuerySelect_FromClause()
+     * @see org.eclipse.datatools.modelbase.sql.query.TableReference#getQuerySelect
+     * @model type="org.eclipse.datatools.modelbase.sql.query.TableReference" opposite="querySelect" containment="true" required="true"
+     * @generated
+     */
+    EList getFromClause();
+
+	/**
+     * Returns the value of the '<em><b>Into Clause</b></em>' containment reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionVariable}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionVariable#getQuerySelect <em>Query Select</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Into Clause</em>' containment reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Into Clause</em>' containment reference list.
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQuerySelect_IntoClause()
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionVariable#getQuerySelect
+     * @model type="org.eclipse.datatools.modelbase.sql.query.ValueExpressionVariable" opposite="querySelect" containment="true"
+     * @generated
+     */
+    EList getIntoClause();
+
+} // SQLQuerySelect
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QuerySelectStatement.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QuerySelectStatement.java
new file mode 100644
index 0000000..71ccaf9
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QuerySelectStatement.java
@@ -0,0 +1,104 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QuerySelectStatement.java,v 1.3 2008/01/31 02:57:16 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Select Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QuerySelectStatement#getQueryExpr <em>Query Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QuerySelectStatement#getOrderByClause <em>Order By Clause</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QuerySelectStatement#getUpdatabilityExpr <em>Updatability Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQuerySelectStatement()
+ * @model
+ * @generated
+ */
+public interface QuerySelectStatement extends QueryStatement{
+	/**
+     * Returns the value of the '<em><b>Query Expr</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getSelectStatement <em>Select Statement</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Query Expr</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Query Expr</em>' containment reference.
+     * @see #setQueryExpr(QueryExpressionRoot)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQuerySelectStatement_QueryExpr()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getSelectStatement
+     * @model opposite="selectStatement" containment="true" required="true"
+     * @generated
+     */
+    QueryExpressionRoot getQueryExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QuerySelectStatement#getQueryExpr <em>Query Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Query Expr</em>' containment reference.
+     * @see #getQueryExpr()
+     * @generated
+     */
+    void setQueryExpr(QueryExpressionRoot value);
+
+	/**
+     * Returns the value of the '<em><b>Order By Clause</b></em>' containment reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.query.OrderBySpecification}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.OrderBySpecification#getSelectStatement <em>Select Statement</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Order By Clause</em>' containment reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Order By Clause</em>' containment reference list.
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQuerySelectStatement_OrderByClause()
+     * @see org.eclipse.datatools.modelbase.sql.query.OrderBySpecification#getSelectStatement
+     * @model type="org.eclipse.datatools.modelbase.sql.query.OrderBySpecification" opposite="selectStatement" containment="true"
+     * @generated
+     */
+    EList getOrderByClause();
+
+    /**
+     * Returns the value of the '<em><b>Updatability Expr</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.UpdatabilityExpression#getSelectStatement <em>Select Statement</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Updatability Expr</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Updatability Expr</em>' containment reference.
+     * @see #setUpdatabilityExpr(UpdatabilityExpression)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQuerySelectStatement_UpdatabilityExpr()
+     * @see org.eclipse.datatools.modelbase.sql.query.UpdatabilityExpression#getSelectStatement
+     * @model opposite="selectStatement" containment="true"
+     * @generated
+     */
+    UpdatabilityExpression getUpdatabilityExpr();
+
+    /**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QuerySelectStatement#getUpdatabilityExpr <em>Updatability Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Updatability Expr</em>' containment reference.
+     * @see #getUpdatabilityExpr()
+     * @generated
+     */
+    void setUpdatabilityExpr(UpdatabilityExpression value);
+
+} // SQLSelectStatement
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QueryStatement.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QueryStatement.java
new file mode 100644
index 0000000..c5cec44
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QueryStatement.java
@@ -0,0 +1,23 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QueryStatement.java,v 1.1 2005/12/16 13:11:15 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+import org.eclipse.datatools.modelbase.sql.statements.SQLDataStatement;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryStatement()
+ * @model abstract="true"
+ * @generated
+ */
+public interface QueryStatement extends SQLQueryObject, SQLDataStatement{
+} // SQLQueryStatement
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QueryUpdateStatement.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QueryUpdateStatement.java
new file mode 100644
index 0000000..0bf12c4
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QueryUpdateStatement.java
@@ -0,0 +1,187 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QueryUpdateStatement.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Update Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement#getAssignmentClause <em>Assignment Clause</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement#getWhereCurrentOfClause <em>Where Current Of Clause</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement#getWhereClause <em>Where Clause</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement#getTargetTable <em>Target Table</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryUpdateStatement()
+ * @model
+ * @generated
+ */
+public interface QueryUpdateStatement extends QueryChangeStatement{
+	/**
+     * Returns the value of the '<em><b>Assignment Clause</b></em>' containment reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression#getUpdateStatement <em>Update Statement</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Assignment Clause</em>' containment reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Assignment Clause</em>' containment reference list.
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryUpdateStatement_AssignmentClause()
+     * @see org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression#getUpdateStatement
+     * @model type="org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression" opposite="updateStatement" containment="true" required="true"
+     * @generated
+     */
+    EList getAssignmentClause();
+
+	/**
+     * Returns the value of the '<em><b>Where Current Of Clause</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.CursorReference#getUpdateStatement <em>Update Statement</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Where Current Of Clause</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Where Current Of Clause</em>' containment reference.
+     * @see #setWhereCurrentOfClause(CursorReference)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryUpdateStatement_WhereCurrentOfClause()
+     * @see org.eclipse.datatools.modelbase.sql.query.CursorReference#getUpdateStatement
+     * @model opposite="updateStatement" containment="true"
+     * @generated
+     */
+    CursorReference getWhereCurrentOfClause();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement#getWhereCurrentOfClause <em>Where Current Of Clause</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Where Current Of Clause</em>' containment reference.
+     * @see #getWhereCurrentOfClause()
+     * @generated
+     */
+    void setWhereCurrentOfClause(CursorReference value);
+
+	/**
+     * Returns the value of the '<em><b>Where Clause</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getUpdateStatement <em>Update Statement</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Where Clause</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Where Clause</em>' containment reference.
+     * @see #isSetWhereClause()
+     * @see #unsetWhereClause()
+     * @see #setWhereClause(QuerySearchCondition)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryUpdateStatement_WhereClause()
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getUpdateStatement
+     * @model opposite="updateStatement" containment="true" unsettable="true"
+     * @generated
+     */
+    QuerySearchCondition getWhereClause();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement#getWhereClause <em>Where Clause</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Where Clause</em>' containment reference.
+     * @see #isSetWhereClause()
+     * @see #unsetWhereClause()
+     * @see #getWhereClause()
+     * @generated
+     */
+    void setWhereClause(QuerySearchCondition value);
+
+	/**
+     * Unsets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement#getWhereClause <em>Where Clause</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #isSetWhereClause()
+     * @see #getWhereClause()
+     * @see #setWhereClause(QuerySearchCondition)
+     * @generated
+     */
+    void unsetWhereClause();
+
+	/**
+     * Returns whether the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement#getWhereClause <em>Where Clause</em>}' containment reference is set.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return whether the value of the '<em>Where Clause</em>' containment reference is set.
+     * @see #unsetWhereClause()
+     * @see #getWhereClause()
+     * @see #setWhereClause(QuerySearchCondition)
+     * @generated
+     */
+    boolean isSetWhereClause();
+
+	/**
+     * Returns the value of the '<em><b>Target Table</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.TableInDatabase#getUpdateStatement <em>Update Statement</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Target Table</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Target Table</em>' containment reference.
+     * @see #isSetTargetTable()
+     * @see #unsetTargetTable()
+     * @see #setTargetTable(TableInDatabase)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryUpdateStatement_TargetTable()
+     * @see org.eclipse.datatools.modelbase.sql.query.TableInDatabase#getUpdateStatement
+     * @model opposite="updateStatement" containment="true" unsettable="true" required="true"
+     * @generated
+     */
+    TableInDatabase getTargetTable();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement#getTargetTable <em>Target Table</em>}' containment reference.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Target Table</em>' containment reference.
+     * @see #isSetTargetTable()
+     * @see #unsetTargetTable()
+     * @see #getTargetTable()
+     * @generated
+     */
+  void setTargetTable(TableInDatabase value);
+
+	/**
+     * Unsets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement#getTargetTable <em>Target Table</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #isSetTargetTable()
+     * @see #getTargetTable()
+     * @see #setTargetTable(TableInDatabase)
+     * @generated
+     */
+    void unsetTargetTable();
+
+	/**
+     * Returns whether the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement#getTargetTable <em>Target Table</em>}' containment reference is set.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return whether the value of the '<em>Target Table</em>' containment reference is set.
+     * @see #unsetTargetTable()
+     * @see #getTargetTable()
+     * @see #setTargetTable(TableInDatabase)
+     * @generated
+     */
+    boolean isSetTargetTable();
+
+} // SQLUpdateStatement
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QueryValueExpression.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QueryValueExpression.java
new file mode 100644
index 0000000..d8fbe0e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QueryValueExpression.java
@@ -0,0 +1,1073 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QueryValueExpression.java,v 1.4 2008/07/07 19:53:17 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+
+import org.eclipse.datatools.modelbase.sql.expressions.ValueExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Value Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getUnaryOperator <em>Unary Operator</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getDataType <em>Data Type</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValuesRow <em>Values Row</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getOrderByValueExpr <em>Order By Value Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getResultColumn <em>Result Column</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getBasicRight <em>Basic Right</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getBasicLeft <em>Basic Left</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getLikePattern <em>Like Pattern</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getLikeMatching <em>Like Matching</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getPredicateNull <em>Predicate Null</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getInValueListRight <em>In Value List Right</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getInValueListLeft <em>In Value List Left</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getInValueRowSelectLeft <em>In Value Row Select Left</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getInValueSelectLeft <em>In Value Select Left</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getQuantifiedRowSelectLeft <em>Quantified Row Select Left</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getQuantifiedValueSelectLeft <em>Quantified Value Select Left</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getBetweenLeft <em>Between Left</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getBetweenRight1 <em>Between Right1</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getBetweenRight2 <em>Between Right2</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCast <em>Value Expr Cast</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprFunction <em>Value Expr Function</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCombinedLeft <em>Value Expr Combined Left</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCombinedRight <em>Value Expr Combined Right</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getGroupingExpr <em>Grouping Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCaseElse <em>Value Expr Case Else</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCaseSimple <em>Value Expr Case Simple</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCaseSimpleContentWhen <em>Value Expr Case Simple Content When</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCaseSimpleContentResult <em>Value Expr Case Simple Content Result</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCaseSearchContent <em>Value Expr Case Search Content</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getLikeEscape <em>Like Escape</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprLabeledDuration <em>Value Expr Labeled Duration</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getNest <em>Nest</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getUpdateSourceExprList <em>Update Source Expr List</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getTableFunction <em>Table Function</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprRow <em>Value Expr Row</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getCallStatement <em>Call Statement</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryValueExpression()
+ * @model abstract="true"
+ * @generated
+ */
+public interface QueryValueExpression extends SQLQueryObject, ValueExpression{
+	/**
+     * Returns the value of the '<em><b>Unary Operator</b></em>' attribute.
+     * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator}.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Unary Operator</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Unary Operator</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator
+     * @see #setUnaryOperator(ValueExpressionUnaryOperator)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryValueExpression_UnaryOperator()
+     * @model
+     * @generated
+     */
+    ValueExpressionUnaryOperator getUnaryOperator();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getUnaryOperator <em>Unary Operator</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Unary Operator</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator
+     * @see #getUnaryOperator()
+     * @generated
+     */
+    void setUnaryOperator(ValueExpressionUnaryOperator value);
+
+	/**
+     * Returns the value of the '<em><b>Data Type</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Data Type</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Data Type</em>' containment reference.
+     * @see #setDataType(DataType)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryValueExpression_DataType()
+     * @model containment="true"
+     * @generated
+     */
+    DataType getDataType();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getDataType <em>Data Type</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Data Type</em>' containment reference.
+     * @see #getDataType()
+     * @generated
+     */
+    void setDataType(DataType value);
+
+	/**
+     * Returns the value of the '<em><b>Values Row</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.ValuesRow#getExprList <em>Expr List</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Values Row</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Values Row</em>' container reference.
+     * @see #setValuesRow(ValuesRow)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryValueExpression_ValuesRow()
+     * @see org.eclipse.datatools.modelbase.sql.query.ValuesRow#getExprList
+     * @model opposite="exprList"
+     * @generated
+     */
+    ValuesRow getValuesRow();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValuesRow <em>Values Row</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Values Row</em>' container reference.
+     * @see #getValuesRow()
+     * @generated
+     */
+    void setValuesRow(ValuesRow value);
+
+	/**
+     * Returns the value of the '<em><b>Order By Value Expr</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression#getValueExpr <em>Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Order By Value Expr</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Order By Value Expr</em>' container reference.
+     * @see #setOrderByValueExpr(OrderByValueExpression)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryValueExpression_OrderByValueExpr()
+     * @see org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression#getValueExpr
+     * @model opposite="valueExpr"
+     * @generated
+     */
+    OrderByValueExpression getOrderByValueExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getOrderByValueExpr <em>Order By Value Expr</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Order By Value Expr</em>' container reference.
+     * @see #getOrderByValueExpr()
+     * @generated
+     */
+    void setOrderByValueExpr(OrderByValueExpression value);
+
+	/**
+     * Returns the value of the '<em><b>Result Column</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.ResultColumn#getValueExpr <em>Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Result Column</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Result Column</em>' container reference.
+     * @see #setResultColumn(ResultColumn)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryValueExpression_ResultColumn()
+     * @see org.eclipse.datatools.modelbase.sql.query.ResultColumn#getValueExpr
+     * @model opposite="valueExpr"
+     * @generated
+     */
+    ResultColumn getResultColumn();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getResultColumn <em>Result Column</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Result Column</em>' container reference.
+     * @see #getResultColumn()
+     * @generated
+     */
+    void setResultColumn(ResultColumn value);
+
+	/**
+     * Returns the value of the '<em><b>Basic Right</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.PredicateBasic#getRightValueExpr <em>Right Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Basic Right</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Basic Right</em>' container reference.
+     * @see #setBasicRight(PredicateBasic)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryValueExpression_BasicRight()
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateBasic#getRightValueExpr
+     * @model opposite="rightValueExpr"
+     * @generated
+     */
+    PredicateBasic getBasicRight();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getBasicRight <em>Basic Right</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Basic Right</em>' container reference.
+     * @see #getBasicRight()
+     * @generated
+     */
+    void setBasicRight(PredicateBasic value);
+
+	/**
+     * Returns the value of the '<em><b>Basic Left</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.PredicateBasic#getLeftValueExpr <em>Left Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Basic Left</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Basic Left</em>' container reference.
+     * @see #setBasicLeft(PredicateBasic)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryValueExpression_BasicLeft()
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateBasic#getLeftValueExpr
+     * @model opposite="leftValueExpr"
+     * @generated
+     */
+    PredicateBasic getBasicLeft();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getBasicLeft <em>Basic Left</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Basic Left</em>' container reference.
+     * @see #getBasicLeft()
+     * @generated
+     */
+    void setBasicLeft(PredicateBasic value);
+
+	/**
+     * Returns the value of the '<em><b>Like Pattern</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.PredicateLike#getPatternValueExpr <em>Pattern Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Like Pattern</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Like Pattern</em>' container reference.
+     * @see #setLikePattern(PredicateLike)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryValueExpression_LikePattern()
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateLike#getPatternValueExpr
+     * @model opposite="patternValueExpr"
+     * @generated
+     */
+    PredicateLike getLikePattern();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getLikePattern <em>Like Pattern</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Like Pattern</em>' container reference.
+     * @see #getLikePattern()
+     * @generated
+     */
+    void setLikePattern(PredicateLike value);
+
+	/**
+     * Returns the value of the '<em><b>Like Matching</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.PredicateLike#getMatchingValueExpr <em>Matching Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Like Matching</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Like Matching</em>' container reference.
+     * @see #setLikeMatching(PredicateLike)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryValueExpression_LikeMatching()
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateLike#getMatchingValueExpr
+     * @model opposite="matchingValueExpr"
+     * @generated
+     */
+    PredicateLike getLikeMatching();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getLikeMatching <em>Like Matching</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Like Matching</em>' container reference.
+     * @see #getLikeMatching()
+     * @generated
+     */
+    void setLikeMatching(PredicateLike value);
+
+	/**
+     * Returns the value of the '<em><b>Predicate Null</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.PredicateIsNull#getValueExpr <em>Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Predicate Null</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Predicate Null</em>' container reference.
+     * @see #setPredicateNull(PredicateIsNull)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryValueExpression_PredicateNull()
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateIsNull#getValueExpr
+     * @model opposite="valueExpr"
+     * @generated
+     */
+    PredicateIsNull getPredicateNull();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getPredicateNull <em>Predicate Null</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Predicate Null</em>' container reference.
+     * @see #getPredicateNull()
+     * @generated
+     */
+    void setPredicateNull(PredicateIsNull value);
+
+	/**
+     * Returns the value of the '<em><b>In Value List Right</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.PredicateInValueList#getValueExprList <em>Value Expr List</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>In Value List Right</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>In Value List Right</em>' container reference.
+     * @see #setInValueListRight(PredicateInValueList)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryValueExpression_InValueListRight()
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateInValueList#getValueExprList
+     * @model opposite="valueExprList"
+     * @generated
+     */
+    PredicateInValueList getInValueListRight();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getInValueListRight <em>In Value List Right</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>In Value List Right</em>' container reference.
+     * @see #getInValueListRight()
+     * @generated
+     */
+    void setInValueListRight(PredicateInValueList value);
+
+	/**
+     * Returns the value of the '<em><b>In Value List Left</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.PredicateInValueList#getValueExpr <em>Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>In Value List Left</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>In Value List Left</em>' container reference.
+     * @see #setInValueListLeft(PredicateInValueList)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryValueExpression_InValueListLeft()
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateInValueList#getValueExpr
+     * @model opposite="valueExpr"
+     * @generated
+     */
+    PredicateInValueList getInValueListLeft();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getInValueListLeft <em>In Value List Left</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>In Value List Left</em>' container reference.
+     * @see #getInValueListLeft()
+     * @generated
+     */
+    void setInValueListLeft(PredicateInValueList value);
+
+	/**
+     * Returns the value of the '<em><b>In Value Row Select Left</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect#getValueExprList <em>Value Expr List</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>In Value Row Select Left</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>In Value Row Select Left</em>' container reference.
+     * @see #setInValueRowSelectLeft(PredicateInValueRowSelect)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryValueExpression_InValueRowSelectLeft()
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect#getValueExprList
+     * @model opposite="valueExprList"
+     * @generated
+     */
+    PredicateInValueRowSelect getInValueRowSelectLeft();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getInValueRowSelectLeft <em>In Value Row Select Left</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>In Value Row Select Left</em>' container reference.
+     * @see #getInValueRowSelectLeft()
+     * @generated
+     */
+    void setInValueRowSelectLeft(PredicateInValueRowSelect value);
+
+	/**
+     * Returns the value of the '<em><b>In Value Select Left</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect#getValueExpr <em>Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>In Value Select Left</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>In Value Select Left</em>' container reference.
+     * @see #setInValueSelectLeft(PredicateInValueSelect)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryValueExpression_InValueSelectLeft()
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect#getValueExpr
+     * @model opposite="valueExpr"
+     * @generated
+     */
+    PredicateInValueSelect getInValueSelectLeft();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getInValueSelectLeft <em>In Value Select Left</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>In Value Select Left</em>' container reference.
+     * @see #getInValueSelectLeft()
+     * @generated
+     */
+    void setInValueSelectLeft(PredicateInValueSelect value);
+
+	/**
+     * Returns the value of the '<em><b>Quantified Row Select Left</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect#getValueExprList <em>Value Expr List</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Quantified Row Select Left</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Quantified Row Select Left</em>' container reference.
+     * @see #setQuantifiedRowSelectLeft(PredicateQuantifiedRowSelect)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryValueExpression_QuantifiedRowSelectLeft()
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect#getValueExprList
+     * @model opposite="valueExprList"
+     * @generated
+     */
+    PredicateQuantifiedRowSelect getQuantifiedRowSelectLeft();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getQuantifiedRowSelectLeft <em>Quantified Row Select Left</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Quantified Row Select Left</em>' container reference.
+     * @see #getQuantifiedRowSelectLeft()
+     * @generated
+     */
+    void setQuantifiedRowSelectLeft(PredicateQuantifiedRowSelect value);
+
+	/**
+     * Returns the value of the '<em><b>Quantified Value Select Left</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect#getValueExpr <em>Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Quantified Value Select Left</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Quantified Value Select Left</em>' container reference.
+     * @see #setQuantifiedValueSelectLeft(PredicateQuantifiedValueSelect)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryValueExpression_QuantifiedValueSelectLeft()
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect#getValueExpr
+     * @model opposite="valueExpr"
+     * @generated
+     */
+    PredicateQuantifiedValueSelect getQuantifiedValueSelectLeft();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getQuantifiedValueSelectLeft <em>Quantified Value Select Left</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Quantified Value Select Left</em>' container reference.
+     * @see #getQuantifiedValueSelectLeft()
+     * @generated
+     */
+    void setQuantifiedValueSelectLeft(PredicateQuantifiedValueSelect value);
+
+	/**
+     * Returns the value of the '<em><b>Between Left</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.PredicateBetween#getLeftValueExpr <em>Left Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Between Left</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Between Left</em>' container reference.
+     * @see #setBetweenLeft(PredicateBetween)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryValueExpression_BetweenLeft()
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateBetween#getLeftValueExpr
+     * @model opposite="leftValueExpr"
+     * @generated
+     */
+    PredicateBetween getBetweenLeft();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getBetweenLeft <em>Between Left</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Between Left</em>' container reference.
+     * @see #getBetweenLeft()
+     * @generated
+     */
+    void setBetweenLeft(PredicateBetween value);
+
+	/**
+     * Returns the value of the '<em><b>Between Right1</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.PredicateBetween#getRightValueExpr1 <em>Right Value Expr1</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Between Right1</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Between Right1</em>' container reference.
+     * @see #setBetweenRight1(PredicateBetween)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryValueExpression_BetweenRight1()
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateBetween#getRightValueExpr1
+     * @model opposite="rightValueExpr1"
+     * @generated
+     */
+    PredicateBetween getBetweenRight1();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getBetweenRight1 <em>Between Right1</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Between Right1</em>' container reference.
+     * @see #getBetweenRight1()
+     * @generated
+     */
+    void setBetweenRight1(PredicateBetween value);
+
+	/**
+     * Returns the value of the '<em><b>Between Right2</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.PredicateBetween#getRightValueExpr2 <em>Right Value Expr2</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Between Right2</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Between Right2</em>' container reference.
+     * @see #setBetweenRight2(PredicateBetween)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryValueExpression_BetweenRight2()
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateBetween#getRightValueExpr2
+     * @model opposite="rightValueExpr2"
+     * @generated
+     */
+    PredicateBetween getBetweenRight2();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getBetweenRight2 <em>Between Right2</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Between Right2</em>' container reference.
+     * @see #getBetweenRight2()
+     * @generated
+     */
+    void setBetweenRight2(PredicateBetween value);
+
+	/**
+     * Returns the value of the '<em><b>Value Expr Cast</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast#getValueExpr <em>Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Expr Cast</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Expr Cast</em>' container reference.
+     * @see #setValueExprCast(ValueExpressionCast)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryValueExpression_ValueExprCast()
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast#getValueExpr
+     * @model opposite="valueExpr"
+     * @generated
+     */
+    ValueExpressionCast getValueExprCast();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCast <em>Value Expr Cast</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Expr Cast</em>' container reference.
+     * @see #getValueExprCast()
+     * @generated
+     */
+    void setValueExprCast(ValueExpressionCast value);
+
+	/**
+     * Returns the value of the '<em><b>Value Expr Function</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction#getParameterList <em>Parameter List</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Expr Function</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Expr Function</em>' container reference.
+     * @see #setValueExprFunction(ValueExpressionFunction)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryValueExpression_ValueExprFunction()
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction#getParameterList
+     * @model opposite="parameterList"
+     * @generated
+     */
+    ValueExpressionFunction getValueExprFunction();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprFunction <em>Value Expr Function</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Expr Function</em>' container reference.
+     * @see #getValueExprFunction()
+     * @generated
+     */
+    void setValueExprFunction(ValueExpressionFunction value);
+
+	/**
+     * Returns the value of the '<em><b>Value Expr Combined Left</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined#getLeftValueExpr <em>Left Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Expr Combined Left</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Expr Combined Left</em>' container reference.
+     * @see #setValueExprCombinedLeft(ValueExpressionCombined)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryValueExpression_ValueExprCombinedLeft()
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined#getLeftValueExpr
+     * @model opposite="leftValueExpr"
+     * @generated
+     */
+    ValueExpressionCombined getValueExprCombinedLeft();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCombinedLeft <em>Value Expr Combined Left</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Expr Combined Left</em>' container reference.
+     * @see #getValueExprCombinedLeft()
+     * @generated
+     */
+    void setValueExprCombinedLeft(ValueExpressionCombined value);
+
+	/**
+     * Returns the value of the '<em><b>Value Expr Combined Right</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined#getRightValueExpr <em>Right Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Expr Combined Right</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Expr Combined Right</em>' container reference.
+     * @see #setValueExprCombinedRight(ValueExpressionCombined)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryValueExpression_ValueExprCombinedRight()
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined#getRightValueExpr
+     * @model opposite="rightValueExpr"
+     * @generated
+     */
+    ValueExpressionCombined getValueExprCombinedRight();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCombinedRight <em>Value Expr Combined Right</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Expr Combined Right</em>' container reference.
+     * @see #getValueExprCombinedRight()
+     * @generated
+     */
+    void setValueExprCombinedRight(ValueExpressionCombined value);
+
+	/**
+     * Returns the value of the '<em><b>Grouping Expr</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.GroupingExpression#getValueExpr <em>Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Grouping Expr</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Grouping Expr</em>' container reference.
+     * @see #setGroupingExpr(GroupingExpression)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryValueExpression_GroupingExpr()
+     * @see org.eclipse.datatools.modelbase.sql.query.GroupingExpression#getValueExpr
+     * @model opposite="valueExpr"
+     * @generated
+     */
+    GroupingExpression getGroupingExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getGroupingExpr <em>Grouping Expr</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Grouping Expr</em>' container reference.
+     * @see #getGroupingExpr()
+     * @generated
+     */
+    void setGroupingExpr(GroupingExpression value);
+
+	/**
+     * Returns the value of the '<em><b>Value Expr Case Else</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse#getValueExpr <em>Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Expr Case Else</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Expr Case Else</em>' container reference.
+     * @see #setValueExprCaseElse(ValueExpressionCaseElse)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryValueExpression_ValueExprCaseElse()
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse#getValueExpr
+     * @model opposite="valueExpr"
+     * @generated
+     */
+    ValueExpressionCaseElse getValueExprCaseElse();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCaseElse <em>Value Expr Case Else</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Expr Case Else</em>' container reference.
+     * @see #getValueExprCaseElse()
+     * @generated
+     */
+    void setValueExprCaseElse(ValueExpressionCaseElse value);
+
+	/**
+     * Returns the value of the '<em><b>Value Expr Case Simple</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple#getValueExpr <em>Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Expr Case Simple</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Expr Case Simple</em>' container reference.
+     * @see #setValueExprCaseSimple(ValueExpressionCaseSimple)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryValueExpression_ValueExprCaseSimple()
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple#getValueExpr
+     * @model opposite="valueExpr"
+     * @generated
+     */
+    ValueExpressionCaseSimple getValueExprCaseSimple();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCaseSimple <em>Value Expr Case Simple</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Expr Case Simple</em>' container reference.
+     * @see #getValueExprCaseSimple()
+     * @generated
+     */
+    void setValueExprCaseSimple(ValueExpressionCaseSimple value);
+
+	/**
+     * Returns the value of the '<em><b>Value Expr Case Simple Content When</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent#getWhenValueExpr <em>When Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Expr Case Simple Content When</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Expr Case Simple Content When</em>' container reference.
+     * @see #setValueExprCaseSimpleContentWhen(ValueExpressionCaseSimpleContent)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryValueExpression_ValueExprCaseSimpleContentWhen()
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent#getWhenValueExpr
+     * @model opposite="whenValueExpr"
+     * @generated
+     */
+    ValueExpressionCaseSimpleContent getValueExprCaseSimpleContentWhen();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCaseSimpleContentWhen <em>Value Expr Case Simple Content When</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Expr Case Simple Content When</em>' container reference.
+     * @see #getValueExprCaseSimpleContentWhen()
+     * @generated
+     */
+    void setValueExprCaseSimpleContentWhen(ValueExpressionCaseSimpleContent value);
+
+	/**
+     * Returns the value of the '<em><b>Value Expr Case Simple Content Result</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent#getResultValueExpr <em>Result Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Expr Case Simple Content Result</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Expr Case Simple Content Result</em>' container reference.
+     * @see #setValueExprCaseSimpleContentResult(ValueExpressionCaseSimpleContent)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryValueExpression_ValueExprCaseSimpleContentResult()
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent#getResultValueExpr
+     * @model opposite="resultValueExpr"
+     * @generated
+     */
+    ValueExpressionCaseSimpleContent getValueExprCaseSimpleContentResult();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCaseSimpleContentResult <em>Value Expr Case Simple Content Result</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Expr Case Simple Content Result</em>' container reference.
+     * @see #getValueExprCaseSimpleContentResult()
+     * @generated
+     */
+    void setValueExprCaseSimpleContentResult(ValueExpressionCaseSimpleContent value);
+
+	/**
+     * Returns the value of the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent#getValueExpr <em>Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Expr Case Search Content</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Expr Case Search Content</em>' container reference.
+     * @see #setValueExprCaseSearchContent(ValueExpressionCaseSearchContent)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryValueExpression_ValueExprCaseSearchContent()
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent#getValueExpr
+     * @model opposite="valueExpr"
+     * @generated
+     */
+    ValueExpressionCaseSearchContent getValueExprCaseSearchContent();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCaseSearchContent <em>Value Expr Case Search Content</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Expr Case Search Content</em>' container reference.
+     * @see #getValueExprCaseSearchContent()
+     * @generated
+     */
+    void setValueExprCaseSearchContent(ValueExpressionCaseSearchContent value);
+
+	/**
+     * Returns the value of the '<em><b>Like Escape</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.PredicateLike#getEscapeValueExpr <em>Escape Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Like Escape</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Like Escape</em>' container reference.
+     * @see #setLikeEscape(PredicateLike)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryValueExpression_LikeEscape()
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateLike#getEscapeValueExpr
+     * @model opposite="escapeValueExpr"
+     * @generated
+     */
+    PredicateLike getLikeEscape();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getLikeEscape <em>Like Escape</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Like Escape</em>' container reference.
+     * @see #getLikeEscape()
+     * @generated
+     */
+    void setLikeEscape(PredicateLike value);
+
+	/**
+     * Returns the value of the '<em><b>Value Expr Labeled Duration</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration#getValueExpr <em>Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Expr Labeled Duration</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Expr Labeled Duration</em>' container reference.
+     * @see #setValueExprLabeledDuration(ValueExpressionLabeledDuration)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryValueExpression_ValueExprLabeledDuration()
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration#getValueExpr
+     * @model opposite="valueExpr"
+     * @generated
+     */
+    ValueExpressionLabeledDuration getValueExprLabeledDuration();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprLabeledDuration <em>Value Expr Labeled Duration</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Expr Labeled Duration</em>' container reference.
+     * @see #getValueExprLabeledDuration()
+     * @generated
+     */
+    void setValueExprLabeledDuration(ValueExpressionLabeledDuration value);
+
+	/**
+     * Returns the value of the '<em><b>Nest</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested#getNestedValueExpr <em>Nested Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Nest</em>' container reference isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+     * @return the value of the '<em>Nest</em>' container reference.
+     * @see #setNest(ValueExpressionNested)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryValueExpression_Nest()
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested#getNestedValueExpr
+     * @model opposite="nestedValueExpr"
+     * @generated
+     */
+  ValueExpressionNested getNest();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getNest <em>Nest</em>}' container reference.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Nest</em>' container reference.
+     * @see #getNest()
+     * @generated
+     */
+  void setNest(ValueExpressionNested value);
+
+	/**
+     * Returns the value of the '<em><b>Update Source Expr List</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList#getValueExprList <em>Value Expr List</em>}'.
+     * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Update Source Expr List</em>' container reference isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+     * @return the value of the '<em>Update Source Expr List</em>' container reference.
+     * @see #setUpdateSourceExprList(UpdateSourceExprList)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryValueExpression_UpdateSourceExprList()
+     * @see org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList#getValueExprList
+     * @model opposite="valueExprList"
+     * @generated
+     */
+  UpdateSourceExprList getUpdateSourceExprList();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getUpdateSourceExprList <em>Update Source Expr List</em>}' container reference.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Update Source Expr List</em>' container reference.
+     * @see #getUpdateSourceExprList()
+     * @generated
+     */
+  void setUpdateSourceExprList(UpdateSourceExprList value);
+
+    /**
+     * Returns the value of the '<em><b>Table Function</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.TableFunction#getParameterList <em>Parameter List</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Table Function</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Table Function</em>' container reference.
+     * @see #setTableFunction(TableFunction)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryValueExpression_TableFunction()
+     * @see org.eclipse.datatools.modelbase.sql.query.TableFunction#getParameterList
+     * @model opposite="parameterList" required="true"
+     * @generated
+     */
+    TableFunction getTableFunction();
+
+    /**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getTableFunction <em>Table Function</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Table Function</em>' container reference.
+     * @see #getTableFunction()
+     * @generated
+     */
+    void setTableFunction(TableFunction value);
+
+    /**
+     * Returns the value of the '<em><b>Value Expr Row</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionRow#getValueExprList <em>Value Expr List</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Expr Row</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Expr Row</em>' container reference.
+     * @see #setValueExprRow(ValueExpressionRow)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryValueExpression_ValueExprRow()
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionRow#getValueExprList
+     * @model opposite="valueExprList" required="true"
+     * @generated
+     */
+    ValueExpressionRow getValueExprRow();
+
+    /**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprRow <em>Value Expr Row</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Expr Row</em>' container reference.
+     * @see #getValueExprRow()
+     * @generated
+     */
+    void setValueExprRow(ValueExpressionRow value);
+
+    /**
+     * Returns the value of the '<em><b>Call Statement</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.CallStatement#getArgumentList <em>Argument List</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Call Statement</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Call Statement</em>' container reference.
+     * @see #setCallStatement(CallStatement)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryValueExpression_CallStatement()
+     * @see org.eclipse.datatools.modelbase.sql.query.CallStatement#getArgumentList
+     * @model opposite="argumentList" required="true"
+     * @generated
+     */
+    CallStatement getCallStatement();
+
+    /**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getCallStatement <em>Call Statement</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Call Statement</em>' container reference.
+     * @see #getCallStatement()
+     * @generated
+     */
+    void setCallStatement(CallStatement value);
+
+} // SQLValueExpression
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QueryValues.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QueryValues.java
new file mode 100644
index 0000000..7d89a61
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/QueryValues.java
@@ -0,0 +1,46 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QueryValues.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Values</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.QueryValues#getValuesRowList <em>Values Row List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryValues()
+ * @model
+ * @generated
+ */
+public interface QueryValues extends QueryExpressionBody{
+	/**
+     * Returns the value of the '<em><b>Values Row List</b></em>' containment reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.query.ValuesRow}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.ValuesRow#getQueryValues <em>Query Values</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Values Row List</em>' containment reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Values Row List</em>' containment reference list.
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getQueryValues_ValuesRowList()
+     * @see org.eclipse.datatools.modelbase.sql.query.ValuesRow#getQueryValues
+     * @model type="org.eclipse.datatools.modelbase.sql.query.ValuesRow" opposite="queryValues" containment="true" required="true"
+     * @generated
+     */
+    EList getValuesRowList();
+
+} // SQLQueryValues
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ResultColumn.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ResultColumn.java
new file mode 100644
index 0000000..0bd3367
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ResultColumn.java
@@ -0,0 +1,76 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ResultColumn.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Result Column</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.ResultColumn#getValueExpr <em>Value Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.ResultColumn#getOrderByResultCol <em>Order By Result Col</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getResultColumn()
+ * @model
+ * @generated
+ */
+public interface ResultColumn extends QueryResultSpecification{
+	/**
+     * Returns the value of the '<em><b>Value Expr</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getResultColumn <em>Result Column</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Expr</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Expr</em>' containment reference.
+     * @see #setValueExpr(QueryValueExpression)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getResultColumn_ValueExpr()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getResultColumn
+     * @model opposite="resultColumn" containment="true" required="true"
+     * @generated
+     */
+    QueryValueExpression getValueExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.ResultColumn#getValueExpr <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Expr</em>' containment reference.
+     * @see #getValueExpr()
+     * @generated
+     */
+    void setValueExpr(QueryValueExpression value);
+
+	/**
+     * Returns the value of the '<em><b>Order By Result Col</b></em>' reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.query.OrderByResultColumn}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.OrderByResultColumn#getResultCol <em>Result Col</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Order By Result Col</em>' reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Order By Result Col</em>' reference list.
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getResultColumn_OrderByResultCol()
+     * @see org.eclipse.datatools.modelbase.sql.query.OrderByResultColumn#getResultCol
+     * @model type="org.eclipse.datatools.modelbase.sql.query.OrderByResultColumn" opposite="resultCol"
+     * @generated
+     */
+    EList getOrderByResultCol();
+
+} // SQLResultColumn
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ResultTableAllColumns.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ResultTableAllColumns.java
new file mode 100644
index 0000000..19faab0
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ResultTableAllColumns.java
@@ -0,0 +1,55 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ResultTableAllColumns.java,v 1.2 2005/12/22 22:18:50 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Result Column All</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.ResultTableAllColumns#getTableExpr <em>Table Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getResultTableAllColumns()
+ * @model
+ * @generated
+ */
+public interface ResultTableAllColumns extends QueryResultSpecification{
+	/**
+     * Returns the value of the '<em><b>Table Expr</b></em>' reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.TableExpression#getResultTableAllColumns <em>Result Table All Columns</em>}'.
+     * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Table Expr</em>' reference isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+     * @return the value of the '<em>Table Expr</em>' reference.
+     * @see #setTableExpr(TableExpression)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getResultTableAllColumns_TableExpr()
+     * @see org.eclipse.datatools.modelbase.sql.query.TableExpression#getResultTableAllColumns
+     * @model opposite="resultTableAllColumns" required="true"
+     * @generated
+     */
+  TableExpression getTableExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.ResultTableAllColumns#getTableExpr <em>Table Expr</em>}' reference.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Table Expr</em>' reference.
+     * @see #getTableExpr()
+     * @generated
+     */
+  void setTableExpr(TableExpression value);
+
+} // SQLResultColumnAll
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/SQLQueryModelFactory.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/SQLQueryModelFactory.java
new file mode 100644
index 0000000..e44a236
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/SQLQueryModelFactory.java
@@ -0,0 +1,721 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SQLQueryModelFactory.java,v 1.5 2010/02/25 01:57:23 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage
+ * @generated
+ */
+public interface SQLQueryModelFactory extends EFactory {
+	/**
+     * The singleton instance of the factory.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	SQLQueryModelFactory eINSTANCE = org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelFactoryImpl.init();
+
+	/**
+     * Returns a new object of class '<em>Query Delete Statement</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Query Delete Statement</em>'.
+     * @generated
+     */
+	QueryDeleteStatement createQueryDeleteStatement();
+
+	/**
+     * Returns a new object of class '<em>Query Insert Statement</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Query Insert Statement</em>'.
+     * @generated
+     */
+	QueryInsertStatement createQueryInsertStatement();
+
+	/**
+     * Returns a new object of class '<em>Query Select Statement</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Query Select Statement</em>'.
+     * @generated
+     */
+	QuerySelectStatement createQuerySelectStatement();
+
+	/**
+     * Returns a new object of class '<em>Query Update Statement</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Query Update Statement</em>'.
+     * @generated
+     */
+	QueryUpdateStatement createQueryUpdateStatement();
+
+	/**
+     * Returns a new object of class '<em>Update Assignment Expression</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Update Assignment Expression</em>'.
+     * @generated
+     */
+	UpdateAssignmentExpression createUpdateAssignmentExpression();
+
+	/**
+     * Returns a new object of class '<em>Cursor Reference</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Cursor Reference</em>'.
+     * @generated
+     */
+	CursorReference createCursorReference();
+
+	/**
+     * Returns a new object of class '<em>Query Expression Root</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Query Expression Root</em>'.
+     * @generated
+     */
+	QueryExpressionRoot createQueryExpressionRoot();
+
+	/**
+     * Returns a new object of class '<em>Values Row</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Values Row</em>'.
+     * @generated
+     */
+	ValuesRow createValuesRow();
+
+	/**
+     * Returns a new object of class '<em>Query Values</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Query Values</em>'.
+     * @generated
+     */
+	QueryValues createQueryValues();
+
+	/**
+     * Returns a new object of class '<em>Table Joined</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Table Joined</em>'.
+     * @generated
+     */
+	TableJoined createTableJoined();
+
+	/**
+     * Returns a new object of class '<em>With Table Specification</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>With Table Specification</em>'.
+     * @generated
+     */
+	WithTableSpecification createWithTableSpecification();
+
+	/**
+     * Returns a new object of class '<em>Search Condition Combined</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Search Condition Combined</em>'.
+     * @generated
+     */
+	SearchConditionCombined createSearchConditionCombined();
+
+	/**
+     * Returns a new object of class '<em>Order By Value Expression</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Order By Value Expression</em>'.
+     * @generated
+     */
+	OrderByValueExpression createOrderByValueExpression();
+
+	/**
+     * Returns a new object of class '<em>Query Combined</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Query Combined</em>'.
+     * @generated
+     */
+	QueryCombined createQueryCombined();
+
+	/**
+     * Returns a new object of class '<em>Query Select</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Query Select</em>'.
+     * @generated
+     */
+	QuerySelect createQuerySelect();
+
+	/**
+     * Returns a new object of class '<em>Result Table All Columns</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Result Table All Columns</em>'.
+     * @generated
+     */
+	ResultTableAllColumns createResultTableAllColumns();
+
+	/**
+     * Returns a new object of class '<em>Result Column</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Result Column</em>'.
+     * @generated
+     */
+	ResultColumn createResultColumn();
+
+	/**
+     * Returns a new object of class '<em>Predicate Basic</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Predicate Basic</em>'.
+     * @generated
+     */
+	PredicateBasic createPredicateBasic();
+
+	/**
+     * Returns a new object of class '<em>Predicate Between</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Predicate Between</em>'.
+     * @generated
+     */
+	PredicateBetween createPredicateBetween();
+
+	/**
+     * Returns a new object of class '<em>Predicate Exists</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Predicate Exists</em>'.
+     * @generated
+     */
+	PredicateExists createPredicateExists();
+
+	/**
+     * Returns a new object of class '<em>Predicate Like</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Predicate Like</em>'.
+     * @generated
+     */
+	PredicateLike createPredicateLike();
+
+	/**
+     * Returns a new object of class '<em>Predicate Is Null</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Predicate Is Null</em>'.
+     * @generated
+     */
+	PredicateIsNull createPredicateIsNull();
+
+	/**
+     * Returns a new object of class '<em>Predicate Quantified Value Select</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Predicate Quantified Value Select</em>'.
+     * @generated
+     */
+	PredicateQuantifiedValueSelect createPredicateQuantifiedValueSelect();
+
+	/**
+     * Returns a new object of class '<em>Predicate Quantified Row Select</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Predicate Quantified Row Select</em>'.
+     * @generated
+     */
+	PredicateQuantifiedRowSelect createPredicateQuantifiedRowSelect();
+
+	/**
+     * Returns a new object of class '<em>Predicate In Value Select</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Predicate In Value Select</em>'.
+     * @generated
+     */
+	PredicateInValueSelect createPredicateInValueSelect();
+
+	/**
+     * Returns a new object of class '<em>Predicate In Value List</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Predicate In Value List</em>'.
+     * @generated
+     */
+	PredicateInValueList createPredicateInValueList();
+
+	/**
+     * Returns a new object of class '<em>Predicate In Value Row Select</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Predicate In Value Row Select</em>'.
+     * @generated
+     */
+	PredicateInValueRowSelect createPredicateInValueRowSelect();
+
+	/**
+     * Returns a new object of class '<em>Value Expression Simple</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Value Expression Simple</em>'.
+     * @generated
+     */
+	ValueExpressionSimple createValueExpressionSimple();
+
+	/**
+     * Returns a new object of class '<em>Value Expression Column</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Value Expression Column</em>'.
+     * @generated
+     */
+	ValueExpressionColumn createValueExpressionColumn();
+
+	/**
+     * Returns a new object of class '<em>Value Expression Variable</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Value Expression Variable</em>'.
+     * @generated
+     */
+	ValueExpressionVariable createValueExpressionVariable();
+
+	/**
+     * Returns a new object of class '<em>Value Expression Scalar Select</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Value Expression Scalar Select</em>'.
+     * @generated
+     */
+	ValueExpressionScalarSelect createValueExpressionScalarSelect();
+
+	/**
+     * Returns a new object of class '<em>Value Expression Labeled Duration</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Value Expression Labeled Duration</em>'.
+     * @generated
+     */
+	ValueExpressionLabeledDuration createValueExpressionLabeledDuration();
+
+	/**
+     * Returns a new object of class '<em>Value Expression Cast</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Value Expression Cast</em>'.
+     * @generated
+     */
+	ValueExpressionCast createValueExpressionCast();
+
+	/**
+     * Returns a new object of class '<em>Value Expression Null Value</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Value Expression Null Value</em>'.
+     * @generated
+     */
+	ValueExpressionNullValue createValueExpressionNullValue();
+
+	/**
+     * Returns a new object of class '<em>Value Expression Default Value</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Value Expression Default Value</em>'.
+     * @generated
+     */
+	ValueExpressionDefaultValue createValueExpressionDefaultValue();
+
+	/**
+     * Returns a new object of class '<em>Value Expression Function</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Value Expression Function</em>'.
+     * @generated
+     */
+	ValueExpressionFunction createValueExpressionFunction();
+
+	/**
+     * Returns a new object of class '<em>Value Expression Combined</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Value Expression Combined</em>'.
+     * @generated
+     */
+	ValueExpressionCombined createValueExpressionCombined();
+
+	/**
+     * Returns a new object of class '<em>Grouping Sets</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Grouping Sets</em>'.
+     * @generated
+     */
+	GroupingSets createGroupingSets();
+
+	/**
+     * Returns a new object of class '<em>Grouping Sets Element Sublist</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Grouping Sets Element Sublist</em>'.
+     * @generated
+     */
+	GroupingSetsElementSublist createGroupingSetsElementSublist();
+
+	/**
+     * Returns a new object of class '<em>Grouping Sets Element Expression</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Grouping Sets Element Expression</em>'.
+     * @generated
+     */
+	GroupingSetsElementExpression createGroupingSetsElementExpression();
+
+	/**
+     * Returns a new object of class '<em>Super Group</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Super Group</em>'.
+     * @generated
+     */
+	SuperGroup createSuperGroup();
+
+	/**
+     * Returns a new object of class '<em>Grouping Expression</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Grouping Expression</em>'.
+     * @generated
+     */
+	GroupingExpression createGroupingExpression();
+
+	/**
+     * Returns a new object of class '<em>Super Group Element Sublist</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Super Group Element Sublist</em>'.
+     * @generated
+     */
+	SuperGroupElementSublist createSuperGroupElementSublist();
+
+	/**
+     * Returns a new object of class '<em>Super Group Element Expression</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Super Group Element Expression</em>'.
+     * @generated
+     */
+	SuperGroupElementExpression createSuperGroupElementExpression();
+
+	/**
+     * Returns a new object of class '<em>Value Expression Case Search</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Value Expression Case Search</em>'.
+     * @generated
+     */
+	ValueExpressionCaseSearch createValueExpressionCaseSearch();
+
+	/**
+     * Returns a new object of class '<em>Value Expression Case Simple</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Value Expression Case Simple</em>'.
+     * @generated
+     */
+	ValueExpressionCaseSimple createValueExpressionCaseSimple();
+
+	/**
+     * Returns a new object of class '<em>Value Expression Case Else</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Value Expression Case Else</em>'.
+     * @generated
+     */
+	ValueExpressionCaseElse createValueExpressionCaseElse();
+
+	/**
+     * Returns a new object of class '<em>Value Expression Case Search Content</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Value Expression Case Search Content</em>'.
+     * @generated
+     */
+	ValueExpressionCaseSearchContent createValueExpressionCaseSearchContent();
+
+	/**
+     * Returns a new object of class '<em>Value Expression Case Simple Content</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Value Expression Case Simple Content</em>'.
+     * @generated
+     */
+	ValueExpressionCaseSimpleContent createValueExpressionCaseSimpleContent();
+
+	/**
+     * Returns a new object of class '<em>Table In Database</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Table In Database</em>'.
+     * @generated
+     */
+	TableInDatabase createTableInDatabase();
+
+	/**
+     * Returns a new object of class '<em>Table Function</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Table Function</em>'.
+     * @generated
+     */
+	TableFunction createTableFunction();
+
+	/**
+     * Returns a new object of class '<em>Column Name</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Column Name</em>'.
+     * @generated
+     */
+	ColumnName createColumnName();
+
+	/**
+     * Returns a new object of class '<em>Table Nested</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Table Nested</em>'.
+     * @generated
+     */
+	TableNested createTableNested();
+
+	/**
+     * Returns a new object of class '<em>Query Merge Statement</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Query Merge Statement</em>'.
+     * @generated
+     */
+	QueryMergeStatement createQueryMergeStatement();
+
+	/**
+     * Returns a new object of class '<em>Search Condition Nested</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Search Condition Nested</em>'.
+     * @generated
+     */
+	SearchConditionNested createSearchConditionNested();
+
+	/**
+     * Returns a new object of class '<em>Value Expression Nested</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Value Expression Nested</em>'.
+     * @generated
+     */
+	ValueExpressionNested createValueExpressionNested();
+
+	/**
+     * Returns a new object of class '<em>Order By Ordinal</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Order By Ordinal</em>'.
+     * @generated
+     */
+	OrderByOrdinal createOrderByOrdinal();
+
+	/**
+     * Returns a new object of class '<em>Table Correlation</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Table Correlation</em>'.
+     * @generated
+     */
+	TableCorrelation createTableCorrelation();
+
+	/**
+     * Returns a new object of class '<em>Update Source</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Update Source</em>'.
+     * @generated
+     */
+	UpdateSource createUpdateSource();
+
+	/**
+     * Returns a new object of class '<em>Update Source Expr List</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Update Source Expr List</em>'.
+     * @generated
+     */
+	UpdateSourceExprList createUpdateSourceExprList();
+
+	/**
+     * Returns a new object of class '<em>Update Source Query</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Update Source Query</em>'.
+     * @generated
+     */
+	UpdateSourceQuery createUpdateSourceQuery();
+
+	/**
+     * Returns a new object of class '<em>Order By Result Column</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>Order By Result Column</em>'.
+     * @generated
+     */
+	OrderByResultColumn createOrderByResultColumn();
+
+	/**
+     * Returns a new object of class '<em>With Table Reference</em>'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return a new object of class '<em>With Table Reference</em>'.
+     * @generated
+     */
+	WithTableReference createWithTableReference();
+
+	/**
+     * Returns a new object of class '<em>Query Nested</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>Query Nested</em>'.
+     * @generated
+     */
+    QueryNested createQueryNested();
+
+    /**
+     * Returns a new object of class '<em>Value Expression Row</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>Value Expression Row</em>'.
+     * @generated
+     */
+    ValueExpressionRow createValueExpressionRow();
+
+    /**
+     * Returns a new object of class '<em>Merge Target Table</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>Merge Target Table</em>'.
+     * @generated
+     */
+    MergeTargetTable createMergeTargetTable();
+
+    /**
+     * Returns a new object of class '<em>Merge Source Table</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>Merge Source Table</em>'.
+     * @generated
+     */
+    MergeSourceTable createMergeSourceTable();
+
+    /**
+     * Returns a new object of class '<em>Merge On Condition</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>Merge On Condition</em>'.
+     * @generated
+     */
+    MergeOnCondition createMergeOnCondition();
+
+    /**
+     * Returns a new object of class '<em>Merge Update Specification</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>Merge Update Specification</em>'.
+     * @generated
+     */
+    MergeUpdateSpecification createMergeUpdateSpecification();
+
+    /**
+     * Returns a new object of class '<em>Merge Insert Specification</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>Merge Insert Specification</em>'.
+     * @generated
+     */
+    MergeInsertSpecification createMergeInsertSpecification();
+
+    /**
+     * Returns a new object of class '<em>Merge Operation Specification</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>Merge Operation Specification</em>'.
+     * @generated
+     */
+    MergeOperationSpecification createMergeOperationSpecification();
+
+    /**
+     * Returns a new object of class '<em>Update Of Column</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>Update Of Column</em>'.
+     * @generated
+     */
+    UpdateOfColumn createUpdateOfColumn();
+
+    /**
+     * Returns a new object of class '<em>Updatability Expression</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>Updatability Expression</em>'.
+     * @generated
+     */
+    UpdatabilityExpression createUpdatabilityExpression();
+
+    /**
+     * Returns a new object of class '<em>Call Statement</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>Call Statement</em>'.
+     * @generated
+     */
+    CallStatement createCallStatement();
+
+    /**
+     * Returns a new object of class '<em>Procedure Reference</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>Procedure Reference</em>'.
+     * @generated
+     */
+    ProcedureReference createProcedureReference();
+
+    /**
+     * Returns a new object of class '<em>Table Query Lateral</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>Table Query Lateral</em>'.
+     * @generated
+     */
+    TableQueryLateral createTableQueryLateral();
+
+    /**
+     * Returns the package supported by this factory.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the package supported by this factory.
+     * @generated
+     */
+	SQLQueryModelPackage getSQLQueryModelPackage();
+
+} //SQLQueryModelFactory
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/SQLQueryModelPackage.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/SQLQueryModelPackage.java
new file mode 100644
index 0000000..c5c86b1
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/SQLQueryModelPackage.java
@@ -0,0 +1,26694 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SQLQueryModelPackage.java,v 1.6 2010/02/25 01:57:23 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ *   <li>each class,</li>
+ *   <li>each feature of each class,</li>
+ *   <li>each enum,</li>
+ *   <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface SQLQueryModelPackage extends EPackage {
+	/**
+     * The package name.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	String eNAME = "query";
+
+	/**
+     * The package namespace URI.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	String eNS_URI = "http:///org/eclipse/datatools/modelbase/sql/query/SQLQueryModel.ecore";
+
+	/**
+     * The package namespace name.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	String eNS_PREFIX = "org.eclipse.datatools.modelbase.sql.query";
+
+	/**
+     * The singleton instance of the package.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	SQLQueryModelPackage eINSTANCE = org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl.init();
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryObjectImpl <em>SQL Query Object</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryObjectImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getSQLQueryObject()
+     * @generated
+     */
+	int SQL_QUERY_OBJECT = 66;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SQL_QUERY_OBJECT__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SQL_QUERY_OBJECT__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SQL_QUERY_OBJECT__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SQL_QUERY_OBJECT__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SQL_QUERY_OBJECT__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SQL_QUERY_OBJECT__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int SQL_QUERY_OBJECT__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SQL_QUERY_OBJECT__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+	/**
+     * The number of structural features of the '<em>SQL Query Object</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SQL_QUERY_OBJECT_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryStatementImpl <em>Query Statement</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.QueryStatementImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getQueryStatement()
+     * @generated
+     */
+	int QUERY_STATEMENT = 0;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_STATEMENT__EANNOTATIONS = SQL_QUERY_OBJECT__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_STATEMENT__NAME = SQL_QUERY_OBJECT__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_STATEMENT__DEPENDENCIES = SQL_QUERY_OBJECT__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_STATEMENT__DESCRIPTION = SQL_QUERY_OBJECT__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_STATEMENT__LABEL = SQL_QUERY_OBJECT__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_STATEMENT__COMMENTS = SQL_QUERY_OBJECT__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_STATEMENT__EXTENSIONS = SQL_QUERY_OBJECT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_STATEMENT__PRIVILEGES = SQL_QUERY_OBJECT__PRIVILEGES;
+
+	/**
+     * The number of structural features of the '<em>Query Statement</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_STATEMENT_FEATURE_COUNT = SQL_QUERY_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryChangeStatementImpl <em>Query Change Statement</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.QueryChangeStatementImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getQueryChangeStatement()
+     * @generated
+     */
+	int QUERY_CHANGE_STATEMENT = 67;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_CHANGE_STATEMENT__EANNOTATIONS = QUERY_STATEMENT__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_CHANGE_STATEMENT__NAME = QUERY_STATEMENT__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_CHANGE_STATEMENT__DEPENDENCIES = QUERY_STATEMENT__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_CHANGE_STATEMENT__DESCRIPTION = QUERY_STATEMENT__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_CHANGE_STATEMENT__LABEL = QUERY_STATEMENT__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_CHANGE_STATEMENT__COMMENTS = QUERY_STATEMENT__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_CHANGE_STATEMENT__EXTENSIONS = QUERY_STATEMENT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_CHANGE_STATEMENT__PRIVILEGES = QUERY_STATEMENT__PRIVILEGES;
+
+	/**
+     * The number of structural features of the '<em>Query Change Statement</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_CHANGE_STATEMENT_FEATURE_COUNT = QUERY_STATEMENT_FEATURE_COUNT + 0;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryDeleteStatementImpl <em>Query Delete Statement</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.QueryDeleteStatementImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getQueryDeleteStatement()
+     * @generated
+     */
+	int QUERY_DELETE_STATEMENT = 1;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_DELETE_STATEMENT__EANNOTATIONS = QUERY_CHANGE_STATEMENT__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_DELETE_STATEMENT__NAME = QUERY_CHANGE_STATEMENT__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_DELETE_STATEMENT__DEPENDENCIES = QUERY_CHANGE_STATEMENT__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_DELETE_STATEMENT__DESCRIPTION = QUERY_CHANGE_STATEMENT__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_DELETE_STATEMENT__LABEL = QUERY_CHANGE_STATEMENT__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_DELETE_STATEMENT__COMMENTS = QUERY_CHANGE_STATEMENT__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_DELETE_STATEMENT__EXTENSIONS = QUERY_CHANGE_STATEMENT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_DELETE_STATEMENT__PRIVILEGES = QUERY_CHANGE_STATEMENT__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Where Current Of Clause</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_DELETE_STATEMENT__WHERE_CURRENT_OF_CLAUSE = QUERY_CHANGE_STATEMENT_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Where Clause</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_DELETE_STATEMENT__WHERE_CLAUSE = QUERY_CHANGE_STATEMENT_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>Target Table</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_DELETE_STATEMENT__TARGET_TABLE = QUERY_CHANGE_STATEMENT_FEATURE_COUNT + 2;
+
+	/**
+     * The number of structural features of the '<em>Query Delete Statement</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_DELETE_STATEMENT_FEATURE_COUNT = QUERY_CHANGE_STATEMENT_FEATURE_COUNT + 3;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryInsertStatementImpl <em>Query Insert Statement</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.QueryInsertStatementImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getQueryInsertStatement()
+     * @generated
+     */
+	int QUERY_INSERT_STATEMENT = 2;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_INSERT_STATEMENT__EANNOTATIONS = QUERY_CHANGE_STATEMENT__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_INSERT_STATEMENT__NAME = QUERY_CHANGE_STATEMENT__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_INSERT_STATEMENT__DEPENDENCIES = QUERY_CHANGE_STATEMENT__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_INSERT_STATEMENT__DESCRIPTION = QUERY_CHANGE_STATEMENT__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_INSERT_STATEMENT__LABEL = QUERY_CHANGE_STATEMENT__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_INSERT_STATEMENT__COMMENTS = QUERY_CHANGE_STATEMENT__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_INSERT_STATEMENT__EXTENSIONS = QUERY_CHANGE_STATEMENT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_INSERT_STATEMENT__PRIVILEGES = QUERY_CHANGE_STATEMENT__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Source Query</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_INSERT_STATEMENT__SOURCE_QUERY = QUERY_CHANGE_STATEMENT_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Source Values Row List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_INSERT_STATEMENT__SOURCE_VALUES_ROW_LIST = QUERY_CHANGE_STATEMENT_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>Target Table</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_INSERT_STATEMENT__TARGET_TABLE = QUERY_CHANGE_STATEMENT_FEATURE_COUNT + 2;
+
+	/**
+     * The feature id for the '<em><b>Target Column List</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_INSERT_STATEMENT__TARGET_COLUMN_LIST = QUERY_CHANGE_STATEMENT_FEATURE_COUNT + 3;
+
+	/**
+     * The number of structural features of the '<em>Query Insert Statement</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_INSERT_STATEMENT_FEATURE_COUNT = QUERY_CHANGE_STATEMENT_FEATURE_COUNT + 4;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.QuerySelectStatementImpl <em>Query Select Statement</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.QuerySelectStatementImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getQuerySelectStatement()
+     * @generated
+     */
+	int QUERY_SELECT_STATEMENT = 3;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SELECT_STATEMENT__EANNOTATIONS = QUERY_STATEMENT__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SELECT_STATEMENT__NAME = QUERY_STATEMENT__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SELECT_STATEMENT__DEPENDENCIES = QUERY_STATEMENT__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SELECT_STATEMENT__DESCRIPTION = QUERY_STATEMENT__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SELECT_STATEMENT__LABEL = QUERY_STATEMENT__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SELECT_STATEMENT__COMMENTS = QUERY_STATEMENT__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_SELECT_STATEMENT__EXTENSIONS = QUERY_STATEMENT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SELECT_STATEMENT__PRIVILEGES = QUERY_STATEMENT__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Query Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SELECT_STATEMENT__QUERY_EXPR = QUERY_STATEMENT_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Order By Clause</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SELECT_STATEMENT__ORDER_BY_CLAUSE = QUERY_STATEMENT_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>Updatability Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_SELECT_STATEMENT__UPDATABILITY_EXPR = QUERY_STATEMENT_FEATURE_COUNT + 2;
+
+    /**
+     * The number of structural features of the '<em>Query Select Statement</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SELECT_STATEMENT_FEATURE_COUNT = QUERY_STATEMENT_FEATURE_COUNT + 3;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryUpdateStatementImpl <em>Query Update Statement</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.QueryUpdateStatementImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getQueryUpdateStatement()
+     * @generated
+     */
+	int QUERY_UPDATE_STATEMENT = 4;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_UPDATE_STATEMENT__EANNOTATIONS = QUERY_CHANGE_STATEMENT__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_UPDATE_STATEMENT__NAME = QUERY_CHANGE_STATEMENT__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_UPDATE_STATEMENT__DEPENDENCIES = QUERY_CHANGE_STATEMENT__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_UPDATE_STATEMENT__DESCRIPTION = QUERY_CHANGE_STATEMENT__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_UPDATE_STATEMENT__LABEL = QUERY_CHANGE_STATEMENT__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_UPDATE_STATEMENT__COMMENTS = QUERY_CHANGE_STATEMENT__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_UPDATE_STATEMENT__EXTENSIONS = QUERY_CHANGE_STATEMENT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_UPDATE_STATEMENT__PRIVILEGES = QUERY_CHANGE_STATEMENT__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Assignment Clause</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_UPDATE_STATEMENT__ASSIGNMENT_CLAUSE = QUERY_CHANGE_STATEMENT_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Where Current Of Clause</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_UPDATE_STATEMENT__WHERE_CURRENT_OF_CLAUSE = QUERY_CHANGE_STATEMENT_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>Where Clause</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_UPDATE_STATEMENT__WHERE_CLAUSE = QUERY_CHANGE_STATEMENT_FEATURE_COUNT + 2;
+
+	/**
+     * The feature id for the '<em><b>Target Table</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_UPDATE_STATEMENT__TARGET_TABLE = QUERY_CHANGE_STATEMENT_FEATURE_COUNT + 3;
+
+	/**
+     * The number of structural features of the '<em>Query Update Statement</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_UPDATE_STATEMENT_FEATURE_COUNT = QUERY_CHANGE_STATEMENT_FEATURE_COUNT + 4;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.UpdateAssignmentExpressionImpl <em>Update Assignment Expression</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.UpdateAssignmentExpressionImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getUpdateAssignmentExpression()
+     * @generated
+     */
+	int UPDATE_ASSIGNMENT_EXPRESSION = 5;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int UPDATE_ASSIGNMENT_EXPRESSION__EANNOTATIONS = SQL_QUERY_OBJECT__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int UPDATE_ASSIGNMENT_EXPRESSION__NAME = SQL_QUERY_OBJECT__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int UPDATE_ASSIGNMENT_EXPRESSION__DEPENDENCIES = SQL_QUERY_OBJECT__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int UPDATE_ASSIGNMENT_EXPRESSION__DESCRIPTION = SQL_QUERY_OBJECT__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int UPDATE_ASSIGNMENT_EXPRESSION__LABEL = SQL_QUERY_OBJECT__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int UPDATE_ASSIGNMENT_EXPRESSION__COMMENTS = SQL_QUERY_OBJECT__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int UPDATE_ASSIGNMENT_EXPRESSION__EXTENSIONS = SQL_QUERY_OBJECT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int UPDATE_ASSIGNMENT_EXPRESSION__PRIVILEGES = SQL_QUERY_OBJECT__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Update Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int UPDATE_ASSIGNMENT_EXPRESSION__UPDATE_STATEMENT = SQL_QUERY_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Target Column List</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int UPDATE_ASSIGNMENT_EXPRESSION__TARGET_COLUMN_LIST = SQL_QUERY_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>Update Source</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int UPDATE_ASSIGNMENT_EXPRESSION__UPDATE_SOURCE = SQL_QUERY_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+     * The feature id for the '<em><b>Merge Update Spec</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int UPDATE_ASSIGNMENT_EXPRESSION__MERGE_UPDATE_SPEC = SQL_QUERY_OBJECT_FEATURE_COUNT + 3;
+
+    /**
+     * The number of structural features of the '<em>Update Assignment Expression</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int UPDATE_ASSIGNMENT_EXPRESSION_FEATURE_COUNT = SQL_QUERY_OBJECT_FEATURE_COUNT + 4;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.CursorReferenceImpl <em>Cursor Reference</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.CursorReferenceImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getCursorReference()
+     * @generated
+     */
+	int CURSOR_REFERENCE = 6;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int CURSOR_REFERENCE__EANNOTATIONS = SQL_QUERY_OBJECT__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int CURSOR_REFERENCE__NAME = SQL_QUERY_OBJECT__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int CURSOR_REFERENCE__DEPENDENCIES = SQL_QUERY_OBJECT__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int CURSOR_REFERENCE__DESCRIPTION = SQL_QUERY_OBJECT__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int CURSOR_REFERENCE__LABEL = SQL_QUERY_OBJECT__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int CURSOR_REFERENCE__COMMENTS = SQL_QUERY_OBJECT__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int CURSOR_REFERENCE__EXTENSIONS = SQL_QUERY_OBJECT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int CURSOR_REFERENCE__PRIVILEGES = SQL_QUERY_OBJECT__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Update Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int CURSOR_REFERENCE__UPDATE_STATEMENT = SQL_QUERY_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Delete Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int CURSOR_REFERENCE__DELETE_STATEMENT = SQL_QUERY_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+     * The number of structural features of the '<em>Cursor Reference</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int CURSOR_REFERENCE_FEATURE_COUNT = SQL_QUERY_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.QuerySearchConditionImpl <em>Query Search Condition</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.QuerySearchConditionImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getQuerySearchCondition()
+     * @generated
+     */
+	int QUERY_SEARCH_CONDITION = 7;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SEARCH_CONDITION__EANNOTATIONS = SQL_QUERY_OBJECT__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SEARCH_CONDITION__NAME = SQL_QUERY_OBJECT__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SEARCH_CONDITION__DEPENDENCIES = SQL_QUERY_OBJECT__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SEARCH_CONDITION__DESCRIPTION = SQL_QUERY_OBJECT__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SEARCH_CONDITION__LABEL = SQL_QUERY_OBJECT__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SEARCH_CONDITION__COMMENTS = SQL_QUERY_OBJECT__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_SEARCH_CONDITION__EXTENSIONS = SQL_QUERY_OBJECT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SEARCH_CONDITION__PRIVILEGES = SQL_QUERY_OBJECT__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Negated Condition</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SEARCH_CONDITION__NEGATED_CONDITION = SQL_QUERY_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Update Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SEARCH_CONDITION__UPDATE_STATEMENT = SQL_QUERY_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>Delete Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SEARCH_CONDITION__DELETE_STATEMENT = SQL_QUERY_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+     * The feature id for the '<em><b>Table Joined</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SEARCH_CONDITION__TABLE_JOINED = SQL_QUERY_OBJECT_FEATURE_COUNT + 3;
+
+	/**
+     * The feature id for the '<em><b>Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SEARCH_CONDITION__COMBINED_LEFT = SQL_QUERY_OBJECT_FEATURE_COUNT + 4;
+
+	/**
+     * The feature id for the '<em><b>Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SEARCH_CONDITION__COMBINED_RIGHT = SQL_QUERY_OBJECT_FEATURE_COUNT + 5;
+
+	/**
+     * The feature id for the '<em><b>Query Select Having</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SEARCH_CONDITION__QUERY_SELECT_HAVING = SQL_QUERY_OBJECT_FEATURE_COUNT + 6;
+
+	/**
+     * The feature id for the '<em><b>Query Select Where</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SEARCH_CONDITION__QUERY_SELECT_WHERE = SQL_QUERY_OBJECT_FEATURE_COUNT + 7;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SEARCH_CONDITION__VALUE_EXPR_CASE_SEARCH_CONTENT = SQL_QUERY_OBJECT_FEATURE_COUNT + 8;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SEARCH_CONDITION__NEST = SQL_QUERY_OBJECT_FEATURE_COUNT + 9;
+
+	/**
+     * The feature id for the '<em><b>Merge On Condition</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_SEARCH_CONDITION__MERGE_ON_CONDITION = SQL_QUERY_OBJECT_FEATURE_COUNT + 10;
+
+    /**
+     * The number of structural features of the '<em>Query Search Condition</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SEARCH_CONDITION_FEATURE_COUNT = SQL_QUERY_OBJECT_FEATURE_COUNT + 11;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.TableReferenceImpl <em>Table Reference</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.TableReferenceImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getTableReference()
+     * @generated
+     */
+	int TABLE_REFERENCE = 13;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_REFERENCE__EANNOTATIONS = SQL_QUERY_OBJECT__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_REFERENCE__NAME = SQL_QUERY_OBJECT__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_REFERENCE__DEPENDENCIES = SQL_QUERY_OBJECT__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_REFERENCE__DESCRIPTION = SQL_QUERY_OBJECT__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_REFERENCE__LABEL = SQL_QUERY_OBJECT__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_REFERENCE__COMMENTS = SQL_QUERY_OBJECT__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int TABLE_REFERENCE__EXTENSIONS = SQL_QUERY_OBJECT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_REFERENCE__PRIVILEGES = SQL_QUERY_OBJECT__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Table Joined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_REFERENCE__TABLE_JOINED_RIGHT = SQL_QUERY_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Table Joined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_REFERENCE__TABLE_JOINED_LEFT = SQL_QUERY_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>Query Select</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_REFERENCE__QUERY_SELECT = SQL_QUERY_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_REFERENCE__NEST = SQL_QUERY_OBJECT_FEATURE_COUNT + 3;
+
+	/**
+     * The feature id for the '<em><b>Merge Source Table</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int TABLE_REFERENCE__MERGE_SOURCE_TABLE = SQL_QUERY_OBJECT_FEATURE_COUNT + 4;
+
+    /**
+     * The number of structural features of the '<em>Table Reference</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_REFERENCE_FEATURE_COUNT = SQL_QUERY_OBJECT_FEATURE_COUNT + 5;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.TableExpressionImpl <em>Table Expression</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.TableExpressionImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getTableExpression()
+     * @generated
+     */
+	int TABLE_EXPRESSION = 14;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_EXPRESSION__EANNOTATIONS = TABLE_REFERENCE__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_EXPRESSION__NAME = TABLE_REFERENCE__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_EXPRESSION__DEPENDENCIES = TABLE_REFERENCE__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_EXPRESSION__DESCRIPTION = TABLE_REFERENCE__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_EXPRESSION__LABEL = TABLE_REFERENCE__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_EXPRESSION__COMMENTS = TABLE_REFERENCE__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int TABLE_EXPRESSION__EXTENSIONS = TABLE_REFERENCE__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_EXPRESSION__PRIVILEGES = TABLE_REFERENCE__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Table Joined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_EXPRESSION__TABLE_JOINED_RIGHT = TABLE_REFERENCE__TABLE_JOINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Table Joined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_EXPRESSION__TABLE_JOINED_LEFT = TABLE_REFERENCE__TABLE_JOINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Query Select</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_EXPRESSION__QUERY_SELECT = TABLE_REFERENCE__QUERY_SELECT;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_EXPRESSION__NEST = TABLE_REFERENCE__NEST;
+
+	/**
+     * The feature id for the '<em><b>Merge Source Table</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int TABLE_EXPRESSION__MERGE_SOURCE_TABLE = TABLE_REFERENCE__MERGE_SOURCE_TABLE;
+
+    /**
+     * The feature id for the '<em><b>Column List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_EXPRESSION__COLUMN_LIST = TABLE_REFERENCE_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Table Correlation</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_EXPRESSION__TABLE_CORRELATION = TABLE_REFERENCE_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>Result Table All Columns</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_EXPRESSION__RESULT_TABLE_ALL_COLUMNS = TABLE_REFERENCE_FEATURE_COUNT + 2;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Columns</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_EXPRESSION__VALUE_EXPR_COLUMNS = TABLE_REFERENCE_FEATURE_COUNT + 3;
+
+	/**
+     * The feature id for the '<em><b>Merge Target Table</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int TABLE_EXPRESSION__MERGE_TARGET_TABLE = TABLE_REFERENCE_FEATURE_COUNT + 4;
+
+    /**
+     * The number of structural features of the '<em>Table Expression</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_EXPRESSION_FEATURE_COUNT = TABLE_REFERENCE_FEATURE_COUNT + 5;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryExpressionBodyImpl <em>Query Expression Body</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.QueryExpressionBodyImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getQueryExpressionBody()
+     * @generated
+     */
+	int QUERY_EXPRESSION_BODY = 8;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_EXPRESSION_BODY__EANNOTATIONS = TABLE_EXPRESSION__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_EXPRESSION_BODY__NAME = TABLE_EXPRESSION__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_EXPRESSION_BODY__DEPENDENCIES = TABLE_EXPRESSION__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_EXPRESSION_BODY__DESCRIPTION = TABLE_EXPRESSION__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_EXPRESSION_BODY__LABEL = TABLE_EXPRESSION__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_EXPRESSION_BODY__COMMENTS = TABLE_EXPRESSION__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_EXPRESSION_BODY__EXTENSIONS = TABLE_EXPRESSION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_EXPRESSION_BODY__PRIVILEGES = TABLE_EXPRESSION__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Table Joined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_EXPRESSION_BODY__TABLE_JOINED_RIGHT = TABLE_EXPRESSION__TABLE_JOINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Table Joined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_EXPRESSION_BODY__TABLE_JOINED_LEFT = TABLE_EXPRESSION__TABLE_JOINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Query Select</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_EXPRESSION_BODY__QUERY_SELECT = TABLE_EXPRESSION__QUERY_SELECT;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_EXPRESSION_BODY__NEST = TABLE_EXPRESSION__NEST;
+
+	/**
+     * The feature id for the '<em><b>Merge Source Table</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_EXPRESSION_BODY__MERGE_SOURCE_TABLE = TABLE_EXPRESSION__MERGE_SOURCE_TABLE;
+
+    /**
+     * The feature id for the '<em><b>Column List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_EXPRESSION_BODY__COLUMN_LIST = TABLE_EXPRESSION__COLUMN_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Correlation</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_EXPRESSION_BODY__TABLE_CORRELATION = TABLE_EXPRESSION__TABLE_CORRELATION;
+
+	/**
+     * The feature id for the '<em><b>Result Table All Columns</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_EXPRESSION_BODY__RESULT_TABLE_ALL_COLUMNS = TABLE_EXPRESSION__RESULT_TABLE_ALL_COLUMNS;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Columns</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_EXPRESSION_BODY__VALUE_EXPR_COLUMNS = TABLE_EXPRESSION__VALUE_EXPR_COLUMNS;
+
+	/**
+     * The feature id for the '<em><b>Merge Target Table</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_EXPRESSION_BODY__MERGE_TARGET_TABLE = TABLE_EXPRESSION__MERGE_TARGET_TABLE;
+
+    /**
+     * The feature id for the '<em><b>Row Fetch Limit</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_EXPRESSION_BODY__ROW_FETCH_LIMIT = TABLE_EXPRESSION_FEATURE_COUNT + 0;
+
+    /**
+     * The feature id for the '<em><b>Query Expression</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_EXPRESSION_BODY__QUERY_EXPRESSION = TABLE_EXPRESSION_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_EXPRESSION_BODY__COMBINED_LEFT = TABLE_EXPRESSION_FEATURE_COUNT + 2;
+
+	/**
+     * The feature id for the '<em><b>Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_EXPRESSION_BODY__COMBINED_RIGHT = TABLE_EXPRESSION_FEATURE_COUNT + 3;
+
+	/**
+     * The feature id for the '<em><b>Predicate Exists</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_EXPRESSION_BODY__PREDICATE_EXISTS = TABLE_EXPRESSION_FEATURE_COUNT + 4;
+
+	/**
+     * The feature id for the '<em><b>Update Source Query</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_EXPRESSION_BODY__UPDATE_SOURCE_QUERY = TABLE_EXPRESSION_FEATURE_COUNT + 5;
+
+	/**
+     * The feature id for the '<em><b>With Table Specification</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_EXPRESSION_BODY__WITH_TABLE_SPECIFICATION = TABLE_EXPRESSION_FEATURE_COUNT + 6;
+
+	/**
+     * The feature id for the '<em><b>Query Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_EXPRESSION_BODY__QUERY_NEST = TABLE_EXPRESSION_FEATURE_COUNT + 7;
+
+    /**
+     * The feature id for the '<em><b>Sort Spec List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_EXPRESSION_BODY__SORT_SPEC_LIST = TABLE_EXPRESSION_FEATURE_COUNT + 8;
+
+    /**
+     * The number of structural features of the '<em>Query Expression Body</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_EXPRESSION_BODY_FEATURE_COUNT = TABLE_EXPRESSION_FEATURE_COUNT + 9;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl <em>Query Value Expression</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getQueryValueExpression()
+     * @generated
+     */
+	int QUERY_VALUE_EXPRESSION = 9;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUE_EXPRESSION__EANNOTATIONS = SQL_QUERY_OBJECT__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUE_EXPRESSION__NAME = SQL_QUERY_OBJECT__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUE_EXPRESSION__DEPENDENCIES = SQL_QUERY_OBJECT__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUE_EXPRESSION__DESCRIPTION = SQL_QUERY_OBJECT__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUE_EXPRESSION__LABEL = SQL_QUERY_OBJECT__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUE_EXPRESSION__COMMENTS = SQL_QUERY_OBJECT__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_VALUE_EXPRESSION__EXTENSIONS = SQL_QUERY_OBJECT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUE_EXPRESSION__PRIVILEGES = SQL_QUERY_OBJECT__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Unary Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUE_EXPRESSION__UNARY_OPERATOR = SQL_QUERY_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Data Type</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUE_EXPRESSION__DATA_TYPE = SQL_QUERY_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>Values Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUE_EXPRESSION__VALUES_ROW = SQL_QUERY_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+     * The feature id for the '<em><b>Order By Value Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUE_EXPRESSION__ORDER_BY_VALUE_EXPR = SQL_QUERY_OBJECT_FEATURE_COUNT + 3;
+
+	/**
+     * The feature id for the '<em><b>Result Column</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUE_EXPRESSION__RESULT_COLUMN = SQL_QUERY_OBJECT_FEATURE_COUNT + 4;
+
+	/**
+     * The feature id for the '<em><b>Basic Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUE_EXPRESSION__BASIC_RIGHT = SQL_QUERY_OBJECT_FEATURE_COUNT + 5;
+
+	/**
+     * The feature id for the '<em><b>Basic Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUE_EXPRESSION__BASIC_LEFT = SQL_QUERY_OBJECT_FEATURE_COUNT + 6;
+
+	/**
+     * The feature id for the '<em><b>Like Pattern</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUE_EXPRESSION__LIKE_PATTERN = SQL_QUERY_OBJECT_FEATURE_COUNT + 7;
+
+	/**
+     * The feature id for the '<em><b>Like Matching</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUE_EXPRESSION__LIKE_MATCHING = SQL_QUERY_OBJECT_FEATURE_COUNT + 8;
+
+	/**
+     * The feature id for the '<em><b>Predicate Null</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUE_EXPRESSION__PREDICATE_NULL = SQL_QUERY_OBJECT_FEATURE_COUNT + 9;
+
+	/**
+     * The feature id for the '<em><b>In Value List Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_RIGHT = SQL_QUERY_OBJECT_FEATURE_COUNT + 10;
+
+	/**
+     * The feature id for the '<em><b>In Value List Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_LEFT = SQL_QUERY_OBJECT_FEATURE_COUNT + 11;
+
+	/**
+     * The feature id for the '<em><b>In Value Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUE_EXPRESSION__IN_VALUE_ROW_SELECT_LEFT = SQL_QUERY_OBJECT_FEATURE_COUNT + 12;
+
+	/**
+     * The feature id for the '<em><b>In Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUE_EXPRESSION__IN_VALUE_SELECT_LEFT = SQL_QUERY_OBJECT_FEATURE_COUNT + 13;
+
+	/**
+     * The feature id for the '<em><b>Quantified Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUE_EXPRESSION__QUANTIFIED_ROW_SELECT_LEFT = SQL_QUERY_OBJECT_FEATURE_COUNT + 14;
+
+	/**
+     * The feature id for the '<em><b>Quantified Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUE_EXPRESSION__QUANTIFIED_VALUE_SELECT_LEFT = SQL_QUERY_OBJECT_FEATURE_COUNT + 15;
+
+	/**
+     * The feature id for the '<em><b>Between Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUE_EXPRESSION__BETWEEN_LEFT = SQL_QUERY_OBJECT_FEATURE_COUNT + 16;
+
+	/**
+     * The feature id for the '<em><b>Between Right1</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT1 = SQL_QUERY_OBJECT_FEATURE_COUNT + 17;
+
+	/**
+     * The feature id for the '<em><b>Between Right2</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT2 = SQL_QUERY_OBJECT_FEATURE_COUNT + 18;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Cast</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUE_EXPRESSION__VALUE_EXPR_CAST = SQL_QUERY_OBJECT_FEATURE_COUNT + 19;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUE_EXPRESSION__VALUE_EXPR_FUNCTION = SQL_QUERY_OBJECT_FEATURE_COUNT + 20;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_LEFT = SQL_QUERY_OBJECT_FEATURE_COUNT + 21;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_RIGHT = SQL_QUERY_OBJECT_FEATURE_COUNT + 22;
+
+	/**
+     * The feature id for the '<em><b>Grouping Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUE_EXPRESSION__GROUPING_EXPR = SQL_QUERY_OBJECT_FEATURE_COUNT + 23;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Else</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_ELSE = SQL_QUERY_OBJECT_FEATURE_COUNT + 24;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE = SQL_QUERY_OBJECT_FEATURE_COUNT + 25;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content When</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN = SQL_QUERY_OBJECT_FEATURE_COUNT + 26;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content Result</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT = SQL_QUERY_OBJECT_FEATURE_COUNT + 27;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SEARCH_CONTENT = SQL_QUERY_OBJECT_FEATURE_COUNT + 28;
+
+	/**
+     * The feature id for the '<em><b>Like Escape</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUE_EXPRESSION__LIKE_ESCAPE = SQL_QUERY_OBJECT_FEATURE_COUNT + 29;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Labeled Duration</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUE_EXPRESSION__VALUE_EXPR_LABELED_DURATION = SQL_QUERY_OBJECT_FEATURE_COUNT + 30;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUE_EXPRESSION__NEST = SQL_QUERY_OBJECT_FEATURE_COUNT + 31;
+
+	/**
+     * The feature id for the '<em><b>Update Source Expr List</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUE_EXPRESSION__UPDATE_SOURCE_EXPR_LIST = SQL_QUERY_OBJECT_FEATURE_COUNT + 32;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_VALUE_EXPRESSION__TABLE_FUNCTION = SQL_QUERY_OBJECT_FEATURE_COUNT + 33;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_VALUE_EXPRESSION__VALUE_EXPR_ROW = SQL_QUERY_OBJECT_FEATURE_COUNT + 34;
+
+    /**
+     * The feature id for the '<em><b>Call Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_VALUE_EXPRESSION__CALL_STATEMENT = SQL_QUERY_OBJECT_FEATURE_COUNT + 35;
+
+    /**
+     * The number of structural features of the '<em>Query Value Expression</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUE_EXPRESSION_FEATURE_COUNT = SQL_QUERY_OBJECT_FEATURE_COUNT + 36;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryExpressionRootImpl <em>Query Expression Root</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.QueryExpressionRootImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getQueryExpressionRoot()
+     * @generated
+     */
+	int QUERY_EXPRESSION_ROOT = 10;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_EXPRESSION_ROOT__EANNOTATIONS = SQL_QUERY_OBJECT__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_EXPRESSION_ROOT__NAME = SQL_QUERY_OBJECT__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_EXPRESSION_ROOT__DEPENDENCIES = SQL_QUERY_OBJECT__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_EXPRESSION_ROOT__DESCRIPTION = SQL_QUERY_OBJECT__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_EXPRESSION_ROOT__LABEL = SQL_QUERY_OBJECT__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_EXPRESSION_ROOT__COMMENTS = SQL_QUERY_OBJECT__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_EXPRESSION_ROOT__EXTENSIONS = SQL_QUERY_OBJECT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_EXPRESSION_ROOT__PRIVILEGES = SQL_QUERY_OBJECT__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Insert Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_EXPRESSION_ROOT__INSERT_STATEMENT = SQL_QUERY_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Select Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_EXPRESSION_ROOT__SELECT_STATEMENT = SQL_QUERY_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>With Clause</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_EXPRESSION_ROOT__WITH_CLAUSE = SQL_QUERY_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+     * The feature id for the '<em><b>Query</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_EXPRESSION_ROOT__QUERY = SQL_QUERY_OBJECT_FEATURE_COUNT + 3;
+
+	/**
+     * The feature id for the '<em><b>In Value Row Select Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_EXPRESSION_ROOT__IN_VALUE_ROW_SELECT_RIGHT = SQL_QUERY_OBJECT_FEATURE_COUNT + 4;
+
+	/**
+     * The feature id for the '<em><b>In Value Select Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_EXPRESSION_ROOT__IN_VALUE_SELECT_RIGHT = SQL_QUERY_OBJECT_FEATURE_COUNT + 5;
+
+	/**
+     * The feature id for the '<em><b>Quantified Row Select Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_EXPRESSION_ROOT__QUANTIFIED_ROW_SELECT_RIGHT = SQL_QUERY_OBJECT_FEATURE_COUNT + 6;
+
+	/**
+     * The feature id for the '<em><b>Quantified Value Select Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_EXPRESSION_ROOT__QUANTIFIED_VALUE_SELECT_RIGHT = SQL_QUERY_OBJECT_FEATURE_COUNT + 7;
+
+	/**
+     * The feature id for the '<em><b>Val Expr Scalar Select</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_EXPRESSION_ROOT__VAL_EXPR_SCALAR_SELECT = SQL_QUERY_OBJECT_FEATURE_COUNT + 8;
+
+    /**
+     * The number of structural features of the '<em>Query Expression Root</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_EXPRESSION_ROOT_FEATURE_COUNT = SQL_QUERY_OBJECT_FEATURE_COUNT + 9;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ValuesRowImpl <em>Values Row</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.ValuesRowImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getValuesRow()
+     * @generated
+     */
+	int VALUES_ROW = 11;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUES_ROW__EANNOTATIONS = SQL_QUERY_OBJECT__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUES_ROW__NAME = SQL_QUERY_OBJECT__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUES_ROW__DEPENDENCIES = SQL_QUERY_OBJECT__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUES_ROW__DESCRIPTION = SQL_QUERY_OBJECT__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUES_ROW__LABEL = SQL_QUERY_OBJECT__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUES_ROW__COMMENTS = SQL_QUERY_OBJECT__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUES_ROW__EXTENSIONS = SQL_QUERY_OBJECT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUES_ROW__PRIVILEGES = SQL_QUERY_OBJECT__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Insert Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUES_ROW__INSERT_STATEMENT = SQL_QUERY_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Expr List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUES_ROW__EXPR_LIST = SQL_QUERY_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>Query Values</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUES_ROW__QUERY_VALUES = SQL_QUERY_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+     * The number of structural features of the '<em>Values Row</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUES_ROW_FEATURE_COUNT = SQL_QUERY_OBJECT_FEATURE_COUNT + 3;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryValuesImpl <em>Query Values</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.QueryValuesImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getQueryValues()
+     * @generated
+     */
+	int QUERY_VALUES = 12;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUES__EANNOTATIONS = QUERY_EXPRESSION_BODY__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUES__NAME = QUERY_EXPRESSION_BODY__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUES__DEPENDENCIES = QUERY_EXPRESSION_BODY__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUES__DESCRIPTION = QUERY_EXPRESSION_BODY__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUES__LABEL = QUERY_EXPRESSION_BODY__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUES__COMMENTS = QUERY_EXPRESSION_BODY__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_VALUES__EXTENSIONS = QUERY_EXPRESSION_BODY__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUES__PRIVILEGES = QUERY_EXPRESSION_BODY__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Table Joined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUES__TABLE_JOINED_RIGHT = QUERY_EXPRESSION_BODY__TABLE_JOINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Table Joined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUES__TABLE_JOINED_LEFT = QUERY_EXPRESSION_BODY__TABLE_JOINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Query Select</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUES__QUERY_SELECT = QUERY_EXPRESSION_BODY__QUERY_SELECT;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUES__NEST = QUERY_EXPRESSION_BODY__NEST;
+
+	/**
+     * The feature id for the '<em><b>Merge Source Table</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_VALUES__MERGE_SOURCE_TABLE = QUERY_EXPRESSION_BODY__MERGE_SOURCE_TABLE;
+
+    /**
+     * The feature id for the '<em><b>Column List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUES__COLUMN_LIST = QUERY_EXPRESSION_BODY__COLUMN_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Correlation</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUES__TABLE_CORRELATION = QUERY_EXPRESSION_BODY__TABLE_CORRELATION;
+
+	/**
+     * The feature id for the '<em><b>Result Table All Columns</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUES__RESULT_TABLE_ALL_COLUMNS = QUERY_EXPRESSION_BODY__RESULT_TABLE_ALL_COLUMNS;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Columns</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUES__VALUE_EXPR_COLUMNS = QUERY_EXPRESSION_BODY__VALUE_EXPR_COLUMNS;
+
+	/**
+     * The feature id for the '<em><b>Merge Target Table</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_VALUES__MERGE_TARGET_TABLE = QUERY_EXPRESSION_BODY__MERGE_TARGET_TABLE;
+
+    /**
+     * The feature id for the '<em><b>Row Fetch Limit</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_VALUES__ROW_FETCH_LIMIT = QUERY_EXPRESSION_BODY__ROW_FETCH_LIMIT;
+
+    /**
+     * The feature id for the '<em><b>Query Expression</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUES__QUERY_EXPRESSION = QUERY_EXPRESSION_BODY__QUERY_EXPRESSION;
+
+	/**
+     * The feature id for the '<em><b>Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUES__COMBINED_LEFT = QUERY_EXPRESSION_BODY__COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUES__COMBINED_RIGHT = QUERY_EXPRESSION_BODY__COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Predicate Exists</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUES__PREDICATE_EXISTS = QUERY_EXPRESSION_BODY__PREDICATE_EXISTS;
+
+	/**
+     * The feature id for the '<em><b>Update Source Query</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUES__UPDATE_SOURCE_QUERY = QUERY_EXPRESSION_BODY__UPDATE_SOURCE_QUERY;
+
+	/**
+     * The feature id for the '<em><b>With Table Specification</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUES__WITH_TABLE_SPECIFICATION = QUERY_EXPRESSION_BODY__WITH_TABLE_SPECIFICATION;
+
+	/**
+     * The feature id for the '<em><b>Query Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_VALUES__QUERY_NEST = QUERY_EXPRESSION_BODY__QUERY_NEST;
+
+    /**
+     * The feature id for the '<em><b>Sort Spec List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_VALUES__SORT_SPEC_LIST = QUERY_EXPRESSION_BODY__SORT_SPEC_LIST;
+
+    /**
+     * The feature id for the '<em><b>Values Row List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUES__VALUES_ROW_LIST = QUERY_EXPRESSION_BODY_FEATURE_COUNT + 0;
+
+	/**
+     * The number of structural features of the '<em>Query Values</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_VALUES_FEATURE_COUNT = QUERY_EXPRESSION_BODY_FEATURE_COUNT + 1;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.TableJoinedImpl <em>Table Joined</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.TableJoinedImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getTableJoined()
+     * @generated
+     */
+	int TABLE_JOINED = 15;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_JOINED__EANNOTATIONS = TABLE_REFERENCE__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_JOINED__NAME = TABLE_REFERENCE__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_JOINED__DEPENDENCIES = TABLE_REFERENCE__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_JOINED__DESCRIPTION = TABLE_REFERENCE__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_JOINED__LABEL = TABLE_REFERENCE__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_JOINED__COMMENTS = TABLE_REFERENCE__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int TABLE_JOINED__EXTENSIONS = TABLE_REFERENCE__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_JOINED__PRIVILEGES = TABLE_REFERENCE__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Table Joined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_JOINED__TABLE_JOINED_RIGHT = TABLE_REFERENCE__TABLE_JOINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Table Joined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_JOINED__TABLE_JOINED_LEFT = TABLE_REFERENCE__TABLE_JOINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Query Select</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_JOINED__QUERY_SELECT = TABLE_REFERENCE__QUERY_SELECT;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_JOINED__NEST = TABLE_REFERENCE__NEST;
+
+	/**
+     * The feature id for the '<em><b>Merge Source Table</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int TABLE_JOINED__MERGE_SOURCE_TABLE = TABLE_REFERENCE__MERGE_SOURCE_TABLE;
+
+    /**
+     * The feature id for the '<em><b>Join Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_JOINED__JOIN_OPERATOR = TABLE_REFERENCE_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Join Condition</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_JOINED__JOIN_CONDITION = TABLE_REFERENCE_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>Table Ref Right</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_JOINED__TABLE_REF_RIGHT = TABLE_REFERENCE_FEATURE_COUNT + 2;
+
+	/**
+     * The feature id for the '<em><b>Table Ref Left</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_JOINED__TABLE_REF_LEFT = TABLE_REFERENCE_FEATURE_COUNT + 3;
+
+	/**
+     * The number of structural features of the '<em>Table Joined</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_JOINED_FEATURE_COUNT = TABLE_REFERENCE_FEATURE_COUNT + 4;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.WithTableSpecificationImpl <em>With Table Specification</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.WithTableSpecificationImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getWithTableSpecification()
+     * @generated
+     */
+	int WITH_TABLE_SPECIFICATION = 16;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int WITH_TABLE_SPECIFICATION__EANNOTATIONS = SQL_QUERY_OBJECT__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int WITH_TABLE_SPECIFICATION__NAME = SQL_QUERY_OBJECT__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int WITH_TABLE_SPECIFICATION__DEPENDENCIES = SQL_QUERY_OBJECT__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int WITH_TABLE_SPECIFICATION__DESCRIPTION = SQL_QUERY_OBJECT__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int WITH_TABLE_SPECIFICATION__LABEL = SQL_QUERY_OBJECT__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int WITH_TABLE_SPECIFICATION__COMMENTS = SQL_QUERY_OBJECT__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int WITH_TABLE_SPECIFICATION__EXTENSIONS = SQL_QUERY_OBJECT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int WITH_TABLE_SPECIFICATION__PRIVILEGES = SQL_QUERY_OBJECT__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Query Expression Root</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int WITH_TABLE_SPECIFICATION__QUERY_EXPRESSION_ROOT = SQL_QUERY_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>With Table Query Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int WITH_TABLE_SPECIFICATION__WITH_TABLE_QUERY_EXPR = SQL_QUERY_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>With Table References</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int WITH_TABLE_SPECIFICATION__WITH_TABLE_REFERENCES = SQL_QUERY_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+     * The feature id for the '<em><b>Column Name List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int WITH_TABLE_SPECIFICATION__COLUMN_NAME_LIST = SQL_QUERY_OBJECT_FEATURE_COUNT + 3;
+
+	/**
+     * The number of structural features of the '<em>With Table Specification</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int WITH_TABLE_SPECIFICATION_FEATURE_COUNT = SQL_QUERY_OBJECT_FEATURE_COUNT + 4;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateImpl <em>Predicate</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.PredicateImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getPredicate()
+     * @generated
+     */
+	int PREDICATE = 17;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE__EANNOTATIONS = QUERY_SEARCH_CONDITION__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE__NAME = QUERY_SEARCH_CONDITION__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE__DEPENDENCIES = QUERY_SEARCH_CONDITION__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE__DESCRIPTION = QUERY_SEARCH_CONDITION__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE__LABEL = QUERY_SEARCH_CONDITION__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE__COMMENTS = QUERY_SEARCH_CONDITION__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int PREDICATE__EXTENSIONS = QUERY_SEARCH_CONDITION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE__PRIVILEGES = QUERY_SEARCH_CONDITION__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Negated Condition</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE__NEGATED_CONDITION = QUERY_SEARCH_CONDITION__NEGATED_CONDITION;
+
+	/**
+     * The feature id for the '<em><b>Update Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE__UPDATE_STATEMENT = QUERY_SEARCH_CONDITION__UPDATE_STATEMENT;
+
+	/**
+     * The feature id for the '<em><b>Delete Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE__DELETE_STATEMENT = QUERY_SEARCH_CONDITION__DELETE_STATEMENT;
+
+	/**
+     * The feature id for the '<em><b>Table Joined</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE__TABLE_JOINED = QUERY_SEARCH_CONDITION__TABLE_JOINED;
+
+	/**
+     * The feature id for the '<em><b>Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE__COMBINED_LEFT = QUERY_SEARCH_CONDITION__COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE__COMBINED_RIGHT = QUERY_SEARCH_CONDITION__COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Query Select Having</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE__QUERY_SELECT_HAVING = QUERY_SEARCH_CONDITION__QUERY_SELECT_HAVING;
+
+	/**
+     * The feature id for the '<em><b>Query Select Where</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE__QUERY_SELECT_WHERE = QUERY_SEARCH_CONDITION__QUERY_SELECT_WHERE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE__VALUE_EXPR_CASE_SEARCH_CONTENT = QUERY_SEARCH_CONDITION__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE__NEST = QUERY_SEARCH_CONDITION__NEST;
+
+	/**
+     * The feature id for the '<em><b>Merge On Condition</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int PREDICATE__MERGE_ON_CONDITION = QUERY_SEARCH_CONDITION__MERGE_ON_CONDITION;
+
+    /**
+     * The feature id for the '<em><b>Negated Predicate</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE__NEGATED_PREDICATE = QUERY_SEARCH_CONDITION_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Has Selectivity</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE__HAS_SELECTIVITY = QUERY_SEARCH_CONDITION_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>Selectivity Value</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE__SELECTIVITY_VALUE = QUERY_SEARCH_CONDITION_FEATURE_COUNT + 2;
+
+	/**
+     * The number of structural features of the '<em>Predicate</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_FEATURE_COUNT = QUERY_SEARCH_CONDITION_FEATURE_COUNT + 3;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.SearchConditionCombinedImpl <em>Search Condition Combined</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SearchConditionCombinedImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getSearchConditionCombined()
+     * @generated
+     */
+	int SEARCH_CONDITION_COMBINED = 18;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SEARCH_CONDITION_COMBINED__EANNOTATIONS = QUERY_SEARCH_CONDITION__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SEARCH_CONDITION_COMBINED__NAME = QUERY_SEARCH_CONDITION__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SEARCH_CONDITION_COMBINED__DEPENDENCIES = QUERY_SEARCH_CONDITION__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SEARCH_CONDITION_COMBINED__DESCRIPTION = QUERY_SEARCH_CONDITION__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SEARCH_CONDITION_COMBINED__LABEL = QUERY_SEARCH_CONDITION__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SEARCH_CONDITION_COMBINED__COMMENTS = QUERY_SEARCH_CONDITION__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int SEARCH_CONDITION_COMBINED__EXTENSIONS = QUERY_SEARCH_CONDITION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SEARCH_CONDITION_COMBINED__PRIVILEGES = QUERY_SEARCH_CONDITION__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Negated Condition</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SEARCH_CONDITION_COMBINED__NEGATED_CONDITION = QUERY_SEARCH_CONDITION__NEGATED_CONDITION;
+
+	/**
+     * The feature id for the '<em><b>Update Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SEARCH_CONDITION_COMBINED__UPDATE_STATEMENT = QUERY_SEARCH_CONDITION__UPDATE_STATEMENT;
+
+	/**
+     * The feature id for the '<em><b>Delete Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SEARCH_CONDITION_COMBINED__DELETE_STATEMENT = QUERY_SEARCH_CONDITION__DELETE_STATEMENT;
+
+	/**
+     * The feature id for the '<em><b>Table Joined</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SEARCH_CONDITION_COMBINED__TABLE_JOINED = QUERY_SEARCH_CONDITION__TABLE_JOINED;
+
+	/**
+     * The feature id for the '<em><b>Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SEARCH_CONDITION_COMBINED__COMBINED_LEFT = QUERY_SEARCH_CONDITION__COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SEARCH_CONDITION_COMBINED__COMBINED_RIGHT = QUERY_SEARCH_CONDITION__COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Query Select Having</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SEARCH_CONDITION_COMBINED__QUERY_SELECT_HAVING = QUERY_SEARCH_CONDITION__QUERY_SELECT_HAVING;
+
+	/**
+     * The feature id for the '<em><b>Query Select Where</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SEARCH_CONDITION_COMBINED__QUERY_SELECT_WHERE = QUERY_SEARCH_CONDITION__QUERY_SELECT_WHERE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SEARCH_CONDITION_COMBINED__VALUE_EXPR_CASE_SEARCH_CONTENT = QUERY_SEARCH_CONDITION__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SEARCH_CONDITION_COMBINED__NEST = QUERY_SEARCH_CONDITION__NEST;
+
+	/**
+     * The feature id for the '<em><b>Merge On Condition</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int SEARCH_CONDITION_COMBINED__MERGE_ON_CONDITION = QUERY_SEARCH_CONDITION__MERGE_ON_CONDITION;
+
+    /**
+     * The feature id for the '<em><b>Combined Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SEARCH_CONDITION_COMBINED__COMBINED_OPERATOR = QUERY_SEARCH_CONDITION_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Left Condition</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SEARCH_CONDITION_COMBINED__LEFT_CONDITION = QUERY_SEARCH_CONDITION_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>Right Condition</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SEARCH_CONDITION_COMBINED__RIGHT_CONDITION = QUERY_SEARCH_CONDITION_FEATURE_COUNT + 2;
+
+	/**
+     * The number of structural features of the '<em>Search Condition Combined</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SEARCH_CONDITION_COMBINED_FEATURE_COUNT = QUERY_SEARCH_CONDITION_FEATURE_COUNT + 3;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.OrderBySpecificationImpl <em>Order By Specification</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.OrderBySpecificationImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getOrderBySpecification()
+     * @generated
+     */
+	int ORDER_BY_SPECIFICATION = 74;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_SPECIFICATION__EANNOTATIONS = SQL_QUERY_OBJECT__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_SPECIFICATION__NAME = SQL_QUERY_OBJECT__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_SPECIFICATION__DEPENDENCIES = SQL_QUERY_OBJECT__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_SPECIFICATION__DESCRIPTION = SQL_QUERY_OBJECT__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_SPECIFICATION__LABEL = SQL_QUERY_OBJECT__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_SPECIFICATION__COMMENTS = SQL_QUERY_OBJECT__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int ORDER_BY_SPECIFICATION__EXTENSIONS = SQL_QUERY_OBJECT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_SPECIFICATION__PRIVILEGES = SQL_QUERY_OBJECT__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Descending</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_SPECIFICATION__DESCENDING = SQL_QUERY_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Ordering Spec Option</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_SPECIFICATION__ORDERING_SPEC_OPTION = SQL_QUERY_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>Null Ordering Option</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_SPECIFICATION__NULL_ORDERING_OPTION = SQL_QUERY_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+     * The feature id for the '<em><b>Select Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_SPECIFICATION__SELECT_STATEMENT = SQL_QUERY_OBJECT_FEATURE_COUNT + 3;
+
+	/**
+     * The feature id for the '<em><b>Query</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int ORDER_BY_SPECIFICATION__QUERY = SQL_QUERY_OBJECT_FEATURE_COUNT + 4;
+
+    /**
+     * The number of structural features of the '<em>Order By Specification</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_SPECIFICATION_FEATURE_COUNT = SQL_QUERY_OBJECT_FEATURE_COUNT + 5;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.OrderByValueExpressionImpl <em>Order By Value Expression</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.OrderByValueExpressionImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getOrderByValueExpression()
+     * @generated
+     */
+	int ORDER_BY_VALUE_EXPRESSION = 19;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_VALUE_EXPRESSION__EANNOTATIONS = ORDER_BY_SPECIFICATION__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_VALUE_EXPRESSION__NAME = ORDER_BY_SPECIFICATION__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_VALUE_EXPRESSION__DEPENDENCIES = ORDER_BY_SPECIFICATION__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_VALUE_EXPRESSION__DESCRIPTION = ORDER_BY_SPECIFICATION__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_VALUE_EXPRESSION__LABEL = ORDER_BY_SPECIFICATION__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_VALUE_EXPRESSION__COMMENTS = ORDER_BY_SPECIFICATION__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int ORDER_BY_VALUE_EXPRESSION__EXTENSIONS = ORDER_BY_SPECIFICATION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_VALUE_EXPRESSION__PRIVILEGES = ORDER_BY_SPECIFICATION__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Descending</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_VALUE_EXPRESSION__DESCENDING = ORDER_BY_SPECIFICATION__DESCENDING;
+
+	/**
+     * The feature id for the '<em><b>Ordering Spec Option</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_VALUE_EXPRESSION__ORDERING_SPEC_OPTION = ORDER_BY_SPECIFICATION__ORDERING_SPEC_OPTION;
+
+	/**
+     * The feature id for the '<em><b>Null Ordering Option</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_VALUE_EXPRESSION__NULL_ORDERING_OPTION = ORDER_BY_SPECIFICATION__NULL_ORDERING_OPTION;
+
+	/**
+     * The feature id for the '<em><b>Select Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_VALUE_EXPRESSION__SELECT_STATEMENT = ORDER_BY_SPECIFICATION__SELECT_STATEMENT;
+
+	/**
+     * The feature id for the '<em><b>Query</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int ORDER_BY_VALUE_EXPRESSION__QUERY = ORDER_BY_SPECIFICATION__QUERY;
+
+    /**
+     * The feature id for the '<em><b>Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_VALUE_EXPRESSION__VALUE_EXPR = ORDER_BY_SPECIFICATION_FEATURE_COUNT + 0;
+
+	/**
+     * The number of structural features of the '<em>Order By Value Expression</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_VALUE_EXPRESSION_FEATURE_COUNT = ORDER_BY_SPECIFICATION_FEATURE_COUNT + 1;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryCombinedImpl <em>Query Combined</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.QueryCombinedImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getQueryCombined()
+     * @generated
+     */
+	int QUERY_COMBINED = 20;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_COMBINED__EANNOTATIONS = QUERY_EXPRESSION_BODY__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_COMBINED__NAME = QUERY_EXPRESSION_BODY__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_COMBINED__DEPENDENCIES = QUERY_EXPRESSION_BODY__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_COMBINED__DESCRIPTION = QUERY_EXPRESSION_BODY__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_COMBINED__LABEL = QUERY_EXPRESSION_BODY__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_COMBINED__COMMENTS = QUERY_EXPRESSION_BODY__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_COMBINED__EXTENSIONS = QUERY_EXPRESSION_BODY__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_COMBINED__PRIVILEGES = QUERY_EXPRESSION_BODY__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Table Joined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_COMBINED__TABLE_JOINED_RIGHT = QUERY_EXPRESSION_BODY__TABLE_JOINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Table Joined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_COMBINED__TABLE_JOINED_LEFT = QUERY_EXPRESSION_BODY__TABLE_JOINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Query Select</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_COMBINED__QUERY_SELECT = QUERY_EXPRESSION_BODY__QUERY_SELECT;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_COMBINED__NEST = QUERY_EXPRESSION_BODY__NEST;
+
+	/**
+     * The feature id for the '<em><b>Merge Source Table</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_COMBINED__MERGE_SOURCE_TABLE = QUERY_EXPRESSION_BODY__MERGE_SOURCE_TABLE;
+
+    /**
+     * The feature id for the '<em><b>Column List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_COMBINED__COLUMN_LIST = QUERY_EXPRESSION_BODY__COLUMN_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Correlation</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_COMBINED__TABLE_CORRELATION = QUERY_EXPRESSION_BODY__TABLE_CORRELATION;
+
+	/**
+     * The feature id for the '<em><b>Result Table All Columns</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_COMBINED__RESULT_TABLE_ALL_COLUMNS = QUERY_EXPRESSION_BODY__RESULT_TABLE_ALL_COLUMNS;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Columns</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_COMBINED__VALUE_EXPR_COLUMNS = QUERY_EXPRESSION_BODY__VALUE_EXPR_COLUMNS;
+
+	/**
+     * The feature id for the '<em><b>Merge Target Table</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_COMBINED__MERGE_TARGET_TABLE = QUERY_EXPRESSION_BODY__MERGE_TARGET_TABLE;
+
+    /**
+     * The feature id for the '<em><b>Row Fetch Limit</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_COMBINED__ROW_FETCH_LIMIT = QUERY_EXPRESSION_BODY__ROW_FETCH_LIMIT;
+
+    /**
+     * The feature id for the '<em><b>Query Expression</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_COMBINED__QUERY_EXPRESSION = QUERY_EXPRESSION_BODY__QUERY_EXPRESSION;
+
+	/**
+     * The feature id for the '<em><b>Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_COMBINED__COMBINED_LEFT = QUERY_EXPRESSION_BODY__COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_COMBINED__COMBINED_RIGHT = QUERY_EXPRESSION_BODY__COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Predicate Exists</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_COMBINED__PREDICATE_EXISTS = QUERY_EXPRESSION_BODY__PREDICATE_EXISTS;
+
+	/**
+     * The feature id for the '<em><b>Update Source Query</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_COMBINED__UPDATE_SOURCE_QUERY = QUERY_EXPRESSION_BODY__UPDATE_SOURCE_QUERY;
+
+	/**
+     * The feature id for the '<em><b>With Table Specification</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_COMBINED__WITH_TABLE_SPECIFICATION = QUERY_EXPRESSION_BODY__WITH_TABLE_SPECIFICATION;
+
+	/**
+     * The feature id for the '<em><b>Query Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_COMBINED__QUERY_NEST = QUERY_EXPRESSION_BODY__QUERY_NEST;
+
+    /**
+     * The feature id for the '<em><b>Sort Spec List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_COMBINED__SORT_SPEC_LIST = QUERY_EXPRESSION_BODY__SORT_SPEC_LIST;
+
+    /**
+     * The feature id for the '<em><b>Combined Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_COMBINED__COMBINED_OPERATOR = QUERY_EXPRESSION_BODY_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Left Query</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_COMBINED__LEFT_QUERY = QUERY_EXPRESSION_BODY_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>Right Query</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_COMBINED__RIGHT_QUERY = QUERY_EXPRESSION_BODY_FEATURE_COUNT + 2;
+
+	/**
+     * The number of structural features of the '<em>Query Combined</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_COMBINED_FEATURE_COUNT = QUERY_EXPRESSION_BODY_FEATURE_COUNT + 3;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.QuerySelectImpl <em>Query Select</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.QuerySelectImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getQuerySelect()
+     * @generated
+     */
+	int QUERY_SELECT = 21;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SELECT__EANNOTATIONS = QUERY_EXPRESSION_BODY__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SELECT__NAME = QUERY_EXPRESSION_BODY__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SELECT__DEPENDENCIES = QUERY_EXPRESSION_BODY__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SELECT__DESCRIPTION = QUERY_EXPRESSION_BODY__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SELECT__LABEL = QUERY_EXPRESSION_BODY__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SELECT__COMMENTS = QUERY_EXPRESSION_BODY__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_SELECT__EXTENSIONS = QUERY_EXPRESSION_BODY__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SELECT__PRIVILEGES = QUERY_EXPRESSION_BODY__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Table Joined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SELECT__TABLE_JOINED_RIGHT = QUERY_EXPRESSION_BODY__TABLE_JOINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Table Joined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SELECT__TABLE_JOINED_LEFT = QUERY_EXPRESSION_BODY__TABLE_JOINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Query Select</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SELECT__QUERY_SELECT = QUERY_EXPRESSION_BODY__QUERY_SELECT;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SELECT__NEST = QUERY_EXPRESSION_BODY__NEST;
+
+	/**
+     * The feature id for the '<em><b>Merge Source Table</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_SELECT__MERGE_SOURCE_TABLE = QUERY_EXPRESSION_BODY__MERGE_SOURCE_TABLE;
+
+    /**
+     * The feature id for the '<em><b>Column List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SELECT__COLUMN_LIST = QUERY_EXPRESSION_BODY__COLUMN_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Correlation</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SELECT__TABLE_CORRELATION = QUERY_EXPRESSION_BODY__TABLE_CORRELATION;
+
+	/**
+     * The feature id for the '<em><b>Result Table All Columns</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SELECT__RESULT_TABLE_ALL_COLUMNS = QUERY_EXPRESSION_BODY__RESULT_TABLE_ALL_COLUMNS;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Columns</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SELECT__VALUE_EXPR_COLUMNS = QUERY_EXPRESSION_BODY__VALUE_EXPR_COLUMNS;
+
+	/**
+     * The feature id for the '<em><b>Merge Target Table</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_SELECT__MERGE_TARGET_TABLE = QUERY_EXPRESSION_BODY__MERGE_TARGET_TABLE;
+
+    /**
+     * The feature id for the '<em><b>Row Fetch Limit</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_SELECT__ROW_FETCH_LIMIT = QUERY_EXPRESSION_BODY__ROW_FETCH_LIMIT;
+
+    /**
+     * The feature id for the '<em><b>Query Expression</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SELECT__QUERY_EXPRESSION = QUERY_EXPRESSION_BODY__QUERY_EXPRESSION;
+
+	/**
+     * The feature id for the '<em><b>Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SELECT__COMBINED_LEFT = QUERY_EXPRESSION_BODY__COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SELECT__COMBINED_RIGHT = QUERY_EXPRESSION_BODY__COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Predicate Exists</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SELECT__PREDICATE_EXISTS = QUERY_EXPRESSION_BODY__PREDICATE_EXISTS;
+
+	/**
+     * The feature id for the '<em><b>Update Source Query</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SELECT__UPDATE_SOURCE_QUERY = QUERY_EXPRESSION_BODY__UPDATE_SOURCE_QUERY;
+
+	/**
+     * The feature id for the '<em><b>With Table Specification</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SELECT__WITH_TABLE_SPECIFICATION = QUERY_EXPRESSION_BODY__WITH_TABLE_SPECIFICATION;
+
+	/**
+     * The feature id for the '<em><b>Query Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_SELECT__QUERY_NEST = QUERY_EXPRESSION_BODY__QUERY_NEST;
+
+    /**
+     * The feature id for the '<em><b>Sort Spec List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_SELECT__SORT_SPEC_LIST = QUERY_EXPRESSION_BODY__SORT_SPEC_LIST;
+
+    /**
+     * The feature id for the '<em><b>Distinct</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SELECT__DISTINCT = QUERY_EXPRESSION_BODY_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Having Clause</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SELECT__HAVING_CLAUSE = QUERY_EXPRESSION_BODY_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>Where Clause</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SELECT__WHERE_CLAUSE = QUERY_EXPRESSION_BODY_FEATURE_COUNT + 2;
+
+	/**
+     * The feature id for the '<em><b>Group By Clause</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SELECT__GROUP_BY_CLAUSE = QUERY_EXPRESSION_BODY_FEATURE_COUNT + 3;
+
+	/**
+     * The feature id for the '<em><b>Select Clause</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SELECT__SELECT_CLAUSE = QUERY_EXPRESSION_BODY_FEATURE_COUNT + 4;
+
+	/**
+     * The feature id for the '<em><b>From Clause</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SELECT__FROM_CLAUSE = QUERY_EXPRESSION_BODY_FEATURE_COUNT + 5;
+
+	/**
+     * The feature id for the '<em><b>Into Clause</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SELECT__INTO_CLAUSE = QUERY_EXPRESSION_BODY_FEATURE_COUNT + 6;
+
+	/**
+     * The number of structural features of the '<em>Query Select</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_SELECT_FEATURE_COUNT = QUERY_EXPRESSION_BODY_FEATURE_COUNT + 7;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.GroupingSpecificationImpl <em>Grouping Specification</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.GroupingSpecificationImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getGroupingSpecification()
+     * @generated
+     */
+	int GROUPING_SPECIFICATION = 22;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SPECIFICATION__EANNOTATIONS = SQL_QUERY_OBJECT__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SPECIFICATION__NAME = SQL_QUERY_OBJECT__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SPECIFICATION__DEPENDENCIES = SQL_QUERY_OBJECT__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SPECIFICATION__DESCRIPTION = SQL_QUERY_OBJECT__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SPECIFICATION__LABEL = SQL_QUERY_OBJECT__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SPECIFICATION__COMMENTS = SQL_QUERY_OBJECT__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int GROUPING_SPECIFICATION__EXTENSIONS = SQL_QUERY_OBJECT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SPECIFICATION__PRIVILEGES = SQL_QUERY_OBJECT__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Query Select</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SPECIFICATION__QUERY_SELECT = SQL_QUERY_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+     * The number of structural features of the '<em>Grouping Specification</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SPECIFICATION_FEATURE_COUNT = SQL_QUERY_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryResultSpecificationImpl <em>Query Result Specification</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.QueryResultSpecificationImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getQueryResultSpecification()
+     * @generated
+     */
+	int QUERY_RESULT_SPECIFICATION = 23;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_RESULT_SPECIFICATION__EANNOTATIONS = SQL_QUERY_OBJECT__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_RESULT_SPECIFICATION__NAME = SQL_QUERY_OBJECT__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_RESULT_SPECIFICATION__DEPENDENCIES = SQL_QUERY_OBJECT__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_RESULT_SPECIFICATION__DESCRIPTION = SQL_QUERY_OBJECT__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_RESULT_SPECIFICATION__LABEL = SQL_QUERY_OBJECT__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_RESULT_SPECIFICATION__COMMENTS = SQL_QUERY_OBJECT__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_RESULT_SPECIFICATION__EXTENSIONS = SQL_QUERY_OBJECT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_RESULT_SPECIFICATION__PRIVILEGES = SQL_QUERY_OBJECT__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Query Select</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_RESULT_SPECIFICATION__QUERY_SELECT = SQL_QUERY_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+     * The number of structural features of the '<em>Query Result Specification</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_RESULT_SPECIFICATION_FEATURE_COUNT = SQL_QUERY_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ResultTableAllColumnsImpl <em>Result Table All Columns</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.ResultTableAllColumnsImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getResultTableAllColumns()
+     * @generated
+     */
+	int RESULT_TABLE_ALL_COLUMNS = 24;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int RESULT_TABLE_ALL_COLUMNS__EANNOTATIONS = QUERY_RESULT_SPECIFICATION__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int RESULT_TABLE_ALL_COLUMNS__NAME = QUERY_RESULT_SPECIFICATION__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int RESULT_TABLE_ALL_COLUMNS__DEPENDENCIES = QUERY_RESULT_SPECIFICATION__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int RESULT_TABLE_ALL_COLUMNS__DESCRIPTION = QUERY_RESULT_SPECIFICATION__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int RESULT_TABLE_ALL_COLUMNS__LABEL = QUERY_RESULT_SPECIFICATION__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int RESULT_TABLE_ALL_COLUMNS__COMMENTS = QUERY_RESULT_SPECIFICATION__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int RESULT_TABLE_ALL_COLUMNS__EXTENSIONS = QUERY_RESULT_SPECIFICATION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int RESULT_TABLE_ALL_COLUMNS__PRIVILEGES = QUERY_RESULT_SPECIFICATION__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Query Select</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int RESULT_TABLE_ALL_COLUMNS__QUERY_SELECT = QUERY_RESULT_SPECIFICATION__QUERY_SELECT;
+
+	/**
+     * The feature id for the '<em><b>Table Expr</b></em>' reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int RESULT_TABLE_ALL_COLUMNS__TABLE_EXPR = QUERY_RESULT_SPECIFICATION_FEATURE_COUNT + 0;
+
+	/**
+     * The number of structural features of the '<em>Result Table All Columns</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int RESULT_TABLE_ALL_COLUMNS_FEATURE_COUNT = QUERY_RESULT_SPECIFICATION_FEATURE_COUNT + 1;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ResultColumnImpl <em>Result Column</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.ResultColumnImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getResultColumn()
+     * @generated
+     */
+	int RESULT_COLUMN = 25;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int RESULT_COLUMN__EANNOTATIONS = QUERY_RESULT_SPECIFICATION__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int RESULT_COLUMN__NAME = QUERY_RESULT_SPECIFICATION__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int RESULT_COLUMN__DEPENDENCIES = QUERY_RESULT_SPECIFICATION__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int RESULT_COLUMN__DESCRIPTION = QUERY_RESULT_SPECIFICATION__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int RESULT_COLUMN__LABEL = QUERY_RESULT_SPECIFICATION__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int RESULT_COLUMN__COMMENTS = QUERY_RESULT_SPECIFICATION__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int RESULT_COLUMN__EXTENSIONS = QUERY_RESULT_SPECIFICATION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int RESULT_COLUMN__PRIVILEGES = QUERY_RESULT_SPECIFICATION__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Query Select</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int RESULT_COLUMN__QUERY_SELECT = QUERY_RESULT_SPECIFICATION__QUERY_SELECT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int RESULT_COLUMN__VALUE_EXPR = QUERY_RESULT_SPECIFICATION_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Order By Result Col</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int RESULT_COLUMN__ORDER_BY_RESULT_COL = QUERY_RESULT_SPECIFICATION_FEATURE_COUNT + 1;
+
+	/**
+     * The number of structural features of the '<em>Result Column</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int RESULT_COLUMN_FEATURE_COUNT = QUERY_RESULT_SPECIFICATION_FEATURE_COUNT + 2;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateBasicImpl <em>Predicate Basic</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.PredicateBasicImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getPredicateBasic()
+     * @generated
+     */
+	int PREDICATE_BASIC = 26;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BASIC__EANNOTATIONS = PREDICATE__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BASIC__NAME = PREDICATE__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BASIC__DEPENDENCIES = PREDICATE__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BASIC__DESCRIPTION = PREDICATE__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BASIC__LABEL = PREDICATE__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BASIC__COMMENTS = PREDICATE__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int PREDICATE_BASIC__EXTENSIONS = PREDICATE__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BASIC__PRIVILEGES = PREDICATE__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Negated Condition</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BASIC__NEGATED_CONDITION = PREDICATE__NEGATED_CONDITION;
+
+	/**
+     * The feature id for the '<em><b>Update Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BASIC__UPDATE_STATEMENT = PREDICATE__UPDATE_STATEMENT;
+
+	/**
+     * The feature id for the '<em><b>Delete Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BASIC__DELETE_STATEMENT = PREDICATE__DELETE_STATEMENT;
+
+	/**
+     * The feature id for the '<em><b>Table Joined</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BASIC__TABLE_JOINED = PREDICATE__TABLE_JOINED;
+
+	/**
+     * The feature id for the '<em><b>Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BASIC__COMBINED_LEFT = PREDICATE__COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BASIC__COMBINED_RIGHT = PREDICATE__COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Query Select Having</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BASIC__QUERY_SELECT_HAVING = PREDICATE__QUERY_SELECT_HAVING;
+
+	/**
+     * The feature id for the '<em><b>Query Select Where</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BASIC__QUERY_SELECT_WHERE = PREDICATE__QUERY_SELECT_WHERE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BASIC__VALUE_EXPR_CASE_SEARCH_CONTENT = PREDICATE__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BASIC__NEST = PREDICATE__NEST;
+
+	/**
+     * The feature id for the '<em><b>Merge On Condition</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int PREDICATE_BASIC__MERGE_ON_CONDITION = PREDICATE__MERGE_ON_CONDITION;
+
+    /**
+     * The feature id for the '<em><b>Negated Predicate</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BASIC__NEGATED_PREDICATE = PREDICATE__NEGATED_PREDICATE;
+
+	/**
+     * The feature id for the '<em><b>Has Selectivity</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BASIC__HAS_SELECTIVITY = PREDICATE__HAS_SELECTIVITY;
+
+	/**
+     * The feature id for the '<em><b>Selectivity Value</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BASIC__SELECTIVITY_VALUE = PREDICATE__SELECTIVITY_VALUE;
+
+	/**
+     * The feature id for the '<em><b>Comparison Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BASIC__COMPARISON_OPERATOR = PREDICATE_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Right Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BASIC__RIGHT_VALUE_EXPR = PREDICATE_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>Left Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BASIC__LEFT_VALUE_EXPR = PREDICATE_FEATURE_COUNT + 2;
+
+	/**
+     * The number of structural features of the '<em>Predicate Basic</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BASIC_FEATURE_COUNT = PREDICATE_FEATURE_COUNT + 3;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateQuantifiedImpl <em>Predicate Quantified</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.PredicateQuantifiedImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getPredicateQuantified()
+     * @generated
+     */
+	int PREDICATE_QUANTIFIED = 27;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED__EANNOTATIONS = PREDICATE__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED__NAME = PREDICATE__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED__DEPENDENCIES = PREDICATE__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED__DESCRIPTION = PREDICATE__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED__LABEL = PREDICATE__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED__COMMENTS = PREDICATE__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int PREDICATE_QUANTIFIED__EXTENSIONS = PREDICATE__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED__PRIVILEGES = PREDICATE__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Negated Condition</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED__NEGATED_CONDITION = PREDICATE__NEGATED_CONDITION;
+
+	/**
+     * The feature id for the '<em><b>Update Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED__UPDATE_STATEMENT = PREDICATE__UPDATE_STATEMENT;
+
+	/**
+     * The feature id for the '<em><b>Delete Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED__DELETE_STATEMENT = PREDICATE__DELETE_STATEMENT;
+
+	/**
+     * The feature id for the '<em><b>Table Joined</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED__TABLE_JOINED = PREDICATE__TABLE_JOINED;
+
+	/**
+     * The feature id for the '<em><b>Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED__COMBINED_LEFT = PREDICATE__COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED__COMBINED_RIGHT = PREDICATE__COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Query Select Having</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED__QUERY_SELECT_HAVING = PREDICATE__QUERY_SELECT_HAVING;
+
+	/**
+     * The feature id for the '<em><b>Query Select Where</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED__QUERY_SELECT_WHERE = PREDICATE__QUERY_SELECT_WHERE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED__VALUE_EXPR_CASE_SEARCH_CONTENT = PREDICATE__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED__NEST = PREDICATE__NEST;
+
+	/**
+     * The feature id for the '<em><b>Merge On Condition</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int PREDICATE_QUANTIFIED__MERGE_ON_CONDITION = PREDICATE__MERGE_ON_CONDITION;
+
+    /**
+     * The feature id for the '<em><b>Negated Predicate</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED__NEGATED_PREDICATE = PREDICATE__NEGATED_PREDICATE;
+
+	/**
+     * The feature id for the '<em><b>Has Selectivity</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED__HAS_SELECTIVITY = PREDICATE__HAS_SELECTIVITY;
+
+	/**
+     * The feature id for the '<em><b>Selectivity Value</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED__SELECTIVITY_VALUE = PREDICATE__SELECTIVITY_VALUE;
+
+	/**
+     * The number of structural features of the '<em>Predicate Quantified</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_FEATURE_COUNT = PREDICATE_FEATURE_COUNT + 0;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateBetweenImpl <em>Predicate Between</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.PredicateBetweenImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getPredicateBetween()
+     * @generated
+     */
+	int PREDICATE_BETWEEN = 28;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BETWEEN__EANNOTATIONS = PREDICATE__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BETWEEN__NAME = PREDICATE__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BETWEEN__DEPENDENCIES = PREDICATE__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BETWEEN__DESCRIPTION = PREDICATE__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BETWEEN__LABEL = PREDICATE__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BETWEEN__COMMENTS = PREDICATE__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int PREDICATE_BETWEEN__EXTENSIONS = PREDICATE__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BETWEEN__PRIVILEGES = PREDICATE__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Negated Condition</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BETWEEN__NEGATED_CONDITION = PREDICATE__NEGATED_CONDITION;
+
+	/**
+     * The feature id for the '<em><b>Update Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BETWEEN__UPDATE_STATEMENT = PREDICATE__UPDATE_STATEMENT;
+
+	/**
+     * The feature id for the '<em><b>Delete Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BETWEEN__DELETE_STATEMENT = PREDICATE__DELETE_STATEMENT;
+
+	/**
+     * The feature id for the '<em><b>Table Joined</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BETWEEN__TABLE_JOINED = PREDICATE__TABLE_JOINED;
+
+	/**
+     * The feature id for the '<em><b>Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BETWEEN__COMBINED_LEFT = PREDICATE__COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BETWEEN__COMBINED_RIGHT = PREDICATE__COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Query Select Having</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BETWEEN__QUERY_SELECT_HAVING = PREDICATE__QUERY_SELECT_HAVING;
+
+	/**
+     * The feature id for the '<em><b>Query Select Where</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BETWEEN__QUERY_SELECT_WHERE = PREDICATE__QUERY_SELECT_WHERE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BETWEEN__VALUE_EXPR_CASE_SEARCH_CONTENT = PREDICATE__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BETWEEN__NEST = PREDICATE__NEST;
+
+	/**
+     * The feature id for the '<em><b>Merge On Condition</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int PREDICATE_BETWEEN__MERGE_ON_CONDITION = PREDICATE__MERGE_ON_CONDITION;
+
+    /**
+     * The feature id for the '<em><b>Negated Predicate</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BETWEEN__NEGATED_PREDICATE = PREDICATE__NEGATED_PREDICATE;
+
+	/**
+     * The feature id for the '<em><b>Has Selectivity</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BETWEEN__HAS_SELECTIVITY = PREDICATE__HAS_SELECTIVITY;
+
+	/**
+     * The feature id for the '<em><b>Selectivity Value</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BETWEEN__SELECTIVITY_VALUE = PREDICATE__SELECTIVITY_VALUE;
+
+	/**
+     * The feature id for the '<em><b>Not Between</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BETWEEN__NOT_BETWEEN = PREDICATE_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Left Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BETWEEN__LEFT_VALUE_EXPR = PREDICATE_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>Right Value Expr1</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BETWEEN__RIGHT_VALUE_EXPR1 = PREDICATE_FEATURE_COUNT + 2;
+
+	/**
+     * The feature id for the '<em><b>Right Value Expr2</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BETWEEN__RIGHT_VALUE_EXPR2 = PREDICATE_FEATURE_COUNT + 3;
+
+	/**
+     * The number of structural features of the '<em>Predicate Between</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_BETWEEN_FEATURE_COUNT = PREDICATE_FEATURE_COUNT + 4;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateExistsImpl <em>Predicate Exists</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.PredicateExistsImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getPredicateExists()
+     * @generated
+     */
+	int PREDICATE_EXISTS = 29;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_EXISTS__EANNOTATIONS = PREDICATE__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_EXISTS__NAME = PREDICATE__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_EXISTS__DEPENDENCIES = PREDICATE__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_EXISTS__DESCRIPTION = PREDICATE__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_EXISTS__LABEL = PREDICATE__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_EXISTS__COMMENTS = PREDICATE__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int PREDICATE_EXISTS__EXTENSIONS = PREDICATE__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_EXISTS__PRIVILEGES = PREDICATE__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Negated Condition</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_EXISTS__NEGATED_CONDITION = PREDICATE__NEGATED_CONDITION;
+
+	/**
+     * The feature id for the '<em><b>Update Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_EXISTS__UPDATE_STATEMENT = PREDICATE__UPDATE_STATEMENT;
+
+	/**
+     * The feature id for the '<em><b>Delete Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_EXISTS__DELETE_STATEMENT = PREDICATE__DELETE_STATEMENT;
+
+	/**
+     * The feature id for the '<em><b>Table Joined</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_EXISTS__TABLE_JOINED = PREDICATE__TABLE_JOINED;
+
+	/**
+     * The feature id for the '<em><b>Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_EXISTS__COMBINED_LEFT = PREDICATE__COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_EXISTS__COMBINED_RIGHT = PREDICATE__COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Query Select Having</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_EXISTS__QUERY_SELECT_HAVING = PREDICATE__QUERY_SELECT_HAVING;
+
+	/**
+     * The feature id for the '<em><b>Query Select Where</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_EXISTS__QUERY_SELECT_WHERE = PREDICATE__QUERY_SELECT_WHERE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_EXISTS__VALUE_EXPR_CASE_SEARCH_CONTENT = PREDICATE__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_EXISTS__NEST = PREDICATE__NEST;
+
+	/**
+     * The feature id for the '<em><b>Merge On Condition</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int PREDICATE_EXISTS__MERGE_ON_CONDITION = PREDICATE__MERGE_ON_CONDITION;
+
+    /**
+     * The feature id for the '<em><b>Negated Predicate</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_EXISTS__NEGATED_PREDICATE = PREDICATE__NEGATED_PREDICATE;
+
+	/**
+     * The feature id for the '<em><b>Has Selectivity</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_EXISTS__HAS_SELECTIVITY = PREDICATE__HAS_SELECTIVITY;
+
+	/**
+     * The feature id for the '<em><b>Selectivity Value</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_EXISTS__SELECTIVITY_VALUE = PREDICATE__SELECTIVITY_VALUE;
+
+	/**
+     * The feature id for the '<em><b>Query Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_EXISTS__QUERY_EXPR = PREDICATE_FEATURE_COUNT + 0;
+
+	/**
+     * The number of structural features of the '<em>Predicate Exists</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_EXISTS_FEATURE_COUNT = PREDICATE_FEATURE_COUNT + 1;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateInImpl <em>Predicate In</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.PredicateInImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getPredicateIn()
+     * @generated
+     */
+	int PREDICATE_IN = 30;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN__EANNOTATIONS = PREDICATE__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN__NAME = PREDICATE__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN__DEPENDENCIES = PREDICATE__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN__DESCRIPTION = PREDICATE__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN__LABEL = PREDICATE__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN__COMMENTS = PREDICATE__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int PREDICATE_IN__EXTENSIONS = PREDICATE__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN__PRIVILEGES = PREDICATE__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Negated Condition</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN__NEGATED_CONDITION = PREDICATE__NEGATED_CONDITION;
+
+	/**
+     * The feature id for the '<em><b>Update Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN__UPDATE_STATEMENT = PREDICATE__UPDATE_STATEMENT;
+
+	/**
+     * The feature id for the '<em><b>Delete Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN__DELETE_STATEMENT = PREDICATE__DELETE_STATEMENT;
+
+	/**
+     * The feature id for the '<em><b>Table Joined</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN__TABLE_JOINED = PREDICATE__TABLE_JOINED;
+
+	/**
+     * The feature id for the '<em><b>Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN__COMBINED_LEFT = PREDICATE__COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN__COMBINED_RIGHT = PREDICATE__COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Query Select Having</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN__QUERY_SELECT_HAVING = PREDICATE__QUERY_SELECT_HAVING;
+
+	/**
+     * The feature id for the '<em><b>Query Select Where</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN__QUERY_SELECT_WHERE = PREDICATE__QUERY_SELECT_WHERE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN__VALUE_EXPR_CASE_SEARCH_CONTENT = PREDICATE__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN__NEST = PREDICATE__NEST;
+
+	/**
+     * The feature id for the '<em><b>Merge On Condition</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int PREDICATE_IN__MERGE_ON_CONDITION = PREDICATE__MERGE_ON_CONDITION;
+
+    /**
+     * The feature id for the '<em><b>Negated Predicate</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN__NEGATED_PREDICATE = PREDICATE__NEGATED_PREDICATE;
+
+	/**
+     * The feature id for the '<em><b>Has Selectivity</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN__HAS_SELECTIVITY = PREDICATE__HAS_SELECTIVITY;
+
+	/**
+     * The feature id for the '<em><b>Selectivity Value</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN__SELECTIVITY_VALUE = PREDICATE__SELECTIVITY_VALUE;
+
+	/**
+     * The feature id for the '<em><b>Not In</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN__NOT_IN = PREDICATE_FEATURE_COUNT + 0;
+
+	/**
+     * The number of structural features of the '<em>Predicate In</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_FEATURE_COUNT = PREDICATE_FEATURE_COUNT + 1;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateLikeImpl <em>Predicate Like</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.PredicateLikeImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getPredicateLike()
+     * @generated
+     */
+	int PREDICATE_LIKE = 31;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_LIKE__EANNOTATIONS = PREDICATE__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_LIKE__NAME = PREDICATE__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_LIKE__DEPENDENCIES = PREDICATE__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_LIKE__DESCRIPTION = PREDICATE__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_LIKE__LABEL = PREDICATE__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_LIKE__COMMENTS = PREDICATE__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int PREDICATE_LIKE__EXTENSIONS = PREDICATE__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_LIKE__PRIVILEGES = PREDICATE__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Negated Condition</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_LIKE__NEGATED_CONDITION = PREDICATE__NEGATED_CONDITION;
+
+	/**
+     * The feature id for the '<em><b>Update Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_LIKE__UPDATE_STATEMENT = PREDICATE__UPDATE_STATEMENT;
+
+	/**
+     * The feature id for the '<em><b>Delete Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_LIKE__DELETE_STATEMENT = PREDICATE__DELETE_STATEMENT;
+
+	/**
+     * The feature id for the '<em><b>Table Joined</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_LIKE__TABLE_JOINED = PREDICATE__TABLE_JOINED;
+
+	/**
+     * The feature id for the '<em><b>Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_LIKE__COMBINED_LEFT = PREDICATE__COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_LIKE__COMBINED_RIGHT = PREDICATE__COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Query Select Having</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_LIKE__QUERY_SELECT_HAVING = PREDICATE__QUERY_SELECT_HAVING;
+
+	/**
+     * The feature id for the '<em><b>Query Select Where</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_LIKE__QUERY_SELECT_WHERE = PREDICATE__QUERY_SELECT_WHERE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_LIKE__VALUE_EXPR_CASE_SEARCH_CONTENT = PREDICATE__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_LIKE__NEST = PREDICATE__NEST;
+
+	/**
+     * The feature id for the '<em><b>Merge On Condition</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int PREDICATE_LIKE__MERGE_ON_CONDITION = PREDICATE__MERGE_ON_CONDITION;
+
+    /**
+     * The feature id for the '<em><b>Negated Predicate</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_LIKE__NEGATED_PREDICATE = PREDICATE__NEGATED_PREDICATE;
+
+	/**
+     * The feature id for the '<em><b>Has Selectivity</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_LIKE__HAS_SELECTIVITY = PREDICATE__HAS_SELECTIVITY;
+
+	/**
+     * The feature id for the '<em><b>Selectivity Value</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_LIKE__SELECTIVITY_VALUE = PREDICATE__SELECTIVITY_VALUE;
+
+	/**
+     * The feature id for the '<em><b>Not Like</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_LIKE__NOT_LIKE = PREDICATE_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Pattern Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_LIKE__PATTERN_VALUE_EXPR = PREDICATE_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>Matching Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_LIKE__MATCHING_VALUE_EXPR = PREDICATE_FEATURE_COUNT + 2;
+
+	/**
+     * The feature id for the '<em><b>Escape Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_LIKE__ESCAPE_VALUE_EXPR = PREDICATE_FEATURE_COUNT + 3;
+
+	/**
+     * The number of structural features of the '<em>Predicate Like</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_LIKE_FEATURE_COUNT = PREDICATE_FEATURE_COUNT + 4;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateIsNullImpl <em>Predicate Is Null</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.PredicateIsNullImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getPredicateIsNull()
+     * @generated
+     */
+	int PREDICATE_IS_NULL = 32;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IS_NULL__EANNOTATIONS = PREDICATE__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IS_NULL__NAME = PREDICATE__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IS_NULL__DEPENDENCIES = PREDICATE__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IS_NULL__DESCRIPTION = PREDICATE__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IS_NULL__LABEL = PREDICATE__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IS_NULL__COMMENTS = PREDICATE__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int PREDICATE_IS_NULL__EXTENSIONS = PREDICATE__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IS_NULL__PRIVILEGES = PREDICATE__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Negated Condition</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IS_NULL__NEGATED_CONDITION = PREDICATE__NEGATED_CONDITION;
+
+	/**
+     * The feature id for the '<em><b>Update Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IS_NULL__UPDATE_STATEMENT = PREDICATE__UPDATE_STATEMENT;
+
+	/**
+     * The feature id for the '<em><b>Delete Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IS_NULL__DELETE_STATEMENT = PREDICATE__DELETE_STATEMENT;
+
+	/**
+     * The feature id for the '<em><b>Table Joined</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IS_NULL__TABLE_JOINED = PREDICATE__TABLE_JOINED;
+
+	/**
+     * The feature id for the '<em><b>Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IS_NULL__COMBINED_LEFT = PREDICATE__COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IS_NULL__COMBINED_RIGHT = PREDICATE__COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Query Select Having</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IS_NULL__QUERY_SELECT_HAVING = PREDICATE__QUERY_SELECT_HAVING;
+
+	/**
+     * The feature id for the '<em><b>Query Select Where</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IS_NULL__QUERY_SELECT_WHERE = PREDICATE__QUERY_SELECT_WHERE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IS_NULL__VALUE_EXPR_CASE_SEARCH_CONTENT = PREDICATE__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IS_NULL__NEST = PREDICATE__NEST;
+
+	/**
+     * The feature id for the '<em><b>Merge On Condition</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int PREDICATE_IS_NULL__MERGE_ON_CONDITION = PREDICATE__MERGE_ON_CONDITION;
+
+    /**
+     * The feature id for the '<em><b>Negated Predicate</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IS_NULL__NEGATED_PREDICATE = PREDICATE__NEGATED_PREDICATE;
+
+	/**
+     * The feature id for the '<em><b>Has Selectivity</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IS_NULL__HAS_SELECTIVITY = PREDICATE__HAS_SELECTIVITY;
+
+	/**
+     * The feature id for the '<em><b>Selectivity Value</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IS_NULL__SELECTIVITY_VALUE = PREDICATE__SELECTIVITY_VALUE;
+
+	/**
+     * The feature id for the '<em><b>Not Null</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IS_NULL__NOT_NULL = PREDICATE_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IS_NULL__VALUE_EXPR = PREDICATE_FEATURE_COUNT + 1;
+
+	/**
+     * The number of structural features of the '<em>Predicate Is Null</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IS_NULL_FEATURE_COUNT = PREDICATE_FEATURE_COUNT + 2;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateQuantifiedValueSelectImpl <em>Predicate Quantified Value Select</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.PredicateQuantifiedValueSelectImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getPredicateQuantifiedValueSelect()
+     * @generated
+     */
+	int PREDICATE_QUANTIFIED_VALUE_SELECT = 33;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_VALUE_SELECT__EANNOTATIONS = PREDICATE_QUANTIFIED__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_VALUE_SELECT__NAME = PREDICATE_QUANTIFIED__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_VALUE_SELECT__DEPENDENCIES = PREDICATE_QUANTIFIED__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_VALUE_SELECT__DESCRIPTION = PREDICATE_QUANTIFIED__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_VALUE_SELECT__LABEL = PREDICATE_QUANTIFIED__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_VALUE_SELECT__COMMENTS = PREDICATE_QUANTIFIED__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int PREDICATE_QUANTIFIED_VALUE_SELECT__EXTENSIONS = PREDICATE_QUANTIFIED__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_VALUE_SELECT__PRIVILEGES = PREDICATE_QUANTIFIED__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Negated Condition</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_VALUE_SELECT__NEGATED_CONDITION = PREDICATE_QUANTIFIED__NEGATED_CONDITION;
+
+	/**
+     * The feature id for the '<em><b>Update Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_VALUE_SELECT__UPDATE_STATEMENT = PREDICATE_QUANTIFIED__UPDATE_STATEMENT;
+
+	/**
+     * The feature id for the '<em><b>Delete Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_VALUE_SELECT__DELETE_STATEMENT = PREDICATE_QUANTIFIED__DELETE_STATEMENT;
+
+	/**
+     * The feature id for the '<em><b>Table Joined</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_VALUE_SELECT__TABLE_JOINED = PREDICATE_QUANTIFIED__TABLE_JOINED;
+
+	/**
+     * The feature id for the '<em><b>Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_VALUE_SELECT__COMBINED_LEFT = PREDICATE_QUANTIFIED__COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_VALUE_SELECT__COMBINED_RIGHT = PREDICATE_QUANTIFIED__COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Query Select Having</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_VALUE_SELECT__QUERY_SELECT_HAVING = PREDICATE_QUANTIFIED__QUERY_SELECT_HAVING;
+
+	/**
+     * The feature id for the '<em><b>Query Select Where</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_VALUE_SELECT__QUERY_SELECT_WHERE = PREDICATE_QUANTIFIED__QUERY_SELECT_WHERE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_VALUE_SELECT__VALUE_EXPR_CASE_SEARCH_CONTENT = PREDICATE_QUANTIFIED__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_VALUE_SELECT__NEST = PREDICATE_QUANTIFIED__NEST;
+
+	/**
+     * The feature id for the '<em><b>Merge On Condition</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int PREDICATE_QUANTIFIED_VALUE_SELECT__MERGE_ON_CONDITION = PREDICATE_QUANTIFIED__MERGE_ON_CONDITION;
+
+    /**
+     * The feature id for the '<em><b>Negated Predicate</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_VALUE_SELECT__NEGATED_PREDICATE = PREDICATE_QUANTIFIED__NEGATED_PREDICATE;
+
+	/**
+     * The feature id for the '<em><b>Has Selectivity</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_VALUE_SELECT__HAS_SELECTIVITY = PREDICATE_QUANTIFIED__HAS_SELECTIVITY;
+
+	/**
+     * The feature id for the '<em><b>Selectivity Value</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_VALUE_SELECT__SELECTIVITY_VALUE = PREDICATE_QUANTIFIED__SELECTIVITY_VALUE;
+
+	/**
+     * The feature id for the '<em><b>Quantified Type</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_VALUE_SELECT__QUANTIFIED_TYPE = PREDICATE_QUANTIFIED_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Comparison Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_VALUE_SELECT__COMPARISON_OPERATOR = PREDICATE_QUANTIFIED_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>Query Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_VALUE_SELECT__QUERY_EXPR = PREDICATE_QUANTIFIED_FEATURE_COUNT + 2;
+
+	/**
+     * The feature id for the '<em><b>Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_VALUE_SELECT__VALUE_EXPR = PREDICATE_QUANTIFIED_FEATURE_COUNT + 3;
+
+	/**
+     * The number of structural features of the '<em>Predicate Quantified Value Select</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_VALUE_SELECT_FEATURE_COUNT = PREDICATE_QUANTIFIED_FEATURE_COUNT + 4;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateQuantifiedRowSelectImpl <em>Predicate Quantified Row Select</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.PredicateQuantifiedRowSelectImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getPredicateQuantifiedRowSelect()
+     * @generated
+     */
+	int PREDICATE_QUANTIFIED_ROW_SELECT = 34;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_ROW_SELECT__EANNOTATIONS = PREDICATE_QUANTIFIED__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_ROW_SELECT__NAME = PREDICATE_QUANTIFIED__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_ROW_SELECT__DEPENDENCIES = PREDICATE_QUANTIFIED__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_ROW_SELECT__DESCRIPTION = PREDICATE_QUANTIFIED__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_ROW_SELECT__LABEL = PREDICATE_QUANTIFIED__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_ROW_SELECT__COMMENTS = PREDICATE_QUANTIFIED__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int PREDICATE_QUANTIFIED_ROW_SELECT__EXTENSIONS = PREDICATE_QUANTIFIED__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_ROW_SELECT__PRIVILEGES = PREDICATE_QUANTIFIED__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Negated Condition</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_ROW_SELECT__NEGATED_CONDITION = PREDICATE_QUANTIFIED__NEGATED_CONDITION;
+
+	/**
+     * The feature id for the '<em><b>Update Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_ROW_SELECT__UPDATE_STATEMENT = PREDICATE_QUANTIFIED__UPDATE_STATEMENT;
+
+	/**
+     * The feature id for the '<em><b>Delete Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_ROW_SELECT__DELETE_STATEMENT = PREDICATE_QUANTIFIED__DELETE_STATEMENT;
+
+	/**
+     * The feature id for the '<em><b>Table Joined</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_ROW_SELECT__TABLE_JOINED = PREDICATE_QUANTIFIED__TABLE_JOINED;
+
+	/**
+     * The feature id for the '<em><b>Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_ROW_SELECT__COMBINED_LEFT = PREDICATE_QUANTIFIED__COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_ROW_SELECT__COMBINED_RIGHT = PREDICATE_QUANTIFIED__COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Query Select Having</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_ROW_SELECT__QUERY_SELECT_HAVING = PREDICATE_QUANTIFIED__QUERY_SELECT_HAVING;
+
+	/**
+     * The feature id for the '<em><b>Query Select Where</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_ROW_SELECT__QUERY_SELECT_WHERE = PREDICATE_QUANTIFIED__QUERY_SELECT_WHERE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_ROW_SELECT__VALUE_EXPR_CASE_SEARCH_CONTENT = PREDICATE_QUANTIFIED__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_ROW_SELECT__NEST = PREDICATE_QUANTIFIED__NEST;
+
+	/**
+     * The feature id for the '<em><b>Merge On Condition</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int PREDICATE_QUANTIFIED_ROW_SELECT__MERGE_ON_CONDITION = PREDICATE_QUANTIFIED__MERGE_ON_CONDITION;
+
+    /**
+     * The feature id for the '<em><b>Negated Predicate</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_ROW_SELECT__NEGATED_PREDICATE = PREDICATE_QUANTIFIED__NEGATED_PREDICATE;
+
+	/**
+     * The feature id for the '<em><b>Has Selectivity</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_ROW_SELECT__HAS_SELECTIVITY = PREDICATE_QUANTIFIED__HAS_SELECTIVITY;
+
+	/**
+     * The feature id for the '<em><b>Selectivity Value</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_ROW_SELECT__SELECTIVITY_VALUE = PREDICATE_QUANTIFIED__SELECTIVITY_VALUE;
+
+	/**
+     * The feature id for the '<em><b>Quantified Type</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_ROW_SELECT__QUANTIFIED_TYPE = PREDICATE_QUANTIFIED_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Query Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_ROW_SELECT__QUERY_EXPR = PREDICATE_QUANTIFIED_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>Value Expr List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_ROW_SELECT__VALUE_EXPR_LIST = PREDICATE_QUANTIFIED_FEATURE_COUNT + 2;
+
+	/**
+     * The number of structural features of the '<em>Predicate Quantified Row Select</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_QUANTIFIED_ROW_SELECT_FEATURE_COUNT = PREDICATE_QUANTIFIED_FEATURE_COUNT + 3;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateInValueSelectImpl <em>Predicate In Value Select</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.PredicateInValueSelectImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getPredicateInValueSelect()
+     * @generated
+     */
+	int PREDICATE_IN_VALUE_SELECT = 35;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_SELECT__EANNOTATIONS = PREDICATE_IN__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_SELECT__NAME = PREDICATE_IN__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_SELECT__DEPENDENCIES = PREDICATE_IN__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_SELECT__DESCRIPTION = PREDICATE_IN__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_SELECT__LABEL = PREDICATE_IN__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_SELECT__COMMENTS = PREDICATE_IN__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int PREDICATE_IN_VALUE_SELECT__EXTENSIONS = PREDICATE_IN__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_SELECT__PRIVILEGES = PREDICATE_IN__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Negated Condition</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_SELECT__NEGATED_CONDITION = PREDICATE_IN__NEGATED_CONDITION;
+
+	/**
+     * The feature id for the '<em><b>Update Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_SELECT__UPDATE_STATEMENT = PREDICATE_IN__UPDATE_STATEMENT;
+
+	/**
+     * The feature id for the '<em><b>Delete Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_SELECT__DELETE_STATEMENT = PREDICATE_IN__DELETE_STATEMENT;
+
+	/**
+     * The feature id for the '<em><b>Table Joined</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_SELECT__TABLE_JOINED = PREDICATE_IN__TABLE_JOINED;
+
+	/**
+     * The feature id for the '<em><b>Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_SELECT__COMBINED_LEFT = PREDICATE_IN__COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_SELECT__COMBINED_RIGHT = PREDICATE_IN__COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Query Select Having</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_SELECT__QUERY_SELECT_HAVING = PREDICATE_IN__QUERY_SELECT_HAVING;
+
+	/**
+     * The feature id for the '<em><b>Query Select Where</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_SELECT__QUERY_SELECT_WHERE = PREDICATE_IN__QUERY_SELECT_WHERE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_SELECT__VALUE_EXPR_CASE_SEARCH_CONTENT = PREDICATE_IN__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_SELECT__NEST = PREDICATE_IN__NEST;
+
+	/**
+     * The feature id for the '<em><b>Merge On Condition</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int PREDICATE_IN_VALUE_SELECT__MERGE_ON_CONDITION = PREDICATE_IN__MERGE_ON_CONDITION;
+
+    /**
+     * The feature id for the '<em><b>Negated Predicate</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_SELECT__NEGATED_PREDICATE = PREDICATE_IN__NEGATED_PREDICATE;
+
+	/**
+     * The feature id for the '<em><b>Has Selectivity</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_SELECT__HAS_SELECTIVITY = PREDICATE_IN__HAS_SELECTIVITY;
+
+	/**
+     * The feature id for the '<em><b>Selectivity Value</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_SELECT__SELECTIVITY_VALUE = PREDICATE_IN__SELECTIVITY_VALUE;
+
+	/**
+     * The feature id for the '<em><b>Not In</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_SELECT__NOT_IN = PREDICATE_IN__NOT_IN;
+
+	/**
+     * The feature id for the '<em><b>Query Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_SELECT__QUERY_EXPR = PREDICATE_IN_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_SELECT__VALUE_EXPR = PREDICATE_IN_FEATURE_COUNT + 1;
+
+	/**
+     * The number of structural features of the '<em>Predicate In Value Select</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_SELECT_FEATURE_COUNT = PREDICATE_IN_FEATURE_COUNT + 2;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateInValueListImpl <em>Predicate In Value List</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.PredicateInValueListImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getPredicateInValueList()
+     * @generated
+     */
+	int PREDICATE_IN_VALUE_LIST = 36;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_LIST__EANNOTATIONS = PREDICATE_IN__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_LIST__NAME = PREDICATE_IN__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_LIST__DEPENDENCIES = PREDICATE_IN__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_LIST__DESCRIPTION = PREDICATE_IN__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_LIST__LABEL = PREDICATE_IN__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_LIST__COMMENTS = PREDICATE_IN__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int PREDICATE_IN_VALUE_LIST__EXTENSIONS = PREDICATE_IN__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_LIST__PRIVILEGES = PREDICATE_IN__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Negated Condition</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_LIST__NEGATED_CONDITION = PREDICATE_IN__NEGATED_CONDITION;
+
+	/**
+     * The feature id for the '<em><b>Update Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_LIST__UPDATE_STATEMENT = PREDICATE_IN__UPDATE_STATEMENT;
+
+	/**
+     * The feature id for the '<em><b>Delete Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_LIST__DELETE_STATEMENT = PREDICATE_IN__DELETE_STATEMENT;
+
+	/**
+     * The feature id for the '<em><b>Table Joined</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_LIST__TABLE_JOINED = PREDICATE_IN__TABLE_JOINED;
+
+	/**
+     * The feature id for the '<em><b>Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_LIST__COMBINED_LEFT = PREDICATE_IN__COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_LIST__COMBINED_RIGHT = PREDICATE_IN__COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Query Select Having</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_LIST__QUERY_SELECT_HAVING = PREDICATE_IN__QUERY_SELECT_HAVING;
+
+	/**
+     * The feature id for the '<em><b>Query Select Where</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_LIST__QUERY_SELECT_WHERE = PREDICATE_IN__QUERY_SELECT_WHERE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_LIST__VALUE_EXPR_CASE_SEARCH_CONTENT = PREDICATE_IN__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_LIST__NEST = PREDICATE_IN__NEST;
+
+	/**
+     * The feature id for the '<em><b>Merge On Condition</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int PREDICATE_IN_VALUE_LIST__MERGE_ON_CONDITION = PREDICATE_IN__MERGE_ON_CONDITION;
+
+    /**
+     * The feature id for the '<em><b>Negated Predicate</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_LIST__NEGATED_PREDICATE = PREDICATE_IN__NEGATED_PREDICATE;
+
+	/**
+     * The feature id for the '<em><b>Has Selectivity</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_LIST__HAS_SELECTIVITY = PREDICATE_IN__HAS_SELECTIVITY;
+
+	/**
+     * The feature id for the '<em><b>Selectivity Value</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_LIST__SELECTIVITY_VALUE = PREDICATE_IN__SELECTIVITY_VALUE;
+
+	/**
+     * The feature id for the '<em><b>Not In</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_LIST__NOT_IN = PREDICATE_IN__NOT_IN;
+
+	/**
+     * The feature id for the '<em><b>Value Expr List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_LIST__VALUE_EXPR_LIST = PREDICATE_IN_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_LIST__VALUE_EXPR = PREDICATE_IN_FEATURE_COUNT + 1;
+
+	/**
+     * The number of structural features of the '<em>Predicate In Value List</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_LIST_FEATURE_COUNT = PREDICATE_IN_FEATURE_COUNT + 2;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateInValueRowSelectImpl <em>Predicate In Value Row Select</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.PredicateInValueRowSelectImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getPredicateInValueRowSelect()
+     * @generated
+     */
+	int PREDICATE_IN_VALUE_ROW_SELECT = 37;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_ROW_SELECT__EANNOTATIONS = PREDICATE_IN__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_ROW_SELECT__NAME = PREDICATE_IN__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_ROW_SELECT__DEPENDENCIES = PREDICATE_IN__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_ROW_SELECT__DESCRIPTION = PREDICATE_IN__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_ROW_SELECT__LABEL = PREDICATE_IN__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_ROW_SELECT__COMMENTS = PREDICATE_IN__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int PREDICATE_IN_VALUE_ROW_SELECT__EXTENSIONS = PREDICATE_IN__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_ROW_SELECT__PRIVILEGES = PREDICATE_IN__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Negated Condition</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_ROW_SELECT__NEGATED_CONDITION = PREDICATE_IN__NEGATED_CONDITION;
+
+	/**
+     * The feature id for the '<em><b>Update Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_ROW_SELECT__UPDATE_STATEMENT = PREDICATE_IN__UPDATE_STATEMENT;
+
+	/**
+     * The feature id for the '<em><b>Delete Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_ROW_SELECT__DELETE_STATEMENT = PREDICATE_IN__DELETE_STATEMENT;
+
+	/**
+     * The feature id for the '<em><b>Table Joined</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_ROW_SELECT__TABLE_JOINED = PREDICATE_IN__TABLE_JOINED;
+
+	/**
+     * The feature id for the '<em><b>Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_ROW_SELECT__COMBINED_LEFT = PREDICATE_IN__COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_ROW_SELECT__COMBINED_RIGHT = PREDICATE_IN__COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Query Select Having</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_ROW_SELECT__QUERY_SELECT_HAVING = PREDICATE_IN__QUERY_SELECT_HAVING;
+
+	/**
+     * The feature id for the '<em><b>Query Select Where</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_ROW_SELECT__QUERY_SELECT_WHERE = PREDICATE_IN__QUERY_SELECT_WHERE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_ROW_SELECT__VALUE_EXPR_CASE_SEARCH_CONTENT = PREDICATE_IN__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_ROW_SELECT__NEST = PREDICATE_IN__NEST;
+
+	/**
+     * The feature id for the '<em><b>Merge On Condition</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int PREDICATE_IN_VALUE_ROW_SELECT__MERGE_ON_CONDITION = PREDICATE_IN__MERGE_ON_CONDITION;
+
+    /**
+     * The feature id for the '<em><b>Negated Predicate</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_ROW_SELECT__NEGATED_PREDICATE = PREDICATE_IN__NEGATED_PREDICATE;
+
+	/**
+     * The feature id for the '<em><b>Has Selectivity</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_ROW_SELECT__HAS_SELECTIVITY = PREDICATE_IN__HAS_SELECTIVITY;
+
+	/**
+     * The feature id for the '<em><b>Selectivity Value</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_ROW_SELECT__SELECTIVITY_VALUE = PREDICATE_IN__SELECTIVITY_VALUE;
+
+	/**
+     * The feature id for the '<em><b>Not In</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_ROW_SELECT__NOT_IN = PREDICATE_IN__NOT_IN;
+
+	/**
+     * The feature id for the '<em><b>Value Expr List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_ROW_SELECT__VALUE_EXPR_LIST = PREDICATE_IN_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Query Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_ROW_SELECT__QUERY_EXPR = PREDICATE_IN_FEATURE_COUNT + 1;
+
+	/**
+     * The number of structural features of the '<em>Predicate In Value Row Select</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int PREDICATE_IN_VALUE_ROW_SELECT_FEATURE_COUNT = PREDICATE_IN_FEATURE_COUNT + 2;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionAtomicImpl <em>Value Expression Atomic</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionAtomicImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getValueExpressionAtomic()
+     * @generated
+     */
+	int VALUE_EXPRESSION_ATOMIC = 73;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_ATOMIC__EANNOTATIONS = QUERY_VALUE_EXPRESSION__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_ATOMIC__NAME = QUERY_VALUE_EXPRESSION__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_ATOMIC__DEPENDENCIES = QUERY_VALUE_EXPRESSION__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_ATOMIC__DESCRIPTION = QUERY_VALUE_EXPRESSION__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_ATOMIC__LABEL = QUERY_VALUE_EXPRESSION__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_ATOMIC__COMMENTS = QUERY_VALUE_EXPRESSION__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ATOMIC__EXTENSIONS = QUERY_VALUE_EXPRESSION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_ATOMIC__PRIVILEGES = QUERY_VALUE_EXPRESSION__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Unary Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_ATOMIC__UNARY_OPERATOR = QUERY_VALUE_EXPRESSION__UNARY_OPERATOR;
+
+	/**
+     * The feature id for the '<em><b>Data Type</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_ATOMIC__DATA_TYPE = QUERY_VALUE_EXPRESSION__DATA_TYPE;
+
+	/**
+     * The feature id for the '<em><b>Values Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_ATOMIC__VALUES_ROW = QUERY_VALUE_EXPRESSION__VALUES_ROW;
+
+	/**
+     * The feature id for the '<em><b>Order By Value Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_ATOMIC__ORDER_BY_VALUE_EXPR = QUERY_VALUE_EXPRESSION__ORDER_BY_VALUE_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Result Column</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_ATOMIC__RESULT_COLUMN = QUERY_VALUE_EXPRESSION__RESULT_COLUMN;
+
+	/**
+     * The feature id for the '<em><b>Basic Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_ATOMIC__BASIC_RIGHT = QUERY_VALUE_EXPRESSION__BASIC_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Basic Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_ATOMIC__BASIC_LEFT = QUERY_VALUE_EXPRESSION__BASIC_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Like Pattern</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_ATOMIC__LIKE_PATTERN = QUERY_VALUE_EXPRESSION__LIKE_PATTERN;
+
+	/**
+     * The feature id for the '<em><b>Like Matching</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_ATOMIC__LIKE_MATCHING = QUERY_VALUE_EXPRESSION__LIKE_MATCHING;
+
+	/**
+     * The feature id for the '<em><b>Predicate Null</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_ATOMIC__PREDICATE_NULL = QUERY_VALUE_EXPRESSION__PREDICATE_NULL;
+
+	/**
+     * The feature id for the '<em><b>In Value List Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_ATOMIC__IN_VALUE_LIST_RIGHT = QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>In Value List Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_ATOMIC__IN_VALUE_LIST_LEFT = QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_ATOMIC__IN_VALUE_ROW_SELECT_LEFT = QUERY_VALUE_EXPRESSION__IN_VALUE_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_ATOMIC__IN_VALUE_SELECT_LEFT = QUERY_VALUE_EXPRESSION__IN_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_ATOMIC__QUANTIFIED_ROW_SELECT_LEFT = QUERY_VALUE_EXPRESSION__QUANTIFIED_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_ATOMIC__QUANTIFIED_VALUE_SELECT_LEFT = QUERY_VALUE_EXPRESSION__QUANTIFIED_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_ATOMIC__BETWEEN_LEFT = QUERY_VALUE_EXPRESSION__BETWEEN_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Right1</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_ATOMIC__BETWEEN_RIGHT1 = QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT1;
+
+	/**
+     * The feature id for the '<em><b>Between Right2</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_ATOMIC__BETWEEN_RIGHT2 = QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT2;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Cast</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CAST = QUERY_VALUE_EXPRESSION__VALUE_EXPR_CAST;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_FUNCTION = QUERY_VALUE_EXPRESSION__VALUE_EXPR_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_COMBINED_LEFT = QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_COMBINED_RIGHT = QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Grouping Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_ATOMIC__GROUPING_EXPR = QUERY_VALUE_EXPRESSION__GROUPING_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Else</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_ELSE = QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_ELSE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_SIMPLE = QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content When</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN = QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content Result</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT = QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_SEARCH_CONTENT = QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Like Escape</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_ATOMIC__LIKE_ESCAPE = QUERY_VALUE_EXPRESSION__LIKE_ESCAPE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Labeled Duration</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_LABELED_DURATION = QUERY_VALUE_EXPRESSION__VALUE_EXPR_LABELED_DURATION;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_ATOMIC__NEST = QUERY_VALUE_EXPRESSION__NEST;
+
+	/**
+     * The feature id for the '<em><b>Update Source Expr List</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_ATOMIC__UPDATE_SOURCE_EXPR_LIST = QUERY_VALUE_EXPRESSION__UPDATE_SOURCE_EXPR_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ATOMIC__TABLE_FUNCTION = QUERY_VALUE_EXPRESSION__TABLE_FUNCTION;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_ROW = QUERY_VALUE_EXPRESSION__VALUE_EXPR_ROW;
+
+    /**
+     * The feature id for the '<em><b>Call Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ATOMIC__CALL_STATEMENT = QUERY_VALUE_EXPRESSION__CALL_STATEMENT;
+
+    /**
+     * The number of structural features of the '<em>Value Expression Atomic</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_ATOMIC_FEATURE_COUNT = QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 0;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionSimpleImpl <em>Value Expression Simple</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionSimpleImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getValueExpressionSimple()
+     * @generated
+     */
+	int VALUE_EXPRESSION_SIMPLE = 38;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SIMPLE__EANNOTATIONS = VALUE_EXPRESSION_ATOMIC__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SIMPLE__NAME = VALUE_EXPRESSION_ATOMIC__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SIMPLE__DEPENDENCIES = VALUE_EXPRESSION_ATOMIC__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SIMPLE__DESCRIPTION = VALUE_EXPRESSION_ATOMIC__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SIMPLE__LABEL = VALUE_EXPRESSION_ATOMIC__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SIMPLE__COMMENTS = VALUE_EXPRESSION_ATOMIC__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_SIMPLE__EXTENSIONS = VALUE_EXPRESSION_ATOMIC__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SIMPLE__PRIVILEGES = VALUE_EXPRESSION_ATOMIC__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Unary Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SIMPLE__UNARY_OPERATOR = VALUE_EXPRESSION_ATOMIC__UNARY_OPERATOR;
+
+	/**
+     * The feature id for the '<em><b>Data Type</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SIMPLE__DATA_TYPE = VALUE_EXPRESSION_ATOMIC__DATA_TYPE;
+
+	/**
+     * The feature id for the '<em><b>Values Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SIMPLE__VALUES_ROW = VALUE_EXPRESSION_ATOMIC__VALUES_ROW;
+
+	/**
+     * The feature id for the '<em><b>Order By Value Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SIMPLE__ORDER_BY_VALUE_EXPR = VALUE_EXPRESSION_ATOMIC__ORDER_BY_VALUE_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Result Column</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SIMPLE__RESULT_COLUMN = VALUE_EXPRESSION_ATOMIC__RESULT_COLUMN;
+
+	/**
+     * The feature id for the '<em><b>Basic Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SIMPLE__BASIC_RIGHT = VALUE_EXPRESSION_ATOMIC__BASIC_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Basic Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SIMPLE__BASIC_LEFT = VALUE_EXPRESSION_ATOMIC__BASIC_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Like Pattern</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SIMPLE__LIKE_PATTERN = VALUE_EXPRESSION_ATOMIC__LIKE_PATTERN;
+
+	/**
+     * The feature id for the '<em><b>Like Matching</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SIMPLE__LIKE_MATCHING = VALUE_EXPRESSION_ATOMIC__LIKE_MATCHING;
+
+	/**
+     * The feature id for the '<em><b>Predicate Null</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SIMPLE__PREDICATE_NULL = VALUE_EXPRESSION_ATOMIC__PREDICATE_NULL;
+
+	/**
+     * The feature id for the '<em><b>In Value List Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SIMPLE__IN_VALUE_LIST_RIGHT = VALUE_EXPRESSION_ATOMIC__IN_VALUE_LIST_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>In Value List Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SIMPLE__IN_VALUE_LIST_LEFT = VALUE_EXPRESSION_ATOMIC__IN_VALUE_LIST_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SIMPLE__IN_VALUE_ROW_SELECT_LEFT = VALUE_EXPRESSION_ATOMIC__IN_VALUE_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SIMPLE__IN_VALUE_SELECT_LEFT = VALUE_EXPRESSION_ATOMIC__IN_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SIMPLE__QUANTIFIED_ROW_SELECT_LEFT = VALUE_EXPRESSION_ATOMIC__QUANTIFIED_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SIMPLE__QUANTIFIED_VALUE_SELECT_LEFT = VALUE_EXPRESSION_ATOMIC__QUANTIFIED_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SIMPLE__BETWEEN_LEFT = VALUE_EXPRESSION_ATOMIC__BETWEEN_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Right1</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SIMPLE__BETWEEN_RIGHT1 = VALUE_EXPRESSION_ATOMIC__BETWEEN_RIGHT1;
+
+	/**
+     * The feature id for the '<em><b>Between Right2</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SIMPLE__BETWEEN_RIGHT2 = VALUE_EXPRESSION_ATOMIC__BETWEEN_RIGHT2;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Cast</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SIMPLE__VALUE_EXPR_CAST = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CAST;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SIMPLE__VALUE_EXPR_FUNCTION = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SIMPLE__VALUE_EXPR_COMBINED_LEFT = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SIMPLE__VALUE_EXPR_COMBINED_RIGHT = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Grouping Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SIMPLE__GROUPING_EXPR = VALUE_EXPRESSION_ATOMIC__GROUPING_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Else</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SIMPLE__VALUE_EXPR_CASE_ELSE = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_ELSE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SIMPLE__VALUE_EXPR_CASE_SIMPLE = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_SIMPLE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content When</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SIMPLE__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content Result</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SIMPLE__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SIMPLE__VALUE_EXPR_CASE_SEARCH_CONTENT = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Like Escape</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SIMPLE__LIKE_ESCAPE = VALUE_EXPRESSION_ATOMIC__LIKE_ESCAPE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Labeled Duration</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SIMPLE__VALUE_EXPR_LABELED_DURATION = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_LABELED_DURATION;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SIMPLE__NEST = VALUE_EXPRESSION_ATOMIC__NEST;
+
+	/**
+     * The feature id for the '<em><b>Update Source Expr List</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SIMPLE__UPDATE_SOURCE_EXPR_LIST = VALUE_EXPRESSION_ATOMIC__UPDATE_SOURCE_EXPR_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_SIMPLE__TABLE_FUNCTION = VALUE_EXPRESSION_ATOMIC__TABLE_FUNCTION;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_SIMPLE__VALUE_EXPR_ROW = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_ROW;
+
+    /**
+     * The feature id for the '<em><b>Call Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_SIMPLE__CALL_STATEMENT = VALUE_EXPRESSION_ATOMIC__CALL_STATEMENT;
+
+    /**
+     * The feature id for the '<em><b>Value</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SIMPLE__VALUE = VALUE_EXPRESSION_ATOMIC_FEATURE_COUNT + 0;
+
+	/**
+     * The number of structural features of the '<em>Value Expression Simple</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SIMPLE_FEATURE_COUNT = VALUE_EXPRESSION_ATOMIC_FEATURE_COUNT + 1;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionColumnImpl <em>Value Expression Column</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionColumnImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getValueExpressionColumn()
+     * @generated
+     */
+	int VALUE_EXPRESSION_COLUMN = 39;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COLUMN__EANNOTATIONS = VALUE_EXPRESSION_ATOMIC__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COLUMN__NAME = VALUE_EXPRESSION_ATOMIC__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COLUMN__DEPENDENCIES = VALUE_EXPRESSION_ATOMIC__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COLUMN__DESCRIPTION = VALUE_EXPRESSION_ATOMIC__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COLUMN__LABEL = VALUE_EXPRESSION_ATOMIC__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COLUMN__COMMENTS = VALUE_EXPRESSION_ATOMIC__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_COLUMN__EXTENSIONS = VALUE_EXPRESSION_ATOMIC__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COLUMN__PRIVILEGES = VALUE_EXPRESSION_ATOMIC__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Unary Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COLUMN__UNARY_OPERATOR = VALUE_EXPRESSION_ATOMIC__UNARY_OPERATOR;
+
+	/**
+     * The feature id for the '<em><b>Data Type</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COLUMN__DATA_TYPE = VALUE_EXPRESSION_ATOMIC__DATA_TYPE;
+
+	/**
+     * The feature id for the '<em><b>Values Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COLUMN__VALUES_ROW = VALUE_EXPRESSION_ATOMIC__VALUES_ROW;
+
+	/**
+     * The feature id for the '<em><b>Order By Value Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COLUMN__ORDER_BY_VALUE_EXPR = VALUE_EXPRESSION_ATOMIC__ORDER_BY_VALUE_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Result Column</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COLUMN__RESULT_COLUMN = VALUE_EXPRESSION_ATOMIC__RESULT_COLUMN;
+
+	/**
+     * The feature id for the '<em><b>Basic Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COLUMN__BASIC_RIGHT = VALUE_EXPRESSION_ATOMIC__BASIC_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Basic Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COLUMN__BASIC_LEFT = VALUE_EXPRESSION_ATOMIC__BASIC_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Like Pattern</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COLUMN__LIKE_PATTERN = VALUE_EXPRESSION_ATOMIC__LIKE_PATTERN;
+
+	/**
+     * The feature id for the '<em><b>Like Matching</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COLUMN__LIKE_MATCHING = VALUE_EXPRESSION_ATOMIC__LIKE_MATCHING;
+
+	/**
+     * The feature id for the '<em><b>Predicate Null</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COLUMN__PREDICATE_NULL = VALUE_EXPRESSION_ATOMIC__PREDICATE_NULL;
+
+	/**
+     * The feature id for the '<em><b>In Value List Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COLUMN__IN_VALUE_LIST_RIGHT = VALUE_EXPRESSION_ATOMIC__IN_VALUE_LIST_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>In Value List Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COLUMN__IN_VALUE_LIST_LEFT = VALUE_EXPRESSION_ATOMIC__IN_VALUE_LIST_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COLUMN__IN_VALUE_ROW_SELECT_LEFT = VALUE_EXPRESSION_ATOMIC__IN_VALUE_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COLUMN__IN_VALUE_SELECT_LEFT = VALUE_EXPRESSION_ATOMIC__IN_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COLUMN__QUANTIFIED_ROW_SELECT_LEFT = VALUE_EXPRESSION_ATOMIC__QUANTIFIED_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COLUMN__QUANTIFIED_VALUE_SELECT_LEFT = VALUE_EXPRESSION_ATOMIC__QUANTIFIED_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COLUMN__BETWEEN_LEFT = VALUE_EXPRESSION_ATOMIC__BETWEEN_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Right1</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COLUMN__BETWEEN_RIGHT1 = VALUE_EXPRESSION_ATOMIC__BETWEEN_RIGHT1;
+
+	/**
+     * The feature id for the '<em><b>Between Right2</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COLUMN__BETWEEN_RIGHT2 = VALUE_EXPRESSION_ATOMIC__BETWEEN_RIGHT2;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Cast</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COLUMN__VALUE_EXPR_CAST = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CAST;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COLUMN__VALUE_EXPR_FUNCTION = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COLUMN__VALUE_EXPR_COMBINED_LEFT = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COLUMN__VALUE_EXPR_COMBINED_RIGHT = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Grouping Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COLUMN__GROUPING_EXPR = VALUE_EXPRESSION_ATOMIC__GROUPING_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Else</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COLUMN__VALUE_EXPR_CASE_ELSE = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_ELSE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COLUMN__VALUE_EXPR_CASE_SIMPLE = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_SIMPLE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content When</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COLUMN__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content Result</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COLUMN__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COLUMN__VALUE_EXPR_CASE_SEARCH_CONTENT = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Like Escape</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COLUMN__LIKE_ESCAPE = VALUE_EXPRESSION_ATOMIC__LIKE_ESCAPE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Labeled Duration</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COLUMN__VALUE_EXPR_LABELED_DURATION = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_LABELED_DURATION;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COLUMN__NEST = VALUE_EXPRESSION_ATOMIC__NEST;
+
+	/**
+     * The feature id for the '<em><b>Update Source Expr List</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COLUMN__UPDATE_SOURCE_EXPR_LIST = VALUE_EXPRESSION_ATOMIC__UPDATE_SOURCE_EXPR_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_COLUMN__TABLE_FUNCTION = VALUE_EXPRESSION_ATOMIC__TABLE_FUNCTION;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_COLUMN__VALUE_EXPR_ROW = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_ROW;
+
+    /**
+     * The feature id for the '<em><b>Call Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_COLUMN__CALL_STATEMENT = VALUE_EXPRESSION_ATOMIC__CALL_STATEMENT;
+
+    /**
+     * The feature id for the '<em><b>Assignment Expr Target</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COLUMN__ASSIGNMENT_EXPR_TARGET = VALUE_EXPRESSION_ATOMIC_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Parent Table Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COLUMN__PARENT_TABLE_EXPR = VALUE_EXPRESSION_ATOMIC_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>Insert Statement</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COLUMN__INSERT_STATEMENT = VALUE_EXPRESSION_ATOMIC_FEATURE_COUNT + 2;
+
+	/**
+     * The feature id for the '<em><b>Table Expr</b></em>' reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COLUMN__TABLE_EXPR = VALUE_EXPRESSION_ATOMIC_FEATURE_COUNT + 3;
+
+	/**
+     * The feature id for the '<em><b>Table In Database</b></em>' reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COLUMN__TABLE_IN_DATABASE = VALUE_EXPRESSION_ATOMIC_FEATURE_COUNT + 4;
+
+	/**
+     * The feature id for the '<em><b>Merge Insert Spec</b></em>' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_COLUMN__MERGE_INSERT_SPEC = VALUE_EXPRESSION_ATOMIC_FEATURE_COUNT + 5;
+
+    /**
+     * The number of structural features of the '<em>Value Expression Column</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COLUMN_FEATURE_COUNT = VALUE_EXPRESSION_ATOMIC_FEATURE_COUNT + 6;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionVariableImpl <em>Value Expression Variable</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionVariableImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getValueExpressionVariable()
+     * @generated
+     */
+	int VALUE_EXPRESSION_VARIABLE = 40;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_VARIABLE__EANNOTATIONS = VALUE_EXPRESSION_ATOMIC__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_VARIABLE__NAME = VALUE_EXPRESSION_ATOMIC__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_VARIABLE__DEPENDENCIES = VALUE_EXPRESSION_ATOMIC__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_VARIABLE__DESCRIPTION = VALUE_EXPRESSION_ATOMIC__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_VARIABLE__LABEL = VALUE_EXPRESSION_ATOMIC__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_VARIABLE__COMMENTS = VALUE_EXPRESSION_ATOMIC__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_VARIABLE__EXTENSIONS = VALUE_EXPRESSION_ATOMIC__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_VARIABLE__PRIVILEGES = VALUE_EXPRESSION_ATOMIC__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Unary Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_VARIABLE__UNARY_OPERATOR = VALUE_EXPRESSION_ATOMIC__UNARY_OPERATOR;
+
+	/**
+     * The feature id for the '<em><b>Data Type</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_VARIABLE__DATA_TYPE = VALUE_EXPRESSION_ATOMIC__DATA_TYPE;
+
+	/**
+     * The feature id for the '<em><b>Values Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_VARIABLE__VALUES_ROW = VALUE_EXPRESSION_ATOMIC__VALUES_ROW;
+
+	/**
+     * The feature id for the '<em><b>Order By Value Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_VARIABLE__ORDER_BY_VALUE_EXPR = VALUE_EXPRESSION_ATOMIC__ORDER_BY_VALUE_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Result Column</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_VARIABLE__RESULT_COLUMN = VALUE_EXPRESSION_ATOMIC__RESULT_COLUMN;
+
+	/**
+     * The feature id for the '<em><b>Basic Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_VARIABLE__BASIC_RIGHT = VALUE_EXPRESSION_ATOMIC__BASIC_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Basic Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_VARIABLE__BASIC_LEFT = VALUE_EXPRESSION_ATOMIC__BASIC_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Like Pattern</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_VARIABLE__LIKE_PATTERN = VALUE_EXPRESSION_ATOMIC__LIKE_PATTERN;
+
+	/**
+     * The feature id for the '<em><b>Like Matching</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_VARIABLE__LIKE_MATCHING = VALUE_EXPRESSION_ATOMIC__LIKE_MATCHING;
+
+	/**
+     * The feature id for the '<em><b>Predicate Null</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_VARIABLE__PREDICATE_NULL = VALUE_EXPRESSION_ATOMIC__PREDICATE_NULL;
+
+	/**
+     * The feature id for the '<em><b>In Value List Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_VARIABLE__IN_VALUE_LIST_RIGHT = VALUE_EXPRESSION_ATOMIC__IN_VALUE_LIST_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>In Value List Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_VARIABLE__IN_VALUE_LIST_LEFT = VALUE_EXPRESSION_ATOMIC__IN_VALUE_LIST_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_VARIABLE__IN_VALUE_ROW_SELECT_LEFT = VALUE_EXPRESSION_ATOMIC__IN_VALUE_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_VARIABLE__IN_VALUE_SELECT_LEFT = VALUE_EXPRESSION_ATOMIC__IN_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_VARIABLE__QUANTIFIED_ROW_SELECT_LEFT = VALUE_EXPRESSION_ATOMIC__QUANTIFIED_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_VARIABLE__QUANTIFIED_VALUE_SELECT_LEFT = VALUE_EXPRESSION_ATOMIC__QUANTIFIED_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_VARIABLE__BETWEEN_LEFT = VALUE_EXPRESSION_ATOMIC__BETWEEN_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Right1</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_VARIABLE__BETWEEN_RIGHT1 = VALUE_EXPRESSION_ATOMIC__BETWEEN_RIGHT1;
+
+	/**
+     * The feature id for the '<em><b>Between Right2</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_VARIABLE__BETWEEN_RIGHT2 = VALUE_EXPRESSION_ATOMIC__BETWEEN_RIGHT2;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Cast</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_VARIABLE__VALUE_EXPR_CAST = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CAST;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_VARIABLE__VALUE_EXPR_FUNCTION = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_VARIABLE__VALUE_EXPR_COMBINED_LEFT = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_VARIABLE__VALUE_EXPR_COMBINED_RIGHT = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Grouping Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_VARIABLE__GROUPING_EXPR = VALUE_EXPRESSION_ATOMIC__GROUPING_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Else</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_VARIABLE__VALUE_EXPR_CASE_ELSE = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_ELSE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_VARIABLE__VALUE_EXPR_CASE_SIMPLE = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_SIMPLE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content When</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_VARIABLE__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content Result</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_VARIABLE__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_VARIABLE__VALUE_EXPR_CASE_SEARCH_CONTENT = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Like Escape</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_VARIABLE__LIKE_ESCAPE = VALUE_EXPRESSION_ATOMIC__LIKE_ESCAPE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Labeled Duration</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_VARIABLE__VALUE_EXPR_LABELED_DURATION = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_LABELED_DURATION;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_VARIABLE__NEST = VALUE_EXPRESSION_ATOMIC__NEST;
+
+	/**
+     * The feature id for the '<em><b>Update Source Expr List</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_VARIABLE__UPDATE_SOURCE_EXPR_LIST = VALUE_EXPRESSION_ATOMIC__UPDATE_SOURCE_EXPR_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_VARIABLE__TABLE_FUNCTION = VALUE_EXPRESSION_ATOMIC__TABLE_FUNCTION;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_VARIABLE__VALUE_EXPR_ROW = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_ROW;
+
+    /**
+     * The feature id for the '<em><b>Call Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_VARIABLE__CALL_STATEMENT = VALUE_EXPRESSION_ATOMIC__CALL_STATEMENT;
+
+    /**
+     * The feature id for the '<em><b>Query Select</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_VARIABLE__QUERY_SELECT = VALUE_EXPRESSION_ATOMIC_FEATURE_COUNT + 0;
+
+	/**
+     * The number of structural features of the '<em>Value Expression Variable</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_VARIABLE_FEATURE_COUNT = VALUE_EXPRESSION_ATOMIC_FEATURE_COUNT + 1;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionScalarSelectImpl <em>Value Expression Scalar Select</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionScalarSelectImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getValueExpressionScalarSelect()
+     * @generated
+     */
+	int VALUE_EXPRESSION_SCALAR_SELECT = 41;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SCALAR_SELECT__EANNOTATIONS = VALUE_EXPRESSION_ATOMIC__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SCALAR_SELECT__NAME = VALUE_EXPRESSION_ATOMIC__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SCALAR_SELECT__DEPENDENCIES = VALUE_EXPRESSION_ATOMIC__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SCALAR_SELECT__DESCRIPTION = VALUE_EXPRESSION_ATOMIC__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SCALAR_SELECT__LABEL = VALUE_EXPRESSION_ATOMIC__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SCALAR_SELECT__COMMENTS = VALUE_EXPRESSION_ATOMIC__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_SCALAR_SELECT__EXTENSIONS = VALUE_EXPRESSION_ATOMIC__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SCALAR_SELECT__PRIVILEGES = VALUE_EXPRESSION_ATOMIC__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Unary Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SCALAR_SELECT__UNARY_OPERATOR = VALUE_EXPRESSION_ATOMIC__UNARY_OPERATOR;
+
+	/**
+     * The feature id for the '<em><b>Data Type</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SCALAR_SELECT__DATA_TYPE = VALUE_EXPRESSION_ATOMIC__DATA_TYPE;
+
+	/**
+     * The feature id for the '<em><b>Values Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SCALAR_SELECT__VALUES_ROW = VALUE_EXPRESSION_ATOMIC__VALUES_ROW;
+
+	/**
+     * The feature id for the '<em><b>Order By Value Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SCALAR_SELECT__ORDER_BY_VALUE_EXPR = VALUE_EXPRESSION_ATOMIC__ORDER_BY_VALUE_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Result Column</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SCALAR_SELECT__RESULT_COLUMN = VALUE_EXPRESSION_ATOMIC__RESULT_COLUMN;
+
+	/**
+     * The feature id for the '<em><b>Basic Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SCALAR_SELECT__BASIC_RIGHT = VALUE_EXPRESSION_ATOMIC__BASIC_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Basic Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SCALAR_SELECT__BASIC_LEFT = VALUE_EXPRESSION_ATOMIC__BASIC_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Like Pattern</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SCALAR_SELECT__LIKE_PATTERN = VALUE_EXPRESSION_ATOMIC__LIKE_PATTERN;
+
+	/**
+     * The feature id for the '<em><b>Like Matching</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SCALAR_SELECT__LIKE_MATCHING = VALUE_EXPRESSION_ATOMIC__LIKE_MATCHING;
+
+	/**
+     * The feature id for the '<em><b>Predicate Null</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SCALAR_SELECT__PREDICATE_NULL = VALUE_EXPRESSION_ATOMIC__PREDICATE_NULL;
+
+	/**
+     * The feature id for the '<em><b>In Value List Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SCALAR_SELECT__IN_VALUE_LIST_RIGHT = VALUE_EXPRESSION_ATOMIC__IN_VALUE_LIST_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>In Value List Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SCALAR_SELECT__IN_VALUE_LIST_LEFT = VALUE_EXPRESSION_ATOMIC__IN_VALUE_LIST_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SCALAR_SELECT__IN_VALUE_ROW_SELECT_LEFT = VALUE_EXPRESSION_ATOMIC__IN_VALUE_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SCALAR_SELECT__IN_VALUE_SELECT_LEFT = VALUE_EXPRESSION_ATOMIC__IN_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SCALAR_SELECT__QUANTIFIED_ROW_SELECT_LEFT = VALUE_EXPRESSION_ATOMIC__QUANTIFIED_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SCALAR_SELECT__QUANTIFIED_VALUE_SELECT_LEFT = VALUE_EXPRESSION_ATOMIC__QUANTIFIED_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SCALAR_SELECT__BETWEEN_LEFT = VALUE_EXPRESSION_ATOMIC__BETWEEN_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Right1</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SCALAR_SELECT__BETWEEN_RIGHT1 = VALUE_EXPRESSION_ATOMIC__BETWEEN_RIGHT1;
+
+	/**
+     * The feature id for the '<em><b>Between Right2</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SCALAR_SELECT__BETWEEN_RIGHT2 = VALUE_EXPRESSION_ATOMIC__BETWEEN_RIGHT2;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Cast</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SCALAR_SELECT__VALUE_EXPR_CAST = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CAST;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SCALAR_SELECT__VALUE_EXPR_FUNCTION = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SCALAR_SELECT__VALUE_EXPR_COMBINED_LEFT = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SCALAR_SELECT__VALUE_EXPR_COMBINED_RIGHT = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Grouping Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SCALAR_SELECT__GROUPING_EXPR = VALUE_EXPRESSION_ATOMIC__GROUPING_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Else</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SCALAR_SELECT__VALUE_EXPR_CASE_ELSE = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_ELSE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SCALAR_SELECT__VALUE_EXPR_CASE_SIMPLE = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_SIMPLE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content When</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SCALAR_SELECT__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content Result</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SCALAR_SELECT__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SCALAR_SELECT__VALUE_EXPR_CASE_SEARCH_CONTENT = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Like Escape</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SCALAR_SELECT__LIKE_ESCAPE = VALUE_EXPRESSION_ATOMIC__LIKE_ESCAPE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Labeled Duration</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SCALAR_SELECT__VALUE_EXPR_LABELED_DURATION = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_LABELED_DURATION;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SCALAR_SELECT__NEST = VALUE_EXPRESSION_ATOMIC__NEST;
+
+	/**
+     * The feature id for the '<em><b>Update Source Expr List</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SCALAR_SELECT__UPDATE_SOURCE_EXPR_LIST = VALUE_EXPRESSION_ATOMIC__UPDATE_SOURCE_EXPR_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_SCALAR_SELECT__TABLE_FUNCTION = VALUE_EXPRESSION_ATOMIC__TABLE_FUNCTION;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_SCALAR_SELECT__VALUE_EXPR_ROW = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_ROW;
+
+    /**
+     * The feature id for the '<em><b>Call Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_SCALAR_SELECT__CALL_STATEMENT = VALUE_EXPRESSION_ATOMIC__CALL_STATEMENT;
+
+    /**
+     * The feature id for the '<em><b>Query Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SCALAR_SELECT__QUERY_EXPR = VALUE_EXPRESSION_ATOMIC_FEATURE_COUNT + 0;
+
+	/**
+     * The number of structural features of the '<em>Value Expression Scalar Select</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_SCALAR_SELECT_FEATURE_COUNT = VALUE_EXPRESSION_ATOMIC_FEATURE_COUNT + 1;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionLabeledDurationImpl <em>Value Expression Labeled Duration</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionLabeledDurationImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getValueExpressionLabeledDuration()
+     * @generated
+     */
+	int VALUE_EXPRESSION_LABELED_DURATION = 42;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_LABELED_DURATION__EANNOTATIONS = VALUE_EXPRESSION_ATOMIC__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_LABELED_DURATION__NAME = VALUE_EXPRESSION_ATOMIC__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_LABELED_DURATION__DEPENDENCIES = VALUE_EXPRESSION_ATOMIC__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_LABELED_DURATION__DESCRIPTION = VALUE_EXPRESSION_ATOMIC__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_LABELED_DURATION__LABEL = VALUE_EXPRESSION_ATOMIC__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_LABELED_DURATION__COMMENTS = VALUE_EXPRESSION_ATOMIC__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_LABELED_DURATION__EXTENSIONS = VALUE_EXPRESSION_ATOMIC__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_LABELED_DURATION__PRIVILEGES = VALUE_EXPRESSION_ATOMIC__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Unary Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_LABELED_DURATION__UNARY_OPERATOR = VALUE_EXPRESSION_ATOMIC__UNARY_OPERATOR;
+
+	/**
+     * The feature id for the '<em><b>Data Type</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_LABELED_DURATION__DATA_TYPE = VALUE_EXPRESSION_ATOMIC__DATA_TYPE;
+
+	/**
+     * The feature id for the '<em><b>Values Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_LABELED_DURATION__VALUES_ROW = VALUE_EXPRESSION_ATOMIC__VALUES_ROW;
+
+	/**
+     * The feature id for the '<em><b>Order By Value Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_LABELED_DURATION__ORDER_BY_VALUE_EXPR = VALUE_EXPRESSION_ATOMIC__ORDER_BY_VALUE_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Result Column</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_LABELED_DURATION__RESULT_COLUMN = VALUE_EXPRESSION_ATOMIC__RESULT_COLUMN;
+
+	/**
+     * The feature id for the '<em><b>Basic Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_LABELED_DURATION__BASIC_RIGHT = VALUE_EXPRESSION_ATOMIC__BASIC_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Basic Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_LABELED_DURATION__BASIC_LEFT = VALUE_EXPRESSION_ATOMIC__BASIC_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Like Pattern</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_LABELED_DURATION__LIKE_PATTERN = VALUE_EXPRESSION_ATOMIC__LIKE_PATTERN;
+
+	/**
+     * The feature id for the '<em><b>Like Matching</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_LABELED_DURATION__LIKE_MATCHING = VALUE_EXPRESSION_ATOMIC__LIKE_MATCHING;
+
+	/**
+     * The feature id for the '<em><b>Predicate Null</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_LABELED_DURATION__PREDICATE_NULL = VALUE_EXPRESSION_ATOMIC__PREDICATE_NULL;
+
+	/**
+     * The feature id for the '<em><b>In Value List Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_LABELED_DURATION__IN_VALUE_LIST_RIGHT = VALUE_EXPRESSION_ATOMIC__IN_VALUE_LIST_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>In Value List Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_LABELED_DURATION__IN_VALUE_LIST_LEFT = VALUE_EXPRESSION_ATOMIC__IN_VALUE_LIST_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_LABELED_DURATION__IN_VALUE_ROW_SELECT_LEFT = VALUE_EXPRESSION_ATOMIC__IN_VALUE_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_LABELED_DURATION__IN_VALUE_SELECT_LEFT = VALUE_EXPRESSION_ATOMIC__IN_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_LABELED_DURATION__QUANTIFIED_ROW_SELECT_LEFT = VALUE_EXPRESSION_ATOMIC__QUANTIFIED_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_LABELED_DURATION__QUANTIFIED_VALUE_SELECT_LEFT = VALUE_EXPRESSION_ATOMIC__QUANTIFIED_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_LABELED_DURATION__BETWEEN_LEFT = VALUE_EXPRESSION_ATOMIC__BETWEEN_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Right1</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_LABELED_DURATION__BETWEEN_RIGHT1 = VALUE_EXPRESSION_ATOMIC__BETWEEN_RIGHT1;
+
+	/**
+     * The feature id for the '<em><b>Between Right2</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_LABELED_DURATION__BETWEEN_RIGHT2 = VALUE_EXPRESSION_ATOMIC__BETWEEN_RIGHT2;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Cast</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_LABELED_DURATION__VALUE_EXPR_CAST = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CAST;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_LABELED_DURATION__VALUE_EXPR_FUNCTION = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_LABELED_DURATION__VALUE_EXPR_COMBINED_LEFT = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_LABELED_DURATION__VALUE_EXPR_COMBINED_RIGHT = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Grouping Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_LABELED_DURATION__GROUPING_EXPR = VALUE_EXPRESSION_ATOMIC__GROUPING_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Else</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_LABELED_DURATION__VALUE_EXPR_CASE_ELSE = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_ELSE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_LABELED_DURATION__VALUE_EXPR_CASE_SIMPLE = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_SIMPLE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content When</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_LABELED_DURATION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content Result</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_LABELED_DURATION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_LABELED_DURATION__VALUE_EXPR_CASE_SEARCH_CONTENT = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Like Escape</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_LABELED_DURATION__LIKE_ESCAPE = VALUE_EXPRESSION_ATOMIC__LIKE_ESCAPE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Labeled Duration</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_LABELED_DURATION__VALUE_EXPR_LABELED_DURATION = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_LABELED_DURATION;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_LABELED_DURATION__NEST = VALUE_EXPRESSION_ATOMIC__NEST;
+
+	/**
+     * The feature id for the '<em><b>Update Source Expr List</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_LABELED_DURATION__UPDATE_SOURCE_EXPR_LIST = VALUE_EXPRESSION_ATOMIC__UPDATE_SOURCE_EXPR_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_LABELED_DURATION__TABLE_FUNCTION = VALUE_EXPRESSION_ATOMIC__TABLE_FUNCTION;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_LABELED_DURATION__VALUE_EXPR_ROW = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_ROW;
+
+    /**
+     * The feature id for the '<em><b>Call Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_LABELED_DURATION__CALL_STATEMENT = VALUE_EXPRESSION_ATOMIC__CALL_STATEMENT;
+
+    /**
+     * The feature id for the '<em><b>Labeled Duration Type</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_LABELED_DURATION__LABELED_DURATION_TYPE = VALUE_EXPRESSION_ATOMIC_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_LABELED_DURATION__VALUE_EXPR = VALUE_EXPRESSION_ATOMIC_FEATURE_COUNT + 1;
+
+	/**
+     * The number of structural features of the '<em>Value Expression Labeled Duration</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_LABELED_DURATION_FEATURE_COUNT = VALUE_EXPRESSION_ATOMIC_FEATURE_COUNT + 2;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCaseImpl <em>Value Expression Case</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCaseImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getValueExpressionCase()
+     * @generated
+     */
+	int VALUE_EXPRESSION_CASE = 43;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE__EANNOTATIONS = VALUE_EXPRESSION_ATOMIC__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE__NAME = VALUE_EXPRESSION_ATOMIC__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE__DEPENDENCIES = VALUE_EXPRESSION_ATOMIC__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE__DESCRIPTION = VALUE_EXPRESSION_ATOMIC__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE__LABEL = VALUE_EXPRESSION_ATOMIC__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE__COMMENTS = VALUE_EXPRESSION_ATOMIC__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_CASE__EXTENSIONS = VALUE_EXPRESSION_ATOMIC__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE__PRIVILEGES = VALUE_EXPRESSION_ATOMIC__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Unary Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE__UNARY_OPERATOR = VALUE_EXPRESSION_ATOMIC__UNARY_OPERATOR;
+
+	/**
+     * The feature id for the '<em><b>Data Type</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE__DATA_TYPE = VALUE_EXPRESSION_ATOMIC__DATA_TYPE;
+
+	/**
+     * The feature id for the '<em><b>Values Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE__VALUES_ROW = VALUE_EXPRESSION_ATOMIC__VALUES_ROW;
+
+	/**
+     * The feature id for the '<em><b>Order By Value Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE__ORDER_BY_VALUE_EXPR = VALUE_EXPRESSION_ATOMIC__ORDER_BY_VALUE_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Result Column</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE__RESULT_COLUMN = VALUE_EXPRESSION_ATOMIC__RESULT_COLUMN;
+
+	/**
+     * The feature id for the '<em><b>Basic Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE__BASIC_RIGHT = VALUE_EXPRESSION_ATOMIC__BASIC_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Basic Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE__BASIC_LEFT = VALUE_EXPRESSION_ATOMIC__BASIC_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Like Pattern</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE__LIKE_PATTERN = VALUE_EXPRESSION_ATOMIC__LIKE_PATTERN;
+
+	/**
+     * The feature id for the '<em><b>Like Matching</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE__LIKE_MATCHING = VALUE_EXPRESSION_ATOMIC__LIKE_MATCHING;
+
+	/**
+     * The feature id for the '<em><b>Predicate Null</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE__PREDICATE_NULL = VALUE_EXPRESSION_ATOMIC__PREDICATE_NULL;
+
+	/**
+     * The feature id for the '<em><b>In Value List Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE__IN_VALUE_LIST_RIGHT = VALUE_EXPRESSION_ATOMIC__IN_VALUE_LIST_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>In Value List Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE__IN_VALUE_LIST_LEFT = VALUE_EXPRESSION_ATOMIC__IN_VALUE_LIST_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE__IN_VALUE_ROW_SELECT_LEFT = VALUE_EXPRESSION_ATOMIC__IN_VALUE_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE__IN_VALUE_SELECT_LEFT = VALUE_EXPRESSION_ATOMIC__IN_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE__QUANTIFIED_ROW_SELECT_LEFT = VALUE_EXPRESSION_ATOMIC__QUANTIFIED_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE__QUANTIFIED_VALUE_SELECT_LEFT = VALUE_EXPRESSION_ATOMIC__QUANTIFIED_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE__BETWEEN_LEFT = VALUE_EXPRESSION_ATOMIC__BETWEEN_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Right1</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE__BETWEEN_RIGHT1 = VALUE_EXPRESSION_ATOMIC__BETWEEN_RIGHT1;
+
+	/**
+     * The feature id for the '<em><b>Between Right2</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE__BETWEEN_RIGHT2 = VALUE_EXPRESSION_ATOMIC__BETWEEN_RIGHT2;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Cast</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE__VALUE_EXPR_CAST = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CAST;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE__VALUE_EXPR_FUNCTION = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE__VALUE_EXPR_COMBINED_LEFT = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE__VALUE_EXPR_COMBINED_RIGHT = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Grouping Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE__GROUPING_EXPR = VALUE_EXPRESSION_ATOMIC__GROUPING_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Else</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE__VALUE_EXPR_CASE_ELSE = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_ELSE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE__VALUE_EXPR_CASE_SIMPLE = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_SIMPLE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content When</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content Result</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE__VALUE_EXPR_CASE_SEARCH_CONTENT = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Like Escape</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE__LIKE_ESCAPE = VALUE_EXPRESSION_ATOMIC__LIKE_ESCAPE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Labeled Duration</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE__VALUE_EXPR_LABELED_DURATION = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_LABELED_DURATION;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE__NEST = VALUE_EXPRESSION_ATOMIC__NEST;
+
+	/**
+     * The feature id for the '<em><b>Update Source Expr List</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE__UPDATE_SOURCE_EXPR_LIST = VALUE_EXPRESSION_ATOMIC__UPDATE_SOURCE_EXPR_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_CASE__TABLE_FUNCTION = VALUE_EXPRESSION_ATOMIC__TABLE_FUNCTION;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_CASE__VALUE_EXPR_ROW = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_ROW;
+
+    /**
+     * The feature id for the '<em><b>Call Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_CASE__CALL_STATEMENT = VALUE_EXPRESSION_ATOMIC__CALL_STATEMENT;
+
+    /**
+     * The feature id for the '<em><b>Case Else</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE__CASE_ELSE = VALUE_EXPRESSION_ATOMIC_FEATURE_COUNT + 0;
+
+	/**
+     * The number of structural features of the '<em>Value Expression Case</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_FEATURE_COUNT = VALUE_EXPRESSION_ATOMIC_FEATURE_COUNT + 1;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCastImpl <em>Value Expression Cast</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCastImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getValueExpressionCast()
+     * @generated
+     */
+	int VALUE_EXPRESSION_CAST = 44;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CAST__EANNOTATIONS = VALUE_EXPRESSION_ATOMIC__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CAST__NAME = VALUE_EXPRESSION_ATOMIC__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CAST__DEPENDENCIES = VALUE_EXPRESSION_ATOMIC__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CAST__DESCRIPTION = VALUE_EXPRESSION_ATOMIC__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CAST__LABEL = VALUE_EXPRESSION_ATOMIC__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CAST__COMMENTS = VALUE_EXPRESSION_ATOMIC__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_CAST__EXTENSIONS = VALUE_EXPRESSION_ATOMIC__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CAST__PRIVILEGES = VALUE_EXPRESSION_ATOMIC__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Unary Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CAST__UNARY_OPERATOR = VALUE_EXPRESSION_ATOMIC__UNARY_OPERATOR;
+
+	/**
+     * The feature id for the '<em><b>Data Type</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CAST__DATA_TYPE = VALUE_EXPRESSION_ATOMIC__DATA_TYPE;
+
+	/**
+     * The feature id for the '<em><b>Values Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CAST__VALUES_ROW = VALUE_EXPRESSION_ATOMIC__VALUES_ROW;
+
+	/**
+     * The feature id for the '<em><b>Order By Value Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CAST__ORDER_BY_VALUE_EXPR = VALUE_EXPRESSION_ATOMIC__ORDER_BY_VALUE_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Result Column</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CAST__RESULT_COLUMN = VALUE_EXPRESSION_ATOMIC__RESULT_COLUMN;
+
+	/**
+     * The feature id for the '<em><b>Basic Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CAST__BASIC_RIGHT = VALUE_EXPRESSION_ATOMIC__BASIC_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Basic Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CAST__BASIC_LEFT = VALUE_EXPRESSION_ATOMIC__BASIC_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Like Pattern</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CAST__LIKE_PATTERN = VALUE_EXPRESSION_ATOMIC__LIKE_PATTERN;
+
+	/**
+     * The feature id for the '<em><b>Like Matching</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CAST__LIKE_MATCHING = VALUE_EXPRESSION_ATOMIC__LIKE_MATCHING;
+
+	/**
+     * The feature id for the '<em><b>Predicate Null</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CAST__PREDICATE_NULL = VALUE_EXPRESSION_ATOMIC__PREDICATE_NULL;
+
+	/**
+     * The feature id for the '<em><b>In Value List Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CAST__IN_VALUE_LIST_RIGHT = VALUE_EXPRESSION_ATOMIC__IN_VALUE_LIST_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>In Value List Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CAST__IN_VALUE_LIST_LEFT = VALUE_EXPRESSION_ATOMIC__IN_VALUE_LIST_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CAST__IN_VALUE_ROW_SELECT_LEFT = VALUE_EXPRESSION_ATOMIC__IN_VALUE_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CAST__IN_VALUE_SELECT_LEFT = VALUE_EXPRESSION_ATOMIC__IN_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CAST__QUANTIFIED_ROW_SELECT_LEFT = VALUE_EXPRESSION_ATOMIC__QUANTIFIED_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CAST__QUANTIFIED_VALUE_SELECT_LEFT = VALUE_EXPRESSION_ATOMIC__QUANTIFIED_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CAST__BETWEEN_LEFT = VALUE_EXPRESSION_ATOMIC__BETWEEN_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Right1</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CAST__BETWEEN_RIGHT1 = VALUE_EXPRESSION_ATOMIC__BETWEEN_RIGHT1;
+
+	/**
+     * The feature id for the '<em><b>Between Right2</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CAST__BETWEEN_RIGHT2 = VALUE_EXPRESSION_ATOMIC__BETWEEN_RIGHT2;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Cast</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CAST__VALUE_EXPR_CAST = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CAST;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CAST__VALUE_EXPR_FUNCTION = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CAST__VALUE_EXPR_COMBINED_LEFT = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CAST__VALUE_EXPR_COMBINED_RIGHT = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Grouping Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CAST__GROUPING_EXPR = VALUE_EXPRESSION_ATOMIC__GROUPING_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Else</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CAST__VALUE_EXPR_CASE_ELSE = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_ELSE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CAST__VALUE_EXPR_CASE_SIMPLE = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_SIMPLE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content When</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CAST__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content Result</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CAST__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CAST__VALUE_EXPR_CASE_SEARCH_CONTENT = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Like Escape</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CAST__LIKE_ESCAPE = VALUE_EXPRESSION_ATOMIC__LIKE_ESCAPE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Labeled Duration</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CAST__VALUE_EXPR_LABELED_DURATION = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_LABELED_DURATION;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CAST__NEST = VALUE_EXPRESSION_ATOMIC__NEST;
+
+	/**
+     * The feature id for the '<em><b>Update Source Expr List</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CAST__UPDATE_SOURCE_EXPR_LIST = VALUE_EXPRESSION_ATOMIC__UPDATE_SOURCE_EXPR_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_CAST__TABLE_FUNCTION = VALUE_EXPRESSION_ATOMIC__TABLE_FUNCTION;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_CAST__VALUE_EXPR_ROW = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_ROW;
+
+    /**
+     * The feature id for the '<em><b>Call Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_CAST__CALL_STATEMENT = VALUE_EXPRESSION_ATOMIC__CALL_STATEMENT;
+
+    /**
+     * The feature id for the '<em><b>Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CAST__VALUE_EXPR = VALUE_EXPRESSION_ATOMIC_FEATURE_COUNT + 0;
+
+	/**
+     * The number of structural features of the '<em>Value Expression Cast</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CAST_FEATURE_COUNT = VALUE_EXPRESSION_ATOMIC_FEATURE_COUNT + 1;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionNullValueImpl <em>Value Expression Null Value</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionNullValueImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getValueExpressionNullValue()
+     * @generated
+     */
+	int VALUE_EXPRESSION_NULL_VALUE = 45;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NULL_VALUE__EANNOTATIONS = VALUE_EXPRESSION_ATOMIC__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NULL_VALUE__NAME = VALUE_EXPRESSION_ATOMIC__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NULL_VALUE__DEPENDENCIES = VALUE_EXPRESSION_ATOMIC__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NULL_VALUE__DESCRIPTION = VALUE_EXPRESSION_ATOMIC__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NULL_VALUE__LABEL = VALUE_EXPRESSION_ATOMIC__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NULL_VALUE__COMMENTS = VALUE_EXPRESSION_ATOMIC__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_NULL_VALUE__EXTENSIONS = VALUE_EXPRESSION_ATOMIC__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NULL_VALUE__PRIVILEGES = VALUE_EXPRESSION_ATOMIC__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Unary Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NULL_VALUE__UNARY_OPERATOR = VALUE_EXPRESSION_ATOMIC__UNARY_OPERATOR;
+
+	/**
+     * The feature id for the '<em><b>Data Type</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NULL_VALUE__DATA_TYPE = VALUE_EXPRESSION_ATOMIC__DATA_TYPE;
+
+	/**
+     * The feature id for the '<em><b>Values Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NULL_VALUE__VALUES_ROW = VALUE_EXPRESSION_ATOMIC__VALUES_ROW;
+
+	/**
+     * The feature id for the '<em><b>Order By Value Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NULL_VALUE__ORDER_BY_VALUE_EXPR = VALUE_EXPRESSION_ATOMIC__ORDER_BY_VALUE_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Result Column</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NULL_VALUE__RESULT_COLUMN = VALUE_EXPRESSION_ATOMIC__RESULT_COLUMN;
+
+	/**
+     * The feature id for the '<em><b>Basic Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NULL_VALUE__BASIC_RIGHT = VALUE_EXPRESSION_ATOMIC__BASIC_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Basic Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NULL_VALUE__BASIC_LEFT = VALUE_EXPRESSION_ATOMIC__BASIC_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Like Pattern</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NULL_VALUE__LIKE_PATTERN = VALUE_EXPRESSION_ATOMIC__LIKE_PATTERN;
+
+	/**
+     * The feature id for the '<em><b>Like Matching</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NULL_VALUE__LIKE_MATCHING = VALUE_EXPRESSION_ATOMIC__LIKE_MATCHING;
+
+	/**
+     * The feature id for the '<em><b>Predicate Null</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NULL_VALUE__PREDICATE_NULL = VALUE_EXPRESSION_ATOMIC__PREDICATE_NULL;
+
+	/**
+     * The feature id for the '<em><b>In Value List Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NULL_VALUE__IN_VALUE_LIST_RIGHT = VALUE_EXPRESSION_ATOMIC__IN_VALUE_LIST_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>In Value List Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NULL_VALUE__IN_VALUE_LIST_LEFT = VALUE_EXPRESSION_ATOMIC__IN_VALUE_LIST_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NULL_VALUE__IN_VALUE_ROW_SELECT_LEFT = VALUE_EXPRESSION_ATOMIC__IN_VALUE_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NULL_VALUE__IN_VALUE_SELECT_LEFT = VALUE_EXPRESSION_ATOMIC__IN_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NULL_VALUE__QUANTIFIED_ROW_SELECT_LEFT = VALUE_EXPRESSION_ATOMIC__QUANTIFIED_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NULL_VALUE__QUANTIFIED_VALUE_SELECT_LEFT = VALUE_EXPRESSION_ATOMIC__QUANTIFIED_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NULL_VALUE__BETWEEN_LEFT = VALUE_EXPRESSION_ATOMIC__BETWEEN_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Right1</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NULL_VALUE__BETWEEN_RIGHT1 = VALUE_EXPRESSION_ATOMIC__BETWEEN_RIGHT1;
+
+	/**
+     * The feature id for the '<em><b>Between Right2</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NULL_VALUE__BETWEEN_RIGHT2 = VALUE_EXPRESSION_ATOMIC__BETWEEN_RIGHT2;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Cast</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NULL_VALUE__VALUE_EXPR_CAST = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CAST;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NULL_VALUE__VALUE_EXPR_FUNCTION = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NULL_VALUE__VALUE_EXPR_COMBINED_LEFT = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NULL_VALUE__VALUE_EXPR_COMBINED_RIGHT = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Grouping Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NULL_VALUE__GROUPING_EXPR = VALUE_EXPRESSION_ATOMIC__GROUPING_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Else</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NULL_VALUE__VALUE_EXPR_CASE_ELSE = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_ELSE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NULL_VALUE__VALUE_EXPR_CASE_SIMPLE = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_SIMPLE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content When</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NULL_VALUE__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content Result</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NULL_VALUE__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NULL_VALUE__VALUE_EXPR_CASE_SEARCH_CONTENT = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Like Escape</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NULL_VALUE__LIKE_ESCAPE = VALUE_EXPRESSION_ATOMIC__LIKE_ESCAPE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Labeled Duration</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NULL_VALUE__VALUE_EXPR_LABELED_DURATION = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_LABELED_DURATION;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NULL_VALUE__NEST = VALUE_EXPRESSION_ATOMIC__NEST;
+
+	/**
+     * The feature id for the '<em><b>Update Source Expr List</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NULL_VALUE__UPDATE_SOURCE_EXPR_LIST = VALUE_EXPRESSION_ATOMIC__UPDATE_SOURCE_EXPR_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_NULL_VALUE__TABLE_FUNCTION = VALUE_EXPRESSION_ATOMIC__TABLE_FUNCTION;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_NULL_VALUE__VALUE_EXPR_ROW = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_ROW;
+
+    /**
+     * The feature id for the '<em><b>Call Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_NULL_VALUE__CALL_STATEMENT = VALUE_EXPRESSION_ATOMIC__CALL_STATEMENT;
+
+    /**
+     * The number of structural features of the '<em>Value Expression Null Value</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NULL_VALUE_FEATURE_COUNT = VALUE_EXPRESSION_ATOMIC_FEATURE_COUNT + 0;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionDefaultValueImpl <em>Value Expression Default Value</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionDefaultValueImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getValueExpressionDefaultValue()
+     * @generated
+     */
+	int VALUE_EXPRESSION_DEFAULT_VALUE = 46;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_DEFAULT_VALUE__EANNOTATIONS = VALUE_EXPRESSION_ATOMIC__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_DEFAULT_VALUE__NAME = VALUE_EXPRESSION_ATOMIC__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_DEFAULT_VALUE__DEPENDENCIES = VALUE_EXPRESSION_ATOMIC__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_DEFAULT_VALUE__DESCRIPTION = VALUE_EXPRESSION_ATOMIC__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_DEFAULT_VALUE__LABEL = VALUE_EXPRESSION_ATOMIC__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_DEFAULT_VALUE__COMMENTS = VALUE_EXPRESSION_ATOMIC__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_DEFAULT_VALUE__EXTENSIONS = VALUE_EXPRESSION_ATOMIC__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_DEFAULT_VALUE__PRIVILEGES = VALUE_EXPRESSION_ATOMIC__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Unary Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_DEFAULT_VALUE__UNARY_OPERATOR = VALUE_EXPRESSION_ATOMIC__UNARY_OPERATOR;
+
+	/**
+     * The feature id for the '<em><b>Data Type</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_DEFAULT_VALUE__DATA_TYPE = VALUE_EXPRESSION_ATOMIC__DATA_TYPE;
+
+	/**
+     * The feature id for the '<em><b>Values Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_DEFAULT_VALUE__VALUES_ROW = VALUE_EXPRESSION_ATOMIC__VALUES_ROW;
+
+	/**
+     * The feature id for the '<em><b>Order By Value Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_DEFAULT_VALUE__ORDER_BY_VALUE_EXPR = VALUE_EXPRESSION_ATOMIC__ORDER_BY_VALUE_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Result Column</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_DEFAULT_VALUE__RESULT_COLUMN = VALUE_EXPRESSION_ATOMIC__RESULT_COLUMN;
+
+	/**
+     * The feature id for the '<em><b>Basic Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_DEFAULT_VALUE__BASIC_RIGHT = VALUE_EXPRESSION_ATOMIC__BASIC_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Basic Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_DEFAULT_VALUE__BASIC_LEFT = VALUE_EXPRESSION_ATOMIC__BASIC_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Like Pattern</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_DEFAULT_VALUE__LIKE_PATTERN = VALUE_EXPRESSION_ATOMIC__LIKE_PATTERN;
+
+	/**
+     * The feature id for the '<em><b>Like Matching</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_DEFAULT_VALUE__LIKE_MATCHING = VALUE_EXPRESSION_ATOMIC__LIKE_MATCHING;
+
+	/**
+     * The feature id for the '<em><b>Predicate Null</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_DEFAULT_VALUE__PREDICATE_NULL = VALUE_EXPRESSION_ATOMIC__PREDICATE_NULL;
+
+	/**
+     * The feature id for the '<em><b>In Value List Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_DEFAULT_VALUE__IN_VALUE_LIST_RIGHT = VALUE_EXPRESSION_ATOMIC__IN_VALUE_LIST_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>In Value List Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_DEFAULT_VALUE__IN_VALUE_LIST_LEFT = VALUE_EXPRESSION_ATOMIC__IN_VALUE_LIST_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_DEFAULT_VALUE__IN_VALUE_ROW_SELECT_LEFT = VALUE_EXPRESSION_ATOMIC__IN_VALUE_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_DEFAULT_VALUE__IN_VALUE_SELECT_LEFT = VALUE_EXPRESSION_ATOMIC__IN_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_DEFAULT_VALUE__QUANTIFIED_ROW_SELECT_LEFT = VALUE_EXPRESSION_ATOMIC__QUANTIFIED_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_DEFAULT_VALUE__QUANTIFIED_VALUE_SELECT_LEFT = VALUE_EXPRESSION_ATOMIC__QUANTIFIED_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_DEFAULT_VALUE__BETWEEN_LEFT = VALUE_EXPRESSION_ATOMIC__BETWEEN_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Right1</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_DEFAULT_VALUE__BETWEEN_RIGHT1 = VALUE_EXPRESSION_ATOMIC__BETWEEN_RIGHT1;
+
+	/**
+     * The feature id for the '<em><b>Between Right2</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_DEFAULT_VALUE__BETWEEN_RIGHT2 = VALUE_EXPRESSION_ATOMIC__BETWEEN_RIGHT2;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Cast</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_DEFAULT_VALUE__VALUE_EXPR_CAST = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CAST;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_DEFAULT_VALUE__VALUE_EXPR_FUNCTION = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_DEFAULT_VALUE__VALUE_EXPR_COMBINED_LEFT = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_DEFAULT_VALUE__VALUE_EXPR_COMBINED_RIGHT = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Grouping Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_DEFAULT_VALUE__GROUPING_EXPR = VALUE_EXPRESSION_ATOMIC__GROUPING_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Else</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_DEFAULT_VALUE__VALUE_EXPR_CASE_ELSE = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_ELSE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_DEFAULT_VALUE__VALUE_EXPR_CASE_SIMPLE = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_SIMPLE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content When</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_DEFAULT_VALUE__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content Result</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_DEFAULT_VALUE__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_DEFAULT_VALUE__VALUE_EXPR_CASE_SEARCH_CONTENT = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Like Escape</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_DEFAULT_VALUE__LIKE_ESCAPE = VALUE_EXPRESSION_ATOMIC__LIKE_ESCAPE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Labeled Duration</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_DEFAULT_VALUE__VALUE_EXPR_LABELED_DURATION = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_LABELED_DURATION;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_DEFAULT_VALUE__NEST = VALUE_EXPRESSION_ATOMIC__NEST;
+
+	/**
+     * The feature id for the '<em><b>Update Source Expr List</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_DEFAULT_VALUE__UPDATE_SOURCE_EXPR_LIST = VALUE_EXPRESSION_ATOMIC__UPDATE_SOURCE_EXPR_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_DEFAULT_VALUE__TABLE_FUNCTION = VALUE_EXPRESSION_ATOMIC__TABLE_FUNCTION;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_DEFAULT_VALUE__VALUE_EXPR_ROW = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_ROW;
+
+    /**
+     * The feature id for the '<em><b>Call Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_DEFAULT_VALUE__CALL_STATEMENT = VALUE_EXPRESSION_ATOMIC__CALL_STATEMENT;
+
+    /**
+     * The number of structural features of the '<em>Value Expression Default Value</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_DEFAULT_VALUE_FEATURE_COUNT = VALUE_EXPRESSION_ATOMIC_FEATURE_COUNT + 0;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionFunctionImpl <em>Value Expression Function</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionFunctionImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getValueExpressionFunction()
+     * @generated
+     */
+	int VALUE_EXPRESSION_FUNCTION = 47;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_FUNCTION__EANNOTATIONS = VALUE_EXPRESSION_ATOMIC__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_FUNCTION__NAME = VALUE_EXPRESSION_ATOMIC__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_FUNCTION__DEPENDENCIES = VALUE_EXPRESSION_ATOMIC__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_FUNCTION__DESCRIPTION = VALUE_EXPRESSION_ATOMIC__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_FUNCTION__LABEL = VALUE_EXPRESSION_ATOMIC__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_FUNCTION__COMMENTS = VALUE_EXPRESSION_ATOMIC__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_FUNCTION__EXTENSIONS = VALUE_EXPRESSION_ATOMIC__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_FUNCTION__PRIVILEGES = VALUE_EXPRESSION_ATOMIC__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Unary Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_FUNCTION__UNARY_OPERATOR = VALUE_EXPRESSION_ATOMIC__UNARY_OPERATOR;
+
+	/**
+     * The feature id for the '<em><b>Data Type</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_FUNCTION__DATA_TYPE = VALUE_EXPRESSION_ATOMIC__DATA_TYPE;
+
+	/**
+     * The feature id for the '<em><b>Values Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_FUNCTION__VALUES_ROW = VALUE_EXPRESSION_ATOMIC__VALUES_ROW;
+
+	/**
+     * The feature id for the '<em><b>Order By Value Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_FUNCTION__ORDER_BY_VALUE_EXPR = VALUE_EXPRESSION_ATOMIC__ORDER_BY_VALUE_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Result Column</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_FUNCTION__RESULT_COLUMN = VALUE_EXPRESSION_ATOMIC__RESULT_COLUMN;
+
+	/**
+     * The feature id for the '<em><b>Basic Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_FUNCTION__BASIC_RIGHT = VALUE_EXPRESSION_ATOMIC__BASIC_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Basic Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_FUNCTION__BASIC_LEFT = VALUE_EXPRESSION_ATOMIC__BASIC_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Like Pattern</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_FUNCTION__LIKE_PATTERN = VALUE_EXPRESSION_ATOMIC__LIKE_PATTERN;
+
+	/**
+     * The feature id for the '<em><b>Like Matching</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_FUNCTION__LIKE_MATCHING = VALUE_EXPRESSION_ATOMIC__LIKE_MATCHING;
+
+	/**
+     * The feature id for the '<em><b>Predicate Null</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_FUNCTION__PREDICATE_NULL = VALUE_EXPRESSION_ATOMIC__PREDICATE_NULL;
+
+	/**
+     * The feature id for the '<em><b>In Value List Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_FUNCTION__IN_VALUE_LIST_RIGHT = VALUE_EXPRESSION_ATOMIC__IN_VALUE_LIST_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>In Value List Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_FUNCTION__IN_VALUE_LIST_LEFT = VALUE_EXPRESSION_ATOMIC__IN_VALUE_LIST_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_FUNCTION__IN_VALUE_ROW_SELECT_LEFT = VALUE_EXPRESSION_ATOMIC__IN_VALUE_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_FUNCTION__IN_VALUE_SELECT_LEFT = VALUE_EXPRESSION_ATOMIC__IN_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_FUNCTION__QUANTIFIED_ROW_SELECT_LEFT = VALUE_EXPRESSION_ATOMIC__QUANTIFIED_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_FUNCTION__QUANTIFIED_VALUE_SELECT_LEFT = VALUE_EXPRESSION_ATOMIC__QUANTIFIED_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_FUNCTION__BETWEEN_LEFT = VALUE_EXPRESSION_ATOMIC__BETWEEN_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Right1</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_FUNCTION__BETWEEN_RIGHT1 = VALUE_EXPRESSION_ATOMIC__BETWEEN_RIGHT1;
+
+	/**
+     * The feature id for the '<em><b>Between Right2</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_FUNCTION__BETWEEN_RIGHT2 = VALUE_EXPRESSION_ATOMIC__BETWEEN_RIGHT2;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Cast</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_FUNCTION__VALUE_EXPR_CAST = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CAST;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_FUNCTION__VALUE_EXPR_FUNCTION = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_FUNCTION__VALUE_EXPR_COMBINED_LEFT = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_FUNCTION__VALUE_EXPR_COMBINED_RIGHT = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Grouping Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_FUNCTION__GROUPING_EXPR = VALUE_EXPRESSION_ATOMIC__GROUPING_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Else</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_FUNCTION__VALUE_EXPR_CASE_ELSE = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_ELSE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_FUNCTION__VALUE_EXPR_CASE_SIMPLE = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_SIMPLE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content When</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_FUNCTION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content Result</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_FUNCTION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_FUNCTION__VALUE_EXPR_CASE_SEARCH_CONTENT = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Like Escape</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_FUNCTION__LIKE_ESCAPE = VALUE_EXPRESSION_ATOMIC__LIKE_ESCAPE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Labeled Duration</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_FUNCTION__VALUE_EXPR_LABELED_DURATION = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_LABELED_DURATION;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_FUNCTION__NEST = VALUE_EXPRESSION_ATOMIC__NEST;
+
+	/**
+     * The feature id for the '<em><b>Update Source Expr List</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_FUNCTION__UPDATE_SOURCE_EXPR_LIST = VALUE_EXPRESSION_ATOMIC__UPDATE_SOURCE_EXPR_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_FUNCTION__TABLE_FUNCTION = VALUE_EXPRESSION_ATOMIC__TABLE_FUNCTION;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_FUNCTION__VALUE_EXPR_ROW = VALUE_EXPRESSION_ATOMIC__VALUE_EXPR_ROW;
+
+    /**
+     * The feature id for the '<em><b>Call Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_FUNCTION__CALL_STATEMENT = VALUE_EXPRESSION_ATOMIC__CALL_STATEMENT;
+
+    /**
+     * The feature id for the '<em><b>Special Register</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_FUNCTION__SPECIAL_REGISTER = VALUE_EXPRESSION_ATOMIC_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Distinct</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_FUNCTION__DISTINCT = VALUE_EXPRESSION_ATOMIC_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>Column Function</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_FUNCTION__COLUMN_FUNCTION = VALUE_EXPRESSION_ATOMIC_FEATURE_COUNT + 2;
+
+	/**
+     * The feature id for the '<em><b>Parameter List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_FUNCTION__PARAMETER_LIST = VALUE_EXPRESSION_ATOMIC_FEATURE_COUNT + 3;
+
+	/**
+     * The feature id for the '<em><b>Function</b></em>' reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_FUNCTION__FUNCTION = VALUE_EXPRESSION_ATOMIC_FEATURE_COUNT + 4;
+
+	/**
+     * The number of structural features of the '<em>Value Expression Function</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_FUNCTION_FEATURE_COUNT = VALUE_EXPRESSION_ATOMIC_FEATURE_COUNT + 5;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCombinedImpl <em>Value Expression Combined</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCombinedImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getValueExpressionCombined()
+     * @generated
+     */
+	int VALUE_EXPRESSION_COMBINED = 48;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COMBINED__EANNOTATIONS = QUERY_VALUE_EXPRESSION__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COMBINED__NAME = QUERY_VALUE_EXPRESSION__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COMBINED__DEPENDENCIES = QUERY_VALUE_EXPRESSION__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COMBINED__DESCRIPTION = QUERY_VALUE_EXPRESSION__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COMBINED__LABEL = QUERY_VALUE_EXPRESSION__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COMBINED__COMMENTS = QUERY_VALUE_EXPRESSION__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_COMBINED__EXTENSIONS = QUERY_VALUE_EXPRESSION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COMBINED__PRIVILEGES = QUERY_VALUE_EXPRESSION__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Unary Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COMBINED__UNARY_OPERATOR = QUERY_VALUE_EXPRESSION__UNARY_OPERATOR;
+
+	/**
+     * The feature id for the '<em><b>Data Type</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COMBINED__DATA_TYPE = QUERY_VALUE_EXPRESSION__DATA_TYPE;
+
+	/**
+     * The feature id for the '<em><b>Values Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COMBINED__VALUES_ROW = QUERY_VALUE_EXPRESSION__VALUES_ROW;
+
+	/**
+     * The feature id for the '<em><b>Order By Value Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COMBINED__ORDER_BY_VALUE_EXPR = QUERY_VALUE_EXPRESSION__ORDER_BY_VALUE_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Result Column</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COMBINED__RESULT_COLUMN = QUERY_VALUE_EXPRESSION__RESULT_COLUMN;
+
+	/**
+     * The feature id for the '<em><b>Basic Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COMBINED__BASIC_RIGHT = QUERY_VALUE_EXPRESSION__BASIC_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Basic Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COMBINED__BASIC_LEFT = QUERY_VALUE_EXPRESSION__BASIC_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Like Pattern</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COMBINED__LIKE_PATTERN = QUERY_VALUE_EXPRESSION__LIKE_PATTERN;
+
+	/**
+     * The feature id for the '<em><b>Like Matching</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COMBINED__LIKE_MATCHING = QUERY_VALUE_EXPRESSION__LIKE_MATCHING;
+
+	/**
+     * The feature id for the '<em><b>Predicate Null</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COMBINED__PREDICATE_NULL = QUERY_VALUE_EXPRESSION__PREDICATE_NULL;
+
+	/**
+     * The feature id for the '<em><b>In Value List Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COMBINED__IN_VALUE_LIST_RIGHT = QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>In Value List Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COMBINED__IN_VALUE_LIST_LEFT = QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COMBINED__IN_VALUE_ROW_SELECT_LEFT = QUERY_VALUE_EXPRESSION__IN_VALUE_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COMBINED__IN_VALUE_SELECT_LEFT = QUERY_VALUE_EXPRESSION__IN_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COMBINED__QUANTIFIED_ROW_SELECT_LEFT = QUERY_VALUE_EXPRESSION__QUANTIFIED_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COMBINED__QUANTIFIED_VALUE_SELECT_LEFT = QUERY_VALUE_EXPRESSION__QUANTIFIED_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COMBINED__BETWEEN_LEFT = QUERY_VALUE_EXPRESSION__BETWEEN_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Right1</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COMBINED__BETWEEN_RIGHT1 = QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT1;
+
+	/**
+     * The feature id for the '<em><b>Between Right2</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COMBINED__BETWEEN_RIGHT2 = QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT2;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Cast</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COMBINED__VALUE_EXPR_CAST = QUERY_VALUE_EXPRESSION__VALUE_EXPR_CAST;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COMBINED__VALUE_EXPR_FUNCTION = QUERY_VALUE_EXPRESSION__VALUE_EXPR_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COMBINED__VALUE_EXPR_COMBINED_LEFT = QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COMBINED__VALUE_EXPR_COMBINED_RIGHT = QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Grouping Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COMBINED__GROUPING_EXPR = QUERY_VALUE_EXPRESSION__GROUPING_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Else</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COMBINED__VALUE_EXPR_CASE_ELSE = QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_ELSE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COMBINED__VALUE_EXPR_CASE_SIMPLE = QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content When</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COMBINED__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN = QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content Result</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COMBINED__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT = QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COMBINED__VALUE_EXPR_CASE_SEARCH_CONTENT = QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Like Escape</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COMBINED__LIKE_ESCAPE = QUERY_VALUE_EXPRESSION__LIKE_ESCAPE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Labeled Duration</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COMBINED__VALUE_EXPR_LABELED_DURATION = QUERY_VALUE_EXPRESSION__VALUE_EXPR_LABELED_DURATION;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COMBINED__NEST = QUERY_VALUE_EXPRESSION__NEST;
+
+	/**
+     * The feature id for the '<em><b>Update Source Expr List</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COMBINED__UPDATE_SOURCE_EXPR_LIST = QUERY_VALUE_EXPRESSION__UPDATE_SOURCE_EXPR_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_COMBINED__TABLE_FUNCTION = QUERY_VALUE_EXPRESSION__TABLE_FUNCTION;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_COMBINED__VALUE_EXPR_ROW = QUERY_VALUE_EXPRESSION__VALUE_EXPR_ROW;
+
+    /**
+     * The feature id for the '<em><b>Call Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_COMBINED__CALL_STATEMENT = QUERY_VALUE_EXPRESSION__CALL_STATEMENT;
+
+    /**
+     * The feature id for the '<em><b>Combined Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COMBINED__COMBINED_OPERATOR = QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Left Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COMBINED__LEFT_VALUE_EXPR = QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>Right Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COMBINED__RIGHT_VALUE_EXPR = QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 2;
+
+	/**
+     * The number of structural features of the '<em>Value Expression Combined</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_COMBINED_FEATURE_COUNT = QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 3;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.GroupingSetsImpl <em>Grouping Sets</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.GroupingSetsImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getGroupingSets()
+     * @generated
+     */
+	int GROUPING_SETS = 49;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SETS__EANNOTATIONS = GROUPING_SPECIFICATION__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SETS__NAME = GROUPING_SPECIFICATION__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SETS__DEPENDENCIES = GROUPING_SPECIFICATION__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SETS__DESCRIPTION = GROUPING_SPECIFICATION__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SETS__LABEL = GROUPING_SPECIFICATION__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SETS__COMMENTS = GROUPING_SPECIFICATION__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int GROUPING_SETS__EXTENSIONS = GROUPING_SPECIFICATION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SETS__PRIVILEGES = GROUPING_SPECIFICATION__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Query Select</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SETS__QUERY_SELECT = GROUPING_SPECIFICATION__QUERY_SELECT;
+
+	/**
+     * The feature id for the '<em><b>Grouping Sets Element List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SETS__GROUPING_SETS_ELEMENT_LIST = GROUPING_SPECIFICATION_FEATURE_COUNT + 0;
+
+	/**
+     * The number of structural features of the '<em>Grouping Sets</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SETS_FEATURE_COUNT = GROUPING_SPECIFICATION_FEATURE_COUNT + 1;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.GroupingImpl <em>Grouping</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.GroupingImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getGrouping()
+     * @generated
+     */
+	int GROUPING = 50;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING__EANNOTATIONS = GROUPING_SPECIFICATION__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING__NAME = GROUPING_SPECIFICATION__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING__DEPENDENCIES = GROUPING_SPECIFICATION__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING__DESCRIPTION = GROUPING_SPECIFICATION__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING__LABEL = GROUPING_SPECIFICATION__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING__COMMENTS = GROUPING_SPECIFICATION__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int GROUPING__EXTENSIONS = GROUPING_SPECIFICATION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING__PRIVILEGES = GROUPING_SPECIFICATION__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Query Select</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING__QUERY_SELECT = GROUPING_SPECIFICATION__QUERY_SELECT;
+
+	/**
+     * The feature id for the '<em><b>Grouping Sets Element Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING__GROUPING_SETS_ELEMENT_EXPR = GROUPING_SPECIFICATION_FEATURE_COUNT + 0;
+
+	/**
+     * The number of structural features of the '<em>Grouping</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_FEATURE_COUNT = GROUPING_SPECIFICATION_FEATURE_COUNT + 1;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.GroupingSetsElementImpl <em>Grouping Sets Element</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.GroupingSetsElementImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getGroupingSetsElement()
+     * @generated
+     */
+	int GROUPING_SETS_ELEMENT = 51;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SETS_ELEMENT__EANNOTATIONS = SQL_QUERY_OBJECT__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SETS_ELEMENT__NAME = SQL_QUERY_OBJECT__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SETS_ELEMENT__DEPENDENCIES = SQL_QUERY_OBJECT__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SETS_ELEMENT__DESCRIPTION = SQL_QUERY_OBJECT__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SETS_ELEMENT__LABEL = SQL_QUERY_OBJECT__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SETS_ELEMENT__COMMENTS = SQL_QUERY_OBJECT__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int GROUPING_SETS_ELEMENT__EXTENSIONS = SQL_QUERY_OBJECT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SETS_ELEMENT__PRIVILEGES = SQL_QUERY_OBJECT__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Grouping Sets</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SETS_ELEMENT__GROUPING_SETS = SQL_QUERY_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+     * The number of structural features of the '<em>Grouping Sets Element</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SETS_ELEMENT_FEATURE_COUNT = SQL_QUERY_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.GroupingSetsElementSublistImpl <em>Grouping Sets Element Sublist</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.GroupingSetsElementSublistImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getGroupingSetsElementSublist()
+     * @generated
+     */
+	int GROUPING_SETS_ELEMENT_SUBLIST = 52;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SETS_ELEMENT_SUBLIST__EANNOTATIONS = GROUPING_SETS_ELEMENT__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SETS_ELEMENT_SUBLIST__NAME = GROUPING_SETS_ELEMENT__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SETS_ELEMENT_SUBLIST__DEPENDENCIES = GROUPING_SETS_ELEMENT__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SETS_ELEMENT_SUBLIST__DESCRIPTION = GROUPING_SETS_ELEMENT__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SETS_ELEMENT_SUBLIST__LABEL = GROUPING_SETS_ELEMENT__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SETS_ELEMENT_SUBLIST__COMMENTS = GROUPING_SETS_ELEMENT__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int GROUPING_SETS_ELEMENT_SUBLIST__EXTENSIONS = GROUPING_SETS_ELEMENT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SETS_ELEMENT_SUBLIST__PRIVILEGES = GROUPING_SETS_ELEMENT__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Grouping Sets</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SETS_ELEMENT_SUBLIST__GROUPING_SETS = GROUPING_SETS_ELEMENT__GROUPING_SETS;
+
+	/**
+     * The feature id for the '<em><b>Grouping Sets Element Expr List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SETS_ELEMENT_SUBLIST__GROUPING_SETS_ELEMENT_EXPR_LIST = GROUPING_SETS_ELEMENT_FEATURE_COUNT + 0;
+
+	/**
+     * The number of structural features of the '<em>Grouping Sets Element Sublist</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SETS_ELEMENT_SUBLIST_FEATURE_COUNT = GROUPING_SETS_ELEMENT_FEATURE_COUNT + 1;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.GroupingSetsElementExpressionImpl <em>Grouping Sets Element Expression</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.GroupingSetsElementExpressionImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getGroupingSetsElementExpression()
+     * @generated
+     */
+	int GROUPING_SETS_ELEMENT_EXPRESSION = 53;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SETS_ELEMENT_EXPRESSION__EANNOTATIONS = GROUPING_SETS_ELEMENT__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SETS_ELEMENT_EXPRESSION__NAME = GROUPING_SETS_ELEMENT__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SETS_ELEMENT_EXPRESSION__DEPENDENCIES = GROUPING_SETS_ELEMENT__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SETS_ELEMENT_EXPRESSION__DESCRIPTION = GROUPING_SETS_ELEMENT__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SETS_ELEMENT_EXPRESSION__LABEL = GROUPING_SETS_ELEMENT__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SETS_ELEMENT_EXPRESSION__COMMENTS = GROUPING_SETS_ELEMENT__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int GROUPING_SETS_ELEMENT_EXPRESSION__EXTENSIONS = GROUPING_SETS_ELEMENT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SETS_ELEMENT_EXPRESSION__PRIVILEGES = GROUPING_SETS_ELEMENT__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Grouping Sets</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SETS_ELEMENT_EXPRESSION__GROUPING_SETS = GROUPING_SETS_ELEMENT__GROUPING_SETS;
+
+	/**
+     * The feature id for the '<em><b>Grouping Sets Element Sublist</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SETS_ELEMENT_EXPRESSION__GROUPING_SETS_ELEMENT_SUBLIST = GROUPING_SETS_ELEMENT_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Grouping</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SETS_ELEMENT_EXPRESSION__GROUPING = GROUPING_SETS_ELEMENT_FEATURE_COUNT + 1;
+
+	/**
+     * The number of structural features of the '<em>Grouping Sets Element Expression</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_SETS_ELEMENT_EXPRESSION_FEATURE_COUNT = GROUPING_SETS_ELEMENT_FEATURE_COUNT + 2;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.SuperGroupImpl <em>Super Group</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SuperGroupImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getSuperGroup()
+     * @generated
+     */
+	int SUPER_GROUP = 54;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SUPER_GROUP__EANNOTATIONS = GROUPING__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SUPER_GROUP__NAME = GROUPING__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SUPER_GROUP__DEPENDENCIES = GROUPING__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SUPER_GROUP__DESCRIPTION = GROUPING__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SUPER_GROUP__LABEL = GROUPING__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SUPER_GROUP__COMMENTS = GROUPING__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int SUPER_GROUP__EXTENSIONS = GROUPING__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SUPER_GROUP__PRIVILEGES = GROUPING__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Query Select</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SUPER_GROUP__QUERY_SELECT = GROUPING__QUERY_SELECT;
+
+	/**
+     * The feature id for the '<em><b>Grouping Sets Element Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SUPER_GROUP__GROUPING_SETS_ELEMENT_EXPR = GROUPING__GROUPING_SETS_ELEMENT_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Super Group Type</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SUPER_GROUP__SUPER_GROUP_TYPE = GROUPING_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Super Group Element List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SUPER_GROUP__SUPER_GROUP_ELEMENT_LIST = GROUPING_FEATURE_COUNT + 1;
+
+	/**
+     * The number of structural features of the '<em>Super Group</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SUPER_GROUP_FEATURE_COUNT = GROUPING_FEATURE_COUNT + 2;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.GroupingExpressionImpl <em>Grouping Expression</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.GroupingExpressionImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getGroupingExpression()
+     * @generated
+     */
+	int GROUPING_EXPRESSION = 55;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_EXPRESSION__EANNOTATIONS = GROUPING__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_EXPRESSION__NAME = GROUPING__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_EXPRESSION__DEPENDENCIES = GROUPING__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_EXPRESSION__DESCRIPTION = GROUPING__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_EXPRESSION__LABEL = GROUPING__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_EXPRESSION__COMMENTS = GROUPING__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int GROUPING_EXPRESSION__EXTENSIONS = GROUPING__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_EXPRESSION__PRIVILEGES = GROUPING__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Query Select</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_EXPRESSION__QUERY_SELECT = GROUPING__QUERY_SELECT;
+
+	/**
+     * The feature id for the '<em><b>Grouping Sets Element Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_EXPRESSION__GROUPING_SETS_ELEMENT_EXPR = GROUPING__GROUPING_SETS_ELEMENT_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_EXPRESSION__VALUE_EXPR = GROUPING_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Super Group Element Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_EXPRESSION__SUPER_GROUP_ELEMENT_EXPR = GROUPING_FEATURE_COUNT + 1;
+
+	/**
+     * The number of structural features of the '<em>Grouping Expression</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int GROUPING_EXPRESSION_FEATURE_COUNT = GROUPING_FEATURE_COUNT + 2;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.SuperGroupElementImpl <em>Super Group Element</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SuperGroupElementImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getSuperGroupElement()
+     * @generated
+     */
+	int SUPER_GROUP_ELEMENT = 56;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SUPER_GROUP_ELEMENT__EANNOTATIONS = SQL_QUERY_OBJECT__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SUPER_GROUP_ELEMENT__NAME = SQL_QUERY_OBJECT__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SUPER_GROUP_ELEMENT__DEPENDENCIES = SQL_QUERY_OBJECT__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SUPER_GROUP_ELEMENT__DESCRIPTION = SQL_QUERY_OBJECT__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SUPER_GROUP_ELEMENT__LABEL = SQL_QUERY_OBJECT__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SUPER_GROUP_ELEMENT__COMMENTS = SQL_QUERY_OBJECT__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int SUPER_GROUP_ELEMENT__EXTENSIONS = SQL_QUERY_OBJECT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SUPER_GROUP_ELEMENT__PRIVILEGES = SQL_QUERY_OBJECT__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Super Group</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SUPER_GROUP_ELEMENT__SUPER_GROUP = SQL_QUERY_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+     * The number of structural features of the '<em>Super Group Element</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SUPER_GROUP_ELEMENT_FEATURE_COUNT = SQL_QUERY_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.SuperGroupElementSublistImpl <em>Super Group Element Sublist</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SuperGroupElementSublistImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getSuperGroupElementSublist()
+     * @generated
+     */
+	int SUPER_GROUP_ELEMENT_SUBLIST = 57;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SUPER_GROUP_ELEMENT_SUBLIST__EANNOTATIONS = SUPER_GROUP_ELEMENT__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SUPER_GROUP_ELEMENT_SUBLIST__NAME = SUPER_GROUP_ELEMENT__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SUPER_GROUP_ELEMENT_SUBLIST__DEPENDENCIES = SUPER_GROUP_ELEMENT__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SUPER_GROUP_ELEMENT_SUBLIST__DESCRIPTION = SUPER_GROUP_ELEMENT__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SUPER_GROUP_ELEMENT_SUBLIST__LABEL = SUPER_GROUP_ELEMENT__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SUPER_GROUP_ELEMENT_SUBLIST__COMMENTS = SUPER_GROUP_ELEMENT__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int SUPER_GROUP_ELEMENT_SUBLIST__EXTENSIONS = SUPER_GROUP_ELEMENT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SUPER_GROUP_ELEMENT_SUBLIST__PRIVILEGES = SUPER_GROUP_ELEMENT__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Super Group</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SUPER_GROUP_ELEMENT_SUBLIST__SUPER_GROUP = SUPER_GROUP_ELEMENT__SUPER_GROUP;
+
+	/**
+     * The feature id for the '<em><b>Super Group Element Expr List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SUPER_GROUP_ELEMENT_SUBLIST__SUPER_GROUP_ELEMENT_EXPR_LIST = SUPER_GROUP_ELEMENT_FEATURE_COUNT + 0;
+
+	/**
+     * The number of structural features of the '<em>Super Group Element Sublist</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SUPER_GROUP_ELEMENT_SUBLIST_FEATURE_COUNT = SUPER_GROUP_ELEMENT_FEATURE_COUNT + 1;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.SuperGroupElementExpressionImpl <em>Super Group Element Expression</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SuperGroupElementExpressionImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getSuperGroupElementExpression()
+     * @generated
+     */
+	int SUPER_GROUP_ELEMENT_EXPRESSION = 58;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SUPER_GROUP_ELEMENT_EXPRESSION__EANNOTATIONS = SUPER_GROUP_ELEMENT__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SUPER_GROUP_ELEMENT_EXPRESSION__NAME = SUPER_GROUP_ELEMENT__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SUPER_GROUP_ELEMENT_EXPRESSION__DEPENDENCIES = SUPER_GROUP_ELEMENT__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SUPER_GROUP_ELEMENT_EXPRESSION__DESCRIPTION = SUPER_GROUP_ELEMENT__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SUPER_GROUP_ELEMENT_EXPRESSION__LABEL = SUPER_GROUP_ELEMENT__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SUPER_GROUP_ELEMENT_EXPRESSION__COMMENTS = SUPER_GROUP_ELEMENT__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int SUPER_GROUP_ELEMENT_EXPRESSION__EXTENSIONS = SUPER_GROUP_ELEMENT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SUPER_GROUP_ELEMENT_EXPRESSION__PRIVILEGES = SUPER_GROUP_ELEMENT__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Super Group</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SUPER_GROUP_ELEMENT_EXPRESSION__SUPER_GROUP = SUPER_GROUP_ELEMENT__SUPER_GROUP;
+
+	/**
+     * The feature id for the '<em><b>Super Group Element Sublist</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SUPER_GROUP_ELEMENT_EXPRESSION__SUPER_GROUP_ELEMENT_SUBLIST = SUPER_GROUP_ELEMENT_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Grouping Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SUPER_GROUP_ELEMENT_EXPRESSION__GROUPING_EXPR = SUPER_GROUP_ELEMENT_FEATURE_COUNT + 1;
+
+	/**
+     * The number of structural features of the '<em>Super Group Element Expression</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SUPER_GROUP_ELEMENT_EXPRESSION_FEATURE_COUNT = SUPER_GROUP_ELEMENT_FEATURE_COUNT + 2;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCaseSearchImpl <em>Value Expression Case Search</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCaseSearchImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getValueExpressionCaseSearch()
+     * @generated
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH = 59;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH__EANNOTATIONS = VALUE_EXPRESSION_CASE__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH__NAME = VALUE_EXPRESSION_CASE__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH__DEPENDENCIES = VALUE_EXPRESSION_CASE__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH__DESCRIPTION = VALUE_EXPRESSION_CASE__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH__LABEL = VALUE_EXPRESSION_CASE__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH__COMMENTS = VALUE_EXPRESSION_CASE__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_CASE_SEARCH__EXTENSIONS = VALUE_EXPRESSION_CASE__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH__PRIVILEGES = VALUE_EXPRESSION_CASE__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Unary Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH__UNARY_OPERATOR = VALUE_EXPRESSION_CASE__UNARY_OPERATOR;
+
+	/**
+     * The feature id for the '<em><b>Data Type</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH__DATA_TYPE = VALUE_EXPRESSION_CASE__DATA_TYPE;
+
+	/**
+     * The feature id for the '<em><b>Values Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH__VALUES_ROW = VALUE_EXPRESSION_CASE__VALUES_ROW;
+
+	/**
+     * The feature id for the '<em><b>Order By Value Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH__ORDER_BY_VALUE_EXPR = VALUE_EXPRESSION_CASE__ORDER_BY_VALUE_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Result Column</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH__RESULT_COLUMN = VALUE_EXPRESSION_CASE__RESULT_COLUMN;
+
+	/**
+     * The feature id for the '<em><b>Basic Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH__BASIC_RIGHT = VALUE_EXPRESSION_CASE__BASIC_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Basic Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH__BASIC_LEFT = VALUE_EXPRESSION_CASE__BASIC_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Like Pattern</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH__LIKE_PATTERN = VALUE_EXPRESSION_CASE__LIKE_PATTERN;
+
+	/**
+     * The feature id for the '<em><b>Like Matching</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH__LIKE_MATCHING = VALUE_EXPRESSION_CASE__LIKE_MATCHING;
+
+	/**
+     * The feature id for the '<em><b>Predicate Null</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH__PREDICATE_NULL = VALUE_EXPRESSION_CASE__PREDICATE_NULL;
+
+	/**
+     * The feature id for the '<em><b>In Value List Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH__IN_VALUE_LIST_RIGHT = VALUE_EXPRESSION_CASE__IN_VALUE_LIST_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>In Value List Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH__IN_VALUE_LIST_LEFT = VALUE_EXPRESSION_CASE__IN_VALUE_LIST_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH__IN_VALUE_ROW_SELECT_LEFT = VALUE_EXPRESSION_CASE__IN_VALUE_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH__IN_VALUE_SELECT_LEFT = VALUE_EXPRESSION_CASE__IN_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH__QUANTIFIED_ROW_SELECT_LEFT = VALUE_EXPRESSION_CASE__QUANTIFIED_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH__QUANTIFIED_VALUE_SELECT_LEFT = VALUE_EXPRESSION_CASE__QUANTIFIED_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH__BETWEEN_LEFT = VALUE_EXPRESSION_CASE__BETWEEN_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Right1</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH__BETWEEN_RIGHT1 = VALUE_EXPRESSION_CASE__BETWEEN_RIGHT1;
+
+	/**
+     * The feature id for the '<em><b>Between Right2</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH__BETWEEN_RIGHT2 = VALUE_EXPRESSION_CASE__BETWEEN_RIGHT2;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Cast</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH__VALUE_EXPR_CAST = VALUE_EXPRESSION_CASE__VALUE_EXPR_CAST;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH__VALUE_EXPR_FUNCTION = VALUE_EXPRESSION_CASE__VALUE_EXPR_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH__VALUE_EXPR_COMBINED_LEFT = VALUE_EXPRESSION_CASE__VALUE_EXPR_COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH__VALUE_EXPR_COMBINED_RIGHT = VALUE_EXPRESSION_CASE__VALUE_EXPR_COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Grouping Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH__GROUPING_EXPR = VALUE_EXPRESSION_CASE__GROUPING_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Else</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH__VALUE_EXPR_CASE_ELSE = VALUE_EXPRESSION_CASE__VALUE_EXPR_CASE_ELSE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH__VALUE_EXPR_CASE_SIMPLE = VALUE_EXPRESSION_CASE__VALUE_EXPR_CASE_SIMPLE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content When</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN = VALUE_EXPRESSION_CASE__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content Result</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT = VALUE_EXPRESSION_CASE__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH__VALUE_EXPR_CASE_SEARCH_CONTENT = VALUE_EXPRESSION_CASE__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Like Escape</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH__LIKE_ESCAPE = VALUE_EXPRESSION_CASE__LIKE_ESCAPE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Labeled Duration</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH__VALUE_EXPR_LABELED_DURATION = VALUE_EXPRESSION_CASE__VALUE_EXPR_LABELED_DURATION;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH__NEST = VALUE_EXPRESSION_CASE__NEST;
+
+	/**
+     * The feature id for the '<em><b>Update Source Expr List</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH__UPDATE_SOURCE_EXPR_LIST = VALUE_EXPRESSION_CASE__UPDATE_SOURCE_EXPR_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_CASE_SEARCH__TABLE_FUNCTION = VALUE_EXPRESSION_CASE__TABLE_FUNCTION;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_CASE_SEARCH__VALUE_EXPR_ROW = VALUE_EXPRESSION_CASE__VALUE_EXPR_ROW;
+
+    /**
+     * The feature id for the '<em><b>Call Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_CASE_SEARCH__CALL_STATEMENT = VALUE_EXPRESSION_CASE__CALL_STATEMENT;
+
+    /**
+     * The feature id for the '<em><b>Case Else</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH__CASE_ELSE = VALUE_EXPRESSION_CASE__CASE_ELSE;
+
+	/**
+     * The feature id for the '<em><b>Search Content List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH__SEARCH_CONTENT_LIST = VALUE_EXPRESSION_CASE_FEATURE_COUNT + 0;
+
+	/**
+     * The number of structural features of the '<em>Value Expression Case Search</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH_FEATURE_COUNT = VALUE_EXPRESSION_CASE_FEATURE_COUNT + 1;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCaseSimpleImpl <em>Value Expression Case Simple</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCaseSimpleImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getValueExpressionCaseSimple()
+     * @generated
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE = 60;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE__EANNOTATIONS = VALUE_EXPRESSION_CASE__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE__NAME = VALUE_EXPRESSION_CASE__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE__DEPENDENCIES = VALUE_EXPRESSION_CASE__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE__DESCRIPTION = VALUE_EXPRESSION_CASE__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE__LABEL = VALUE_EXPRESSION_CASE__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE__COMMENTS = VALUE_EXPRESSION_CASE__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_CASE_SIMPLE__EXTENSIONS = VALUE_EXPRESSION_CASE__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE__PRIVILEGES = VALUE_EXPRESSION_CASE__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Unary Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE__UNARY_OPERATOR = VALUE_EXPRESSION_CASE__UNARY_OPERATOR;
+
+	/**
+     * The feature id for the '<em><b>Data Type</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE__DATA_TYPE = VALUE_EXPRESSION_CASE__DATA_TYPE;
+
+	/**
+     * The feature id for the '<em><b>Values Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE__VALUES_ROW = VALUE_EXPRESSION_CASE__VALUES_ROW;
+
+	/**
+     * The feature id for the '<em><b>Order By Value Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE__ORDER_BY_VALUE_EXPR = VALUE_EXPRESSION_CASE__ORDER_BY_VALUE_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Result Column</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE__RESULT_COLUMN = VALUE_EXPRESSION_CASE__RESULT_COLUMN;
+
+	/**
+     * The feature id for the '<em><b>Basic Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE__BASIC_RIGHT = VALUE_EXPRESSION_CASE__BASIC_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Basic Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE__BASIC_LEFT = VALUE_EXPRESSION_CASE__BASIC_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Like Pattern</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE__LIKE_PATTERN = VALUE_EXPRESSION_CASE__LIKE_PATTERN;
+
+	/**
+     * The feature id for the '<em><b>Like Matching</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE__LIKE_MATCHING = VALUE_EXPRESSION_CASE__LIKE_MATCHING;
+
+	/**
+     * The feature id for the '<em><b>Predicate Null</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE__PREDICATE_NULL = VALUE_EXPRESSION_CASE__PREDICATE_NULL;
+
+	/**
+     * The feature id for the '<em><b>In Value List Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE__IN_VALUE_LIST_RIGHT = VALUE_EXPRESSION_CASE__IN_VALUE_LIST_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>In Value List Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE__IN_VALUE_LIST_LEFT = VALUE_EXPRESSION_CASE__IN_VALUE_LIST_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE__IN_VALUE_ROW_SELECT_LEFT = VALUE_EXPRESSION_CASE__IN_VALUE_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE__IN_VALUE_SELECT_LEFT = VALUE_EXPRESSION_CASE__IN_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE__QUANTIFIED_ROW_SELECT_LEFT = VALUE_EXPRESSION_CASE__QUANTIFIED_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE__QUANTIFIED_VALUE_SELECT_LEFT = VALUE_EXPRESSION_CASE__QUANTIFIED_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE__BETWEEN_LEFT = VALUE_EXPRESSION_CASE__BETWEEN_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Right1</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE__BETWEEN_RIGHT1 = VALUE_EXPRESSION_CASE__BETWEEN_RIGHT1;
+
+	/**
+     * The feature id for the '<em><b>Between Right2</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE__BETWEEN_RIGHT2 = VALUE_EXPRESSION_CASE__BETWEEN_RIGHT2;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Cast</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE__VALUE_EXPR_CAST = VALUE_EXPRESSION_CASE__VALUE_EXPR_CAST;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE__VALUE_EXPR_FUNCTION = VALUE_EXPRESSION_CASE__VALUE_EXPR_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE__VALUE_EXPR_COMBINED_LEFT = VALUE_EXPRESSION_CASE__VALUE_EXPR_COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE__VALUE_EXPR_COMBINED_RIGHT = VALUE_EXPRESSION_CASE__VALUE_EXPR_COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Grouping Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE__GROUPING_EXPR = VALUE_EXPRESSION_CASE__GROUPING_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Else</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE__VALUE_EXPR_CASE_ELSE = VALUE_EXPRESSION_CASE__VALUE_EXPR_CASE_ELSE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE__VALUE_EXPR_CASE_SIMPLE = VALUE_EXPRESSION_CASE__VALUE_EXPR_CASE_SIMPLE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content When</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN = VALUE_EXPRESSION_CASE__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content Result</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT = VALUE_EXPRESSION_CASE__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE__VALUE_EXPR_CASE_SEARCH_CONTENT = VALUE_EXPRESSION_CASE__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Like Escape</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE__LIKE_ESCAPE = VALUE_EXPRESSION_CASE__LIKE_ESCAPE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Labeled Duration</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE__VALUE_EXPR_LABELED_DURATION = VALUE_EXPRESSION_CASE__VALUE_EXPR_LABELED_DURATION;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE__NEST = VALUE_EXPRESSION_CASE__NEST;
+
+	/**
+     * The feature id for the '<em><b>Update Source Expr List</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE__UPDATE_SOURCE_EXPR_LIST = VALUE_EXPRESSION_CASE__UPDATE_SOURCE_EXPR_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_CASE_SIMPLE__TABLE_FUNCTION = VALUE_EXPRESSION_CASE__TABLE_FUNCTION;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_CASE_SIMPLE__VALUE_EXPR_ROW = VALUE_EXPRESSION_CASE__VALUE_EXPR_ROW;
+
+    /**
+     * The feature id for the '<em><b>Call Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_CASE_SIMPLE__CALL_STATEMENT = VALUE_EXPRESSION_CASE__CALL_STATEMENT;
+
+    /**
+     * The feature id for the '<em><b>Case Else</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE__CASE_ELSE = VALUE_EXPRESSION_CASE__CASE_ELSE;
+
+	/**
+     * The feature id for the '<em><b>Content List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE__CONTENT_LIST = VALUE_EXPRESSION_CASE_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE__VALUE_EXPR = VALUE_EXPRESSION_CASE_FEATURE_COUNT + 1;
+
+	/**
+     * The number of structural features of the '<em>Value Expression Case Simple</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE_FEATURE_COUNT = VALUE_EXPRESSION_CASE_FEATURE_COUNT + 2;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCaseElseImpl <em>Value Expression Case Else</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCaseElseImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getValueExpressionCaseElse()
+     * @generated
+     */
+	int VALUE_EXPRESSION_CASE_ELSE = 61;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_ELSE__EANNOTATIONS = SQL_QUERY_OBJECT__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_ELSE__NAME = SQL_QUERY_OBJECT__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_ELSE__DEPENDENCIES = SQL_QUERY_OBJECT__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_ELSE__DESCRIPTION = SQL_QUERY_OBJECT__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_ELSE__LABEL = SQL_QUERY_OBJECT__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_ELSE__COMMENTS = SQL_QUERY_OBJECT__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_CASE_ELSE__EXTENSIONS = SQL_QUERY_OBJECT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_ELSE__PRIVILEGES = SQL_QUERY_OBJECT__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_ELSE__VALUE_EXPR_CASE = SQL_QUERY_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_ELSE__VALUE_EXPR = SQL_QUERY_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+     * The number of structural features of the '<em>Value Expression Case Else</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_ELSE_FEATURE_COUNT = SQL_QUERY_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCaseSearchContentImpl <em>Value Expression Case Search Content</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCaseSearchContentImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getValueExpressionCaseSearchContent()
+     * @generated
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH_CONTENT = 62;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH_CONTENT__EANNOTATIONS = SQL_QUERY_OBJECT__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH_CONTENT__NAME = SQL_QUERY_OBJECT__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH_CONTENT__DEPENDENCIES = SQL_QUERY_OBJECT__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH_CONTENT__DESCRIPTION = SQL_QUERY_OBJECT__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH_CONTENT__LABEL = SQL_QUERY_OBJECT__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH_CONTENT__COMMENTS = SQL_QUERY_OBJECT__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_CASE_SEARCH_CONTENT__EXTENSIONS = SQL_QUERY_OBJECT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH_CONTENT__PRIVILEGES = SQL_QUERY_OBJECT__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH_CONTENT__VALUE_EXPR = SQL_QUERY_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Search Condition</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH_CONTENT__SEARCH_CONDITION = SQL_QUERY_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH_CONTENT__VALUE_EXPR_CASE_SEARCH = SQL_QUERY_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+     * The number of structural features of the '<em>Value Expression Case Search Content</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SEARCH_CONTENT_FEATURE_COUNT = SQL_QUERY_OBJECT_FEATURE_COUNT + 3;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCaseSimpleContentImpl <em>Value Expression Case Simple Content</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCaseSimpleContentImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getValueExpressionCaseSimpleContent()
+     * @generated
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE_CONTENT = 63;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__EANNOTATIONS = SQL_QUERY_OBJECT__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__NAME = SQL_QUERY_OBJECT__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__DEPENDENCIES = SQL_QUERY_OBJECT__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__DESCRIPTION = SQL_QUERY_OBJECT__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__LABEL = SQL_QUERY_OBJECT__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__COMMENTS = SQL_QUERY_OBJECT__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__EXTENSIONS = SQL_QUERY_OBJECT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__PRIVILEGES = SQL_QUERY_OBJECT__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__VALUE_EXPR_CASE_SIMPLE = SQL_QUERY_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>When Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__WHEN_VALUE_EXPR = SQL_QUERY_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>Result Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__RESULT_VALUE_EXPR = SQL_QUERY_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+     * The number of structural features of the '<em>Value Expression Case Simple Content</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_CASE_SIMPLE_CONTENT_FEATURE_COUNT = SQL_QUERY_OBJECT_FEATURE_COUNT + 3;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.TableInDatabaseImpl <em>Table In Database</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.TableInDatabaseImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getTableInDatabase()
+     * @generated
+     */
+	int TABLE_IN_DATABASE = 64;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_IN_DATABASE__EANNOTATIONS = TABLE_EXPRESSION__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_IN_DATABASE__NAME = TABLE_EXPRESSION__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_IN_DATABASE__DEPENDENCIES = TABLE_EXPRESSION__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_IN_DATABASE__DESCRIPTION = TABLE_EXPRESSION__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_IN_DATABASE__LABEL = TABLE_EXPRESSION__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_IN_DATABASE__COMMENTS = TABLE_EXPRESSION__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int TABLE_IN_DATABASE__EXTENSIONS = TABLE_EXPRESSION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_IN_DATABASE__PRIVILEGES = TABLE_EXPRESSION__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Table Joined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_IN_DATABASE__TABLE_JOINED_RIGHT = TABLE_EXPRESSION__TABLE_JOINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Table Joined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_IN_DATABASE__TABLE_JOINED_LEFT = TABLE_EXPRESSION__TABLE_JOINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Query Select</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_IN_DATABASE__QUERY_SELECT = TABLE_EXPRESSION__QUERY_SELECT;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_IN_DATABASE__NEST = TABLE_EXPRESSION__NEST;
+
+	/**
+     * The feature id for the '<em><b>Merge Source Table</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int TABLE_IN_DATABASE__MERGE_SOURCE_TABLE = TABLE_EXPRESSION__MERGE_SOURCE_TABLE;
+
+    /**
+     * The feature id for the '<em><b>Column List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_IN_DATABASE__COLUMN_LIST = TABLE_EXPRESSION__COLUMN_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Correlation</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_IN_DATABASE__TABLE_CORRELATION = TABLE_EXPRESSION__TABLE_CORRELATION;
+
+	/**
+     * The feature id for the '<em><b>Result Table All Columns</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_IN_DATABASE__RESULT_TABLE_ALL_COLUMNS = TABLE_EXPRESSION__RESULT_TABLE_ALL_COLUMNS;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Columns</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_IN_DATABASE__VALUE_EXPR_COLUMNS = TABLE_EXPRESSION__VALUE_EXPR_COLUMNS;
+
+	/**
+     * The feature id for the '<em><b>Merge Target Table</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int TABLE_IN_DATABASE__MERGE_TARGET_TABLE = TABLE_EXPRESSION__MERGE_TARGET_TABLE;
+
+    /**
+     * The feature id for the '<em><b>Update Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_IN_DATABASE__UPDATE_STATEMENT = TABLE_EXPRESSION_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Delete Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_IN_DATABASE__DELETE_STATEMENT = TABLE_EXPRESSION_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>Insert Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_IN_DATABASE__INSERT_STATEMENT = TABLE_EXPRESSION_FEATURE_COUNT + 2;
+
+	/**
+     * The feature id for the '<em><b>Database Table</b></em>' reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_IN_DATABASE__DATABASE_TABLE = TABLE_EXPRESSION_FEATURE_COUNT + 3;
+
+	/**
+     * The feature id for the '<em><b>Derived Column List</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_IN_DATABASE__DERIVED_COLUMN_LIST = TABLE_EXPRESSION_FEATURE_COUNT + 4;
+
+	/**
+     * The number of structural features of the '<em>Table In Database</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_IN_DATABASE_FEATURE_COUNT = TABLE_EXPRESSION_FEATURE_COUNT + 5;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.TableFunctionImpl <em>Table Function</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.TableFunctionImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getTableFunction()
+     * @generated
+     */
+	int TABLE_FUNCTION = 65;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_FUNCTION__EANNOTATIONS = TABLE_EXPRESSION__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_FUNCTION__NAME = TABLE_EXPRESSION__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_FUNCTION__DEPENDENCIES = TABLE_EXPRESSION__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_FUNCTION__DESCRIPTION = TABLE_EXPRESSION__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_FUNCTION__LABEL = TABLE_EXPRESSION__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_FUNCTION__COMMENTS = TABLE_EXPRESSION__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int TABLE_FUNCTION__EXTENSIONS = TABLE_EXPRESSION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_FUNCTION__PRIVILEGES = TABLE_EXPRESSION__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Table Joined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_FUNCTION__TABLE_JOINED_RIGHT = TABLE_EXPRESSION__TABLE_JOINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Table Joined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_FUNCTION__TABLE_JOINED_LEFT = TABLE_EXPRESSION__TABLE_JOINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Query Select</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_FUNCTION__QUERY_SELECT = TABLE_EXPRESSION__QUERY_SELECT;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_FUNCTION__NEST = TABLE_EXPRESSION__NEST;
+
+	/**
+     * The feature id for the '<em><b>Merge Source Table</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int TABLE_FUNCTION__MERGE_SOURCE_TABLE = TABLE_EXPRESSION__MERGE_SOURCE_TABLE;
+
+    /**
+     * The feature id for the '<em><b>Column List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_FUNCTION__COLUMN_LIST = TABLE_EXPRESSION__COLUMN_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Correlation</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_FUNCTION__TABLE_CORRELATION = TABLE_EXPRESSION__TABLE_CORRELATION;
+
+	/**
+     * The feature id for the '<em><b>Result Table All Columns</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_FUNCTION__RESULT_TABLE_ALL_COLUMNS = TABLE_EXPRESSION__RESULT_TABLE_ALL_COLUMNS;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Columns</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_FUNCTION__VALUE_EXPR_COLUMNS = TABLE_EXPRESSION__VALUE_EXPR_COLUMNS;
+
+	/**
+     * The feature id for the '<em><b>Merge Target Table</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int TABLE_FUNCTION__MERGE_TARGET_TABLE = TABLE_EXPRESSION__MERGE_TARGET_TABLE;
+
+    /**
+     * The feature id for the '<em><b>Function</b></em>' reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int TABLE_FUNCTION__FUNCTION = TABLE_EXPRESSION_FEATURE_COUNT + 0;
+
+    /**
+     * The feature id for the '<em><b>Parameter List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int TABLE_FUNCTION__PARAMETER_LIST = TABLE_EXPRESSION_FEATURE_COUNT + 1;
+
+    /**
+     * The number of structural features of the '<em>Table Function</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_FUNCTION_FEATURE_COUNT = TABLE_EXPRESSION_FEATURE_COUNT + 2;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ColumnNameImpl <em>Column Name</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.ColumnNameImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getColumnName()
+     * @generated
+     */
+	int COLUMN_NAME = 68;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int COLUMN_NAME__EANNOTATIONS = SQL_QUERY_OBJECT__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int COLUMN_NAME__NAME = SQL_QUERY_OBJECT__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int COLUMN_NAME__DEPENDENCIES = SQL_QUERY_OBJECT__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int COLUMN_NAME__DESCRIPTION = SQL_QUERY_OBJECT__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int COLUMN_NAME__LABEL = SQL_QUERY_OBJECT__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int COLUMN_NAME__COMMENTS = SQL_QUERY_OBJECT__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int COLUMN_NAME__EXTENSIONS = SQL_QUERY_OBJECT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int COLUMN_NAME__PRIVILEGES = SQL_QUERY_OBJECT__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Table Correlation</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int COLUMN_NAME__TABLE_CORRELATION = SQL_QUERY_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>With Table Specification</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int COLUMN_NAME__WITH_TABLE_SPECIFICATION = SQL_QUERY_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+     * The number of structural features of the '<em>Column Name</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int COLUMN_NAME_FEATURE_COUNT = SQL_QUERY_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.TableNestedImpl <em>Table Nested</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.TableNestedImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getTableNested()
+     * @generated
+     */
+	int TABLE_NESTED = 69;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_NESTED__EANNOTATIONS = TABLE_REFERENCE__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_NESTED__NAME = TABLE_REFERENCE__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_NESTED__DEPENDENCIES = TABLE_REFERENCE__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_NESTED__DESCRIPTION = TABLE_REFERENCE__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_NESTED__LABEL = TABLE_REFERENCE__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_NESTED__COMMENTS = TABLE_REFERENCE__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int TABLE_NESTED__EXTENSIONS = TABLE_REFERENCE__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_NESTED__PRIVILEGES = TABLE_REFERENCE__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Table Joined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_NESTED__TABLE_JOINED_RIGHT = TABLE_REFERENCE__TABLE_JOINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Table Joined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_NESTED__TABLE_JOINED_LEFT = TABLE_REFERENCE__TABLE_JOINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Query Select</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_NESTED__QUERY_SELECT = TABLE_REFERENCE__QUERY_SELECT;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_NESTED__NEST = TABLE_REFERENCE__NEST;
+
+	/**
+     * The feature id for the '<em><b>Merge Source Table</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int TABLE_NESTED__MERGE_SOURCE_TABLE = TABLE_REFERENCE__MERGE_SOURCE_TABLE;
+
+    /**
+     * The feature id for the '<em><b>Nested Table Ref</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_NESTED__NESTED_TABLE_REF = TABLE_REFERENCE_FEATURE_COUNT + 0;
+
+	/**
+     * The number of structural features of the '<em>Table Nested</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_NESTED_FEATURE_COUNT = TABLE_REFERENCE_FEATURE_COUNT + 1;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryMergeStatementImpl <em>Query Merge Statement</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.QueryMergeStatementImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getQueryMergeStatement()
+     * @generated
+     */
+	int QUERY_MERGE_STATEMENT = 70;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_MERGE_STATEMENT__EANNOTATIONS = QUERY_CHANGE_STATEMENT__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_MERGE_STATEMENT__NAME = QUERY_CHANGE_STATEMENT__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_MERGE_STATEMENT__DEPENDENCIES = QUERY_CHANGE_STATEMENT__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_MERGE_STATEMENT__DESCRIPTION = QUERY_CHANGE_STATEMENT__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_MERGE_STATEMENT__LABEL = QUERY_CHANGE_STATEMENT__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_MERGE_STATEMENT__COMMENTS = QUERY_CHANGE_STATEMENT__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_MERGE_STATEMENT__EXTENSIONS = QUERY_CHANGE_STATEMENT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_MERGE_STATEMENT__PRIVILEGES = QUERY_CHANGE_STATEMENT__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Target Table</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_MERGE_STATEMENT__TARGET_TABLE = QUERY_CHANGE_STATEMENT_FEATURE_COUNT + 0;
+
+    /**
+     * The feature id for the '<em><b>Source Table</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_MERGE_STATEMENT__SOURCE_TABLE = QUERY_CHANGE_STATEMENT_FEATURE_COUNT + 1;
+
+    /**
+     * The feature id for the '<em><b>On Condition</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_MERGE_STATEMENT__ON_CONDITION = QUERY_CHANGE_STATEMENT_FEATURE_COUNT + 2;
+
+    /**
+     * The feature id for the '<em><b>Operation Spec List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_MERGE_STATEMENT__OPERATION_SPEC_LIST = QUERY_CHANGE_STATEMENT_FEATURE_COUNT + 3;
+
+    /**
+     * The number of structural features of the '<em>Query Merge Statement</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int QUERY_MERGE_STATEMENT_FEATURE_COUNT = QUERY_CHANGE_STATEMENT_FEATURE_COUNT + 4;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.SearchConditionNestedImpl <em>Search Condition Nested</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SearchConditionNestedImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getSearchConditionNested()
+     * @generated
+     */
+	int SEARCH_CONDITION_NESTED = 71;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SEARCH_CONDITION_NESTED__EANNOTATIONS = QUERY_SEARCH_CONDITION__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SEARCH_CONDITION_NESTED__NAME = QUERY_SEARCH_CONDITION__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SEARCH_CONDITION_NESTED__DEPENDENCIES = QUERY_SEARCH_CONDITION__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SEARCH_CONDITION_NESTED__DESCRIPTION = QUERY_SEARCH_CONDITION__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SEARCH_CONDITION_NESTED__LABEL = QUERY_SEARCH_CONDITION__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SEARCH_CONDITION_NESTED__COMMENTS = QUERY_SEARCH_CONDITION__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int SEARCH_CONDITION_NESTED__EXTENSIONS = QUERY_SEARCH_CONDITION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SEARCH_CONDITION_NESTED__PRIVILEGES = QUERY_SEARCH_CONDITION__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Negated Condition</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SEARCH_CONDITION_NESTED__NEGATED_CONDITION = QUERY_SEARCH_CONDITION__NEGATED_CONDITION;
+
+	/**
+     * The feature id for the '<em><b>Update Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SEARCH_CONDITION_NESTED__UPDATE_STATEMENT = QUERY_SEARCH_CONDITION__UPDATE_STATEMENT;
+
+	/**
+     * The feature id for the '<em><b>Delete Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SEARCH_CONDITION_NESTED__DELETE_STATEMENT = QUERY_SEARCH_CONDITION__DELETE_STATEMENT;
+
+	/**
+     * The feature id for the '<em><b>Table Joined</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SEARCH_CONDITION_NESTED__TABLE_JOINED = QUERY_SEARCH_CONDITION__TABLE_JOINED;
+
+	/**
+     * The feature id for the '<em><b>Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SEARCH_CONDITION_NESTED__COMBINED_LEFT = QUERY_SEARCH_CONDITION__COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SEARCH_CONDITION_NESTED__COMBINED_RIGHT = QUERY_SEARCH_CONDITION__COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Query Select Having</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SEARCH_CONDITION_NESTED__QUERY_SELECT_HAVING = QUERY_SEARCH_CONDITION__QUERY_SELECT_HAVING;
+
+	/**
+     * The feature id for the '<em><b>Query Select Where</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SEARCH_CONDITION_NESTED__QUERY_SELECT_WHERE = QUERY_SEARCH_CONDITION__QUERY_SELECT_WHERE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SEARCH_CONDITION_NESTED__VALUE_EXPR_CASE_SEARCH_CONTENT = QUERY_SEARCH_CONDITION__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SEARCH_CONDITION_NESTED__NEST = QUERY_SEARCH_CONDITION__NEST;
+
+	/**
+     * The feature id for the '<em><b>Merge On Condition</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int SEARCH_CONDITION_NESTED__MERGE_ON_CONDITION = QUERY_SEARCH_CONDITION__MERGE_ON_CONDITION;
+
+    /**
+     * The feature id for the '<em><b>Nested Condition</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SEARCH_CONDITION_NESTED__NESTED_CONDITION = QUERY_SEARCH_CONDITION_FEATURE_COUNT + 0;
+
+	/**
+     * The number of structural features of the '<em>Search Condition Nested</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int SEARCH_CONDITION_NESTED_FEATURE_COUNT = QUERY_SEARCH_CONDITION_FEATURE_COUNT + 1;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionNestedImpl <em>Value Expression Nested</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionNestedImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getValueExpressionNested()
+     * @generated
+     */
+	int VALUE_EXPRESSION_NESTED = 72;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NESTED__EANNOTATIONS = QUERY_VALUE_EXPRESSION__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NESTED__NAME = QUERY_VALUE_EXPRESSION__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NESTED__DEPENDENCIES = QUERY_VALUE_EXPRESSION__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NESTED__DESCRIPTION = QUERY_VALUE_EXPRESSION__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NESTED__LABEL = QUERY_VALUE_EXPRESSION__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NESTED__COMMENTS = QUERY_VALUE_EXPRESSION__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_NESTED__EXTENSIONS = QUERY_VALUE_EXPRESSION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NESTED__PRIVILEGES = QUERY_VALUE_EXPRESSION__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Unary Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NESTED__UNARY_OPERATOR = QUERY_VALUE_EXPRESSION__UNARY_OPERATOR;
+
+	/**
+     * The feature id for the '<em><b>Data Type</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NESTED__DATA_TYPE = QUERY_VALUE_EXPRESSION__DATA_TYPE;
+
+	/**
+     * The feature id for the '<em><b>Values Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NESTED__VALUES_ROW = QUERY_VALUE_EXPRESSION__VALUES_ROW;
+
+	/**
+     * The feature id for the '<em><b>Order By Value Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NESTED__ORDER_BY_VALUE_EXPR = QUERY_VALUE_EXPRESSION__ORDER_BY_VALUE_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Result Column</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NESTED__RESULT_COLUMN = QUERY_VALUE_EXPRESSION__RESULT_COLUMN;
+
+	/**
+     * The feature id for the '<em><b>Basic Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NESTED__BASIC_RIGHT = QUERY_VALUE_EXPRESSION__BASIC_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Basic Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NESTED__BASIC_LEFT = QUERY_VALUE_EXPRESSION__BASIC_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Like Pattern</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NESTED__LIKE_PATTERN = QUERY_VALUE_EXPRESSION__LIKE_PATTERN;
+
+	/**
+     * The feature id for the '<em><b>Like Matching</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NESTED__LIKE_MATCHING = QUERY_VALUE_EXPRESSION__LIKE_MATCHING;
+
+	/**
+     * The feature id for the '<em><b>Predicate Null</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NESTED__PREDICATE_NULL = QUERY_VALUE_EXPRESSION__PREDICATE_NULL;
+
+	/**
+     * The feature id for the '<em><b>In Value List Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NESTED__IN_VALUE_LIST_RIGHT = QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>In Value List Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NESTED__IN_VALUE_LIST_LEFT = QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NESTED__IN_VALUE_ROW_SELECT_LEFT = QUERY_VALUE_EXPRESSION__IN_VALUE_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NESTED__IN_VALUE_SELECT_LEFT = QUERY_VALUE_EXPRESSION__IN_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NESTED__QUANTIFIED_ROW_SELECT_LEFT = QUERY_VALUE_EXPRESSION__QUANTIFIED_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NESTED__QUANTIFIED_VALUE_SELECT_LEFT = QUERY_VALUE_EXPRESSION__QUANTIFIED_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NESTED__BETWEEN_LEFT = QUERY_VALUE_EXPRESSION__BETWEEN_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Right1</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NESTED__BETWEEN_RIGHT1 = QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT1;
+
+	/**
+     * The feature id for the '<em><b>Between Right2</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NESTED__BETWEEN_RIGHT2 = QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT2;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Cast</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NESTED__VALUE_EXPR_CAST = QUERY_VALUE_EXPRESSION__VALUE_EXPR_CAST;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NESTED__VALUE_EXPR_FUNCTION = QUERY_VALUE_EXPRESSION__VALUE_EXPR_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NESTED__VALUE_EXPR_COMBINED_LEFT = QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NESTED__VALUE_EXPR_COMBINED_RIGHT = QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Grouping Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NESTED__GROUPING_EXPR = QUERY_VALUE_EXPRESSION__GROUPING_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Else</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NESTED__VALUE_EXPR_CASE_ELSE = QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_ELSE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NESTED__VALUE_EXPR_CASE_SIMPLE = QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content When</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NESTED__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN = QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content Result</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NESTED__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT = QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NESTED__VALUE_EXPR_CASE_SEARCH_CONTENT = QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Like Escape</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NESTED__LIKE_ESCAPE = QUERY_VALUE_EXPRESSION__LIKE_ESCAPE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Labeled Duration</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NESTED__VALUE_EXPR_LABELED_DURATION = QUERY_VALUE_EXPRESSION__VALUE_EXPR_LABELED_DURATION;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NESTED__NEST = QUERY_VALUE_EXPRESSION__NEST;
+
+	/**
+     * The feature id for the '<em><b>Update Source Expr List</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NESTED__UPDATE_SOURCE_EXPR_LIST = QUERY_VALUE_EXPRESSION__UPDATE_SOURCE_EXPR_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_NESTED__TABLE_FUNCTION = QUERY_VALUE_EXPRESSION__TABLE_FUNCTION;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_NESTED__VALUE_EXPR_ROW = QUERY_VALUE_EXPRESSION__VALUE_EXPR_ROW;
+
+    /**
+     * The feature id for the '<em><b>Call Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_NESTED__CALL_STATEMENT = QUERY_VALUE_EXPRESSION__CALL_STATEMENT;
+
+    /**
+     * The feature id for the '<em><b>Nested Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NESTED__NESTED_VALUE_EXPR = QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 0;
+
+	/**
+     * The number of structural features of the '<em>Value Expression Nested</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int VALUE_EXPRESSION_NESTED_FEATURE_COUNT = QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 1;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.OrderByOrdinalImpl <em>Order By Ordinal</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.OrderByOrdinalImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getOrderByOrdinal()
+     * @generated
+     */
+	int ORDER_BY_ORDINAL = 75;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_ORDINAL__EANNOTATIONS = ORDER_BY_SPECIFICATION__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_ORDINAL__NAME = ORDER_BY_SPECIFICATION__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_ORDINAL__DEPENDENCIES = ORDER_BY_SPECIFICATION__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_ORDINAL__DESCRIPTION = ORDER_BY_SPECIFICATION__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_ORDINAL__LABEL = ORDER_BY_SPECIFICATION__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_ORDINAL__COMMENTS = ORDER_BY_SPECIFICATION__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int ORDER_BY_ORDINAL__EXTENSIONS = ORDER_BY_SPECIFICATION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_ORDINAL__PRIVILEGES = ORDER_BY_SPECIFICATION__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Descending</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_ORDINAL__DESCENDING = ORDER_BY_SPECIFICATION__DESCENDING;
+
+	/**
+     * The feature id for the '<em><b>Ordering Spec Option</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_ORDINAL__ORDERING_SPEC_OPTION = ORDER_BY_SPECIFICATION__ORDERING_SPEC_OPTION;
+
+	/**
+     * The feature id for the '<em><b>Null Ordering Option</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_ORDINAL__NULL_ORDERING_OPTION = ORDER_BY_SPECIFICATION__NULL_ORDERING_OPTION;
+
+	/**
+     * The feature id for the '<em><b>Select Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_ORDINAL__SELECT_STATEMENT = ORDER_BY_SPECIFICATION__SELECT_STATEMENT;
+
+	/**
+     * The feature id for the '<em><b>Query</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int ORDER_BY_ORDINAL__QUERY = ORDER_BY_SPECIFICATION__QUERY;
+
+    /**
+     * The feature id for the '<em><b>Ordinal Value</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_ORDINAL__ORDINAL_VALUE = ORDER_BY_SPECIFICATION_FEATURE_COUNT + 0;
+
+	/**
+     * The number of structural features of the '<em>Order By Ordinal</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_ORDINAL_FEATURE_COUNT = ORDER_BY_SPECIFICATION_FEATURE_COUNT + 1;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.TableCorrelationImpl <em>Table Correlation</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.TableCorrelationImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getTableCorrelation()
+     * @generated
+     */
+	int TABLE_CORRELATION = 76;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_CORRELATION__EANNOTATIONS = SQL_QUERY_OBJECT__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_CORRELATION__NAME = SQL_QUERY_OBJECT__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_CORRELATION__DEPENDENCIES = SQL_QUERY_OBJECT__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_CORRELATION__DESCRIPTION = SQL_QUERY_OBJECT__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_CORRELATION__LABEL = SQL_QUERY_OBJECT__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_CORRELATION__COMMENTS = SQL_QUERY_OBJECT__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int TABLE_CORRELATION__EXTENSIONS = SQL_QUERY_OBJECT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_CORRELATION__PRIVILEGES = SQL_QUERY_OBJECT__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Table Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_CORRELATION__TABLE_EXPR = SQL_QUERY_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Column Name List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_CORRELATION__COLUMN_NAME_LIST = SQL_QUERY_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+     * The number of structural features of the '<em>Table Correlation</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int TABLE_CORRELATION_FEATURE_COUNT = SQL_QUERY_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.UpdateSourceImpl <em>Update Source</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.UpdateSourceImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getUpdateSource()
+     * @generated
+     */
+	int UPDATE_SOURCE = 77;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int UPDATE_SOURCE__EANNOTATIONS = SQL_QUERY_OBJECT__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int UPDATE_SOURCE__NAME = SQL_QUERY_OBJECT__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int UPDATE_SOURCE__DEPENDENCIES = SQL_QUERY_OBJECT__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int UPDATE_SOURCE__DESCRIPTION = SQL_QUERY_OBJECT__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int UPDATE_SOURCE__LABEL = SQL_QUERY_OBJECT__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int UPDATE_SOURCE__COMMENTS = SQL_QUERY_OBJECT__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int UPDATE_SOURCE__EXTENSIONS = SQL_QUERY_OBJECT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int UPDATE_SOURCE__PRIVILEGES = SQL_QUERY_OBJECT__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Update Assignment Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int UPDATE_SOURCE__UPDATE_ASSIGNMENT_EXPR = SQL_QUERY_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+     * The number of structural features of the '<em>Update Source</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int UPDATE_SOURCE_FEATURE_COUNT = SQL_QUERY_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.UpdateSourceExprListImpl <em>Update Source Expr List</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.UpdateSourceExprListImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getUpdateSourceExprList()
+     * @generated
+     */
+	int UPDATE_SOURCE_EXPR_LIST = 78;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int UPDATE_SOURCE_EXPR_LIST__EANNOTATIONS = UPDATE_SOURCE__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int UPDATE_SOURCE_EXPR_LIST__NAME = UPDATE_SOURCE__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int UPDATE_SOURCE_EXPR_LIST__DEPENDENCIES = UPDATE_SOURCE__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int UPDATE_SOURCE_EXPR_LIST__DESCRIPTION = UPDATE_SOURCE__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int UPDATE_SOURCE_EXPR_LIST__LABEL = UPDATE_SOURCE__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int UPDATE_SOURCE_EXPR_LIST__COMMENTS = UPDATE_SOURCE__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int UPDATE_SOURCE_EXPR_LIST__EXTENSIONS = UPDATE_SOURCE__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int UPDATE_SOURCE_EXPR_LIST__PRIVILEGES = UPDATE_SOURCE__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Update Assignment Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int UPDATE_SOURCE_EXPR_LIST__UPDATE_ASSIGNMENT_EXPR = UPDATE_SOURCE__UPDATE_ASSIGNMENT_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Value Expr List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int UPDATE_SOURCE_EXPR_LIST__VALUE_EXPR_LIST = UPDATE_SOURCE_FEATURE_COUNT + 0;
+
+	/**
+     * The number of structural features of the '<em>Update Source Expr List</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int UPDATE_SOURCE_EXPR_LIST_FEATURE_COUNT = UPDATE_SOURCE_FEATURE_COUNT + 1;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.UpdateSourceQueryImpl <em>Update Source Query</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.UpdateSourceQueryImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getUpdateSourceQuery()
+     * @generated
+     */
+	int UPDATE_SOURCE_QUERY = 79;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int UPDATE_SOURCE_QUERY__EANNOTATIONS = UPDATE_SOURCE__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int UPDATE_SOURCE_QUERY__NAME = UPDATE_SOURCE__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int UPDATE_SOURCE_QUERY__DEPENDENCIES = UPDATE_SOURCE__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int UPDATE_SOURCE_QUERY__DESCRIPTION = UPDATE_SOURCE__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int UPDATE_SOURCE_QUERY__LABEL = UPDATE_SOURCE__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int UPDATE_SOURCE_QUERY__COMMENTS = UPDATE_SOURCE__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int UPDATE_SOURCE_QUERY__EXTENSIONS = UPDATE_SOURCE__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int UPDATE_SOURCE_QUERY__PRIVILEGES = UPDATE_SOURCE__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Update Assignment Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int UPDATE_SOURCE_QUERY__UPDATE_ASSIGNMENT_EXPR = UPDATE_SOURCE__UPDATE_ASSIGNMENT_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Query Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int UPDATE_SOURCE_QUERY__QUERY_EXPR = UPDATE_SOURCE_FEATURE_COUNT + 0;
+
+	/**
+     * The number of structural features of the '<em>Update Source Query</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int UPDATE_SOURCE_QUERY_FEATURE_COUNT = UPDATE_SOURCE_FEATURE_COUNT + 1;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.OrderByResultColumnImpl <em>Order By Result Column</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.OrderByResultColumnImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getOrderByResultColumn()
+     * @generated
+     */
+	int ORDER_BY_RESULT_COLUMN = 80;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_RESULT_COLUMN__EANNOTATIONS = ORDER_BY_SPECIFICATION__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_RESULT_COLUMN__NAME = ORDER_BY_SPECIFICATION__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_RESULT_COLUMN__DEPENDENCIES = ORDER_BY_SPECIFICATION__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_RESULT_COLUMN__DESCRIPTION = ORDER_BY_SPECIFICATION__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_RESULT_COLUMN__LABEL = ORDER_BY_SPECIFICATION__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_RESULT_COLUMN__COMMENTS = ORDER_BY_SPECIFICATION__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int ORDER_BY_RESULT_COLUMN__EXTENSIONS = ORDER_BY_SPECIFICATION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_RESULT_COLUMN__PRIVILEGES = ORDER_BY_SPECIFICATION__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Descending</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_RESULT_COLUMN__DESCENDING = ORDER_BY_SPECIFICATION__DESCENDING;
+
+	/**
+     * The feature id for the '<em><b>Ordering Spec Option</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_RESULT_COLUMN__ORDERING_SPEC_OPTION = ORDER_BY_SPECIFICATION__ORDERING_SPEC_OPTION;
+
+	/**
+     * The feature id for the '<em><b>Null Ordering Option</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_RESULT_COLUMN__NULL_ORDERING_OPTION = ORDER_BY_SPECIFICATION__NULL_ORDERING_OPTION;
+
+	/**
+     * The feature id for the '<em><b>Select Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_RESULT_COLUMN__SELECT_STATEMENT = ORDER_BY_SPECIFICATION__SELECT_STATEMENT;
+
+	/**
+     * The feature id for the '<em><b>Query</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int ORDER_BY_RESULT_COLUMN__QUERY = ORDER_BY_SPECIFICATION__QUERY;
+
+    /**
+     * The feature id for the '<em><b>Result Col</b></em>' reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_RESULT_COLUMN__RESULT_COL = ORDER_BY_SPECIFICATION_FEATURE_COUNT + 0;
+
+	/**
+     * The number of structural features of the '<em>Order By Result Column</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int ORDER_BY_RESULT_COLUMN_FEATURE_COUNT = ORDER_BY_SPECIFICATION_FEATURE_COUNT + 1;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.WithTableReferenceImpl <em>With Table Reference</em>}' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.WithTableReferenceImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getWithTableReference()
+     * @generated
+     */
+	int WITH_TABLE_REFERENCE = 81;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int WITH_TABLE_REFERENCE__EANNOTATIONS = TABLE_EXPRESSION__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int WITH_TABLE_REFERENCE__NAME = TABLE_EXPRESSION__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int WITH_TABLE_REFERENCE__DEPENDENCIES = TABLE_EXPRESSION__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int WITH_TABLE_REFERENCE__DESCRIPTION = TABLE_EXPRESSION__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int WITH_TABLE_REFERENCE__LABEL = TABLE_EXPRESSION__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int WITH_TABLE_REFERENCE__COMMENTS = TABLE_EXPRESSION__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int WITH_TABLE_REFERENCE__EXTENSIONS = TABLE_EXPRESSION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int WITH_TABLE_REFERENCE__PRIVILEGES = TABLE_EXPRESSION__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Table Joined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int WITH_TABLE_REFERENCE__TABLE_JOINED_RIGHT = TABLE_EXPRESSION__TABLE_JOINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Table Joined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int WITH_TABLE_REFERENCE__TABLE_JOINED_LEFT = TABLE_EXPRESSION__TABLE_JOINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Query Select</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int WITH_TABLE_REFERENCE__QUERY_SELECT = TABLE_EXPRESSION__QUERY_SELECT;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int WITH_TABLE_REFERENCE__NEST = TABLE_EXPRESSION__NEST;
+
+	/**
+     * The feature id for the '<em><b>Merge Source Table</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int WITH_TABLE_REFERENCE__MERGE_SOURCE_TABLE = TABLE_EXPRESSION__MERGE_SOURCE_TABLE;
+
+    /**
+     * The feature id for the '<em><b>Column List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int WITH_TABLE_REFERENCE__COLUMN_LIST = TABLE_EXPRESSION__COLUMN_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Correlation</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int WITH_TABLE_REFERENCE__TABLE_CORRELATION = TABLE_EXPRESSION__TABLE_CORRELATION;
+
+	/**
+     * The feature id for the '<em><b>Result Table All Columns</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int WITH_TABLE_REFERENCE__RESULT_TABLE_ALL_COLUMNS = TABLE_EXPRESSION__RESULT_TABLE_ALL_COLUMNS;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Columns</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int WITH_TABLE_REFERENCE__VALUE_EXPR_COLUMNS = TABLE_EXPRESSION__VALUE_EXPR_COLUMNS;
+
+	/**
+     * The feature id for the '<em><b>Merge Target Table</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int WITH_TABLE_REFERENCE__MERGE_TARGET_TABLE = TABLE_EXPRESSION__MERGE_TARGET_TABLE;
+
+    /**
+     * The feature id for the '<em><b>With Table Specification</b></em>' reference.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int WITH_TABLE_REFERENCE__WITH_TABLE_SPECIFICATION = TABLE_EXPRESSION_FEATURE_COUNT + 0;
+
+	/**
+     * The number of structural features of the '<em>With Table Reference</em>' class.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int WITH_TABLE_REFERENCE_FEATURE_COUNT = TABLE_EXPRESSION_FEATURE_COUNT + 1;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryNestedImpl <em>Query Nested</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.QueryNestedImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getQueryNested()
+     * @generated
+     */
+    int QUERY_NESTED = 82;
+
+    /**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_NESTED__EANNOTATIONS = QUERY_EXPRESSION_BODY__EANNOTATIONS;
+
+    /**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_NESTED__NAME = QUERY_EXPRESSION_BODY__NAME;
+
+    /**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_NESTED__DEPENDENCIES = QUERY_EXPRESSION_BODY__DEPENDENCIES;
+
+    /**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_NESTED__DESCRIPTION = QUERY_EXPRESSION_BODY__DESCRIPTION;
+
+    /**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_NESTED__LABEL = QUERY_EXPRESSION_BODY__LABEL;
+
+    /**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_NESTED__COMMENTS = QUERY_EXPRESSION_BODY__COMMENTS;
+
+    /**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_NESTED__EXTENSIONS = QUERY_EXPRESSION_BODY__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_NESTED__PRIVILEGES = QUERY_EXPRESSION_BODY__PRIVILEGES;
+
+    /**
+     * The feature id for the '<em><b>Table Joined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_NESTED__TABLE_JOINED_RIGHT = QUERY_EXPRESSION_BODY__TABLE_JOINED_RIGHT;
+
+    /**
+     * The feature id for the '<em><b>Table Joined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_NESTED__TABLE_JOINED_LEFT = QUERY_EXPRESSION_BODY__TABLE_JOINED_LEFT;
+
+    /**
+     * The feature id for the '<em><b>Query Select</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_NESTED__QUERY_SELECT = QUERY_EXPRESSION_BODY__QUERY_SELECT;
+
+    /**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_NESTED__NEST = QUERY_EXPRESSION_BODY__NEST;
+
+    /**
+     * The feature id for the '<em><b>Merge Source Table</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_NESTED__MERGE_SOURCE_TABLE = QUERY_EXPRESSION_BODY__MERGE_SOURCE_TABLE;
+
+    /**
+     * The feature id for the '<em><b>Column List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_NESTED__COLUMN_LIST = QUERY_EXPRESSION_BODY__COLUMN_LIST;
+
+    /**
+     * The feature id for the '<em><b>Table Correlation</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_NESTED__TABLE_CORRELATION = QUERY_EXPRESSION_BODY__TABLE_CORRELATION;
+
+    /**
+     * The feature id for the '<em><b>Result Table All Columns</b></em>' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_NESTED__RESULT_TABLE_ALL_COLUMNS = QUERY_EXPRESSION_BODY__RESULT_TABLE_ALL_COLUMNS;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Columns</b></em>' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_NESTED__VALUE_EXPR_COLUMNS = QUERY_EXPRESSION_BODY__VALUE_EXPR_COLUMNS;
+
+    /**
+     * The feature id for the '<em><b>Merge Target Table</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_NESTED__MERGE_TARGET_TABLE = QUERY_EXPRESSION_BODY__MERGE_TARGET_TABLE;
+
+    /**
+     * The feature id for the '<em><b>Row Fetch Limit</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_NESTED__ROW_FETCH_LIMIT = QUERY_EXPRESSION_BODY__ROW_FETCH_LIMIT;
+
+    /**
+     * The feature id for the '<em><b>Query Expression</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_NESTED__QUERY_EXPRESSION = QUERY_EXPRESSION_BODY__QUERY_EXPRESSION;
+
+    /**
+     * The feature id for the '<em><b>Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_NESTED__COMBINED_LEFT = QUERY_EXPRESSION_BODY__COMBINED_LEFT;
+
+    /**
+     * The feature id for the '<em><b>Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_NESTED__COMBINED_RIGHT = QUERY_EXPRESSION_BODY__COMBINED_RIGHT;
+
+    /**
+     * The feature id for the '<em><b>Predicate Exists</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_NESTED__PREDICATE_EXISTS = QUERY_EXPRESSION_BODY__PREDICATE_EXISTS;
+
+    /**
+     * The feature id for the '<em><b>Update Source Query</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_NESTED__UPDATE_SOURCE_QUERY = QUERY_EXPRESSION_BODY__UPDATE_SOURCE_QUERY;
+
+    /**
+     * The feature id for the '<em><b>With Table Specification</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_NESTED__WITH_TABLE_SPECIFICATION = QUERY_EXPRESSION_BODY__WITH_TABLE_SPECIFICATION;
+
+    /**
+     * The feature id for the '<em><b>Query Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_NESTED__QUERY_NEST = QUERY_EXPRESSION_BODY__QUERY_NEST;
+
+    /**
+     * The feature id for the '<em><b>Sort Spec List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_NESTED__SORT_SPEC_LIST = QUERY_EXPRESSION_BODY__SORT_SPEC_LIST;
+
+    /**
+     * The feature id for the '<em><b>Nested Query</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_NESTED__NESTED_QUERY = QUERY_EXPRESSION_BODY_FEATURE_COUNT + 0;
+
+    /**
+     * The number of structural features of the '<em>Query Nested</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int QUERY_NESTED_FEATURE_COUNT = QUERY_EXPRESSION_BODY_FEATURE_COUNT + 1;
+
+    /**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionRowImpl <em>Value Expression Row</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionRowImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getValueExpressionRow()
+     * @generated
+     */
+    int VALUE_EXPRESSION_ROW = 83;
+
+    /**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ROW__EANNOTATIONS = QUERY_VALUE_EXPRESSION__EANNOTATIONS;
+
+    /**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ROW__NAME = QUERY_VALUE_EXPRESSION__NAME;
+
+    /**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ROW__DEPENDENCIES = QUERY_VALUE_EXPRESSION__DEPENDENCIES;
+
+    /**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ROW__DESCRIPTION = QUERY_VALUE_EXPRESSION__DESCRIPTION;
+
+    /**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ROW__LABEL = QUERY_VALUE_EXPRESSION__LABEL;
+
+    /**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ROW__COMMENTS = QUERY_VALUE_EXPRESSION__COMMENTS;
+
+    /**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ROW__EXTENSIONS = QUERY_VALUE_EXPRESSION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ROW__PRIVILEGES = QUERY_VALUE_EXPRESSION__PRIVILEGES;
+
+    /**
+     * The feature id for the '<em><b>Unary Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ROW__UNARY_OPERATOR = QUERY_VALUE_EXPRESSION__UNARY_OPERATOR;
+
+    /**
+     * The feature id for the '<em><b>Data Type</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ROW__DATA_TYPE = QUERY_VALUE_EXPRESSION__DATA_TYPE;
+
+    /**
+     * The feature id for the '<em><b>Values Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ROW__VALUES_ROW = QUERY_VALUE_EXPRESSION__VALUES_ROW;
+
+    /**
+     * The feature id for the '<em><b>Order By Value Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ROW__ORDER_BY_VALUE_EXPR = QUERY_VALUE_EXPRESSION__ORDER_BY_VALUE_EXPR;
+
+    /**
+     * The feature id for the '<em><b>Result Column</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ROW__RESULT_COLUMN = QUERY_VALUE_EXPRESSION__RESULT_COLUMN;
+
+    /**
+     * The feature id for the '<em><b>Basic Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ROW__BASIC_RIGHT = QUERY_VALUE_EXPRESSION__BASIC_RIGHT;
+
+    /**
+     * The feature id for the '<em><b>Basic Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ROW__BASIC_LEFT = QUERY_VALUE_EXPRESSION__BASIC_LEFT;
+
+    /**
+     * The feature id for the '<em><b>Like Pattern</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ROW__LIKE_PATTERN = QUERY_VALUE_EXPRESSION__LIKE_PATTERN;
+
+    /**
+     * The feature id for the '<em><b>Like Matching</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ROW__LIKE_MATCHING = QUERY_VALUE_EXPRESSION__LIKE_MATCHING;
+
+    /**
+     * The feature id for the '<em><b>Predicate Null</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ROW__PREDICATE_NULL = QUERY_VALUE_EXPRESSION__PREDICATE_NULL;
+
+    /**
+     * The feature id for the '<em><b>In Value List Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ROW__IN_VALUE_LIST_RIGHT = QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_RIGHT;
+
+    /**
+     * The feature id for the '<em><b>In Value List Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ROW__IN_VALUE_LIST_LEFT = QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_LEFT;
+
+    /**
+     * The feature id for the '<em><b>In Value Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ROW__IN_VALUE_ROW_SELECT_LEFT = QUERY_VALUE_EXPRESSION__IN_VALUE_ROW_SELECT_LEFT;
+
+    /**
+     * The feature id for the '<em><b>In Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ROW__IN_VALUE_SELECT_LEFT = QUERY_VALUE_EXPRESSION__IN_VALUE_SELECT_LEFT;
+
+    /**
+     * The feature id for the '<em><b>Quantified Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ROW__QUANTIFIED_ROW_SELECT_LEFT = QUERY_VALUE_EXPRESSION__QUANTIFIED_ROW_SELECT_LEFT;
+
+    /**
+     * The feature id for the '<em><b>Quantified Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ROW__QUANTIFIED_VALUE_SELECT_LEFT = QUERY_VALUE_EXPRESSION__QUANTIFIED_VALUE_SELECT_LEFT;
+
+    /**
+     * The feature id for the '<em><b>Between Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ROW__BETWEEN_LEFT = QUERY_VALUE_EXPRESSION__BETWEEN_LEFT;
+
+    /**
+     * The feature id for the '<em><b>Between Right1</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ROW__BETWEEN_RIGHT1 = QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT1;
+
+    /**
+     * The feature id for the '<em><b>Between Right2</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ROW__BETWEEN_RIGHT2 = QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT2;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Cast</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ROW__VALUE_EXPR_CAST = QUERY_VALUE_EXPRESSION__VALUE_EXPR_CAST;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ROW__VALUE_EXPR_FUNCTION = QUERY_VALUE_EXPRESSION__VALUE_EXPR_FUNCTION;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ROW__VALUE_EXPR_COMBINED_LEFT = QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_LEFT;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ROW__VALUE_EXPR_COMBINED_RIGHT = QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_RIGHT;
+
+    /**
+     * The feature id for the '<em><b>Grouping Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ROW__GROUPING_EXPR = QUERY_VALUE_EXPRESSION__GROUPING_EXPR;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Case Else</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ROW__VALUE_EXPR_CASE_ELSE = QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_ELSE;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Case Simple</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ROW__VALUE_EXPR_CASE_SIMPLE = QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Case Simple Content When</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ROW__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN = QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Case Simple Content Result</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ROW__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT = QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ROW__VALUE_EXPR_CASE_SEARCH_CONTENT = QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+    /**
+     * The feature id for the '<em><b>Like Escape</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ROW__LIKE_ESCAPE = QUERY_VALUE_EXPRESSION__LIKE_ESCAPE;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Labeled Duration</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ROW__VALUE_EXPR_LABELED_DURATION = QUERY_VALUE_EXPRESSION__VALUE_EXPR_LABELED_DURATION;
+
+    /**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ROW__NEST = QUERY_VALUE_EXPRESSION__NEST;
+
+    /**
+     * The feature id for the '<em><b>Update Source Expr List</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ROW__UPDATE_SOURCE_EXPR_LIST = QUERY_VALUE_EXPRESSION__UPDATE_SOURCE_EXPR_LIST;
+
+    /**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ROW__TABLE_FUNCTION = QUERY_VALUE_EXPRESSION__TABLE_FUNCTION;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ROW__VALUE_EXPR_ROW = QUERY_VALUE_EXPRESSION__VALUE_EXPR_ROW;
+
+    /**
+     * The feature id for the '<em><b>Call Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ROW__CALL_STATEMENT = QUERY_VALUE_EXPRESSION__CALL_STATEMENT;
+
+    /**
+     * The feature id for the '<em><b>Value Expr List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ROW__VALUE_EXPR_LIST = QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 0;
+
+    /**
+     * The number of structural features of the '<em>Value Expression Row</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int VALUE_EXPRESSION_ROW_FEATURE_COUNT = QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 1;
+
+    /**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.MergeTargetTableImpl <em>Merge Target Table</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.MergeTargetTableImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getMergeTargetTable()
+     * @generated
+     */
+    int MERGE_TARGET_TABLE = 84;
+
+    /**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_TARGET_TABLE__EANNOTATIONS = SQL_QUERY_OBJECT__EANNOTATIONS;
+
+    /**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_TARGET_TABLE__NAME = SQL_QUERY_OBJECT__NAME;
+
+    /**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_TARGET_TABLE__DEPENDENCIES = SQL_QUERY_OBJECT__DEPENDENCIES;
+
+    /**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_TARGET_TABLE__DESCRIPTION = SQL_QUERY_OBJECT__DESCRIPTION;
+
+    /**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_TARGET_TABLE__LABEL = SQL_QUERY_OBJECT__LABEL;
+
+    /**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_TARGET_TABLE__COMMENTS = SQL_QUERY_OBJECT__COMMENTS;
+
+    /**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_TARGET_TABLE__EXTENSIONS = SQL_QUERY_OBJECT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_TARGET_TABLE__PRIVILEGES = SQL_QUERY_OBJECT__PRIVILEGES;
+
+    /**
+     * The feature id for the '<em><b>Merge Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_TARGET_TABLE__MERGE_STATEMENT = SQL_QUERY_OBJECT_FEATURE_COUNT + 0;
+
+    /**
+     * The feature id for the '<em><b>Table Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_TARGET_TABLE__TABLE_EXPR = SQL_QUERY_OBJECT_FEATURE_COUNT + 1;
+
+    /**
+     * The number of structural features of the '<em>Merge Target Table</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_TARGET_TABLE_FEATURE_COUNT = SQL_QUERY_OBJECT_FEATURE_COUNT + 2;
+
+    /**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.MergeSourceTableImpl <em>Merge Source Table</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.MergeSourceTableImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getMergeSourceTable()
+     * @generated
+     */
+    int MERGE_SOURCE_TABLE = 85;
+
+    /**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_SOURCE_TABLE__EANNOTATIONS = SQL_QUERY_OBJECT__EANNOTATIONS;
+
+    /**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_SOURCE_TABLE__NAME = SQL_QUERY_OBJECT__NAME;
+
+    /**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_SOURCE_TABLE__DEPENDENCIES = SQL_QUERY_OBJECT__DEPENDENCIES;
+
+    /**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_SOURCE_TABLE__DESCRIPTION = SQL_QUERY_OBJECT__DESCRIPTION;
+
+    /**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_SOURCE_TABLE__LABEL = SQL_QUERY_OBJECT__LABEL;
+
+    /**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_SOURCE_TABLE__COMMENTS = SQL_QUERY_OBJECT__COMMENTS;
+
+    /**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_SOURCE_TABLE__EXTENSIONS = SQL_QUERY_OBJECT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_SOURCE_TABLE__PRIVILEGES = SQL_QUERY_OBJECT__PRIVILEGES;
+
+    /**
+     * The feature id for the '<em><b>Query Merge Statement</b></em>' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_SOURCE_TABLE__QUERY_MERGE_STATEMENT = SQL_QUERY_OBJECT_FEATURE_COUNT + 0;
+
+    /**
+     * The feature id for the '<em><b>Merge Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_SOURCE_TABLE__MERGE_STATEMENT = SQL_QUERY_OBJECT_FEATURE_COUNT + 1;
+
+    /**
+     * The feature id for the '<em><b>Table Ref</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_SOURCE_TABLE__TABLE_REF = SQL_QUERY_OBJECT_FEATURE_COUNT + 2;
+
+    /**
+     * The number of structural features of the '<em>Merge Source Table</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_SOURCE_TABLE_FEATURE_COUNT = SQL_QUERY_OBJECT_FEATURE_COUNT + 3;
+
+    /**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.MergeOnConditionImpl <em>Merge On Condition</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.MergeOnConditionImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getMergeOnCondition()
+     * @generated
+     */
+    int MERGE_ON_CONDITION = 86;
+
+    /**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_ON_CONDITION__EANNOTATIONS = SQL_QUERY_OBJECT__EANNOTATIONS;
+
+    /**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_ON_CONDITION__NAME = SQL_QUERY_OBJECT__NAME;
+
+    /**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_ON_CONDITION__DEPENDENCIES = SQL_QUERY_OBJECT__DEPENDENCIES;
+
+    /**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_ON_CONDITION__DESCRIPTION = SQL_QUERY_OBJECT__DESCRIPTION;
+
+    /**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_ON_CONDITION__LABEL = SQL_QUERY_OBJECT__LABEL;
+
+    /**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_ON_CONDITION__COMMENTS = SQL_QUERY_OBJECT__COMMENTS;
+
+    /**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_ON_CONDITION__EXTENSIONS = SQL_QUERY_OBJECT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_ON_CONDITION__PRIVILEGES = SQL_QUERY_OBJECT__PRIVILEGES;
+
+    /**
+     * The feature id for the '<em><b>Merge Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_ON_CONDITION__MERGE_STATEMENT = SQL_QUERY_OBJECT_FEATURE_COUNT + 0;
+
+    /**
+     * The feature id for the '<em><b>Search Condition</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_ON_CONDITION__SEARCH_CONDITION = SQL_QUERY_OBJECT_FEATURE_COUNT + 1;
+
+    /**
+     * The number of structural features of the '<em>Merge On Condition</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_ON_CONDITION_FEATURE_COUNT = SQL_QUERY_OBJECT_FEATURE_COUNT + 2;
+
+    /**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.MergeOperationSpecificationImpl <em>Merge Operation Specification</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.MergeOperationSpecificationImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getMergeOperationSpecification()
+     * @generated
+     */
+    int MERGE_OPERATION_SPECIFICATION = 89;
+
+    /**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_OPERATION_SPECIFICATION__EANNOTATIONS = SQL_QUERY_OBJECT__EANNOTATIONS;
+
+    /**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_OPERATION_SPECIFICATION__NAME = SQL_QUERY_OBJECT__NAME;
+
+    /**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_OPERATION_SPECIFICATION__DEPENDENCIES = SQL_QUERY_OBJECT__DEPENDENCIES;
+
+    /**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_OPERATION_SPECIFICATION__DESCRIPTION = SQL_QUERY_OBJECT__DESCRIPTION;
+
+    /**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_OPERATION_SPECIFICATION__LABEL = SQL_QUERY_OBJECT__LABEL;
+
+    /**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_OPERATION_SPECIFICATION__COMMENTS = SQL_QUERY_OBJECT__COMMENTS;
+
+    /**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_OPERATION_SPECIFICATION__EXTENSIONS = SQL_QUERY_OBJECT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_OPERATION_SPECIFICATION__PRIVILEGES = SQL_QUERY_OBJECT__PRIVILEGES;
+
+    /**
+     * The feature id for the '<em><b>Merge Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_OPERATION_SPECIFICATION__MERGE_STATEMENT = SQL_QUERY_OBJECT_FEATURE_COUNT + 0;
+
+    /**
+     * The number of structural features of the '<em>Merge Operation Specification</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_OPERATION_SPECIFICATION_FEATURE_COUNT = SQL_QUERY_OBJECT_FEATURE_COUNT + 1;
+
+    /**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.MergeUpdateSpecificationImpl <em>Merge Update Specification</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.MergeUpdateSpecificationImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getMergeUpdateSpecification()
+     * @generated
+     */
+    int MERGE_UPDATE_SPECIFICATION = 87;
+
+    /**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_UPDATE_SPECIFICATION__EANNOTATIONS = MERGE_OPERATION_SPECIFICATION__EANNOTATIONS;
+
+    /**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_UPDATE_SPECIFICATION__NAME = MERGE_OPERATION_SPECIFICATION__NAME;
+
+    /**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_UPDATE_SPECIFICATION__DEPENDENCIES = MERGE_OPERATION_SPECIFICATION__DEPENDENCIES;
+
+    /**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_UPDATE_SPECIFICATION__DESCRIPTION = MERGE_OPERATION_SPECIFICATION__DESCRIPTION;
+
+    /**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_UPDATE_SPECIFICATION__LABEL = MERGE_OPERATION_SPECIFICATION__LABEL;
+
+    /**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_UPDATE_SPECIFICATION__COMMENTS = MERGE_OPERATION_SPECIFICATION__COMMENTS;
+
+    /**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_UPDATE_SPECIFICATION__EXTENSIONS = MERGE_OPERATION_SPECIFICATION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_UPDATE_SPECIFICATION__PRIVILEGES = MERGE_OPERATION_SPECIFICATION__PRIVILEGES;
+
+    /**
+     * The feature id for the '<em><b>Merge Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_UPDATE_SPECIFICATION__MERGE_STATEMENT = MERGE_OPERATION_SPECIFICATION__MERGE_STATEMENT;
+
+    /**
+     * The feature id for the '<em><b>Assignement Expr List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_UPDATE_SPECIFICATION__ASSIGNEMENT_EXPR_LIST = MERGE_OPERATION_SPECIFICATION_FEATURE_COUNT + 0;
+
+    /**
+     * The number of structural features of the '<em>Merge Update Specification</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_UPDATE_SPECIFICATION_FEATURE_COUNT = MERGE_OPERATION_SPECIFICATION_FEATURE_COUNT + 1;
+
+    /**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.MergeInsertSpecificationImpl <em>Merge Insert Specification</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.MergeInsertSpecificationImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getMergeInsertSpecification()
+     * @generated
+     */
+    int MERGE_INSERT_SPECIFICATION = 88;
+
+    /**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_INSERT_SPECIFICATION__EANNOTATIONS = MERGE_OPERATION_SPECIFICATION__EANNOTATIONS;
+
+    /**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_INSERT_SPECIFICATION__NAME = MERGE_OPERATION_SPECIFICATION__NAME;
+
+    /**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_INSERT_SPECIFICATION__DEPENDENCIES = MERGE_OPERATION_SPECIFICATION__DEPENDENCIES;
+
+    /**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_INSERT_SPECIFICATION__DESCRIPTION = MERGE_OPERATION_SPECIFICATION__DESCRIPTION;
+
+    /**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_INSERT_SPECIFICATION__LABEL = MERGE_OPERATION_SPECIFICATION__LABEL;
+
+    /**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_INSERT_SPECIFICATION__COMMENTS = MERGE_OPERATION_SPECIFICATION__COMMENTS;
+
+    /**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_INSERT_SPECIFICATION__EXTENSIONS = MERGE_OPERATION_SPECIFICATION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_INSERT_SPECIFICATION__PRIVILEGES = MERGE_OPERATION_SPECIFICATION__PRIVILEGES;
+
+    /**
+     * The feature id for the '<em><b>Merge Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_INSERT_SPECIFICATION__MERGE_STATEMENT = MERGE_OPERATION_SPECIFICATION__MERGE_STATEMENT;
+
+    /**
+     * The feature id for the '<em><b>Target Column List</b></em>' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_INSERT_SPECIFICATION__TARGET_COLUMN_LIST = MERGE_OPERATION_SPECIFICATION_FEATURE_COUNT + 0;
+
+    /**
+     * The feature id for the '<em><b>Source Values Row</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_INSERT_SPECIFICATION__SOURCE_VALUES_ROW = MERGE_OPERATION_SPECIFICATION_FEATURE_COUNT + 1;
+
+    /**
+     * The number of structural features of the '<em>Merge Insert Specification</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int MERGE_INSERT_SPECIFICATION_FEATURE_COUNT = MERGE_OPERATION_SPECIFICATION_FEATURE_COUNT + 2;
+
+    /**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.UpdateOfColumnImpl <em>Update Of Column</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.UpdateOfColumnImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getUpdateOfColumn()
+     * @generated
+     */
+    int UPDATE_OF_COLUMN = 90;
+
+    /**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int UPDATE_OF_COLUMN__EANNOTATIONS = SQL_QUERY_OBJECT__EANNOTATIONS;
+
+    /**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int UPDATE_OF_COLUMN__NAME = SQL_QUERY_OBJECT__NAME;
+
+    /**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int UPDATE_OF_COLUMN__DEPENDENCIES = SQL_QUERY_OBJECT__DEPENDENCIES;
+
+    /**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int UPDATE_OF_COLUMN__DESCRIPTION = SQL_QUERY_OBJECT__DESCRIPTION;
+
+    /**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int UPDATE_OF_COLUMN__LABEL = SQL_QUERY_OBJECT__LABEL;
+
+    /**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int UPDATE_OF_COLUMN__COMMENTS = SQL_QUERY_OBJECT__COMMENTS;
+
+    /**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int UPDATE_OF_COLUMN__EXTENSIONS = SQL_QUERY_OBJECT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int UPDATE_OF_COLUMN__PRIVILEGES = SQL_QUERY_OBJECT__PRIVILEGES;
+
+    /**
+     * The feature id for the '<em><b>Updatability Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int UPDATE_OF_COLUMN__UPDATABILITY_EXPR = SQL_QUERY_OBJECT_FEATURE_COUNT + 0;
+
+    /**
+     * The number of structural features of the '<em>Update Of Column</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int UPDATE_OF_COLUMN_FEATURE_COUNT = SQL_QUERY_OBJECT_FEATURE_COUNT + 1;
+
+    /**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.UpdatabilityExpressionImpl <em>Updatability Expression</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.UpdatabilityExpressionImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getUpdatabilityExpression()
+     * @generated
+     */
+    int UPDATABILITY_EXPRESSION = 91;
+
+    /**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int UPDATABILITY_EXPRESSION__EANNOTATIONS = SQL_QUERY_OBJECT__EANNOTATIONS;
+
+    /**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int UPDATABILITY_EXPRESSION__NAME = SQL_QUERY_OBJECT__NAME;
+
+    /**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int UPDATABILITY_EXPRESSION__DEPENDENCIES = SQL_QUERY_OBJECT__DEPENDENCIES;
+
+    /**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int UPDATABILITY_EXPRESSION__DESCRIPTION = SQL_QUERY_OBJECT__DESCRIPTION;
+
+    /**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int UPDATABILITY_EXPRESSION__LABEL = SQL_QUERY_OBJECT__LABEL;
+
+    /**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int UPDATABILITY_EXPRESSION__COMMENTS = SQL_QUERY_OBJECT__COMMENTS;
+
+    /**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int UPDATABILITY_EXPRESSION__EXTENSIONS = SQL_QUERY_OBJECT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int UPDATABILITY_EXPRESSION__PRIVILEGES = SQL_QUERY_OBJECT__PRIVILEGES;
+
+    /**
+     * The feature id for the '<em><b>Updatability Type</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int UPDATABILITY_EXPRESSION__UPDATABILITY_TYPE = SQL_QUERY_OBJECT_FEATURE_COUNT + 0;
+
+    /**
+     * The feature id for the '<em><b>Update Of Column List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int UPDATABILITY_EXPRESSION__UPDATE_OF_COLUMN_LIST = SQL_QUERY_OBJECT_FEATURE_COUNT + 1;
+
+    /**
+     * The feature id for the '<em><b>Select Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int UPDATABILITY_EXPRESSION__SELECT_STATEMENT = SQL_QUERY_OBJECT_FEATURE_COUNT + 2;
+
+    /**
+     * The number of structural features of the '<em>Updatability Expression</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int UPDATABILITY_EXPRESSION_FEATURE_COUNT = SQL_QUERY_OBJECT_FEATURE_COUNT + 3;
+
+    /**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.CallStatementImpl <em>Call Statement</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.CallStatementImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getCallStatement()
+     * @generated
+     */
+    int CALL_STATEMENT = 92;
+
+    /**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int CALL_STATEMENT__EANNOTATIONS = SQL_QUERY_OBJECT__EANNOTATIONS;
+
+    /**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int CALL_STATEMENT__NAME = SQL_QUERY_OBJECT__NAME;
+
+    /**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int CALL_STATEMENT__DEPENDENCIES = SQL_QUERY_OBJECT__DEPENDENCIES;
+
+    /**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int CALL_STATEMENT__DESCRIPTION = SQL_QUERY_OBJECT__DESCRIPTION;
+
+    /**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int CALL_STATEMENT__LABEL = SQL_QUERY_OBJECT__LABEL;
+
+    /**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int CALL_STATEMENT__COMMENTS = SQL_QUERY_OBJECT__COMMENTS;
+
+    /**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int CALL_STATEMENT__EXTENSIONS = SQL_QUERY_OBJECT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int CALL_STATEMENT__PRIVILEGES = SQL_QUERY_OBJECT__PRIVILEGES;
+
+    /**
+     * The feature id for the '<em><b>Argument List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int CALL_STATEMENT__ARGUMENT_LIST = SQL_QUERY_OBJECT_FEATURE_COUNT + 0;
+
+    /**
+     * The feature id for the '<em><b>Procedure Ref</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int CALL_STATEMENT__PROCEDURE_REF = SQL_QUERY_OBJECT_FEATURE_COUNT + 1;
+
+    /**
+     * The number of structural features of the '<em>Call Statement</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int CALL_STATEMENT_FEATURE_COUNT = SQL_QUERY_OBJECT_FEATURE_COUNT + 2;
+
+    /**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ProcedureReferenceImpl <em>Procedure Reference</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.ProcedureReferenceImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getProcedureReference()
+     * @generated
+     */
+    int PROCEDURE_REFERENCE = 93;
+
+    /**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int PROCEDURE_REFERENCE__EANNOTATIONS = SQL_QUERY_OBJECT__EANNOTATIONS;
+
+    /**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int PROCEDURE_REFERENCE__NAME = SQL_QUERY_OBJECT__NAME;
+
+    /**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int PROCEDURE_REFERENCE__DEPENDENCIES = SQL_QUERY_OBJECT__DEPENDENCIES;
+
+    /**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int PROCEDURE_REFERENCE__DESCRIPTION = SQL_QUERY_OBJECT__DESCRIPTION;
+
+    /**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int PROCEDURE_REFERENCE__LABEL = SQL_QUERY_OBJECT__LABEL;
+
+    /**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int PROCEDURE_REFERENCE__COMMENTS = SQL_QUERY_OBJECT__COMMENTS;
+
+    /**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int PROCEDURE_REFERENCE__EXTENSIONS = SQL_QUERY_OBJECT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int PROCEDURE_REFERENCE__PRIVILEGES = SQL_QUERY_OBJECT__PRIVILEGES;
+
+    /**
+     * The feature id for the '<em><b>Call Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int PROCEDURE_REFERENCE__CALL_STATEMENT = SQL_QUERY_OBJECT_FEATURE_COUNT + 0;
+
+    /**
+     * The feature id for the '<em><b>Procedure</b></em>' reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int PROCEDURE_REFERENCE__PROCEDURE = SQL_QUERY_OBJECT_FEATURE_COUNT + 1;
+
+    /**
+     * The number of structural features of the '<em>Procedure Reference</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int PROCEDURE_REFERENCE_FEATURE_COUNT = SQL_QUERY_OBJECT_FEATURE_COUNT + 2;
+
+    /**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.TableQueryLateralImpl <em>Table Query Lateral</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.TableQueryLateralImpl
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getTableQueryLateral()
+     * @generated
+     */
+    int TABLE_QUERY_LATERAL = 94;
+
+    /**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int TABLE_QUERY_LATERAL__EANNOTATIONS = TABLE_EXPRESSION__EANNOTATIONS;
+
+    /**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int TABLE_QUERY_LATERAL__NAME = TABLE_EXPRESSION__NAME;
+
+    /**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int TABLE_QUERY_LATERAL__DEPENDENCIES = TABLE_EXPRESSION__DEPENDENCIES;
+
+    /**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int TABLE_QUERY_LATERAL__DESCRIPTION = TABLE_EXPRESSION__DESCRIPTION;
+
+    /**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int TABLE_QUERY_LATERAL__LABEL = TABLE_EXPRESSION__LABEL;
+
+    /**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int TABLE_QUERY_LATERAL__COMMENTS = TABLE_EXPRESSION__COMMENTS;
+
+    /**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int TABLE_QUERY_LATERAL__EXTENSIONS = TABLE_EXPRESSION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int TABLE_QUERY_LATERAL__PRIVILEGES = TABLE_EXPRESSION__PRIVILEGES;
+
+    /**
+     * The feature id for the '<em><b>Table Joined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int TABLE_QUERY_LATERAL__TABLE_JOINED_RIGHT = TABLE_EXPRESSION__TABLE_JOINED_RIGHT;
+
+    /**
+     * The feature id for the '<em><b>Table Joined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int TABLE_QUERY_LATERAL__TABLE_JOINED_LEFT = TABLE_EXPRESSION__TABLE_JOINED_LEFT;
+
+    /**
+     * The feature id for the '<em><b>Query Select</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int TABLE_QUERY_LATERAL__QUERY_SELECT = TABLE_EXPRESSION__QUERY_SELECT;
+
+    /**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int TABLE_QUERY_LATERAL__NEST = TABLE_EXPRESSION__NEST;
+
+    /**
+     * The feature id for the '<em><b>Merge Source Table</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int TABLE_QUERY_LATERAL__MERGE_SOURCE_TABLE = TABLE_EXPRESSION__MERGE_SOURCE_TABLE;
+
+    /**
+     * The feature id for the '<em><b>Column List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int TABLE_QUERY_LATERAL__COLUMN_LIST = TABLE_EXPRESSION__COLUMN_LIST;
+
+    /**
+     * The feature id for the '<em><b>Table Correlation</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int TABLE_QUERY_LATERAL__TABLE_CORRELATION = TABLE_EXPRESSION__TABLE_CORRELATION;
+
+    /**
+     * The feature id for the '<em><b>Result Table All Columns</b></em>' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int TABLE_QUERY_LATERAL__RESULT_TABLE_ALL_COLUMNS = TABLE_EXPRESSION__RESULT_TABLE_ALL_COLUMNS;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Columns</b></em>' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int TABLE_QUERY_LATERAL__VALUE_EXPR_COLUMNS = TABLE_EXPRESSION__VALUE_EXPR_COLUMNS;
+
+    /**
+     * The feature id for the '<em><b>Merge Target Table</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int TABLE_QUERY_LATERAL__MERGE_TARGET_TABLE = TABLE_EXPRESSION__MERGE_TARGET_TABLE;
+
+    /**
+     * The feature id for the '<em><b>Query</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int TABLE_QUERY_LATERAL__QUERY = TABLE_EXPRESSION_FEATURE_COUNT + 0;
+
+    /**
+     * The number of structural features of the '<em>Table Query Lateral</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int TABLE_QUERY_LATERAL_FEATURE_COUNT = TABLE_EXPRESSION_FEATURE_COUNT + 1;
+
+    /**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.SuperGroupType <em>Super Group Type</em>}' enum.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.SuperGroupType
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getSuperGroupType()
+     * @generated
+     */
+	int SUPER_GROUP_TYPE = 95;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedType <em>Predicate Quantified Type</em>}' enum.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedType
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getPredicateQuantifiedType()
+     * @generated
+     */
+	int PREDICATE_QUANTIFIED_TYPE = 96;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.PredicateComparisonOperator <em>Predicate Comparison Operator</em>}' enum.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateComparisonOperator
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getPredicateComparisonOperator()
+     * @generated
+     */
+	int PREDICATE_COMPARISON_OPERATOR = 97;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.SearchConditionCombinedOperator <em>Search Condition Combined Operator</em>}' enum.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.SearchConditionCombinedOperator
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getSearchConditionCombinedOperator()
+     * @generated
+     */
+	int SEARCH_CONDITION_COMBINED_OPERATOR = 98;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.TableJoinedOperator <em>Table Joined Operator</em>}' enum.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.TableJoinedOperator
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getTableJoinedOperator()
+     * @generated
+     */
+	int TABLE_JOINED_OPERATOR = 99;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.QueryCombinedOperator <em>Query Combined Operator</em>}' enum.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryCombinedOperator
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getQueryCombinedOperator()
+     * @generated
+     */
+	int QUERY_COMBINED_OPERATOR = 100;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator <em>Value Expression Unary Operator</em>}' enum.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getValueExpressionUnaryOperator()
+     * @generated
+     */
+	int VALUE_EXPRESSION_UNARY_OPERATOR = 101;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombinedOperator <em>Value Expression Combined Operator</em>}' enum.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombinedOperator
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getValueExpressionCombinedOperator()
+     * @generated
+     */
+	int VALUE_EXPRESSION_COMBINED_OPERATOR = 102;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDurationType <em>Value Expression Labeled Duration Type</em>}' enum.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDurationType
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getValueExpressionLabeledDurationType()
+     * @generated
+     */
+	int VALUE_EXPRESSION_LABELED_DURATION_TYPE = 103;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.NullOrderingType <em>Null Ordering Type</em>}' enum.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.NullOrderingType
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getNullOrderingType()
+     * @generated
+     */
+	int NULL_ORDERING_TYPE = 104;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.OrderingSpecType <em>Ordering Spec Type</em>}' enum.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.OrderingSpecType
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getOrderingSpecType()
+     * @generated
+     */
+	int ORDERING_SPEC_TYPE = 105;
+
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.query.UpdatabilityType <em>Updatability Type</em>}' enum.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.query.UpdatabilityType
+     * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getUpdatabilityType()
+     * @generated
+     */
+    int UPDATABILITY_TYPE = 106;
+
+
+    /**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.QueryStatement <em>Query Statement</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Query Statement</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryStatement
+     * @generated
+     */
+	EClass getQueryStatement();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement <em>Query Delete Statement</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Query Delete Statement</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement
+     * @generated
+     */
+	EClass getQueryDeleteStatement();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement#getWhereCurrentOfClause <em>Where Current Of Clause</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Where Current Of Clause</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement#getWhereCurrentOfClause()
+     * @see #getQueryDeleteStatement()
+     * @generated
+     */
+	EReference getQueryDeleteStatement_WhereCurrentOfClause();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement#getWhereClause <em>Where Clause</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Where Clause</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement#getWhereClause()
+     * @see #getQueryDeleteStatement()
+     * @generated
+     */
+	EReference getQueryDeleteStatement_WhereClause();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement#getTargetTable <em>Target Table</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Target Table</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement#getTargetTable()
+     * @see #getQueryDeleteStatement()
+     * @generated
+     */
+	EReference getQueryDeleteStatement_TargetTable();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.QueryInsertStatement <em>Query Insert Statement</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Query Insert Statement</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryInsertStatement
+     * @generated
+     */
+	EClass getQueryInsertStatement();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryInsertStatement#getSourceQuery <em>Source Query</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Source Query</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryInsertStatement#getSourceQuery()
+     * @see #getQueryInsertStatement()
+     * @generated
+     */
+	EReference getQueryInsertStatement_SourceQuery();
+
+	/**
+     * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.query.QueryInsertStatement#getSourceValuesRowList <em>Source Values Row List</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference list '<em>Source Values Row List</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryInsertStatement#getSourceValuesRowList()
+     * @see #getQueryInsertStatement()
+     * @generated
+     */
+	EReference getQueryInsertStatement_SourceValuesRowList();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryInsertStatement#getTargetTable <em>Target Table</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Target Table</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryInsertStatement#getTargetTable()
+     * @see #getQueryInsertStatement()
+     * @generated
+     */
+	EReference getQueryInsertStatement_TargetTable();
+
+	/**
+     * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.sql.query.QueryInsertStatement#getTargetColumnList <em>Target Column List</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the reference list '<em>Target Column List</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryInsertStatement#getTargetColumnList()
+     * @see #getQueryInsertStatement()
+     * @generated
+     */
+	EReference getQueryInsertStatement_TargetColumnList();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.QuerySelectStatement <em>Query Select Statement</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Query Select Statement</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySelectStatement
+     * @generated
+     */
+	EClass getQuerySelectStatement();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.QuerySelectStatement#getQueryExpr <em>Query Expr</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Query Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySelectStatement#getQueryExpr()
+     * @see #getQuerySelectStatement()
+     * @generated
+     */
+	EReference getQuerySelectStatement_QueryExpr();
+
+	/**
+     * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.query.QuerySelectStatement#getOrderByClause <em>Order By Clause</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference list '<em>Order By Clause</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySelectStatement#getOrderByClause()
+     * @see #getQuerySelectStatement()
+     * @generated
+     */
+	EReference getQuerySelectStatement_OrderByClause();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.QuerySelectStatement#getUpdatabilityExpr <em>Updatability Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Updatability Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySelectStatement#getUpdatabilityExpr()
+     * @see #getQuerySelectStatement()
+     * @generated
+     */
+    EReference getQuerySelectStatement_UpdatabilityExpr();
+
+    /**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement <em>Query Update Statement</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Query Update Statement</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement
+     * @generated
+     */
+	EClass getQueryUpdateStatement();
+
+	/**
+     * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement#getAssignmentClause <em>Assignment Clause</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference list '<em>Assignment Clause</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement#getAssignmentClause()
+     * @see #getQueryUpdateStatement()
+     * @generated
+     */
+	EReference getQueryUpdateStatement_AssignmentClause();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement#getWhereCurrentOfClause <em>Where Current Of Clause</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Where Current Of Clause</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement#getWhereCurrentOfClause()
+     * @see #getQueryUpdateStatement()
+     * @generated
+     */
+	EReference getQueryUpdateStatement_WhereCurrentOfClause();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement#getWhereClause <em>Where Clause</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Where Clause</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement#getWhereClause()
+     * @see #getQueryUpdateStatement()
+     * @generated
+     */
+	EReference getQueryUpdateStatement_WhereClause();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement#getTargetTable <em>Target Table</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Target Table</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement#getTargetTable()
+     * @see #getQueryUpdateStatement()
+     * @generated
+     */
+	EReference getQueryUpdateStatement_TargetTable();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression <em>Update Assignment Expression</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Update Assignment Expression</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression
+     * @generated
+     */
+	EClass getUpdateAssignmentExpression();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression#getUpdateStatement <em>Update Statement</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Update Statement</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression#getUpdateStatement()
+     * @see #getUpdateAssignmentExpression()
+     * @generated
+     */
+	EReference getUpdateAssignmentExpression_UpdateStatement();
+
+	/**
+     * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression#getTargetColumnList <em>Target Column List</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the reference list '<em>Target Column List</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression#getTargetColumnList()
+     * @see #getUpdateAssignmentExpression()
+     * @generated
+     */
+	EReference getUpdateAssignmentExpression_TargetColumnList();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression#getUpdateSource <em>Update Source</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Update Source</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression#getUpdateSource()
+     * @see #getUpdateAssignmentExpression()
+     * @generated
+     */
+	EReference getUpdateAssignmentExpression_UpdateSource();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression#getMergeUpdateSpec <em>Merge Update Spec</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Merge Update Spec</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression#getMergeUpdateSpec()
+     * @see #getUpdateAssignmentExpression()
+     * @generated
+     */
+    EReference getUpdateAssignmentExpression_MergeUpdateSpec();
+
+    /**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.CursorReference <em>Cursor Reference</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Cursor Reference</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.CursorReference
+     * @generated
+     */
+	EClass getCursorReference();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.CursorReference#getUpdateStatement <em>Update Statement</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Update Statement</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.CursorReference#getUpdateStatement()
+     * @see #getCursorReference()
+     * @generated
+     */
+	EReference getCursorReference_UpdateStatement();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.CursorReference#getDeleteStatement <em>Delete Statement</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Delete Statement</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.CursorReference#getDeleteStatement()
+     * @see #getCursorReference()
+     * @generated
+     */
+	EReference getCursorReference_DeleteStatement();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition <em>Query Search Condition</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Query Search Condition</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition
+     * @generated
+     */
+	EClass getQuerySearchCondition();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#isNegatedCondition <em>Negated Condition</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Negated Condition</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#isNegatedCondition()
+     * @see #getQuerySearchCondition()
+     * @generated
+     */
+	EAttribute getQuerySearchCondition_NegatedCondition();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getUpdateStatement <em>Update Statement</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Update Statement</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getUpdateStatement()
+     * @see #getQuerySearchCondition()
+     * @generated
+     */
+	EReference getQuerySearchCondition_UpdateStatement();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getDeleteStatement <em>Delete Statement</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Delete Statement</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getDeleteStatement()
+     * @see #getQuerySearchCondition()
+     * @generated
+     */
+	EReference getQuerySearchCondition_DeleteStatement();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getTableJoined <em>Table Joined</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Table Joined</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getTableJoined()
+     * @see #getQuerySearchCondition()
+     * @generated
+     */
+	EReference getQuerySearchCondition_TableJoined();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getCombinedLeft <em>Combined Left</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Combined Left</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getCombinedLeft()
+     * @see #getQuerySearchCondition()
+     * @generated
+     */
+	EReference getQuerySearchCondition_CombinedLeft();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getCombinedRight <em>Combined Right</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Combined Right</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getCombinedRight()
+     * @see #getQuerySearchCondition()
+     * @generated
+     */
+	EReference getQuerySearchCondition_CombinedRight();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getQuerySelectHaving <em>Query Select Having</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Query Select Having</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getQuerySelectHaving()
+     * @see #getQuerySearchCondition()
+     * @generated
+     */
+	EReference getQuerySearchCondition_QuerySelectHaving();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getQuerySelectWhere <em>Query Select Where</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Query Select Where</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getQuerySelectWhere()
+     * @see #getQuerySearchCondition()
+     * @generated
+     */
+	EReference getQuerySearchCondition_QuerySelectWhere();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getValueExprCaseSearchContent <em>Value Expr Case Search Content</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Value Expr Case Search Content</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getValueExprCaseSearchContent()
+     * @see #getQuerySearchCondition()
+     * @generated
+     */
+	EReference getQuerySearchCondition_ValueExprCaseSearchContent();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getNest <em>Nest</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Nest</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getNest()
+     * @see #getQuerySearchCondition()
+     * @generated
+     */
+	EReference getQuerySearchCondition_Nest();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getMergeOnCondition <em>Merge On Condition</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Merge On Condition</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getMergeOnCondition()
+     * @see #getQuerySearchCondition()
+     * @generated
+     */
+    EReference getQuerySearchCondition_MergeOnCondition();
+
+    /**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody <em>Query Expression Body</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Query Expression Body</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody
+     * @generated
+     */
+	EClass getQueryExpressionBody();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getRowFetchLimit <em>Row Fetch Limit</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Row Fetch Limit</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getRowFetchLimit()
+     * @see #getQueryExpressionBody()
+     * @generated
+     */
+    EAttribute getQueryExpressionBody_RowFetchLimit();
+
+    /**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getQueryExpression <em>Query Expression</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Query Expression</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getQueryExpression()
+     * @see #getQueryExpressionBody()
+     * @generated
+     */
+	EReference getQueryExpressionBody_QueryExpression();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getCombinedLeft <em>Combined Left</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Combined Left</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getCombinedLeft()
+     * @see #getQueryExpressionBody()
+     * @generated
+     */
+	EReference getQueryExpressionBody_CombinedLeft();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getCombinedRight <em>Combined Right</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Combined Right</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getCombinedRight()
+     * @see #getQueryExpressionBody()
+     * @generated
+     */
+	EReference getQueryExpressionBody_CombinedRight();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getPredicateExists <em>Predicate Exists</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Predicate Exists</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getPredicateExists()
+     * @see #getQueryExpressionBody()
+     * @generated
+     */
+	EReference getQueryExpressionBody_PredicateExists();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getUpdateSourceQuery <em>Update Source Query</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Update Source Query</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getUpdateSourceQuery()
+     * @see #getQueryExpressionBody()
+     * @generated
+     */
+	EReference getQueryExpressionBody_UpdateSourceQuery();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getWithTableSpecification <em>With Table Specification</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>With Table Specification</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getWithTableSpecification()
+     * @see #getQueryExpressionBody()
+     * @generated
+     */
+	EReference getQueryExpressionBody_WithTableSpecification();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getQueryNest <em>Query Nest</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Query Nest</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getQueryNest()
+     * @see #getQueryExpressionBody()
+     * @generated
+     */
+    EReference getQueryExpressionBody_QueryNest();
+
+    /**
+     * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getSortSpecList <em>Sort Spec List</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference list '<em>Sort Spec List</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getSortSpecList()
+     * @see #getQueryExpressionBody()
+     * @generated
+     */
+    EReference getQueryExpressionBody_SortSpecList();
+
+    /**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression <em>Query Value Expression</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Query Value Expression</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression
+     * @generated
+     */
+	EClass getQueryValueExpression();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getUnaryOperator <em>Unary Operator</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Unary Operator</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getUnaryOperator()
+     * @see #getQueryValueExpression()
+     * @generated
+     */
+	EAttribute getQueryValueExpression_UnaryOperator();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getDataType <em>Data Type</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Data Type</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getDataType()
+     * @see #getQueryValueExpression()
+     * @generated
+     */
+	EReference getQueryValueExpression_DataType();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValuesRow <em>Values Row</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Values Row</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValuesRow()
+     * @see #getQueryValueExpression()
+     * @generated
+     */
+	EReference getQueryValueExpression_ValuesRow();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getOrderByValueExpr <em>Order By Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Order By Value Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getOrderByValueExpr()
+     * @see #getQueryValueExpression()
+     * @generated
+     */
+	EReference getQueryValueExpression_OrderByValueExpr();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getResultColumn <em>Result Column</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Result Column</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getResultColumn()
+     * @see #getQueryValueExpression()
+     * @generated
+     */
+	EReference getQueryValueExpression_ResultColumn();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getBasicRight <em>Basic Right</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Basic Right</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getBasicRight()
+     * @see #getQueryValueExpression()
+     * @generated
+     */
+	EReference getQueryValueExpression_BasicRight();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getBasicLeft <em>Basic Left</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Basic Left</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getBasicLeft()
+     * @see #getQueryValueExpression()
+     * @generated
+     */
+	EReference getQueryValueExpression_BasicLeft();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getLikePattern <em>Like Pattern</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Like Pattern</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getLikePattern()
+     * @see #getQueryValueExpression()
+     * @generated
+     */
+	EReference getQueryValueExpression_LikePattern();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getLikeMatching <em>Like Matching</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Like Matching</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getLikeMatching()
+     * @see #getQueryValueExpression()
+     * @generated
+     */
+	EReference getQueryValueExpression_LikeMatching();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getPredicateNull <em>Predicate Null</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Predicate Null</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getPredicateNull()
+     * @see #getQueryValueExpression()
+     * @generated
+     */
+	EReference getQueryValueExpression_PredicateNull();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getInValueListRight <em>In Value List Right</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>In Value List Right</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getInValueListRight()
+     * @see #getQueryValueExpression()
+     * @generated
+     */
+	EReference getQueryValueExpression_InValueListRight();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getInValueListLeft <em>In Value List Left</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>In Value List Left</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getInValueListLeft()
+     * @see #getQueryValueExpression()
+     * @generated
+     */
+	EReference getQueryValueExpression_InValueListLeft();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getInValueRowSelectLeft <em>In Value Row Select Left</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>In Value Row Select Left</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getInValueRowSelectLeft()
+     * @see #getQueryValueExpression()
+     * @generated
+     */
+	EReference getQueryValueExpression_InValueRowSelectLeft();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getInValueSelectLeft <em>In Value Select Left</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>In Value Select Left</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getInValueSelectLeft()
+     * @see #getQueryValueExpression()
+     * @generated
+     */
+	EReference getQueryValueExpression_InValueSelectLeft();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getQuantifiedRowSelectLeft <em>Quantified Row Select Left</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Quantified Row Select Left</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getQuantifiedRowSelectLeft()
+     * @see #getQueryValueExpression()
+     * @generated
+     */
+	EReference getQueryValueExpression_QuantifiedRowSelectLeft();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getQuantifiedValueSelectLeft <em>Quantified Value Select Left</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Quantified Value Select Left</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getQuantifiedValueSelectLeft()
+     * @see #getQueryValueExpression()
+     * @generated
+     */
+	EReference getQueryValueExpression_QuantifiedValueSelectLeft();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getBetweenLeft <em>Between Left</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Between Left</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getBetweenLeft()
+     * @see #getQueryValueExpression()
+     * @generated
+     */
+	EReference getQueryValueExpression_BetweenLeft();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getBetweenRight1 <em>Between Right1</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Between Right1</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getBetweenRight1()
+     * @see #getQueryValueExpression()
+     * @generated
+     */
+	EReference getQueryValueExpression_BetweenRight1();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getBetweenRight2 <em>Between Right2</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Between Right2</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getBetweenRight2()
+     * @see #getQueryValueExpression()
+     * @generated
+     */
+	EReference getQueryValueExpression_BetweenRight2();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCast <em>Value Expr Cast</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Value Expr Cast</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCast()
+     * @see #getQueryValueExpression()
+     * @generated
+     */
+	EReference getQueryValueExpression_ValueExprCast();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprFunction <em>Value Expr Function</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Value Expr Function</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprFunction()
+     * @see #getQueryValueExpression()
+     * @generated
+     */
+	EReference getQueryValueExpression_ValueExprFunction();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCombinedLeft <em>Value Expr Combined Left</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Value Expr Combined Left</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCombinedLeft()
+     * @see #getQueryValueExpression()
+     * @generated
+     */
+	EReference getQueryValueExpression_ValueExprCombinedLeft();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCombinedRight <em>Value Expr Combined Right</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Value Expr Combined Right</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCombinedRight()
+     * @see #getQueryValueExpression()
+     * @generated
+     */
+	EReference getQueryValueExpression_ValueExprCombinedRight();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getGroupingExpr <em>Grouping Expr</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Grouping Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getGroupingExpr()
+     * @see #getQueryValueExpression()
+     * @generated
+     */
+	EReference getQueryValueExpression_GroupingExpr();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCaseElse <em>Value Expr Case Else</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Value Expr Case Else</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCaseElse()
+     * @see #getQueryValueExpression()
+     * @generated
+     */
+	EReference getQueryValueExpression_ValueExprCaseElse();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCaseSimple <em>Value Expr Case Simple</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Value Expr Case Simple</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCaseSimple()
+     * @see #getQueryValueExpression()
+     * @generated
+     */
+	EReference getQueryValueExpression_ValueExprCaseSimple();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCaseSimpleContentWhen <em>Value Expr Case Simple Content When</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Value Expr Case Simple Content When</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCaseSimpleContentWhen()
+     * @see #getQueryValueExpression()
+     * @generated
+     */
+	EReference getQueryValueExpression_ValueExprCaseSimpleContentWhen();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCaseSimpleContentResult <em>Value Expr Case Simple Content Result</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Value Expr Case Simple Content Result</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCaseSimpleContentResult()
+     * @see #getQueryValueExpression()
+     * @generated
+     */
+	EReference getQueryValueExpression_ValueExprCaseSimpleContentResult();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCaseSearchContent <em>Value Expr Case Search Content</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Value Expr Case Search Content</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCaseSearchContent()
+     * @see #getQueryValueExpression()
+     * @generated
+     */
+	EReference getQueryValueExpression_ValueExprCaseSearchContent();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getLikeEscape <em>Like Escape</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Like Escape</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getLikeEscape()
+     * @see #getQueryValueExpression()
+     * @generated
+     */
+	EReference getQueryValueExpression_LikeEscape();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprLabeledDuration <em>Value Expr Labeled Duration</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Value Expr Labeled Duration</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprLabeledDuration()
+     * @see #getQueryValueExpression()
+     * @generated
+     */
+	EReference getQueryValueExpression_ValueExprLabeledDuration();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getNest <em>Nest</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Nest</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getNest()
+     * @see #getQueryValueExpression()
+     * @generated
+     */
+	EReference getQueryValueExpression_Nest();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getUpdateSourceExprList <em>Update Source Expr List</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Update Source Expr List</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getUpdateSourceExprList()
+     * @see #getQueryValueExpression()
+     * @generated
+     */
+	EReference getQueryValueExpression_UpdateSourceExprList();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getTableFunction <em>Table Function</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Table Function</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getTableFunction()
+     * @see #getQueryValueExpression()
+     * @generated
+     */
+    EReference getQueryValueExpression_TableFunction();
+
+    /**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprRow <em>Value Expr Row</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Value Expr Row</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprRow()
+     * @see #getQueryValueExpression()
+     * @generated
+     */
+    EReference getQueryValueExpression_ValueExprRow();
+
+    /**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getCallStatement <em>Call Statement</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Call Statement</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getCallStatement()
+     * @see #getQueryValueExpression()
+     * @generated
+     */
+    EReference getQueryValueExpression_CallStatement();
+
+    /**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot <em>Query Expression Root</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Query Expression Root</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot
+     * @generated
+     */
+	EClass getQueryExpressionRoot();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getInsertStatement <em>Insert Statement</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Insert Statement</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getInsertStatement()
+     * @see #getQueryExpressionRoot()
+     * @generated
+     */
+	EReference getQueryExpressionRoot_InsertStatement();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getSelectStatement <em>Select Statement</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Select Statement</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getSelectStatement()
+     * @see #getQueryExpressionRoot()
+     * @generated
+     */
+	EReference getQueryExpressionRoot_SelectStatement();
+
+	/**
+     * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getWithClause <em>With Clause</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference list '<em>With Clause</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getWithClause()
+     * @see #getQueryExpressionRoot()
+     * @generated
+     */
+	EReference getQueryExpressionRoot_WithClause();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getQuery <em>Query</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Query</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getQuery()
+     * @see #getQueryExpressionRoot()
+     * @generated
+     */
+	EReference getQueryExpressionRoot_Query();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getInValueRowSelectRight <em>In Value Row Select Right</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>In Value Row Select Right</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getInValueRowSelectRight()
+     * @see #getQueryExpressionRoot()
+     * @generated
+     */
+	EReference getQueryExpressionRoot_InValueRowSelectRight();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getInValueSelectRight <em>In Value Select Right</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>In Value Select Right</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getInValueSelectRight()
+     * @see #getQueryExpressionRoot()
+     * @generated
+     */
+	EReference getQueryExpressionRoot_InValueSelectRight();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getQuantifiedRowSelectRight <em>Quantified Row Select Right</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Quantified Row Select Right</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getQuantifiedRowSelectRight()
+     * @see #getQueryExpressionRoot()
+     * @generated
+     */
+	EReference getQueryExpressionRoot_QuantifiedRowSelectRight();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getQuantifiedValueSelectRight <em>Quantified Value Select Right</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Quantified Value Select Right</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getQuantifiedValueSelectRight()
+     * @see #getQueryExpressionRoot()
+     * @generated
+     */
+	EReference getQueryExpressionRoot_QuantifiedValueSelectRight();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getValExprScalarSelect <em>Val Expr Scalar Select</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Val Expr Scalar Select</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getValExprScalarSelect()
+     * @see #getQueryExpressionRoot()
+     * @generated
+     */
+    EReference getQueryExpressionRoot_ValExprScalarSelect();
+
+    /**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.ValuesRow <em>Values Row</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Values Row</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValuesRow
+     * @generated
+     */
+	EClass getValuesRow();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.ValuesRow#getInsertStatement <em>Insert Statement</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Insert Statement</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValuesRow#getInsertStatement()
+     * @see #getValuesRow()
+     * @generated
+     */
+	EReference getValuesRow_InsertStatement();
+
+	/**
+     * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.query.ValuesRow#getExprList <em>Expr List</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference list '<em>Expr List</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValuesRow#getExprList()
+     * @see #getValuesRow()
+     * @generated
+     */
+	EReference getValuesRow_ExprList();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.ValuesRow#getQueryValues <em>Query Values</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Query Values</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValuesRow#getQueryValues()
+     * @see #getValuesRow()
+     * @generated
+     */
+	EReference getValuesRow_QueryValues();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.QueryValues <em>Query Values</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Query Values</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValues
+     * @generated
+     */
+	EClass getQueryValues();
+
+	/**
+     * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.query.QueryValues#getValuesRowList <em>Values Row List</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference list '<em>Values Row List</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValues#getValuesRowList()
+     * @see #getQueryValues()
+     * @generated
+     */
+	EReference getQueryValues_ValuesRowList();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.TableReference <em>Table Reference</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Table Reference</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.TableReference
+     * @generated
+     */
+	EClass getTableReference();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.TableReference#getTableJoinedRight <em>Table Joined Right</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Table Joined Right</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.TableReference#getTableJoinedRight()
+     * @see #getTableReference()
+     * @generated
+     */
+	EReference getTableReference_TableJoinedRight();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.TableReference#getTableJoinedLeft <em>Table Joined Left</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Table Joined Left</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.TableReference#getTableJoinedLeft()
+     * @see #getTableReference()
+     * @generated
+     */
+	EReference getTableReference_TableJoinedLeft();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.TableReference#getQuerySelect <em>Query Select</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Query Select</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.TableReference#getQuerySelect()
+     * @see #getTableReference()
+     * @generated
+     */
+	EReference getTableReference_QuerySelect();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.TableReference#getNest <em>Nest</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Nest</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.TableReference#getNest()
+     * @see #getTableReference()
+     * @generated
+     */
+	EReference getTableReference_Nest();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.TableReference#getMergeSourceTable <em>Merge Source Table</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Merge Source Table</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.TableReference#getMergeSourceTable()
+     * @see #getTableReference()
+     * @generated
+     */
+    EReference getTableReference_MergeSourceTable();
+
+    /**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.TableExpression <em>Table Expression</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Table Expression</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.TableExpression
+     * @generated
+     */
+	EClass getTableExpression();
+
+	/**
+     * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.query.TableExpression#getColumnList <em>Column List</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference list '<em>Column List</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.TableExpression#getColumnList()
+     * @see #getTableExpression()
+     * @generated
+     */
+	EReference getTableExpression_ColumnList();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.TableExpression#getTableCorrelation <em>Table Correlation</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Table Correlation</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.TableExpression#getTableCorrelation()
+     * @see #getTableExpression()
+     * @generated
+     */
+	EReference getTableExpression_TableCorrelation();
+
+	/**
+     * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.sql.query.TableExpression#getResultTableAllColumns <em>Result Table All Columns</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the reference list '<em>Result Table All Columns</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.TableExpression#getResultTableAllColumns()
+     * @see #getTableExpression()
+     * @generated
+     */
+	EReference getTableExpression_ResultTableAllColumns();
+
+	/**
+     * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.sql.query.TableExpression#getValueExprColumns <em>Value Expr Columns</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the reference list '<em>Value Expr Columns</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.TableExpression#getValueExprColumns()
+     * @see #getTableExpression()
+     * @generated
+     */
+	EReference getTableExpression_ValueExprColumns();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.TableExpression#getMergeTargetTable <em>Merge Target Table</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Merge Target Table</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.TableExpression#getMergeTargetTable()
+     * @see #getTableExpression()
+     * @generated
+     */
+    EReference getTableExpression_MergeTargetTable();
+
+    /**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.TableJoined <em>Table Joined</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Table Joined</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.TableJoined
+     * @generated
+     */
+	EClass getTableJoined();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.query.TableJoined#getJoinOperator <em>Join Operator</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Join Operator</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.TableJoined#getJoinOperator()
+     * @see #getTableJoined()
+     * @generated
+     */
+	EAttribute getTableJoined_JoinOperator();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.TableJoined#getJoinCondition <em>Join Condition</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Join Condition</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.TableJoined#getJoinCondition()
+     * @see #getTableJoined()
+     * @generated
+     */
+	EReference getTableJoined_JoinCondition();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.TableJoined#getTableRefRight <em>Table Ref Right</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Table Ref Right</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.TableJoined#getTableRefRight()
+     * @see #getTableJoined()
+     * @generated
+     */
+	EReference getTableJoined_TableRefRight();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.TableJoined#getTableRefLeft <em>Table Ref Left</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Table Ref Left</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.TableJoined#getTableRefLeft()
+     * @see #getTableJoined()
+     * @generated
+     */
+	EReference getTableJoined_TableRefLeft();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.WithTableSpecification <em>With Table Specification</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>With Table Specification</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.WithTableSpecification
+     * @generated
+     */
+	EClass getWithTableSpecification();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.WithTableSpecification#getQueryExpressionRoot <em>Query Expression Root</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Query Expression Root</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.WithTableSpecification#getQueryExpressionRoot()
+     * @see #getWithTableSpecification()
+     * @generated
+     */
+	EReference getWithTableSpecification_QueryExpressionRoot();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.WithTableSpecification#getWithTableQueryExpr <em>With Table Query Expr</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>With Table Query Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.WithTableSpecification#getWithTableQueryExpr()
+     * @see #getWithTableSpecification()
+     * @generated
+     */
+	EReference getWithTableSpecification_WithTableQueryExpr();
+
+	/**
+     * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.sql.query.WithTableSpecification#getWithTableReferences <em>With Table References</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the reference list '<em>With Table References</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.WithTableSpecification#getWithTableReferences()
+     * @see #getWithTableSpecification()
+     * @generated
+     */
+	EReference getWithTableSpecification_WithTableReferences();
+
+	/**
+     * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.query.WithTableSpecification#getColumnNameList <em>Column Name List</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference list '<em>Column Name List</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.WithTableSpecification#getColumnNameList()
+     * @see #getWithTableSpecification()
+     * @generated
+     */
+	EReference getWithTableSpecification_ColumnNameList();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.Predicate <em>Predicate</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Predicate</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.Predicate
+     * @generated
+     */
+	EClass getPredicate();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.query.Predicate#isNegatedPredicate <em>Negated Predicate</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Negated Predicate</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.Predicate#isNegatedPredicate()
+     * @see #getPredicate()
+     * @generated
+     */
+	EAttribute getPredicate_NegatedPredicate();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.query.Predicate#isHasSelectivity <em>Has Selectivity</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Has Selectivity</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.Predicate#isHasSelectivity()
+     * @see #getPredicate()
+     * @generated
+     */
+	EAttribute getPredicate_HasSelectivity();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.query.Predicate#getSelectivityValue <em>Selectivity Value</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Selectivity Value</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.Predicate#getSelectivityValue()
+     * @see #getPredicate()
+     * @generated
+     */
+	EAttribute getPredicate_SelectivityValue();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined <em>Search Condition Combined</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Search Condition Combined</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined
+     * @generated
+     */
+	EClass getSearchConditionCombined();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined#getCombinedOperator <em>Combined Operator</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Combined Operator</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined#getCombinedOperator()
+     * @see #getSearchConditionCombined()
+     * @generated
+     */
+	EAttribute getSearchConditionCombined_CombinedOperator();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined#getLeftCondition <em>Left Condition</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Left Condition</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined#getLeftCondition()
+     * @see #getSearchConditionCombined()
+     * @generated
+     */
+	EReference getSearchConditionCombined_LeftCondition();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined#getRightCondition <em>Right Condition</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Right Condition</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined#getRightCondition()
+     * @see #getSearchConditionCombined()
+     * @generated
+     */
+	EReference getSearchConditionCombined_RightCondition();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression <em>Order By Value Expression</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Order By Value Expression</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression
+     * @generated
+     */
+	EClass getOrderByValueExpression();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression#getValueExpr <em>Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Value Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression#getValueExpr()
+     * @see #getOrderByValueExpression()
+     * @generated
+     */
+	EReference getOrderByValueExpression_ValueExpr();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.QueryCombined <em>Query Combined</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Query Combined</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryCombined
+     * @generated
+     */
+	EClass getQueryCombined();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.query.QueryCombined#getCombinedOperator <em>Combined Operator</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Combined Operator</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryCombined#getCombinedOperator()
+     * @see #getQueryCombined()
+     * @generated
+     */
+	EAttribute getQueryCombined_CombinedOperator();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryCombined#getLeftQuery <em>Left Query</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Left Query</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryCombined#getLeftQuery()
+     * @see #getQueryCombined()
+     * @generated
+     */
+	EReference getQueryCombined_LeftQuery();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryCombined#getRightQuery <em>Right Query</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Right Query</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryCombined#getRightQuery()
+     * @see #getQueryCombined()
+     * @generated
+     */
+	EReference getQueryCombined_RightQuery();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.QuerySelect <em>Query Select</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Query Select</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySelect
+     * @generated
+     */
+	EClass getQuerySelect();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.query.QuerySelect#isDistinct <em>Distinct</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Distinct</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySelect#isDistinct()
+     * @see #getQuerySelect()
+     * @generated
+     */
+	EAttribute getQuerySelect_Distinct();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.QuerySelect#getHavingClause <em>Having Clause</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Having Clause</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySelect#getHavingClause()
+     * @see #getQuerySelect()
+     * @generated
+     */
+	EReference getQuerySelect_HavingClause();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.QuerySelect#getWhereClause <em>Where Clause</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Where Clause</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySelect#getWhereClause()
+     * @see #getQuerySelect()
+     * @generated
+     */
+	EReference getQuerySelect_WhereClause();
+
+	/**
+     * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.query.QuerySelect#getGroupByClause <em>Group By Clause</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference list '<em>Group By Clause</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySelect#getGroupByClause()
+     * @see #getQuerySelect()
+     * @generated
+     */
+	EReference getQuerySelect_GroupByClause();
+
+	/**
+     * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.query.QuerySelect#getSelectClause <em>Select Clause</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference list '<em>Select Clause</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySelect#getSelectClause()
+     * @see #getQuerySelect()
+     * @generated
+     */
+	EReference getQuerySelect_SelectClause();
+
+	/**
+     * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.query.QuerySelect#getFromClause <em>From Clause</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference list '<em>From Clause</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySelect#getFromClause()
+     * @see #getQuerySelect()
+     * @generated
+     */
+	EReference getQuerySelect_FromClause();
+
+	/**
+     * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.query.QuerySelect#getIntoClause <em>Into Clause</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference list '<em>Into Clause</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySelect#getIntoClause()
+     * @see #getQuerySelect()
+     * @generated
+     */
+	EReference getQuerySelect_IntoClause();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.GroupingSpecification <em>Grouping Specification</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Grouping Specification</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.GroupingSpecification
+     * @generated
+     */
+	EClass getGroupingSpecification();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.GroupingSpecification#getQuerySelect <em>Query Select</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Query Select</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.GroupingSpecification#getQuerySelect()
+     * @see #getGroupingSpecification()
+     * @generated
+     */
+	EReference getGroupingSpecification_QuerySelect();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.QueryResultSpecification <em>Query Result Specification</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Query Result Specification</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryResultSpecification
+     * @generated
+     */
+	EClass getQueryResultSpecification();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryResultSpecification#getQuerySelect <em>Query Select</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Query Select</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryResultSpecification#getQuerySelect()
+     * @see #getQueryResultSpecification()
+     * @generated
+     */
+	EReference getQueryResultSpecification_QuerySelect();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.ResultTableAllColumns <em>Result Table All Columns</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Result Table All Columns</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ResultTableAllColumns
+     * @generated
+     */
+	EClass getResultTableAllColumns();
+
+	/**
+     * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.sql.query.ResultTableAllColumns#getTableExpr <em>Table Expr</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the reference '<em>Table Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ResultTableAllColumns#getTableExpr()
+     * @see #getResultTableAllColumns()
+     * @generated
+     */
+	EReference getResultTableAllColumns_TableExpr();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.ResultColumn <em>Result Column</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Result Column</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ResultColumn
+     * @generated
+     */
+	EClass getResultColumn();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.ResultColumn#getValueExpr <em>Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Value Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ResultColumn#getValueExpr()
+     * @see #getResultColumn()
+     * @generated
+     */
+	EReference getResultColumn_ValueExpr();
+
+	/**
+     * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.sql.query.ResultColumn#getOrderByResultCol <em>Order By Result Col</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the reference list '<em>Order By Result Col</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ResultColumn#getOrderByResultCol()
+     * @see #getResultColumn()
+     * @generated
+     */
+	EReference getResultColumn_OrderByResultCol();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.PredicateBasic <em>Predicate Basic</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Predicate Basic</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateBasic
+     * @generated
+     */
+	EClass getPredicateBasic();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.query.PredicateBasic#getComparisonOperator <em>Comparison Operator</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Comparison Operator</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateBasic#getComparisonOperator()
+     * @see #getPredicateBasic()
+     * @generated
+     */
+	EAttribute getPredicateBasic_ComparisonOperator();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.PredicateBasic#getRightValueExpr <em>Right Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Right Value Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateBasic#getRightValueExpr()
+     * @see #getPredicateBasic()
+     * @generated
+     */
+	EReference getPredicateBasic_RightValueExpr();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.PredicateBasic#getLeftValueExpr <em>Left Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Left Value Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateBasic#getLeftValueExpr()
+     * @see #getPredicateBasic()
+     * @generated
+     */
+	EReference getPredicateBasic_LeftValueExpr();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.PredicateQuantified <em>Predicate Quantified</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Predicate Quantified</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateQuantified
+     * @generated
+     */
+	EClass getPredicateQuantified();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.PredicateBetween <em>Predicate Between</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Predicate Between</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateBetween
+     * @generated
+     */
+	EClass getPredicateBetween();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.query.PredicateBetween#isNotBetween <em>Not Between</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Not Between</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateBetween#isNotBetween()
+     * @see #getPredicateBetween()
+     * @generated
+     */
+	EAttribute getPredicateBetween_NotBetween();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.PredicateBetween#getLeftValueExpr <em>Left Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Left Value Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateBetween#getLeftValueExpr()
+     * @see #getPredicateBetween()
+     * @generated
+     */
+	EReference getPredicateBetween_LeftValueExpr();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.PredicateBetween#getRightValueExpr1 <em>Right Value Expr1</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Right Value Expr1</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateBetween#getRightValueExpr1()
+     * @see #getPredicateBetween()
+     * @generated
+     */
+	EReference getPredicateBetween_RightValueExpr1();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.PredicateBetween#getRightValueExpr2 <em>Right Value Expr2</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Right Value Expr2</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateBetween#getRightValueExpr2()
+     * @see #getPredicateBetween()
+     * @generated
+     */
+	EReference getPredicateBetween_RightValueExpr2();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.PredicateExists <em>Predicate Exists</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Predicate Exists</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateExists
+     * @generated
+     */
+	EClass getPredicateExists();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.PredicateExists#getQueryExpr <em>Query Expr</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Query Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateExists#getQueryExpr()
+     * @see #getPredicateExists()
+     * @generated
+     */
+	EReference getPredicateExists_QueryExpr();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.PredicateIn <em>Predicate In</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Predicate In</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateIn
+     * @generated
+     */
+	EClass getPredicateIn();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.query.PredicateIn#isNotIn <em>Not In</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Not In</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateIn#isNotIn()
+     * @see #getPredicateIn()
+     * @generated
+     */
+	EAttribute getPredicateIn_NotIn();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.PredicateLike <em>Predicate Like</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Predicate Like</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateLike
+     * @generated
+     */
+	EClass getPredicateLike();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.query.PredicateLike#isNotLike <em>Not Like</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Not Like</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateLike#isNotLike()
+     * @see #getPredicateLike()
+     * @generated
+     */
+	EAttribute getPredicateLike_NotLike();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.PredicateLike#getPatternValueExpr <em>Pattern Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Pattern Value Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateLike#getPatternValueExpr()
+     * @see #getPredicateLike()
+     * @generated
+     */
+	EReference getPredicateLike_PatternValueExpr();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.PredicateLike#getMatchingValueExpr <em>Matching Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Matching Value Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateLike#getMatchingValueExpr()
+     * @see #getPredicateLike()
+     * @generated
+     */
+	EReference getPredicateLike_MatchingValueExpr();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.PredicateLike#getEscapeValueExpr <em>Escape Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Escape Value Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateLike#getEscapeValueExpr()
+     * @see #getPredicateLike()
+     * @generated
+     */
+	EReference getPredicateLike_EscapeValueExpr();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.PredicateIsNull <em>Predicate Is Null</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Predicate Is Null</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateIsNull
+     * @generated
+     */
+	EClass getPredicateIsNull();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.query.PredicateIsNull#isNotNull <em>Not Null</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Not Null</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateIsNull#isNotNull()
+     * @see #getPredicateIsNull()
+     * @generated
+     */
+	EAttribute getPredicateIsNull_NotNull();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.PredicateIsNull#getValueExpr <em>Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Value Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateIsNull#getValueExpr()
+     * @see #getPredicateIsNull()
+     * @generated
+     */
+	EReference getPredicateIsNull_ValueExpr();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect <em>Predicate Quantified Value Select</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Predicate Quantified Value Select</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect
+     * @generated
+     */
+	EClass getPredicateQuantifiedValueSelect();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect#getQuantifiedType <em>Quantified Type</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Quantified Type</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect#getQuantifiedType()
+     * @see #getPredicateQuantifiedValueSelect()
+     * @generated
+     */
+	EAttribute getPredicateQuantifiedValueSelect_QuantifiedType();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect#getComparisonOperator <em>Comparison Operator</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Comparison Operator</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect#getComparisonOperator()
+     * @see #getPredicateQuantifiedValueSelect()
+     * @generated
+     */
+	EAttribute getPredicateQuantifiedValueSelect_ComparisonOperator();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect#getQueryExpr <em>Query Expr</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Query Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect#getQueryExpr()
+     * @see #getPredicateQuantifiedValueSelect()
+     * @generated
+     */
+	EReference getPredicateQuantifiedValueSelect_QueryExpr();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect#getValueExpr <em>Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Value Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect#getValueExpr()
+     * @see #getPredicateQuantifiedValueSelect()
+     * @generated
+     */
+	EReference getPredicateQuantifiedValueSelect_ValueExpr();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect <em>Predicate Quantified Row Select</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Predicate Quantified Row Select</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect
+     * @generated
+     */
+	EClass getPredicateQuantifiedRowSelect();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect#getQuantifiedType <em>Quantified Type</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Quantified Type</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect#getQuantifiedType()
+     * @see #getPredicateQuantifiedRowSelect()
+     * @generated
+     */
+	EAttribute getPredicateQuantifiedRowSelect_QuantifiedType();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect#getQueryExpr <em>Query Expr</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Query Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect#getQueryExpr()
+     * @see #getPredicateQuantifiedRowSelect()
+     * @generated
+     */
+	EReference getPredicateQuantifiedRowSelect_QueryExpr();
+
+	/**
+     * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect#getValueExprList <em>Value Expr List</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference list '<em>Value Expr List</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect#getValueExprList()
+     * @see #getPredicateQuantifiedRowSelect()
+     * @generated
+     */
+	EReference getPredicateQuantifiedRowSelect_ValueExprList();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect <em>Predicate In Value Select</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Predicate In Value Select</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect
+     * @generated
+     */
+	EClass getPredicateInValueSelect();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect#getQueryExpr <em>Query Expr</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Query Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect#getQueryExpr()
+     * @see #getPredicateInValueSelect()
+     * @generated
+     */
+	EReference getPredicateInValueSelect_QueryExpr();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect#getValueExpr <em>Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Value Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect#getValueExpr()
+     * @see #getPredicateInValueSelect()
+     * @generated
+     */
+	EReference getPredicateInValueSelect_ValueExpr();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.PredicateInValueList <em>Predicate In Value List</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Predicate In Value List</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateInValueList
+     * @generated
+     */
+	EClass getPredicateInValueList();
+
+	/**
+     * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.query.PredicateInValueList#getValueExprList <em>Value Expr List</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference list '<em>Value Expr List</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateInValueList#getValueExprList()
+     * @see #getPredicateInValueList()
+     * @generated
+     */
+	EReference getPredicateInValueList_ValueExprList();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.PredicateInValueList#getValueExpr <em>Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Value Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateInValueList#getValueExpr()
+     * @see #getPredicateInValueList()
+     * @generated
+     */
+	EReference getPredicateInValueList_ValueExpr();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect <em>Predicate In Value Row Select</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Predicate In Value Row Select</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect
+     * @generated
+     */
+	EClass getPredicateInValueRowSelect();
+
+	/**
+     * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect#getValueExprList <em>Value Expr List</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference list '<em>Value Expr List</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect#getValueExprList()
+     * @see #getPredicateInValueRowSelect()
+     * @generated
+     */
+	EReference getPredicateInValueRowSelect_ValueExprList();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect#getQueryExpr <em>Query Expr</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Query Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect#getQueryExpr()
+     * @see #getPredicateInValueRowSelect()
+     * @generated
+     */
+	EReference getPredicateInValueRowSelect_QueryExpr();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionSimple <em>Value Expression Simple</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Value Expression Simple</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionSimple
+     * @generated
+     */
+	EClass getValueExpressionSimple();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionSimple#getValue <em>Value</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Value</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionSimple#getValue()
+     * @see #getValueExpressionSimple()
+     * @generated
+     */
+	EAttribute getValueExpressionSimple_Value();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn <em>Value Expression Column</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Value Expression Column</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn
+     * @generated
+     */
+	EClass getValueExpressionColumn();
+
+	/**
+     * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn#getAssignmentExprTarget <em>Assignment Expr Target</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the reference list '<em>Assignment Expr Target</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn#getAssignmentExprTarget()
+     * @see #getValueExpressionColumn()
+     * @generated
+     */
+	EReference getValueExpressionColumn_AssignmentExprTarget();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn#getParentTableExpr <em>Parent Table Expr</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Parent Table Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn#getParentTableExpr()
+     * @see #getValueExpressionColumn()
+     * @generated
+     */
+	EReference getValueExpressionColumn_ParentTableExpr();
+
+	/**
+     * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn#getInsertStatement <em>Insert Statement</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the reference list '<em>Insert Statement</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn#getInsertStatement()
+     * @see #getValueExpressionColumn()
+     * @generated
+     */
+	EReference getValueExpressionColumn_InsertStatement();
+
+	/**
+     * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn#getTableExpr <em>Table Expr</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the reference '<em>Table Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn#getTableExpr()
+     * @see #getValueExpressionColumn()
+     * @generated
+     */
+	EReference getValueExpressionColumn_TableExpr();
+
+	/**
+     * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn#getTableInDatabase <em>Table In Database</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the reference '<em>Table In Database</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn#getTableInDatabase()
+     * @see #getValueExpressionColumn()
+     * @generated
+     */
+	EReference getValueExpressionColumn_TableInDatabase();
+
+	/**
+     * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn#getMergeInsertSpec <em>Merge Insert Spec</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the reference list '<em>Merge Insert Spec</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn#getMergeInsertSpec()
+     * @see #getValueExpressionColumn()
+     * @generated
+     */
+    EReference getValueExpressionColumn_MergeInsertSpec();
+
+    /**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionVariable <em>Value Expression Variable</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Value Expression Variable</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionVariable
+     * @generated
+     */
+	EClass getValueExpressionVariable();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionVariable#getQuerySelect <em>Query Select</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Query Select</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionVariable#getQuerySelect()
+     * @see #getValueExpressionVariable()
+     * @generated
+     */
+	EReference getValueExpressionVariable_QuerySelect();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionScalarSelect <em>Value Expression Scalar Select</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Value Expression Scalar Select</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionScalarSelect
+     * @generated
+     */
+	EClass getValueExpressionScalarSelect();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionScalarSelect#getQueryExpr <em>Query Expr</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Query Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionScalarSelect#getQueryExpr()
+     * @see #getValueExpressionScalarSelect()
+     * @generated
+     */
+	EReference getValueExpressionScalarSelect_QueryExpr();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration <em>Value Expression Labeled Duration</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Value Expression Labeled Duration</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration
+     * @generated
+     */
+	EClass getValueExpressionLabeledDuration();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration#getLabeledDurationType <em>Labeled Duration Type</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Labeled Duration Type</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration#getLabeledDurationType()
+     * @see #getValueExpressionLabeledDuration()
+     * @generated
+     */
+	EAttribute getValueExpressionLabeledDuration_LabeledDurationType();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration#getValueExpr <em>Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Value Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration#getValueExpr()
+     * @see #getValueExpressionLabeledDuration()
+     * @generated
+     */
+	EReference getValueExpressionLabeledDuration_ValueExpr();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCase <em>Value Expression Case</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Value Expression Case</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCase
+     * @generated
+     */
+	EClass getValueExpressionCase();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCase#getCaseElse <em>Case Else</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Case Else</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCase#getCaseElse()
+     * @see #getValueExpressionCase()
+     * @generated
+     */
+	EReference getValueExpressionCase_CaseElse();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast <em>Value Expression Cast</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Value Expression Cast</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast
+     * @generated
+     */
+	EClass getValueExpressionCast();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast#getValueExpr <em>Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Value Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast#getValueExpr()
+     * @see #getValueExpressionCast()
+     * @generated
+     */
+	EReference getValueExpressionCast_ValueExpr();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionNullValue <em>Value Expression Null Value</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Value Expression Null Value</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionNullValue
+     * @generated
+     */
+	EClass getValueExpressionNullValue();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionDefaultValue <em>Value Expression Default Value</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Value Expression Default Value</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionDefaultValue
+     * @generated
+     */
+	EClass getValueExpressionDefaultValue();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction <em>Value Expression Function</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Value Expression Function</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction
+     * @generated
+     */
+	EClass getValueExpressionFunction();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction#isSpecialRegister <em>Special Register</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Special Register</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction#isSpecialRegister()
+     * @see #getValueExpressionFunction()
+     * @generated
+     */
+	EAttribute getValueExpressionFunction_SpecialRegister();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction#isDistinct <em>Distinct</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Distinct</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction#isDistinct()
+     * @see #getValueExpressionFunction()
+     * @generated
+     */
+	EAttribute getValueExpressionFunction_Distinct();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction#isColumnFunction <em>Column Function</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Column Function</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction#isColumnFunction()
+     * @see #getValueExpressionFunction()
+     * @generated
+     */
+	EAttribute getValueExpressionFunction_ColumnFunction();
+
+	/**
+     * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction#getParameterList <em>Parameter List</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference list '<em>Parameter List</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction#getParameterList()
+     * @see #getValueExpressionFunction()
+     * @generated
+     */
+	EReference getValueExpressionFunction_ParameterList();
+
+	/**
+     * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction#getFunction <em>Function</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the reference '<em>Function</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction#getFunction()
+     * @see #getValueExpressionFunction()
+     * @generated
+     */
+	EReference getValueExpressionFunction_Function();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined <em>Value Expression Combined</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Value Expression Combined</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined
+     * @generated
+     */
+	EClass getValueExpressionCombined();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined#getCombinedOperator <em>Combined Operator</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Combined Operator</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined#getCombinedOperator()
+     * @see #getValueExpressionCombined()
+     * @generated
+     */
+	EAttribute getValueExpressionCombined_CombinedOperator();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined#getLeftValueExpr <em>Left Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Left Value Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined#getLeftValueExpr()
+     * @see #getValueExpressionCombined()
+     * @generated
+     */
+	EReference getValueExpressionCombined_LeftValueExpr();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined#getRightValueExpr <em>Right Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Right Value Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined#getRightValueExpr()
+     * @see #getValueExpressionCombined()
+     * @generated
+     */
+	EReference getValueExpressionCombined_RightValueExpr();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.GroupingSets <em>Grouping Sets</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Grouping Sets</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.GroupingSets
+     * @generated
+     */
+	EClass getGroupingSets();
+
+	/**
+     * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.query.GroupingSets#getGroupingSetsElementList <em>Grouping Sets Element List</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference list '<em>Grouping Sets Element List</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.GroupingSets#getGroupingSetsElementList()
+     * @see #getGroupingSets()
+     * @generated
+     */
+	EReference getGroupingSets_GroupingSetsElementList();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.Grouping <em>Grouping</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Grouping</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.Grouping
+     * @generated
+     */
+	EClass getGrouping();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.Grouping#getGroupingSetsElementExpr <em>Grouping Sets Element Expr</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Grouping Sets Element Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.Grouping#getGroupingSetsElementExpr()
+     * @see #getGrouping()
+     * @generated
+     */
+	EReference getGrouping_GroupingSetsElementExpr();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.GroupingSetsElement <em>Grouping Sets Element</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Grouping Sets Element</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.GroupingSetsElement
+     * @generated
+     */
+	EClass getGroupingSetsElement();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.GroupingSetsElement#getGroupingSets <em>Grouping Sets</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Grouping Sets</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.GroupingSetsElement#getGroupingSets()
+     * @see #getGroupingSetsElement()
+     * @generated
+     */
+	EReference getGroupingSetsElement_GroupingSets();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementSublist <em>Grouping Sets Element Sublist</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Grouping Sets Element Sublist</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementSublist
+     * @generated
+     */
+	EClass getGroupingSetsElementSublist();
+
+	/**
+     * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementSublist#getGroupingSetsElementExprList <em>Grouping Sets Element Expr List</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference list '<em>Grouping Sets Element Expr List</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementSublist#getGroupingSetsElementExprList()
+     * @see #getGroupingSetsElementSublist()
+     * @generated
+     */
+	EReference getGroupingSetsElementSublist_GroupingSetsElementExprList();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementExpression <em>Grouping Sets Element Expression</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Grouping Sets Element Expression</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementExpression
+     * @generated
+     */
+	EClass getGroupingSetsElementExpression();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementExpression#getGroupingSetsElementSublist <em>Grouping Sets Element Sublist</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Grouping Sets Element Sublist</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementExpression#getGroupingSetsElementSublist()
+     * @see #getGroupingSetsElementExpression()
+     * @generated
+     */
+	EReference getGroupingSetsElementExpression_GroupingSetsElementSublist();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementExpression#getGrouping <em>Grouping</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Grouping</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementExpression#getGrouping()
+     * @see #getGroupingSetsElementExpression()
+     * @generated
+     */
+	EReference getGroupingSetsElementExpression_Grouping();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.SuperGroup <em>Super Group</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Super Group</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.SuperGroup
+     * @generated
+     */
+	EClass getSuperGroup();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.query.SuperGroup#getSuperGroupType <em>Super Group Type</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Super Group Type</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.SuperGroup#getSuperGroupType()
+     * @see #getSuperGroup()
+     * @generated
+     */
+	EAttribute getSuperGroup_SuperGroupType();
+
+	/**
+     * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.query.SuperGroup#getSuperGroupElementList <em>Super Group Element List</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference list '<em>Super Group Element List</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.SuperGroup#getSuperGroupElementList()
+     * @see #getSuperGroup()
+     * @generated
+     */
+	EReference getSuperGroup_SuperGroupElementList();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.GroupingExpression <em>Grouping Expression</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Grouping Expression</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.GroupingExpression
+     * @generated
+     */
+	EClass getGroupingExpression();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.GroupingExpression#getValueExpr <em>Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Value Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.GroupingExpression#getValueExpr()
+     * @see #getGroupingExpression()
+     * @generated
+     */
+	EReference getGroupingExpression_ValueExpr();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.GroupingExpression#getSuperGroupElementExpr <em>Super Group Element Expr</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Super Group Element Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.GroupingExpression#getSuperGroupElementExpr()
+     * @see #getGroupingExpression()
+     * @generated
+     */
+	EReference getGroupingExpression_SuperGroupElementExpr();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.SuperGroupElement <em>Super Group Element</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Super Group Element</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.SuperGroupElement
+     * @generated
+     */
+	EClass getSuperGroupElement();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.SuperGroupElement#getSuperGroup <em>Super Group</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Super Group</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.SuperGroupElement#getSuperGroup()
+     * @see #getSuperGroupElement()
+     * @generated
+     */
+	EReference getSuperGroupElement_SuperGroup();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.SuperGroupElementSublist <em>Super Group Element Sublist</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Super Group Element Sublist</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.SuperGroupElementSublist
+     * @generated
+     */
+	EClass getSuperGroupElementSublist();
+
+	/**
+     * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.query.SuperGroupElementSublist#getSuperGroupElementExprList <em>Super Group Element Expr List</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference list '<em>Super Group Element Expr List</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.SuperGroupElementSublist#getSuperGroupElementExprList()
+     * @see #getSuperGroupElementSublist()
+     * @generated
+     */
+	EReference getSuperGroupElementSublist_SuperGroupElementExprList();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.SuperGroupElementExpression <em>Super Group Element Expression</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Super Group Element Expression</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.SuperGroupElementExpression
+     * @generated
+     */
+	EClass getSuperGroupElementExpression();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.SuperGroupElementExpression#getSuperGroupElementSublist <em>Super Group Element Sublist</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Super Group Element Sublist</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.SuperGroupElementExpression#getSuperGroupElementSublist()
+     * @see #getSuperGroupElementExpression()
+     * @generated
+     */
+	EReference getSuperGroupElementExpression_SuperGroupElementSublist();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.SuperGroupElementExpression#getGroupingExpr <em>Grouping Expr</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Grouping Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.SuperGroupElementExpression#getGroupingExpr()
+     * @see #getSuperGroupElementExpression()
+     * @generated
+     */
+	EReference getSuperGroupElementExpression_GroupingExpr();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearch <em>Value Expression Case Search</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Value Expression Case Search</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearch
+     * @generated
+     */
+	EClass getValueExpressionCaseSearch();
+
+	/**
+     * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearch#getSearchContentList <em>Search Content List</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference list '<em>Search Content List</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearch#getSearchContentList()
+     * @see #getValueExpressionCaseSearch()
+     * @generated
+     */
+	EReference getValueExpressionCaseSearch_SearchContentList();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple <em>Value Expression Case Simple</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Value Expression Case Simple</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple
+     * @generated
+     */
+	EClass getValueExpressionCaseSimple();
+
+	/**
+     * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple#getContentList <em>Content List</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference list '<em>Content List</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple#getContentList()
+     * @see #getValueExpressionCaseSimple()
+     * @generated
+     */
+	EReference getValueExpressionCaseSimple_ContentList();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple#getValueExpr <em>Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Value Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple#getValueExpr()
+     * @see #getValueExpressionCaseSimple()
+     * @generated
+     */
+	EReference getValueExpressionCaseSimple_ValueExpr();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse <em>Value Expression Case Else</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Value Expression Case Else</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse
+     * @generated
+     */
+	EClass getValueExpressionCaseElse();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse#getValueExprCase <em>Value Expr Case</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Value Expr Case</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse#getValueExprCase()
+     * @see #getValueExpressionCaseElse()
+     * @generated
+     */
+	EReference getValueExpressionCaseElse_ValueExprCase();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse#getValueExpr <em>Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Value Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse#getValueExpr()
+     * @see #getValueExpressionCaseElse()
+     * @generated
+     */
+	EReference getValueExpressionCaseElse_ValueExpr();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent <em>Value Expression Case Search Content</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Value Expression Case Search Content</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent
+     * @generated
+     */
+	EClass getValueExpressionCaseSearchContent();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent#getValueExpr <em>Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Value Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent#getValueExpr()
+     * @see #getValueExpressionCaseSearchContent()
+     * @generated
+     */
+	EReference getValueExpressionCaseSearchContent_ValueExpr();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent#getSearchCondition <em>Search Condition</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Search Condition</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent#getSearchCondition()
+     * @see #getValueExpressionCaseSearchContent()
+     * @generated
+     */
+	EReference getValueExpressionCaseSearchContent_SearchCondition();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent#getValueExprCaseSearch <em>Value Expr Case Search</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Value Expr Case Search</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent#getValueExprCaseSearch()
+     * @see #getValueExpressionCaseSearchContent()
+     * @generated
+     */
+	EReference getValueExpressionCaseSearchContent_ValueExprCaseSearch();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent <em>Value Expression Case Simple Content</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Value Expression Case Simple Content</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent
+     * @generated
+     */
+	EClass getValueExpressionCaseSimpleContent();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent#getValueExprCaseSimple <em>Value Expr Case Simple</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Value Expr Case Simple</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent#getValueExprCaseSimple()
+     * @see #getValueExpressionCaseSimpleContent()
+     * @generated
+     */
+	EReference getValueExpressionCaseSimpleContent_ValueExprCaseSimple();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent#getWhenValueExpr <em>When Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>When Value Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent#getWhenValueExpr()
+     * @see #getValueExpressionCaseSimpleContent()
+     * @generated
+     */
+	EReference getValueExpressionCaseSimpleContent_WhenValueExpr();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent#getResultValueExpr <em>Result Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Result Value Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent#getResultValueExpr()
+     * @see #getValueExpressionCaseSimpleContent()
+     * @generated
+     */
+	EReference getValueExpressionCaseSimpleContent_ResultValueExpr();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.TableInDatabase <em>Table In Database</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Table In Database</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.TableInDatabase
+     * @generated
+     */
+	EClass getTableInDatabase();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.TableInDatabase#getUpdateStatement <em>Update Statement</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Update Statement</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.TableInDatabase#getUpdateStatement()
+     * @see #getTableInDatabase()
+     * @generated
+     */
+	EReference getTableInDatabase_UpdateStatement();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.TableInDatabase#getDeleteStatement <em>Delete Statement</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Delete Statement</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.TableInDatabase#getDeleteStatement()
+     * @see #getTableInDatabase()
+     * @generated
+     */
+	EReference getTableInDatabase_DeleteStatement();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.TableInDatabase#getInsertStatement <em>Insert Statement</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Insert Statement</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.TableInDatabase#getInsertStatement()
+     * @see #getTableInDatabase()
+     * @generated
+     */
+	EReference getTableInDatabase_InsertStatement();
+
+	/**
+     * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.sql.query.TableInDatabase#getDatabaseTable <em>Database Table</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the reference '<em>Database Table</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.TableInDatabase#getDatabaseTable()
+     * @see #getTableInDatabase()
+     * @generated
+     */
+	EReference getTableInDatabase_DatabaseTable();
+
+	/**
+     * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.sql.query.TableInDatabase#getDerivedColumnList <em>Derived Column List</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the reference list '<em>Derived Column List</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.TableInDatabase#getDerivedColumnList()
+     * @see #getTableInDatabase()
+     * @generated
+     */
+	EReference getTableInDatabase_DerivedColumnList();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.TableFunction <em>Table Function</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Table Function</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.TableFunction
+     * @generated
+     */
+	EClass getTableFunction();
+
+	/**
+     * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.sql.query.TableFunction#getFunction <em>Function</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the reference '<em>Function</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.TableFunction#getFunction()
+     * @see #getTableFunction()
+     * @generated
+     */
+    EReference getTableFunction_Function();
+
+    /**
+     * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.query.TableFunction#getParameterList <em>Parameter List</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference list '<em>Parameter List</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.TableFunction#getParameterList()
+     * @see #getTableFunction()
+     * @generated
+     */
+    EReference getTableFunction_ParameterList();
+
+    /**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.SQLQueryObject <em>SQL Query Object</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>SQL Query Object</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryObject
+     * @generated
+     */
+	EClass getSQLQueryObject();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.QueryChangeStatement <em>Query Change Statement</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Query Change Statement</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryChangeStatement
+     * @generated
+     */
+	EClass getQueryChangeStatement();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.ColumnName <em>Column Name</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Column Name</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ColumnName
+     * @generated
+     */
+	EClass getColumnName();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.ColumnName#getTableCorrelation <em>Table Correlation</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Table Correlation</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ColumnName#getTableCorrelation()
+     * @see #getColumnName()
+     * @generated
+     */
+	EReference getColumnName_TableCorrelation();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.ColumnName#getWithTableSpecification <em>With Table Specification</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>With Table Specification</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ColumnName#getWithTableSpecification()
+     * @see #getColumnName()
+     * @generated
+     */
+	EReference getColumnName_WithTableSpecification();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.TableNested <em>Table Nested</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Table Nested</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.TableNested
+     * @generated
+     */
+	EClass getTableNested();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.TableNested#getNestedTableRef <em>Nested Table Ref</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Nested Table Ref</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.TableNested#getNestedTableRef()
+     * @see #getTableNested()
+     * @generated
+     */
+	EReference getTableNested_NestedTableRef();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.QueryMergeStatement <em>Query Merge Statement</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Query Merge Statement</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryMergeStatement
+     * @generated
+     */
+	EClass getQueryMergeStatement();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryMergeStatement#getTargetTable <em>Target Table</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Target Table</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryMergeStatement#getTargetTable()
+     * @see #getQueryMergeStatement()
+     * @generated
+     */
+    EReference getQueryMergeStatement_TargetTable();
+
+    /**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryMergeStatement#getSourceTable <em>Source Table</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Source Table</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryMergeStatement#getSourceTable()
+     * @see #getQueryMergeStatement()
+     * @generated
+     */
+    EReference getQueryMergeStatement_SourceTable();
+
+    /**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryMergeStatement#getOnCondition <em>On Condition</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>On Condition</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryMergeStatement#getOnCondition()
+     * @see #getQueryMergeStatement()
+     * @generated
+     */
+    EReference getQueryMergeStatement_OnCondition();
+
+    /**
+     * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.query.QueryMergeStatement#getOperationSpecList <em>Operation Spec List</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference list '<em>Operation Spec List</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryMergeStatement#getOperationSpecList()
+     * @see #getQueryMergeStatement()
+     * @generated
+     */
+    EReference getQueryMergeStatement_OperationSpecList();
+
+    /**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.SearchConditionNested <em>Search Condition Nested</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Search Condition Nested</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.SearchConditionNested
+     * @generated
+     */
+	EClass getSearchConditionNested();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.SearchConditionNested#getNestedCondition <em>Nested Condition</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Nested Condition</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.SearchConditionNested#getNestedCondition()
+     * @see #getSearchConditionNested()
+     * @generated
+     */
+	EReference getSearchConditionNested_NestedCondition();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested <em>Value Expression Nested</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Value Expression Nested</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested
+     * @generated
+     */
+	EClass getValueExpressionNested();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested#getNestedValueExpr <em>Nested Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Nested Value Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested#getNestedValueExpr()
+     * @see #getValueExpressionNested()
+     * @generated
+     */
+	EReference getValueExpressionNested_NestedValueExpr();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionAtomic <em>Value Expression Atomic</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Value Expression Atomic</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionAtomic
+     * @generated
+     */
+	EClass getValueExpressionAtomic();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.OrderBySpecification <em>Order By Specification</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Order By Specification</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.OrderBySpecification
+     * @generated
+     */
+	EClass getOrderBySpecification();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.query.OrderBySpecification#isDescending <em>Descending</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Descending</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.OrderBySpecification#isDescending()
+     * @see #getOrderBySpecification()
+     * @generated
+     */
+	EAttribute getOrderBySpecification_Descending();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.query.OrderBySpecification#getOrderingSpecOption <em>Ordering Spec Option</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Ordering Spec Option</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.OrderBySpecification#getOrderingSpecOption()
+     * @see #getOrderBySpecification()
+     * @generated
+     */
+	EAttribute getOrderBySpecification_OrderingSpecOption();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.query.OrderBySpecification#getNullOrderingOption <em>Null Ordering Option</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Null Ordering Option</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.OrderBySpecification#getNullOrderingOption()
+     * @see #getOrderBySpecification()
+     * @generated
+     */
+	EAttribute getOrderBySpecification_NullOrderingOption();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.OrderBySpecification#getSelectStatement <em>Select Statement</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Select Statement</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.OrderBySpecification#getSelectStatement()
+     * @see #getOrderBySpecification()
+     * @generated
+     */
+	EReference getOrderBySpecification_SelectStatement();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.OrderBySpecification#getQuery <em>Query</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Query</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.OrderBySpecification#getQuery()
+     * @see #getOrderBySpecification()
+     * @generated
+     */
+    EReference getOrderBySpecification_Query();
+
+    /**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.OrderByOrdinal <em>Order By Ordinal</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Order By Ordinal</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.OrderByOrdinal
+     * @generated
+     */
+	EClass getOrderByOrdinal();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.query.OrderByOrdinal#getOrdinalValue <em>Ordinal Value</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Ordinal Value</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.OrderByOrdinal#getOrdinalValue()
+     * @see #getOrderByOrdinal()
+     * @generated
+     */
+	EAttribute getOrderByOrdinal_OrdinalValue();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.TableCorrelation <em>Table Correlation</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Table Correlation</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.TableCorrelation
+     * @generated
+     */
+	EClass getTableCorrelation();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.TableCorrelation#getTableExpr <em>Table Expr</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Table Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.TableCorrelation#getTableExpr()
+     * @see #getTableCorrelation()
+     * @generated
+     */
+	EReference getTableCorrelation_TableExpr();
+
+	/**
+     * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.query.TableCorrelation#getColumnNameList <em>Column Name List</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference list '<em>Column Name List</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.TableCorrelation#getColumnNameList()
+     * @see #getTableCorrelation()
+     * @generated
+     */
+	EReference getTableCorrelation_ColumnNameList();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.UpdateSource <em>Update Source</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Update Source</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.UpdateSource
+     * @generated
+     */
+	EClass getUpdateSource();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.UpdateSource#getUpdateAssignmentExpr <em>Update Assignment Expr</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Update Assignment Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.UpdateSource#getUpdateAssignmentExpr()
+     * @see #getUpdateSource()
+     * @generated
+     */
+	EReference getUpdateSource_UpdateAssignmentExpr();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList <em>Update Source Expr List</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Update Source Expr List</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList
+     * @generated
+     */
+	EClass getUpdateSourceExprList();
+
+	/**
+     * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList#getValueExprList <em>Value Expr List</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference list '<em>Value Expr List</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList#getValueExprList()
+     * @see #getUpdateSourceExprList()
+     * @generated
+     */
+	EReference getUpdateSourceExprList_ValueExprList();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.UpdateSourceQuery <em>Update Source Query</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Update Source Query</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.UpdateSourceQuery
+     * @generated
+     */
+	EClass getUpdateSourceQuery();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.UpdateSourceQuery#getQueryExpr <em>Query Expr</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Query Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.UpdateSourceQuery#getQueryExpr()
+     * @see #getUpdateSourceQuery()
+     * @generated
+     */
+	EReference getUpdateSourceQuery_QueryExpr();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.OrderByResultColumn <em>Order By Result Column</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Order By Result Column</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.OrderByResultColumn
+     * @generated
+     */
+	EClass getOrderByResultColumn();
+
+	/**
+     * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.sql.query.OrderByResultColumn#getResultCol <em>Result Col</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the reference '<em>Result Col</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.OrderByResultColumn#getResultCol()
+     * @see #getOrderByResultColumn()
+     * @generated
+     */
+	EReference getOrderByResultColumn_ResultCol();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.WithTableReference <em>With Table Reference</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for class '<em>With Table Reference</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.WithTableReference
+     * @generated
+     */
+	EClass getWithTableReference();
+
+	/**
+     * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.sql.query.WithTableReference#getWithTableSpecification <em>With Table Specification</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for the reference '<em>With Table Specification</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.WithTableReference#getWithTableSpecification()
+     * @see #getWithTableReference()
+     * @generated
+     */
+	EReference getWithTableReference_WithTableSpecification();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.QueryNested <em>Query Nested</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Query Nested</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryNested
+     * @generated
+     */
+    EClass getQueryNested();
+
+    /**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.QueryNested#getNestedQuery <em>Nested Query</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Nested Query</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryNested#getNestedQuery()
+     * @see #getQueryNested()
+     * @generated
+     */
+    EReference getQueryNested_NestedQuery();
+
+    /**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionRow <em>Value Expression Row</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Value Expression Row</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionRow
+     * @generated
+     */
+    EClass getValueExpressionRow();
+
+    /**
+     * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionRow#getValueExprList <em>Value Expr List</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference list '<em>Value Expr List</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionRow#getValueExprList()
+     * @see #getValueExpressionRow()
+     * @generated
+     */
+    EReference getValueExpressionRow_ValueExprList();
+
+    /**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.MergeTargetTable <em>Merge Target Table</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Merge Target Table</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.MergeTargetTable
+     * @generated
+     */
+    EClass getMergeTargetTable();
+
+    /**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.MergeTargetTable#getMergeStatement <em>Merge Statement</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Merge Statement</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.MergeTargetTable#getMergeStatement()
+     * @see #getMergeTargetTable()
+     * @generated
+     */
+    EReference getMergeTargetTable_MergeStatement();
+
+    /**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.MergeTargetTable#getTableExpr <em>Table Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Table Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.MergeTargetTable#getTableExpr()
+     * @see #getMergeTargetTable()
+     * @generated
+     */
+    EReference getMergeTargetTable_TableExpr();
+
+    /**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.MergeSourceTable <em>Merge Source Table</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Merge Source Table</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.MergeSourceTable
+     * @generated
+     */
+    EClass getMergeSourceTable();
+
+    /**
+     * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.sql.query.MergeSourceTable#getQueryMergeStatement <em>Query Merge Statement</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the reference list '<em>Query Merge Statement</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.MergeSourceTable#getQueryMergeStatement()
+     * @see #getMergeSourceTable()
+     * @generated
+     */
+    EReference getMergeSourceTable_QueryMergeStatement();
+
+    /**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.MergeSourceTable#getMergeStatement <em>Merge Statement</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Merge Statement</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.MergeSourceTable#getMergeStatement()
+     * @see #getMergeSourceTable()
+     * @generated
+     */
+    EReference getMergeSourceTable_MergeStatement();
+
+    /**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.MergeSourceTable#getTableRef <em>Table Ref</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Table Ref</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.MergeSourceTable#getTableRef()
+     * @see #getMergeSourceTable()
+     * @generated
+     */
+    EReference getMergeSourceTable_TableRef();
+
+    /**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.MergeOnCondition <em>Merge On Condition</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Merge On Condition</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.MergeOnCondition
+     * @generated
+     */
+    EClass getMergeOnCondition();
+
+    /**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.MergeOnCondition#getMergeStatement <em>Merge Statement</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Merge Statement</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.MergeOnCondition#getMergeStatement()
+     * @see #getMergeOnCondition()
+     * @generated
+     */
+    EReference getMergeOnCondition_MergeStatement();
+
+    /**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.MergeOnCondition#getSearchCondition <em>Search Condition</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Search Condition</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.MergeOnCondition#getSearchCondition()
+     * @see #getMergeOnCondition()
+     * @generated
+     */
+    EReference getMergeOnCondition_SearchCondition();
+
+    /**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.MergeUpdateSpecification <em>Merge Update Specification</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Merge Update Specification</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.MergeUpdateSpecification
+     * @generated
+     */
+    EClass getMergeUpdateSpecification();
+
+    /**
+     * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.query.MergeUpdateSpecification#getAssignementExprList <em>Assignement Expr List</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference list '<em>Assignement Expr List</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.MergeUpdateSpecification#getAssignementExprList()
+     * @see #getMergeUpdateSpecification()
+     * @generated
+     */
+    EReference getMergeUpdateSpecification_AssignementExprList();
+
+    /**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.MergeInsertSpecification <em>Merge Insert Specification</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Merge Insert Specification</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.MergeInsertSpecification
+     * @generated
+     */
+    EClass getMergeInsertSpecification();
+
+    /**
+     * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.sql.query.MergeInsertSpecification#getTargetColumnList <em>Target Column List</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the reference list '<em>Target Column List</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.MergeInsertSpecification#getTargetColumnList()
+     * @see #getMergeInsertSpecification()
+     * @generated
+     */
+    EReference getMergeInsertSpecification_TargetColumnList();
+
+    /**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.MergeInsertSpecification#getSourceValuesRow <em>Source Values Row</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Source Values Row</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.MergeInsertSpecification#getSourceValuesRow()
+     * @see #getMergeInsertSpecification()
+     * @generated
+     */
+    EReference getMergeInsertSpecification_SourceValuesRow();
+
+    /**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.MergeOperationSpecification <em>Merge Operation Specification</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Merge Operation Specification</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.MergeOperationSpecification
+     * @generated
+     */
+    EClass getMergeOperationSpecification();
+
+    /**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.MergeOperationSpecification#getMergeStatement <em>Merge Statement</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Merge Statement</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.MergeOperationSpecification#getMergeStatement()
+     * @see #getMergeOperationSpecification()
+     * @generated
+     */
+    EReference getMergeOperationSpecification_MergeStatement();
+
+    /**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.UpdateOfColumn <em>Update Of Column</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Update Of Column</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.UpdateOfColumn
+     * @generated
+     */
+    EClass getUpdateOfColumn();
+
+    /**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.UpdateOfColumn#getUpdatabilityExpr <em>Updatability Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Updatability Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.UpdateOfColumn#getUpdatabilityExpr()
+     * @see #getUpdateOfColumn()
+     * @generated
+     */
+    EReference getUpdateOfColumn_UpdatabilityExpr();
+
+    /**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.UpdatabilityExpression <em>Updatability Expression</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Updatability Expression</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.UpdatabilityExpression
+     * @generated
+     */
+    EClass getUpdatabilityExpression();
+
+    /**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.query.UpdatabilityExpression#getUpdatabilityType <em>Updatability Type</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Updatability Type</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.UpdatabilityExpression#getUpdatabilityType()
+     * @see #getUpdatabilityExpression()
+     * @generated
+     */
+    EAttribute getUpdatabilityExpression_UpdatabilityType();
+
+    /**
+     * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.query.UpdatabilityExpression#getUpdateOfColumnList <em>Update Of Column List</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference list '<em>Update Of Column List</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.UpdatabilityExpression#getUpdateOfColumnList()
+     * @see #getUpdatabilityExpression()
+     * @generated
+     */
+    EReference getUpdatabilityExpression_UpdateOfColumnList();
+
+    /**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.UpdatabilityExpression#getSelectStatement <em>Select Statement</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Select Statement</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.UpdatabilityExpression#getSelectStatement()
+     * @see #getUpdatabilityExpression()
+     * @generated
+     */
+    EReference getUpdatabilityExpression_SelectStatement();
+
+    /**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.CallStatement <em>Call Statement</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Call Statement</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.CallStatement
+     * @generated
+     */
+    EClass getCallStatement();
+
+    /**
+     * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.query.CallStatement#getArgumentList <em>Argument List</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference list '<em>Argument List</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.CallStatement#getArgumentList()
+     * @see #getCallStatement()
+     * @generated
+     */
+    EReference getCallStatement_ArgumentList();
+
+    /**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.CallStatement#getProcedureRef <em>Procedure Ref</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Procedure Ref</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.CallStatement#getProcedureRef()
+     * @see #getCallStatement()
+     * @generated
+     */
+    EReference getCallStatement_ProcedureRef();
+
+    /**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.ProcedureReference <em>Procedure Reference</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Procedure Reference</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ProcedureReference
+     * @generated
+     */
+    EClass getProcedureReference();
+
+    /**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.query.ProcedureReference#getCallStatement <em>Call Statement</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Call Statement</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ProcedureReference#getCallStatement()
+     * @see #getProcedureReference()
+     * @generated
+     */
+    EReference getProcedureReference_CallStatement();
+
+    /**
+     * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.sql.query.ProcedureReference#getProcedure <em>Procedure</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the reference '<em>Procedure</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ProcedureReference#getProcedure()
+     * @see #getProcedureReference()
+     * @generated
+     */
+    EReference getProcedureReference_Procedure();
+
+    /**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.query.TableQueryLateral <em>Table Query Lateral</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>Table Query Lateral</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.TableQueryLateral
+     * @generated
+     */
+    EClass getTableQueryLateral();
+
+    /**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.query.TableQueryLateral#getQuery <em>Query</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Query</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.TableQueryLateral#getQuery()
+     * @see #getTableQueryLateral()
+     * @generated
+     */
+    EReference getTableQueryLateral_Query();
+
+    /**
+     * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.sql.query.SuperGroupType <em>Super Group Type</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for enum '<em>Super Group Type</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.SuperGroupType
+     * @generated
+     */
+	EEnum getSuperGroupType();
+
+	/**
+     * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedType <em>Predicate Quantified Type</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for enum '<em>Predicate Quantified Type</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedType
+     * @generated
+     */
+	EEnum getPredicateQuantifiedType();
+
+	/**
+     * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.sql.query.PredicateComparisonOperator <em>Predicate Comparison Operator</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for enum '<em>Predicate Comparison Operator</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateComparisonOperator
+     * @generated
+     */
+	EEnum getPredicateComparisonOperator();
+
+	/**
+     * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.sql.query.SearchConditionCombinedOperator <em>Search Condition Combined Operator</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for enum '<em>Search Condition Combined Operator</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.SearchConditionCombinedOperator
+     * @generated
+     */
+	EEnum getSearchConditionCombinedOperator();
+
+	/**
+     * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.sql.query.TableJoinedOperator <em>Table Joined Operator</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for enum '<em>Table Joined Operator</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.TableJoinedOperator
+     * @generated
+     */
+	EEnum getTableJoinedOperator();
+
+	/**
+     * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.sql.query.QueryCombinedOperator <em>Query Combined Operator</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for enum '<em>Query Combined Operator</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryCombinedOperator
+     * @generated
+     */
+	EEnum getQueryCombinedOperator();
+
+	/**
+     * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator <em>Value Expression Unary Operator</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for enum '<em>Value Expression Unary Operator</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator
+     * @generated
+     */
+	EEnum getValueExpressionUnaryOperator();
+
+	/**
+     * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombinedOperator <em>Value Expression Combined Operator</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for enum '<em>Value Expression Combined Operator</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombinedOperator
+     * @generated
+     */
+	EEnum getValueExpressionCombinedOperator();
+
+	/**
+     * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDurationType <em>Value Expression Labeled Duration Type</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for enum '<em>Value Expression Labeled Duration Type</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDurationType
+     * @generated
+     */
+	EEnum getValueExpressionLabeledDurationType();
+
+	/**
+     * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.sql.query.NullOrderingType <em>Null Ordering Type</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for enum '<em>Null Ordering Type</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.NullOrderingType
+     * @generated
+     */
+	EEnum getNullOrderingType();
+
+	/**
+     * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.sql.query.OrderingSpecType <em>Ordering Spec Type</em>}'.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the meta object for enum '<em>Ordering Spec Type</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.OrderingSpecType
+     * @generated
+     */
+	EEnum getOrderingSpecType();
+
+	/**
+     * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.sql.query.UpdatabilityType <em>Updatability Type</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for enum '<em>Updatability Type</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.query.UpdatabilityType
+     * @generated
+     */
+    EEnum getUpdatabilityType();
+
+    /**
+     * Returns the factory that creates the instances of the model.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the factory that creates the instances of the model.
+     * @generated
+     */
+	SQLQueryModelFactory getSQLQueryModelFactory();
+
+	/**
+     * <!-- begin-user-doc -->
+	 * Defines literals for the meta objects that represent
+	 * <ul>
+	 *   <li>each class,</li>
+	 *   <li>each feature of each class,</li>
+	 *   <li>each enum,</li>
+	 *   <li>and each data type</li>
+	 * </ul>
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	interface Literals  {
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryStatementImpl <em>Query Statement</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.QueryStatementImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getQueryStatement()
+         * @generated
+         */
+		EClass QUERY_STATEMENT = eINSTANCE.getQueryStatement();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryDeleteStatementImpl <em>Query Delete Statement</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.QueryDeleteStatementImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getQueryDeleteStatement()
+         * @generated
+         */
+		EClass QUERY_DELETE_STATEMENT = eINSTANCE.getQueryDeleteStatement();
+
+		/**
+         * The meta object literal for the '<em><b>Where Current Of Clause</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_DELETE_STATEMENT__WHERE_CURRENT_OF_CLAUSE = eINSTANCE.getQueryDeleteStatement_WhereCurrentOfClause();
+
+		/**
+         * The meta object literal for the '<em><b>Where Clause</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_DELETE_STATEMENT__WHERE_CLAUSE = eINSTANCE.getQueryDeleteStatement_WhereClause();
+
+		/**
+         * The meta object literal for the '<em><b>Target Table</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_DELETE_STATEMENT__TARGET_TABLE = eINSTANCE.getQueryDeleteStatement_TargetTable();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryInsertStatementImpl <em>Query Insert Statement</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.QueryInsertStatementImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getQueryInsertStatement()
+         * @generated
+         */
+		EClass QUERY_INSERT_STATEMENT = eINSTANCE.getQueryInsertStatement();
+
+		/**
+         * The meta object literal for the '<em><b>Source Query</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_INSERT_STATEMENT__SOURCE_QUERY = eINSTANCE.getQueryInsertStatement_SourceQuery();
+
+		/**
+         * The meta object literal for the '<em><b>Source Values Row List</b></em>' containment reference list feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_INSERT_STATEMENT__SOURCE_VALUES_ROW_LIST = eINSTANCE.getQueryInsertStatement_SourceValuesRowList();
+
+		/**
+         * The meta object literal for the '<em><b>Target Table</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_INSERT_STATEMENT__TARGET_TABLE = eINSTANCE.getQueryInsertStatement_TargetTable();
+
+		/**
+         * The meta object literal for the '<em><b>Target Column List</b></em>' reference list feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_INSERT_STATEMENT__TARGET_COLUMN_LIST = eINSTANCE.getQueryInsertStatement_TargetColumnList();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.QuerySelectStatementImpl <em>Query Select Statement</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.QuerySelectStatementImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getQuerySelectStatement()
+         * @generated
+         */
+		EClass QUERY_SELECT_STATEMENT = eINSTANCE.getQuerySelectStatement();
+
+		/**
+         * The meta object literal for the '<em><b>Query Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_SELECT_STATEMENT__QUERY_EXPR = eINSTANCE.getQuerySelectStatement_QueryExpr();
+
+		/**
+         * The meta object literal for the '<em><b>Order By Clause</b></em>' containment reference list feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_SELECT_STATEMENT__ORDER_BY_CLAUSE = eINSTANCE.getQuerySelectStatement_OrderByClause();
+
+		/**
+         * The meta object literal for the '<em><b>Updatability Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @generated
+         */
+        EReference QUERY_SELECT_STATEMENT__UPDATABILITY_EXPR = eINSTANCE.getQuerySelectStatement_UpdatabilityExpr();
+
+        /**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryUpdateStatementImpl <em>Query Update Statement</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.QueryUpdateStatementImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getQueryUpdateStatement()
+         * @generated
+         */
+		EClass QUERY_UPDATE_STATEMENT = eINSTANCE.getQueryUpdateStatement();
+
+		/**
+         * The meta object literal for the '<em><b>Assignment Clause</b></em>' containment reference list feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_UPDATE_STATEMENT__ASSIGNMENT_CLAUSE = eINSTANCE.getQueryUpdateStatement_AssignmentClause();
+
+		/**
+         * The meta object literal for the '<em><b>Where Current Of Clause</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_UPDATE_STATEMENT__WHERE_CURRENT_OF_CLAUSE = eINSTANCE.getQueryUpdateStatement_WhereCurrentOfClause();
+
+		/**
+         * The meta object literal for the '<em><b>Where Clause</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_UPDATE_STATEMENT__WHERE_CLAUSE = eINSTANCE.getQueryUpdateStatement_WhereClause();
+
+		/**
+         * The meta object literal for the '<em><b>Target Table</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_UPDATE_STATEMENT__TARGET_TABLE = eINSTANCE.getQueryUpdateStatement_TargetTable();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.UpdateAssignmentExpressionImpl <em>Update Assignment Expression</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.UpdateAssignmentExpressionImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getUpdateAssignmentExpression()
+         * @generated
+         */
+		EClass UPDATE_ASSIGNMENT_EXPRESSION = eINSTANCE.getUpdateAssignmentExpression();
+
+		/**
+         * The meta object literal for the '<em><b>Update Statement</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference UPDATE_ASSIGNMENT_EXPRESSION__UPDATE_STATEMENT = eINSTANCE.getUpdateAssignmentExpression_UpdateStatement();
+
+		/**
+         * The meta object literal for the '<em><b>Target Column List</b></em>' reference list feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference UPDATE_ASSIGNMENT_EXPRESSION__TARGET_COLUMN_LIST = eINSTANCE.getUpdateAssignmentExpression_TargetColumnList();
+
+		/**
+         * The meta object literal for the '<em><b>Update Source</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference UPDATE_ASSIGNMENT_EXPRESSION__UPDATE_SOURCE = eINSTANCE.getUpdateAssignmentExpression_UpdateSource();
+
+		/**
+         * The meta object literal for the '<em><b>Merge Update Spec</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @generated
+         */
+        EReference UPDATE_ASSIGNMENT_EXPRESSION__MERGE_UPDATE_SPEC = eINSTANCE.getUpdateAssignmentExpression_MergeUpdateSpec();
+
+        /**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.CursorReferenceImpl <em>Cursor Reference</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.CursorReferenceImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getCursorReference()
+         * @generated
+         */
+		EClass CURSOR_REFERENCE = eINSTANCE.getCursorReference();
+
+		/**
+         * The meta object literal for the '<em><b>Update Statement</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference CURSOR_REFERENCE__UPDATE_STATEMENT = eINSTANCE.getCursorReference_UpdateStatement();
+
+		/**
+         * The meta object literal for the '<em><b>Delete Statement</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference CURSOR_REFERENCE__DELETE_STATEMENT = eINSTANCE.getCursorReference_DeleteStatement();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.QuerySearchConditionImpl <em>Query Search Condition</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.QuerySearchConditionImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getQuerySearchCondition()
+         * @generated
+         */
+		EClass QUERY_SEARCH_CONDITION = eINSTANCE.getQuerySearchCondition();
+
+		/**
+         * The meta object literal for the '<em><b>Negated Condition</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute QUERY_SEARCH_CONDITION__NEGATED_CONDITION = eINSTANCE.getQuerySearchCondition_NegatedCondition();
+
+		/**
+         * The meta object literal for the '<em><b>Update Statement</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_SEARCH_CONDITION__UPDATE_STATEMENT = eINSTANCE.getQuerySearchCondition_UpdateStatement();
+
+		/**
+         * The meta object literal for the '<em><b>Delete Statement</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_SEARCH_CONDITION__DELETE_STATEMENT = eINSTANCE.getQuerySearchCondition_DeleteStatement();
+
+		/**
+         * The meta object literal for the '<em><b>Table Joined</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_SEARCH_CONDITION__TABLE_JOINED = eINSTANCE.getQuerySearchCondition_TableJoined();
+
+		/**
+         * The meta object literal for the '<em><b>Combined Left</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_SEARCH_CONDITION__COMBINED_LEFT = eINSTANCE.getQuerySearchCondition_CombinedLeft();
+
+		/**
+         * The meta object literal for the '<em><b>Combined Right</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_SEARCH_CONDITION__COMBINED_RIGHT = eINSTANCE.getQuerySearchCondition_CombinedRight();
+
+		/**
+         * The meta object literal for the '<em><b>Query Select Having</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_SEARCH_CONDITION__QUERY_SELECT_HAVING = eINSTANCE.getQuerySearchCondition_QuerySelectHaving();
+
+		/**
+         * The meta object literal for the '<em><b>Query Select Where</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_SEARCH_CONDITION__QUERY_SELECT_WHERE = eINSTANCE.getQuerySearchCondition_QuerySelectWhere();
+
+		/**
+         * The meta object literal for the '<em><b>Value Expr Case Search Content</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_SEARCH_CONDITION__VALUE_EXPR_CASE_SEARCH_CONTENT = eINSTANCE.getQuerySearchCondition_ValueExprCaseSearchContent();
+
+		/**
+         * The meta object literal for the '<em><b>Nest</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_SEARCH_CONDITION__NEST = eINSTANCE.getQuerySearchCondition_Nest();
+
+		/**
+         * The meta object literal for the '<em><b>Merge On Condition</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @generated
+         */
+        EReference QUERY_SEARCH_CONDITION__MERGE_ON_CONDITION = eINSTANCE.getQuerySearchCondition_MergeOnCondition();
+
+        /**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryExpressionBodyImpl <em>Query Expression Body</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.QueryExpressionBodyImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getQueryExpressionBody()
+         * @generated
+         */
+		EClass QUERY_EXPRESSION_BODY = eINSTANCE.getQueryExpressionBody();
+
+		/**
+         * The meta object literal for the '<em><b>Row Fetch Limit</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @generated
+         */
+        EAttribute QUERY_EXPRESSION_BODY__ROW_FETCH_LIMIT = eINSTANCE.getQueryExpressionBody_RowFetchLimit();
+
+        /**
+         * The meta object literal for the '<em><b>Query Expression</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_EXPRESSION_BODY__QUERY_EXPRESSION = eINSTANCE.getQueryExpressionBody_QueryExpression();
+
+		/**
+         * The meta object literal for the '<em><b>Combined Left</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_EXPRESSION_BODY__COMBINED_LEFT = eINSTANCE.getQueryExpressionBody_CombinedLeft();
+
+		/**
+         * The meta object literal for the '<em><b>Combined Right</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_EXPRESSION_BODY__COMBINED_RIGHT = eINSTANCE.getQueryExpressionBody_CombinedRight();
+
+		/**
+         * The meta object literal for the '<em><b>Predicate Exists</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_EXPRESSION_BODY__PREDICATE_EXISTS = eINSTANCE.getQueryExpressionBody_PredicateExists();
+
+		/**
+         * The meta object literal for the '<em><b>Update Source Query</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_EXPRESSION_BODY__UPDATE_SOURCE_QUERY = eINSTANCE.getQueryExpressionBody_UpdateSourceQuery();
+
+		/**
+         * The meta object literal for the '<em><b>With Table Specification</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_EXPRESSION_BODY__WITH_TABLE_SPECIFICATION = eINSTANCE.getQueryExpressionBody_WithTableSpecification();
+
+		/**
+         * The meta object literal for the '<em><b>Query Nest</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @generated
+         */
+        EReference QUERY_EXPRESSION_BODY__QUERY_NEST = eINSTANCE.getQueryExpressionBody_QueryNest();
+
+        /**
+         * The meta object literal for the '<em><b>Sort Spec List</b></em>' containment reference list feature.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @generated
+         */
+        EReference QUERY_EXPRESSION_BODY__SORT_SPEC_LIST = eINSTANCE.getQueryExpressionBody_SortSpecList();
+
+        /**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl <em>Query Value Expression</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getQueryValueExpression()
+         * @generated
+         */
+		EClass QUERY_VALUE_EXPRESSION = eINSTANCE.getQueryValueExpression();
+
+		/**
+         * The meta object literal for the '<em><b>Unary Operator</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute QUERY_VALUE_EXPRESSION__UNARY_OPERATOR = eINSTANCE.getQueryValueExpression_UnaryOperator();
+
+		/**
+         * The meta object literal for the '<em><b>Data Type</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_VALUE_EXPRESSION__DATA_TYPE = eINSTANCE.getQueryValueExpression_DataType();
+
+		/**
+         * The meta object literal for the '<em><b>Values Row</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_VALUE_EXPRESSION__VALUES_ROW = eINSTANCE.getQueryValueExpression_ValuesRow();
+
+		/**
+         * The meta object literal for the '<em><b>Order By Value Expr</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_VALUE_EXPRESSION__ORDER_BY_VALUE_EXPR = eINSTANCE.getQueryValueExpression_OrderByValueExpr();
+
+		/**
+         * The meta object literal for the '<em><b>Result Column</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_VALUE_EXPRESSION__RESULT_COLUMN = eINSTANCE.getQueryValueExpression_ResultColumn();
+
+		/**
+         * The meta object literal for the '<em><b>Basic Right</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_VALUE_EXPRESSION__BASIC_RIGHT = eINSTANCE.getQueryValueExpression_BasicRight();
+
+		/**
+         * The meta object literal for the '<em><b>Basic Left</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_VALUE_EXPRESSION__BASIC_LEFT = eINSTANCE.getQueryValueExpression_BasicLeft();
+
+		/**
+         * The meta object literal for the '<em><b>Like Pattern</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_VALUE_EXPRESSION__LIKE_PATTERN = eINSTANCE.getQueryValueExpression_LikePattern();
+
+		/**
+         * The meta object literal for the '<em><b>Like Matching</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_VALUE_EXPRESSION__LIKE_MATCHING = eINSTANCE.getQueryValueExpression_LikeMatching();
+
+		/**
+         * The meta object literal for the '<em><b>Predicate Null</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_VALUE_EXPRESSION__PREDICATE_NULL = eINSTANCE.getQueryValueExpression_PredicateNull();
+
+		/**
+         * The meta object literal for the '<em><b>In Value List Right</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_RIGHT = eINSTANCE.getQueryValueExpression_InValueListRight();
+
+		/**
+         * The meta object literal for the '<em><b>In Value List Left</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_LEFT = eINSTANCE.getQueryValueExpression_InValueListLeft();
+
+		/**
+         * The meta object literal for the '<em><b>In Value Row Select Left</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_VALUE_EXPRESSION__IN_VALUE_ROW_SELECT_LEFT = eINSTANCE.getQueryValueExpression_InValueRowSelectLeft();
+
+		/**
+         * The meta object literal for the '<em><b>In Value Select Left</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_VALUE_EXPRESSION__IN_VALUE_SELECT_LEFT = eINSTANCE.getQueryValueExpression_InValueSelectLeft();
+
+		/**
+         * The meta object literal for the '<em><b>Quantified Row Select Left</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_VALUE_EXPRESSION__QUANTIFIED_ROW_SELECT_LEFT = eINSTANCE.getQueryValueExpression_QuantifiedRowSelectLeft();
+
+		/**
+         * The meta object literal for the '<em><b>Quantified Value Select Left</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_VALUE_EXPRESSION__QUANTIFIED_VALUE_SELECT_LEFT = eINSTANCE.getQueryValueExpression_QuantifiedValueSelectLeft();
+
+		/**
+         * The meta object literal for the '<em><b>Between Left</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_VALUE_EXPRESSION__BETWEEN_LEFT = eINSTANCE.getQueryValueExpression_BetweenLeft();
+
+		/**
+         * The meta object literal for the '<em><b>Between Right1</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT1 = eINSTANCE.getQueryValueExpression_BetweenRight1();
+
+		/**
+         * The meta object literal for the '<em><b>Between Right2</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT2 = eINSTANCE.getQueryValueExpression_BetweenRight2();
+
+		/**
+         * The meta object literal for the '<em><b>Value Expr Cast</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_VALUE_EXPRESSION__VALUE_EXPR_CAST = eINSTANCE.getQueryValueExpression_ValueExprCast();
+
+		/**
+         * The meta object literal for the '<em><b>Value Expr Function</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_VALUE_EXPRESSION__VALUE_EXPR_FUNCTION = eINSTANCE.getQueryValueExpression_ValueExprFunction();
+
+		/**
+         * The meta object literal for the '<em><b>Value Expr Combined Left</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_LEFT = eINSTANCE.getQueryValueExpression_ValueExprCombinedLeft();
+
+		/**
+         * The meta object literal for the '<em><b>Value Expr Combined Right</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_RIGHT = eINSTANCE.getQueryValueExpression_ValueExprCombinedRight();
+
+		/**
+         * The meta object literal for the '<em><b>Grouping Expr</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_VALUE_EXPRESSION__GROUPING_EXPR = eINSTANCE.getQueryValueExpression_GroupingExpr();
+
+		/**
+         * The meta object literal for the '<em><b>Value Expr Case Else</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_ELSE = eINSTANCE.getQueryValueExpression_ValueExprCaseElse();
+
+		/**
+         * The meta object literal for the '<em><b>Value Expr Case Simple</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE = eINSTANCE.getQueryValueExpression_ValueExprCaseSimple();
+
+		/**
+         * The meta object literal for the '<em><b>Value Expr Case Simple Content When</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN = eINSTANCE.getQueryValueExpression_ValueExprCaseSimpleContentWhen();
+
+		/**
+         * The meta object literal for the '<em><b>Value Expr Case Simple Content Result</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT = eINSTANCE.getQueryValueExpression_ValueExprCaseSimpleContentResult();
+
+		/**
+         * The meta object literal for the '<em><b>Value Expr Case Search Content</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SEARCH_CONTENT = eINSTANCE.getQueryValueExpression_ValueExprCaseSearchContent();
+
+		/**
+         * The meta object literal for the '<em><b>Like Escape</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_VALUE_EXPRESSION__LIKE_ESCAPE = eINSTANCE.getQueryValueExpression_LikeEscape();
+
+		/**
+         * The meta object literal for the '<em><b>Value Expr Labeled Duration</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_VALUE_EXPRESSION__VALUE_EXPR_LABELED_DURATION = eINSTANCE.getQueryValueExpression_ValueExprLabeledDuration();
+
+		/**
+         * The meta object literal for the '<em><b>Nest</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_VALUE_EXPRESSION__NEST = eINSTANCE.getQueryValueExpression_Nest();
+
+		/**
+         * The meta object literal for the '<em><b>Update Source Expr List</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_VALUE_EXPRESSION__UPDATE_SOURCE_EXPR_LIST = eINSTANCE.getQueryValueExpression_UpdateSourceExprList();
+
+		/**
+         * The meta object literal for the '<em><b>Table Function</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @generated
+         */
+        EReference QUERY_VALUE_EXPRESSION__TABLE_FUNCTION = eINSTANCE.getQueryValueExpression_TableFunction();
+
+        /**
+         * The meta object literal for the '<em><b>Value Expr Row</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @generated
+         */
+        EReference QUERY_VALUE_EXPRESSION__VALUE_EXPR_ROW = eINSTANCE.getQueryValueExpression_ValueExprRow();
+
+        /**
+         * The meta object literal for the '<em><b>Call Statement</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @generated
+         */
+        EReference QUERY_VALUE_EXPRESSION__CALL_STATEMENT = eINSTANCE.getQueryValueExpression_CallStatement();
+
+        /**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryExpressionRootImpl <em>Query Expression Root</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.QueryExpressionRootImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getQueryExpressionRoot()
+         * @generated
+         */
+		EClass QUERY_EXPRESSION_ROOT = eINSTANCE.getQueryExpressionRoot();
+
+		/**
+         * The meta object literal for the '<em><b>Insert Statement</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_EXPRESSION_ROOT__INSERT_STATEMENT = eINSTANCE.getQueryExpressionRoot_InsertStatement();
+
+		/**
+         * The meta object literal for the '<em><b>Select Statement</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_EXPRESSION_ROOT__SELECT_STATEMENT = eINSTANCE.getQueryExpressionRoot_SelectStatement();
+
+		/**
+         * The meta object literal for the '<em><b>With Clause</b></em>' containment reference list feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_EXPRESSION_ROOT__WITH_CLAUSE = eINSTANCE.getQueryExpressionRoot_WithClause();
+
+		/**
+         * The meta object literal for the '<em><b>Query</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_EXPRESSION_ROOT__QUERY = eINSTANCE.getQueryExpressionRoot_Query();
+
+		/**
+         * The meta object literal for the '<em><b>In Value Row Select Right</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_EXPRESSION_ROOT__IN_VALUE_ROW_SELECT_RIGHT = eINSTANCE.getQueryExpressionRoot_InValueRowSelectRight();
+
+		/**
+         * The meta object literal for the '<em><b>In Value Select Right</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_EXPRESSION_ROOT__IN_VALUE_SELECT_RIGHT = eINSTANCE.getQueryExpressionRoot_InValueSelectRight();
+
+		/**
+         * The meta object literal for the '<em><b>Quantified Row Select Right</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_EXPRESSION_ROOT__QUANTIFIED_ROW_SELECT_RIGHT = eINSTANCE.getQueryExpressionRoot_QuantifiedRowSelectRight();
+
+		/**
+         * The meta object literal for the '<em><b>Quantified Value Select Right</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_EXPRESSION_ROOT__QUANTIFIED_VALUE_SELECT_RIGHT = eINSTANCE.getQueryExpressionRoot_QuantifiedValueSelectRight();
+
+		/**
+         * The meta object literal for the '<em><b>Val Expr Scalar Select</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @generated
+         */
+        EReference QUERY_EXPRESSION_ROOT__VAL_EXPR_SCALAR_SELECT = eINSTANCE.getQueryExpressionRoot_ValExprScalarSelect();
+
+        /**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ValuesRowImpl <em>Values Row</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.ValuesRowImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getValuesRow()
+         * @generated
+         */
+		EClass VALUES_ROW = eINSTANCE.getValuesRow();
+
+		/**
+         * The meta object literal for the '<em><b>Insert Statement</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference VALUES_ROW__INSERT_STATEMENT = eINSTANCE.getValuesRow_InsertStatement();
+
+		/**
+         * The meta object literal for the '<em><b>Expr List</b></em>' containment reference list feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference VALUES_ROW__EXPR_LIST = eINSTANCE.getValuesRow_ExprList();
+
+		/**
+         * The meta object literal for the '<em><b>Query Values</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference VALUES_ROW__QUERY_VALUES = eINSTANCE.getValuesRow_QueryValues();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryValuesImpl <em>Query Values</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.QueryValuesImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getQueryValues()
+         * @generated
+         */
+		EClass QUERY_VALUES = eINSTANCE.getQueryValues();
+
+		/**
+         * The meta object literal for the '<em><b>Values Row List</b></em>' containment reference list feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_VALUES__VALUES_ROW_LIST = eINSTANCE.getQueryValues_ValuesRowList();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.TableReferenceImpl <em>Table Reference</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.TableReferenceImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getTableReference()
+         * @generated
+         */
+		EClass TABLE_REFERENCE = eINSTANCE.getTableReference();
+
+		/**
+         * The meta object literal for the '<em><b>Table Joined Right</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference TABLE_REFERENCE__TABLE_JOINED_RIGHT = eINSTANCE.getTableReference_TableJoinedRight();
+
+		/**
+         * The meta object literal for the '<em><b>Table Joined Left</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference TABLE_REFERENCE__TABLE_JOINED_LEFT = eINSTANCE.getTableReference_TableJoinedLeft();
+
+		/**
+         * The meta object literal for the '<em><b>Query Select</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference TABLE_REFERENCE__QUERY_SELECT = eINSTANCE.getTableReference_QuerySelect();
+
+		/**
+         * The meta object literal for the '<em><b>Nest</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference TABLE_REFERENCE__NEST = eINSTANCE.getTableReference_Nest();
+
+		/**
+         * The meta object literal for the '<em><b>Merge Source Table</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @generated
+         */
+        EReference TABLE_REFERENCE__MERGE_SOURCE_TABLE = eINSTANCE.getTableReference_MergeSourceTable();
+
+        /**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.TableExpressionImpl <em>Table Expression</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.TableExpressionImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getTableExpression()
+         * @generated
+         */
+		EClass TABLE_EXPRESSION = eINSTANCE.getTableExpression();
+
+		/**
+         * The meta object literal for the '<em><b>Column List</b></em>' containment reference list feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference TABLE_EXPRESSION__COLUMN_LIST = eINSTANCE.getTableExpression_ColumnList();
+
+		/**
+         * The meta object literal for the '<em><b>Table Correlation</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference TABLE_EXPRESSION__TABLE_CORRELATION = eINSTANCE.getTableExpression_TableCorrelation();
+
+		/**
+         * The meta object literal for the '<em><b>Result Table All Columns</b></em>' reference list feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference TABLE_EXPRESSION__RESULT_TABLE_ALL_COLUMNS = eINSTANCE.getTableExpression_ResultTableAllColumns();
+
+		/**
+         * The meta object literal for the '<em><b>Value Expr Columns</b></em>' reference list feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference TABLE_EXPRESSION__VALUE_EXPR_COLUMNS = eINSTANCE.getTableExpression_ValueExprColumns();
+
+		/**
+         * The meta object literal for the '<em><b>Merge Target Table</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @generated
+         */
+        EReference TABLE_EXPRESSION__MERGE_TARGET_TABLE = eINSTANCE.getTableExpression_MergeTargetTable();
+
+        /**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.TableJoinedImpl <em>Table Joined</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.TableJoinedImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getTableJoined()
+         * @generated
+         */
+		EClass TABLE_JOINED = eINSTANCE.getTableJoined();
+
+		/**
+         * The meta object literal for the '<em><b>Join Operator</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute TABLE_JOINED__JOIN_OPERATOR = eINSTANCE.getTableJoined_JoinOperator();
+
+		/**
+         * The meta object literal for the '<em><b>Join Condition</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference TABLE_JOINED__JOIN_CONDITION = eINSTANCE.getTableJoined_JoinCondition();
+
+		/**
+         * The meta object literal for the '<em><b>Table Ref Right</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference TABLE_JOINED__TABLE_REF_RIGHT = eINSTANCE.getTableJoined_TableRefRight();
+
+		/**
+         * The meta object literal for the '<em><b>Table Ref Left</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference TABLE_JOINED__TABLE_REF_LEFT = eINSTANCE.getTableJoined_TableRefLeft();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.WithTableSpecificationImpl <em>With Table Specification</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.WithTableSpecificationImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getWithTableSpecification()
+         * @generated
+         */
+		EClass WITH_TABLE_SPECIFICATION = eINSTANCE.getWithTableSpecification();
+
+		/**
+         * The meta object literal for the '<em><b>Query Expression Root</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference WITH_TABLE_SPECIFICATION__QUERY_EXPRESSION_ROOT = eINSTANCE.getWithTableSpecification_QueryExpressionRoot();
+
+		/**
+         * The meta object literal for the '<em><b>With Table Query Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference WITH_TABLE_SPECIFICATION__WITH_TABLE_QUERY_EXPR = eINSTANCE.getWithTableSpecification_WithTableQueryExpr();
+
+		/**
+         * The meta object literal for the '<em><b>With Table References</b></em>' reference list feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference WITH_TABLE_SPECIFICATION__WITH_TABLE_REFERENCES = eINSTANCE.getWithTableSpecification_WithTableReferences();
+
+		/**
+         * The meta object literal for the '<em><b>Column Name List</b></em>' containment reference list feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference WITH_TABLE_SPECIFICATION__COLUMN_NAME_LIST = eINSTANCE.getWithTableSpecification_ColumnNameList();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateImpl <em>Predicate</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.PredicateImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getPredicate()
+         * @generated
+         */
+		EClass PREDICATE = eINSTANCE.getPredicate();
+
+		/**
+         * The meta object literal for the '<em><b>Negated Predicate</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute PREDICATE__NEGATED_PREDICATE = eINSTANCE.getPredicate_NegatedPredicate();
+
+		/**
+         * The meta object literal for the '<em><b>Has Selectivity</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute PREDICATE__HAS_SELECTIVITY = eINSTANCE.getPredicate_HasSelectivity();
+
+		/**
+         * The meta object literal for the '<em><b>Selectivity Value</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute PREDICATE__SELECTIVITY_VALUE = eINSTANCE.getPredicate_SelectivityValue();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.SearchConditionCombinedImpl <em>Search Condition Combined</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SearchConditionCombinedImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getSearchConditionCombined()
+         * @generated
+         */
+		EClass SEARCH_CONDITION_COMBINED = eINSTANCE.getSearchConditionCombined();
+
+		/**
+         * The meta object literal for the '<em><b>Combined Operator</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute SEARCH_CONDITION_COMBINED__COMBINED_OPERATOR = eINSTANCE.getSearchConditionCombined_CombinedOperator();
+
+		/**
+         * The meta object literal for the '<em><b>Left Condition</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference SEARCH_CONDITION_COMBINED__LEFT_CONDITION = eINSTANCE.getSearchConditionCombined_LeftCondition();
+
+		/**
+         * The meta object literal for the '<em><b>Right Condition</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference SEARCH_CONDITION_COMBINED__RIGHT_CONDITION = eINSTANCE.getSearchConditionCombined_RightCondition();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.OrderByValueExpressionImpl <em>Order By Value Expression</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.OrderByValueExpressionImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getOrderByValueExpression()
+         * @generated
+         */
+		EClass ORDER_BY_VALUE_EXPRESSION = eINSTANCE.getOrderByValueExpression();
+
+		/**
+         * The meta object literal for the '<em><b>Value Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference ORDER_BY_VALUE_EXPRESSION__VALUE_EXPR = eINSTANCE.getOrderByValueExpression_ValueExpr();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryCombinedImpl <em>Query Combined</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.QueryCombinedImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getQueryCombined()
+         * @generated
+         */
+		EClass QUERY_COMBINED = eINSTANCE.getQueryCombined();
+
+		/**
+         * The meta object literal for the '<em><b>Combined Operator</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute QUERY_COMBINED__COMBINED_OPERATOR = eINSTANCE.getQueryCombined_CombinedOperator();
+
+		/**
+         * The meta object literal for the '<em><b>Left Query</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_COMBINED__LEFT_QUERY = eINSTANCE.getQueryCombined_LeftQuery();
+
+		/**
+         * The meta object literal for the '<em><b>Right Query</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_COMBINED__RIGHT_QUERY = eINSTANCE.getQueryCombined_RightQuery();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.QuerySelectImpl <em>Query Select</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.QuerySelectImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getQuerySelect()
+         * @generated
+         */
+		EClass QUERY_SELECT = eINSTANCE.getQuerySelect();
+
+		/**
+         * The meta object literal for the '<em><b>Distinct</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute QUERY_SELECT__DISTINCT = eINSTANCE.getQuerySelect_Distinct();
+
+		/**
+         * The meta object literal for the '<em><b>Having Clause</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_SELECT__HAVING_CLAUSE = eINSTANCE.getQuerySelect_HavingClause();
+
+		/**
+         * The meta object literal for the '<em><b>Where Clause</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_SELECT__WHERE_CLAUSE = eINSTANCE.getQuerySelect_WhereClause();
+
+		/**
+         * The meta object literal for the '<em><b>Group By Clause</b></em>' containment reference list feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_SELECT__GROUP_BY_CLAUSE = eINSTANCE.getQuerySelect_GroupByClause();
+
+		/**
+         * The meta object literal for the '<em><b>Select Clause</b></em>' containment reference list feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_SELECT__SELECT_CLAUSE = eINSTANCE.getQuerySelect_SelectClause();
+
+		/**
+         * The meta object literal for the '<em><b>From Clause</b></em>' containment reference list feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_SELECT__FROM_CLAUSE = eINSTANCE.getQuerySelect_FromClause();
+
+		/**
+         * The meta object literal for the '<em><b>Into Clause</b></em>' containment reference list feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_SELECT__INTO_CLAUSE = eINSTANCE.getQuerySelect_IntoClause();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.GroupingSpecificationImpl <em>Grouping Specification</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.GroupingSpecificationImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getGroupingSpecification()
+         * @generated
+         */
+		EClass GROUPING_SPECIFICATION = eINSTANCE.getGroupingSpecification();
+
+		/**
+         * The meta object literal for the '<em><b>Query Select</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference GROUPING_SPECIFICATION__QUERY_SELECT = eINSTANCE.getGroupingSpecification_QuerySelect();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryResultSpecificationImpl <em>Query Result Specification</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.QueryResultSpecificationImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getQueryResultSpecification()
+         * @generated
+         */
+		EClass QUERY_RESULT_SPECIFICATION = eINSTANCE.getQueryResultSpecification();
+
+		/**
+         * The meta object literal for the '<em><b>Query Select</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference QUERY_RESULT_SPECIFICATION__QUERY_SELECT = eINSTANCE.getQueryResultSpecification_QuerySelect();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ResultTableAllColumnsImpl <em>Result Table All Columns</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.ResultTableAllColumnsImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getResultTableAllColumns()
+         * @generated
+         */
+		EClass RESULT_TABLE_ALL_COLUMNS = eINSTANCE.getResultTableAllColumns();
+
+		/**
+         * The meta object literal for the '<em><b>Table Expr</b></em>' reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference RESULT_TABLE_ALL_COLUMNS__TABLE_EXPR = eINSTANCE.getResultTableAllColumns_TableExpr();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ResultColumnImpl <em>Result Column</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.ResultColumnImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getResultColumn()
+         * @generated
+         */
+		EClass RESULT_COLUMN = eINSTANCE.getResultColumn();
+
+		/**
+         * The meta object literal for the '<em><b>Value Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference RESULT_COLUMN__VALUE_EXPR = eINSTANCE.getResultColumn_ValueExpr();
+
+		/**
+         * The meta object literal for the '<em><b>Order By Result Col</b></em>' reference list feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference RESULT_COLUMN__ORDER_BY_RESULT_COL = eINSTANCE.getResultColumn_OrderByResultCol();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateBasicImpl <em>Predicate Basic</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.PredicateBasicImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getPredicateBasic()
+         * @generated
+         */
+		EClass PREDICATE_BASIC = eINSTANCE.getPredicateBasic();
+
+		/**
+         * The meta object literal for the '<em><b>Comparison Operator</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute PREDICATE_BASIC__COMPARISON_OPERATOR = eINSTANCE.getPredicateBasic_ComparisonOperator();
+
+		/**
+         * The meta object literal for the '<em><b>Right Value Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference PREDICATE_BASIC__RIGHT_VALUE_EXPR = eINSTANCE.getPredicateBasic_RightValueExpr();
+
+		/**
+         * The meta object literal for the '<em><b>Left Value Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference PREDICATE_BASIC__LEFT_VALUE_EXPR = eINSTANCE.getPredicateBasic_LeftValueExpr();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateQuantifiedImpl <em>Predicate Quantified</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.PredicateQuantifiedImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getPredicateQuantified()
+         * @generated
+         */
+		EClass PREDICATE_QUANTIFIED = eINSTANCE.getPredicateQuantified();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateBetweenImpl <em>Predicate Between</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.PredicateBetweenImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getPredicateBetween()
+         * @generated
+         */
+		EClass PREDICATE_BETWEEN = eINSTANCE.getPredicateBetween();
+
+		/**
+         * The meta object literal for the '<em><b>Not Between</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute PREDICATE_BETWEEN__NOT_BETWEEN = eINSTANCE.getPredicateBetween_NotBetween();
+
+		/**
+         * The meta object literal for the '<em><b>Left Value Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference PREDICATE_BETWEEN__LEFT_VALUE_EXPR = eINSTANCE.getPredicateBetween_LeftValueExpr();
+
+		/**
+         * The meta object literal for the '<em><b>Right Value Expr1</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference PREDICATE_BETWEEN__RIGHT_VALUE_EXPR1 = eINSTANCE.getPredicateBetween_RightValueExpr1();
+
+		/**
+         * The meta object literal for the '<em><b>Right Value Expr2</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference PREDICATE_BETWEEN__RIGHT_VALUE_EXPR2 = eINSTANCE.getPredicateBetween_RightValueExpr2();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateExistsImpl <em>Predicate Exists</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.PredicateExistsImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getPredicateExists()
+         * @generated
+         */
+		EClass PREDICATE_EXISTS = eINSTANCE.getPredicateExists();
+
+		/**
+         * The meta object literal for the '<em><b>Query Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference PREDICATE_EXISTS__QUERY_EXPR = eINSTANCE.getPredicateExists_QueryExpr();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateInImpl <em>Predicate In</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.PredicateInImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getPredicateIn()
+         * @generated
+         */
+		EClass PREDICATE_IN = eINSTANCE.getPredicateIn();
+
+		/**
+         * The meta object literal for the '<em><b>Not In</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute PREDICATE_IN__NOT_IN = eINSTANCE.getPredicateIn_NotIn();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateLikeImpl <em>Predicate Like</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.PredicateLikeImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getPredicateLike()
+         * @generated
+         */
+		EClass PREDICATE_LIKE = eINSTANCE.getPredicateLike();
+
+		/**
+         * The meta object literal for the '<em><b>Not Like</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute PREDICATE_LIKE__NOT_LIKE = eINSTANCE.getPredicateLike_NotLike();
+
+		/**
+         * The meta object literal for the '<em><b>Pattern Value Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference PREDICATE_LIKE__PATTERN_VALUE_EXPR = eINSTANCE.getPredicateLike_PatternValueExpr();
+
+		/**
+         * The meta object literal for the '<em><b>Matching Value Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference PREDICATE_LIKE__MATCHING_VALUE_EXPR = eINSTANCE.getPredicateLike_MatchingValueExpr();
+
+		/**
+         * The meta object literal for the '<em><b>Escape Value Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference PREDICATE_LIKE__ESCAPE_VALUE_EXPR = eINSTANCE.getPredicateLike_EscapeValueExpr();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateIsNullImpl <em>Predicate Is Null</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.PredicateIsNullImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getPredicateIsNull()
+         * @generated
+         */
+		EClass PREDICATE_IS_NULL = eINSTANCE.getPredicateIsNull();
+
+		/**
+         * The meta object literal for the '<em><b>Not Null</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute PREDICATE_IS_NULL__NOT_NULL = eINSTANCE.getPredicateIsNull_NotNull();
+
+		/**
+         * The meta object literal for the '<em><b>Value Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference PREDICATE_IS_NULL__VALUE_EXPR = eINSTANCE.getPredicateIsNull_ValueExpr();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateQuantifiedValueSelectImpl <em>Predicate Quantified Value Select</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.PredicateQuantifiedValueSelectImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getPredicateQuantifiedValueSelect()
+         * @generated
+         */
+		EClass PREDICATE_QUANTIFIED_VALUE_SELECT = eINSTANCE.getPredicateQuantifiedValueSelect();
+
+		/**
+         * The meta object literal for the '<em><b>Quantified Type</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute PREDICATE_QUANTIFIED_VALUE_SELECT__QUANTIFIED_TYPE = eINSTANCE.getPredicateQuantifiedValueSelect_QuantifiedType();
+
+		/**
+         * The meta object literal for the '<em><b>Comparison Operator</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute PREDICATE_QUANTIFIED_VALUE_SELECT__COMPARISON_OPERATOR = eINSTANCE.getPredicateQuantifiedValueSelect_ComparisonOperator();
+
+		/**
+         * The meta object literal for the '<em><b>Query Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference PREDICATE_QUANTIFIED_VALUE_SELECT__QUERY_EXPR = eINSTANCE.getPredicateQuantifiedValueSelect_QueryExpr();
+
+		/**
+         * The meta object literal for the '<em><b>Value Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference PREDICATE_QUANTIFIED_VALUE_SELECT__VALUE_EXPR = eINSTANCE.getPredicateQuantifiedValueSelect_ValueExpr();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateQuantifiedRowSelectImpl <em>Predicate Quantified Row Select</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.PredicateQuantifiedRowSelectImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getPredicateQuantifiedRowSelect()
+         * @generated
+         */
+		EClass PREDICATE_QUANTIFIED_ROW_SELECT = eINSTANCE.getPredicateQuantifiedRowSelect();
+
+		/**
+         * The meta object literal for the '<em><b>Quantified Type</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute PREDICATE_QUANTIFIED_ROW_SELECT__QUANTIFIED_TYPE = eINSTANCE.getPredicateQuantifiedRowSelect_QuantifiedType();
+
+		/**
+         * The meta object literal for the '<em><b>Query Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference PREDICATE_QUANTIFIED_ROW_SELECT__QUERY_EXPR = eINSTANCE.getPredicateQuantifiedRowSelect_QueryExpr();
+
+		/**
+         * The meta object literal for the '<em><b>Value Expr List</b></em>' containment reference list feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference PREDICATE_QUANTIFIED_ROW_SELECT__VALUE_EXPR_LIST = eINSTANCE.getPredicateQuantifiedRowSelect_ValueExprList();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateInValueSelectImpl <em>Predicate In Value Select</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.PredicateInValueSelectImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getPredicateInValueSelect()
+         * @generated
+         */
+		EClass PREDICATE_IN_VALUE_SELECT = eINSTANCE.getPredicateInValueSelect();
+
+		/**
+         * The meta object literal for the '<em><b>Query Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference PREDICATE_IN_VALUE_SELECT__QUERY_EXPR = eINSTANCE.getPredicateInValueSelect_QueryExpr();
+
+		/**
+         * The meta object literal for the '<em><b>Value Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference PREDICATE_IN_VALUE_SELECT__VALUE_EXPR = eINSTANCE.getPredicateInValueSelect_ValueExpr();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateInValueListImpl <em>Predicate In Value List</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.PredicateInValueListImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getPredicateInValueList()
+         * @generated
+         */
+		EClass PREDICATE_IN_VALUE_LIST = eINSTANCE.getPredicateInValueList();
+
+		/**
+         * The meta object literal for the '<em><b>Value Expr List</b></em>' containment reference list feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference PREDICATE_IN_VALUE_LIST__VALUE_EXPR_LIST = eINSTANCE.getPredicateInValueList_ValueExprList();
+
+		/**
+         * The meta object literal for the '<em><b>Value Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference PREDICATE_IN_VALUE_LIST__VALUE_EXPR = eINSTANCE.getPredicateInValueList_ValueExpr();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateInValueRowSelectImpl <em>Predicate In Value Row Select</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.PredicateInValueRowSelectImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getPredicateInValueRowSelect()
+         * @generated
+         */
+		EClass PREDICATE_IN_VALUE_ROW_SELECT = eINSTANCE.getPredicateInValueRowSelect();
+
+		/**
+         * The meta object literal for the '<em><b>Value Expr List</b></em>' containment reference list feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference PREDICATE_IN_VALUE_ROW_SELECT__VALUE_EXPR_LIST = eINSTANCE.getPredicateInValueRowSelect_ValueExprList();
+
+		/**
+         * The meta object literal for the '<em><b>Query Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference PREDICATE_IN_VALUE_ROW_SELECT__QUERY_EXPR = eINSTANCE.getPredicateInValueRowSelect_QueryExpr();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionSimpleImpl <em>Value Expression Simple</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionSimpleImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getValueExpressionSimple()
+         * @generated
+         */
+		EClass VALUE_EXPRESSION_SIMPLE = eINSTANCE.getValueExpressionSimple();
+
+		/**
+         * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute VALUE_EXPRESSION_SIMPLE__VALUE = eINSTANCE.getValueExpressionSimple_Value();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionColumnImpl <em>Value Expression Column</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionColumnImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getValueExpressionColumn()
+         * @generated
+         */
+		EClass VALUE_EXPRESSION_COLUMN = eINSTANCE.getValueExpressionColumn();
+
+		/**
+         * The meta object literal for the '<em><b>Assignment Expr Target</b></em>' reference list feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference VALUE_EXPRESSION_COLUMN__ASSIGNMENT_EXPR_TARGET = eINSTANCE.getValueExpressionColumn_AssignmentExprTarget();
+
+		/**
+         * The meta object literal for the '<em><b>Parent Table Expr</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference VALUE_EXPRESSION_COLUMN__PARENT_TABLE_EXPR = eINSTANCE.getValueExpressionColumn_ParentTableExpr();
+
+		/**
+         * The meta object literal for the '<em><b>Insert Statement</b></em>' reference list feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference VALUE_EXPRESSION_COLUMN__INSERT_STATEMENT = eINSTANCE.getValueExpressionColumn_InsertStatement();
+
+		/**
+         * The meta object literal for the '<em><b>Table Expr</b></em>' reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference VALUE_EXPRESSION_COLUMN__TABLE_EXPR = eINSTANCE.getValueExpressionColumn_TableExpr();
+
+		/**
+         * The meta object literal for the '<em><b>Table In Database</b></em>' reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference VALUE_EXPRESSION_COLUMN__TABLE_IN_DATABASE = eINSTANCE.getValueExpressionColumn_TableInDatabase();
+
+		/**
+         * The meta object literal for the '<em><b>Merge Insert Spec</b></em>' reference list feature.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @generated
+         */
+        EReference VALUE_EXPRESSION_COLUMN__MERGE_INSERT_SPEC = eINSTANCE.getValueExpressionColumn_MergeInsertSpec();
+
+        /**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionVariableImpl <em>Value Expression Variable</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionVariableImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getValueExpressionVariable()
+         * @generated
+         */
+		EClass VALUE_EXPRESSION_VARIABLE = eINSTANCE.getValueExpressionVariable();
+
+		/**
+         * The meta object literal for the '<em><b>Query Select</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference VALUE_EXPRESSION_VARIABLE__QUERY_SELECT = eINSTANCE.getValueExpressionVariable_QuerySelect();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionScalarSelectImpl <em>Value Expression Scalar Select</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionScalarSelectImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getValueExpressionScalarSelect()
+         * @generated
+         */
+		EClass VALUE_EXPRESSION_SCALAR_SELECT = eINSTANCE.getValueExpressionScalarSelect();
+
+		/**
+         * The meta object literal for the '<em><b>Query Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference VALUE_EXPRESSION_SCALAR_SELECT__QUERY_EXPR = eINSTANCE.getValueExpressionScalarSelect_QueryExpr();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionLabeledDurationImpl <em>Value Expression Labeled Duration</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionLabeledDurationImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getValueExpressionLabeledDuration()
+         * @generated
+         */
+		EClass VALUE_EXPRESSION_LABELED_DURATION = eINSTANCE.getValueExpressionLabeledDuration();
+
+		/**
+         * The meta object literal for the '<em><b>Labeled Duration Type</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute VALUE_EXPRESSION_LABELED_DURATION__LABELED_DURATION_TYPE = eINSTANCE.getValueExpressionLabeledDuration_LabeledDurationType();
+
+		/**
+         * The meta object literal for the '<em><b>Value Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference VALUE_EXPRESSION_LABELED_DURATION__VALUE_EXPR = eINSTANCE.getValueExpressionLabeledDuration_ValueExpr();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCaseImpl <em>Value Expression Case</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCaseImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getValueExpressionCase()
+         * @generated
+         */
+		EClass VALUE_EXPRESSION_CASE = eINSTANCE.getValueExpressionCase();
+
+		/**
+         * The meta object literal for the '<em><b>Case Else</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference VALUE_EXPRESSION_CASE__CASE_ELSE = eINSTANCE.getValueExpressionCase_CaseElse();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCastImpl <em>Value Expression Cast</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCastImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getValueExpressionCast()
+         * @generated
+         */
+		EClass VALUE_EXPRESSION_CAST = eINSTANCE.getValueExpressionCast();
+
+		/**
+         * The meta object literal for the '<em><b>Value Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference VALUE_EXPRESSION_CAST__VALUE_EXPR = eINSTANCE.getValueExpressionCast_ValueExpr();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionNullValueImpl <em>Value Expression Null Value</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionNullValueImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getValueExpressionNullValue()
+         * @generated
+         */
+		EClass VALUE_EXPRESSION_NULL_VALUE = eINSTANCE.getValueExpressionNullValue();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionDefaultValueImpl <em>Value Expression Default Value</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionDefaultValueImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getValueExpressionDefaultValue()
+         * @generated
+         */
+		EClass VALUE_EXPRESSION_DEFAULT_VALUE = eINSTANCE.getValueExpressionDefaultValue();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionFunctionImpl <em>Value Expression Function</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionFunctionImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getValueExpressionFunction()
+         * @generated
+         */
+		EClass VALUE_EXPRESSION_FUNCTION = eINSTANCE.getValueExpressionFunction();
+
+		/**
+         * The meta object literal for the '<em><b>Special Register</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute VALUE_EXPRESSION_FUNCTION__SPECIAL_REGISTER = eINSTANCE.getValueExpressionFunction_SpecialRegister();
+
+		/**
+         * The meta object literal for the '<em><b>Distinct</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute VALUE_EXPRESSION_FUNCTION__DISTINCT = eINSTANCE.getValueExpressionFunction_Distinct();
+
+		/**
+         * The meta object literal for the '<em><b>Column Function</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute VALUE_EXPRESSION_FUNCTION__COLUMN_FUNCTION = eINSTANCE.getValueExpressionFunction_ColumnFunction();
+
+		/**
+         * The meta object literal for the '<em><b>Parameter List</b></em>' containment reference list feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference VALUE_EXPRESSION_FUNCTION__PARAMETER_LIST = eINSTANCE.getValueExpressionFunction_ParameterList();
+
+		/**
+         * The meta object literal for the '<em><b>Function</b></em>' reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference VALUE_EXPRESSION_FUNCTION__FUNCTION = eINSTANCE.getValueExpressionFunction_Function();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCombinedImpl <em>Value Expression Combined</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCombinedImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getValueExpressionCombined()
+         * @generated
+         */
+		EClass VALUE_EXPRESSION_COMBINED = eINSTANCE.getValueExpressionCombined();
+
+		/**
+         * The meta object literal for the '<em><b>Combined Operator</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute VALUE_EXPRESSION_COMBINED__COMBINED_OPERATOR = eINSTANCE.getValueExpressionCombined_CombinedOperator();
+
+		/**
+         * The meta object literal for the '<em><b>Left Value Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference VALUE_EXPRESSION_COMBINED__LEFT_VALUE_EXPR = eINSTANCE.getValueExpressionCombined_LeftValueExpr();
+
+		/**
+         * The meta object literal for the '<em><b>Right Value Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference VALUE_EXPRESSION_COMBINED__RIGHT_VALUE_EXPR = eINSTANCE.getValueExpressionCombined_RightValueExpr();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.GroupingSetsImpl <em>Grouping Sets</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.GroupingSetsImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getGroupingSets()
+         * @generated
+         */
+		EClass GROUPING_SETS = eINSTANCE.getGroupingSets();
+
+		/**
+         * The meta object literal for the '<em><b>Grouping Sets Element List</b></em>' containment reference list feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference GROUPING_SETS__GROUPING_SETS_ELEMENT_LIST = eINSTANCE.getGroupingSets_GroupingSetsElementList();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.GroupingImpl <em>Grouping</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.GroupingImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getGrouping()
+         * @generated
+         */
+		EClass GROUPING = eINSTANCE.getGrouping();
+
+		/**
+         * The meta object literal for the '<em><b>Grouping Sets Element Expr</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference GROUPING__GROUPING_SETS_ELEMENT_EXPR = eINSTANCE.getGrouping_GroupingSetsElementExpr();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.GroupingSetsElementImpl <em>Grouping Sets Element</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.GroupingSetsElementImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getGroupingSetsElement()
+         * @generated
+         */
+		EClass GROUPING_SETS_ELEMENT = eINSTANCE.getGroupingSetsElement();
+
+		/**
+         * The meta object literal for the '<em><b>Grouping Sets</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference GROUPING_SETS_ELEMENT__GROUPING_SETS = eINSTANCE.getGroupingSetsElement_GroupingSets();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.GroupingSetsElementSublistImpl <em>Grouping Sets Element Sublist</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.GroupingSetsElementSublistImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getGroupingSetsElementSublist()
+         * @generated
+         */
+		EClass GROUPING_SETS_ELEMENT_SUBLIST = eINSTANCE.getGroupingSetsElementSublist();
+
+		/**
+         * The meta object literal for the '<em><b>Grouping Sets Element Expr List</b></em>' containment reference list feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference GROUPING_SETS_ELEMENT_SUBLIST__GROUPING_SETS_ELEMENT_EXPR_LIST = eINSTANCE.getGroupingSetsElementSublist_GroupingSetsElementExprList();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.GroupingSetsElementExpressionImpl <em>Grouping Sets Element Expression</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.GroupingSetsElementExpressionImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getGroupingSetsElementExpression()
+         * @generated
+         */
+		EClass GROUPING_SETS_ELEMENT_EXPRESSION = eINSTANCE.getGroupingSetsElementExpression();
+
+		/**
+         * The meta object literal for the '<em><b>Grouping Sets Element Sublist</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference GROUPING_SETS_ELEMENT_EXPRESSION__GROUPING_SETS_ELEMENT_SUBLIST = eINSTANCE.getGroupingSetsElementExpression_GroupingSetsElementSublist();
+
+		/**
+         * The meta object literal for the '<em><b>Grouping</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference GROUPING_SETS_ELEMENT_EXPRESSION__GROUPING = eINSTANCE.getGroupingSetsElementExpression_Grouping();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.SuperGroupImpl <em>Super Group</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SuperGroupImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getSuperGroup()
+         * @generated
+         */
+		EClass SUPER_GROUP = eINSTANCE.getSuperGroup();
+
+		/**
+         * The meta object literal for the '<em><b>Super Group Type</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute SUPER_GROUP__SUPER_GROUP_TYPE = eINSTANCE.getSuperGroup_SuperGroupType();
+
+		/**
+         * The meta object literal for the '<em><b>Super Group Element List</b></em>' containment reference list feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference SUPER_GROUP__SUPER_GROUP_ELEMENT_LIST = eINSTANCE.getSuperGroup_SuperGroupElementList();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.GroupingExpressionImpl <em>Grouping Expression</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.GroupingExpressionImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getGroupingExpression()
+         * @generated
+         */
+		EClass GROUPING_EXPRESSION = eINSTANCE.getGroupingExpression();
+
+		/**
+         * The meta object literal for the '<em><b>Value Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference GROUPING_EXPRESSION__VALUE_EXPR = eINSTANCE.getGroupingExpression_ValueExpr();
+
+		/**
+         * The meta object literal for the '<em><b>Super Group Element Expr</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference GROUPING_EXPRESSION__SUPER_GROUP_ELEMENT_EXPR = eINSTANCE.getGroupingExpression_SuperGroupElementExpr();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.SuperGroupElementImpl <em>Super Group Element</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SuperGroupElementImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getSuperGroupElement()
+         * @generated
+         */
+		EClass SUPER_GROUP_ELEMENT = eINSTANCE.getSuperGroupElement();
+
+		/**
+         * The meta object literal for the '<em><b>Super Group</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference SUPER_GROUP_ELEMENT__SUPER_GROUP = eINSTANCE.getSuperGroupElement_SuperGroup();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.SuperGroupElementSublistImpl <em>Super Group Element Sublist</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SuperGroupElementSublistImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getSuperGroupElementSublist()
+         * @generated
+         */
+		EClass SUPER_GROUP_ELEMENT_SUBLIST = eINSTANCE.getSuperGroupElementSublist();
+
+		/**
+         * The meta object literal for the '<em><b>Super Group Element Expr List</b></em>' containment reference list feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference SUPER_GROUP_ELEMENT_SUBLIST__SUPER_GROUP_ELEMENT_EXPR_LIST = eINSTANCE.getSuperGroupElementSublist_SuperGroupElementExprList();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.SuperGroupElementExpressionImpl <em>Super Group Element Expression</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SuperGroupElementExpressionImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getSuperGroupElementExpression()
+         * @generated
+         */
+		EClass SUPER_GROUP_ELEMENT_EXPRESSION = eINSTANCE.getSuperGroupElementExpression();
+
+		/**
+         * The meta object literal for the '<em><b>Super Group Element Sublist</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference SUPER_GROUP_ELEMENT_EXPRESSION__SUPER_GROUP_ELEMENT_SUBLIST = eINSTANCE.getSuperGroupElementExpression_SuperGroupElementSublist();
+
+		/**
+         * The meta object literal for the '<em><b>Grouping Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference SUPER_GROUP_ELEMENT_EXPRESSION__GROUPING_EXPR = eINSTANCE.getSuperGroupElementExpression_GroupingExpr();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCaseSearchImpl <em>Value Expression Case Search</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCaseSearchImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getValueExpressionCaseSearch()
+         * @generated
+         */
+		EClass VALUE_EXPRESSION_CASE_SEARCH = eINSTANCE.getValueExpressionCaseSearch();
+
+		/**
+         * The meta object literal for the '<em><b>Search Content List</b></em>' containment reference list feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference VALUE_EXPRESSION_CASE_SEARCH__SEARCH_CONTENT_LIST = eINSTANCE.getValueExpressionCaseSearch_SearchContentList();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCaseSimpleImpl <em>Value Expression Case Simple</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCaseSimpleImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getValueExpressionCaseSimple()
+         * @generated
+         */
+		EClass VALUE_EXPRESSION_CASE_SIMPLE = eINSTANCE.getValueExpressionCaseSimple();
+
+		/**
+         * The meta object literal for the '<em><b>Content List</b></em>' containment reference list feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference VALUE_EXPRESSION_CASE_SIMPLE__CONTENT_LIST = eINSTANCE.getValueExpressionCaseSimple_ContentList();
+
+		/**
+         * The meta object literal for the '<em><b>Value Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference VALUE_EXPRESSION_CASE_SIMPLE__VALUE_EXPR = eINSTANCE.getValueExpressionCaseSimple_ValueExpr();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCaseElseImpl <em>Value Expression Case Else</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCaseElseImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getValueExpressionCaseElse()
+         * @generated
+         */
+		EClass VALUE_EXPRESSION_CASE_ELSE = eINSTANCE.getValueExpressionCaseElse();
+
+		/**
+         * The meta object literal for the '<em><b>Value Expr Case</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference VALUE_EXPRESSION_CASE_ELSE__VALUE_EXPR_CASE = eINSTANCE.getValueExpressionCaseElse_ValueExprCase();
+
+		/**
+         * The meta object literal for the '<em><b>Value Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference VALUE_EXPRESSION_CASE_ELSE__VALUE_EXPR = eINSTANCE.getValueExpressionCaseElse_ValueExpr();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCaseSearchContentImpl <em>Value Expression Case Search Content</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCaseSearchContentImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getValueExpressionCaseSearchContent()
+         * @generated
+         */
+		EClass VALUE_EXPRESSION_CASE_SEARCH_CONTENT = eINSTANCE.getValueExpressionCaseSearchContent();
+
+		/**
+         * The meta object literal for the '<em><b>Value Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference VALUE_EXPRESSION_CASE_SEARCH_CONTENT__VALUE_EXPR = eINSTANCE.getValueExpressionCaseSearchContent_ValueExpr();
+
+		/**
+         * The meta object literal for the '<em><b>Search Condition</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference VALUE_EXPRESSION_CASE_SEARCH_CONTENT__SEARCH_CONDITION = eINSTANCE.getValueExpressionCaseSearchContent_SearchCondition();
+
+		/**
+         * The meta object literal for the '<em><b>Value Expr Case Search</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference VALUE_EXPRESSION_CASE_SEARCH_CONTENT__VALUE_EXPR_CASE_SEARCH = eINSTANCE.getValueExpressionCaseSearchContent_ValueExprCaseSearch();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCaseSimpleContentImpl <em>Value Expression Case Simple Content</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCaseSimpleContentImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getValueExpressionCaseSimpleContent()
+         * @generated
+         */
+		EClass VALUE_EXPRESSION_CASE_SIMPLE_CONTENT = eINSTANCE.getValueExpressionCaseSimpleContent();
+
+		/**
+         * The meta object literal for the '<em><b>Value Expr Case Simple</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__VALUE_EXPR_CASE_SIMPLE = eINSTANCE.getValueExpressionCaseSimpleContent_ValueExprCaseSimple();
+
+		/**
+         * The meta object literal for the '<em><b>When Value Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__WHEN_VALUE_EXPR = eINSTANCE.getValueExpressionCaseSimpleContent_WhenValueExpr();
+
+		/**
+         * The meta object literal for the '<em><b>Result Value Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__RESULT_VALUE_EXPR = eINSTANCE.getValueExpressionCaseSimpleContent_ResultValueExpr();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.TableInDatabaseImpl <em>Table In Database</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.TableInDatabaseImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getTableInDatabase()
+         * @generated
+         */
+		EClass TABLE_IN_DATABASE = eINSTANCE.getTableInDatabase();
+
+		/**
+         * The meta object literal for the '<em><b>Update Statement</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference TABLE_IN_DATABASE__UPDATE_STATEMENT = eINSTANCE.getTableInDatabase_UpdateStatement();
+
+		/**
+         * The meta object literal for the '<em><b>Delete Statement</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference TABLE_IN_DATABASE__DELETE_STATEMENT = eINSTANCE.getTableInDatabase_DeleteStatement();
+
+		/**
+         * The meta object literal for the '<em><b>Insert Statement</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference TABLE_IN_DATABASE__INSERT_STATEMENT = eINSTANCE.getTableInDatabase_InsertStatement();
+
+		/**
+         * The meta object literal for the '<em><b>Database Table</b></em>' reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference TABLE_IN_DATABASE__DATABASE_TABLE = eINSTANCE.getTableInDatabase_DatabaseTable();
+
+		/**
+         * The meta object literal for the '<em><b>Derived Column List</b></em>' reference list feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference TABLE_IN_DATABASE__DERIVED_COLUMN_LIST = eINSTANCE.getTableInDatabase_DerivedColumnList();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.TableFunctionImpl <em>Table Function</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.TableFunctionImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getTableFunction()
+         * @generated
+         */
+		EClass TABLE_FUNCTION = eINSTANCE.getTableFunction();
+
+		/**
+         * The meta object literal for the '<em><b>Function</b></em>' reference feature.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @generated
+         */
+        EReference TABLE_FUNCTION__FUNCTION = eINSTANCE.getTableFunction_Function();
+
+        /**
+         * The meta object literal for the '<em><b>Parameter List</b></em>' containment reference list feature.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @generated
+         */
+        EReference TABLE_FUNCTION__PARAMETER_LIST = eINSTANCE.getTableFunction_ParameterList();
+
+        /**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryObjectImpl <em>SQL Query Object</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryObjectImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getSQLQueryObject()
+         * @generated
+         */
+		EClass SQL_QUERY_OBJECT = eINSTANCE.getSQLQueryObject();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryChangeStatementImpl <em>Query Change Statement</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.QueryChangeStatementImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getQueryChangeStatement()
+         * @generated
+         */
+		EClass QUERY_CHANGE_STATEMENT = eINSTANCE.getQueryChangeStatement();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ColumnNameImpl <em>Column Name</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.ColumnNameImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getColumnName()
+         * @generated
+         */
+		EClass COLUMN_NAME = eINSTANCE.getColumnName();
+
+		/**
+         * The meta object literal for the '<em><b>Table Correlation</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference COLUMN_NAME__TABLE_CORRELATION = eINSTANCE.getColumnName_TableCorrelation();
+
+		/**
+         * The meta object literal for the '<em><b>With Table Specification</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference COLUMN_NAME__WITH_TABLE_SPECIFICATION = eINSTANCE.getColumnName_WithTableSpecification();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.TableNestedImpl <em>Table Nested</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.TableNestedImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getTableNested()
+         * @generated
+         */
+		EClass TABLE_NESTED = eINSTANCE.getTableNested();
+
+		/**
+         * The meta object literal for the '<em><b>Nested Table Ref</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference TABLE_NESTED__NESTED_TABLE_REF = eINSTANCE.getTableNested_NestedTableRef();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryMergeStatementImpl <em>Query Merge Statement</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.QueryMergeStatementImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getQueryMergeStatement()
+         * @generated
+         */
+		EClass QUERY_MERGE_STATEMENT = eINSTANCE.getQueryMergeStatement();
+
+		/**
+         * The meta object literal for the '<em><b>Target Table</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @generated
+         */
+        EReference QUERY_MERGE_STATEMENT__TARGET_TABLE = eINSTANCE.getQueryMergeStatement_TargetTable();
+
+        /**
+         * The meta object literal for the '<em><b>Source Table</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @generated
+         */
+        EReference QUERY_MERGE_STATEMENT__SOURCE_TABLE = eINSTANCE.getQueryMergeStatement_SourceTable();
+
+        /**
+         * The meta object literal for the '<em><b>On Condition</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @generated
+         */
+        EReference QUERY_MERGE_STATEMENT__ON_CONDITION = eINSTANCE.getQueryMergeStatement_OnCondition();
+
+        /**
+         * The meta object literal for the '<em><b>Operation Spec List</b></em>' containment reference list feature.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @generated
+         */
+        EReference QUERY_MERGE_STATEMENT__OPERATION_SPEC_LIST = eINSTANCE.getQueryMergeStatement_OperationSpecList();
+
+        /**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.SearchConditionNestedImpl <em>Search Condition Nested</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SearchConditionNestedImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getSearchConditionNested()
+         * @generated
+         */
+		EClass SEARCH_CONDITION_NESTED = eINSTANCE.getSearchConditionNested();
+
+		/**
+         * The meta object literal for the '<em><b>Nested Condition</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference SEARCH_CONDITION_NESTED__NESTED_CONDITION = eINSTANCE.getSearchConditionNested_NestedCondition();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionNestedImpl <em>Value Expression Nested</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionNestedImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getValueExpressionNested()
+         * @generated
+         */
+		EClass VALUE_EXPRESSION_NESTED = eINSTANCE.getValueExpressionNested();
+
+		/**
+         * The meta object literal for the '<em><b>Nested Value Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference VALUE_EXPRESSION_NESTED__NESTED_VALUE_EXPR = eINSTANCE.getValueExpressionNested_NestedValueExpr();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionAtomicImpl <em>Value Expression Atomic</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionAtomicImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getValueExpressionAtomic()
+         * @generated
+         */
+		EClass VALUE_EXPRESSION_ATOMIC = eINSTANCE.getValueExpressionAtomic();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.OrderBySpecificationImpl <em>Order By Specification</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.OrderBySpecificationImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getOrderBySpecification()
+         * @generated
+         */
+		EClass ORDER_BY_SPECIFICATION = eINSTANCE.getOrderBySpecification();
+
+		/**
+         * The meta object literal for the '<em><b>Descending</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute ORDER_BY_SPECIFICATION__DESCENDING = eINSTANCE.getOrderBySpecification_Descending();
+
+		/**
+         * The meta object literal for the '<em><b>Ordering Spec Option</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute ORDER_BY_SPECIFICATION__ORDERING_SPEC_OPTION = eINSTANCE.getOrderBySpecification_OrderingSpecOption();
+
+		/**
+         * The meta object literal for the '<em><b>Null Ordering Option</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute ORDER_BY_SPECIFICATION__NULL_ORDERING_OPTION = eINSTANCE.getOrderBySpecification_NullOrderingOption();
+
+		/**
+         * The meta object literal for the '<em><b>Select Statement</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference ORDER_BY_SPECIFICATION__SELECT_STATEMENT = eINSTANCE.getOrderBySpecification_SelectStatement();
+
+		/**
+         * The meta object literal for the '<em><b>Query</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @generated
+         */
+        EReference ORDER_BY_SPECIFICATION__QUERY = eINSTANCE.getOrderBySpecification_Query();
+
+        /**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.OrderByOrdinalImpl <em>Order By Ordinal</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.OrderByOrdinalImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getOrderByOrdinal()
+         * @generated
+         */
+		EClass ORDER_BY_ORDINAL = eINSTANCE.getOrderByOrdinal();
+
+		/**
+         * The meta object literal for the '<em><b>Ordinal Value</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute ORDER_BY_ORDINAL__ORDINAL_VALUE = eINSTANCE.getOrderByOrdinal_OrdinalValue();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.TableCorrelationImpl <em>Table Correlation</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.TableCorrelationImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getTableCorrelation()
+         * @generated
+         */
+		EClass TABLE_CORRELATION = eINSTANCE.getTableCorrelation();
+
+		/**
+         * The meta object literal for the '<em><b>Table Expr</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference TABLE_CORRELATION__TABLE_EXPR = eINSTANCE.getTableCorrelation_TableExpr();
+
+		/**
+         * The meta object literal for the '<em><b>Column Name List</b></em>' containment reference list feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference TABLE_CORRELATION__COLUMN_NAME_LIST = eINSTANCE.getTableCorrelation_ColumnNameList();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.UpdateSourceImpl <em>Update Source</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.UpdateSourceImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getUpdateSource()
+         * @generated
+         */
+		EClass UPDATE_SOURCE = eINSTANCE.getUpdateSource();
+
+		/**
+         * The meta object literal for the '<em><b>Update Assignment Expr</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference UPDATE_SOURCE__UPDATE_ASSIGNMENT_EXPR = eINSTANCE.getUpdateSource_UpdateAssignmentExpr();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.UpdateSourceExprListImpl <em>Update Source Expr List</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.UpdateSourceExprListImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getUpdateSourceExprList()
+         * @generated
+         */
+		EClass UPDATE_SOURCE_EXPR_LIST = eINSTANCE.getUpdateSourceExprList();
+
+		/**
+         * The meta object literal for the '<em><b>Value Expr List</b></em>' containment reference list feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference UPDATE_SOURCE_EXPR_LIST__VALUE_EXPR_LIST = eINSTANCE.getUpdateSourceExprList_ValueExprList();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.UpdateSourceQueryImpl <em>Update Source Query</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.UpdateSourceQueryImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getUpdateSourceQuery()
+         * @generated
+         */
+		EClass UPDATE_SOURCE_QUERY = eINSTANCE.getUpdateSourceQuery();
+
+		/**
+         * The meta object literal for the '<em><b>Query Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference UPDATE_SOURCE_QUERY__QUERY_EXPR = eINSTANCE.getUpdateSourceQuery_QueryExpr();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.OrderByResultColumnImpl <em>Order By Result Column</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.OrderByResultColumnImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getOrderByResultColumn()
+         * @generated
+         */
+		EClass ORDER_BY_RESULT_COLUMN = eINSTANCE.getOrderByResultColumn();
+
+		/**
+         * The meta object literal for the '<em><b>Result Col</b></em>' reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference ORDER_BY_RESULT_COLUMN__RESULT_COL = eINSTANCE.getOrderByResultColumn_ResultCol();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.WithTableReferenceImpl <em>With Table Reference</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.WithTableReferenceImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getWithTableReference()
+         * @generated
+         */
+		EClass WITH_TABLE_REFERENCE = eINSTANCE.getWithTableReference();
+
+		/**
+         * The meta object literal for the '<em><b>With Table Specification</b></em>' reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference WITH_TABLE_REFERENCE__WITH_TABLE_SPECIFICATION = eINSTANCE.getWithTableReference_WithTableSpecification();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryNestedImpl <em>Query Nested</em>}' class.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.QueryNestedImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getQueryNested()
+         * @generated
+         */
+        EClass QUERY_NESTED = eINSTANCE.getQueryNested();
+
+        /**
+         * The meta object literal for the '<em><b>Nested Query</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @generated
+         */
+        EReference QUERY_NESTED__NESTED_QUERY = eINSTANCE.getQueryNested_NestedQuery();
+
+        /**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionRowImpl <em>Value Expression Row</em>}' class.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionRowImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getValueExpressionRow()
+         * @generated
+         */
+        EClass VALUE_EXPRESSION_ROW = eINSTANCE.getValueExpressionRow();
+
+        /**
+         * The meta object literal for the '<em><b>Value Expr List</b></em>' containment reference list feature.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @generated
+         */
+        EReference VALUE_EXPRESSION_ROW__VALUE_EXPR_LIST = eINSTANCE.getValueExpressionRow_ValueExprList();
+
+        /**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.MergeTargetTableImpl <em>Merge Target Table</em>}' class.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.MergeTargetTableImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getMergeTargetTable()
+         * @generated
+         */
+        EClass MERGE_TARGET_TABLE = eINSTANCE.getMergeTargetTable();
+
+        /**
+         * The meta object literal for the '<em><b>Merge Statement</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @generated
+         */
+        EReference MERGE_TARGET_TABLE__MERGE_STATEMENT = eINSTANCE.getMergeTargetTable_MergeStatement();
+
+        /**
+         * The meta object literal for the '<em><b>Table Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @generated
+         */
+        EReference MERGE_TARGET_TABLE__TABLE_EXPR = eINSTANCE.getMergeTargetTable_TableExpr();
+
+        /**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.MergeSourceTableImpl <em>Merge Source Table</em>}' class.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.MergeSourceTableImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getMergeSourceTable()
+         * @generated
+         */
+        EClass MERGE_SOURCE_TABLE = eINSTANCE.getMergeSourceTable();
+
+        /**
+         * The meta object literal for the '<em><b>Query Merge Statement</b></em>' reference list feature.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @generated
+         */
+        EReference MERGE_SOURCE_TABLE__QUERY_MERGE_STATEMENT = eINSTANCE.getMergeSourceTable_QueryMergeStatement();
+
+        /**
+         * The meta object literal for the '<em><b>Merge Statement</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @generated
+         */
+        EReference MERGE_SOURCE_TABLE__MERGE_STATEMENT = eINSTANCE.getMergeSourceTable_MergeStatement();
+
+        /**
+         * The meta object literal for the '<em><b>Table Ref</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @generated
+         */
+        EReference MERGE_SOURCE_TABLE__TABLE_REF = eINSTANCE.getMergeSourceTable_TableRef();
+
+        /**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.MergeOnConditionImpl <em>Merge On Condition</em>}' class.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.MergeOnConditionImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getMergeOnCondition()
+         * @generated
+         */
+        EClass MERGE_ON_CONDITION = eINSTANCE.getMergeOnCondition();
+
+        /**
+         * The meta object literal for the '<em><b>Merge Statement</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @generated
+         */
+        EReference MERGE_ON_CONDITION__MERGE_STATEMENT = eINSTANCE.getMergeOnCondition_MergeStatement();
+
+        /**
+         * The meta object literal for the '<em><b>Search Condition</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @generated
+         */
+        EReference MERGE_ON_CONDITION__SEARCH_CONDITION = eINSTANCE.getMergeOnCondition_SearchCondition();
+
+        /**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.MergeUpdateSpecificationImpl <em>Merge Update Specification</em>}' class.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.MergeUpdateSpecificationImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getMergeUpdateSpecification()
+         * @generated
+         */
+        EClass MERGE_UPDATE_SPECIFICATION = eINSTANCE.getMergeUpdateSpecification();
+
+        /**
+         * The meta object literal for the '<em><b>Assignement Expr List</b></em>' containment reference list feature.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @generated
+         */
+        EReference MERGE_UPDATE_SPECIFICATION__ASSIGNEMENT_EXPR_LIST = eINSTANCE.getMergeUpdateSpecification_AssignementExprList();
+
+        /**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.MergeInsertSpecificationImpl <em>Merge Insert Specification</em>}' class.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.MergeInsertSpecificationImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getMergeInsertSpecification()
+         * @generated
+         */
+        EClass MERGE_INSERT_SPECIFICATION = eINSTANCE.getMergeInsertSpecification();
+
+        /**
+         * The meta object literal for the '<em><b>Target Column List</b></em>' reference list feature.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @generated
+         */
+        EReference MERGE_INSERT_SPECIFICATION__TARGET_COLUMN_LIST = eINSTANCE.getMergeInsertSpecification_TargetColumnList();
+
+        /**
+         * The meta object literal for the '<em><b>Source Values Row</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @generated
+         */
+        EReference MERGE_INSERT_SPECIFICATION__SOURCE_VALUES_ROW = eINSTANCE.getMergeInsertSpecification_SourceValuesRow();
+
+        /**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.MergeOperationSpecificationImpl <em>Merge Operation Specification</em>}' class.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.MergeOperationSpecificationImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getMergeOperationSpecification()
+         * @generated
+         */
+        EClass MERGE_OPERATION_SPECIFICATION = eINSTANCE.getMergeOperationSpecification();
+
+        /**
+         * The meta object literal for the '<em><b>Merge Statement</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @generated
+         */
+        EReference MERGE_OPERATION_SPECIFICATION__MERGE_STATEMENT = eINSTANCE.getMergeOperationSpecification_MergeStatement();
+
+        /**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.UpdateOfColumnImpl <em>Update Of Column</em>}' class.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.UpdateOfColumnImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getUpdateOfColumn()
+         * @generated
+         */
+        EClass UPDATE_OF_COLUMN = eINSTANCE.getUpdateOfColumn();
+
+        /**
+         * The meta object literal for the '<em><b>Updatability Expr</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @generated
+         */
+        EReference UPDATE_OF_COLUMN__UPDATABILITY_EXPR = eINSTANCE.getUpdateOfColumn_UpdatabilityExpr();
+
+        /**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.UpdatabilityExpressionImpl <em>Updatability Expression</em>}' class.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.UpdatabilityExpressionImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getUpdatabilityExpression()
+         * @generated
+         */
+        EClass UPDATABILITY_EXPRESSION = eINSTANCE.getUpdatabilityExpression();
+
+        /**
+         * The meta object literal for the '<em><b>Updatability Type</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @generated
+         */
+        EAttribute UPDATABILITY_EXPRESSION__UPDATABILITY_TYPE = eINSTANCE.getUpdatabilityExpression_UpdatabilityType();
+
+        /**
+         * The meta object literal for the '<em><b>Update Of Column List</b></em>' containment reference list feature.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @generated
+         */
+        EReference UPDATABILITY_EXPRESSION__UPDATE_OF_COLUMN_LIST = eINSTANCE.getUpdatabilityExpression_UpdateOfColumnList();
+
+        /**
+         * The meta object literal for the '<em><b>Select Statement</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @generated
+         */
+        EReference UPDATABILITY_EXPRESSION__SELECT_STATEMENT = eINSTANCE.getUpdatabilityExpression_SelectStatement();
+
+        /**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.CallStatementImpl <em>Call Statement</em>}' class.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.CallStatementImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getCallStatement()
+         * @generated
+         */
+        EClass CALL_STATEMENT = eINSTANCE.getCallStatement();
+
+        /**
+         * The meta object literal for the '<em><b>Argument List</b></em>' containment reference list feature.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @generated
+         */
+        EReference CALL_STATEMENT__ARGUMENT_LIST = eINSTANCE.getCallStatement_ArgumentList();
+
+        /**
+         * The meta object literal for the '<em><b>Procedure Ref</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @generated
+         */
+        EReference CALL_STATEMENT__PROCEDURE_REF = eINSTANCE.getCallStatement_ProcedureRef();
+
+        /**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.ProcedureReferenceImpl <em>Procedure Reference</em>}' class.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.ProcedureReferenceImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getProcedureReference()
+         * @generated
+         */
+        EClass PROCEDURE_REFERENCE = eINSTANCE.getProcedureReference();
+
+        /**
+         * The meta object literal for the '<em><b>Call Statement</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @generated
+         */
+        EReference PROCEDURE_REFERENCE__CALL_STATEMENT = eINSTANCE.getProcedureReference_CallStatement();
+
+        /**
+         * The meta object literal for the '<em><b>Procedure</b></em>' reference feature.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @generated
+         */
+        EReference PROCEDURE_REFERENCE__PROCEDURE = eINSTANCE.getProcedureReference_Procedure();
+
+        /**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.impl.TableQueryLateralImpl <em>Table Query Lateral</em>}' class.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.TableQueryLateralImpl
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getTableQueryLateral()
+         * @generated
+         */
+        EClass TABLE_QUERY_LATERAL = eINSTANCE.getTableQueryLateral();
+
+        /**
+         * The meta object literal for the '<em><b>Query</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @generated
+         */
+        EReference TABLE_QUERY_LATERAL__QUERY = eINSTANCE.getTableQueryLateral_Query();
+
+        /**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.SuperGroupType <em>Super Group Type</em>}' enum.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.SuperGroupType
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getSuperGroupType()
+         * @generated
+         */
+		EEnum SUPER_GROUP_TYPE = eINSTANCE.getSuperGroupType();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedType <em>Predicate Quantified Type</em>}' enum.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedType
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getPredicateQuantifiedType()
+         * @generated
+         */
+		EEnum PREDICATE_QUANTIFIED_TYPE = eINSTANCE.getPredicateQuantifiedType();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.PredicateComparisonOperator <em>Predicate Comparison Operator</em>}' enum.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.PredicateComparisonOperator
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getPredicateComparisonOperator()
+         * @generated
+         */
+		EEnum PREDICATE_COMPARISON_OPERATOR = eINSTANCE.getPredicateComparisonOperator();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.SearchConditionCombinedOperator <em>Search Condition Combined Operator</em>}' enum.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.SearchConditionCombinedOperator
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getSearchConditionCombinedOperator()
+         * @generated
+         */
+		EEnum SEARCH_CONDITION_COMBINED_OPERATOR = eINSTANCE.getSearchConditionCombinedOperator();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.TableJoinedOperator <em>Table Joined Operator</em>}' enum.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.TableJoinedOperator
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getTableJoinedOperator()
+         * @generated
+         */
+		EEnum TABLE_JOINED_OPERATOR = eINSTANCE.getTableJoinedOperator();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.QueryCombinedOperator <em>Query Combined Operator</em>}' enum.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.QueryCombinedOperator
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getQueryCombinedOperator()
+         * @generated
+         */
+		EEnum QUERY_COMBINED_OPERATOR = eINSTANCE.getQueryCombinedOperator();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator <em>Value Expression Unary Operator</em>}' enum.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getValueExpressionUnaryOperator()
+         * @generated
+         */
+		EEnum VALUE_EXPRESSION_UNARY_OPERATOR = eINSTANCE.getValueExpressionUnaryOperator();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombinedOperator <em>Value Expression Combined Operator</em>}' enum.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombinedOperator
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getValueExpressionCombinedOperator()
+         * @generated
+         */
+		EEnum VALUE_EXPRESSION_COMBINED_OPERATOR = eINSTANCE.getValueExpressionCombinedOperator();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDurationType <em>Value Expression Labeled Duration Type</em>}' enum.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDurationType
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getValueExpressionLabeledDurationType()
+         * @generated
+         */
+		EEnum VALUE_EXPRESSION_LABELED_DURATION_TYPE = eINSTANCE.getValueExpressionLabeledDurationType();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.NullOrderingType <em>Null Ordering Type</em>}' enum.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.NullOrderingType
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getNullOrderingType()
+         * @generated
+         */
+		EEnum NULL_ORDERING_TYPE = eINSTANCE.getNullOrderingType();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.OrderingSpecType <em>Ordering Spec Type</em>}' enum.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.OrderingSpecType
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getOrderingSpecType()
+         * @generated
+         */
+		EEnum ORDERING_SPEC_TYPE = eINSTANCE.getOrderingSpecType();
+
+        /**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.query.UpdatabilityType <em>Updatability Type</em>}' enum.
+         * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.query.UpdatabilityType
+         * @see org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl#getUpdatabilityType()
+         * @generated
+         */
+        EEnum UPDATABILITY_TYPE = eINSTANCE.getUpdatabilityType();
+
+	}
+
+} //SQLQueryModelPackage
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/SQLQueryObject.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/SQLQueryObject.java
new file mode 100644
index 0000000..5a177e2
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/SQLQueryObject.java
@@ -0,0 +1,45 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SQLQueryObject.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+import org.eclipse.datatools.modelbase.sql.query.util.SQLQuerySourceInfo;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Object</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getSQLQueryObject()
+ * @model abstract="true"
+ * @generated
+ */
+public interface SQLQueryObject extends SQLObject{
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @model kind="operation"
+     * @generated
+     */
+    String getSQL();
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @model
+     * @generated
+     */
+  void setSQL(String sqlText);
+
+    /** Returns the associated {@link SQLQuerySourceInfo} */
+    SQLQuerySourceInfo getSourceInfo(); 
+    
+    /** Sets the {@link SQLQuerySourceInfo} */
+    void setSourceInfo(SQLQuerySourceInfo sourceInfo); 
+    
+} // SQLQueryObject
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/SearchConditionCombined.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/SearchConditionCombined.java
new file mode 100644
index 0000000..7c9586d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/SearchConditionCombined.java
@@ -0,0 +1,114 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SearchConditionCombined.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Search Condition Combined</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined#getCombinedOperator <em>Combined Operator</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined#getLeftCondition <em>Left Condition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined#getRightCondition <em>Right Condition</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getSearchConditionCombined()
+ * @model
+ * @generated
+ */
+public interface SearchConditionCombined extends QuerySearchCondition{
+	/**
+     * Returns the value of the '<em><b>Combined Operator</b></em>' attribute.
+     * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.query.SearchConditionCombinedOperator}.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Combined Operator</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Combined Operator</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.query.SearchConditionCombinedOperator
+     * @see #setCombinedOperator(SearchConditionCombinedOperator)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getSearchConditionCombined_CombinedOperator()
+     * @model
+     * @generated
+     */
+    SearchConditionCombinedOperator getCombinedOperator();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined#getCombinedOperator <em>Combined Operator</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Combined Operator</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.query.SearchConditionCombinedOperator
+     * @see #getCombinedOperator()
+     * @generated
+     */
+    void setCombinedOperator(SearchConditionCombinedOperator value);
+
+	/**
+     * Returns the value of the '<em><b>Left Condition</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getCombinedLeft <em>Combined Left</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Left Condition</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Left Condition</em>' containment reference.
+     * @see #setLeftCondition(QuerySearchCondition)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getSearchConditionCombined_LeftCondition()
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getCombinedLeft
+     * @model opposite="combinedLeft" containment="true" required="true"
+     * @generated
+     */
+    QuerySearchCondition getLeftCondition();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined#getLeftCondition <em>Left Condition</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Left Condition</em>' containment reference.
+     * @see #getLeftCondition()
+     * @generated
+     */
+    void setLeftCondition(QuerySearchCondition value);
+
+	/**
+     * Returns the value of the '<em><b>Right Condition</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getCombinedRight <em>Combined Right</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Right Condition</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Right Condition</em>' containment reference.
+     * @see #setRightCondition(QuerySearchCondition)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getSearchConditionCombined_RightCondition()
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getCombinedRight
+     * @model opposite="combinedRight" containment="true" required="true"
+     * @generated
+     */
+    QuerySearchCondition getRightCondition();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined#getRightCondition <em>Right Condition</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Right Condition</em>' containment reference.
+     * @see #getRightCondition()
+     * @generated
+     */
+    void setRightCondition(QuerySearchCondition value);
+
+} // SQLSearchConditionCombined
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/SearchConditionCombinedOperator.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/SearchConditionCombinedOperator.java
new file mode 100644
index 0000000..a985081
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/SearchConditionCombinedOperator.java
@@ -0,0 +1,151 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SearchConditionCombinedOperator.java,v 1.4 2007/02/08 17:00:24 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>SQL Search Condition Combined Operator</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getSearchConditionCombinedOperator()
+ * @model
+ * @generated
+ */
+public final class SearchConditionCombinedOperator extends AbstractEnumerator {
+	/**
+     * The '<em><b>AND</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #AND_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int AND = 0;
+
+	/**
+     * The '<em><b>OR</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #OR_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int OR = 1;
+
+	/**
+     * The '<em><b>AND</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>AND</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #AND
+     * @generated
+     * @ordered
+     */
+    public static final SearchConditionCombinedOperator AND_LITERAL = new SearchConditionCombinedOperator(AND, "AND", "AND");
+
+	/**
+     * The '<em><b>OR</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>OR</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #OR
+     * @generated
+     * @ordered
+     */
+    public static final SearchConditionCombinedOperator OR_LITERAL = new SearchConditionCombinedOperator(OR, "OR", "OR");
+
+	/**
+     * An array of all the '<em><b>Search Condition Combined Operator</b></em>' enumerators.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private static final SearchConditionCombinedOperator[] VALUES_ARRAY =
+		new SearchConditionCombinedOperator[] {
+            AND_LITERAL,
+            OR_LITERAL,
+        };
+
+	/**
+     * A public read-only list of all the '<em><b>Search Condition Combined Operator</b></em>' enumerators.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+     * Returns the '<em><b>Search Condition Combined Operator</b></em>' literal with the specified literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static SearchConditionCombinedOperator get(String literal) {
+        for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+            SearchConditionCombinedOperator result = VALUES_ARRAY[i];
+            if (result.toString().equals(literal)) {
+                return result;
+            }
+        }
+        return null;
+    }
+
+	/**
+     * Returns the '<em><b>Search Condition Combined Operator</b></em>' literal with the specified name.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public static SearchConditionCombinedOperator getByName(String name) {
+        for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+            SearchConditionCombinedOperator result = VALUES_ARRAY[i];
+            if (result.getName().equals(name)) {
+                return result;
+            }
+        }
+        return null;
+    }
+
+	/**
+     * Returns the '<em><b>Search Condition Combined Operator</b></em>' literal with the specified integer value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static SearchConditionCombinedOperator get(int value) {
+        switch (value) {
+            case AND: return AND_LITERAL;
+            case OR: return OR_LITERAL;
+        }
+        return null;
+    }
+
+	/**
+     * Only this class can construct instances.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private SearchConditionCombinedOperator(int value, String name, String literal) {
+        super(value, name, literal);
+    }
+
+} //SQLSearchConditionCombinedOperator
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/SearchConditionNested.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/SearchConditionNested.java
new file mode 100644
index 0000000..b7ce6de
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/SearchConditionNested.java
@@ -0,0 +1,55 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SearchConditionNested.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Search Condition Nested</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.SearchConditionNested#getNestedCondition <em>Nested Condition</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getSearchConditionNested()
+ * @model
+ * @generated
+ */
+public interface SearchConditionNested extends QuerySearchCondition{
+	/**
+     * Returns the value of the '<em><b>Nested Condition</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getNest <em>Nest</em>}'.
+     * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Nested Condition</em>' containment reference isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+     * @return the value of the '<em>Nested Condition</em>' containment reference.
+     * @see #setNestedCondition(QuerySearchCondition)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getSearchConditionNested_NestedCondition()
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getNest
+     * @model opposite="nest" containment="true" required="true"
+     * @generated
+     */
+  QuerySearchCondition getNestedCondition();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.SearchConditionNested#getNestedCondition <em>Nested Condition</em>}' containment reference.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Nested Condition</em>' containment reference.
+     * @see #getNestedCondition()
+     * @generated
+     */
+  void setNestedCondition(QuerySearchCondition value);
+
+} // SQLSearchConditionNested
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/SuperGroup.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/SuperGroup.java
new file mode 100644
index 0000000..d0bbee4
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/SuperGroup.java
@@ -0,0 +1,76 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SuperGroup.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Super Group</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.SuperGroup#getSuperGroupType <em>Super Group Type</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.SuperGroup#getSuperGroupElementList <em>Super Group Element List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getSuperGroup()
+ * @model
+ * @generated
+ */
+public interface SuperGroup extends Grouping{
+	/**
+     * Returns the value of the '<em><b>Super Group Type</b></em>' attribute.
+     * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.query.SuperGroupType}.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Super Group Type</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Super Group Type</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.query.SuperGroupType
+     * @see #setSuperGroupType(SuperGroupType)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getSuperGroup_SuperGroupType()
+     * @model
+     * @generated
+     */
+    SuperGroupType getSuperGroupType();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.SuperGroup#getSuperGroupType <em>Super Group Type</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Super Group Type</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.query.SuperGroupType
+     * @see #getSuperGroupType()
+     * @generated
+     */
+    void setSuperGroupType(SuperGroupType value);
+
+	/**
+     * Returns the value of the '<em><b>Super Group Element List</b></em>' containment reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.query.SuperGroupElement}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.SuperGroupElement#getSuperGroup <em>Super Group</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Super Group Element List</em>' containment reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Super Group Element List</em>' containment reference list.
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getSuperGroup_SuperGroupElementList()
+     * @see org.eclipse.datatools.modelbase.sql.query.SuperGroupElement#getSuperGroup
+     * @model type="org.eclipse.datatools.modelbase.sql.query.SuperGroupElement" opposite="superGroup" containment="true"
+     * @generated
+     */
+    EList getSuperGroupElementList();
+
+} // SQLSuperGroup
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/SuperGroupElement.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/SuperGroupElement.java
new file mode 100644
index 0000000..7eece32
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/SuperGroupElement.java
@@ -0,0 +1,55 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SuperGroupElement.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Super Group Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.SuperGroupElement#getSuperGroup <em>Super Group</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getSuperGroupElement()
+ * @model abstract="true"
+ * @generated
+ */
+public interface SuperGroupElement extends SQLQueryObject{
+	/**
+     * Returns the value of the '<em><b>Super Group</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.SuperGroup#getSuperGroupElementList <em>Super Group Element List</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Super Group</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Super Group</em>' container reference.
+     * @see #setSuperGroup(SuperGroup)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getSuperGroupElement_SuperGroup()
+     * @see org.eclipse.datatools.modelbase.sql.query.SuperGroup#getSuperGroupElementList
+     * @model opposite="superGroupElementList"
+     * @generated
+     */
+    SuperGroup getSuperGroup();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.SuperGroupElement#getSuperGroup <em>Super Group</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Super Group</em>' container reference.
+     * @see #getSuperGroup()
+     * @generated
+     */
+    void setSuperGroup(SuperGroup value);
+
+} // SQLSuperGroupElement
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/SuperGroupElementExpression.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/SuperGroupElementExpression.java
new file mode 100644
index 0000000..ed3b4a4
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/SuperGroupElementExpression.java
@@ -0,0 +1,84 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SuperGroupElementExpression.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Super Group Element Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.SuperGroupElementExpression#getSuperGroupElementSublist <em>Super Group Element Sublist</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.SuperGroupElementExpression#getGroupingExpr <em>Grouping Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getSuperGroupElementExpression()
+ * @model
+ * @generated
+ */
+public interface SuperGroupElementExpression extends SuperGroupElement{
+	/**
+     * Returns the value of the '<em><b>Super Group Element Sublist</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.SuperGroupElementSublist#getSuperGroupElementExprList <em>Super Group Element Expr List</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Super Group Element Sublist</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Super Group Element Sublist</em>' container reference.
+     * @see #setSuperGroupElementSublist(SuperGroupElementSublist)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getSuperGroupElementExpression_SuperGroupElementSublist()
+     * @see org.eclipse.datatools.modelbase.sql.query.SuperGroupElementSublist#getSuperGroupElementExprList
+     * @model opposite="superGroupElementExprList"
+     * @generated
+     */
+    SuperGroupElementSublist getSuperGroupElementSublist();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.SuperGroupElementExpression#getSuperGroupElementSublist <em>Super Group Element Sublist</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Super Group Element Sublist</em>' container reference.
+     * @see #getSuperGroupElementSublist()
+     * @generated
+     */
+    void setSuperGroupElementSublist(SuperGroupElementSublist value);
+
+	/**
+     * Returns the value of the '<em><b>Grouping Expr</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.GroupingExpression#getSuperGroupElementExpr <em>Super Group Element Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Grouping Expr</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Grouping Expr</em>' containment reference.
+     * @see #setGroupingExpr(GroupingExpression)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getSuperGroupElementExpression_GroupingExpr()
+     * @see org.eclipse.datatools.modelbase.sql.query.GroupingExpression#getSuperGroupElementExpr
+     * @model opposite="superGroupElementExpr" containment="true" required="true"
+     * @generated
+     */
+    GroupingExpression getGroupingExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.SuperGroupElementExpression#getGroupingExpr <em>Grouping Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Grouping Expr</em>' containment reference.
+     * @see #getGroupingExpr()
+     * @generated
+     */
+    void setGroupingExpr(GroupingExpression value);
+
+} // SQLSuperGroupElementExpression
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/SuperGroupElementSublist.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/SuperGroupElementSublist.java
new file mode 100644
index 0000000..ec2cd20
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/SuperGroupElementSublist.java
@@ -0,0 +1,46 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SuperGroupElementSublist.java,v 1.2 2005/12/22 22:18:50 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Super Group Element Sublist</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.SuperGroupElementSublist#getSuperGroupElementExprList <em>Super Group Element Expr List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getSuperGroupElementSublist()
+ * @model
+ * @generated
+ */
+public interface SuperGroupElementSublist extends SuperGroupElement{
+	/**
+     * Returns the value of the '<em><b>Super Group Element Expr List</b></em>' containment reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.query.SuperGroupElementExpression}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.SuperGroupElementExpression#getSuperGroupElementSublist <em>Super Group Element Sublist</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Super Group Element Expr List</em>' containment reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Super Group Element Expr List</em>' containment reference list.
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getSuperGroupElementSublist_SuperGroupElementExprList()
+     * @see org.eclipse.datatools.modelbase.sql.query.SuperGroupElementExpression#getSuperGroupElementSublist
+     * @model type="org.eclipse.datatools.modelbase.sql.query.SuperGroupElementExpression" opposite="superGroupElementSublist" containment="true" required="true"
+     * @generated
+     */
+    EList getSuperGroupElementExprList();
+
+} // SQLSuperGroupElementSublist
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/SuperGroupType.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/SuperGroupType.java
new file mode 100644
index 0000000..1293988
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/SuperGroupType.java
@@ -0,0 +1,178 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SuperGroupType.java,v 1.4 2007/02/08 17:00:24 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>SQL Super Group Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getSuperGroupType()
+ * @model
+ * @generated
+ */
+public final class SuperGroupType extends AbstractEnumerator {
+	/**
+     * The '<em><b>CUBE</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #CUBE_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int CUBE = 0;
+
+	/**
+     * The '<em><b>GRANDTOTAL</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #GRANDTOTAL_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int GRANDTOTAL = 1;
+
+	/**
+     * The '<em><b>ROLLUP</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #ROLLUP_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int ROLLUP = 2;
+
+	/**
+     * The '<em><b>CUBE</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>CUBE</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #CUBE
+     * @generated
+     * @ordered
+     */
+    public static final SuperGroupType CUBE_LITERAL = new SuperGroupType(CUBE, "CUBE", "CUBE");
+
+	/**
+     * The '<em><b>GRANDTOTAL</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>GRANDTOTAL</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #GRANDTOTAL
+     * @generated
+     * @ordered
+     */
+    public static final SuperGroupType GRANDTOTAL_LITERAL = new SuperGroupType(GRANDTOTAL, "GRANDTOTAL", "GRANDTOTAL");
+
+	/**
+     * The '<em><b>ROLLUP</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>ROLLUP</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #ROLLUP
+     * @generated
+     * @ordered
+     */
+    public static final SuperGroupType ROLLUP_LITERAL = new SuperGroupType(ROLLUP, "ROLLUP", "ROLLUP");
+
+	/**
+     * An array of all the '<em><b>Super Group Type</b></em>' enumerators.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private static final SuperGroupType[] VALUES_ARRAY =
+		new SuperGroupType[] {
+            CUBE_LITERAL,
+            GRANDTOTAL_LITERAL,
+            ROLLUP_LITERAL,
+        };
+
+	/**
+     * A public read-only list of all the '<em><b>Super Group Type</b></em>' enumerators.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+     * Returns the '<em><b>Super Group Type</b></em>' literal with the specified literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static SuperGroupType get(String literal) {
+        for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+            SuperGroupType result = VALUES_ARRAY[i];
+            if (result.toString().equals(literal)) {
+                return result;
+            }
+        }
+        return null;
+    }
+
+	/**
+     * Returns the '<em><b>Super Group Type</b></em>' literal with the specified name.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public static SuperGroupType getByName(String name) {
+        for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+            SuperGroupType result = VALUES_ARRAY[i];
+            if (result.getName().equals(name)) {
+                return result;
+            }
+        }
+        return null;
+    }
+
+	/**
+     * Returns the '<em><b>Super Group Type</b></em>' literal with the specified integer value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static SuperGroupType get(int value) {
+        switch (value) {
+            case CUBE: return CUBE_LITERAL;
+            case GRANDTOTAL: return GRANDTOTAL_LITERAL;
+            case ROLLUP: return ROLLUP_LITERAL;
+        }
+        return null;
+    }
+
+	/**
+     * Only this class can construct instances.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private SuperGroupType(int value, String name, String literal) {
+        super(value, name, literal);
+    }
+
+} //SQLSuperGroupType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/TableCorrelation.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/TableCorrelation.java
new file mode 100644
index 0000000..8de9237
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/TableCorrelation.java
@@ -0,0 +1,75 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: TableCorrelation.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Table Correlation</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.TableCorrelation#getTableExpr <em>Table Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.TableCorrelation#getColumnNameList <em>Column Name List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getTableCorrelation()
+ * @model
+ * @generated
+ */
+public interface TableCorrelation extends SQLQueryObject{
+	/**
+     * Returns the value of the '<em><b>Table Expr</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.TableExpression#getTableCorrelation <em>Table Correlation</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Table Expr</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Table Expr</em>' container reference.
+     * @see #setTableExpr(TableExpression)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getTableCorrelation_TableExpr()
+     * @see org.eclipse.datatools.modelbase.sql.query.TableExpression#getTableCorrelation
+     * @model opposite="tableCorrelation"
+     * @generated
+     */
+    TableExpression getTableExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.TableCorrelation#getTableExpr <em>Table Expr</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Table Expr</em>' container reference.
+     * @see #getTableExpr()
+     * @generated
+     */
+    void setTableExpr(TableExpression value);
+
+	/**
+     * Returns the value of the '<em><b>Column Name List</b></em>' containment reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.query.ColumnName}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.ColumnName#getTableCorrelation <em>Table Correlation</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Column Name List</em>' containment reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Column Name List</em>' containment reference list.
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getTableCorrelation_ColumnNameList()
+     * @see org.eclipse.datatools.modelbase.sql.query.ColumnName#getTableCorrelation
+     * @model type="org.eclipse.datatools.modelbase.sql.query.ColumnName" opposite="tableCorrelation" containment="true"
+     * @generated
+     */
+    EList getColumnNameList();
+
+} // SQLTableCorrelation
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/TableExpression.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/TableExpression.java
new file mode 100644
index 0000000..767e2f1
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/TableExpression.java
@@ -0,0 +1,142 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: TableExpression.java,v 1.3 2008/01/31 02:57:16 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Table Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.TableExpression#getColumnList <em>Column List</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.TableExpression#getTableCorrelation <em>Table Correlation</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.TableExpression#getResultTableAllColumns <em>Result Table All Columns</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.TableExpression#getValueExprColumns <em>Value Expr Columns</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.TableExpression#getMergeTargetTable <em>Merge Target Table</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getTableExpression()
+ * @model abstract="true"
+ * @generated
+ */
+public interface TableExpression extends TableReference{
+	/**
+     * Returns the value of the '<em><b>Column List</b></em>' containment reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn#getParentTableExpr <em>Parent Table Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Column List</em>' containment reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Column List</em>' containment reference list.
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getTableExpression_ColumnList()
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn#getParentTableExpr
+     * @model type="org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn" opposite="parentTableExpr" containment="true"
+     * @generated
+     */
+    EList getColumnList();
+
+	/**
+     * Returns the value of the '<em><b>Table Correlation</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.TableCorrelation#getTableExpr <em>Table Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Table Correlation</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Table Correlation</em>' containment reference.
+     * @see #setTableCorrelation(TableCorrelation)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getTableExpression_TableCorrelation()
+     * @see org.eclipse.datatools.modelbase.sql.query.TableCorrelation#getTableExpr
+     * @model opposite="tableExpr" containment="true"
+     * @generated
+     */
+    TableCorrelation getTableCorrelation();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.TableExpression#getTableCorrelation <em>Table Correlation</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Table Correlation</em>' containment reference.
+     * @see #getTableCorrelation()
+     * @generated
+     */
+    void setTableCorrelation(TableCorrelation value);
+
+	/**
+     * Returns the value of the '<em><b>Result Table All Columns</b></em>' reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.query.ResultTableAllColumns}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.ResultTableAllColumns#getTableExpr <em>Table Expr</em>}'.
+     * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Result Table All Columns</em>' reference list isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+     * @return the value of the '<em>Result Table All Columns</em>' reference list.
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getTableExpression_ResultTableAllColumns()
+     * @see org.eclipse.datatools.modelbase.sql.query.ResultTableAllColumns#getTableExpr
+     * @model type="org.eclipse.datatools.modelbase.sql.query.ResultTableAllColumns" opposite="tableExpr"
+     * @generated
+     */
+  EList getResultTableAllColumns();
+
+	/**
+     * Returns the value of the '<em><b>Value Expr Columns</b></em>' reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn#getTableExpr <em>Table Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Expr Columns</em>' reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Expr Columns</em>' reference list.
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getTableExpression_ValueExprColumns()
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn#getTableExpr
+     * @model type="org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn" opposite="tableExpr"
+     * @generated
+     */
+    EList getValueExprColumns();
+
+    /**
+     * Returns the value of the '<em><b>Merge Target Table</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.MergeTargetTable#getTableExpr <em>Table Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Merge Target Table</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Merge Target Table</em>' container reference.
+     * @see #setMergeTargetTable(MergeTargetTable)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getTableExpression_MergeTargetTable()
+     * @see org.eclipse.datatools.modelbase.sql.query.MergeTargetTable#getTableExpr
+     * @model opposite="tableExpr"
+     * @generated
+     */
+    MergeTargetTable getMergeTargetTable();
+
+    /**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.TableExpression#getMergeTargetTable <em>Merge Target Table</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Merge Target Table</em>' container reference.
+     * @see #getMergeTargetTable()
+     * @generated
+     */
+    void setMergeTargetTable(MergeTargetTable value);
+
+} // SQLTableExpression
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/TableFunction.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/TableFunction.java
new file mode 100644
index 0000000..73637ca
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/TableFunction.java
@@ -0,0 +1,75 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: TableFunction.java,v 1.2 2005/12/22 22:18:50 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+import org.eclipse.datatools.modelbase.sql.routines.Function;
+import org.eclipse.emf.common.util.EList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Table Function</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.TableFunction#getFunction <em>Function</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.TableFunction#getParameterList <em>Parameter List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getTableFunction()
+ * @model
+ * @generated
+ */
+public interface TableFunction extends TableExpression{
+
+    /**
+     * Returns the value of the '<em><b>Function</b></em>' reference.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Function</em>' reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Function</em>' reference.
+     * @see #setFunction(Function)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getTableFunction_Function()
+     * @model required="true"
+     * @generated
+     */
+    Function getFunction();
+
+    /**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.TableFunction#getFunction <em>Function</em>}' reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Function</em>' reference.
+     * @see #getFunction()
+     * @generated
+     */
+    void setFunction(Function value);
+
+    /**
+     * Returns the value of the '<em><b>Parameter List</b></em>' containment reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getTableFunction <em>Table Function</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Parameter List</em>' containment reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Parameter List</em>' containment reference list.
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getTableFunction_ParameterList()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getTableFunction
+     * @model type="org.eclipse.datatools.modelbase.sql.query.QueryValueExpression" opposite="tableFunction" containment="true"
+     * @generated
+     */
+    EList getParameterList();
+} // SQLTableFunction
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/TableInDatabase.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/TableInDatabase.java
new file mode 100644
index 0000000..f9320a8
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/TableInDatabase.java
@@ -0,0 +1,162 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: TableInDatabase.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQLRDB Table</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.TableInDatabase#getUpdateStatement <em>Update Statement</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.TableInDatabase#getDeleteStatement <em>Delete Statement</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.TableInDatabase#getInsertStatement <em>Insert Statement</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.TableInDatabase#getDatabaseTable <em>Database Table</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.TableInDatabase#getDerivedColumnList <em>Derived Column List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getTableInDatabase()
+ * @model
+ * @generated
+ */
+public interface TableInDatabase extends TableExpression{
+	/**
+     * Returns the value of the '<em><b>Update Statement</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement#getTargetTable <em>Target Table</em>}'.
+     * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Update Statement</em>' container reference isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+     * @return the value of the '<em>Update Statement</em>' container reference.
+     * @see #setUpdateStatement(QueryUpdateStatement)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getTableInDatabase_UpdateStatement()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement#getTargetTable
+     * @model opposite="targetTable"
+     * @generated
+     */
+  QueryUpdateStatement getUpdateStatement();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.TableInDatabase#getUpdateStatement <em>Update Statement</em>}' container reference.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Update Statement</em>' container reference.
+     * @see #getUpdateStatement()
+     * @generated
+     */
+  void setUpdateStatement(QueryUpdateStatement value);
+
+	/**
+     * Returns the value of the '<em><b>Delete Statement</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement#getTargetTable <em>Target Table</em>}'.
+     * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Delete Statement</em>' container reference isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+     * @return the value of the '<em>Delete Statement</em>' container reference.
+     * @see #setDeleteStatement(QueryDeleteStatement)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getTableInDatabase_DeleteStatement()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement#getTargetTable
+     * @model opposite="targetTable"
+     * @generated
+     */
+  QueryDeleteStatement getDeleteStatement();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.TableInDatabase#getDeleteStatement <em>Delete Statement</em>}' container reference.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Delete Statement</em>' container reference.
+     * @see #getDeleteStatement()
+     * @generated
+     */
+  void setDeleteStatement(QueryDeleteStatement value);
+
+	/**
+     * Returns the value of the '<em><b>Insert Statement</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryInsertStatement#getTargetTable <em>Target Table</em>}'.
+     * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Insert Statement</em>' container reference isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+     * @return the value of the '<em>Insert Statement</em>' container reference.
+     * @see #setInsertStatement(QueryInsertStatement)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getTableInDatabase_InsertStatement()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryInsertStatement#getTargetTable
+     * @model opposite="targetTable"
+     * @generated
+     */
+  QueryInsertStatement getInsertStatement();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.TableInDatabase#getInsertStatement <em>Insert Statement</em>}' container reference.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Insert Statement</em>' container reference.
+     * @see #getInsertStatement()
+     * @generated
+     */
+  void setInsertStatement(QueryInsertStatement value);
+
+	/**
+     * Returns the value of the '<em><b>Database Table</b></em>' reference.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Database Table</em>' reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Database Table</em>' reference.
+     * @see #setDatabaseTable(Table)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getTableInDatabase_DatabaseTable()
+     * @model required="true"
+     * @generated
+     */
+    Table getDatabaseTable();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.TableInDatabase#getDatabaseTable <em>Database Table</em>}' reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Database Table</em>' reference.
+     * @see #getDatabaseTable()
+     * @generated
+     */
+    void setDatabaseTable(Table value);
+
+	/**
+     * Returns the value of the '<em><b>Derived Column List</b></em>' reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn#getTableInDatabase <em>Table In Database</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * <!-- begin-model-doc -->
+     * Gets the list of columns used anywhere in the statement that are derived from this table.
+     * <!-- end-model-doc -->
+     * @return the value of the '<em>Derived Column List</em>' reference list.
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getTableInDatabase_DerivedColumnList()
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn#getTableInDatabase
+     * @model type="org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn" opposite="tableInDatabase"
+     * @generated
+     */
+    EList getDerivedColumnList();
+
+} // SQLRDBTable
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/TableJoined.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/TableJoined.java
new file mode 100644
index 0000000..8cf6ad1
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/TableJoined.java
@@ -0,0 +1,143 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: TableJoined.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Table Joined</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.TableJoined#getJoinOperator <em>Join Operator</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.TableJoined#getJoinCondition <em>Join Condition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.TableJoined#getTableRefRight <em>Table Ref Right</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.TableJoined#getTableRefLeft <em>Table Ref Left</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getTableJoined()
+ * @model
+ * @generated
+ */
+public interface TableJoined extends TableReference{
+	/**
+     * Returns the value of the '<em><b>Join Operator</b></em>' attribute.
+     * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.query.TableJoinedOperator}.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Join Operator</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Join Operator</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.query.TableJoinedOperator
+     * @see #setJoinOperator(TableJoinedOperator)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getTableJoined_JoinOperator()
+     * @model
+     * @generated
+     */
+    TableJoinedOperator getJoinOperator();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.TableJoined#getJoinOperator <em>Join Operator</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Join Operator</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.query.TableJoinedOperator
+     * @see #getJoinOperator()
+     * @generated
+     */
+    void setJoinOperator(TableJoinedOperator value);
+
+	/**
+     * Returns the value of the '<em><b>Join Condition</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getTableJoined <em>Table Joined</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Join Condition</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Join Condition</em>' containment reference.
+     * @see #setJoinCondition(QuerySearchCondition)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getTableJoined_JoinCondition()
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getTableJoined
+     * @model opposite="tableJoined" containment="true"
+     * @generated
+     */
+    QuerySearchCondition getJoinCondition();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.TableJoined#getJoinCondition <em>Join Condition</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Join Condition</em>' containment reference.
+     * @see #getJoinCondition()
+     * @generated
+     */
+    void setJoinCondition(QuerySearchCondition value);
+
+	/**
+     * Returns the value of the '<em><b>Table Ref Right</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.TableReference#getTableJoinedRight <em>Table Joined Right</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Table Ref Right</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Table Ref Right</em>' containment reference.
+     * @see #setTableRefRight(TableReference)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getTableJoined_TableRefRight()
+     * @see org.eclipse.datatools.modelbase.sql.query.TableReference#getTableJoinedRight
+     * @model opposite="tableJoinedRight" containment="true" required="true"
+     * @generated
+     */
+    TableReference getTableRefRight();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.TableJoined#getTableRefRight <em>Table Ref Right</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Table Ref Right</em>' containment reference.
+     * @see #getTableRefRight()
+     * @generated
+     */
+    void setTableRefRight(TableReference value);
+
+	/**
+     * Returns the value of the '<em><b>Table Ref Left</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.TableReference#getTableJoinedLeft <em>Table Joined Left</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Table Ref Left</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Table Ref Left</em>' containment reference.
+     * @see #setTableRefLeft(TableReference)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getTableJoined_TableRefLeft()
+     * @see org.eclipse.datatools.modelbase.sql.query.TableReference#getTableJoinedLeft
+     * @model opposite="tableJoinedLeft" containment="true" required="true"
+     * @generated
+     */
+    TableReference getTableRefLeft();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.TableJoined#getTableRefLeft <em>Table Ref Left</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Table Ref Left</em>' containment reference.
+     * @see #getTableRefLeft()
+     * @generated
+     */
+    void setTableRefLeft(TableReference value);
+
+} // SQLTableJoined
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/TableJoinedOperator.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/TableJoinedOperator.java
new file mode 100644
index 0000000..cff1f46
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/TableJoinedOperator.java
@@ -0,0 +1,232 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: TableJoinedOperator.java,v 1.4 2007/02/08 17:00:24 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>SQL Table Joined Operator</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getTableJoinedOperator()
+ * @model
+ * @generated
+ */
+public final class TableJoinedOperator extends AbstractEnumerator {
+	/**
+     * The '<em><b>DEFAULT INNER</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #DEFAULT_INNER_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int DEFAULT_INNER = 0;
+
+	/**
+     * The '<em><b>EXPLICIT INNER</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #EXPLICIT_INNER_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int EXPLICIT_INNER = 1;
+
+	/**
+     * The '<em><b>LEFT OUTER</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #LEFT_OUTER_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int LEFT_OUTER = 2;
+
+	/**
+     * The '<em><b>RIGHT OUTER</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #RIGHT_OUTER_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int RIGHT_OUTER = 3;
+
+	/**
+     * The '<em><b>FULL OUTER</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #FULL_OUTER_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int FULL_OUTER = 4;
+
+	/**
+     * The '<em><b>DEFAULT INNER</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>DEFAULT INNER</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #DEFAULT_INNER
+     * @generated
+     * @ordered
+     */
+    public static final TableJoinedOperator DEFAULT_INNER_LITERAL = new TableJoinedOperator(DEFAULT_INNER, "DEFAULT_INNER", "DEFAULT_INNER");
+
+	/**
+     * The '<em><b>EXPLICIT INNER</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>EXPLICIT INNER</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #EXPLICIT_INNER
+     * @generated
+     * @ordered
+     */
+    public static final TableJoinedOperator EXPLICIT_INNER_LITERAL = new TableJoinedOperator(EXPLICIT_INNER, "EXPLICIT_INNER", "EXPLICIT_INNER");
+
+	/**
+     * The '<em><b>LEFT OUTER</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>LEFT OUTER</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #LEFT_OUTER
+     * @generated
+     * @ordered
+     */
+    public static final TableJoinedOperator LEFT_OUTER_LITERAL = new TableJoinedOperator(LEFT_OUTER, "LEFT_OUTER", "LEFT_OUTER");
+
+	/**
+     * The '<em><b>RIGHT OUTER</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>RIGHT OUTER</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #RIGHT_OUTER
+     * @generated
+     * @ordered
+     */
+    public static final TableJoinedOperator RIGHT_OUTER_LITERAL = new TableJoinedOperator(RIGHT_OUTER, "RIGHT_OUTER", "RIGHT_OUTER");
+
+	/**
+     * The '<em><b>FULL OUTER</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>FULL OUTER</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #FULL_OUTER
+     * @generated
+     * @ordered
+     */
+    public static final TableJoinedOperator FULL_OUTER_LITERAL = new TableJoinedOperator(FULL_OUTER, "FULL_OUTER", "FULL_OUTER");
+
+	/**
+     * An array of all the '<em><b>Table Joined Operator</b></em>' enumerators.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private static final TableJoinedOperator[] VALUES_ARRAY =
+		new TableJoinedOperator[] {
+            DEFAULT_INNER_LITERAL,
+            EXPLICIT_INNER_LITERAL,
+            LEFT_OUTER_LITERAL,
+            RIGHT_OUTER_LITERAL,
+            FULL_OUTER_LITERAL,
+        };
+
+	/**
+     * A public read-only list of all the '<em><b>Table Joined Operator</b></em>' enumerators.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+     * Returns the '<em><b>Table Joined Operator</b></em>' literal with the specified literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static TableJoinedOperator get(String literal) {
+        for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+            TableJoinedOperator result = VALUES_ARRAY[i];
+            if (result.toString().equals(literal)) {
+                return result;
+            }
+        }
+        return null;
+    }
+
+	/**
+     * Returns the '<em><b>Table Joined Operator</b></em>' literal with the specified name.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public static TableJoinedOperator getByName(String name) {
+        for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+            TableJoinedOperator result = VALUES_ARRAY[i];
+            if (result.getName().equals(name)) {
+                return result;
+            }
+        }
+        return null;
+    }
+
+	/**
+     * Returns the '<em><b>Table Joined Operator</b></em>' literal with the specified integer value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static TableJoinedOperator get(int value) {
+        switch (value) {
+            case DEFAULT_INNER: return DEFAULT_INNER_LITERAL;
+            case EXPLICIT_INNER: return EXPLICIT_INNER_LITERAL;
+            case LEFT_OUTER: return LEFT_OUTER_LITERAL;
+            case RIGHT_OUTER: return RIGHT_OUTER_LITERAL;
+            case FULL_OUTER: return FULL_OUTER_LITERAL;
+        }
+        return null;
+    }
+
+	/**
+     * Only this class can construct instances.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private TableJoinedOperator(int value, String name, String literal) {
+        super(value, name, literal);
+    }
+
+} //SQLTableJoinedOperator
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/TableNested.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/TableNested.java
new file mode 100644
index 0000000..d7f775e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/TableNested.java
@@ -0,0 +1,55 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: TableNested.java,v 1.2 2005/12/22 22:18:50 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Table Nested</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.TableNested#getNestedTableRef <em>Nested Table Ref</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getTableNested()
+ * @model
+ * @generated
+ */
+public interface TableNested extends TableReference{
+	/**
+     * Returns the value of the '<em><b>Nested Table Ref</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.TableReference#getNest <em>Nest</em>}'.
+     * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Nested Table Ref</em>' containment reference isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+     * @return the value of the '<em>Nested Table Ref</em>' containment reference.
+     * @see #setNestedTableRef(TableReference)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getTableNested_NestedTableRef()
+     * @see org.eclipse.datatools.modelbase.sql.query.TableReference#getNest
+     * @model opposite="nest" containment="true" required="true"
+     * @generated
+     */
+  TableReference getNestedTableRef();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.TableNested#getNestedTableRef <em>Nested Table Ref</em>}' containment reference.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Nested Table Ref</em>' containment reference.
+     * @see #getNestedTableRef()
+     * @generated
+     */
+  void setNestedTableRef(TableReference value);
+
+} // SQLTableNested
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/TableQueryLateral.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/TableQueryLateral.java
new file mode 100644
index 0000000..7eb6e7e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/TableQueryLateral.java
@@ -0,0 +1,67 @@
+/**

+ * <copyright>

+ * </copyright>

+ *

+ * $Id$

+ */

+package org.eclipse.datatools.modelbase.sql.query;

+

+

+/**

+ * <!-- begin-user-doc -->

+ * A representation of the model object '<em><b>Table Query Lateral</b></em>'.

+ * <!-- end-user-doc -->

+ *

+ * <!-- begin-model-doc -->

+ * A "lateral" table query is a query that appears in the FROM clause.  However it is semantically different from a regular FROM clause query in that the lateral table query can itself contain references to other tables defined before (that is, to the left of it) in the same FROM clause.  Regular FROM clause queries can only refer to tables defined at a higher level in the statement.  In ISO SQL a lateral table query expression is prefixed by the keyword LATERAL.  (The DB2 SQL dialects prefix the lateral query table with the keyword TABLE.)

+ * 

+ * For example, here is a statement containing a lateral table query expression:

+ * 

+ * SELECT d.dept_name, e.emp_name

+ *   FROM dept d, LATERAL( 

+ *     SELECT emp_id, emp_name

+ *     FROM emp

+ *     WHERE emp_dept = d.dept_id ) as e

+ * 

+ * The reference to d.dept_id is legal in a lateral table query, but would not be legal in a regular table query expression.

+ * <!-- end-model-doc -->

+ *

+ * <p>

+ * The following features are supported:

+ * <ul>

+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.TableQueryLateral#getQuery <em>Query</em>}</li>

+ * </ul>

+ * </p>

+ *

+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getTableQueryLateral()

+ * @model

+ * @generated

+ */

+public interface TableQueryLateral extends TableExpression {

+    /**

+     * Returns the value of the '<em><b>Query</b></em>' containment reference.

+     * <!-- begin-user-doc -->

+     * <p>

+     * If the meaning of the '<em>Query</em>' containment reference isn't clear,

+     * there really should be more of a description here...

+     * </p>

+     * <!-- end-user-doc -->

+     * @return the value of the '<em>Query</em>' containment reference.

+     * @see #setQuery(QueryExpressionBody)

+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getTableQueryLateral_Query()

+     * @model containment="true" required="true"

+     * @generated

+     */

+    QueryExpressionBody getQuery();

+

+    /**

+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.TableQueryLateral#getQuery <em>Query</em>}' containment reference.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @param value the new value of the '<em>Query</em>' containment reference.

+     * @see #getQuery()

+     * @generated

+     */

+    void setQuery(QueryExpressionBody value);

+

+} // TableQueryLateral

diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/TableReference.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/TableReference.java
new file mode 100644
index 0000000..a19656e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/TableReference.java
@@ -0,0 +1,171 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: TableReference.java,v 1.3 2008/01/31 02:57:16 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Table Reference</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.TableReference#getTableJoinedRight <em>Table Joined Right</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.TableReference#getTableJoinedLeft <em>Table Joined Left</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.TableReference#getQuerySelect <em>Query Select</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.TableReference#getNest <em>Nest</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.TableReference#getMergeSourceTable <em>Merge Source Table</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getTableReference()
+ * @model abstract="true"
+ * @generated
+ */
+public interface TableReference extends SQLQueryObject{
+	/**
+     * Returns the value of the '<em><b>Table Joined Right</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.TableJoined#getTableRefRight <em>Table Ref Right</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Table Joined Right</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Table Joined Right</em>' container reference.
+     * @see #setTableJoinedRight(TableJoined)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getTableReference_TableJoinedRight()
+     * @see org.eclipse.datatools.modelbase.sql.query.TableJoined#getTableRefRight
+     * @model opposite="tableRefRight" required="true"
+     * @generated
+     */
+    TableJoined getTableJoinedRight();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.TableReference#getTableJoinedRight <em>Table Joined Right</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Table Joined Right</em>' container reference.
+     * @see #getTableJoinedRight()
+     * @generated
+     */
+    void setTableJoinedRight(TableJoined value);
+
+	/**
+     * Returns the value of the '<em><b>Table Joined Left</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.TableJoined#getTableRefLeft <em>Table Ref Left</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Table Joined Left</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Table Joined Left</em>' container reference.
+     * @see #setTableJoinedLeft(TableJoined)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getTableReference_TableJoinedLeft()
+     * @see org.eclipse.datatools.modelbase.sql.query.TableJoined#getTableRefLeft
+     * @model opposite="tableRefLeft" required="true"
+     * @generated
+     */
+    TableJoined getTableJoinedLeft();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.TableReference#getTableJoinedLeft <em>Table Joined Left</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Table Joined Left</em>' container reference.
+     * @see #getTableJoinedLeft()
+     * @generated
+     */
+    void setTableJoinedLeft(TableJoined value);
+
+	/**
+     * Returns the value of the '<em><b>Query Select</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QuerySelect#getFromClause <em>From Clause</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Query Select</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Query Select</em>' container reference.
+     * @see #setQuerySelect(QuerySelect)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getTableReference_QuerySelect()
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySelect#getFromClause
+     * @model opposite="fromClause"
+     * @generated
+     */
+    QuerySelect getQuerySelect();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.TableReference#getQuerySelect <em>Query Select</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Query Select</em>' container reference.
+     * @see #getQuerySelect()
+     * @generated
+     */
+    void setQuerySelect(QuerySelect value);
+
+	/**
+     * Returns the value of the '<em><b>Nest</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.TableNested#getNestedTableRef <em>Nested Table Ref</em>}'.
+     * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Nest</em>' container reference isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+     * @return the value of the '<em>Nest</em>' container reference.
+     * @see #setNest(TableNested)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getTableReference_Nest()
+     * @see org.eclipse.datatools.modelbase.sql.query.TableNested#getNestedTableRef
+     * @model opposite="nestedTableRef"
+     * @generated
+     */
+  TableNested getNest();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.TableReference#getNest <em>Nest</em>}' container reference.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Nest</em>' container reference.
+     * @see #getNest()
+     * @generated
+     */
+  void setNest(TableNested value);
+
+    /**
+     * Returns the value of the '<em><b>Merge Source Table</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.MergeSourceTable#getTableRef <em>Table Ref</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Merge Source Table</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Merge Source Table</em>' container reference.
+     * @see #setMergeSourceTable(MergeSourceTable)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getTableReference_MergeSourceTable()
+     * @see org.eclipse.datatools.modelbase.sql.query.MergeSourceTable#getTableRef
+     * @model opposite="tableRef"
+     * @generated
+     */
+    MergeSourceTable getMergeSourceTable();
+
+    /**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.TableReference#getMergeSourceTable <em>Merge Source Table</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Merge Source Table</em>' container reference.
+     * @see #getMergeSourceTable()
+     * @generated
+     */
+    void setMergeSourceTable(MergeSourceTable value);
+
+} // SQLTableReference
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/UpdatabilityExpression.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/UpdatabilityExpression.java
new file mode 100644
index 0000000..18496be
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/UpdatabilityExpression.java
@@ -0,0 +1,105 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Updatability Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.UpdatabilityExpression#getUpdatabilityType <em>Updatability Type</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.UpdatabilityExpression#getUpdateOfColumnList <em>Update Of Column List</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.UpdatabilityExpression#getSelectStatement <em>Select Statement</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getUpdatabilityExpression()
+ * @model
+ * @generated
+ */
+public interface UpdatabilityExpression extends SQLQueryObject {
+    /**
+     * Returns the value of the '<em><b>Updatability Type</b></em>' attribute.
+     * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.query.UpdatabilityType}.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Updatability Type</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Updatability Type</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.query.UpdatabilityType
+     * @see #setUpdatabilityType(UpdatabilityType)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getUpdatabilityExpression_UpdatabilityType()
+     * @model
+     * @generated
+     */
+    UpdatabilityType getUpdatabilityType();
+
+    /**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.UpdatabilityExpression#getUpdatabilityType <em>Updatability Type</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Updatability Type</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.query.UpdatabilityType
+     * @see #getUpdatabilityType()
+     * @generated
+     */
+    void setUpdatabilityType(UpdatabilityType value);
+
+    /**
+     * Returns the value of the '<em><b>Update Of Column List</b></em>' containment reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.query.UpdateOfColumn}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.UpdateOfColumn#getUpdatabilityExpr <em>Updatability Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Update Of Column List</em>' containment reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Update Of Column List</em>' containment reference list.
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getUpdatabilityExpression_UpdateOfColumnList()
+     * @see org.eclipse.datatools.modelbase.sql.query.UpdateOfColumn#getUpdatabilityExpr
+     * @model type="org.eclipse.datatools.modelbase.sql.query.UpdateOfColumn" opposite="updatabilityExpr" containment="true"
+     * @generated
+     */
+    EList getUpdateOfColumnList();
+
+    /**
+     * Returns the value of the '<em><b>Select Statement</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QuerySelectStatement#getUpdatabilityExpr <em>Updatability Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Select Statement</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Select Statement</em>' container reference.
+     * @see #setSelectStatement(QuerySelectStatement)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getUpdatabilityExpression_SelectStatement()
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySelectStatement#getUpdatabilityExpr
+     * @model opposite="updatabilityExpr"
+     * @generated
+     */
+    QuerySelectStatement getSelectStatement();
+
+    /**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.UpdatabilityExpression#getSelectStatement <em>Select Statement</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Select Statement</em>' container reference.
+     * @see #getSelectStatement()
+     * @generated
+     */
+    void setSelectStatement(QuerySelectStatement value);
+
+} // UpdatabilityExpression
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/UpdatabilityType.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/UpdatabilityType.java
new file mode 100644
index 0000000..fd655bd
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/UpdatabilityType.java
@@ -0,0 +1,151 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Updatability Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getUpdatabilityType()
+ * @model
+ * @generated
+ */
+public final class UpdatabilityType extends AbstractEnumerator {
+    /**
+     * The '<em><b>READ ONLY</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>READ ONLY</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #READ_ONLY_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int READ_ONLY = 0;
+
+    /**
+     * The '<em><b>UPDATE</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>UPDATE</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #UPDATE_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int UPDATE = 1;
+
+    /**
+     * The '<em><b>READ ONLY</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #READ_ONLY
+     * @generated
+     * @ordered
+     */
+    public static final UpdatabilityType READ_ONLY_LITERAL = new UpdatabilityType(READ_ONLY, "READ_ONLY", "READ_ONLY");
+
+    /**
+     * The '<em><b>UPDATE</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #UPDATE
+     * @generated
+     * @ordered
+     */
+    public static final UpdatabilityType UPDATE_LITERAL = new UpdatabilityType(UPDATE, "UPDATE", "UPDATE");
+
+    /**
+     * An array of all the '<em><b>Updatability Type</b></em>' enumerators.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private static final UpdatabilityType[] VALUES_ARRAY =
+        new UpdatabilityType[] {
+            READ_ONLY_LITERAL,
+            UPDATE_LITERAL,
+        };
+
+    /**
+     * A public read-only list of all the '<em><b>Updatability Type</b></em>' enumerators.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+    /**
+     * Returns the '<em><b>Updatability Type</b></em>' literal with the specified literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static UpdatabilityType get(String literal) {
+        for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+            UpdatabilityType result = VALUES_ARRAY[i];
+            if (result.toString().equals(literal)) {
+                return result;
+            }
+        }
+        return null;
+    }
+
+    /**
+     * Returns the '<em><b>Updatability Type</b></em>' literal with the specified name.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static UpdatabilityType getByName(String name) {
+        for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+            UpdatabilityType result = VALUES_ARRAY[i];
+            if (result.getName().equals(name)) {
+                return result;
+            }
+        }
+        return null;
+    }
+
+    /**
+     * Returns the '<em><b>Updatability Type</b></em>' literal with the specified integer value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static UpdatabilityType get(int value) {
+        switch (value) {
+            case READ_ONLY: return READ_ONLY_LITERAL;
+            case UPDATE: return UPDATE_LITERAL;
+        }
+        return null;
+    }
+
+    /**
+     * Only this class can construct instances.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private UpdatabilityType(int value, String name, String literal) {
+        super(value, name, literal);
+    }
+
+} //UpdatabilityType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/UpdateAssignmentExpression.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/UpdateAssignmentExpression.java
new file mode 100644
index 0000000..aa0624f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/UpdateAssignmentExpression.java
@@ -0,0 +1,133 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: UpdateAssignmentExpression.java,v 1.3 2008/01/31 02:57:16 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Assignment Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression#getUpdateStatement <em>Update Statement</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression#getTargetColumnList <em>Target Column List</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression#getUpdateSource <em>Update Source</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression#getMergeUpdateSpec <em>Merge Update Spec</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getUpdateAssignmentExpression()
+ * @model
+ * @generated
+ */
+public interface UpdateAssignmentExpression extends SQLQueryObject{
+	/**
+     * Returns the value of the '<em><b>Update Statement</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement#getAssignmentClause <em>Assignment Clause</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Update Statement</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Update Statement</em>' container reference.
+     * @see #setUpdateStatement(QueryUpdateStatement)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getUpdateAssignmentExpression_UpdateStatement()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement#getAssignmentClause
+     * @model opposite="assignmentClause"
+     * @generated
+     */
+    QueryUpdateStatement getUpdateStatement();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression#getUpdateStatement <em>Update Statement</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Update Statement</em>' container reference.
+     * @see #getUpdateStatement()
+     * @generated
+     */
+    void setUpdateStatement(QueryUpdateStatement value);
+
+	/**
+     * Returns the value of the '<em><b>Target Column List</b></em>' reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn#getAssignmentExprTarget <em>Assignment Expr Target</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Target Column List</em>' containment reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Target Column List</em>' reference list.
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getUpdateAssignmentExpression_TargetColumnList()
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn#getAssignmentExprTarget
+     * @model type="org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn" opposite="assignmentExprTarget" required="true"
+     * @generated
+     */
+    EList getTargetColumnList();
+
+	/**
+     * Returns the value of the '<em><b>Update Source</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.UpdateSource#getUpdateAssignmentExpr <em>Update Assignment Expr</em>}'.
+     * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Update Source</em>' containment reference isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+     * @return the value of the '<em>Update Source</em>' containment reference.
+     * @see #setUpdateSource(UpdateSource)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getUpdateAssignmentExpression_UpdateSource()
+     * @see org.eclipse.datatools.modelbase.sql.query.UpdateSource#getUpdateAssignmentExpr
+     * @model opposite="updateAssignmentExpr" containment="true" required="true"
+     * @generated
+     */
+  UpdateSource getUpdateSource();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression#getUpdateSource <em>Update Source</em>}' containment reference.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Update Source</em>' containment reference.
+     * @see #getUpdateSource()
+     * @generated
+     */
+  void setUpdateSource(UpdateSource value);
+
+    /**
+     * Returns the value of the '<em><b>Merge Update Spec</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.MergeUpdateSpecification#getAssignementExprList <em>Assignement Expr List</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Merge Update Spec</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Merge Update Spec</em>' container reference.
+     * @see #setMergeUpdateSpec(MergeUpdateSpecification)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getUpdateAssignmentExpression_MergeUpdateSpec()
+     * @see org.eclipse.datatools.modelbase.sql.query.MergeUpdateSpecification#getAssignementExprList
+     * @model opposite="assignementExprList"
+     * @generated
+     */
+    MergeUpdateSpecification getMergeUpdateSpec();
+
+    /**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression#getMergeUpdateSpec <em>Merge Update Spec</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Merge Update Spec</em>' container reference.
+     * @see #getMergeUpdateSpec()
+     * @generated
+     */
+    void setMergeUpdateSpec(MergeUpdateSpecification value);
+
+} // SQLAssignmentExpression
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/UpdateOfColumn.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/UpdateOfColumn.java
new file mode 100644
index 0000000..2b127cb
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/UpdateOfColumn.java
@@ -0,0 +1,55 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Update Of Column</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.UpdateOfColumn#getUpdatabilityExpr <em>Updatability Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getUpdateOfColumn()
+ * @model
+ * @generated
+ */
+public interface UpdateOfColumn extends SQLQueryObject {
+    /**
+     * Returns the value of the '<em><b>Updatability Expr</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.UpdatabilityExpression#getUpdateOfColumnList <em>Update Of Column List</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Updatability Expr</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Updatability Expr</em>' container reference.
+     * @see #setUpdatabilityExpr(UpdatabilityExpression)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getUpdateOfColumn_UpdatabilityExpr()
+     * @see org.eclipse.datatools.modelbase.sql.query.UpdatabilityExpression#getUpdateOfColumnList
+     * @model opposite="updateOfColumnList"
+     * @generated
+     */
+    UpdatabilityExpression getUpdatabilityExpr();
+
+    /**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.UpdateOfColumn#getUpdatabilityExpr <em>Updatability Expr</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Updatability Expr</em>' container reference.
+     * @see #getUpdatabilityExpr()
+     * @generated
+     */
+    void setUpdatabilityExpr(UpdatabilityExpression value);
+
+} // UpdateOfColumn
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/UpdateSource.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/UpdateSource.java
new file mode 100644
index 0000000..c75e1e7
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/UpdateSource.java
@@ -0,0 +1,55 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: UpdateSource.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Update Source</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.UpdateSource#getUpdateAssignmentExpr <em>Update Assignment Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getUpdateSource()
+ * @model
+ * @generated
+ */
+public interface UpdateSource extends SQLQueryObject{
+	/**
+     * Returns the value of the '<em><b>Update Assignment Expr</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression#getUpdateSource <em>Update Source</em>}'.
+     * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Update Assignment Expr</em>' container reference isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+     * @return the value of the '<em>Update Assignment Expr</em>' container reference.
+     * @see #setUpdateAssignmentExpr(UpdateAssignmentExpression)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getUpdateSource_UpdateAssignmentExpr()
+     * @see org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression#getUpdateSource
+     * @model opposite="updateSource"
+     * @generated
+     */
+  UpdateAssignmentExpression getUpdateAssignmentExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.UpdateSource#getUpdateAssignmentExpr <em>Update Assignment Expr</em>}' container reference.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Update Assignment Expr</em>' container reference.
+     * @see #getUpdateAssignmentExpr()
+     * @generated
+     */
+  void setUpdateAssignmentExpr(UpdateAssignmentExpression value);
+
+} // UpdateSource
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/UpdateSourceExprList.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/UpdateSourceExprList.java
new file mode 100644
index 0000000..ce9e01e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/UpdateSourceExprList.java
@@ -0,0 +1,46 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: UpdateSourceExprList.java,v 1.2 2005/12/22 22:18:50 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Update Source Expr List</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList#getValueExprList <em>Value Expr List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getUpdateSourceExprList()
+ * @model
+ * @generated
+ */
+public interface UpdateSourceExprList extends UpdateSource{
+	/**
+     * Returns the value of the '<em><b>Value Expr List</b></em>' containment reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getUpdateSourceExprList <em>Update Source Expr List</em>}'.
+     * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Value Expr List</em>' containment reference list isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Expr List</em>' containment reference list.
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getUpdateSourceExprList_ValueExprList()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getUpdateSourceExprList
+     * @model type="org.eclipse.datatools.modelbase.sql.query.QueryValueExpression" opposite="updateSourceExprList" containment="true" required="true"
+     * @generated
+     */
+  EList getValueExprList();
+
+} // UpdateSourceExprList
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/UpdateSourceQuery.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/UpdateSourceQuery.java
new file mode 100644
index 0000000..c59871d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/UpdateSourceQuery.java
@@ -0,0 +1,55 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: UpdateSourceQuery.java,v 1.2 2005/12/22 22:18:50 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Update Source Query</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.UpdateSourceQuery#getQueryExpr <em>Query Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getUpdateSourceQuery()
+ * @model
+ * @generated
+ */
+public interface UpdateSourceQuery extends UpdateSource{
+	/**
+     * Returns the value of the '<em><b>Query Expr</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getUpdateSourceQuery <em>Update Source Query</em>}'.
+     * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Query Expr</em>' containment reference isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+     * @return the value of the '<em>Query Expr</em>' containment reference.
+     * @see #setQueryExpr(QueryExpressionBody)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getUpdateSourceQuery_QueryExpr()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getUpdateSourceQuery
+     * @model opposite="updateSourceQuery" containment="true" required="true"
+     * @generated
+     */
+  QueryExpressionBody getQueryExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.UpdateSourceQuery#getQueryExpr <em>Query Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Query Expr</em>' containment reference.
+     * @see #getQueryExpr()
+     * @generated
+     */
+  void setQueryExpr(QueryExpressionBody value);
+
+} // UpdateSourceQuery
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionAtomic.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionAtomic.java
new file mode 100644
index 0000000..11da65b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionAtomic.java
@@ -0,0 +1,21 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionAtomic.java,v 1.1 2005/12/16 13:11:13 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Value Expression Atomic</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionAtomic()
+ * @model abstract="true"
+ * @generated
+ */
+public interface ValueExpressionAtomic extends QueryValueExpression{
+} // SQLValueExpressionAtomic
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionCase.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionCase.java
new file mode 100644
index 0000000..ca68b2a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionCase.java
@@ -0,0 +1,55 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionCase.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Value Expression Case</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCase#getCaseElse <em>Case Else</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionCase()
+ * @model abstract="true"
+ * @generated
+ */
+public interface ValueExpressionCase extends ValueExpressionAtomic{
+	/**
+     * Returns the value of the '<em><b>Case Else</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse#getValueExprCase <em>Value Expr Case</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Case Else</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Case Else</em>' containment reference.
+     * @see #setCaseElse(ValueExpressionCaseElse)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionCase_CaseElse()
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse#getValueExprCase
+     * @model opposite="valueExprCase" containment="true"
+     * @generated
+     */
+    ValueExpressionCaseElse getCaseElse();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCase#getCaseElse <em>Case Else</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Case Else</em>' containment reference.
+     * @see #getCaseElse()
+     * @generated
+     */
+    void setCaseElse(ValueExpressionCaseElse value);
+
+} // SQLValueExpressionCase
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionCaseElse.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionCaseElse.java
new file mode 100644
index 0000000..a7425ba
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionCaseElse.java
@@ -0,0 +1,84 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionCaseElse.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Value Expression Case Else</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse#getValueExprCase <em>Value Expr Case</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse#getValueExpr <em>Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionCaseElse()
+ * @model
+ * @generated
+ */
+public interface ValueExpressionCaseElse extends SQLQueryObject{
+	/**
+     * Returns the value of the '<em><b>Value Expr Case</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCase#getCaseElse <em>Case Else</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Expr Case</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Expr Case</em>' container reference.
+     * @see #setValueExprCase(ValueExpressionCase)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionCaseElse_ValueExprCase()
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCase#getCaseElse
+     * @model opposite="caseElse"
+     * @generated
+     */
+    ValueExpressionCase getValueExprCase();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse#getValueExprCase <em>Value Expr Case</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Expr Case</em>' container reference.
+     * @see #getValueExprCase()
+     * @generated
+     */
+    void setValueExprCase(ValueExpressionCase value);
+
+	/**
+     * Returns the value of the '<em><b>Value Expr</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCaseElse <em>Value Expr Case Else</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Expr</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Expr</em>' containment reference.
+     * @see #setValueExpr(QueryValueExpression)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionCaseElse_ValueExpr()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCaseElse
+     * @model opposite="valueExprCaseElse" containment="true"
+     * @generated
+     */
+    QueryValueExpression getValueExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse#getValueExpr <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Expr</em>' containment reference.
+     * @see #getValueExpr()
+     * @generated
+     */
+    void setValueExpr(QueryValueExpression value);
+
+} // SQLValueExpressionCaseElse
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionCaseSearch.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionCaseSearch.java
new file mode 100644
index 0000000..dc7b00e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionCaseSearch.java
@@ -0,0 +1,46 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionCaseSearch.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Value Expression Case Search</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearch#getSearchContentList <em>Search Content List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionCaseSearch()
+ * @model
+ * @generated
+ */
+public interface ValueExpressionCaseSearch extends ValueExpressionCase{
+	/**
+     * Returns the value of the '<em><b>Search Content List</b></em>' containment reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent#getValueExprCaseSearch <em>Value Expr Case Search</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Search Content List</em>' containment reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Search Content List</em>' containment reference list.
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionCaseSearch_SearchContentList()
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent#getValueExprCaseSearch
+     * @model type="org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent" opposite="valueExprCaseSearch" containment="true" required="true"
+     * @generated
+     */
+    EList getSearchContentList();
+
+} // SQLValueExpressionCaseSearch
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionCaseSearchContent.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionCaseSearchContent.java
new file mode 100644
index 0000000..2950423
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionCaseSearchContent.java
@@ -0,0 +1,113 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionCaseSearchContent.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Value Expression Case Search Content</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent#getValueExpr <em>Value Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent#getSearchCondition <em>Search Condition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent#getValueExprCaseSearch <em>Value Expr Case Search</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionCaseSearchContent()
+ * @model
+ * @generated
+ */
+public interface ValueExpressionCaseSearchContent extends SQLQueryObject{
+	/**
+     * Returns the value of the '<em><b>Value Expr</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCaseSearchContent <em>Value Expr Case Search Content</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Expr</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Expr</em>' containment reference.
+     * @see #setValueExpr(QueryValueExpression)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionCaseSearchContent_ValueExpr()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCaseSearchContent
+     * @model opposite="valueExprCaseSearchContent" containment="true" required="true"
+     * @generated
+     */
+    QueryValueExpression getValueExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent#getValueExpr <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Expr</em>' containment reference.
+     * @see #getValueExpr()
+     * @generated
+     */
+    void setValueExpr(QueryValueExpression value);
+
+	/**
+     * Returns the value of the '<em><b>Search Condition</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getValueExprCaseSearchContent <em>Value Expr Case Search Content</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Search Condition</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Search Condition</em>' containment reference.
+     * @see #setSearchCondition(QuerySearchCondition)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionCaseSearchContent_SearchCondition()
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition#getValueExprCaseSearchContent
+     * @model opposite="valueExprCaseSearchContent" containment="true" required="true"
+     * @generated
+     */
+    QuerySearchCondition getSearchCondition();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent#getSearchCondition <em>Search Condition</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Search Condition</em>' containment reference.
+     * @see #getSearchCondition()
+     * @generated
+     */
+    void setSearchCondition(QuerySearchCondition value);
+
+	/**
+     * Returns the value of the '<em><b>Value Expr Case Search</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearch#getSearchContentList <em>Search Content List</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Expr Case Search</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Expr Case Search</em>' container reference.
+     * @see #setValueExprCaseSearch(ValueExpressionCaseSearch)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionCaseSearchContent_ValueExprCaseSearch()
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearch#getSearchContentList
+     * @model opposite="searchContentList"
+     * @generated
+     */
+    ValueExpressionCaseSearch getValueExprCaseSearch();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent#getValueExprCaseSearch <em>Value Expr Case Search</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Expr Case Search</em>' container reference.
+     * @see #getValueExprCaseSearch()
+     * @generated
+     */
+    void setValueExprCaseSearch(ValueExpressionCaseSearch value);
+
+} // SQLValueExpressionCaseSearchContent
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionCaseSimple.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionCaseSimple.java
new file mode 100644
index 0000000..a0c6506
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionCaseSimple.java
@@ -0,0 +1,75 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionCaseSimple.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Value Expression Case Simple</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple#getContentList <em>Content List</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple#getValueExpr <em>Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionCaseSimple()
+ * @model
+ * @generated
+ */
+public interface ValueExpressionCaseSimple extends ValueExpressionCase{
+	/**
+     * Returns the value of the '<em><b>Content List</b></em>' containment reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent#getValueExprCaseSimple <em>Value Expr Case Simple</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Content List</em>' containment reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Content List</em>' containment reference list.
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionCaseSimple_ContentList()
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent#getValueExprCaseSimple
+     * @model type="org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent" opposite="valueExprCaseSimple" containment="true" required="true"
+     * @generated
+     */
+    EList getContentList();
+
+	/**
+     * Returns the value of the '<em><b>Value Expr</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCaseSimple <em>Value Expr Case Simple</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Expr</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Expr</em>' containment reference.
+     * @see #setValueExpr(QueryValueExpression)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionCaseSimple_ValueExpr()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCaseSimple
+     * @model opposite="valueExprCaseSimple" containment="true" required="true"
+     * @generated
+     */
+    QueryValueExpression getValueExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple#getValueExpr <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Expr</em>' containment reference.
+     * @see #getValueExpr()
+     * @generated
+     */
+    void setValueExpr(QueryValueExpression value);
+
+} // SQLValueExpressionCaseSimple
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionCaseSimpleContent.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionCaseSimpleContent.java
new file mode 100644
index 0000000..a321791
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionCaseSimpleContent.java
@@ -0,0 +1,113 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionCaseSimpleContent.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Value Expression Case Simple Content</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent#getValueExprCaseSimple <em>Value Expr Case Simple</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent#getWhenValueExpr <em>When Value Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent#getResultValueExpr <em>Result Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionCaseSimpleContent()
+ * @model
+ * @generated
+ */
+public interface ValueExpressionCaseSimpleContent extends SQLQueryObject{
+	/**
+     * Returns the value of the '<em><b>Value Expr Case Simple</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple#getContentList <em>Content List</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Expr Case Simple</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Expr Case Simple</em>' container reference.
+     * @see #setValueExprCaseSimple(ValueExpressionCaseSimple)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionCaseSimpleContent_ValueExprCaseSimple()
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple#getContentList
+     * @model opposite="contentList"
+     * @generated
+     */
+    ValueExpressionCaseSimple getValueExprCaseSimple();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent#getValueExprCaseSimple <em>Value Expr Case Simple</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Expr Case Simple</em>' container reference.
+     * @see #getValueExprCaseSimple()
+     * @generated
+     */
+    void setValueExprCaseSimple(ValueExpressionCaseSimple value);
+
+	/**
+     * Returns the value of the '<em><b>When Value Expr</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCaseSimpleContentWhen <em>Value Expr Case Simple Content When</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>When Value Expr</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>When Value Expr</em>' containment reference.
+     * @see #setWhenValueExpr(QueryValueExpression)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionCaseSimpleContent_WhenValueExpr()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCaseSimpleContentWhen
+     * @model opposite="valueExprCaseSimpleContentWhen" containment="true" required="true"
+     * @generated
+     */
+    QueryValueExpression getWhenValueExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent#getWhenValueExpr <em>When Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>When Value Expr</em>' containment reference.
+     * @see #getWhenValueExpr()
+     * @generated
+     */
+    void setWhenValueExpr(QueryValueExpression value);
+
+	/**
+     * Returns the value of the '<em><b>Result Value Expr</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCaseSimpleContentResult <em>Value Expr Case Simple Content Result</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Result Value Expr</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Result Value Expr</em>' containment reference.
+     * @see #setResultValueExpr(QueryValueExpression)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionCaseSimpleContent_ResultValueExpr()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCaseSimpleContentResult
+     * @model opposite="valueExprCaseSimpleContentResult" containment="true" required="true"
+     * @generated
+     */
+    QueryValueExpression getResultValueExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent#getResultValueExpr <em>Result Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Result Value Expr</em>' containment reference.
+     * @see #getResultValueExpr()
+     * @generated
+     */
+    void setResultValueExpr(QueryValueExpression value);
+
+} // SQLValueExpressionCaseSimpleContent
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionCast.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionCast.java
new file mode 100644
index 0000000..78bb65b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionCast.java
@@ -0,0 +1,55 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionCast.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Value Expression Cast</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast#getValueExpr <em>Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionCast()
+ * @model
+ * @generated
+ */
+public interface ValueExpressionCast extends ValueExpressionAtomic{
+	/**
+     * Returns the value of the '<em><b>Value Expr</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCast <em>Value Expr Cast</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Expr</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Expr</em>' containment reference.
+     * @see #setValueExpr(QueryValueExpression)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionCast_ValueExpr()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCast
+     * @model opposite="valueExprCast" containment="true" required="true"
+     * @generated
+     */
+    QueryValueExpression getValueExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast#getValueExpr <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Expr</em>' containment reference.
+     * @see #getValueExpr()
+     * @generated
+     */
+    void setValueExpr(QueryValueExpression value);
+
+} // SQLValueExpressionCast
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionColumn.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionColumn.java
new file mode 100644
index 0000000..e027ab6
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionColumn.java
@@ -0,0 +1,175 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionColumn.java,v 1.3 2008/01/31 02:57:16 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Value Expression Column</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * This is a VEC
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn#getAssignmentExprTarget <em>Assignment Expr Target</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn#getParentTableExpr <em>Parent Table Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn#getInsertStatement <em>Insert Statement</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn#getTableExpr <em>Table Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn#getTableInDatabase <em>Table In Database</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn#getMergeInsertSpec <em>Merge Insert Spec</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionColumn()
+ * @model
+ * @generated
+ */
+public interface ValueExpressionColumn extends ValueExpressionAtomic{
+	/**
+     * Returns the value of the '<em><b>Assignment Expr Target</b></em>' reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression#getTargetColumnList <em>Target Column List</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Assignment Expr Target</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Assignment Expr Target</em>' reference list.
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionColumn_AssignmentExprTarget()
+     * @see org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression#getTargetColumnList
+     * @model type="org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression" opposite="targetColumnList"
+     * @generated
+     */
+    EList getAssignmentExprTarget();
+
+	/**
+     * Returns the value of the '<em><b>Parent Table Expr</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.TableExpression#getColumnList <em>Column List</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Parent Table Expr</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Parent Table Expr</em>' container reference.
+     * @see #setParentTableExpr(TableExpression)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionColumn_ParentTableExpr()
+     * @see org.eclipse.datatools.modelbase.sql.query.TableExpression#getColumnList
+     * @model opposite="columnList" unsettable="true" required="true"
+     * @generated
+     */
+    TableExpression getParentTableExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn#getParentTableExpr <em>Parent Table Expr</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Parent Table Expr</em>' container reference.
+     * @see #getParentTableExpr()
+     * @generated
+     */
+    void setParentTableExpr(TableExpression value);
+
+	/**
+     * Returns the value of the '<em><b>Table Expr</b></em>' reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.TableExpression#getValueExprColumns <em>Value Expr Columns</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Table Expr</em>' reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Table Expr</em>' reference.
+     * @see #setTableExpr(TableExpression)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionColumn_TableExpr()
+     * @see org.eclipse.datatools.modelbase.sql.query.TableExpression#getValueExprColumns
+     * @model opposite="valueExprColumns" required="true"
+     * @generated
+     */
+    TableExpression getTableExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn#getTableExpr <em>Table Expr</em>}' reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Table Expr</em>' reference.
+     * @see #getTableExpr()
+     * @generated
+     */
+    void setTableExpr(TableExpression value);
+
+	/**
+     * Returns the value of the '<em><b>Table In Database</b></em>' reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.TableInDatabase#getDerivedColumnList <em>Derived Column List</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * <!-- begin-model-doc -->
+     * Gets the <code>TableInDatabase</code> from which this column is ulitimately derived, if any.
+     * <!-- end-model-doc -->
+     * @return the value of the '<em>Table In Database</em>' reference.
+     * @see #setTableInDatabase(TableInDatabase)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionColumn_TableInDatabase()
+     * @see org.eclipse.datatools.modelbase.sql.query.TableInDatabase#getDerivedColumnList
+     * @model opposite="derivedColumnList"
+     * @generated
+     */
+    TableInDatabase getTableInDatabase();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn#getTableInDatabase <em>Table In Database</em>}' reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Table In Database</em>' reference.
+     * @see #getTableInDatabase()
+     * @generated
+     */
+    void setTableInDatabase(TableInDatabase value);
+
+	/**
+     * Returns the value of the '<em><b>Merge Insert Spec</b></em>' reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.query.MergeInsertSpecification}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.MergeInsertSpecification#getTargetColumnList <em>Target Column List</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Merge Insert Spec</em>' reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Merge Insert Spec</em>' reference list.
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionColumn_MergeInsertSpec()
+     * @see org.eclipse.datatools.modelbase.sql.query.MergeInsertSpecification#getTargetColumnList
+     * @model type="org.eclipse.datatools.modelbase.sql.query.MergeInsertSpecification" opposite="targetColumnList"
+     * @generated
+     */
+    EList getMergeInsertSpec();
+
+    /**
+     * Returns the value of the '<em><b>Insert Statement</b></em>' reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.query.QueryInsertStatement}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryInsertStatement#getTargetColumnList <em>Target Column List</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Insert Statement</em>' reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Insert Statement</em>' reference list.
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionColumn_InsertStatement()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryInsertStatement#getTargetColumnList
+     * @model type="org.eclipse.datatools.modelbase.sql.query.QueryInsertStatement" opposite="targetColumnList"
+     * @generated
+     */
+    EList getInsertStatement();
+
+} // SQLValueExpressionColumn
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionCombined.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionCombined.java
new file mode 100644
index 0000000..9f3bf7a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionCombined.java
@@ -0,0 +1,114 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionCombined.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Value Expression Combined</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined#getCombinedOperator <em>Combined Operator</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined#getLeftValueExpr <em>Left Value Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined#getRightValueExpr <em>Right Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionCombined()
+ * @model
+ * @generated
+ */
+public interface ValueExpressionCombined extends QueryValueExpression{
+	/**
+     * Returns the value of the '<em><b>Combined Operator</b></em>' attribute.
+     * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombinedOperator}.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Combined Operator</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Combined Operator</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombinedOperator
+     * @see #setCombinedOperator(ValueExpressionCombinedOperator)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionCombined_CombinedOperator()
+     * @model
+     * @generated
+     */
+    ValueExpressionCombinedOperator getCombinedOperator();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined#getCombinedOperator <em>Combined Operator</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Combined Operator</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombinedOperator
+     * @see #getCombinedOperator()
+     * @generated
+     */
+    void setCombinedOperator(ValueExpressionCombinedOperator value);
+
+	/**
+     * Returns the value of the '<em><b>Left Value Expr</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCombinedLeft <em>Value Expr Combined Left</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Left Value Expr</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Left Value Expr</em>' containment reference.
+     * @see #setLeftValueExpr(QueryValueExpression)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionCombined_LeftValueExpr()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCombinedLeft
+     * @model opposite="valueExprCombinedLeft" containment="true" required="true"
+     * @generated
+     */
+    QueryValueExpression getLeftValueExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined#getLeftValueExpr <em>Left Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Left Value Expr</em>' containment reference.
+     * @see #getLeftValueExpr()
+     * @generated
+     */
+    void setLeftValueExpr(QueryValueExpression value);
+
+	/**
+     * Returns the value of the '<em><b>Right Value Expr</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCombinedRight <em>Value Expr Combined Right</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Right Value Expr</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Right Value Expr</em>' containment reference.
+     * @see #setRightValueExpr(QueryValueExpression)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionCombined_RightValueExpr()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprCombinedRight
+     * @model opposite="valueExprCombinedRight" containment="true" required="true"
+     * @generated
+     */
+    QueryValueExpression getRightValueExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined#getRightValueExpr <em>Right Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Right Value Expr</em>' containment reference.
+     * @see #getRightValueExpr()
+     * @generated
+     */
+    void setRightValueExpr(QueryValueExpression value);
+
+} // SQLValueExpressionCombined
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionCombinedOperator.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionCombinedOperator.java
new file mode 100644
index 0000000..8b99d43
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionCombinedOperator.java
@@ -0,0 +1,232 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionCombinedOperator.java,v 1.4 2007/02/08 17:00:24 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>SQL Value Expression Combined Operator</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionCombinedOperator()
+ * @model
+ * @generated
+ */
+public final class ValueExpressionCombinedOperator extends AbstractEnumerator {
+	/**
+     * The '<em><b>ADD</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #ADD_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int ADD = 0;
+
+	/**
+     * The '<em><b>SUBTRACT</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #SUBTRACT_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int SUBTRACT = 1;
+
+	/**
+     * The '<em><b>MULTIPLY</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #MULTIPLY_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int MULTIPLY = 2;
+
+	/**
+     * The '<em><b>DIVIDE</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #DIVIDE_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int DIVIDE = 3;
+
+	/**
+     * The '<em><b>CONCATENATE</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #CONCATENATE_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int CONCATENATE = 4;
+
+	/**
+     * The '<em><b>ADD</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>ADD</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #ADD
+     * @generated
+     * @ordered
+     */
+    public static final ValueExpressionCombinedOperator ADD_LITERAL = new ValueExpressionCombinedOperator(ADD, "ADD", "ADD");
+
+	/**
+     * The '<em><b>SUBTRACT</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>SUBTRACT</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #SUBTRACT
+     * @generated
+     * @ordered
+     */
+    public static final ValueExpressionCombinedOperator SUBTRACT_LITERAL = new ValueExpressionCombinedOperator(SUBTRACT, "SUBTRACT", "SUBTRACT");
+
+	/**
+     * The '<em><b>MULTIPLY</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>MULTIPLY</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #MULTIPLY
+     * @generated
+     * @ordered
+     */
+    public static final ValueExpressionCombinedOperator MULTIPLY_LITERAL = new ValueExpressionCombinedOperator(MULTIPLY, "MULTIPLY", "MULTIPLY");
+
+	/**
+     * The '<em><b>DIVIDE</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>DIVIDE</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #DIVIDE
+     * @generated
+     * @ordered
+     */
+    public static final ValueExpressionCombinedOperator DIVIDE_LITERAL = new ValueExpressionCombinedOperator(DIVIDE, "DIVIDE", "DIVIDE");
+
+	/**
+     * The '<em><b>CONCATENATE</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>CONCATENATE</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #CONCATENATE
+     * @generated
+     * @ordered
+     */
+    public static final ValueExpressionCombinedOperator CONCATENATE_LITERAL = new ValueExpressionCombinedOperator(CONCATENATE, "CONCATENATE", "CONCATENATE");
+
+	/**
+     * An array of all the '<em><b>Value Expression Combined Operator</b></em>' enumerators.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private static final ValueExpressionCombinedOperator[] VALUES_ARRAY =
+		new ValueExpressionCombinedOperator[] {
+            ADD_LITERAL,
+            SUBTRACT_LITERAL,
+            MULTIPLY_LITERAL,
+            DIVIDE_LITERAL,
+            CONCATENATE_LITERAL,
+        };
+
+	/**
+     * A public read-only list of all the '<em><b>Value Expression Combined Operator</b></em>' enumerators.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+     * Returns the '<em><b>Value Expression Combined Operator</b></em>' literal with the specified literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static ValueExpressionCombinedOperator get(String literal) {
+        for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+            ValueExpressionCombinedOperator result = VALUES_ARRAY[i];
+            if (result.toString().equals(literal)) {
+                return result;
+            }
+        }
+        return null;
+    }
+
+	/**
+     * Returns the '<em><b>Value Expression Combined Operator</b></em>' literal with the specified name.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public static ValueExpressionCombinedOperator getByName(String name) {
+        for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+            ValueExpressionCombinedOperator result = VALUES_ARRAY[i];
+            if (result.getName().equals(name)) {
+                return result;
+            }
+        }
+        return null;
+    }
+
+	/**
+     * Returns the '<em><b>Value Expression Combined Operator</b></em>' literal with the specified integer value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static ValueExpressionCombinedOperator get(int value) {
+        switch (value) {
+            case ADD: return ADD_LITERAL;
+            case SUBTRACT: return SUBTRACT_LITERAL;
+            case MULTIPLY: return MULTIPLY_LITERAL;
+            case DIVIDE: return DIVIDE_LITERAL;
+            case CONCATENATE: return CONCATENATE_LITERAL;
+        }
+        return null;
+    }
+
+	/**
+     * Only this class can construct instances.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private ValueExpressionCombinedOperator(int value, String name, String literal) {
+        super(value, name, literal);
+    }
+
+} //SQLValueExpressionCombinedOperator
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionDefaultValue.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionDefaultValue.java
new file mode 100644
index 0000000..6259b37
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionDefaultValue.java
@@ -0,0 +1,21 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionDefaultValue.java,v 1.1 2005/12/16 13:11:14 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Value Expression Default</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionDefaultValue()
+ * @model
+ * @generated
+ */
+public interface ValueExpressionDefaultValue extends ValueExpressionAtomic{
+} // SQLValueExpressionDefault
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionFunction.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionFunction.java
new file mode 100644
index 0000000..1b977ea
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionFunction.java
@@ -0,0 +1,156 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionFunction.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.datatools.modelbase.sql.routines.Function;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Value Expression Function</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction#isSpecialRegister <em>Special Register</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction#isDistinct <em>Distinct</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction#isColumnFunction <em>Column Function</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction#getParameterList <em>Parameter List</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction#getFunction <em>Function</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionFunction()
+ * @model
+ * @generated
+ */
+public interface ValueExpressionFunction extends ValueExpressionAtomic{
+	/**
+     * Returns the value of the '<em><b>Special Register</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Special Register</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Special Register</em>' attribute.
+     * @see #setSpecialRegister(boolean)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionFunction_SpecialRegister()
+     * @model
+     * @generated
+     */
+    boolean isSpecialRegister();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction#isSpecialRegister <em>Special Register</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Special Register</em>' attribute.
+     * @see #isSpecialRegister()
+     * @generated
+     */
+    void setSpecialRegister(boolean value);
+
+	/**
+     * Returns the value of the '<em><b>Distinct</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Distinct</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Distinct</em>' attribute.
+     * @see #setDistinct(boolean)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionFunction_Distinct()
+     * @model
+     * @generated
+     */
+    boolean isDistinct();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction#isDistinct <em>Distinct</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Distinct</em>' attribute.
+     * @see #isDistinct()
+     * @generated
+     */
+    void setDistinct(boolean value);
+
+	/**
+     * Returns the value of the '<em><b>Column Function</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Column Function</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Column Function</em>' attribute.
+     * @see #setColumnFunction(boolean)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionFunction_ColumnFunction()
+     * @model
+     * @generated
+     */
+    boolean isColumnFunction();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction#isColumnFunction <em>Column Function</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Column Function</em>' attribute.
+     * @see #isColumnFunction()
+     * @generated
+     */
+    void setColumnFunction(boolean value);
+
+	/**
+     * Returns the value of the '<em><b>Parameter List</b></em>' containment reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprFunction <em>Value Expr Function</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Parameter List</em>' containment reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Parameter List</em>' containment reference list.
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionFunction_ParameterList()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprFunction
+     * @model type="org.eclipse.datatools.modelbase.sql.query.QueryValueExpression" opposite="valueExprFunction" containment="true"
+     * @generated
+     */
+    EList getParameterList();
+
+	/**
+     * Returns the value of the '<em><b>Function</b></em>' reference.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Function</em>' reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Function</em>' reference.
+     * @see #setFunction(Function)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionFunction_Function()
+     * @model required="true"
+     * @generated
+     */
+    Function getFunction();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction#getFunction <em>Function</em>}' reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Function</em>' reference.
+     * @see #getFunction()
+     * @generated
+     */
+    void setFunction(Function value);
+
+} // SQLValueExpressionFunction
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionLabeledDuration.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionLabeledDuration.java
new file mode 100644
index 0000000..2615493
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionLabeledDuration.java
@@ -0,0 +1,85 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionLabeledDuration.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Value Expression Labeled Duration</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration#getLabeledDurationType <em>Labeled Duration Type</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration#getValueExpr <em>Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionLabeledDuration()
+ * @model
+ * @generated
+ */
+public interface ValueExpressionLabeledDuration extends ValueExpressionAtomic{
+	/**
+     * Returns the value of the '<em><b>Labeled Duration Type</b></em>' attribute.
+     * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDurationType}.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Labeled Duration Type</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Labeled Duration Type</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDurationType
+     * @see #setLabeledDurationType(ValueExpressionLabeledDurationType)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionLabeledDuration_LabeledDurationType()
+     * @model
+     * @generated
+     */
+    ValueExpressionLabeledDurationType getLabeledDurationType();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration#getLabeledDurationType <em>Labeled Duration Type</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Labeled Duration Type</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDurationType
+     * @see #getLabeledDurationType()
+     * @generated
+     */
+    void setLabeledDurationType(ValueExpressionLabeledDurationType value);
+
+	/**
+     * Returns the value of the '<em><b>Value Expr</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprLabeledDuration <em>Value Expr Labeled Duration</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Expr</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Expr</em>' containment reference.
+     * @see #setValueExpr(QueryValueExpression)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionLabeledDuration_ValueExpr()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprLabeledDuration
+     * @model opposite="valueExprLabeledDuration" containment="true" required="true"
+     * @generated
+     */
+    QueryValueExpression getValueExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration#getValueExpr <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Expr</em>' containment reference.
+     * @see #getValueExpr()
+     * @generated
+     */
+    void setValueExpr(QueryValueExpression value);
+
+} // SQLValueExpressionLabeledDuration
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionLabeledDurationType.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionLabeledDurationType.java
new file mode 100644
index 0000000..8037209
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionLabeledDurationType.java
@@ -0,0 +1,286 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionLabeledDurationType.java,v 1.4 2007/02/08 17:00:23 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>SQL Value Expression Labeled Duration Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionLabeledDurationType()
+ * @model
+ * @generated
+ */
+public final class ValueExpressionLabeledDurationType extends AbstractEnumerator {
+	/**
+     * The '<em><b>YEARS</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #YEARS_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int YEARS = 0;
+
+	/**
+     * The '<em><b>MONTHS</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #MONTHS_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int MONTHS = 1;
+
+	/**
+     * The '<em><b>DAYS</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #DAYS_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int DAYS = 2;
+
+	/**
+     * The '<em><b>HOURS</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #HOURS_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int HOURS = 3;
+
+	/**
+     * The '<em><b>MINUTES</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #MINUTES_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int MINUTES = 4;
+
+	/**
+     * The '<em><b>SECONDS</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #SECONDS_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int SECONDS = 5;
+
+	/**
+     * The '<em><b>MICROSECONDS</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #MICROSECONDS_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int MICROSECONDS = 6;
+
+	/**
+     * The '<em><b>YEARS</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>YEARS</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #YEARS
+     * @generated
+     * @ordered
+     */
+    public static final ValueExpressionLabeledDurationType YEARS_LITERAL = new ValueExpressionLabeledDurationType(YEARS, "YEARS", "YEARS");
+
+	/**
+     * The '<em><b>MONTHS</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>MONTHS</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #MONTHS
+     * @generated
+     * @ordered
+     */
+    public static final ValueExpressionLabeledDurationType MONTHS_LITERAL = new ValueExpressionLabeledDurationType(MONTHS, "MONTHS", "MONTHS");
+
+	/**
+     * The '<em><b>DAYS</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>DAYS</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #DAYS
+     * @generated
+     * @ordered
+     */
+    public static final ValueExpressionLabeledDurationType DAYS_LITERAL = new ValueExpressionLabeledDurationType(DAYS, "DAYS", "DAYS");
+
+	/**
+     * The '<em><b>HOURS</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>HOURS</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #HOURS
+     * @generated
+     * @ordered
+     */
+    public static final ValueExpressionLabeledDurationType HOURS_LITERAL = new ValueExpressionLabeledDurationType(HOURS, "HOURS", "HOURS");
+
+	/**
+     * The '<em><b>MINUTES</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>MINUTES</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #MINUTES
+     * @generated
+     * @ordered
+     */
+    public static final ValueExpressionLabeledDurationType MINUTES_LITERAL = new ValueExpressionLabeledDurationType(MINUTES, "MINUTES", "MINUTES");
+
+	/**
+     * The '<em><b>SECONDS</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>SECONDS</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #SECONDS
+     * @generated
+     * @ordered
+     */
+    public static final ValueExpressionLabeledDurationType SECONDS_LITERAL = new ValueExpressionLabeledDurationType(SECONDS, "SECONDS", "SECONDS");
+
+	/**
+     * The '<em><b>MICROSECONDS</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>MICROSECONDS</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #MICROSECONDS
+     * @generated
+     * @ordered
+     */
+    public static final ValueExpressionLabeledDurationType MICROSECONDS_LITERAL = new ValueExpressionLabeledDurationType(MICROSECONDS, "MICROSECONDS", "MICROSECONDS");
+
+	/**
+     * An array of all the '<em><b>Value Expression Labeled Duration Type</b></em>' enumerators.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private static final ValueExpressionLabeledDurationType[] VALUES_ARRAY =
+		new ValueExpressionLabeledDurationType[] {
+            YEARS_LITERAL,
+            MONTHS_LITERAL,
+            DAYS_LITERAL,
+            HOURS_LITERAL,
+            MINUTES_LITERAL,
+            SECONDS_LITERAL,
+            MICROSECONDS_LITERAL,
+        };
+
+	/**
+     * A public read-only list of all the '<em><b>Value Expression Labeled Duration Type</b></em>' enumerators.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+     * Returns the '<em><b>Value Expression Labeled Duration Type</b></em>' literal with the specified literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static ValueExpressionLabeledDurationType get(String literal) {
+        for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+            ValueExpressionLabeledDurationType result = VALUES_ARRAY[i];
+            if (result.toString().equals(literal)) {
+                return result;
+            }
+        }
+        return null;
+    }
+
+	/**
+     * Returns the '<em><b>Value Expression Labeled Duration Type</b></em>' literal with the specified name.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public static ValueExpressionLabeledDurationType getByName(String name) {
+        for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+            ValueExpressionLabeledDurationType result = VALUES_ARRAY[i];
+            if (result.getName().equals(name)) {
+                return result;
+            }
+        }
+        return null;
+    }
+
+	/**
+     * Returns the '<em><b>Value Expression Labeled Duration Type</b></em>' literal with the specified integer value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static ValueExpressionLabeledDurationType get(int value) {
+        switch (value) {
+            case YEARS: return YEARS_LITERAL;
+            case MONTHS: return MONTHS_LITERAL;
+            case DAYS: return DAYS_LITERAL;
+            case HOURS: return HOURS_LITERAL;
+            case MINUTES: return MINUTES_LITERAL;
+            case SECONDS: return SECONDS_LITERAL;
+            case MICROSECONDS: return MICROSECONDS_LITERAL;
+        }
+        return null;
+    }
+
+	/**
+     * Only this class can construct instances.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private ValueExpressionLabeledDurationType(int value, String name, String literal) {
+        super(value, name, literal);
+    }
+
+} //SQLValueExpressionLabeledDurationType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionNested.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionNested.java
new file mode 100644
index 0000000..9200ab7
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionNested.java
@@ -0,0 +1,55 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionNested.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Value Expression Nested</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested#getNestedValueExpr <em>Nested Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionNested()
+ * @model
+ * @generated
+ */
+public interface ValueExpressionNested extends QueryValueExpression{
+	/**
+     * Returns the value of the '<em><b>Nested Value Expr</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getNest <em>Nest</em>}'.
+     * <!-- begin-user-doc -->
+   * <p>
+   * If the meaning of the '<em>Nested Value Expr</em>' containment reference isn't clear,
+   * there really should be more of a description here...
+   * </p>
+   * <!-- end-user-doc -->
+     * @return the value of the '<em>Nested Value Expr</em>' containment reference.
+     * @see #setNestedValueExpr(QueryValueExpression)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionNested_NestedValueExpr()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getNest
+     * @model opposite="nest" containment="true" required="true"
+     * @generated
+     */
+  QueryValueExpression getNestedValueExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested#getNestedValueExpr <em>Nested Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Nested Value Expr</em>' containment reference.
+     * @see #getNestedValueExpr()
+     * @generated
+     */
+  void setNestedValueExpr(QueryValueExpression value);
+
+} // SQLValueExpressionNested
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionNullValue.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionNullValue.java
new file mode 100644
index 0000000..836e3e3
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionNullValue.java
@@ -0,0 +1,21 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionNullValue.java,v 1.1 2005/12/16 13:11:13 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Value Expression Null</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionNullValue()
+ * @model
+ * @generated
+ */
+public interface ValueExpressionNullValue extends ValueExpressionAtomic{
+} // SQLValueExpressionNull
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionRow.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionRow.java
new file mode 100644
index 0000000..5fb63bb
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionRow.java
@@ -0,0 +1,46 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Value Expression Row</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionRow#getValueExprList <em>Value Expr List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionRow()
+ * @model
+ * @generated
+ */
+public interface ValueExpressionRow extends QueryValueExpression {
+    /**
+     * Returns the value of the '<em><b>Value Expr List</b></em>' containment reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprRow <em>Value Expr Row</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Expr List</em>' containment reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Expr List</em>' containment reference list.
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionRow_ValueExprList()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValueExprRow
+     * @model type="org.eclipse.datatools.modelbase.sql.query.QueryValueExpression" opposite="valueExprRow" containment="true"
+     * @generated
+     */
+    EList getValueExprList();
+
+} // ValueExpressionRow
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionScalarSelect.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionScalarSelect.java
new file mode 100644
index 0000000..40cf754
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionScalarSelect.java
@@ -0,0 +1,55 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionScalarSelect.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Value Expression Scalar Select</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionScalarSelect#getQueryExpr <em>Query Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionScalarSelect()
+ * @model
+ * @generated
+ */
+public interface ValueExpressionScalarSelect extends ValueExpressionAtomic{
+	/**
+     * Returns the value of the '<em><b>Query Expr</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getValExprScalarSelect <em>Val Expr Scalar Select</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Query Expr</em>' reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Query Expr</em>' containment reference.
+     * @see #setQueryExpr(QueryExpressionRoot)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionScalarSelect_QueryExpr()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getValExprScalarSelect
+     * @model opposite="valExprScalarSelect" containment="true" required="true"
+     * @generated
+     */
+    QueryExpressionRoot getQueryExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionScalarSelect#getQueryExpr <em>Query Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Query Expr</em>' containment reference.
+     * @see #getQueryExpr()
+     * @generated
+     */
+  void setQueryExpr(QueryExpressionRoot value);
+
+} // SQLValueExpressionScalarSelect
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionSimple.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionSimple.java
new file mode 100644
index 0000000..e0bcf91
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionSimple.java
@@ -0,0 +1,53 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionSimple.java,v 1.2 2005/12/22 22:18:50 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Value Expression Simple</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionSimple#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionSimple()
+ * @model
+ * @generated
+ */
+public interface ValueExpressionSimple extends ValueExpressionAtomic{
+	/**
+     * Returns the value of the '<em><b>Value</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value</em>' attribute.
+     * @see #setValue(String)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionSimple_Value()
+     * @model
+     * @generated
+     */
+    String getValue();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionSimple#getValue <em>Value</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value</em>' attribute.
+     * @see #getValue()
+     * @generated
+     */
+    void setValue(String value);
+
+} // SQLValueExpressionSimple
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionUnaryOperator.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionUnaryOperator.java
new file mode 100644
index 0000000..26a1d9b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionUnaryOperator.java
@@ -0,0 +1,178 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionUnaryOperator.java,v 1.4 2007/02/08 17:00:23 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>SQL Value Expression Unary Operator</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionUnaryOperator()
+ * @model
+ * @generated
+ */
+public final class ValueExpressionUnaryOperator extends AbstractEnumerator {
+	/**
+     * The '<em><b>NONE</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #NONE_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int NONE = 0;
+
+	/**
+     * The '<em><b>PLUS</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #PLUS_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int PLUS = 1;
+
+	/**
+     * The '<em><b>MINUS</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #MINUS_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int MINUS = 2;
+
+	/**
+     * The '<em><b>NONE</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>NONE</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #NONE
+     * @generated
+     * @ordered
+     */
+    public static final ValueExpressionUnaryOperator NONE_LITERAL = new ValueExpressionUnaryOperator(NONE, "NONE", "NONE");
+
+	/**
+     * The '<em><b>PLUS</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>PLUS</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #PLUS
+     * @generated
+     * @ordered
+     */
+    public static final ValueExpressionUnaryOperator PLUS_LITERAL = new ValueExpressionUnaryOperator(PLUS, "PLUS", "PLUS");
+
+	/**
+     * The '<em><b>MINUS</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>MINUS</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #MINUS
+     * @generated
+     * @ordered
+     */
+    public static final ValueExpressionUnaryOperator MINUS_LITERAL = new ValueExpressionUnaryOperator(MINUS, "MINUS", "MINUS");
+
+	/**
+     * An array of all the '<em><b>Value Expression Unary Operator</b></em>' enumerators.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private static final ValueExpressionUnaryOperator[] VALUES_ARRAY =
+		new ValueExpressionUnaryOperator[] {
+            NONE_LITERAL,
+            PLUS_LITERAL,
+            MINUS_LITERAL,
+        };
+
+	/**
+     * A public read-only list of all the '<em><b>Value Expression Unary Operator</b></em>' enumerators.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+     * Returns the '<em><b>Value Expression Unary Operator</b></em>' literal with the specified literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static ValueExpressionUnaryOperator get(String literal) {
+        for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+            ValueExpressionUnaryOperator result = VALUES_ARRAY[i];
+            if (result.toString().equals(literal)) {
+                return result;
+            }
+        }
+        return null;
+    }
+
+	/**
+     * Returns the '<em><b>Value Expression Unary Operator</b></em>' literal with the specified name.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public static ValueExpressionUnaryOperator getByName(String name) {
+        for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+            ValueExpressionUnaryOperator result = VALUES_ARRAY[i];
+            if (result.getName().equals(name)) {
+                return result;
+            }
+        }
+        return null;
+    }
+
+	/**
+     * Returns the '<em><b>Value Expression Unary Operator</b></em>' literal with the specified integer value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static ValueExpressionUnaryOperator get(int value) {
+        switch (value) {
+            case NONE: return NONE_LITERAL;
+            case PLUS: return PLUS_LITERAL;
+            case MINUS: return MINUS_LITERAL;
+        }
+        return null;
+    }
+
+	/**
+     * Only this class can construct instances.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private ValueExpressionUnaryOperator(int value, String name, String literal) {
+        super(value, name, literal);
+    }
+
+} //SQLValueExpressionUnaryOperator
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionVariable.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionVariable.java
new file mode 100644
index 0000000..a53a4d3
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValueExpressionVariable.java
@@ -0,0 +1,55 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionVariable.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Value Expression Variable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionVariable#getQuerySelect <em>Query Select</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionVariable()
+ * @model
+ * @generated
+ */
+public interface ValueExpressionVariable extends ValueExpressionAtomic{
+	/**
+     * Returns the value of the '<em><b>Query Select</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QuerySelect#getIntoClause <em>Into Clause</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Query Select</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Query Select</em>' container reference.
+     * @see #setQuerySelect(QuerySelect)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValueExpressionVariable_QuerySelect()
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySelect#getIntoClause
+     * @model opposite="intoClause"
+     * @generated
+     */
+    QuerySelect getQuerySelect();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionVariable#getQuerySelect <em>Query Select</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Query Select</em>' container reference.
+     * @see #getQuerySelect()
+     * @generated
+     */
+    void setQuerySelect(QuerySelect value);
+
+} // SQLValueExpressionVariable
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValuesRow.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValuesRow.java
new file mode 100644
index 0000000..2d8278b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/ValuesRow.java
@@ -0,0 +1,104 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValuesRow.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Values Row</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.ValuesRow#getInsertStatement <em>Insert Statement</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.ValuesRow#getExprList <em>Expr List</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.ValuesRow#getQueryValues <em>Query Values</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValuesRow()
+ * @model
+ * @generated
+ */
+public interface ValuesRow extends SQLQueryObject{
+	/**
+     * Returns the value of the '<em><b>Insert Statement</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryInsertStatement#getSourceValuesRowList <em>Source Values Row List</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Insert Statement</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Insert Statement</em>' container reference.
+     * @see #setInsertStatement(QueryInsertStatement)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValuesRow_InsertStatement()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryInsertStatement#getSourceValuesRowList
+     * @model opposite="sourceValuesRowList"
+     * @generated
+     */
+    QueryInsertStatement getInsertStatement();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.ValuesRow#getInsertStatement <em>Insert Statement</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Insert Statement</em>' container reference.
+     * @see #getInsertStatement()
+     * @generated
+     */
+    void setInsertStatement(QueryInsertStatement value);
+
+	/**
+     * Returns the value of the '<em><b>Expr List</b></em>' containment reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValuesRow <em>Values Row</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Expr List</em>' containment reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Expr List</em>' containment reference list.
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValuesRow_ExprList()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression#getValuesRow
+     * @model type="org.eclipse.datatools.modelbase.sql.query.QueryValueExpression" opposite="valuesRow" containment="true" required="true"
+     * @generated
+     */
+    EList getExprList();
+
+	/**
+     * Returns the value of the '<em><b>Query Values</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryValues#getValuesRowList <em>Values Row List</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Query Values</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Query Values</em>' container reference.
+     * @see #setQueryValues(QueryValues)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getValuesRow_QueryValues()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValues#getValuesRowList
+     * @model opposite="valuesRowList" required="true"
+     * @generated
+     */
+    QueryValues getQueryValues();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.ValuesRow#getQueryValues <em>Query Values</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Query Values</em>' container reference.
+     * @see #getQueryValues()
+     * @generated
+     */
+    void setQueryValues(QueryValues value);
+
+} // SQLValuesRow
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/WithTableReference.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/WithTableReference.java
new file mode 100644
index 0000000..29e604a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/WithTableReference.java
@@ -0,0 +1,55 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: WithTableReference.java,v 1.2 2005/12/22 22:18:50 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>With Table Reference</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.WithTableReference#getWithTableSpecification <em>With Table Specification</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getWithTableReference()
+ * @model
+ * @generated
+ */
+public interface WithTableReference extends TableExpression{
+	/**
+     * Returns the value of the '<em><b>With Table Specification</b></em>' reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.WithTableSpecification#getWithTableReferences <em>With Table References</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>With Table Specification</em>' reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>With Table Specification</em>' reference.
+     * @see #setWithTableSpecification(WithTableSpecification)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getWithTableReference_WithTableSpecification()
+     * @see org.eclipse.datatools.modelbase.sql.query.WithTableSpecification#getWithTableReferences
+     * @model opposite="withTableReferences" required="true"
+     * @generated
+     */
+    WithTableSpecification getWithTableSpecification();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.WithTableReference#getWithTableSpecification <em>With Table Specification</em>}' reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>With Table Specification</em>' reference.
+     * @see #getWithTableSpecification()
+     * @generated
+     */
+    void setWithTableSpecification(WithTableSpecification value);
+
+} // WithTableReference
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/WithTableSpecification.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/WithTableSpecification.java
new file mode 100644
index 0000000..5b4b0a0
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/WithTableSpecification.java
@@ -0,0 +1,123 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: WithTableSpecification.java,v 1.2 2005/12/22 22:18:49 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>With Table Specification</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.WithTableSpecification#getQueryExpressionRoot <em>Query Expression Root</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.WithTableSpecification#getWithTableQueryExpr <em>With Table Query Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.WithTableSpecification#getWithTableReferences <em>With Table References</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.WithTableSpecification#getColumnNameList <em>Column Name List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getWithTableSpecification()
+ * @model
+ * @generated
+ */
+public interface WithTableSpecification extends SQLQueryObject{
+	/**
+     * Returns the value of the '<em><b>Query Expression Root</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getWithClause <em>With Clause</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Query Expression Root</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Query Expression Root</em>' container reference.
+     * @see #setQueryExpressionRoot(QueryExpressionRoot)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getWithTableSpecification_QueryExpressionRoot()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getWithClause
+     * @model opposite="withClause"
+     * @generated
+     */
+    QueryExpressionRoot getQueryExpressionRoot();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.WithTableSpecification#getQueryExpressionRoot <em>Query Expression Root</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Query Expression Root</em>' container reference.
+     * @see #getQueryExpressionRoot()
+     * @generated
+     */
+    void setQueryExpressionRoot(QueryExpressionRoot value);
+
+	/**
+     * Returns the value of the '<em><b>With Table Query Expr</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getWithTableSpecification <em>With Table Specification</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>With Table Query Expr</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>With Table Query Expr</em>' containment reference.
+     * @see #setWithTableQueryExpr(QueryExpressionBody)
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getWithTableSpecification_WithTableQueryExpr()
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody#getWithTableSpecification
+     * @model opposite="withTableSpecification" containment="true" required="true"
+     * @generated
+     */
+    QueryExpressionBody getWithTableQueryExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.query.WithTableSpecification#getWithTableQueryExpr <em>With Table Query Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>With Table Query Expr</em>' containment reference.
+     * @see #getWithTableQueryExpr()
+     * @generated
+     */
+    void setWithTableQueryExpr(QueryExpressionBody value);
+
+	/**
+     * Returns the value of the '<em><b>With Table References</b></em>' reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.query.WithTableReference}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.WithTableReference#getWithTableSpecification <em>With Table Specification</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>With Table References</em>' reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>With Table References</em>' reference list.
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getWithTableSpecification_WithTableReferences()
+     * @see org.eclipse.datatools.modelbase.sql.query.WithTableReference#getWithTableSpecification
+     * @model type="org.eclipse.datatools.modelbase.sql.query.WithTableReference" opposite="withTableSpecification"
+     * @generated
+     */
+    EList getWithTableReferences();
+
+	/**
+     * Returns the value of the '<em><b>Column Name List</b></em>' containment reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.query.ColumnName}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.query.ColumnName#getWithTableSpecification <em>With Table Specification</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Column Name List</em>' containment reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Column Name List</em>' containment reference list.
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#getWithTableSpecification_ColumnNameList()
+     * @see org.eclipse.datatools.modelbase.sql.query.ColumnName#getWithTableSpecification
+     * @model type="org.eclipse.datatools.modelbase.sql.query.ColumnName" opposite="withTableSpecification" containment="true"
+     * @generated
+     */
+    EList getColumnNameList();
+
+} // WithTableSpecification
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/helper/DataTypeHelper.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/helper/DataTypeHelper.java
new file mode 100644
index 0000000..2a7173c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/helper/DataTypeHelper.java
@@ -0,0 +1,389 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.query.helper;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.PredefinedDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.PrimitiveType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesFactory;
+
+/**
+ * This helper class provides convenience methods related to
+ * {@link org.eclipse.datatools.modelbase.sql.datatypes.PredefinedDataType}.
+ *
+ * @author ckadner
+ */
+public class DataTypeHelper {
+
+    public static final String TYPENAME_ARRAY                  = "ARRAY"; //$NON-NLS-1$
+    public static final String TYPENAME_BIGINT                 = "BIGINT"; //$NON-NLS-1$
+    public static final String TYPENAME_BINARY                 = "BINARY"; //$NON-NLS-1$
+    public static final String TYPENAME_BINARY_VARYING         = "BINARY VARYING"; //$NON-NLS-1$
+    public static final String TYPENAME_BINARY_LARGE_OBJECT    = "BINARY LARGE OBJECT"; //$NON-NLS-1$
+    public static final String TYPENAME_BLOB                   = "BLOB"; //$NON-NLS-1$
+    public static final String TYPENAME_BOOLEAN                = "BOOLEAN"; //$NON-NLS-1$
+    public static final String TYPENAME_CHAR                   = "CHAR"; //$NON-NLS-1$
+    public static final String TYPENAME_CHAR_LARGE_OBJECT      = "CHAR LARGE OBJECT"; //$NON-NLS-1$
+    public static final String TYPENAME_CHAR_VARYING           = "CHAR VARYING"; //$NON-NLS-1$
+    public static final String TYPENAME_CHARACTER              = "CHARACTER"; //$NON-NLS-1$
+    public static final String TYPENAME_CHARACTER_LARGE_OBJECT = "CHARACTER LARGE OBJECT"; //$NON-NLS-1$
+    public static final String TYPENAME_CHARACTER_VARYING      = "CHARACTER VARYING"; //$NON-NLS-1$
+    public static final String TYPENAME_CLOB                   = "CLOB"; //$NON-NLS-1$
+    public static final String TYPENAME_DATALINK               = "DATALINK"; //$NON-NLS-1$
+    public static final String TYPENAME_DATE                   = "DATE"; //$NON-NLS-1$
+    public static final String TYPENAME_DBCLOB                 = "DBCLOB"; //$NON-NLS-1$
+    public static final String TYPENAME_DEC                    = "DEC"; //$NON-NLS-1$
+    public static final String TYPENAME_DECFLOAT               = "DECFLOAT"; //$NON-NLS-1$
+    public static final String TYPENAME_DECIMAL                = "DECIMAL"; //$NON-NLS-1$
+    public static final String TYPENAME_DOUBLE                 = "DOUBLE"; //$NON-NLS-1$
+    public static final String TYPENAME_DOUBLE_PRECISION       = "DOUBLE PRECISION"; //$NON-NLS-1$
+    public static final String TYPENAME_FLOAT                  = "FLOAT"; //$NON-NLS-1$
+    public static final String TYPENAME_GRAPHIC                = "GRAPHIC"; //$NON-NLS-1$
+    public static final String TYPENAME_INT                    = "INT"; //$NON-NLS-1$
+    public static final String TYPENAME_INTEGER                = "INTEGER"; //$NON-NLS-1$
+    public static final String TYPENAME_INTERVAL               = "INTERVAL"; //$NON-NLS-1$
+    public static final String TYPENAME_LONGVARCHAR            = "LONGVARCHAR"; //$NON-NLS-1$
+    public static final String TYPENAME_LONGVARG               = "LONGVARG"; //$NON-NLS-1$
+    public static final String TYPENAME_LONGVARN               = "LONGVARN"; //$NON-NLS-1$
+    public static final String TYPENAME_LONG_VARCHAR           = "LONG VARCHAR"; //$NON-NLS-1$
+    public static final String TYPENAME_LONG_VARGRAPHIC        = "LONG VARGRAPHIC"; //$NON-NLS-1$
+    public static final String TYPENAME_MULTISET               = "MULTISET"; //$NON-NLS-1$
+    public static final String TYPENAME_NATIONAL_CHAR          = "NATIONAL CHAR"; //$NON-NLS-1$
+    public static final String TYPENAME_NATIONAL_CHAR_LARGE_OBJECT = "NATIONAL CHAR LARGE OBJECT"; //$NON-NLS-1$
+    public static final String TYPENAME_NATIONAL_CHAR_VARYING  = "NATIONAL CHAR VARYING"; //$NON-NLS-1$
+    public static final String TYPENAME_NATIONAL_CHARACTER     = "NATIONAL CHARACTER"; //$NON-NLS-1$
+    public static final String TYPENAME_NATIONAL_CHARACTER_LARGE_OBJECT = "NATIONAL CHARACTER LARGE OBJECT"; //$NON-NLS-1$
+    public static final String TYPENAME_NATIONAL_CHARACTER_VARYING = "NATIONAL CHARACTER VARYING"; //$NON-NLS-1$
+    public static final String TYPENAME_NCHAR                  = "NCHAR"; //$NON-NLS-1$
+    public static final String TYPENAME_NCHAR_LARGE_OBJECT     = "NCHAR LARGE OBJECT"; //$NON-NLS-1$
+    public static final String TYPENAME_NCHAR_VARYING          = "NCHAR VARYING"; //$NON-NLS-1$
+    public static final String TYPENAME_NCLOB                  = "NCLOB"; //$NON-NLS-1$
+    public static final String TYPENAME_NUM                    = "NUM"; //$NON-NLS-1$
+    public static final String TYPENAME_NUMERIC                = "NUMERIC"; //$NON-NLS-1$
+    public static final String TYPENAME_REAL                   = "REAL"; //$NON-NLS-1$
+    public static final String TYPENAME_REF                    = "REF"; //$NON-NLS-1$
+    public static final String TYPENAME_ROW                    = "ROW"; //$NON-NLS-1$
+    public static final String TYPENAME_ROWID                  = "ROWID"; //$NON-NLS-1$
+    public static final String TYPENAME_SMALLINT               = "SMALLINT"; //$NON-NLS-1$
+    public static final String TYPENAME_TIME                   = "TIME"; //$NON-NLS-1$
+    public static final String TYPENAME_TIMESTAMP              = "TIMESTAMP"; //$NON-NLS-1$
+    public static final String TYPENAME_VARBINARY              = "VARBINARY"; //$NON-NLS-1$
+    public static final String TYPENAME_VARCHAR                = "VARCHAR"; //$NON-NLS-1$
+    public static final String TYPENAME_VARGRAPHIC             = "VARGRAPHIC"; //$NON-NLS-1$
+    public static final String TYPENAME_XML                    = "XML"; //$NON-NLS-1$
+    public static final String TYPENAME_XML_TYPE               = "XML"; //$NON-NLS-1$
+	
+	/** 
+	 * Gets the JDBC datatype identifier corresponding to the given named datatype.
+	 * This is for use with the datatype names returned from the FunctionHelper.
+	 * Note: there is probably a utility somewhere else that does this.  If so,
+	 * we can get rid of this method.
+	 *
+	 * @param aTypeName a type name to use to lookup a JDBC datatype
+	 * @return int a JDBC type identifier.
+	 */
+	public static int getJDBCTypeForNamedType( String aTypeName ) {
+	  int jdbcTypeID = 0;
+
+	  // The types that appear most frequently in the FunctionHelper parameter
+	  // lists are checked first.
+	  if (aTypeName.equalsIgnoreCase(TYPENAME_INTEGER) || aTypeName.equalsIgnoreCase(TYPENAME_INT)) {
+	    jdbcTypeID = java.sql.Types.INTEGER; /* 4 */
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_DECIMAL) || aTypeName.equalsIgnoreCase(TYPENAME_DEC)
+	        || aTypeName.equalsIgnoreCase(TYPENAME_NUMERIC) || aTypeName.equalsIgnoreCase("NUM")) { //$NON-NLS-1$
+	    jdbcTypeID = java.sql.Types.DECIMAL; /* 3 */
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_VARCHAR)
+	        || aTypeName.equalsIgnoreCase(TYPENAME_CHARACTER_VARYING) || aTypeName.equalsIgnoreCase("CHAR VARYING")) { //$NON-NLS-1$
+	    jdbcTypeID = java.sql.Types.VARCHAR; /* 12 */
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_DOUBLE) || aTypeName.equalsIgnoreCase(TYPENAME_DOUBLE_PRECISION)) {
+	    jdbcTypeID = java.sql.Types.DOUBLE; /* 8 */
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_CHARACTER) || aTypeName.equalsIgnoreCase(TYPENAME_CHAR)) {
+	    jdbcTypeID = java.sql.Types.CHAR; /* 1 */
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_SMALLINT)) {
+	    jdbcTypeID = java.sql.Types.SMALLINT; /* 5 */
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_BIGINT)) {
+	    jdbcTypeID = java.sql.Types.BIGINT; /* -5 */
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_REAL)) {
+	    jdbcTypeID = java.sql.Types.REAL; /* 7 */
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_DATE)) {
+	    jdbcTypeID = java.sql.Types.DATE; /* 91 */
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_TIME)) {
+	    jdbcTypeID = java.sql.Types.TIME; /* 92 */
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_TIMESTAMP)) {
+	    jdbcTypeID = java.sql.Types.TIMESTAMP; /* 93 */
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_LONG_VARCHAR)) {
+	    jdbcTypeID = java.sql.Types.LONGVARCHAR; /* -1 */
+	  }
+	  // Graphic types map to JDBC char types.
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_GRAPHIC)) {
+	    jdbcTypeID = java.sql.Types.CHAR; /* 1 */
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_VARGRAPHIC)) {
+	    jdbcTypeID = java.sql.Types.VARCHAR; /* 12 */
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_LONG_VARGRAPHIC)) {
+	    jdbcTypeID = java.sql.Types.LONGVARCHAR; /* -1 */
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_VARBINARY)) {
+	    jdbcTypeID = java.sql.Types.VARBINARY; /* -3 */
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_DATALINK)) {
+	    jdbcTypeID = java.sql.Types.DATALINK; /* 70 */
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_BLOB)) {
+	    jdbcTypeID = java.sql.Types.BLOB; /* 2004 */
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_CLOB)) {
+	    jdbcTypeID = java.sql.Types.CLOB; /* 2005 */
+	  }
+	  // DBCLOB maps to JDBC CLOB type.
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_DBCLOB)) {
+	    jdbcTypeID = java.sql.Types.CLOB; /* 2005 */
+	  }
+
+	  return jdbcTypeID;
+	}
+
+	/**
+	 * Gets the PrimitiveType enum value corresponding to the given type name.
+	 *
+	 * @param aTypeName a  type name to use to lookup a PrimitiveType
+	 * @return the PrimitiveType corresponding to the named type
+	 */
+	public static int getPrimitiveTypeForNamedType( String aTypeName ) {
+	  // @d301485 bgp 09Feb2004 - new method
+	  int typeEnum = 0;
+	  if (aTypeName.equalsIgnoreCase(TYPENAME_BIGINT)) {
+	    typeEnum = PrimitiveType.INTEGER;
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_BLOB)) {
+	    typeEnum = PrimitiveType.BINARY_LARGE_OBJECT;
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_CHAR)) {
+	    typeEnum = PrimitiveType.CHARACTER;
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_CLOB)) {
+	    typeEnum = PrimitiveType.CHARACTER_LARGE_OBJECT;
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_DATE)) {
+	    typeEnum = PrimitiveType.DATE;
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_DBCLOB)) {
+	    typeEnum = PrimitiveType.NATIONAL_CHARACTER_LARGE_OBJECT;
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_DECIMAL)) {
+	    typeEnum = PrimitiveType.DECIMAL;
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_DOUBLE)) {
+	    typeEnum = PrimitiveType.DOUBLE_PRECISION;
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_GRAPHIC)) {
+	    typeEnum = PrimitiveType.NATIONAL_CHARACTER;
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_INTEGER)) {
+	    typeEnum = PrimitiveType.INTEGER;
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_LONGVARCHAR)) {
+	    typeEnum = PrimitiveType.CHARACTER_LARGE_OBJECT;
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_LONGVARG)) {
+	      typeEnum = PrimitiveType.NATIONAL_CHARACTER_LARGE_OBJECT;
+	    }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_LONGVARN)) {
+	      typeEnum = PrimitiveType.NATIONAL_CHARACTER_LARGE_OBJECT;
+	    }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_REAL)) {
+	    typeEnum = PrimitiveType.REAL;
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_SMALLINT)) {
+	    typeEnum = PrimitiveType.SMALLINT;
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_TIME)) {
+	    typeEnum = PrimitiveType.TIME;
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_TIMESTAMP)) {
+	    typeEnum = PrimitiveType.TIMESTAMP;
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_VARCHAR)) {
+	    typeEnum = PrimitiveType.CHARACTER_VARYING;
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_VARGRAPHIC)) {
+	    typeEnum = PrimitiveType.NATIONAL_CHARACTER_VARYING;
+	  }
+
+	  return typeEnum;
+	}
+
+    /**
+	 * Gets the <code>PredefinedDataType</code> PrimitiveType enum value corresponding to the given type name.
+	 * Use type names in constants <code>TYPENAME_*</code> provided by
+	 * <code>ValueExpressionHelper</code>.
+	 *
+	 * @param aTypeName a type name to use to look up a PrimitiveType
+	 * @return the PrimitiveType corresponding to the named type
+	 */
+	public static PredefinedDataType getPredefinedDataTypeForNamedType( String aTypeName ) {
+	  // ck 04Sep2004 - new method
+	  PrimitiveType primitive = null;
+	  PredefinedDataType dataType = null;
+	  SQLDataTypesFactory dataTypesFactory = SQLDataTypesFactory.eINSTANCE;
+	  if (aTypeName.equalsIgnoreCase(TYPENAME_BIGINT)) {
+	    primitive = PrimitiveType.INTEGER_LITERAL;
+	    dataType = dataTypesFactory.createIntegerDataType();
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_BLOB)) {
+	    primitive = PrimitiveType.BINARY_LARGE_OBJECT_LITERAL;
+	    dataType = dataTypesFactory.createBinaryStringDataType();
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_CHAR)) {
+	    primitive = PrimitiveType.CHARACTER_LITERAL;
+	    dataType = dataTypesFactory.createCharacterStringDataType();
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_CLOB)) {
+	    primitive = PrimitiveType.CHARACTER_LARGE_OBJECT_LITERAL;
+	    dataType = dataTypesFactory.createCharacterStringDataType();
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_DATE)) {
+	    primitive = PrimitiveType.DATE_LITERAL;
+	    dataType = dataTypesFactory.createDateDataType();
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_DBCLOB)) {
+	    primitive = PrimitiveType.NATIONAL_CHARACTER_LARGE_OBJECT_LITERAL;
+	    dataType = dataTypesFactory.createCharacterStringDataType();
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_DECIMAL)) {
+	    primitive = PrimitiveType.DECIMAL_LITERAL;
+	    dataType = dataTypesFactory.createFixedPrecisionDataType();
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_DOUBLE)) {
+	    primitive = PrimitiveType.DOUBLE_PRECISION_LITERAL;
+	    dataType = dataTypesFactory.createApproximateNumericDataType();
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_GRAPHIC)) {
+	    primitive = PrimitiveType.NATIONAL_CHARACTER_LITERAL;
+	    dataType = dataTypesFactory.createCharacterStringDataType();
+	  }
+      else if (aTypeName.equalsIgnoreCase(TYPENAME_NATIONAL_CHARACTER)) {
+          primitive = PrimitiveType.NATIONAL_CHARACTER_LITERAL;
+          dataType = dataTypesFactory.createCharacterStringDataType();
+      }
+      else if (aTypeName.equalsIgnoreCase(TYPENAME_INTEGER)) {
+	    primitive = PrimitiveType.INTEGER_LITERAL;
+	    dataType = dataTypesFactory.createIntegerDataType();
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_LONGVARCHAR)) {
+	    primitive = PrimitiveType.CHARACTER_LARGE_OBJECT_LITERAL;
+	    dataType = dataTypesFactory.createCharacterStringDataType();
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_LONGVARG)) {
+	      primitive = PrimitiveType.NATIONAL_CHARACTER_LARGE_OBJECT_LITERAL;
+	      dataType = dataTypesFactory.createCharacterStringDataType();
+	    }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_LONGVARN)) {
+	      primitive = PrimitiveType.NATIONAL_CHARACTER_LARGE_OBJECT_LITERAL;
+	      dataType = dataTypesFactory.createCharacterStringDataType();
+	    }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_REAL)) {
+	    primitive = PrimitiveType.REAL_LITERAL; //TODO: check
+	    dataType = dataTypesFactory.createFixedPrecisionDataType();
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_SMALLINT)) {
+	    primitive = PrimitiveType.SMALLINT_LITERAL;
+	    dataType = dataTypesFactory.createIntegerDataType();
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_TIME)) {
+	    primitive = PrimitiveType.TIME_LITERAL;
+	    dataType = dataTypesFactory.createTimeDataType();
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_TIMESTAMP)) {
+	    primitive = PrimitiveType.TIMESTAMP_LITERAL;
+	    dataType = dataTypesFactory.createTimeDataType();
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_VARCHAR)) {
+	    primitive = PrimitiveType.CHARACTER_VARYING_LITERAL;
+	    dataType = dataTypesFactory.createCharacterStringDataType();
+	  }
+	  else if (aTypeName.equalsIgnoreCase(TYPENAME_VARGRAPHIC)) {
+	    primitive = PrimitiveType.NATIONAL_CHARACTER_VARYING_LITERAL;
+	    dataType = dataTypesFactory.createCharacterStringDataType();
+	  }
+      else if (aTypeName.equalsIgnoreCase(TYPENAME_NATIONAL_CHARACTER_VARYING)) {
+        primitive = PrimitiveType.NATIONAL_CHARACTER_VARYING_LITERAL;
+        dataType = dataTypesFactory.createCharacterStringDataType();
+      }
+      else if (aTypeName.equalsIgnoreCase(TYPENAME_NUMERIC)) {
+        primitive = PrimitiveType.NUMERIC_LITERAL;
+        dataType = dataTypesFactory.createFixedPrecisionDataType();
+      }
+      else if (aTypeName.equalsIgnoreCase(TYPENAME_FLOAT)) {
+        primitive = PrimitiveType.FLOAT_LITERAL;
+        dataType = dataTypesFactory.createApproximateNumericDataType();
+      }
+      else if (aTypeName.equalsIgnoreCase(TYPENAME_DATALINK)) {
+        primitive = PrimitiveType.DATALINK_LITERAL;
+        dataType = dataTypesFactory.createDataLinkDataType();       
+      }
+	  
+	  if (dataType != null) {
+	      dataType.setPrimitiveType(primitive);
+	  }
+
+	  return dataType;
+	}
+
+	/**
+	 * Returns the name of the given '<em><b>Primitive Type</b></em>' literal.
+	 * 
+	 * @param primitiveType the primitive type for which the name is needed
+	 * @return the String representing the <code>PrimitiveType</code>, one of the
+	 * 		<code>TYPENAME_xxx</code> constants
+	 * @see PrimitiveType
+	 */
+	public static String getPrimitiveTypeName(PrimitiveType primitiveType) {
+	    if (primitiveType == PrimitiveType.CHARACTER_LITERAL) { return TYPENAME_CHARACTER; }
+        if (primitiveType == PrimitiveType.CHARACTER_VARYING_LITERAL) { return TYPENAME_VARCHAR; }
+        if (primitiveType == PrimitiveType.CHARACTER_LARGE_OBJECT_LITERAL) { return TYPENAME_CHARACTER_LARGE_OBJECT; }
+        if (primitiveType == PrimitiveType.NATIONAL_CHARACTER_LITERAL) { return TYPENAME_NATIONAL_CHARACTER; }
+        if (primitiveType == PrimitiveType.NATIONAL_CHARACTER_VARYING_LITERAL) { return TYPENAME_VARGRAPHIC; }
+        if (primitiveType == PrimitiveType.NATIONAL_CHARACTER_LARGE_OBJECT_LITERAL) { return TYPENAME_NATIONAL_CHARACTER_LARGE_OBJECT; }
+        if (primitiveType == PrimitiveType.BINARY_LITERAL) { return TYPENAME_BINARY; }
+        if (primitiveType == PrimitiveType.BINARY_VARYING_LITERAL) { return TYPENAME_BINARY_VARYING; }
+        if (primitiveType == PrimitiveType.BINARY_LARGE_OBJECT_LITERAL) { return TYPENAME_BINARY_LARGE_OBJECT; }
+        if (primitiveType == PrimitiveType.NUMERIC_LITERAL) { return TYPENAME_NUMERIC; }
+        if (primitiveType == PrimitiveType.DECIMAL_LITERAL) { return TYPENAME_DECIMAL; }
+        if (primitiveType == PrimitiveType.SMALLINT_LITERAL) { return TYPENAME_SMALLINT; }
+        if (primitiveType == PrimitiveType.INTEGER_LITERAL) { return TYPENAME_INTEGER; }
+        if (primitiveType == PrimitiveType.BIGINT_LITERAL) { return TYPENAME_BIGINT; }
+        if (primitiveType == PrimitiveType.FLOAT_LITERAL) { return TYPENAME_FLOAT; }
+        if (primitiveType == PrimitiveType.REAL_LITERAL) { return TYPENAME_REAL; }
+        if (primitiveType == PrimitiveType.DOUBLE_PRECISION_LITERAL) { return TYPENAME_DOUBLE_PRECISION; }
+        if (primitiveType == PrimitiveType.BOOLEAN_LITERAL) { return TYPENAME_BOOLEAN; }
+        if (primitiveType == PrimitiveType.DATE_LITERAL) { return TYPENAME_DATE; }
+        if (primitiveType == PrimitiveType.TIME_LITERAL) { return TYPENAME_TIME; }
+        if (primitiveType == PrimitiveType.TIMESTAMP_LITERAL) { return TYPENAME_TIMESTAMP; }
+        if (primitiveType == PrimitiveType.INTERVAL_LITERAL) { return TYPENAME_INTERVAL; }
+        if (primitiveType == PrimitiveType.DATALINK_LITERAL) { return TYPENAME_DATALINK; }
+        if (primitiveType == PrimitiveType.XML_TYPE_LITERAL) { return TYPENAME_XML_TYPE; }
+	    
+		return primitiveType.getName();
+	}
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/helper/DatabaseHelper.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/helper/DatabaseHelper.java
new file mode 100644
index 0000000..a94edff
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/helper/DatabaseHelper.java
@@ -0,0 +1,328 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.query.helper;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryStatement;
+import org.eclipse.datatools.modelbase.sql.query.TableInDatabase;
+import org.eclipse.datatools.modelbase.sql.query.TableReference;
+import org.eclipse.datatools.modelbase.sql.routines.Procedure;
+import org.eclipse.datatools.modelbase.sql.schema.Catalog;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+
+/**
+ * This class provides a set of utility methods for dealing with RDBDatabase
+ * objects and associated objects such as RDBTable and RDBColumn.
+ */
+public class DatabaseHelper {
+  
+  /** DO NOT USE ANYMORE IN CONNECTION WITH org.eclipse.datatools.sqltools.parsers.sql.query PARSER!
+   * Resolves the table references in the From clause of the given query so that
+   * each has the correct RDBTable attached to it.
+   * 
+   * @param aSQLStmt
+   *            a SQL statement which's table refernces are to be resolved
+   * @param aDatabase
+   *            a Database to use to get RDBTables
+   * @param aDefaultSchemaName
+   *            the name of the Schema the tables will be looked up for,
+   *            if the tables are not already qualified 
+   * 
+   * @deprecated table reference resolving is now done by post parse processer,
+   * use {@link org.eclipse.datatools.modelbase.parsers.sql.query.postparse.TableReferenceResolver}
+   * with {@link org.eclipse.datatools.modelbase.parsers.sql.query.SQLQueryParserManager}
+   */
+  public static void resolveTableReferenceRDBTables(QueryStatement aSQLStmt,
+                                                    Database aDatabase,
+                                                    String aDefaultSchemaName)
+  {
+      List tableRefList = StatementHelper.getTablesForStatement(aSQLStmt);
+      resolveTableReferenceRDBTables(tableRefList, aDatabase, aDefaultSchemaName);
+  }
+
+  /** DO NOT USE ANYMORE IN CONNECTION WITH org.eclipse.datatools.sqltools.parsers.sql.query PARSER!
+   * Resolves the table references in the From clause of the given query so that
+   * each has the correct RDBTable attached to it.
+   * 
+   * @param aTableRefList
+   *            a list of table references to be resolved
+   * @param aDatabase
+   *            an Database to use to get RDBTables
+   * @param aDefaultSchemaName
+   *            the name of the Schema the tables will be looked up for, if the tables 
+   *            are not already qualified 
+   * 
+   * @deprecated table reference resolving is now done by post parse processer,
+   * use {@link org.eclipse.datatools.modelbase.parsers.sql.query.postparse.TableReferenceResolver}
+   * with {@link org.eclipse.datatools.modelbase.parsers.sql.query.SQLQueryParserManager}
+   */
+  public static void resolveTableReferenceRDBTables(List aTableRefList,
+                                                    Database aDatabase,
+                                                    String aDefaultSchemaName )
+  {
+
+      TableReference tblRef;
+      TableInDatabase table = null;
+
+      for (Iterator tableIt = aTableRefList.iterator(); tableIt.hasNext();)
+      {
+          tblRef = (TableReference) tableIt.next();
+
+          if (tblRef instanceof TableInDatabase)
+          {
+              table = (TableInDatabase) tblRef;
+              resolveTableReferenceRDBTable(table, aDatabase, aDefaultSchemaName);
+          }
+      }
+  }
+
+  /**
+   * Resolves the given table references so that it has the correct RDBTable attached to it.
+   * 
+   * @param aTableInDB a table references to be resolved
+   * @param aDatabase a Database object to use to get RDBTables
+   * @param aDefaultSchemaName the default schema name to use to look up
+   * tables in the database for tables that are not already qualified 
+   */
+  public static void resolveTableReferenceRDBTable( TableInDatabase aTableInDB,
+                                                    Database aDatabase,
+                                                    String aDefaultSchemaName )
+  {
+
+      Table rdbTable = null;
+      Schema rdbSchema = null;
+      String rdbSchemaName = null;
+      String searchTableName = null;
+      
+      searchTableName = aTableInDB.getName();
+      Table tempRdbTbl = aTableInDB.getDatabaseTable();
+      Schema tempRdbSch = null;
+
+      /* If the table doesn't have a schema associated with it use the default schema
+       * that was passed in.
+       */
+      if (tempRdbTbl != null) {
+          tempRdbSch = tempRdbTbl.getSchema();
+          if (tempRdbSch != null 
+           && tempRdbSch.getName() != null 
+           && tempRdbSch.getName().length() > 0){
+              rdbSchemaName = tempRdbSch.getName();
+          }
+          else {
+              rdbSchemaName = aDefaultSchemaName;
+          }
+      }
+
+      /* Get the RDBTable object associated with the RDBDatabase that has the 
+       * table name we're looking for.
+       */
+      // Note: we've set up the RDBDatabase so that tables and views are both
+      // treated as tables. If this changes, we will need to call "findAbstractTable" 
+      // here instead of "findTable".
+      rdbSchema = findSchema(aDatabase, rdbSchemaName);
+      if (rdbSchema != null) {
+          rdbTable = findTable(rdbSchema, searchTableName); 
+      }
+
+      /* Associate the RDBTable we found with our query table. */
+      if (rdbTable != null) {
+          aTableInDB.setDatabaseTable(rdbTable);
+          
+          /* Populate the column list attached to the TableExpression object in 
+           * the query model.
+           */
+          TableHelper.populateTableExpressionColumns(aTableInDB, rdbTable);
+      }
+  }
+  
+  /**
+   * Finds and returns a Procedure object with the given name associated with the given Schema object.
+   * 
+   * @param schema the Schema object to use to find the Procedure object
+   * @param procName the name of the Procedure object to find
+   * @return the found Procedure object, or null if not found
+   */
+  public static Procedure findProcedure(Schema schema, String procName) {
+      Procedure returnProc = null;
+      
+      if (schema != null && procName != null) {
+          /* Get a list of Procedure objects from the given Schema object. */
+          List dbProcList = schema.getProcedures();
+          
+          /* Try to find a match for the given proc name in the list of
+           * procedures.  The names we're comparing are in catalog format, 
+           * which means they are not delimited. Try first for a direct
+           * match on the name, respecting case. */
+          Iterator dbProcListIter = dbProcList.iterator();
+          while (dbProcListIter.hasNext() && returnProc == null) {
+              Procedure dbProc = (Procedure) dbProcListIter.next();
+              String dbProcName = dbProc.getName();           
+              if (procName.equals(dbProcName)) {
+                  returnProc = dbProc;
+              }
+          }
+          
+          /* If we didn't find a match, try again without regard to case. */
+          if (returnProc == null) {
+              dbProcListIter = dbProcList.iterator();
+              while (dbProcListIter.hasNext() && returnProc == null) {
+                  Procedure dbProc = (Procedure) dbProcListIter.next();
+                  String dbProcName = dbProc.getName();           
+                  if (procName.equalsIgnoreCase(dbProcName)) {
+                      returnProc = dbProc;
+                  }
+              }
+          }
+      }
+
+      return returnProc;
+  }
+  
+  // RATLC0391894 bgp 06July2007 -- method adapted from wtp.rdb DatabaseHelper class
+  /**
+   * Finds a <code>Schema</code> by its name in a given <code>Database</code>.
+   * If the given <code>schemaName</code> is not delimited, the search is not case 
+   * sensitive.  
+   * 
+   * @param database the <code>Database</code> to find <code>Schema</code>s in
+   * @param schemaName the String name of the <code>Schema</code> to find
+   * @return the <code>Schema</code> found or <code>null</code> if no 
+   *      corresponding <code>Schema</code> was found
+   */
+  public static Schema findSchema(Database database, String schemaName) {
+      Schema returnSchema = null;
+      
+      if (schemaName != null) {
+          /* Get the list of schemas from the database. */
+          List dbSchemaList = database.getSchemas();
+          
+          /* If we don't have any schemas, then check whether there
+           * are Catalog objects that contain the schemas. */
+          if (dbSchemaList == null || dbSchemaList.isEmpty()) {
+              List catalogList = database.getCatalogs();
+              if (!catalogList.isEmpty()) {
+                  dbSchemaList = new ArrayList();
+                  Iterator catalogIter = catalogList.iterator();
+                  while(catalogIter.hasNext()) {
+                      Catalog currentCatalog = (Catalog)catalogIter.next();
+                      dbSchemaList.addAll(currentCatalog.getSchemas());
+                  }
+              }
+          }
+
+          /* Try to match the given schema name with one of the schemas
+           * from the database. The names are in catalog format, which means
+           * they are not delimited. Try first for a direct match on the
+           * name, respecting case. (This helps handle the case where there are 
+           * two schemas in the DB that differ only by case.) */
+          Iterator dbSchemaListIter = dbSchemaList.iterator();
+          while (dbSchemaListIter.hasNext() && returnSchema == null) {
+              Schema dbSchema = (Schema) dbSchemaListIter.next();
+              String dbSchemaName = dbSchema.getName();
+              if (schemaName.equals(dbSchemaName)) {
+                  returnSchema = dbSchema;
+              }
+          }    
+          
+          /* If we didn't find a match, try again without regard to case. */
+          if (returnSchema == null) {
+              dbSchemaListIter = dbSchemaList.iterator();
+              while (dbSchemaListIter.hasNext() && returnSchema == null) {
+                  Schema dbSchema = (Schema) dbSchemaListIter.next();
+                  String dbSchemaName = dbSchema.getName();
+                  if (schemaName.equalsIgnoreCase(dbSchemaName)) {
+                      returnSchema = dbSchema;
+                  }
+              }    
+          }
+          
+          /* If we still didn't find a match, trim *trailing* blanks from the 
+           * schema names and try again.  Some databases (such as DB2 for LUW)
+           * when given a new schema named "  schema  ", will create the schema
+           * in the catalog as "  schema". */
+          if (returnSchema == null) {
+              String trimmedSchemaName = trimTrailing(schemaName);
+              dbSchemaListIter = dbSchemaList.iterator();
+              while (dbSchemaListIter.hasNext() && returnSchema == null) {
+                  Schema dbSchema = (Schema) dbSchemaListIter.next();
+                  String trimmedDBSchemaName = trimTrailing(dbSchema.getName());
+                  if (trimmedSchemaName.equals(trimmedDBSchemaName)) {
+                      returnSchema = dbSchema;
+                  }
+              }     
+          }
+      }
+  
+      return returnSchema;
+  }
+
+  // RATLC0391894 bgp 15May2007 -- method adapted from wtp.rdb SchemaHelper class  
+  /**
+   * Finds a <code>Table</code> by its name in a given <code>Schema</code>,
+   * the given <code>tableName</code> is not case sensitive.  
+   * Look at {@link DatabaseHelper#findSchema(Database, String)} to see how 
+   * the <code>Schema</code> can be found in a <code>Database</code>.
+   * 
+   * @param schema the <code>Schema</code> to find a <code>Table</code> in
+   * @param tableName the String name of the <code>Table</code> to find 
+   * @return the <code>Table</code> found or null
+   */
+  public static Table findTable(Schema schema, String tableName) {
+      Table returnTable = null;
+      
+      if (tableName != null) {
+          /* Get a list of tables from the given schema. */
+          List dbTableList = schema.getTables();
+          
+          /* Try to find a match for the given table name in the list of
+           * tables.  The table names we're comparing are in catalog format, 
+           * which means they are not delimited. Try first for a direct
+           * match on the name, respecting case. */
+          Iterator dbTableListIter = dbTableList.iterator();
+          while (dbTableListIter.hasNext() && returnTable == null) {
+              Table dbTable = (Table) dbTableListIter.next();
+              String dbTableName = dbTable.getName();           
+              if (tableName.equals(dbTableName)) {
+                  returnTable = dbTable;
+              }
+          }
+          
+          /* If we didn't find a match, try again without regard to case. */
+          if (returnTable == null) {
+              dbTableListIter = dbTableList.iterator();
+              while (dbTableListIter.hasNext() && returnTable == null) {
+                  Table dbTable = (Table) dbTableListIter.next();
+                  String dbTableName = dbTable.getName();           
+                  if (tableName.equalsIgnoreCase(dbTableName)) {
+                      returnTable = dbTable;
+                  }
+              }
+          }
+      }
+      
+      return returnTable;
+  }
+  
+  /**
+   * Returns a copy of the given string with whitespace characters removed from the end of the string.
+   * 
+   * @return the trimmed string
+   */
+  protected static String trimTrailing(String str) { 
+      return str.replaceAll("\\s+$", "");
+  }
+
+} // end class DatabaseHelper
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/helper/JoinHelper.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/helper/JoinHelper.java
new file mode 100644
index 0000000..39fc88f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/helper/JoinHelper.java
@@ -0,0 +1,1118 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.query.helper;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.Predicate;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateComparisonOperator;
+import org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition;
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelFactory;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionCombinedOperator;
+import org.eclipse.datatools.modelbase.sql.query.TableExpression;
+import org.eclipse.datatools.modelbase.sql.query.TableJoined;
+import org.eclipse.datatools.modelbase.sql.query.TableJoinedOperator;
+import org.eclipse.datatools.modelbase.sql.query.TableNested;
+import org.eclipse.datatools.modelbase.sql.query.TableReference;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn;
+import org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelFactoryImpl;
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+
+
+/**
+ * This is a helper class that provides methods that assist in
+ * creating and manipulating SQL joins.
+ */
+public class JoinHelper {
+
+    public static final String copyright = "(c) Copyright IBM Corporation 2000, 2004.";
+
+    public static final String GENERIC_CHARACTER = "Character";
+    public static final String GENERIC_INTEGER = "Integer";
+    public static final String GENERIC_DECIMAL = "Decimal";
+    public static final String GENERIC_BINARY = "Binary";
+    public static final String GENERIC_DATE = "Date";
+    public static final String GENERIC_TIME = "Time";
+    public static final String GENERIC_TIMESTAMP = "Timestamp";
+    public static final String GENERIC_BLOB = "BLOB";
+    public static final String GENERIC_OTHER = "Other";
+
+    public static final int JOIN_COL_TYPE_MISMATCH = -1;
+    public static final int JOIN_COL_USED = -2;
+    public static final int JOIN_SAME_TABLE = -3;
+    public static final int JOIN_VALID = 0;
+
+    public static final String LEFT = "left_col_used";
+    public static final String RIGHT = "right_col_used";
+    public static final String BOTH = "both_col_used";
+    public static final String NONE = "neither_col_used";
+
+    // private static SearchConditionHelper searchConHelper = null;
+
+    /**
+     * Creates a new joined table or join condition containing the given 
+     * join source and target objects, and updates the given FROM clause 
+     * list. If a join does not already exist between the two tables, a
+     * new joined table object is created and added to the FROM clause.  If 
+     * the given tables are already joined, a new joined table is not created, 
+     * but a new join condition is added to the ON clause of the join.
+     * The new or modified joined table is returned.
+     * 
+     * @param fromClause the list of objects (tables and joins) in the FROM clause
+     * @param sourceTable the source (left side) table of the join
+     * @param targetTable the target (right side) table of the join
+     * @param sourceColumn the source column expression of the join
+     * @param targetColumn the target column expression of the join
+     * @param joinType the type of join (inner, left outer, etc.)
+     * @return the new or modified join object
+     */
+    public static TableJoined addJoin(List fromClause, TableExpression sourceTable, TableExpression targetTable, ValueExpressionColumn sourceColumn,
+            ValueExpressionColumn targetColumn, int joinType) {
+        TableJoined joinedTable = null;
+
+        // Get any join that already contains the source and target tables.
+        // If a table is not already contained in a join, the table itself
+        // is returned.
+        TableReference sourceContainer = findOutermostContainingJoin(fromClause, sourceTable);
+        TableReference targetContainer = findOutermostContainingJoin(fromClause, targetTable);
+
+        // If the two tables are contained in distinct join trees, 
+        // or if one or both of them are not part of any join, then create
+        // a joined table object with the source and target containers as its left 
+        // and right sides.  Remove the source and target containers from 
+        // the FROM clause list and add the newly created joined table object to it.
+        if (sourceContainer != targetContainer) {
+            joinedTable = addJoinedTable(fromClause, sourceContainer, targetContainer, joinType);
+        }
+        else {
+            // The source and target are already contained in the same join tree,
+            // so find the smallest sub tree containing the two objects.
+            joinedTable = findClosestContainingJoin(sourceTable, targetTable);
+        }
+
+        // Add the join condition to the joined table object.
+        if (joinedTable != null) {
+            QuerySearchCondition searchCon = joinedTable.getJoinCondition();
+            searchCon = buildSearchCondition(searchCon, sourceColumn, targetColumn, "=");
+            joinedTable.setJoinCondition(searchCon);
+        }
+
+        return joinedTable;
+    }
+
+    /**
+     * Creates a new joined table containing the given join source and
+     * target objects, and adds it to the given FROM clause list. The new
+     * join table is returned.  If the source and target are already part 
+     * of the same joined table in the FROM clause list, then a new joined
+     * table is not created, and the existing joined table is returned.
+     * 
+     * @param fromClause the list of objects (tables and joins) in the FROM clause
+     * @param joinSource the source (left side) of the join
+     * @param joinTarget the target (right side) of the join
+     * @param joinType the type of join (inner, left outer, etc.)
+     * @return the joined table containing the join source and target objects
+     */
+    public static TableJoined addJoinedTable(List fromClause, TableReference joinSource, TableReference joinTarget, int joinType) {
+        // Create a new joined tables object and set its content.
+        SQLQueryModelFactory factory = SQLQueryModelFactoryImpl.eINSTANCE;
+        TableJoined joinedTable = factory.createTableJoined();
+        joinedTable.setTableRefLeft(joinSource);
+        joinedTable.setTableRefRight(joinTarget);
+        joinedTable.setJoinOperator(TableJoinedOperator.get(joinType));
+
+        // Remove the current source and target objects from the FROM clause
+        // list and replace them with the joined table we just created.
+        fromClause.remove(joinSource);
+        fromClause.remove(joinTarget);
+        fromClause.add(joinedTable);
+
+        return joinedTable;
+    }
+
+    /**
+     * Creates a PredicateBasic object using the given expressions and operator.
+     * 
+     * @param leftExpr the left side expression
+     * @param rightExpr the right side expression
+     * @param oper the operator
+     * @return the new PredicateBasic object
+     */
+    public static PredicateBasic buildPredicateBasic(QueryValueExpression leftExpr, QueryValueExpression rightExpr, String oper) {
+        SQLQueryModelFactory factory = SQLQueryModelFactoryImpl.eINSTANCE;
+        PredicateBasic pred = factory.createPredicateBasic();
+        pred.setLeftValueExpr(leftExpr);
+        pred.setRightValueExpr(rightExpr);
+        String operLiteral = getComparisonLiteralFromSymbol(oper);
+        PredicateComparisonOperator operEnum = PredicateComparisonOperator.get(operLiteral);
+        pred.setComparisonOperator(operEnum);
+        return pred;
+    }
+
+    /**
+     * Creates a new predicate and adds it to the given search condition.
+     * 
+     * @param currentSearchCon the existing search condition or null 
+     * @param leftExpr the left side expression of the new predicate
+     * @param rightExpr the right side expression of the new predicate
+     * @param oper the operator string (eg: "=" )  
+     * @return the new search condition object
+     */
+    public static QuerySearchCondition buildSearchCondition(QuerySearchCondition currentSearchCon, QueryValueExpression leftExpr,
+            QueryValueExpression rightExpr, String oper) {
+        QuerySearchCondition newCondition = null;
+        PredicateBasic pred = buildPredicateBasic(leftExpr, rightExpr, oper);
+        if (currentSearchCon == null) {
+            newCondition = pred;
+        }
+        else {
+            SQLQueryModelFactory factory = SQLQueryModelFactoryImpl.eINSTANCE;
+            SearchConditionCombined combined = factory.createSearchConditionCombined();
+            combined.setLeftCondition(currentSearchCon);
+            combined.setRightCondition(pred);
+            combined.setCombinedOperator(SearchConditionCombinedOperator.get("AND"));
+            newCondition = combined;
+        }
+    
+        return newCondition;
+    }
+
+    /**
+     * Checks whether or not a join between the given join source
+     * and target objects is valid.  Returns one of the following
+     * status codes:
+     * <dl>
+     * <dt>JOIN_VALID
+     * <dd>OK to join
+     * <dt>JOIN_COL_TYPE_MISMATCH
+     * <dd>the source and target have incompatible datatypes
+     * <dt>JOIN_SAME_TABLE
+     * <dd>the source and column are in the same table
+     * <dt>JOIN_COL_USED
+     * <dd>one of the columns is already used in a join between the
+     * same two tables
+     * </dl>
+     * 
+     * @param fromClause the list of objects (tables and joins) in the FROM clause
+     * @param sourceTable the source (left side) table of the join
+     * @param targetTable the target (right side) table of the join
+     * @param sourceColumn the source column of the join
+     * @param targetColumn the target column of the join
+     * @param isMove true when a join is being moved, false when a join
+     * is being created
+     * @return a result code 
+     */
+    public static int checkJoin(List fromClause, TableExpression sourceTable, TableExpression targetTable, ValueExpressionColumn sourceColumn,
+            ValueExpressionColumn targetColumn, boolean isMove) {
+        int resultCode = JOIN_VALID;
+
+        if (checkJoinType(sourceColumn, targetColumn) == false) {
+            resultCode = JOIN_COL_TYPE_MISMATCH;
+        }
+        else if (sourceColumn == targetColumn) {
+            resultCode = JOIN_VALID;
+        }
+        else if (sourceTable == targetTable) {
+            resultCode = JOIN_SAME_TABLE;
+        }
+        else {
+            resultCode = JOIN_VALID;
+            //      resultCode = checkJoinColumnUsage( fromClause, sourceTable, targetTable, sourceColumn, targetColumn, isMove);
+        }
+
+        return resultCode;
+    }
+
+    /**
+     * Determins whether or not either of the given columns are already 
+     * referenced in a join between the given tables.
+     * 
+     * @param fromClause the list of objects (tables and joins) in the FROM clause
+     * @param sourceTable the source (left side) table of the join
+     * @param targetTable the target (right side) table of the join
+     * @param sourceColumn the source column of the join
+     * @param targetColumn the target column of the join
+     * @param isMove true when a join is being moved, false when a join
+     * is being created
+     */
+    /*   
+     public static int checkJoinColumnUsage( List fromClause, SQLFromTable sourceTable, SQLFromTable targetTable, RDBColumn sourceColumn, RDBColumn targetColumn, boolean isMove )
+     {
+     int resultCode = JOIN_VALID;
+     
+     // Check each join in the from clause list.
+     //    Iterator fromClauseIter = fromClause.iterator();
+     //    while (fromClauseIter.hasNext())
+     //    {
+     //      // Get the next table or join in the list and check it if it's
+     //      // a join.
+     //      SQLFromClauseContent tableRef = (SQLFromClauseContent) fromClauseIter.next();
+     //      if (tableRef instanceof SQLJoinTable)
+     //      {
+     //        SQLJoinTable joinedTable = (SQLJoinTable) tableRef;
+     //        SQLSearchCondition cond = joinedTable.getOnClause().getCondition();
+     //        SQLFromClauseContent leftContent = joinedTable.getLeftContent();
+     //        SQLFromClauseContent rightContent = joinedTable.getRightContent();
+     //        
+     //        if (leftContent instanceof SQLFromTable && rightContent instanceof SQLFromTable)
+     //        {
+     //        	if (leftContent == sourceTable && rightContent == targetTable) 
+     //        	{
+     //            String condResultCode = areColumnsUsedInCondition( cond, sourceColumn, targetColumn );
+     //        		if (condResultCode != NONE)
+     //        		{
+     //        			if (!(isMove && (condResultCode != LEFT || condResultCode != BOTH )))
+     //        			{
+     //        				resultCode = JOIN_COL_USED;  
+     //        			} 
+     //        		}
+     //        	}
+     //        	else if (rightContent == sourceTable && leftContent == targetTable)
+     //        	{
+     //        		String condResultCode = areColumnsUsedInCondition( cond, targetColumn, sourceColumn );
+     //        		if (condResultCode != NONE)
+     //        		{
+     //        			if (!(isMove && (condResultCode != RIGHT || condResultCode != BOTH )))
+     //        			{
+     //        				resultCode = JOIN_COL_USED;
+     //        			}
+     //        		}
+     //        	}
+     //        }
+     //      }
+     //    }
+     
+     return resultCode;
+     }
+
+     */
+    
+    /**
+     * Determines if source and target columns are of compatible type
+     * for joining.
+     * @param sourceColumn the source column to check
+     * @param targetColumn the target column to check
+     * @return true when the columns are of join compatible, otherwise false
+     */
+    public static boolean checkJoinType(ValueExpressionColumn sourceColumn, ValueExpressionColumn targetColumn) {
+        boolean areCompatible = false;
+
+        DataType sourceDataType = sourceColumn.getDataType();
+        String sourceGenericType = getGenericType(sourceDataType);
+
+        DataType targetDataType = targetColumn.getDataType();
+        String targetGenericType = getGenericType(targetDataType);
+
+        if (sourceGenericType.equals(targetGenericType)) {
+            areCompatible = true;
+        }
+
+        return areCompatible;
+    }
+    
+    /** 
+     * Checks to see if the given SQLSearchCondition (ON clause) contains 
+     * the given table.
+     * 
+     * @param condition the condition to search
+     * @param table the table to search for
+     * @return true if the condition contains the table, otherwise false
+     */
+    public static boolean conditionContainsTable(QuerySearchCondition condition, TableExpression table) {
+        boolean tableFound = false;
+        List predList = findConditionsContainingTable(condition, table);
+        if (predList.size() > 0) {
+            tableFound = true;
+        }
+
+        return tableFound;
+    }
+
+    /**
+     * Finds and returns the closest enclosing join containing both the 
+     * given source and target tables, working from the leafs of the join 
+     * tree to the root.  Returns null if the tables are not contained in 
+     * the same join tree. 
+     * 
+     * @param joinSource the source (left side) of a join
+     * @param joinTarget the target (right side) of a join
+     * @return closest enclosing join or null if the tables are not part of the same join 
+     */
+    public static TableJoined findClosestContainingJoin(TableExpression joinSource, TableExpression joinTarget) {
+        TableJoined foundJoin = null;
+        TableReference tempSource = joinSource;
+        TableJoined container = null;
+
+        while (foundJoin == null && tempSource != null) {
+            container = tempSource.getTableJoinedLeft();
+            if (container != null) {
+                List tableExprList = getTablesInJoin(container);
+                if (tableExprList.contains(joinTarget)) {
+                    foundJoin = container;
+                }
+            }
+            else {
+                container = tempSource.getTableJoinedRight();
+                if (container != null) {
+                    List tableExprList = getTablesInJoin(container);
+                    if (tableExprList.contains(joinTarget)) {
+                        foundJoin = container;
+                    }
+                }
+            }
+            tempSource = container;
+        }
+
+        return foundJoin;
+    }
+
+    /**
+     * Finds and returns the individual conditions (predicates) in the 
+     * given QuerySearchCondition (ON clause) that contain references to 
+     * the given table.
+     * 
+     * @param cond the QuerySearchCondition to search
+     * @param table the TableExpression to use to search for predicates
+     * @return a list of PredicateBasic objects containing references to the table
+     */
+    public static List findConditionsContainingTable(QuerySearchCondition cond, TableExpression table) {
+        List predList = new ArrayList();
+
+        if (cond instanceof PredicateBasic) {
+            PredicateBasic predicate = (PredicateBasic) cond;
+            QueryValueExpression leftExpr = predicate.getLeftValueExpr();
+
+            if (leftExpr instanceof ValueExpressionColumn) {
+                TableExpression tableExprInPred = ((ValueExpressionColumn) leftExpr).getTableExpr();
+                if (tableExprInPred.equals(table)) {
+                    predList.add(predicate);
+                }
+            }
+
+            if (predList.size() == 0) {
+                QueryValueExpression rightExpr = predicate.getRightValueExpr();
+                if (rightExpr instanceof ValueExpressionColumn) {
+                    TableExpression tableExprInPred = ((ValueExpressionColumn) rightExpr).getTableExpr();
+                    if (tableExprInPred.equals(table)) {
+                        predList.add(predicate);
+                    }
+                }
+            }
+        }
+        else if (cond instanceof SearchConditionCombined) {
+            SearchConditionCombined condGroup = (SearchConditionCombined) cond;
+            QuerySearchCondition leftCond = condGroup.getLeftCondition();
+            if (leftCond != null) {
+                predList.addAll(findConditionsContainingTable(leftCond, table));
+            }
+
+            QuerySearchCondition rightCond = condGroup.getRightCondition();
+            if (rightCond != null) {
+                predList.addAll(findConditionsContainingTable(rightCond, table));
+            }
+        }
+
+        return predList;
+    }
+
+    /**
+     * Searches upwards in the join tree to see if the given table exists in any of 
+     * the conditions in the joins. 
+     * 
+     * @param table the table to be searched for
+     * @param join the join at which the search starts
+     * @return the list of joins whose onclause condition contains the table, 
+     * or an empty list if no such join is found  
+     */
+    public static List findJoinsWithTableInCondition(TableExpression table, TableJoined join) {
+        List joinList = new ArrayList();
+        TableJoined currentJoin = join;
+
+        // Iterate our way up the join tree to the root, checking all the on clauses
+        // for refernces to the target table.
+        while (currentJoin != null) {
+            // Search the condition of the current join.
+            QuerySearchCondition onClause = currentJoin.getJoinCondition();
+            if (conditionContainsTable(onClause, table) == true) {
+                joinList.add(currentJoin);
+            }
+
+            // Get the next join one level up the tree, to be searched 
+            // in the next iteration.
+            TableJoined tempParent = currentJoin.getTableJoinedLeft();
+            if (tempParent != null) {
+                currentJoin = tempParent;
+            }
+            else {
+                currentJoin = currentJoin.getTableJoinedRight();
+            }
+        }
+
+        return joinList;
+    }
+
+    /**
+     * Finds and returns the outermost table reference in the From clause that 
+     * contains the given table.  That might be a joined table reference,
+     * or the given table itself if it is not contained in any join.
+     * 
+     * @param fromClause the list of objects (tables and joins) in the FROM clause
+     * @param targetTable the table reference to be looked for
+     * @return the joined table containing the table, or the table itself
+     *         if it is not part of a join
+     */
+    public static TableReference findOutermostContainingJoin(List fromClause, TableExpression targetTable) {
+        TableReference foundTableRef = null;
+        Iterator fromClauseIter = fromClause.iterator();
+        while (fromClauseIter.hasNext() && foundTableRef == null) {
+            TableReference tempTableRef = (TableReference) fromClauseIter.next();
+            if (targetTable == tempTableRef) {
+                foundTableRef = tempTableRef;
+            }
+            else if (tempTableRef instanceof TableNested) {
+                TableNested tableNested = (TableNested) tempTableRef;
+                List tableExprList = JoinHelper.getTablesInNestedTable(tableNested);
+                if (tableExprList.contains(targetTable)) {
+                    foundTableRef = tableNested;
+                }
+            }
+            else if (tempTableRef instanceof TableJoined) {
+                TableJoined joinedTable = (TableJoined) tempTableRef;
+                List tableExprList = getTablesInJoin(joinedTable);
+                if (tableExprList.contains(targetTable)) {
+                    foundTableRef = joinedTable;
+                }
+            }
+        }
+
+        return foundTableRef;
+    }
+
+    /**
+     * Returns a list of TableJoined objects of which the given TableExpression is the left side.
+     * Traverses up the join tree finding the joins.
+     * 
+     * @param tableExpr the TableExpression for which to find the joins 
+     */
+    public static List getLeftJoinsForTable(TableExpression tableExpr) {
+        List list = new ArrayList();
+        boolean isLeft;
+        TableJoined tempJoinTable = null;
+        TableReference joinTable = tableExpr.getTableJoinedLeft();
+        if (joinTable != null) {
+            isLeft = true;
+        }
+        else {
+            joinTable = tableExpr.getTableJoinedRight();
+            isLeft = false;
+        }
+        
+        // if this join is within a nest, get the join to be processed is the one
+        // for which the nest a left or right child
+        /*        TableNested nest = joinTable.getNest();
+         if (nest != null) {
+         TableJoined parentJoin = nest.getTableJoinedLeft();
+         if (parentJoin != null) {
+         isLeft = true;
+         }
+         else {
+         parentJoin = nest.getTableJoinedRight();
+         isLeft = false;
+         }
+         joinTable = parentJoin;
+         }
+         */
+        while (joinTable != null) {
+            if (isLeft == true) {
+                list.add(joinTable);
+            }
+            // if this join is within a nest, the join to be processed is the one
+            // for which the nest is a left or right child
+            TableNested nest = joinTable.getNest();
+            if (nest != null) {
+                joinTable = nest;
+            }
+            tempJoinTable = joinTable.getTableJoinedLeft();
+            if (tempJoinTable != null) {
+                isLeft = true;
+                joinTable = tempJoinTable;
+            }
+            else {
+                joinTable = joinTable.getTableJoinedRight();
+                isLeft = false;
+            }
+        }
+        
+        return list;
+    }
+
+    /**
+     * Returns the table "nested" in the given table, if any.  If there is no
+     * nested table, then the given table is returned.  Nested tables are used to
+     * represent parenthesized table expressions explicitly in places where the 
+     * parens are implied. For example, it's possible to say 
+     * "SELECT * FROM (TABLE1 JOIN TABLE2 ON A = B)".
+     *  
+     * @param tableRef the table reference from which the nested table is wanted
+     * @return the nested table reference
+     */
+    public static TableReference getNestedTable(TableReference tableRef) {
+        TableReference nestedTable = tableRef;
+        if (tableRef instanceof TableNested) {
+            nestedTable = ((TableNested) tableRef).getNestedTableRef();
+        }
+        return nestedTable;
+    }
+
+    /**
+     * Returns a list of TableJoined objects of which the given TableExpression is the right side.
+     * Traverses up the join tree finding the joins.
+     * 
+     * @param tableExpr the TableExpression for which to find the joins 
+     */
+    public static List getRightJoinsForTable(TableExpression tableExpr) {
+        List list = new ArrayList();
+        boolean isRight;
+        TableJoined tempJoinTable = null;
+        TableReference joinTable = tableExpr.getTableJoinedRight();
+        if (joinTable != null) {
+            isRight = true;
+        }
+        else {
+            joinTable = tableExpr.getTableJoinedLeft();
+            isRight = false;
+        }
+
+ /*       // if this join is within a nest, get the join to be processed is the one
+        // for which the nest a left or right child
+        TableNested nest = joinTable.getNest();
+        if (nest != null) {
+            TableJoined parentJoin = nest.getTableJoinedRight();
+            if (parentJoin != null) {
+                isRight = true;
+            }
+            else {
+                parentJoin = nest.getTableJoinedLeft();
+                isRight = false;
+            }
+            joinTable = parentJoin;
+        }*/
+
+        
+        while (joinTable != null) {
+            if (isRight == true) {
+                list.add(joinTable);
+            }
+
+            // if this join is within a nest, the join to be processed is the one
+            // for which the nest is a left or right child
+            TableNested nest = joinTable.getNest();
+            if (nest != null) {
+                joinTable = nest;
+            }
+            
+            tempJoinTable = joinTable.getTableJoinedRight();
+            if (tempJoinTable != null) {
+                isRight = true;
+                joinTable = tempJoinTable;
+            }
+            else {
+                joinTable = joinTable.getTableJoinedLeft();
+                isRight = false;
+            }
+        }
+
+        return list;
+    }
+
+    /** 
+     * Returns a string indicating the "generic" type for the given
+     * datatype object.  All string types, for example, map to
+     * "GENERIC_CHARACTER".  See the class static constants for the
+     * list of generic types.
+     * 
+     * @param datatype the datatype for which a generic type is needed
+     */
+    public static String getGenericType(Object datatype) {
+        //TODO
+        return GENERIC_CHARACTER;
+        /*    if (datatype instanceof SQLCharacterStringType ||
+         datatype instanceof SQLNationalCharacterStringType)
+         { 
+         return GENERIC_CHARACTER;
+         }
+         
+         //generic_binary
+         else if (datatype instanceof SQLBoolean ||
+         datatype instanceof SQLBitString)
+         {
+         return GENERIC_BINARY;
+         }
+
+         //generic_blob
+         else if (datatype instanceof SQLBinaryLargeObject)
+         {
+         return GENERIC_BLOB;
+         }
+
+         //generic_decimal
+         else if (datatype instanceof SQLNumeric ||
+         datatype instanceof SQLFloat ||
+         datatype instanceof SQLApproximateNumeric) 
+         {
+         return GENERIC_DECIMAL;
+         }
+
+         // generic_integer
+         else if (datatype instanceof SQLExactNumeric)
+         {
+         return GENERIC_INTEGER;
+         }
+
+         //generic_time
+         else if (datatype instanceof SQLTime)
+         {
+         return GENERIC_TIME;
+         }
+
+         //generic_timestamp
+         else if (datatype instanceof SQLTimestamp)
+         {
+         return GENERIC_TIMESTAMP;
+         }
+         
+         //generic_date
+         else if (datatype instanceof SQLDate)
+         {
+         return GENERIC_DATE;
+         }
+
+         //generic_other
+         else 
+         {
+         return GENERIC_OTHER;
+         }
+         */
+    }
+
+    /**
+     * Gets a list of TableExpression objects embedded inside the given join object.
+     * 
+     * @param join the join from which the tables are to be obtained
+     * @return the list of TableExpression objects in the given join.
+     */
+    public static List getTablesInJoin(TableJoined join) {
+        List list = new ArrayList();
+        TableReference leftContent = join.getTableRefLeft();
+        TableReference rightContent = join.getTableRefRight();
+
+        // process the right side of the join   
+        if (leftContent instanceof TableExpression) {
+            list.add(leftContent);
+        }
+        else if (leftContent instanceof TableNested) {
+            TableNested tableNested = (TableNested) leftContent;
+            list.addAll(JoinHelper.getTablesInNestedTable(tableNested));
+        }
+        else if (leftContent instanceof TableJoined) {
+            TableJoined tempJoin = (TableJoined) leftContent;
+            list.addAll(JoinHelper.getTablesInJoin(tempJoin));
+        }
+
+        // process the right side of the join
+        if (rightContent instanceof TableExpression) {
+            list.add(rightContent);
+        }
+        else if (rightContent instanceof TableNested) {
+            TableNested tableNested = (TableNested) rightContent;
+            list.addAll(JoinHelper.getTablesInNestedTable(tableNested));
+        }
+        else if (rightContent instanceof TableJoined) {
+            TableJoined tempJoin = (TableJoined) rightContent;
+            list.addAll(JoinHelper.getTablesInJoin(tempJoin));
+        }
+        return list;
+    }
+
+    /**
+     * Returns a list of TableExpressions contained in the given TableNested object.
+     * 
+     * @param tableNested the TableNested object from which the TableExpressions are to be obtained
+     * @return the list of TableExpressions
+     */
+    public static List getTablesInNestedTable(TableNested tableNested) {
+        List list = new ArrayList();
+        TableReference tableRef = tableNested.getNestedTableRef();
+        if (tableRef instanceof TableExpression) {
+            list.add(tableRef);
+        }
+        else if (tableRef instanceof TableNested) {
+            list.addAll(JoinHelper.getTablesInNestedTable((TableNested) tableRef));
+        }
+        else if (tableRef instanceof TableJoined) {
+            list.addAll(JoinHelper.getTablesInJoin((TableJoined) tableRef));
+        }
+        return list;
+    }
+
+    /**
+     * Removes the given joined table from the given FROM clause list.
+     * Depending on the structure of the joined table, one or both the 
+     * left and right side of the join may be removed from the join tree 
+     * that contains it and added directly to the FROM clause list.
+     * 
+     * @param fromClause the list of objects (tables and joins) in the FROM clause
+     * @param the join to be removed
+     */
+    public static void removeJoin(List fromClause, TableJoined joinedTable) {
+        List leftTableList = new ArrayList();
+        List rightTableList = new ArrayList();
+    
+        // Get the children (the objects on the left and right sides) of the join.
+        TableReference leftChild = joinedTable.getTableRefLeft();
+        TableReference rightChild = joinedTable.getTableRefRight();
+    
+        // Get a list of tables in the left side of the join.
+        if (leftChild instanceof TableExpression) {
+            leftTableList.add(leftChild);
+        }
+        else if (leftChild instanceof TableNested) {
+            TableNested tableNested = (TableNested) leftChild;
+            leftTableList = JoinHelper.getTablesInNestedTable(tableNested);
+        }
+        else if (leftChild instanceof TableJoined) {
+            TableJoined tempJoin = (TableJoined) leftChild;
+            leftTableList = JoinHelper.getTablesInJoin(tempJoin);
+        }
+    
+        // Get a list of tables in the righ side of the join.
+        if (rightChild instanceof TableExpression) {
+            rightTableList.add(rightChild);
+        }
+        else if (rightChild instanceof TableNested) {
+            TableNested tableNested = (TableNested) rightChild;
+            rightTableList = JoinHelper.getTablesInNestedTable(tableNested);
+        }
+        else if (rightChild instanceof TableJoined) {
+            TableJoined tempJoin = (TableJoined) rightChild;
+            rightTableList = JoinHelper.getTablesInJoin(tempJoin);
+        }
+    
+        // Get the parent of the join, if any. If this join is a "nested" join, 
+        // then get the parent of the join (the nest). 
+        TableJoined parentJoin = null;
+        TableReference nestTable = joinedTable.getNest();
+        if(nestTable != null){
+            parentJoin = nestTable.getTableJoinedLeft();
+        }
+        else{
+            parentJoin = joinedTable.getTableJoinedLeft();    
+        }
+        
+        boolean isRightChild = false;
+        if (parentJoin == null) {
+            if(nestTable != null){
+                parentJoin = nestTable.getTableJoinedRight();
+            }
+            else {
+                parentJoin = joinedTable.getTableJoinedRight();
+            }
+            isRightChild = true;
+        }
+    
+        // Get a list of joins which refer to the tables in the left side of this join
+        // Do the same for the right side.
+        List leftJoinList = new ArrayList();
+        List rightJoinList = new ArrayList();
+        Iterator itr = leftTableList.iterator();
+        TableExpression table;
+        if (parentJoin != null) {
+            while (itr.hasNext()) {
+                table = (TableExpression) itr.next();
+                leftJoinList.addAll(findJoinsWithTableInCondition(table, parentJoin));
+            }
+    
+            itr = rightTableList.iterator();
+            while (itr.hasNext()) {
+                table = (TableExpression) itr.next();
+                rightJoinList.addAll(findJoinsWithTableInCondition(table, parentJoin));
+            }
+        }
+    
+        // Determine what to do with the children.  They should be either
+        // "promoted" to take the place of the join being removed, or "bumped"
+        // out of the join tree entirely and placed directly in the From clause.
+        boolean promoteLeftChild = false;
+        boolean bumpLeftChild = false;
+        boolean promoteRightChild = false;
+        boolean bumpRightChild = false;
+        
+        // If there are no other joins that refer to the tables in the
+        // left side, then bump it to the From clause. 
+        if (leftJoinList.isEmpty() && parentJoin != null) {
+            bumpLeftChild = true;
+        }
+        // Otherwise mark it for promotion. 
+        else {
+            promoteLeftChild = true;
+        }
+    
+        // Do the same for the right side.
+        if (rightJoinList.isEmpty() && parentJoin != null) {
+            bumpRightChild = true;
+        }
+        else {
+            promoteRightChild = true;
+        }
+    
+        // We're going to be moving the children, so remove them from
+        // the join.
+        joinedTable.setTableRefLeft(null);
+        joinedTable.setTableRefRight(null);
+    
+        // We can only promote one child.  If both are eligible for
+        // promotion, we need to figure out which to promote, and which
+        // to bump.  To resolve this, we determine which child has the fewest
+        // references to it from other joins.  We'll remove the join 
+        // conditions further up the join tree that refer to it and bump it 
+        // out of the join. For a tie, we arbitrarily choose to bump the right side.
+        TableReference childToPromote = null;
+        if (!(promoteLeftChild == true && promoteRightChild == true)) {
+            // The easy case: only one child was marked for promotion.
+            if (promoteLeftChild == true) {
+                childToPromote = leftChild;
+            }
+            else if (promoteRightChild == true) {
+                childToPromote = rightChild;
+            }
+        }
+        else {
+            // Both children are eligible for promotion.  Have to make
+            // Sophie's Choice.
+            if (leftJoinList.size() >= rightJoinList.size()) {
+                bumpRightChild = true;
+                childToPromote = leftChild;
+            }
+            else {
+                bumpLeftChild = true;
+                childToPromote = rightChild;
+            }
+        }
+    
+        // If there is a parent join, promote the child we determined above 
+        // (if any) to take place of the join.
+        if (parentJoin != null) {
+            if (childToPromote != null) {
+                if (isRightChild == false) {
+                    parentJoin.setTableRefLeft(childToPromote);
+                }
+                else {
+                    parentJoin.setTableRefRight(childToPromote);
+                }
+            }
+        }
+        // Otherwise we must be the root join.  Remove the join from the
+        // From clause list.  Add the promoted child to the From clause list.
+        else {
+            // If the join is within a nest, remove the nest from the fromclause
+            TableNested nest = joinedTable.getNest();
+            if(nest != null){
+                fromClause.remove(nest);
+            }
+            // otherwise remove the join from the fromclause
+            else {
+                fromClause.remove(joinedTable);    
+            }
+            if (childToPromote != null) {
+                fromClause.add(childToPromote);
+            }
+        }
+    
+        // If we have to bump a child out of the join, remove all the 
+        // ON clause predicates that refer to it and add it directly to
+        // the From clause.
+        // Note: we process the right side first so that if it turns out 
+        // that we bump both the left and right children, when we're done
+        // the left child will appear first in the From clause, which should 
+        // appear a little more natural to the user.
+        if (bumpRightChild == true) {
+            // Remove join predicates (and possibly joins) that refer to 
+            // the tables in the child further up the join tree. 
+            removeJoinConditionsForTables(fromClause, rightTableList, rightJoinList);
+    
+            // Add the child to the end of the From clause.
+            fromClause.add(rightChild);
+        }
+        else if (bumpLeftChild == true) {
+            removeJoinConditionsForTables(fromClause, leftTableList, leftJoinList);
+            fromClause.add(0, leftChild);
+        }
+    }
+
+    /**
+     * Removes the given join condition (PredicateBasic) from the given
+     * joined table.  If removing the condition leaves the ON clause empty,
+     * then the join itself is removed from the join tree.
+     * 
+     * @param fromClause the list of objects (tables and joins) in the FROM clause
+     * @param joinedTable the join from which the join condition is to be removed
+     * @param joinCond the join condition to be removed
+     */
+    public static void removeJoinCondition(List fromClause, TableJoined joinedTable, PredicateBasic joinCond) {
+        // Remove the condition from the ON clause.
+        QuerySearchCondition onClause = joinedTable.getJoinCondition();
+        if (onClause != null && joinCond != null) {
+            QuerySearchCondition newCondition = removePredicateFromCondition(joinCond, onClause);
+            joinedTable.setJoinCondition(newCondition);
+        }
+
+        // If the ON clause is now empty, remove the join itself from the
+        // join tree.  (Can't have a join without an ON condition.)
+        // if (onClause == null )
+        if (joinedTable.getJoinCondition() == null) {
+            removeJoin(fromClause, joinedTable);
+        }
+    }
+
+    /**
+     * Unravels the content (left or right) of a join by removing all
+     * ON clause conditions in the given join list that refer to the tables
+     * in the given table list.  Joins who's ON clause become empty are
+     * removed from the join tree.
+     * 
+     * @param fromClause the list of objects (tables and joins) in the FROM clause
+     * @param tableList a list of tables for which joins are to be removed
+     * @param joinList a list of joins to be searched for conditions involving
+     * the tables and updated or removed
+     */
+    public static void removeJoinConditionsForTables(List fromClause, List tableList, List joinList) {
+        if (tableList != null && joinList != null) {
+            Iterator tableListIter = tableList.iterator();
+            while (tableListIter.hasNext()) {
+                TableExpression table = (TableExpression) tableListIter.next();
+                Iterator joinListIter = joinList.iterator();
+                while (joinListIter.hasNext()) {
+                    TableJoined join = (TableJoined) joinListIter.next();
+                    QuerySearchCondition cond = join.getJoinCondition();
+                    List predList = findConditionsContainingTable(cond, table);
+                    Iterator predListIter = predList.iterator();
+                    while (predListIter.hasNext()) {
+                        PredicateBasic pred = (PredicateBasic) predListIter.next();
+                        removeJoinCondition(fromClause, join, pred);
+                    }
+                }
+            }
+        }
+    }
+
+    /**
+     * Removes any joins from the FROM clause list that contain or reference 
+     * the given table.
+     * 
+     * @param fromClause the list of objects (tables and joins) in the FROM clause
+     * @param table the table for which joins should be removed
+     */
+    public static void removeJoinsForTable(List fromClause, TableExpression table) {
+        // Get the join, if any, containing the table and remove it.
+        // When we find and remove a join, the result may be that the
+        // table we're interested in gets "promoted" into a join further
+        // up the join tree.  So we need to keep removing joins until
+        // there are no more joins involving the table.
+        TableJoined joinedTable = table.getTableJoinedLeft();
+        if (joinedTable == null) {
+            joinedTable = table.getTableJoinedRight();
+        }
+        while (joinedTable != null) {
+            removeJoin(fromClause, joinedTable);
+            joinedTable = table.getTableJoinedLeft();
+            if (joinedTable == null) {
+                joinedTable = table.getTableJoinedRight();
+            }
+        }
+    }
+
+    /**
+     * Removes the given predicate from the given search condition.
+     * 
+     * @param pred the Predicate which needs to be removed from the condition
+     * @param searchCon the SearchCondition from which predicate needs to be removed
+     * @return the modified searchCondition after removing the predicate
+     */
+    public static QuerySearchCondition removePredicateFromCondition(Predicate pred, QuerySearchCondition searchCon) {
+        // Case : if only node  then searchCon = new pred
+        if (pred.getCombinedRight() == null && pred.getCombinedLeft() == null) {
+            searchCon = null;
+        }
+        else if (pred.getCombinedRight() != null && pred.getCombinedRight().getCombinedLeft() == null) {
+            // Case : any right most (last) node then searchCon points to left (previous) sibling (Combine/pred) 
+            searchCon = pred.getCombinedRight().getLeftCondition();
+            searchCon.setCombinedLeft(null);
+        }
+        else if (pred.getCombinedLeft() != null) {
+            // Case : any left most (first) node then if more than 2 nodes then parent combined replaces with right sibling  
+            //                           otherwise  searchCon points to right sibling (pred)
+            if (pred.getCombinedLeft().getCombinedLeft() != null) {
+                pred.getCombinedLeft().getCombinedLeft().setLeftCondition(pred.getCombinedLeft().getRightCondition());
+            }
+            else {
+                searchCon = pred.getCombinedLeft().getRightCondition();
+            }
+        }
+        else if (pred.getCombinedRight() != null && pred.getCombinedRight().getCombinedLeft() != null) {
+            // Case : any middle node then assign right (next) pred to parent and assignt parent's
+            //                     left combine to parent's parent's combine left
+            //                     if second from right then searchCon points to parent
+
+            SearchConditionCombined currentGroup = pred.getCombinedRight();
+            pred.getCombinedRight().setRightCondition(pred.getCombinedRight().getCombinedLeft().getRightCondition());
+            currentGroup.setCombinedLeft(currentGroup.getCombinedLeft().getCombinedLeft());
+            if (currentGroup.getCombinedLeft() == null) {
+                searchCon = currentGroup;
+            }
+        }
+        return searchCon;
+    }
+
+    /**
+     * Returns the ComparisonOperator literal from the given symbol.
+     * 
+     * @param compKind the String symbol for which Comparison Literal is needed 
+     * @return string literal name
+     */
+    private static String getComparisonLiteralFromSymbol(String compKind) {
+        String retVal = "";
+        if (compKind.equalsIgnoreCase("=")) {
+            retVal = "EQUAL";
+        }
+        else if (compKind.equalsIgnoreCase("<")) {
+            retVal = "LESS_THAN";
+        }
+        else if (compKind.equalsIgnoreCase("<=")) {
+            retVal = "LESS_THAN_OR_EQUAL";
+        }
+        else if (compKind.equalsIgnoreCase(">")) {
+            retVal = "GREATER_THAN";
+        }
+        else if (compKind.equalsIgnoreCase(">=")) {
+            retVal = "GREATER_THAN_OR_EQUAL";
+        }
+        else if (compKind.equalsIgnoreCase("<>")) {
+            retVal = "NOT_EQUAL";
+        }
+        return retVal;
+    }
+
+} // end class
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/helper/StatementHelper.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/helper/StatementHelper.java
new file mode 100644
index 0000000..0ee9e80
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/helper/StatementHelper.java
@@ -0,0 +1,3945 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2011 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.query.helper;
+
+import java.text.CharacterIterator;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashSet;
+import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+import java.util.Vector;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.eclipse.datatools.modelbase.sql.query.ColumnName;
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.GroupingSets;
+import org.eclipse.datatools.modelbase.sql.query.GroupingSpecification;
+import org.eclipse.datatools.modelbase.sql.query.MergeInsertSpecification;
+import org.eclipse.datatools.modelbase.sql.query.MergeOnCondition;
+import org.eclipse.datatools.modelbase.sql.query.MergeOperationSpecification;
+import org.eclipse.datatools.modelbase.sql.query.MergeSourceTable;
+import org.eclipse.datatools.modelbase.sql.query.MergeTargetTable;
+import org.eclipse.datatools.modelbase.sql.query.MergeUpdateSpecification;
+import org.eclipse.datatools.modelbase.sql.query.OrderByOrdinal;
+import org.eclipse.datatools.modelbase.sql.query.OrderByResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.OrderBySpecification;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.Predicate;
+import org.eclipse.datatools.modelbase.sql.query.QueryCombined;
+import org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement;
+import org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody;
+import org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot;
+import org.eclipse.datatools.modelbase.sql.query.QueryInsertStatement;
+import org.eclipse.datatools.modelbase.sql.query.QueryMergeStatement;
+import org.eclipse.datatools.modelbase.sql.query.QueryNested;
+import org.eclipse.datatools.modelbase.sql.query.QueryResultSpecification;
+import org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelectStatement;
+import org.eclipse.datatools.modelbase.sql.query.QueryStatement;
+import org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement;
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.QueryValues;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.ResultTableAllColumns;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelFactory;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryObject;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined;
+import org.eclipse.datatools.modelbase.sql.query.SuperGroup;
+import org.eclipse.datatools.modelbase.sql.query.TableCorrelation;
+import org.eclipse.datatools.modelbase.sql.query.TableExpression;
+import org.eclipse.datatools.modelbase.sql.query.TableInDatabase;
+import org.eclipse.datatools.modelbase.sql.query.TableJoined;
+import org.eclipse.datatools.modelbase.sql.query.TableNested;
+import org.eclipse.datatools.modelbase.sql.query.TableQueryLateral;
+import org.eclipse.datatools.modelbase.sql.query.TableReference;
+import org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionScalarSelect;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionVariable;
+import org.eclipse.datatools.modelbase.sql.query.WithTableReference;
+import org.eclipse.datatools.modelbase.sql.query.WithTableSpecification;
+import org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelFactoryImpl;
+import org.eclipse.datatools.modelbase.sql.query.util.SQLQueryLogger;
+import org.eclipse.datatools.modelbase.sql.query.util.SQLQuerySourceFormat;
+import org.eclipse.datatools.modelbase.sql.query.util.SQLQuerySourceInfo;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.tables.Column;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+
+import com.ibm.icu.text.StringCharacterIterator;
+
+
+public class StatementHelper {
+
+    /**
+     * TODO: make that DELIMITED_IDENTIFIER_QUOTE char flexible with Database
+     * info String constant for the quote that are used for delimited
+     * identifiers like "Col1" where this delimited identifier should not be
+     * modified to or be compared equal to COL1 or col1, value: "\"", the
+     * character "
+     */
+    public static char DELIMITED_IDENTIFIER_QUOTE = '"';
+
+    public static final int STATEMENT_TYPE_DELETE = 3;
+    public static final int STATEMENT_TYPE_FULLSELECT = 4;
+    public static final int STATEMENT_TYPE_INSERT = 1;
+    public static final int STATEMENT_TYPE_SELECT = 0;
+    public static final int STATEMENT_TYPE_UPDATE = 2;
+    public static final int STATEMENT_TYPE_WITH = 5;
+    public static final int STATEMENT_TYPE_MERGE = 6;
+
+    private static List templates = new ArrayList();
+
+    Database database;
+    Hashtable nameList;
+
+    public StatementHelper() {
+    }
+
+    public StatementHelper(Database database) {
+        nameList = new Hashtable();
+        this.database = database;
+    }
+
+    /**
+     * Gets the DELIMITED_IDENTIFIER_QUOTE char.
+     */
+    public static char getDELIMITED_IDENTIFIER_QUOTE()
+    {
+       return DELIMITED_IDENTIFIER_QUOTE;
+    }
+
+    /**
+     * Sets the DELIMITED_IDENTIFIER_QUOTE char to make this class flexible with Database
+     * info String constant for the quote that are used for delimited
+     * identifiers like "Col1" where this delimited identifier should not be
+     * modified to or be compared equal to COL1 or col1, value: "\"", the
+     * character "
+     */
+    public static void setDELIMITED_IDENTIFIER_QUOTE(char delimited_identifier_quote)
+    {
+       DELIMITED_IDENTIFIER_QUOTE = delimited_identifier_quote;
+    }
+
+    /**
+     * Compares the SQL source of the given SQL fragments according to their
+     * syntax.
+     * 
+     * @param sql1
+     * @param sql2
+     * @return <code>0</code> if the given SQL fragments are syntactically
+     *         equivalent
+     */
+    public static int compareSQL(String sql1, String sql2) {
+        return compareSQL(sql1, sql2, '"');
+    }
+
+    /**
+     * Compares the SQL source of the given SQL fragments according to their
+     * syntax.
+     * 
+     * @param sql1
+     * @param sql2
+     * @param identifierDelimiterQt
+     * @return <code>0</code> if the given SQL fragments are syntactically
+     *         equivalent
+     */
+    public static int compareSQL(String sql1, String sql2, char identifierDelimiterQt) {
+        sql1 = stripWhiteSpaceAndComments(sql1, identifierDelimiterQt);
+        sql2 = stripWhiteSpaceAndComments(sql2, identifierDelimiterQt);
+        return sql1.compareTo(sql2);
+    }
+    
+    /**
+     * Converts an identifier from catalog format to SQL format. See following
+     * table for examples.
+     * 
+     * <table border='1' width='250'>
+     * <tr>
+     * <th><b>SQL format</b></th>
+     * <th><b>Catalog format</b></th>
+     * </tr>
+     * <tr>
+     * <td>schema1<br>
+     * Schema1<br>
+     * SCHEMA1<br>
+     * &quot;SCHEMA1&quot;</td>
+     * <td>SCHEMA1</td>
+     * </tr>
+     * <tr>
+     * <td>&quot;Schema1&quot;</td>
+     * <td>Schema1</td>
+     * </tr>
+     * <tr>
+     * <td>&quot;Sch&quot;&quot;ma1&quot;</td>
+     * <td>Sch&quot;ma1</td>
+     * </tr>
+     * <tr>
+     * <td>&quot;Table A&quot;</td>
+     * <td>Table A</td>
+     * </tr>
+     * <tr>
+     * <td>Table A</td>
+     * <td>Error</td>
+     * </tr>
+     * <tr>
+     * <td>Sch&quot;ma1</td>
+     * <td>Error</td>
+     * </tr>
+     * </table>
+     * 
+     * @param catalogIdentifier identifier in catalog format
+     * @param idDelimiterQuote
+     * @return identifier in SQL format
+     */
+    public static String convertCatalogIdentifierToSQLFormat(String catalogIdentifier, char idDelimiterQuote) {
+        String sqlIdentifier = catalogIdentifier;
+
+        if (catalogIdentifier != null) {
+            boolean containsDelimiters = catalogIdentifier.indexOf(idDelimiterQuote) > -1;
+            boolean containsSpace = catalogIdentifier.indexOf(' ') > -1;
+            boolean containsDot = catalogIdentifier.indexOf('.') > -1;
+            boolean isLowerOrMixedCase = !catalogIdentifier.toUpperCase().equals(catalogIdentifier);
+            // QVO wsdbu00119542 
+            // We need to check for cases when the identifier contains all digits (0-9)
+            boolean allDigits = false;
+            try
+            {
+                Integer.parseInt(catalogIdentifier);
+                // if no exception, then it contains all digits
+                allDigits = true;
+            }
+            catch (NumberFormatException ex)
+            {
+                // ignore;
+            }
+            // end wsdbu00119542
+            
+            // boolean startsWithNum = catalogIdentifier.length() > 0 &&
+            // catalogIdentifier.charAt(0) < 'A';
+            // ISO/IEC 9075-2:2003 (E) 5.2 <token> and <separator>
+            // The Unicode General Category classes “Lu”, “Ll”, “Lt”,
+            // “Lm”, “Lo”, and “Nl”
+            // are assigned upper-case letters, lower-case letters, title-case
+            // letters, modifier letters, other letters, and letter numbers.
+            // All identifiers that have a non-word character (i.e not any of a-z A-Z _ 0-9 ) needs to be delimited
+            boolean containsNonAlpha = false;
+            // The following pattern is "all non-word characters (\W) except the chars $, #, and @"
+            String nonAlphaRegex = "[\\W&&[^$#@]]"; // [RATLC00401002]  //$NON-NLS-1$
+            Pattern patern = Pattern.compile(nonAlphaRegex);
+            Matcher matcher = patern.matcher(catalogIdentifier);
+            while(!containsNonAlpha &&  matcher.find()){
+                containsNonAlpha = true;
+            }
+
+            // checks for leading '_' character, which was not checked by above pattern
+            if ( !containsNonAlpha && catalogIdentifier.length() > 0 && catalogIdentifier.charAt(0) == '_' )
+                containsNonAlpha = true;
+            
+            if (containsDelimiters || containsSpace || containsDot || containsNonAlpha || isLowerOrMixedCase
+                    || allDigits) {
+                String delimiter = String.valueOf(idDelimiterQuote);
+
+                if (containsDelimiters) {
+                    StringBuffer sqlIdentSB = new StringBuffer(sqlIdentifier);
+                    for (int i = 0; i < sqlIdentSB.length(); i++) {
+                        if (sqlIdentSB.charAt(i) == idDelimiterQuote) {
+                            sqlIdentSB.insert(i, idDelimiterQuote);
+                            i++;
+                        }
+                    }
+                    sqlIdentifier = sqlIdentSB.toString();
+                }
+                sqlIdentifier = delimiter + sqlIdentifier + delimiter;
+            }
+
+        }
+
+        return sqlIdentifier;
+    }
+
+    /**
+     * Converts an identifier from SQL format to catalog format. See following
+     * table for examples.
+     * 
+     * <table border='1' width='250'>
+     * <tr>
+     * <th><b>SQL format</b></th>
+     * <th><b>Catalog format</b></th>
+     * </tr>
+     * <tr>
+     * <td>schema1<br>
+     * Schema1<br>
+     * SCHEMA1<br>
+     * &quot;SCHEMA1&quot;</td>
+     * <td>SCHEMA1</td>
+     * </tr>
+     * <tr>
+     * <td>&quot;Schema1&quot;</td>
+     * <td>Schema1</td>
+     * </tr>
+     * <tr>
+     * <td>&quot;Sch&quot;&quot;ma1&quot;</td>
+     * <td>Sch&quot;ma1</td>
+     * </tr>
+     * <tr>
+     * <td>&quot;Table A&quot;</td>
+     * <td>Table A</td>
+     * </tr>
+     * <tr>
+     * <td>Table A</td>
+     * <td>Error</td>
+     * </tr>
+     * <tr>
+     * <td>Sch&quot;ma1</td>
+     * <td>Error</td>
+     * </tr>
+     * </table>
+     * 
+     * @param sqlIdentifier identifier in SQL format
+     * @param idDelimiterQuote
+     * @return identifier in catalog format
+     */
+    public static String convertSQLIdentifierToCatalogFormat(String sqlIdentifier, char idDelimiterQuote) {
+        String catalogIdentifier = sqlIdentifier;
+
+        if (sqlIdentifier != null) {
+            String delimiter = String.valueOf(idDelimiterQuote);
+
+            boolean isDelimited = sqlIdentifier.startsWith(delimiter) && sqlIdentifier.endsWith(delimiter);
+            boolean containsQuotedDelimiters = sqlIdentifier.indexOf(delimiter + delimiter) > -1;
+
+            if (isDelimited && sqlIdentifier.length() > 1) {
+                catalogIdentifier = sqlIdentifier.substring(1, sqlIdentifier.length() - 1);
+
+                if (containsQuotedDelimiters) {
+                    catalogIdentifier = catalogIdentifier.replaceAll(delimiter + delimiter, delimiter);
+                }
+            }
+            else {
+                catalogIdentifier = sqlIdentifier.toUpperCase();
+            }
+        }
+
+        return catalogIdentifier;
+    }
+
+    /**
+     * DO NOT USE! NOT IMPLEMENTED CORRECTLY! Copies all references including
+     * elements of list references from donor to recipient. Both donor and
+     * recipient must be of the given type eObjectType, as only the references
+     * of this type will be copied.
+     * 
+     * @param donor
+     * @param recipient
+     * @param eObjectType class or interface level on which donor's references
+     *        will be copied to recipient
+     * 
+     * @deprecated not properly implemented
+     */
+    private static void copyAllDirectNonNullReferences(EObject donor, EObject recipient) {
+
+        if (donor != null && recipient != null && donor != recipient) {
+
+            for (Iterator refIt = donor.eClass().getEAllReferences().iterator(); refIt.hasNext();) {
+                EReference ref = (EReference) refIt.next();
+
+                // TODO: figure out how make sure you are copying EFeatures that
+                // exist on both donor and recipient, same interface or
+                // superclass level
+                boolean isRefCopyable = recipient.eClass().getEAllReferences().contains(ref) && ref.isChangeable();
+
+                if (isRefCopyable) {
+                    if (ref.isMany()) {
+                        EList donorRefList = (EList) donor.eGet(ref);
+                        if (!donorRefList.isEmpty()) {
+                            EList recipientRefList = (EList) recipient.eGet(ref);
+                            recipientRefList.addAll(donorRefList);
+                        }
+                    }
+                    else {
+                        EObject donorReference = (EObject) donor.eGet(ref);
+                        if (donorReference != null) {
+                            recipient.eSet(ref, donorReference);
+                        }
+                    }
+                }
+            }
+        }
+    }
+
+    /**
+     * Create a new <code>ValueExpressionColumn</code> with the given name.
+     * 
+     * @param name optional name of the result column
+     * @return new ValueExpressionColumn
+     */
+    public static ValueExpressionColumn createColumnExpression(String name) {
+        ValueExpressionColumn colExpr = SQLQueryModelFactory.eINSTANCE.createValueExpressionColumn();
+        colExpr.setName(name);
+        return colExpr;
+    }
+
+    /**
+     * Creates the new ColumnName object and sets the given name.
+     * 
+     * @param name the String name of the ColumnName.
+     * @return the created ColumnName
+     */
+    public static ColumnName createColumnName(String name) {
+        SQLQueryModelFactory factory = SQLQueryModelFactory.eINSTANCE;
+        ColumnName newCN = factory.createColumnName();
+        newCN.setName(name);
+        return newCN;
+    }
+
+    public static QueryDeleteStatement createDeleteStatement(String name) {
+        SQLQueryModelFactory factory = SQLQueryModelFactory.eINSTANCE;
+        QueryDeleteStatement sqlDeleteStatement = factory.createQueryDeleteStatement();
+        sqlDeleteStatement.setName(name);
+        return sqlDeleteStatement;
+    }
+
+    /**
+     * return false if we cannot find the input name
+     */
+    /*
+     * private boolean findUpdate(String name) { Iterator iterator =
+     * database.getStatement().iterator();
+     * 
+     * while (iterator.hasNext()) { Object o = iterator.next(); if (o instanceof
+     * SQLUpdateStatement) { SQLUpdateStatement update = (SQLUpdateStatement) o;
+     * String sname = update.getName();
+     * 
+     * if (sname != null && sname.equals(name)) { return true; } } } return
+     * false; }
+     * 
+     *//**
+         * return false if we cannot find the input name
+         */
+    /*
+     * private boolean findDelete(String name) { Iterator iterator =
+     * database.getStatement().iterator();
+     * 
+     * while (iterator.hasNext()) { Object o = iterator.next(); if (o instanceof
+     * SQLDeleteStatement) { SQLDeleteStatement del = (SQLDeleteStatement) o;
+     * String sname = del.getName();
+     * 
+     * if (sname != null && sname.equals(name)) { return true; } } }
+     * 
+     * return false; }
+     * 
+     *//**
+         * return false if we cannot find the input name
+         */
+    /*
+     * private boolean findFullSelect(String name) { Iterator iterator =
+     * database.getStatement().iterator();
+     * 
+     * while (iterator.hasNext()) { Object o = iterator.next();
+     * 
+     * if (o instanceof SQLFullSelectStatement) { SQLFullSelectStatement fselect =
+     * (SQLFullSelectStatement) o; String sname = fselect.getName();
+     * 
+     * if (sname != null && sname.equals(name)) { return true; } } } return
+     * false; }
+     * 
+     *//**
+         * return false if we cannot find the input name
+         */
+    /*
+     * private boolean findWith(String name) { Iterator iterator =
+     * database.getStatement().iterator();
+     * 
+     * while (iterator.hasNext()) { Object o = iterator.next(); if (o instanceof
+     * SQLWithStatement) { SQLWithStatement with = (SQLWithStatement) o; String
+     * sname = with.getName();
+     * 
+     * if (sname != null && sname.equals(name)) { return true; } } } return
+     * false; }
+     */
+
+    /*
+     * public SQLInsertStatement createInsertStatement() { SQLQueryModelFactory
+     * factory = SQLQueryModelFactoryImpl.instance();
+     * 
+     * SQLInsertStatement sqlInsertStatement =
+     * factory.createSQLInsertStatement();
+     * sqlInsertStatement.setName(getNewName(sqlInsertStatement));
+     * 
+     * database.getStatement().add(sqlInsertStatement);
+     * 
+     * return sqlInsertStatement; }
+     */
+
+    public static QueryInsertStatement createInsertStatement(String name) {
+        SQLQueryModelFactory factory = SQLQueryModelFactory.eINSTANCE;
+        QueryInsertStatement sqlInsertStatement = factory.createQueryInsertStatement();
+        sqlInsertStatement.setName(name);
+        return sqlInsertStatement;
+    }
+
+    /**
+     * Creates an empty MERGE statement with the given name.
+     * 
+     * @param name the name for the statement
+     * @return the merge statement
+     */
+    public static QueryMergeStatement createMergeStatement(String name) {
+        SQLQueryModelFactory factory = SQLQueryModelFactory.eINSTANCE;
+        QueryMergeStatement mergeStmt = factory.createQueryMergeStatement();
+        mergeStmt.setName(name);
+        return mergeStmt;
+    }
+
+    /**
+     * Creates a QueryCombined
+     * 
+     * @return the created QueryCombined
+     */
+    public static QueryCombined createQueryCombined() {
+        SQLQueryModelFactory factory = SQLQueryModelFactory.eINSTANCE;
+        QueryCombined queryCombined = factory.createQueryCombined();
+        return queryCombined;
+    }
+
+    /**
+     * Creates a QuerySelectStatement statement, with a QueryCombined in it
+     * 
+     * @param name the name of the statement.
+     * @return the created QuerySelectStatement statement
+     */
+    public static QuerySelectStatement createQueryCombinedStatement(String name) {
+        SQLQueryModelFactory factory = SQLQueryModelFactory.eINSTANCE;
+        QuerySelectStatement sqlSelectStatement = factory.createQuerySelectStatement();
+        sqlSelectStatement.setName(name);
+        QueryExpressionRoot qroot = createQueryExpressionRoot(sqlSelectStatement);
+        QueryCombined queryCombined = factory.createQueryCombined();
+        queryCombined.setLeftQuery(createQuerySelect());
+        queryCombined.setRightQuery(createQuerySelect());
+        sqlSelectStatement.getQueryExpr().setQuery(queryCombined);
+        return sqlSelectStatement;
+    }
+
+    /**
+     * Creates a QueryExpressionRoot
+     * 
+     * @return the created QueryExpressionRoot Object
+     */
+    public static QueryExpressionRoot createQueryExpressionRoot() {
+        SQLQueryModelFactory factory = SQLQueryModelFactory.eINSTANCE;
+        QueryExpressionRoot expRoot = factory.createQueryExpressionRoot();
+        return expRoot;
+    }
+
+    /**
+     * Creates a QueryExpressionRoot and attaches it to QuerySelectStatement
+     * 
+     * @param aParent the parent QuerySelectStatement
+     * @return the QueryExpressionRoot Object or null is aParent is null
+     */
+    public static QueryExpressionRoot createQueryExpressionRoot(QuerySelectStatement aParent) {
+        if (aParent != null) {
+            QueryExpressionRoot expRoot = createQueryExpressionRoot();
+            aParent.setQueryExpr(expRoot);
+            return expRoot;
+        }
+        return null;
+    }
+
+    /**
+     * Creates a QueryNested object.
+     * 
+     * @return
+     */
+    public static QueryNested createQueryNested() {
+        SQLQueryModelFactory factory = SQLQueryModelFactory.eINSTANCE;
+        QueryNested qryNested = factory.createQueryNested();
+        return qryNested;        
+    }
+    
+    /**
+     * Creates a QuerySelect Object
+     * 
+     * @return the created QuerySelect Object
+     */
+    public static QuerySelect createQuerySelect() {
+        SQLQueryModelFactory factory = SQLQueryModelFactory.eINSTANCE;
+        QuerySelect select = factory.createQuerySelect();
+        return select;
+    }
+
+    /**
+     * Creates a QuerySelect Object and hook it to a QueryExpressionRoot
+     * 
+     * @param anExpRoot the QueryExpressionRoot
+     * @return the QuerySelect Object or null if anExpRoot is null
+     */
+    public static QuerySelect createQuerySelect(QueryExpressionRoot anExpRoot) {
+        if (anExpRoot != null) {
+            QuerySelect select = createQuerySelect();
+            anExpRoot.setQuery(select);
+            return select;
+        }
+        return null;
+    }
+
+    /**
+     * Creates a QuerySelect Object and hook it to a QuerySelectStatement
+     * 
+     * @param aStatement the QuerySelectStatement
+     * @return the QuerySelect Object or null if aStatement is null
+     */
+    public static QuerySelect createQuerySelect(QuerySelectStatement aStatement) {
+        if (aStatement == null) {
+            return null;
+        }
+        if (aStatement.getQueryExpr() == null) {
+            return null;
+        }
+        QuerySelect select = createQuerySelect();
+        aStatement.getQueryExpr().setQuery(select);
+        return select;
+    }
+
+    /**
+     * Creates a QuerySelectStatement
+     * 
+     * @param aName the name of the statement
+     * @return the created QuerySelecteStatement
+     */
+    public static QuerySelectStatement createQuerySelectStatement(String aName) {
+        SQLQueryModelFactory factory = SQLQueryModelFactory.eINSTANCE;
+        QuerySelectStatement sqlSelectStatement = factory.createQuerySelectStatement();
+        sqlSelectStatement.setName(aName);
+        return sqlSelectStatement;
+    }
+
+    /**
+     * Creates a statement of the given type with the given name. The valid
+     * statement types are defined as constants in this class.
+     * 
+     * @param stmtType the requested statement type
+     * @param stmtName the name for the statement
+     * @return the new query statement object
+     */
+    public static QueryStatement createQueryStatement(int stmtType, String stmtName) {
+        QueryStatement stmt = null;
+        switch (stmtType) {
+            case STATEMENT_TYPE_SELECT:
+                stmt = createQuerySelectStatement(stmtName);
+                break;
+            case STATEMENT_TYPE_INSERT:
+                stmt = createInsertStatement(stmtName);
+                break;
+            case STATEMENT_TYPE_UPDATE:
+                stmt = createUpdateStatement(stmtName);
+                break;
+            case STATEMENT_TYPE_DELETE:
+                stmt = createDeleteStatement(stmtName);
+                break;
+            case STATEMENT_TYPE_FULLSELECT:
+                stmt = createQueryCombinedStatement(stmtName);
+                break;
+            case STATEMENT_TYPE_WITH:
+                stmt = createWithStatement(stmtName);
+                break;
+            case STATEMENT_TYPE_MERGE:
+                stmt = createMergeStatement(stmtName);
+                break;
+        }
+
+        return stmt;
+    }
+
+    /*
+     * public QueryUpdateStatement createUpdateStatement() { SQLQueryModelFactory
+     * factory = SQLQueryModelFactoryImpl.eInstance;
+     * 
+     * QueryUpdateStatement sqlUpdateStatement =
+     * factory.createSQLUpdateStatement();
+     * sqlUpdateStatement.setName(getNewName(sqlUpdateStatement));
+     * 
+     * database.getStatement().add(sqlUpdateStatement); return
+     * sqlUpdateStatement; }
+     */
+    public static QueryUpdateStatement createUpdateStatement(String name) {
+        SQLQueryModelFactory factory = SQLQueryModelFactoryImpl.eINSTANCE;
+        QueryUpdateStatement sqlUpdateStatement = factory.createQueryUpdateStatement();
+        sqlUpdateStatement.setName(name);
+        return sqlUpdateStatement;
+    }
+
+    /**
+     * Creates a WITH query statement.
+     * 
+     * @param name the String name of the statement.
+     * @return the created QuerySelecteStatement with TableWithSpecification.
+     */
+    public static QuerySelectStatement createWithStatement(String name) {
+
+        SQLQueryModelFactory factory = SQLQueryModelFactory.eINSTANCE;
+        QuerySelectStatement sqlSelectStatement = factory.createQuerySelectStatement();
+        sqlSelectStatement.setName(name);
+        QueryExpressionRoot qroot = createQueryExpressionRoot(sqlSelectStatement);
+        QuerySelect qSelectMain = createQuerySelect();
+        qroot.setQuery(qSelectMain);
+        WithTableSpecification withTable = factory.createWithTableSpecification();
+        withTable.setName("WithTable1");
+        QuerySelect qSelect = createQuerySelect();
+        withTable.setWithTableQueryExpr(qSelect);
+        sqlSelectStatement.getQueryExpr().getWithClause().add(withTable);
+        return sqlSelectStatement;
+    }
+
+    /**
+     * Creates a new <code>WithTableReference</code> for the given
+     * <code>withTableSpec</code> and creates
+     * <code>ValueExpressionColumn</code> objects for each of the given
+     * <code>WithTableSpecification</code>'s declared columns ({@link WithTableSpecification#getColumnNameList()})
+     * or, if columns are not declared, for each of the
+     * <code>WithTableSpecification</code>'s query's result columns.
+     * 
+     * @param withTableSpec
+     * @return
+     */
+    public static WithTableReference createWithTableReferenceForWithTable(WithTableSpecification withTableSpec) {
+        WithTableReference withTableRef = null;
+
+        if (withTableSpec != null) {
+            withTableRef = SQLQueryModelFactory.eINSTANCE.createWithTableReference();
+            withTableRef.setWithTableSpecification(withTableSpec);
+            withTableRef.setName(withTableSpec.getName());
+
+            // create ValueExpressionColumns for either the declare WithTable
+            // columns or the implicit WithTable's query's columns
+
+            TableHelper.exposeEffectiveResultColumns(withTableRef);
+        }
+
+        return withTableRef;
+    }
+
+    /**
+     * Determines whether two SQL identifiers are equal, respecting delimited
+     * identifiers using the default delimited identifier quote character.
+     * (If the given SQL identifiers are delimited, they must match exactly.  
+     * Otherwise equal identifiers can differ by case.) 
+     * If one of the identifiers is null, they are considered not equal. If both 
+     * are null, they are considered equal.
+     * 
+     * @param ident1 a SQL identifier
+     * @param ident2 another SQL identifier
+     * @return true when the identifiers are equal, otherwise false
+     */
+    public static boolean equalSQLIdentifiers(String ident1, String ident2) {
+        return equalSQLIdentifiers(ident1, ident2, DELIMITED_IDENTIFIER_QUOTE);
+    }
+    
+    /**
+     * Determines whether two SQL identifiers are equal, respecting delimited
+     * identifiers using the given quote character as delimiter.
+     * (If the given SQL identifiers are delimited, they must match exactly.  
+     * Otherwise equal identifiers can differ by case.)  
+     * If one of the identifiers is null, they are considered not equal.  If both 
+     * are null, they are considered equal.
+     * 
+     * @param ident1 a SQL identifier
+     * @param ident2 another SQL identifier
+     * @param identDelimiterQuote the delimiter char
+     * @return true when the identifiers are equal, otherwise false
+     */
+    public static boolean equalSQLIdentifiers(String ident1, String ident2, char delimiterChar) {
+        String delimStr = String.valueOf(delimiterChar);
+
+        boolean isEqualIdentifiers = false;
+        
+        /* Equal when both are null. */
+        if (ident1 == null && ident2 == null) {
+            isEqualIdentifiers = true;
+        }
+        /* Not equal when one is null. */
+        else if (ident1 == null || ident2 == null) {
+            isEqualIdentifiers = false;
+        }
+        /* When one or both identifiers are delimited, must have exact match. */
+        else if (ident1.startsWith(delimStr)
+              || ident2.startsWith(delimStr)) {
+            String tempIdent1 = ident1;
+            String tempIdent2 = ident2;
+            if (ident1.startsWith(delimStr)
+             && ident1.endsWith(delimStr)) {
+                tempIdent1 = ident1.substring(1, ident1.length()-1);
+            }
+            if (ident2.startsWith(delimStr)
+             && ident2.endsWith(delimStr)) {
+                tempIdent2 = ident2.substring(1, ident2.length()-1);
+            }
+            if (tempIdent1.equals(tempIdent2)) {
+                isEqualIdentifiers = true;
+            }
+        }
+        /* Otherwise compare ignoring case. */
+        else if (ident1.equalsIgnoreCase(ident2)) {
+            isEqualIdentifiers = true;
+        }
+        
+        return isEqualIdentifiers;
+    }
+
+    /**
+     * Returns <code>null</code> or the <code>ResultColumn</code> of the
+     * given <code>QuerySelect</code> whose <code>ValueExpression</code> is
+     * of type <code>ValueExpressionColumn</code> which in <code>name</code>
+     * and <code>tableExpr</code> equals the given <code>columnExpr</code>.
+     * 
+     * @param select
+     * @param columnExpr a <code>ValueExpressionColumn</code>
+     * @return
+     */
+    public static ResultColumn findResultColumnForColumnExpression(QuerySelect select, ValueExpressionColumn columnExpr) {
+        ResultColumn resultColumnFound = null;
+        String colName = columnExpr.getName();
+
+        if (colName != null && select != null) {
+            // if the given columnExpr is not qualified we might instead look
+            // for result column alias
+            if (columnExpr.getTableExpr() == null) {
+                resultColumnFound = findResultColumnForColumnNameOrAlias(select, colName);
+            }
+            else {
+                String colTableName = columnExpr.getTableExpr().getName();
+
+                for (Iterator resultColIt = select.getSelectClause().iterator(); resultColIt.hasNext();) {
+                    QueryResultSpecification resultSpec = (QueryResultSpecification) resultColIt.next();
+
+                    if (resultSpec instanceof ResultColumn) {
+                        ResultColumn resultColumn = (ResultColumn) resultSpec;
+                        ValueExpressionColumn resultColExpr = null;
+                        TableExpression resultColTableExpr = null;
+                        TableCorrelation resultColTableCorr = null;
+                        String resultColExprName = null;
+                        String resultColExprTableName = null;
+                        String resultColExprTableAlias = null;
+
+                        if (resultColumn.getValueExpr() instanceof ValueExpressionColumn) {
+                            resultColExpr = (ValueExpressionColumn) resultColumn.getValueExpr();
+                            resultColExprName = resultColExpr.getName();
+                            resultColTableExpr = resultColExpr.getTableExpr();
+
+                            if (resultColTableExpr != null) {
+                                resultColExprTableName = resultColTableExpr.getName();
+                                resultColTableCorr = resultColTableExpr.getTableCorrelation();
+
+                                if (resultColTableCorr != null) {
+                                    resultColExprTableAlias = resultColTableCorr.getName();
+                                }
+                            }
+
+                            // we want to match: select t1.col1 from ... w/
+                            // T1.COL1 but not with COL1 and not w/ T2.COL1
+                            // we don't want to match: select col1 from ... w/
+                            // T1.COL1 or T2.COL1 but with COL1 while T1 could
+                            // be an alias of the table that COL1 is associated
+                            // to
+                            if ( equalSQLIdentifiers(colName, resultColExprName)
+                              && ( equalSQLIdentifiers(colTableName, resultColExprTableName) 
+                                || equalSQLIdentifiers(colTableName, resultColExprTableAlias)
+                                 )
+                               ) {
+                                resultColumnFound = resultColumn;
+                                break;
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        return resultColumnFound;
+    }
+
+    /**
+     * Returns <code>null</code> or the <code>ResultColumn</code> of the
+     * given <code>QuerySelect</code> whose <code>name</code> matches the
+     * given <code>columnNameOrAlias</code> or whose
+     * <code>ValueExpression</code> is of type
+     * <code>ValueExpressionColumn</code> which has a <code>name</code>
+     * matching the given <code>columnNameOrAlias</code>.
+     * 
+     * @param select
+     * @param columnNameOrAlias
+     * @return
+     */
+    public static ResultColumn findResultColumnForColumnNameOrAlias(QuerySelect select, String columnNameOrAlias) {
+        ResultColumn resultColumnFound = null;
+
+        for (Iterator resultColIt = select.getSelectClause().iterator(); resultColIt.hasNext();) {
+            QueryResultSpecification resultSpec = (QueryResultSpecification) resultColIt.next();
+
+            if (resultSpec instanceof ResultColumn) {
+                ResultColumn resultColumn = (ResultColumn) resultSpec;
+                String resultColumnAlias = null;
+                String resultColumnName = null;
+
+                // try to match SELECT COL1 AS C1 FROM ... w/ C1
+                if (resultColumn.getName() != null) {
+                    resultColumnAlias = resultColumn.getName();
+
+                    // if (equalSQLIdentifiers(resultColumnAlias,
+                    // columnNameOrAlias))
+                    if (equalSQLIdentifiers(resultColumnAlias, columnNameOrAlias)) {
+                        resultColumnFound = resultColumn;
+                        break;
+                    }
+                }
+                else if (resultColumn.getValueExpr() instanceof ValueExpressionColumn) {
+                    ValueExpressionColumn resultColExpr = (ValueExpressionColumn) resultColumn.getValueExpr();
+                    resultColumnName = resultColExpr.getName();
+
+                    // we can't match SELECT T1.COL1, T2.COL1 FROM ... w/ COL1
+                    // only match SELECT COL1 FROM ... w/ COL1
+                    if (resultColExpr.getTableExpr() == null || !isColumnNameAmbiguous(resultColExpr)) {
+                        if (equalSQLIdentifiers(resultColumnName, columnNameOrAlias)) {
+                            resultColumnFound = resultColumn;
+                            break;
+                        }
+                    }
+                }
+            }
+        }
+
+        return resultColumnFound;
+    }
+
+    /**
+     * @param eObject
+     * @return
+     */
+    private static Set getAllDirectReferences(EObject eObject) {
+        return getDirectReferences(eObject, null);
+    }
+    
+    /**
+     * Gets all the parameter marker-type ("?") variables in the given query
+     * statement.
+     * 
+     * @param queryStmt 
+     * @return
+     */
+    public static List getAllParameterMarkersInQueryStatement(QueryStatement queryStmt) {
+        // [bug 223776]
+        List paramMarkerList = new ArrayList(); 
+
+        Class typeFilter = ValueExpressionVariable.class;
+        Set varSet = getReferencesRecursively(queryStmt, typeFilter);
+
+        Iterator varSetIter = varSet.iterator();
+        while (varSetIter.hasNext()) {
+            ValueExpressionVariable var = (ValueExpressionVariable) varSetIter.next();
+            String varName = var.getName();
+            if (varName == null) {
+                paramMarkerList.add(var);
+            }
+        }
+
+        return paramMarkerList;
+    }
+    
+    /**
+     * Returns all <code>ValueExpressionVariables</code> contained in the
+     * given <code>QueryStatement</code>.  All parameter marker-type ("?")
+     * variables will be modified to have names VAR0n where n is a sequence
+     * number.
+     * 
+     * @param queryStmt the statement from which variables are wanted
+     * @return List of the {@link ValueExpressionVariable}
+     */
+    public static List getAllVariablesInQueryStatement(QueryStatement queryStmt) {
+       List vars = getAllVariablesInQueryStatement(queryStmt, true, "VAR0");
+       // No sense sorting them unless parameter markers are named.
+       List sortedVariables = new ArrayList(vars);
+       Collections.sort(sortedVariables, new ValueExpressionComparator());
+       return sortedVariables;
+    }
+    
+    /**
+     * Returns all <code>ValueExpressionVariables</code> contained in the
+     * given <code>QueryStatement</code>.
+     * 
+     * @param queryStmt A SQL statement that might have host variables or parameter markers
+     * @param varStem The stem for naming variables from parameter markers 
+     * @return List of the {@link ValueExpressionVariable}
+     */
+    public static List getAllVariablesInQueryStatement(QueryStatement queryStmt, String varStem) {
+       List vars = getAllVariablesInQueryStatement(queryStmt, true, varStem);
+       // No sense sorting them unless parameter markers are named.
+       List sortedVariables = new ArrayList(vars);
+       Collections.sort(sortedVariables, new ValueExpressionComparator());
+       return sortedVariables;
+    }
+    
+    /**
+     * Returns all <code>ValueExpressionVariables</code> contained in the
+     * given <code>QueryStatement</code>.
+     * 
+     * @param queryStmt A SQL statement that might have host variables or parameter markers
+     * @param nameParameterMarkers True if you wish to generate names for parameter markers
+     * @return List of the {@link ValueExpressionVariable}
+     */
+    public static List getAllVariablesInQueryStatement(QueryStatement queryStmt, boolean nameParameterMarkers) {
+       List vars = getAllVariablesInQueryStatement(queryStmt, nameParameterMarkers, "VAR0");
+       // No sense sorting them unless parameter markers are named.
+       List sortedVariables = new ArrayList(vars);
+       Collections.sort(sortedVariables, new ValueExpressionComparator());
+       return sortedVariables;
+    }
+
+    /**
+     * Returns all <code>ValueExpressionVariables</code> contained in the
+     * given <code>QueryStatement</code>.
+     * 
+     * @param queryStmt A SQL statement that might have host variables or parameter markers
+     * @param nameParameterMarkers True if you wish to generate names for parameter markers
+     * @param varStem The stem for naming variables from parameter markers 
+     * @return List of the {@link ValueExpressionVariable}
+     */
+    public static List getAllVariablesInQueryStatement(QueryStatement queryStmt, boolean nameParameterMarkers, String varStem) {
+        Class typeFilter = ValueExpressionVariable.class;
+        Set hostVariableSet = getReferencesRecursively(queryStmt, typeFilter);
+        ValueExpressionVariable var;
+        String name, varname;
+        Vector vHostVars = new Vector();
+        Iterator hi = hostVariableSet.iterator();
+        while (hi.hasNext())
+        {
+           var = (ValueExpressionVariable)hi.next();
+           name = var.getName();
+           if (name != null)
+              vHostVars.add(name);
+        }
+        if (nameParameterMarkers)
+        {
+           // Give default names to any with null names (derived from ? markers)
+           hi = hostVariableSet.iterator();
+           while (hi.hasNext())
+           {
+              var = (ValueExpressionVariable)hi.next();
+              name = var.getName();
+              if (name == null)
+              {
+                 varname = getUniqueVarName(vHostVars, varStem);
+                 vHostVars.add(varname);
+                 var.setName(varname);
+              }
+           }
+        }
+        return new ArrayList(hostVariableSet);
+    }
+    
+
+    
+    /** Return a unique name for adding an attribute by appending a count to the
+     * passed string and also checking for the existence of the name in the vector.
+     *
+     * @param attrNames All attribute names in the type including the
+     *        inherited attribute names.
+     * @param name Name that we append count to.
+     *
+     * @return unique name of the attribute to be added.
+     */
+    public static String getUniqueVarName(Vector varNames, String name) {
+       String uniqueName = name;
+       int count = 0;
+       boolean found = true;
+       if (varNames != null && varNames.size() > 0) {
+          while (found) {
+             uniqueName = concatName(name, ++count);
+             found = !isNameUnique(varNames, uniqueName);
+          }
+       } else {
+          uniqueName = concatName(name, ++count);
+       }
+       return uniqueName;
+    }
+    
+    /** 
+     * Checks the passed uniqueName is in the passed array names and returns
+     * false if found, true otherwise.
+     *
+     * @param names Array of names
+     * @param uniqueName The name to be checked.
+     *
+     * @return true if found  false otherwise.
+     */
+    public static boolean isNameUnique(Vector names, String uniqueName)  {
+       int nameslength = names.size();
+       for (int i = 0; i < nameslength; i++) {
+          if (equalSQLIdentifiers((String) names.get(i), uniqueName, DELIMITED_IDENTIFIER_QUOTE))
+             return false;
+       }
+       return true;
+    }
+    
+    /**
+     *  Return a new name concatenating the int (inside delimiters if need be)
+     *  Assumes that the name is well-formed, ending with a delimiter if it
+     *  begins with one.
+     */
+    public static String concatName(String name, int count)   {
+       String nname = name.trim();
+       int epos = name.length() - 1;
+       if (nname.charAt(epos) == '"') {
+          return name.substring(0, epos) + count + '"';
+       } else {
+          return name + count;
+       }
+    }
+
+    /**
+     * Returns the Database for which SQL Statement is associated with.
+     * 
+     * @param stmt the SQLQueryStatement for which Database is needed
+     * @return the database
+     */
+    public static Database getDatabase(QueryStatement stmt) {
+        Database db = null;
+        TableExpression tableExpr = (TableExpression) getTablesForStatement(stmt).get(0);
+        if (tableExpr != null) {
+            Table table = TableHelper.getTableForTableExpression(tableExpr);
+            Schema schema = table.getSchema();
+            db = schema.getDatabase();
+        }
+        return db;
+    }
+
+    /**
+     * Returns the <code>TableInDatabase</code> that the given
+     * <code>columnExpr</code> was derived from, if the given column is not
+     * the result of an expression in the <code>selectClause</code> of a
+     * <code>QuerySelect</code> or the result column of a
+     * <code>QueryValues</code>. The derived table of "c1" in "select t1.col1
+     * as c1 from (select col1 from table1) as t1;" would be "table1".
+     * 
+     * @param columnExpr a <code>ValueExpressionColumn</code> that is part of
+     *        a <code>TableExpression</code> s <code>columnList</code>(
+     *        {@link TableExpression#getColumnList()}) as the tables exposed
+     *        ordered result columns (not the <code>ResultColumn</code> of a
+     *        <code>QuerySelect</code>)
+     * @return the <code>TableInDatabase</code> the given column was derived
+     *         from or <code>null</code> if the given column is not derived
+     *         from a <code>TableInDatabase</code>
+     */
+    public static TableInDatabase getDerivedDatabaseTable(ValueExpressionColumn columnExpr) {
+        TableInDatabase derivedTable = null;
+        // we really should have a property "derivedFromTableInDatabase"
+        // but for exposed result columns in a TableExpression's columnList
+        // we use that property to keep th TableInDatabase that this column was
+        // derived from
+        // TableExpression colTable = columnExpr.getTableExpr();
+        if (columnExpr.getTableInDatabase() != null) {
+            derivedTable = columnExpr.getTableInDatabase();
+        }
+        else {
+            // if columnExpr was not a exposed effective result column of a
+            // TableExpression, but a normal column reference,
+            // columnExpr.getTableExpr() was used to reference the table that
+            // the column belongs to like "col1" in
+            // "select * from table1 where col1 = 5;"
+            // that is the intended use of this property!
+            // we want to find the corresponding exposed column in the column's
+            // referenced table
+            ValueExpressionColumn exposedColumn = TableHelper.getColumnExpressionForName(columnExpr.getTableExpr(), columnExpr.getName());
+            if (exposedColumn != null && exposedColumn.getTableInDatabase() != null) {
+                derivedTable = exposedColumn.getTableInDatabase();
+            }
+        }
+
+        return derivedTable;
+    }
+
+    /**
+     * Returns the <code>TableInDatabase</code>s, that the given
+     * <code>columnExpr</code>s were derived from, if the given columns are
+     * not the result of an expression in the <code>selectClause</code> of a
+     * <code>QuerySelect</code> or the result column of a
+     * <code>QueryValues</code>. The derived tables of "select t1.col1,
+     * t2.col1 from table1 t1, table2 t2" would be "table1" and "table2".
+     * 
+     * @param columnExprList a List of <code>ValueExpressionColumn</code>s
+     *        that are part of a <code>TableExpression</code> s
+     *        <code>columnList</code>(
+     *        {@link TableExpression#getColumnList()}), the tables exposed
+     *        ordered result columns (not the <code>ResultColumn</code> of a
+     *        <code>QuerySelect</code>!)
+     * @return the List of <code>TableInDatabase</code>s that the given
+     *         columns were derived from, can be empty
+     */
+    public static List getDerivedDatabaseTables(List columnExprList) {
+        Set derivedTables = new HashSet();
+
+        for (Iterator it = columnExprList.iterator(); it.hasNext();) {
+            ValueExpressionColumn colExpr = (ValueExpressionColumn) it.next();
+            TableInDatabase derivedTable = getDerivedDatabaseTable(colExpr);
+            if (derivedTable != null) {
+                derivedTables.add(derivedTable);
+            }
+        }
+        return new ArrayList(derivedTables);
+    }
+
+    /**
+     * Returns all directly referenced Objects of the given <code>eObject</code>
+     * that are of type or a subtype of the given <code>typeFilter</code>.
+     * 
+     * @param eObject the EObject we want to find refernces for
+     * @param typeFilter optional the type of the refernced Objects to be
+     *        returned, may be <code>null</code> or <code>Object.class</code>
+     *        to not filter the refernces
+     * @return the Set of referenced Objects
+     */
+    public static Set getDirectReferences(EObject eObject, Class typeFilter) {
+        Set directRefs = new HashSet();
+
+        for (Iterator refIt = eObject.eClass().getEAllReferences().iterator(); refIt.hasNext();) {
+            EReference ref = (EReference) refIt.next();
+            if (ref.isMany()) {
+                EList refList = (EList) eObject.eGet(ref);
+                for (Iterator refListIt = refList.iterator(); refListIt.hasNext();) {
+                    EObject reference = (EObject) refListIt.next();
+                    if (reference != null) {
+                        if (typeFilter == null || typeFilter.isAssignableFrom(reference.getClass())) {
+                            directRefs.add(reference);
+                        }
+                    }
+                }
+            }
+            else {
+                EObject reference = (EObject) eObject.eGet(ref);
+                if (reference != null) {
+                    if (typeFilter == null || typeFilter.isAssignableFrom(reference.getClass())) {
+                        directRefs.add(reference);
+                    }
+                }
+            }
+        }
+
+        return directRefs;
+    }
+
+    /**
+     * Returns the {@link EObject#eContainer()}for the given
+     * <code>eObject</code> that is assignable to the given type
+     * <code>containerType</code>.
+     * <p>
+     * For the <code>ValueExpressionColumn</code> "col1" in the
+     * <code>QuerySelect</code> that represents the query
+     * <code>SELECT * FROM tbl1 WHERE col1 = 1</code>, the eConatiner would
+     * be a <code>PredicateBasic</code> "col1 = 1", but the eConatiner of type
+     * <code>QuerySelect</code> would be the whole <code>QuerySelect</code>,
+     * that eContains the <code>PredicateBasic</code>.
+     * 
+     * @param eObject
+     * @param containerType
+     * @return <code>SQLQueryObject</code> of type <code>containerType</code>
+     *         that ultimately contains the given <code>eObject</code>
+     */
+    public static SQLQueryObject getEContainerRecursively(EObject eObject, Class containerType) {
+        SQLQueryObject container = null;
+
+        if (eObject != null && containerType != null) {
+            EObject eContainer = eObject.eContainer();
+            while (eContainer instanceof SQLQueryObject) {
+                if (containerType.isAssignableFrom(eContainer.getClass())) {
+                    container = (SQLQueryObject) eContainer;
+                    break;
+                }
+                eContainer = eContainer.eContainer();
+            }
+        }
+
+        return container;
+    }
+
+    /**
+     * @param queryExpr
+     * @return List of <code>ValueExpressionColumn</code>s
+     * @see #getEffectiveResultColumns(QuerySelectStatement)
+     */
+    private static List getEffectiveResultColumns(QueryExpressionBody queryExpr) {
+        List effectiveResultColumnList = null;
+
+        // has the queryExpr already been exposed its effective columns?
+        if (queryExpr.getColumnList() != null && !queryExpr.getColumnList().isEmpty()) {
+            // we assume we also have the DataTypes already
+            effectiveResultColumnList = queryExpr.getColumnList();
+        }
+        else {
+            effectiveResultColumnList = TableHelper.exposeEffectiveResultColumns(queryExpr);
+        }
+
+        return effectiveResultColumnList;
+    }
+
+    /**
+     * This method compiles a list of <code>ValueExpressionColumn</code>s
+     * that reflects the columns, in order and with datatype, which are the
+     * result of the given <code>QuerySelectStatement</code>.
+     * <p>
+     * <b>Note:</b> this method will not return the <code>ResultColumn</code>
+     * list of the given <code>selectStmt</code>'s <code>QuerySelect</code>,
+     * because these don't necessarily reflect the effective result columns of a
+     * star-query for example.
+     * <p>
+     * <b>Note:</b> the returned <code>ValueExpressionColumn</code>'s
+     * <code>name</code> can be <code>null</code>, for example when the
+     * given <code>QuerySelectStatement</code>'s query is of type
+     * <code>QueryValues</code> ("VALUES (1,2),(3,4)") or if the query is a
+     * <code>QuerySelect</code> with a unnamed <code>ResultColumn</code>
+     * like in "SELECT COL1 + 10 FROM TABLE1" where "COL1 + 1" has no alias
+     * name.
+     * 
+     * @param selectStmt
+     * @return List of <code>ValueExpressionColumn</code>s
+     */
+    // retrieveEffectiveResultColumns
+    public static List getEffectiveResultColumns(QuerySelectStatement selectStmt) {
+        List resultValueExprList = new ArrayList();
+
+        if (selectStmt != null && selectStmt.getQueryExpr() != null) {
+            QueryExpressionBody queryExpr = selectStmt.getQueryExpr().getQuery();
+            resultValueExprList = getEffectiveResultColumns(queryExpr);
+        }
+        return resultValueExprList;
+    }
+
+    /**
+     * <b>Note:</b> to avoid too deep recursion
+     * <code>referencePathFilter</code> and <code>typeFilter</code> will
+     * implicitly contain <code>SQLObject.class</code>, so no references to
+     * Objects of another type will be traversed.
+     * 
+     * give the EObject <code>referencedBy</code>, that referenced the given
+     * EObject <code>p_object</code> so we can avoid traversing the
+     * back-reference and don't end up in an endless loop.
+     * 
+     * 
+     * @param eObject the object we want to find references of
+     * @param referencedBy the object that referenced the given eObject so we
+     *        can avoid traversing the back-reference and don't end up in an
+     *        endless loop
+     * @param references set of <code>EObject</code>s already referenced that
+     *        that are of type or subtype of the given <code>typeFilter</code>
+     * @param visited the set of <code>EObject</code>s already referenced but
+     *        not necessarily in the <code>references</code> set of
+     *        <code>EObject</code>s due to the given <code>typeFilter</code>
+     * @param typeFilter optional the type of the referenced Objects to be
+     *        returned, may be <code>null</code> or <code>Object.class</code>
+     *        to not filter the references
+     * @param referencePathFilter the types of references that are traversed to
+     *        reach Objects indirectly referenced by the given
+     *        <code>eObject</code>
+     * 
+     * @return Set of <code>EObject</code>s referenced
+     */
+    private static Set getEObjectReferencesRecursively(EObject eObject, EObject referencedBy, HashSet references, HashSet visited, Class typeFilter,
+            Class[] referencePathFilter) {
+
+        if (references == null) {
+            references = new HashSet();
+        }
+
+        if (eObject == null)
+            return references;
+
+        if (visited == null) {
+            visited = new HashSet();
+        }
+
+        // TODO: is there a better way to restrict reference traversion
+        // we are only interested in SQL Query model objects
+        if (referencePathFilter == null || referencePathFilter.length == 0) {
+            referencePathFilter = new Class[] { SQLQueryObject.class };
+        }
+
+        // we might want to get all references;
+        // - but then without following all it's references a second time
+        // so we eliminate the loop by checking if the reference is already
+        // recorded in the set of references
+        // we eliminate the immediate back-flip with the comparison of
+        // referencedBy
+        // with eObject.eGet(Ref) so we compare our parent with our child
+
+        // don't traverse references if we already traversed!
+        if (visited.contains(eObject)) {
+            return references;
+        }
+        else {
+            if (isSubtypeOf(eObject, typeFilter)) {
+                references.add(eObject);
+            }
+            visited.add(eObject);
+        }
+
+        // System.out.println("traversing references of: "+eObject);
+
+        for (Iterator itCon = eObject.eClass().getEAllReferences().iterator(); itCon.hasNext();) {
+            EReference ref = (EReference) itCon.next();
+            if (ref.isMany()) {
+
+                // System.out.println(" EList reference: "+ref.getName());
+
+                EList list = (EList) eObject.eGet(ref);
+                for (Iterator itChild = list.iterator(); itChild.hasNext();) {
+                    EObject child = (EObject) itChild.next();
+                    // don't go back where we came from
+                    if (child != null && child != referencedBy && (isSubtypeOf(child, referencePathFilter) || isSubtypeOf(child, typeFilter))) {
+                        getEObjectReferencesRecursively(child, eObject, references, visited, typeFilter, referencePathFilter);
+                    }
+                }
+            }
+            else {
+                EObject child = (EObject) eObject.eGet(ref);
+                // don't go back where we came from
+                if (child != null && child != referencedBy && (isSubtypeOf(child, referencePathFilter) || isSubtypeOf(child, typeFilter))) {
+                    getEObjectReferencesRecursively(child, eObject, references, visited, typeFilter, referencePathFilter);
+                }
+            }
+
+        }
+
+        return references;
+
+    }
+
+    /**
+     * Returns "Having" clause for the given statement.
+     * 
+     * @param stmt the QueryStatement for which Having clause needs to be
+     *        returned
+     * @return the having clause
+     */
+    public static QuerySearchCondition getHavingCondition(QueryStatement stmt) {
+        QuerySearchCondition havingCon = null;
+        if (stmt instanceof QuerySelectStatement) {
+            QuerySelectStatement selStmt = (QuerySelectStatement) stmt;
+            QueryExpressionRoot qRoot = selStmt.getQueryExpr();
+            if (qRoot != null && qRoot.getQuery() instanceof QuerySelect) {
+                QuerySelect qSelect = (QuerySelect) qRoot.getQuery();
+                havingCon = qSelect.getHavingClause();
+            }
+        }
+        return havingCon;
+    }
+
+    public static QuerySearchCondition getHavingCondition(SQLQueryObject stmt) {
+        QuerySearchCondition havingCon = null;
+        if (stmt instanceof QueryStatement) {
+            havingCon = getHavingCondition((QueryStatement) stmt);
+        }
+        else if (stmt instanceof QuerySelect) {
+            QuerySelect qSelect = (QuerySelect) stmt;
+            if (qSelect != null) {
+                havingCon = qSelect.getHavingClause();
+            }
+        }
+        return havingCon;
+    }
+
+    /**
+     * Gets a list of the column value expression in the "modification operations" (Update/Insert) of the given 
+     * Merge statement that are known to be references to columns in the target table of the Merge statement.
+     * That is the columns on the left side of the Update Set expressions and the Insert target columns.  
+     * @param mergeStmt the Merge statement for which the modification target columns are needed
+     * @return the list of <code>ValueExpressionColumn</code> objects
+     */
+    public static List getMergeModificationTargetColumnReferences(QueryMergeStatement mergeStmt) {
+        List colList = new ArrayList();
+        
+        List operSpecList = mergeStmt.getOperationSpecList();
+        Iterator operSpecListIter = operSpecList.iterator();
+        while (operSpecListIter.hasNext()) {
+            MergeOperationSpecification operSpec = (MergeOperationSpecification) operSpecListIter.next();
+            if (operSpec instanceof MergeUpdateSpecification) {
+                MergeUpdateSpecification updateSpec = (MergeUpdateSpecification) operSpec;
+                List assignExprList = updateSpec.getAssignementExprList();
+                Iterator assignExprListIter = assignExprList.iterator();
+                while (assignExprListIter.hasNext()) {
+                    UpdateAssignmentExpression assignExpr = (UpdateAssignmentExpression) assignExprListIter.next();
+                    List targetColList = assignExpr.getTargetColumnList();
+                    colList.addAll(targetColList);
+                }
+            }
+            else if (operSpec instanceof MergeInsertSpecification) {
+                MergeInsertSpecification insertSpec = (MergeInsertSpecification) operSpec;
+                List targetColList = insertSpec.getTargetColumnList();
+                colList.addAll(targetColList);
+            }
+        }
+        
+        return colList;
+    }
+    
+    /**
+     * Returns the <code>Predicate</code> of the given <code>variable</code>
+     * or <code>null</code>, if the <code>variable</code> has no reference
+     * to a <code>Predicate</code>.
+     * <p>
+     * <b>Note:</b> If more than one reference of type <code>Predicate</code>
+     * is found for the given <code>variable</code>, the first one found will
+     * be returned arbitrarily.
+     * </p>
+     * 
+     * @param variable
+     * @return the <code>Predicate</code> referencing the given
+     *         <code>ValueExpressionVariable</code>
+     */
+    public static Predicate getPredicateOfVariable(ValueExpressionVariable variable) {
+        Set predicateSet = getReferencesViaSpecificReferencePaths(variable, Predicate.class, new Class[] { QueryValueExpression.class });
+        Predicate pred1 = null;
+
+        if (predicateSet != null && predicateSet.iterator().hasNext()) {
+            pred1 = (Predicate) predicateSet.iterator().next();
+        }
+
+        return pred1;
+    }
+
+    /**
+     * Returns the <code>QueryExpressionRoot</code> that indirectly contains
+     * the given <code>tableRef</code>.
+     * 
+     * @param tableRef
+     * @return
+     */
+    private static QueryExpressionRoot getQueryExpressionRootForTableReference(TableExpression tableRef) {
+        QueryExpressionRoot queryExprRoot = null;
+        Set oneQueryExprRootSet = null;
+
+        Class targetType = QueryExpressionRoot.class;
+        // make sure we get the local QueryExpressionRoot by only traversing the
+        // tableReferences
+        Class[] referenceToTraverse = new Class[] { TableReference.class };
+        oneQueryExprRootSet = getReferencesViaSpecificReferencePaths(tableRef, targetType, referenceToTraverse);
+
+        if (!oneQueryExprRootSet.isEmpty()) {
+            queryExprRoot = (QueryExpressionRoot) oneQueryExprRootSet.iterator().next();
+        }
+
+        return queryExprRoot;
+    }
+
+    /**
+     * Returns the <code>QuerySelect</code> that contains the given
+     * <code>tableExpr</code> in its <code>fromClause</code>.
+     * 
+     * @param tableExpr
+     * @return the containing <code>QuerySelect</code>
+     */
+    public static QuerySelect getQuerySelectForTableReference(TableExpression tableExpr) {
+        QuerySelect querySelect = null;
+
+        if (tableExpr != null) {
+            EObject eContainer = tableExpr.eContainer();
+
+            // the tableReference must be contained in a QuerySelect, either
+            // directly or indirectly as contained in a TableJoined or
+            // TableNested
+            while (eContainer instanceof SQLQueryObject) {
+                if (eContainer instanceof QuerySelect) {
+                    querySelect = (QuerySelect) eContainer;
+                    break;
+                }
+                eContainer = eContainer.eContainer();
+            }
+        }
+
+        return querySelect;
+    }
+
+    /**
+     * Returns the <code>QueryStatement</code> associated with the given
+     * <code>tableRef</code>.
+     * 
+     * @param tableRef
+     * @return
+     */
+    public static QueryStatement getQueryStatementForTableReference(TableReference tableRef) {
+        QueryStatement queryStmt = null;
+
+        Set oneQueryStmtSet = getReferencesRecursively(tableRef, QueryStatement.class);
+
+        // should be only one QueryStatement associated with one table
+        if (oneQueryStmtSet != null && !oneQueryStmtSet.isEmpty()) {
+            queryStmt = (QueryStatement) oneQueryStmtSet.iterator().next();
+        }
+
+        return queryStmt;
+    }
+
+    /**
+     * Returns all Objects recursively referenced by the given
+     * <code>eObject</code>, that are of type or a subtype of the given
+     * <code>typeFilter</code>.
+     * 
+     * @param eObject the object we want to find refernces of
+     * @param typeFilter optional the type of the refernced Objects to be
+     *        returned, may be <code>null</code> or <code>Object.class</code>
+     *        to not filter the refernces
+     * @return Set of <code>EObject</code> s referenced recursively of type
+     *         assignable to <code>typeFilter</code>
+     */
+    public static Set getReferencesRecursively(EObject eObject, Class typeFilter) {
+        return getEObjectReferencesRecursively(eObject, null, null, null, typeFilter, null);
+    }
+
+    /**
+     * Returns Objects recursively referenced by the given <code>eObject</code>,
+     * that are of type or a subtype of the given <code>typeFilter</code>.
+     * Only such references will be traversed that are of one of the give types
+     * in <code>referencePathTypes</code>.
+     * 
+     * @param eObject the object we want to find refernces of
+     * @param typeFilter optional the type of the refernced Objects to be
+     *        returned, may be <code>null</code> or <code>Object.class</code>
+     *        to not filter the refernces
+     * @param referencePathTypes the types of references that are traversed to
+     *        reach Objects indirectly referenced by the given
+     *        <code>eObject</code>
+     * @return Set of <code>EObject</code>s referenced recursively
+     */
+    public static Set getReferencesViaSpecificReferencePaths(EObject eObject, Class typeFilter, Class[] referencePathTypes) {
+        return getEObjectReferencesRecursively(eObject, null, null, null, typeFilter, referencePathTypes);
+    }
+
+    /**
+     * Returns a List containing only the <code>QueryResultSpecification</code>s
+     * in the given <code>queryResultSpecList</code> that are of type
+     * <code>ResultTableAllColumns</code>.
+     * 
+     * @param queryResultSpecList a List of {@link QueryResultSpecification}
+     * @return a List of {@link ResultTableAllColumns}
+     */
+    public static List getResultTableAllColumnsInQueryResultSpecificationList(List queryResultSpecList) {
+        List resultTables = new ArrayList();
+
+        for (Iterator resultIt = queryResultSpecList.iterator(); resultIt.hasNext();) {
+            QueryResultSpecification resultSpec = (QueryResultSpecification) resultIt.next();
+
+            if (resultSpec instanceof ResultTableAllColumns) {
+                ResultTableAllColumns resultTable = (ResultTableAllColumns) resultSpec;
+
+                resultTables.add(resultTable);
+            }
+        }
+
+        return resultTables;
+    }
+
+    /**
+     * Returns QuerySearchCondition for the given statement.
+     * 
+     * @param stmt the QueryStatement for which search condition needs to be
+     *        returned
+     * @return the search condition
+     */
+    public static QuerySearchCondition getSearchCondition(QueryStatement stmt) {
+        QuerySearchCondition searchCon = null;
+        if (stmt instanceof QueryUpdateStatement) {
+            QueryUpdateStatement updStmt = (QueryUpdateStatement) stmt;
+            searchCon = updStmt.getWhereClause();
+        }
+        else if (stmt instanceof QueryDeleteStatement) {
+            QueryDeleteStatement delStmt = (QueryDeleteStatement) stmt;
+            searchCon = delStmt.getWhereClause();
+        }
+        else if (stmt instanceof QuerySelectStatement) {
+            QuerySelectStatement selStmt = (QuerySelectStatement) stmt;
+            QueryExpressionRoot qRoot = selStmt.getQueryExpr();
+            if (qRoot != null && qRoot.getQuery() instanceof QuerySelect) {
+                QuerySelect qSelect = (QuerySelect) qRoot.getQuery();
+                searchCon = qSelect.getWhereClause();
+            }
+        }
+        else if (stmt instanceof QueryMergeStatement) {
+            QueryMergeStatement mergeStmt = (QueryMergeStatement) stmt;
+            MergeOnCondition mergeOnCond = mergeStmt.getOnCondition();
+            searchCon = mergeOnCond.getSearchCondition();
+        }
+        
+        return searchCon;
+    }
+
+    public static QuerySearchCondition getSearchCondition(SQLQueryObject stmt) {
+        QuerySearchCondition searchCon = null;
+        if (stmt instanceof QueryStatement) {
+            searchCon = getSearchCondition((QueryStatement) stmt);
+        }
+        else if (stmt instanceof QuerySelect) {
+            QuerySelect qSelect = (QuerySelect) stmt;
+            if (qSelect != null) {
+                searchCon = qSelect.getWhereClause();
+            }
+        }
+        return searchCon;
+    }
+
+    /**
+     * Generates SQL source for the given <code>queryObject</code> without any
+     * comments and with the current schema qualified tables.
+     * <p>
+     * <b>Note: </b> this method is not <code>Thread</code> -safe, concurrent
+     * calls to {@link SQLQueryObject#getSQL()} on the given
+     * <code>queryObject</code> might not return the expected result.
+     * 
+     * @param queryObject a <code>SQLQueryObject</code> to get the SQL source
+     *        for
+     * @return the SQL source String of the given <code>queryObject</code>
+     *         without any comments and qualified tables
+     */
+    public static String getSQLForExecution(SQLQueryObject queryObject) {
+        SQLQuerySourceInfo sourceInfo = queryObject.getSourceInfo();
+        SQLQuerySourceFormat sourceFormat = sourceInfo.getSqlFormat();
+        // save the original preserveComments option and omitSchema
+        boolean preserveComments = sourceFormat.isPreserveComments();
+        String omitSchema = sourceFormat.getOmitSchema();
+        // temporarily reset sourceFormat options
+        sourceFormat.setPreserveComments(false);
+        sourceFormat.setOmitSchema(null);
+        String sql = queryObject.getSQL();
+        // reset to the previous preserveComments option and omitSchema
+        sourceFormat.setPreserveComments(preserveComments);
+        sourceFormat.setOmitSchema(omitSchema);
+
+        return sql;
+    }
+
+    /**
+     * Returns the SQL source text of the given <code>SQLQueryObject</code>
+     * with all identifiers (table and column references) qualified according to
+     * the given <code>qualificationSpec</code>.
+     * 
+     * <p>
+     * <b>Note: </b> this method is not <code>Thread</code> -safe, concurrent
+     * calls to {@link SQLQueryObject#getSQL()} on the given
+     * <code>queryObject</code> might not return the expected or even a
+     * semantically invalid result.
+     * 
+     * @param queryObject
+     * @param qualificationSpec
+     *        <ul>
+     *        <li> all identifiers qualified with schema names (incl. table
+     *        names):
+     *        {@link SQLQuerySourceFormat#QUALIFY_IDENTIFIERS_WITH_SCHEMA_NAMES}
+     *        <li> all identifiers qualified with table names and without
+     *        schema:
+     *        {@link SQLQuerySourceFormat#QUALIFY_IDENTIFIERS_WITH_TABLE_NAMES}
+     *        <li> all identifiers unqualified (column references without table
+     *        names and table names without schema):
+     *        {@link SQLQuerySourceFormat#QUALIFY_IDENTIFIERS_NEVER}
+     *        <li> all identifiers qualified according to the context of the SQL
+     *        statement:
+     *        {@link SQLQuerySourceFormat#QUALIFY_IDENTIFIERS_IN_CONTEXT}
+     *        </ul>
+     * @return SQL source of the given <code>SQLQueryObject</code>
+     */
+    public static String getSQLQualified(SQLQueryObject queryObject, int qualificationSpec) {
+        String sql = null;
+        SQLQuerySourceInfo srcInfo = queryObject.getSourceInfo();
+        SQLQuerySourceFormat sourceFormat = srcInfo.getSqlFormat();
+        // preserve the original policy for qualification of identifiers
+        // from now on to the reset of the original flag, calls to
+        // queryObject.getSQL() may return unexpected results
+        int origQualifySpec = sourceFormat.getQualifyIdentifiers();
+        sourceFormat.setQualifyIdentifiers(qualificationSpec);
+        sql = queryObject.getSQL();
+        // reset the original policy for identifier qualification
+        sourceFormat.setQualifyIdentifiers(origQualifySpec);
+        return sql;
+    }
+
+    /**
+     * Returns the SQL source text of the given <code>SQLQueryObject</code>
+     * with all identifiers (table and column references) qualified with their
+     * schema name.
+     * <p>
+     * <b>Note: </b> this method is not <code>Thread</code> -safe, concurrent
+     * calls to {@link SQLQueryObject#getSQL()} on the given
+     * <code>queryObject</code> might not return the expected result.
+     * 
+     * @param queryObject
+     * @return SQL source of the given <code>SQLQueryObject</code>
+     */
+    public static String getSQLSchemaQualified(SQLQueryObject queryObject) {
+        return getSQLQualified(queryObject, SQLQuerySourceFormat.QUALIFY_IDENTIFIERS_WITH_SCHEMA_NAMES);
+    }
+
+    /**
+     * Returns the generated SQL source for the given <code>queryObject</code>
+     * without any formatting and without comments in a single line. The
+     * returned String will have no occurrence of more than one blank " " or and
+     * no occurrence of a line break "\n", so that for any given
+     * <code>SQLQueryObject</code> <code>queryObject</code>
+     * <code>getSQLSourceUnformatted(queryObject).indexOf(" "+" ") &lt; 0</code>
+     * is <code>true</code> and
+     * <code>getSQLSourceUnformatted(queryObject).indexOf("\n") &lt; 0</code>
+     * is <code>true</code>.
+     * 
+     * @param queryObject a <code>SQLQueryObject</code> to get the SQL source
+     *        for
+     * @return the SQL source String of the given <code>queryObject</code>
+     *         without any formatting
+     */
+    public static String getSQLSourceUnformatted(SQLQueryObject queryObject) {
+        SQLQuerySourceInfo sourceInfo = queryObject.getSourceInfo();
+        SQLQuerySourceFormat sourceFormat = sourceInfo.getSqlFormat();
+        // save the original preserveComments option
+        boolean preserveComments = sourceFormat.isPreserveComments();
+        sourceFormat.setPreserveComments(false);
+        String toBeTrimmed = queryObject.getSQL();
+        toBeTrimmed = stripWhiteSpace(toBeTrimmed, DELIMITED_IDENTIFIER_QUOTE);
+        // reset to the previous preserveComments option
+        sourceFormat.setPreserveComments(preserveComments);
+
+        return toBeTrimmed;
+    }
+
+    /**
+     * Returns the given SQL source String in a single line without any
+     * formatting. The returned String will have no occurrence of more than one
+     * blank " " or and no occurrence of a line break "\n", so that for any given
+     * <code>QueryStatement</code> <code>queryStmt</code>
+     * <code>getSQLSourceUnformatted(queryStmt).indexOf(" "+" ") &lt; 0</code>
+     * is <code>true</code> and
+     * <code>getSQLSourceUnformatted(queryStmt).indexOf("\n") &lt; 0</code> is
+     * <code>true</code>.
+     * <p>
+     * <b>Note:</b> this method only works on SQL statements without
+     * single-line comments! Use
+     * {@link #stripWhiteSpaceAndComments(String, char)} for SQL that contains
+     * comments.
+     * 
+     * @param queryStmt the SQL source String of a <code>QueryStatement</code>
+     * @return the given <code>queryStmt</code> SQL source without any
+     *         formatting
+     */
+    public static String getSQLSourceUnformatted(String queryStmt) {
+        String toBeTrimmed = queryStmt;
+        StringBuffer trimmed = new StringBuffer();
+        char SPACE = ' ';
+        char NEW_LINE = '\n';
+        char lastChar = SPACE;
+        for (int i = 0; i < toBeTrimmed.length(); i++) {
+            char currentChar = toBeTrimmed.charAt(i);
+
+            if (currentChar == NEW_LINE) {
+                if (lastChar != SPACE) {
+                    trimmed.append(SPACE);
+                    lastChar = SPACE;
+                }
+            }
+            else if (currentChar != SPACE || lastChar != SPACE) {
+                trimmed.append(currentChar);
+                lastChar = currentChar;
+            }
+        }
+        return trimmed.toString();
+    }
+
+    /**
+     * Returns the SQL source text of the given <code>SQLQueryObject</code>
+     * with all column references qualified with table names, but all table
+     * names unqualified (without schema name).
+     * <p>
+     * <b>Note: </b> this method is not <code>Thread</code> -safe, concurrent
+     * calls to {@link SQLQueryObject#getSQL()} on the given
+     * <code>queryObject</code> might not return the expected or even a
+     * semantically invalid result.
+     * 
+     * @param queryObject
+     * @return SQL source of the given <code>SQLQueryObject</code>
+     */
+    public static String getSQLTableQualified(SQLQueryObject queryObject) {
+        return getSQLQualified(queryObject, SQLQuerySourceFormat.QUALIFY_IDENTIFIERS_WITH_TABLE_NAMES);
+    }
+
+    /**
+     * Returns the SQL source text of the given <code>SQLQueryObject</code>
+     * with all identifiers unqualified (column references without table names,
+     * and all table references without schema names).
+     * <p>
+     * <b>Note: </b> this method is not <code>Thread</code> -safe, concurrent
+     * calls to {@link SQLQueryObject#getSQL()} on the given
+     * <code>queryObject</code> might not return the expected or even a
+     * semantically invalid result.
+     * 
+     * @param queryObject
+     * @return SQL source of the given <code>SQLQueryObject</code>
+     */
+    public static String getSQLUnqualified(SQLQueryObject queryObject) {
+        return getSQLQualified(queryObject, SQLQuerySourceFormat.QUALIFY_IDENTIFIERS_NEVER);
+    }
+
+    /**
+     * Returns the generated SQL source for the given <code>queryObject</code>
+     * with all comments.
+     * 
+     * @param queryObject a <code>SQLQueryObject</code> to get the SQL source
+     *        for
+     * @return the SQL source String of the given <code>queryObject</code>
+     *         with all comments
+     */
+    public static String getSQLWithComments(SQLQueryObject queryObject) {
+        SQLQuerySourceInfo sourceInfo = queryObject.getSourceInfo();
+        SQLQuerySourceFormat sourceFormat = sourceInfo.getSqlFormat();
+        // save the original preserveComments option
+        boolean preserveComments = sourceFormat.isPreserveComments();
+        boolean generateComments = sourceFormat.isGenerateCommentsForStatementOnly();
+        sourceFormat.setPreserveComments(true);
+        sourceFormat.setGenerateCommentsForStatementOnly(false);
+        String sql = queryObject.getSQL();
+        // reset to the previous preserveComments option
+        sourceFormat.setPreserveComments(preserveComments);
+        sourceFormat.setGenerateCommentsForStatementOnly(generateComments);
+        return sql;
+    }
+
+    /**
+     * Returns the generated SQL source for the given <code>queryObject</code>
+     * without any comments.
+     * 
+     * @param queryObject a <code>SQLQueryObject</code> to get the SQL source
+     *        for
+     * @return the SQL source String of the given <code>queryObject</code>
+     *         without any comments
+     */
+    public static String getSQLWithoutComments(SQLQueryObject queryObject) {
+        SQLQuerySourceInfo sourceInfo = queryObject.getSourceInfo();
+        SQLQuerySourceFormat sourceFormat = sourceInfo.getSqlFormat();
+        // save the original preserveComments option
+        boolean preserveComments = sourceFormat.isPreserveComments();
+        sourceFormat.setPreserveComments(false);
+        String sql = queryObject.getSQL();
+        // reset to the previous preserveComments option
+        sourceFormat.setPreserveComments(preserveComments);
+
+        return sql;
+    }
+
+    /**
+     * Returns the integer constant defined in this class, that represents the
+     * given QueryStatement
+     * 
+     * @param statement the QueryStatement
+     * @return the integer constatnt defined in this class, that represents the
+     *         given QueryStatement or -1 if no matching is found
+     */
+    public static int getStatementType(QueryStatement statement) {
+        int type = -1;
+        if (statement instanceof QuerySelectStatement) {
+            type = STATEMENT_TYPE_SELECT;
+            QueryExpressionRoot root = ((QuerySelectStatement) statement).getQueryExpr();
+            if (root != null) {
+                QueryExpressionBody qBody = root.getQuery();
+                if (qBody instanceof QueryCombined) {
+                    type = STATEMENT_TYPE_FULLSELECT;
+                }
+                List withList = root.getWithClause();
+                if (!withList.isEmpty()) {
+                    type = STATEMENT_TYPE_WITH;
+                }
+            }
+
+        }
+        else if (statement instanceof QueryInsertStatement) {
+            type = STATEMENT_TYPE_INSERT;
+        }
+        else if (statement instanceof QueryUpdateStatement) {
+            type = STATEMENT_TYPE_UPDATE;
+        }
+        else if (statement instanceof QueryDeleteStatement) {
+            type = STATEMENT_TYPE_DELETE;
+        }
+        else if (statement instanceof QueryMergeStatement) {
+            type = STATEMENT_TYPE_MERGE;
+        }
+        
+        return type;
+    }
+
+    /**
+     * Returns the TableExpression representing the given Table object,in the
+     * given QuerySelect
+     * 
+     * @param table the Table object
+     * @param qSelect the QuerySelect in which the TableExpression is searched
+     *        for
+     * @return the TableExpression object, for the Table object,or null if none
+     *         is found
+     */
+    public static TableExpression getTableExpressionForTable(Table table, QuerySelect qSelect) {
+        TableExpression tableExpr = null;
+        if (qSelect != null) {
+            List tableExprList = StatementHelper.getTableExpressionsInQuerySelect(qSelect);
+            String name = table.getName();
+            tableExpr = TableHelper.getTableExpressionFromTableExprList(name, tableExprList);
+        }
+        return tableExpr;
+    }
+
+    /**
+     * Returns the TableExpression representing the given Table object,in the
+     * given QuerySelectStatement
+     * 
+     * @param table the Table object
+     * @param selectStmt the QuerySelectStatement in which the TableExpression
+     *        is searched for
+     * @return the TableExpression object, for the Table object,or null if none
+     *         is found
+     */
+    public static TableExpression getTableExpressionForTable(Table table, QuerySelectStatement selectStmt) {
+        TableExpression tableExpr = null;
+        if (selectStmt != null) {
+            QueryExpressionRoot root = selectStmt.getQueryExpr();
+            if (root != null) {
+                QueryExpressionBody query = root.getQuery();
+                List tableExprList = StatementHelper.getTableExpressionsInQueryExpressionBody(query);
+                String name = table.getName();
+                tableExpr = TableHelper.getTableExpressionFromTableExprList(name, tableExprList);
+            }
+        }
+        return tableExpr;
+    }
+
+    /**
+     * @param query
+     * @return
+     */
+    public static List getTableExpressionsInQueryExpressionBody(QueryExpressionBody query) {
+        List tableExprList = new ArrayList();
+
+        if (query != null) {
+
+            if (query instanceof QueryNested) {
+                QueryNested queryNest = (QueryNested) query;
+                QueryExpressionBody nestedQuery = queryNest.getNestedQuery();
+                tableExprList.addAll(getTableExpressionsInQueryExpressionBody(nestedQuery));
+            }
+            if (query instanceof QuerySelect) {
+                tableExprList.addAll(getTableExpressionsInQuerySelect((QuerySelect) query));
+            }
+            if (query instanceof QueryCombined) {
+                QueryCombined combined = (QueryCombined) query;
+                tableExprList.addAll(getTableExpressionsInQueryExpressionBody(combined.getLeftQuery()));
+                tableExprList.addAll(getTableExpressionsInQueryExpressionBody(combined.getRightQuery()));
+            }
+        }
+        return tableExprList;
+    }
+
+    public static List getTableExpressionsInQuerySelect(QuerySelect querySelect) {
+        List tableExprList = new ArrayList();
+        if (querySelect != null) {
+            List fromClause = querySelect.getFromClause();
+            Iterator fromClauseItr = fromClause.iterator();
+            while (fromClauseItr.hasNext()) {
+                TableReference tableRef = (TableReference) fromClauseItr.next();
+                if (tableRef instanceof TableExpression) {
+                    tableExprList.add(tableRef);
+                }
+                else if (tableRef instanceof TableNested) {
+                    tableExprList.addAll(JoinHelper.getTablesInNestedTable((TableNested) tableRef));
+                }
+                else if (tableRef instanceof TableJoined) {
+                    tableExprList.addAll(JoinHelper.getTablesInJoin((TableJoined) tableRef));
+                }
+            }
+        }
+        return tableExprList;
+    }
+
+    /**
+     * Returns the <code>TableExpression</code>s in the given
+     * <code>QuerySelect</code>'s <code>fromClause</code> plus all the
+     * <code>TableExpression</code>s that are visible in the scope of the
+     * given <code>QuerySelect</code>.  If the <code>QuerySelect</code>
+     * given is a nested query or sub-query, all the <code>TableExpression</code>s 
+     * of the super query are appended to the returned list of
+     * <code>TableExpression</code>s.
+     * 
+     * @param querySelect the <code>QuerySelect</code> for which the visible table expressions
+     * are needed
+     * @return List of visible <code>TableExpression</code>s
+     */
+    public static List getTableExpressionsVisibleInQuerySelect(QuerySelect querySelect) {
+        List tableExprList = new ArrayList();
+
+        if (querySelect != null) {
+            /* First get the tables contained in the query select. */
+            List fromClause = querySelect.getFromClause();
+            tableExprList.addAll(TableHelper.getTableExpressionsInTableReferenceList(fromClause));
+
+            /* If the QuerySelect is a nested table query then the other tables in the FROM clause of 
+             * the query select that contains the nested table query are not visible in the nested table query.
+             * Here's an example:
+             *   select firstnme from (select e.firstnme from employee e
+             *   where EMP.firstnme = 'JOHN') as e2, employee EMP
+             *   SQL0206N "EMP.FIRSTNME" is not valid in the context where it is used. SQLSTATE=42703
+             * And another:
+             *   select deptno from department DEPT
+             *   where deptno in (select workdept from (select e.workdept from employee e
+             *     where e.firstnme = 'JOHN' and e.workdept = DEPT.deptno) as emp)
+             *   SQL0204N "DEPT.DEPTNO" is an undefined name. SQLSTATE=42704
+             *
+             * That means that if the given select is part of the tables in the super
+             * query's FROM-clause, we don't add add the superior queries' tables as they 
+             * are not visible/allowed
+             *
+             * However that's not true for a "lateral" table query (TableQueryLateral). In a
+             * lateral table query, table references that are to the left of the table query in 
+             * the same FROM clause or in a superior query ARE visible to the table query.
+             * A lateral table query is indicated by the keyword LATERAL or TABLE ahead of the
+             * table query definition.  So the second example above will work if modified to 
+             * look like this:
+             *   select deptno from department DEPT
+             *   where deptno in (select workdept from table (select e.workdept from employee e
+             *     where e.firstnme = 'JOHN' and e.workdept = DEPT.deptno) as emp)
+             * Note: the first example above would fail even with the TABLE keyword added because 
+             * the table reference EMP is to the right of the table query.  
+             */ 
+            if (!isQuerySelectNestedQuery(querySelect) || isQuerySelectLateral(querySelect)) {
+                /* Check if the QuerySelect is contained in a superior QuerySelect.  If it is, get the
+                 * tables visible in that query. */
+                EObject eContainer = querySelect.eContainer();
+                while (eContainer instanceof SQLQueryObject) {
+                    if (eContainer instanceof QuerySelect) {
+                        QuerySelect superSelect = (QuerySelect) eContainer;
+                        List superTables = getTableExpressionsVisibleInQuerySelect(superSelect);
+                        tableExprList.addAll(superTables);
+                        break;
+                    }
+                    /* If the container is a lateral query table, that changes the visibility rules. */
+                    if (eContainer instanceof TableQueryLateral) {
+                        TableQueryLateral queryLateral = (TableQueryLateral) eContainer;
+                        /* Get the QuerySelect that encloses this lateral table query. */
+                        SQLQueryObject containerQuery = getEContainerRecursively(queryLateral, QuerySelect.class);
+                        if (containerQuery instanceof QuerySelect) {
+                            List visibleTableExprList = getTableExpressionsVisibleLaterally(queryLateral, (QuerySelect) containerQuery);
+                            tableExprList.addAll(visibleTableExprList);
+                        }
+                        /* Bypass the container query and continue searching up the containment hierarchy. */
+                        eContainer = containerQuery;
+                    }
+                    /* If the container is a QueryExpressionRoot, we need to check to see if it is attached to
+                     * a ValueExpressionScalarSelect.  This can occur when we have a QuerySelect in an
+                     * IN clause, for example. In this case, we need to work our way up that chain rather than
+                     * going to the container, since the container is null. (This is a model design bug.) */
+                    else if (eContainer instanceof QueryExpressionRoot) {
+                        QueryExpressionRoot queryRoot = (QueryExpressionRoot) eContainer;
+                        List scalarSelectList = queryRoot.getValueExprScalarSelects();
+                        if (scalarSelectList != null && scalarSelectList.size() > 0) {
+                            Object listObj = scalarSelectList.get(0);
+                            if (listObj instanceof ValueExpressionScalarSelect) {
+                                ValueExpressionScalarSelect scalarSelect = (ValueExpressionScalarSelect) listObj;
+                                eContainer = scalarSelect;
+                            }
+                        }
+                    }
+                    else if (eContainer instanceof QueryUpdateStatement) {
+                        QueryUpdateStatement updateStmt = (QueryUpdateStatement) eContainer;
+                        List superTables = getTablesForStatement(updateStmt);
+                        tableExprList.addAll(superTables);
+                    }
+                    else if (eContainer instanceof QueryDeleteStatement) {
+                        QueryDeleteStatement deleteStmt = (QueryDeleteStatement) eContainer;
+                        List superTables = getTablesForStatement(deleteStmt);
+                        tableExprList.addAll(superTables);
+                    }
+                    else if (eContainer instanceof QueryMergeStatement) {
+                        // The source (INTO) table of the Merge statement is NOT visible to a
+                        // QuerySelect in the source (USING) clause.  So don't need to add it.
+                    }
+                    eContainer = eContainer.eContainer();
+                }
+            }
+
+        }
+        return tableExprList;
+    }
+
+    /**
+     * Gets a list of table expressions that are "lateral" (that is, to the left)
+     * of the given lateral table query object in the same FROM clause that contains
+     * the lateral table query.  
+     * 
+     * @param queryLateral the table query for which lateral table expressions are needed
+     * @param containerQuery the query select object that contains  the lateral table query
+     * @return a list of table expressions that are visible laterally
+     */
+    public static List getTableExpressionsVisibleLaterally(TableQueryLateral queryLateral, QuerySelect containerQuery) {
+        List visibleTableExprList = new ArrayList();
+        
+        if (queryLateral != null && containerQuery != null) {
+            /* Get a list of table expressions fromr the FROM clause of the containing query. */
+            List fromClause = containerQuery.getFromClause();
+            List tableExprList = TableHelper.getTableExpressionsInTableReferenceList(fromClause);
+            /* Build a list of all of the table expressions ahead (to the left) of the lateral query table object. */
+            if (tableExprList != null && tableExprList.size() > 0) {
+                Object tableExprListObj = null;
+                Iterator tableExprListIter = tableExprList.iterator();
+                while (tableExprListObj != queryLateral && tableExprListIter.hasNext() ) {
+                    tableExprListObj = tableExprListIter.next();
+                    visibleTableExprList.add(tableExprListObj);
+                }                 
+            }
+        }
+        
+        return visibleTableExprList;
+    }
+
+    /**
+     * Returns List of tables (<code>TableExpression</code>) referenced in
+     * the statement. For Select statement it returns the source tables of the
+     * "From" clause. For Insert, Update and Delete returns the target table.
+     * For Merge it returns the target (INTO) table and the source (USING) table.
+     * 
+     * @param stmt the SQLQueryStatement from which the table are wanted
+     * @return the List of table
+     */
+    public static List getTablesForStatement(QueryStatement stmt) {
+        List tableList = new ArrayList();
+
+        if (stmt == null) {
+            // we hate NullPointers!
+            return tableList;
+        }
+        else if (stmt instanceof QueryInsertStatement) {
+            QueryInsertStatement insertStmt = (QueryInsertStatement) stmt;
+            TableExpression tableExpr = insertStmt.getTargetTable();
+            if (tableExpr != null) {
+                tableList.add(tableExpr);
+            }
+        }
+        else if (stmt instanceof QueryUpdateStatement) {
+            QueryUpdateStatement updateStmt = (QueryUpdateStatement) stmt;
+            TableExpression tableExpr = updateStmt.getTargetTable();
+            if (tableExpr != null) {
+                tableList.add(tableExpr);
+            }
+        }
+        else if (stmt instanceof QueryDeleteStatement) {
+            QueryDeleteStatement deleteStmt = (QueryDeleteStatement) stmt;
+            TableExpression tableExpr = deleteStmt.getTargetTable();
+            if (tableExpr != null) {
+                tableList.add(tableExpr);
+            }
+        }
+        else if (stmt instanceof QuerySelectStatement) {
+            QuerySelectStatement selectStmt = (QuerySelectStatement) stmt;
+            QueryExpressionRoot queryExpr = selectStmt.getQueryExpr();
+            if (queryExpr != null) {
+                QueryExpressionBody query = queryExpr.getQuery();
+                if (query != null) {
+                    tableList.addAll(getTableExpressionsInQueryExpressionBody(query));
+                }
+            }
+        }
+        else if (stmt instanceof QueryMergeStatement) {
+            QueryMergeStatement mergeStmt = (QueryMergeStatement) stmt;
+            
+             MergeTargetTable mergeTarget = mergeStmt.getTargetTable();
+             TableExpression tableExpr = mergeTarget.getTableExpr();
+             tableList.add(tableExpr);
+             
+             MergeSourceTable mergeSource = mergeStmt.getSourceTable();
+             TableReference tableRef = mergeSource.getTableRef();
+             tableList.add(tableRef);
+        }
+
+        return tableList;
+    }
+
+    public static List getTablesForStatement(SQLQueryObject stmt) {
+        List tableList = new ArrayList();
+
+        if (stmt == null) {
+            // we hate NullPointers!
+            return tableList;
+        }
+        else if (stmt instanceof QueryStatement) {
+            tableList.addAll(getTablesForStatement((QueryStatement) stmt));
+        }
+        else if (stmt instanceof QuerySelect) {
+            tableList.addAll(getTableExpressionsInQuerySelect((QuerySelect) stmt));
+        }
+
+        return tableList;
+    }
+
+    /**
+     * Returns the default SQL template for a statement
+     * 
+     * @param statementType the type of the statement
+     * @return the SQL template
+     */
+    public static String getTemplateSQL(int statementType) {
+        String templateSQL = null;
+        QueryStatement stmt = StatementHelper.createQueryStatement(statementType, "");
+        if (stmt != null) {
+            templateSQL = stmt.getSQL();
+        }
+        return templateSQL;
+    }
+
+    /**
+     * Returns the <code>TableWithSpecification</code> with the given
+     * <code>withTableName</code> from the given List of
+     * <code>WithTableSpecification</code> s or <code>null</code> if the
+     * given <code>withTableSpecList</code> contains no
+     * <code>WithTableSpecification</code> with that <code>name</code>.
+     * 
+     * @param withTableName a name refering to a
+     *        <code>WithTableSpecification</code>
+     * @param withTableSpecList List of <code>WithTableSpecification</code>
+     * @return the <code>WithTableSpecification</code> with the given
+     *         <code>name</code> or <code>null</code>
+     */
+    private static WithTableSpecification getWithTableSpecificationForName(String withTableName, List withTableSpecList) {
+        WithTableSpecification withTableFound = null;
+
+        if (withTableName != null && withTableSpecList != null) {
+
+            for (Iterator withIt = withTableSpecList.iterator(); withIt.hasNext();) {
+                WithTableSpecification tempWithTable = (WithTableSpecification) withIt.next();
+
+                String tempWithTableName = tempWithTable.getName();
+
+                if (equalSQLIdentifiers(withTableName, tempWithTableName)) {
+                    withTableFound = tempWithTable;
+                    break;
+                }
+
+            }
+
+        }
+
+        return withTableFound;
+    }
+
+    /**
+     * Returns the <code>TableWithSpecification</code> with the given
+     * <code>withTableName</code> that is visible within the scope of the
+     * given <code>querySelect</code>. If none is found <code>null</code>
+     * is returned.
+     * 
+     * @param withTableName a name refering to a
+     *        <code>WithTableSpecification</code>
+     * @param querySelect <code>QuerySelect</code> in which's scope the
+     *        WITH-table is referenced
+     * @return the <code>WithTableSpecification</code> with the given
+     *         <code>name</code> or <code>null</code>
+     */
+    private static WithTableSpecification getWithTableSpecificationForNameRecursively(String withTableName, QuerySelect querySelect) {
+        WithTableSpecification withTableFound = null;
+
+        if (querySelect != null) {
+
+            EObject eContainer = querySelect.eContainer();
+
+            // traverse the container hierarchy upwards and find the
+            // QueryExpressionRoots
+            // that could contain WITH-table specifications that are
+            // relevant/referenced
+            // w/in the scope of the given QuerySelect, don't traverse higher
+            // than the
+            // QuerySelectStatement, only travers SQLQueryObjects
+            while (withTableFound == null && eContainer instanceof SQLQueryObject) {
+                if (eContainer instanceof QueryExpressionRoot) {
+                    QueryExpressionRoot queryExprRt = (QueryExpressionRoot) eContainer;
+                    List withTableSpecList = queryExprRt.getWithClause();
+                    withTableFound = getWithTableSpecificationForName(withTableName, withTableSpecList);
+
+                }
+                else if (eContainer instanceof QuerySelectStatement) {
+                    // precaution to not traverse up higher than the
+                    // QuerySelectStatement
+                    break;
+                }
+                eContainer = eContainer.eContainer();
+            }
+        }
+
+        return withTableFound;
+    }
+
+    /**
+     * Returns true only if the name of the given column expression is equal 
+     * to another column's name in a different table.  This check only applies
+     * to columns in QuerySelect objects and in Merge statements.
+     * 
+     * @param colExpr the column expression to check
+     * @return true when the column name is ambiguous in its context, otherwise false
+     */
+    public static boolean isColumnNameAmbiguous(ValueExpressionColumn colExpr) {
+        boolean isAmbiguous = false;
+
+        if (colExpr != null && colExpr.getTableExpr() != null) {
+            TableExpression colTableExpr = colExpr.getTableExpr();
+            String colName = colExpr.getName();
+            List tableRefList = new ArrayList();
+            TableExpression mergeTargetTableExpr = null;
+            
+            /* Get a list of the visible table references.  First assume we have a QuerySelect as 
+             * the column's container, and try to get it. */
+            QuerySelect querySelect = (QuerySelect) getEContainerRecursively(colExpr, QuerySelect.class);
+            if (querySelect != null) {
+                /* Get all the tables that are in scope.  (That is, tables of the local query and all
+                 * of its super queries.) */
+                tableRefList = getTableExpressionsVisibleInQuerySelect(querySelect);
+            }
+            /* If we don't have a QuerySelect, then see if the container is a Merge statement, and
+             * get the visible table ref list from that. */
+            else {
+                QueryMergeStatement mergeStmt = (QueryMergeStatement) getEContainerRecursively(colExpr, QueryMergeStatement.class);
+                /* When we have a Merge statement, get a list of the statement's table references. */
+                if (mergeStmt != null) {
+                    tableRefList = getTablesForStatement(mergeStmt);
+                    MergeTargetTable mergeTargetTable = mergeStmt.getTargetTable();
+                    mergeTargetTableExpr = mergeTargetTable.getTableExpr();
+                }
+            }
+
+            if (tableRefList.size() > 1) {
+                /* Check the column against the columns of the table in the table ref list. */
+                Iterator tableRefListIter = tableRefList.iterator();
+                while (isAmbiguous == false && tableRefListIter.hasNext()) {
+                    TableExpression tableRef = (TableExpression) tableRefListIter.next();
+
+                    /* Make sure we don't compare a table to itself.  Also don't compare to
+                     * a table ref that is actually the QuerySelect that contains the column.
+                     * For example in "select col1 from (select col1 from table0 where col1 = 5) as query0;"
+                     * the nested query "select col1 from table0 where col1 = 5" has a 
+                     * "result" or "exposed" column of "col1".  There is also a column "col1" in 
+                     * the super query as an exposed column of the virtual table "query0".  
+                     * But "query0.col1" is not visible in the nested query and is not ambiguous 
+                     * to "table0.col1".     
+                     * Also note that columns in the Merge target table are not ambiguous. */
+                    if (tableRef != colTableExpr && tableRef != querySelect) {
+
+                        /* Check if the table ref was already populated with its columns.  
+                         * If so, see if the table ref has a column with the same name.  This can pick up
+                         * ambiguities from the query definition itself, not just from database tables. */
+                        if (tableRef.getColumnList() != null) {
+                            ValueExpressionColumn tableRefCol = TableHelper.getColumnExpressionForName(tableRef, colName);
+                            if (tableRefCol != null) {
+                                isAmbiguous = true;
+                            }
+                        }
+                        /* If we have a database table, the check its columns. */
+                        if (isAmbiguous == false && tableRef instanceof TableInDatabase) {
+                            Column dbTableCol = TableHelper.getColumnForName((TableInDatabase) tableRef, colName);
+                            if (dbTableCol != null) {
+                                isAmbiguous = true;
+                            }
+                        }
+                        /* In the case the table expr doesn't have column info, we can try to find out if there 
+                         * are other columns with the same name that reference the table. */
+                        if (isAmbiguous == false && TableHelper.isTableReferencedByColumnWithName(tableRef, colName)) {
+                            isAmbiguous = true;
+                        }
+                    }
+                }
+            }
+        }
+        
+        return isAmbiguous;
+    }
+
+    /**
+     * Returns <code>true</code>, if at least one
+     * <code>OrderBySpecification</code> contained in the given
+     * <code>orderByClause</code> list is valid.
+     * 
+     * @return
+     */
+    public static boolean isOrderByClauseContainsValidOrderBySpecification(List orderByClause) {
+        boolean isOrderByClauseValid = false;
+
+        if (orderByClause != null && !orderByClause.isEmpty()) {
+            for (Iterator orderIt = orderByClause.iterator(); orderIt.hasNext();) {
+                OrderBySpecification orderBy = (OrderBySpecification) orderIt.next();
+
+                if (isOrderBySpecificationValid(orderBy)) {
+                    isOrderByClauseValid = true;
+                }
+
+            }
+        }
+
+        return isOrderByClauseValid;
+    }
+
+    /**
+     * @param orderBySpec
+     * @return
+     */
+    public static boolean isOrderBySpecificationValid(OrderBySpecification orderBySpec) {
+        boolean isOrderBySpecValid = false;
+
+        if (orderBySpec != null) {
+            if (orderBySpec instanceof OrderByOrdinal) {
+                OrderByOrdinal orderOrdinal = (OrderByOrdinal) orderBySpec;
+                isOrderBySpecValid = orderOrdinal.getOrdinalValue() > 0;
+            }
+            else if (orderBySpec instanceof OrderByResultColumn) {
+                OrderByResultColumn orderColumn = (OrderByResultColumn) orderBySpec;
+                isOrderBySpecValid = orderColumn.getResultCol() != null && orderColumn.getResultCol().getValueExpr() != null;
+            }
+            else if (orderBySpec instanceof OrderByValueExpression) {
+                OrderByValueExpression orderExpr = (OrderByValueExpression) orderBySpec;
+                isOrderBySpecValid = orderExpr.getValueExpr() != null;
+            }
+
+        }
+
+        return isOrderBySpecValid;
+    }
+
+    /**
+     * Determines whether or not the given query select object is (or is part of)
+     * the query expression contained in a "lateral" query table object.
+     * A "lateral" query select is a nested query introduced by the TABLE or
+     * LATERAL keyword.  Here's an example:
+     * 
+     * SELECT d.deptname, e2.lastname 
+     * FROM department d, TABLE (SELECT lastname FROM employee e where e.workdept = d.deptno) e2 
+     * 
+     * @param querySelect the query select object to check
+     * @return true when the query select is lateral, otherwise false
+     */
+    private static boolean isQuerySelectLateral(QuerySelect querySelect) {
+        boolean isLateral = false;
+        if (querySelect != null) {
+            EObject eContainer = querySelect.eContainer();
+            
+            while (eContainer instanceof TableReference && isLateral == false) {
+                if (eContainer instanceof TableQueryLateral) {
+                    isLateral = true;
+                }
+                eContainer = eContainer.eContainer();
+            }
+        }
+        
+        return isLateral;
+    }
+
+    /**
+     * Determins whether or not the given <code>QuerySelect</code> is part of
+     * the <code>fromClause</code> of another <code>QuerySelect</code>.
+     * 
+     * @param querySelect
+     * @return <code>true</code> if the <code>querySelect</code> is nested
+     *         query of another superior <code>QuerySelect</code>
+     */
+    private static boolean isQuerySelectNestedQuery(QuerySelect querySelect) {
+        boolean isNestedQuery = false;
+
+        if (querySelect != null) {
+            EObject eContainer = querySelect.eContainer();
+
+            // to still be part of a FROM-clause the eContainer can be any
+            // table reference including a QueryCombined
+            // if we reach another QuerySelect by the way of TableReferences, we
+            // must be part of that Select's FROM-clause
+            while (eContainer instanceof TableReference) {
+                if (eContainer instanceof QuerySelect) {
+                    isNestedQuery = true;
+                    break;
+                }
+                eContainer = eContainer.eContainer();
+            }
+        }
+
+        return isNestedQuery;
+    }
+
+    /**
+     * Returns <code>true</code> if the given <code>eObject</code> is a
+     * subclass or instance of the given <code>Class typeFilter</code> or the
+     * given <code>Class typeFilter</code> is <code>null</code>.
+     * 
+     * @param eObject the <code>EObject</code> to test for assignability to
+     *        the given <code>typeFilter Class</code>
+     * @param typeFilter the <code>Class</code> tryed to assign from the given
+     *        <code>eObject</code>
+     * @return <code>true</code> if the given <code>eObject</code> is a
+     *         subclass or instance of the given <code>Class typeFilter</code>
+     *         or the given <code>Class typeFilter</code> is <code>null</code>
+     */
+    private static boolean isSubtypeOf(EObject eObject, Class typeFilter) {
+        return typeFilter == null
+        // || typeFilter.equals(Object.class)
+                // || typeFilter.equals(eObject.getClass())
+                || typeFilter.isAssignableFrom(eObject.getClass());
+    }
+
+    /**
+     * Returns <code>true</code> if the given <code>eObject</code> is a
+     * subclass or instance of one of the given <code>typeFilter Class</code>es
+     * or if the given <code>typeFilter</code> array is <code>null</code> or
+     * empty.
+     * 
+     * @param eObject the <code>EObject</code> to test for assignability to
+     *        one of the given <code>typeFilter Class</code>es
+     * @param typeFilter the <code>Class</code>es contained will be tested
+     *        for assignability from the given <code>eObject</code>
+     * @return <code>true</code> if the given <code>eObject</code> is a
+     *         subclass or instance of one of the <code>Class</code>es in the
+     *         given <code>typeFilter</code> array or the given
+     *         <code>Class typeFilter</code> is <code>null</code> or empty
+     */
+    private static boolean isSubtypeOf(EObject eObject, Class[] typeFilter) {
+        boolean isSubtype = false;
+
+        // if we have no typeFilter we wanna return true, no restriction
+        if (typeFilter == null || typeFilter.length == 0) {
+            isSubtype = true;
+        }
+        else {
+            for (int i = 0; i < typeFilter.length; i++) {
+                if (typeFilter[i].isAssignableFrom(eObject.getClass())) {
+                    isSubtype |= true;
+                    break;
+                }
+            }
+        }
+        return isSubtype;
+    }
+
+    /**
+     * Returns <code>true</code> if the given <code>tableExpr</code>'s
+     * <code>name</code> is not unique within the <code>fromClause</code> of
+     * its containing <code>QuerySelect</code> and the other
+     * <code>TableExpression</code> s in the <code>fromClause</code> as well
+     * as the given <code>TableExpression</code> have no
+     * <code>TableCorrelation</code> to distinguish between them. That is
+     * important for column references to that table, which will have to get
+     * qualified with the table's <code>Schema</code> name.
+     * 
+     * @param tableExpr
+     * @return <code>true</code> if the given <code>tableExpr</code>'s
+     *         <code>name</code> is not unique within the
+     *         <code>fromClause</code> of its containing
+     *         <code>QuerySelect</code> and the other
+     *         <code>TableExpression</code> s in the <code>fromClause</code>
+     *         as well as the given <code>TableExpression</code> have no
+     *         <code>TableCorrelation</code> to distinguish between them
+     */
+    public static boolean isTableNameAmbiguous(TableExpression tableExpr) {
+        boolean isAmbiguous = false;
+
+        // if we have have a table alias, we assume there can be no ambiguity
+        if (tableExpr.getTableCorrelation() != null) {
+            return false;
+        }
+
+        QuerySelect select = getQuerySelectForTableReference(tableExpr);
+
+        if (select != null) {
+            List tableExprList = getTableExpressionsInQuerySelect(select);
+            for (Iterator it = tableExprList.iterator(); it.hasNext();) {
+                TableExpression otherTable = (TableExpression) it.next();
+
+                // only if table has no alias we might have ambiguity
+                if (otherTable != tableExpr && otherTable.getTableCorrelation() == null && tableExpr.getName() != null
+                        && equalSQLIdentifiers(tableExpr.getName(), otherTable.getName())) {
+                    isAmbiguous = true;
+                    break;
+                }
+            }
+        }
+
+        return isAmbiguous;
+    }
+
+    /**
+     * Checks to see if the given string is same as the template for any of the
+     * DML statements
+     * 
+     * @param sql the string to check if it is the template statement
+     * @return true of if sql is same as a tmplate , false otherwise
+     */
+    public static boolean isTemplateSQL(String sql) {
+        boolean isTemplate = false;
+        int compares = -1;
+        if (templates.isEmpty()) {
+            templates.add((StatementHelper.createQueryStatement(0, "")).getSQL());
+            templates.add((StatementHelper.createQueryStatement(1, "")).getSQL());
+            templates.add((StatementHelper.createQueryStatement(2, "")).getSQL());
+            templates.add((StatementHelper.createQueryStatement(3, "")).getSQL());
+            templates.add((StatementHelper.createQueryStatement(4, "")).getSQL());
+            templates.add((StatementHelper.createQueryStatement(5, "")).getSQL());
+            // Merge (type 6) is not supported here
+        }
+        Iterator itr = templates.iterator();
+        String template;
+        while (compares != 0 && itr.hasNext()) {
+            template = (String) itr.next();
+            compares = compareSQL(template, sql);
+        }
+        if (compares == 0) {
+            isTemplate = true;
+        }
+        return isTemplate;
+    }
+
+    public static void logDebug(String debugMsg) {
+        // if (DEBUG) {
+        SQLQueryLogger.getLogger().writeInfo(debugMsg);
+        // }
+
+    }
+
+    public static void logError(String errorMsg) {
+        // if (DEBUG) {
+        SQLQueryLogger.getLogger().writeLog(errorMsg);
+        // }
+
+    }
+
+    /**
+     * Returns <code>true</code> if the given <code>tableInDB</code> does
+     * not have to be qualified with its <code>Schema</code> name.
+     * <p>
+     * <b>Note:</b> Assumptions:
+     * <ul>
+     * <li> given <code>tableInDB</code> is not <code>null</code>
+     * <li> given <code>tableInDB</code> has (indirect) reference to its
+     * <code>QueryStatement</code>
+     * <li> that <code>QueryStatement</code> has reference to its
+     * <code>SQLQuerySourceInfo</code> and that way indirectly a reference to
+     * a <code>SQLQuerySourceFormat</code> ({@link com.ibm.db.models.sql.query.util.SQLQuerySourceFormat#getOmitSchema()})
+     * </ul>
+     * 
+     * @param tableInDB
+     * @return <code>true</code> if table name does not have to be qualified
+     */
+    public static boolean omitSchema(TableInDatabase tableInDB) {
+        // default: don't omit any schema!
+        boolean omitSchema = false;
+
+        if (tableInDB.getDatabaseTable() != null) {
+            SQLQuerySourceFormat sourceFormat = null;
+
+            QueryStatement queryStmt = getQueryStatementForTableReference(tableInDB);
+
+            // don't know why this could happen, but it did!
+            // get the sourceFormat from the tableInDB, sourceFormat might be
+            // forgotten to be set by GUI model construction thats why we tryed
+            // to get the statement as the highest level that might have been
+            // through the parser, parser always sets sourceFormat if it gets it
+            // provided
+            if (queryStmt != null && queryStmt.getSourceInfo() != null && queryStmt.getSourceInfo().getSqlFormat() != null) {
+                sourceFormat = queryStmt.getSourceInfo().getSqlFormat();
+            }
+            else {
+                if (tableInDB.getSourceInfo() != null && tableInDB.getSourceInfo().getSqlFormat() != null) {
+                    sourceFormat = tableInDB.getSourceInfo().getSqlFormat();
+                }
+            }
+
+            // get the default schema name to be ommited
+            String omitSchemaName = null;
+            if (sourceFormat != null) {
+                omitSchemaName = sourceFormat.getOmitSchema();
+            }
+
+            Schema schema = tableInDB.getDatabaseTable().getSchema();
+            // String tableName = tableInDB.getDatabaseTable().getName();
+
+            if (schema != null) {
+                String schemaName = schema.getName();
+
+                if (schemaName != null && schemaName.length() > 0 
+                 && equalSQLIdentifiers(schemaName, omitSchemaName)) {
+                    omitSchema = true;
+                }
+            }
+
+        }
+
+        return omitSchema;
+    }
+
+    /**
+     * Removes the references of a given ValueExpressionColumn.
+     * 
+     * @param colExpr the ValueExpressionColumn for which all the references
+     *        needs to be removed
+     */
+    private static void removeColumnReferences(ValueExpressionColumn colExpr) {
+        Set colRefList = getAllDirectReferences(colExpr);
+        for (Iterator colRefIt = colRefList.iterator(); colRefIt.hasNext();) {
+            EObject reference = (EObject) colRefIt.next();
+            
+            if (reference instanceof GroupingSpecification) {
+                removeGroupingSpecification((GroupingSpecification) reference);
+            }
+            else if (reference instanceof OrderBySpecification) {
+                removeOrderBySpecification((OrderBySpecification) reference);
+            }
+            else if (reference instanceof Predicate) {
+                removePredicate((Predicate) reference);
+            }
+            else if (reference instanceof ResultColumn) {
+                removeResultColumn((ResultColumn) reference);
+            }
+            else if (reference instanceof QueryValueExpression) {
+                removeValueExpression((QueryValueExpression) reference);
+            }
+        }
+    }
+
+    /**
+     * Walks through the given SQL and strips out the comments that are
+     * identified by two dashes in line "--" and that are not part of a
+     * delimited character string (single quotes), or SQL delimited object name
+     * (double quotes). <br>
+     * <b>NOTE: </b> The given SQL statement string must contain the line-break
+     * characters to delimit the "--" comments, otherwise all of the
+     * SQL-Statement that comes after the first occurence of a "--" comment be
+     * treated as part of the comment and rather be ignored, moreover the
+     * resulting statement is likely to fail! <br>
+     * <p>
+     * SELECT EMP_NUM FROM DEPARTEMENT -- pre-accumulated number of employees
+     * <br>
+     * WHERE LOCATION = 'C-Tower--01' OR LOCATION = 'C-Tower-02'
+     * <p>
+     * In this statement the first occurence of "--" would indicate a comment
+     * that would be stripped of and the second occurence would be retained, as
+     * it is part of a String delimited by the enclosing single quotes.
+     * 
+     * 
+     * @param statement A SQL statement
+     * @param delimitedIdentifierQt the quote char used to prefix and suffix
+     *        non-standard identifiers or identifiers that are case sensitive
+     * @return The a SQL statement without "--" comments.
+     */
+    public static String removeCommentsInSQL(String statement, char delimitedIdentifierQt) {
+        final int NO_QUOTE = 0;
+        final int SINGLE_QUOTE = 1;
+        final int DOUBLE_QUOTE = 2;
+        final int INSIDE_COMMENT = 3;
+
+        char lookAheadChar;
+        char lastChar = ' ';
+        int delimiterState = NO_QUOTE;
+        StringBuffer nonCommentStmt = new StringBuffer();
+
+        StringCharacterIterator iter = new StringCharacterIterator(statement);
+        // Iterate through the string to find a comments.
+        // Ignore comments that are enclosed in quotes:
+        // delimited SQL object names (double quotes) or character
+        // strings (single quotes)
+        for (char c = iter.first(); c != CharacterIterator.DONE; c = iter.next()) {
+            switch (delimiterState) {
+                case INSIDE_COMMENT: // --comment end with line
+                    if ((c == '\r') || (c == '\n')) // carriage return
+                    {
+                        delimiterState = NO_QUOTE;
+                    }
+                    break;
+                case NO_QUOTE:
+                    if (c == '\'') {
+                        delimiterState = SINGLE_QUOTE;
+                    }
+                    else if (c == delimitedIdentifierQt) {
+                        delimiterState = DOUBLE_QUOTE;
+                    }
+                    else if (c == '-') {
+                        lookAheadChar = iter.next();
+                        if (lookAheadChar == '-') {
+                            delimiterState = INSIDE_COMMENT;
+                        }
+                        else {
+                            nonCommentStmt.append(c);
+                            lastChar = c;
+                            c = lookAheadChar;
+                        }
+                    }
+                    break;
+                case SINGLE_QUOTE:
+                    if (c == '\'') {
+                        lookAheadChar = iter.next();
+                        if (lookAheadChar != '\'') {
+                            delimiterState = NO_QUOTE;
+                            nonCommentStmt.append(c);
+                            lastChar = c;
+                            c = lookAheadChar;
+                        }
+                    }
+                    break;
+                case DOUBLE_QUOTE:
+                    if (c == delimitedIdentifierQt) {
+                        lookAheadChar = iter.next();
+                        if (lookAheadChar != delimitedIdentifierQt) {
+                            delimiterState = NO_QUOTE;
+                            nonCommentStmt.append(c);
+                            lastChar = c;
+                            c = lookAheadChar;
+                        }
+                    }
+                    break;
+            }
+
+            // if not inside a comment, append the current char to the resulting
+            // StringBuffer
+            if (delimiterState != INSIDE_COMMENT) {
+
+                // filter out the line terminators
+                if ((c == '\n' || c == '\r') && delimiterState == NO_QUOTE) {
+                    if (lastChar != ' ') {
+                        nonCommentStmt.append(' ');
+                        lastChar = ' ';
+                    }
+                }
+                else {
+                    // append characters, not CharacterIterator limiter
+                    if (c != CharacterIterator.DONE) {
+                        // only append blanks in quotes or if the previous char
+                        // was no blank
+                        if (delimiterState != NO_QUOTE || lastChar != ' ' || c != ' ') {
+                            nonCommentStmt.append(c);
+                            lastChar = c;
+                        }
+                    }
+                }
+            }
+
+        }
+
+        return nonCommentStmt.toString().trim();
+
+    }
+
+    /**
+     * Removes the given GroupingSpecification object from the group by clause
+     * of the query expression that contains it.
+     * 
+     * @param groupingSpec the GroupingSpecification that needs to be removed
+     */
+    private static void removeGroupingSpecification(GroupingSpecification groupingSpec) {
+        /* Get the container of the grouping spec. */
+        Object container = groupingSpec.eContainer();
+
+        /*
+         * Search for the QuerySelect (query expression) object that contains
+         * the grouping spec. The grouping spec may be nested inside another
+         * grouping spec. Keep track of the grouping spec that is attached to
+         * the query expression.
+         */
+        GroupingSpecification groupingSpecToRemove = groupingSpec;
+        boolean foundSelect = false;
+        QuerySelect qSelect = null;
+        while (!foundSelect && container != null) {
+            if (container instanceof QuerySelect) {
+                qSelect = (QuerySelect) container;
+                foundSelect = true;
+            }
+            else if (container instanceof SuperGroup) {
+                groupingSpecToRemove = (SuperGroup) container;
+            }
+            else if (container instanceof GroupingSets) {
+                groupingSpecToRemove = (GroupingSets) container;
+            }
+            container = ((EObject) container).eContainer();
+        }
+
+        /*
+         * If we found the containing query expression, remove from the 
+         * grouping clause of the query expression the top-most grouping 
+         * spec that contains the target grouping spec.
+         */
+        if (qSelect != null) {
+            qSelect.getGroupByClause().remove(groupingSpecToRemove);
+        }
+    }
+
+    /**
+     * Removes the given sort specification from the sort specification list
+     * (ORDER BY clause) that contains it.
+     * 
+     * @param sortSpec the sort specification that needs to be removed
+     */
+    private static void removeOrderBySpecification(OrderBySpecification sortSpec) {
+        QuerySelectStatement stmt = sortSpec.getSelectStatement();
+        stmt.getOrderByClause().remove(sortSpec);
+    }
+
+    /**
+     * Removes given Predicate object from the object that contains it.
+     * 
+     * @param pred the Predicate to remove
+     */
+    private static void removePredicate(Predicate pred) {
+        QuerySearchCondition searchCon = null;
+        Object parent = null;
+        boolean isHaving = false;
+        if (pred.getCombinedRight() == null && pred.getCombinedLeft() == null) {
+            parent = pred.eContainer();
+            if (parent instanceof QuerySelect) {
+                QuerySelect query = (QuerySelect) parent;
+                if (query.getHavingClause() == pred) {
+                    isHaving = true;
+                }
+            }
+        }
+        else {
+            if (pred.getCombinedLeft() != null) {
+                searchCon = pred.getCombinedLeft();
+            }
+            else if (pred.getCombinedRight() != null){
+                searchCon = pred.getCombinedRight();
+            }
+            else if (pred.getNest() != null) {
+                searchCon = pred.getNest();
+            }
+            
+            while (searchCon.getCombinedLeft() != null) {
+                searchCon = searchCon.getCombinedLeft();
+            }
+            parent = searchCon.eContainer();
+            if (parent instanceof QuerySelect) {
+                QuerySelect query = (QuerySelect) parent;
+                if (query.getHavingClause() == searchCon) {
+                    isHaving = true;
+                }
+            }
+        }
+
+        // if (pred.getQuerySelectWhere() != null) {
+        // QuerySelect query = pred.getQuerySelectWhere();
+        // query.setWhereClause(null) ;
+        // }
+        if (searchCon == null) {
+            // do nothing
+        }
+        else if (pred.getCombinedRight() != null && pred.getCombinedRight().getCombinedLeft() == null) {
+            // Case : any right most (last) node then searchCon points to left
+            // (previous) sibling (Combine/pred)
+            searchCon = pred.getCombinedRight().getLeftCondition();
+            if (searchCon != null) {
+                searchCon.setCombinedLeft(null);
+            }
+        }
+        else if (pred.getCombinedLeft() != null) {
+            // Case : any left most (first) node then if more than 2 nodes then
+            // parent combined replaces with right sibling
+            // otherwise searchCon points to right sibling (pred)
+            if (pred.getCombinedLeft().getCombinedLeft() != null) {
+                pred.getCombinedLeft().getCombinedLeft().setLeftCondition(pred.getCombinedLeft().getRightCondition());
+            }
+            else {
+                searchCon = pred.getCombinedLeft().getRightCondition();
+            }
+        }
+        else if (pred.getCombinedRight() != null && pred.getCombinedRight().getCombinedLeft() != null) {
+            // Case : any middle node then assign right (next) pred to parent
+            // and assignt parent's
+            // left combine to parent's parent's combine left
+            // if second from right then searchCon points to parent
+
+            SearchConditionCombined currentGroup = pred.getCombinedRight();
+            pred.getCombinedRight().setRightCondition(pred.getCombinedRight().getCombinedLeft().getRightCondition());
+            currentGroup.setCombinedLeft(currentGroup.getCombinedLeft().getCombinedLeft());
+            if (currentGroup.getCombinedLeft() == null) {
+                searchCon = currentGroup;
+            }
+        }
+
+        if (parent != null) {
+            updateSearchConditionParent(searchCon, parent, isHaving);
+        }
+    }
+
+    /**
+     * Removes the references of the given ResultColumn from the SelectClause.
+     * 
+     * @param resCol the ResultColumn that needs to be removed
+     */
+    private static void removeResultColumn(ResultColumn resCol) {
+        /* Get the query expression that contains the result column, if any. */
+        QuerySelect query = resCol.getQuerySelect();
+
+        /*
+         * Get the OrderByResultColumn that references the ResultColumn, if any,
+         * and remove the ResultColumn from it. The OrderByResultColumn does not
+         * contain (own) the ResultColumn, so we can't simply use eContainer to
+         * get the referring object. Instead we need to get the order by list
+         * and scan it looking for the target ResultColumn object. We assume
+         * that only one OrderByResultColumn object refers to the ResultColumn.
+         */
+        List ordByColList = resCol.getOrderByResultCol();
+        if (ordByColList != null && !ordByColList.isEmpty()) {
+            Iterator orderByColListIter = ordByColList.iterator();
+            boolean deleted = false;
+            while (orderByColListIter.hasNext() && !deleted) {
+                Object col = orderByColListIter.next();
+                if (col instanceof OrderByResultColumn) {
+                    OrderByResultColumn rstCol = (OrderByResultColumn) col;
+                    if (rstCol.getResultCol() == resCol) {
+                        orderByColListIter.remove();
+                        deleted = true;
+                    }
+                }
+            }
+        }
+
+        /*
+         * Now remove the ResultColumn object from the query expression SELECT
+         * clause.
+         */
+        if (query != null) {
+            query.getSelectClause().remove(resCol);
+        }
+    }
+
+    /**
+     * Removes the given <code>TableExpression</code> from the given <code>SQLQueryObject</code>.
+     * The SQLQueryObject should be either a <code>QueryStatement</code> or a <code>QuerySelect</code>.
+     * All references to columns of the TableExpression are removed as well.
+     * 
+     * @param tableExpr the table expression to remove
+     * @param queryObj the query object from which the table expression should
+     * be removed
+     */
+    public static void removeTableExpressionFromQueryStatement(TableExpression tableExpr, SQLQueryObject queryObj) {
+        
+        /* Get a list (set) of all the objects that are directly referenced by the target
+         * table expression. */
+        Set directlyReferencedObjects = getAllDirectReferences(tableExpr);
+        
+        /* Iterate through the list of objects that reference the target table.  Remove the 
+         * objects that are columns from the query. */
+        for (Iterator dirRefIter = directlyReferencedObjects.iterator(); dirRefIter.hasNext();) {
+            EObject reference = (EObject) dirRefIter.next();
+            
+            /* When the referenced object is a column, remove references to that column 
+             * from any other object that references it. 
+             */
+            if (reference instanceof ValueExpressionColumn) {
+                ValueExpressionColumn valExprCol = (ValueExpressionColumn) reference;
+                removeColumnReferences(valExprCol);
+            }
+        }
+        
+        /* Remove the table expression from the query expression or statement that 
+         * contains it. */
+        if (queryObj instanceof QuerySelect) {
+            QuerySelect querySelect = (QuerySelect) queryObj;
+            List tableExprList = querySelect.getFromClause();
+            if (tableExprList != null && !tableExprList.isEmpty()) {
+                /* Remove any joins containing the target table. */
+                JoinHelper.removeJoinsForTable(tableExprList, tableExpr);
+                /* Remove the table. */
+                tableExprList.remove(tableExpr);
+            }
+        }
+        else if (queryObj instanceof QuerySelectStatement) {
+            QuerySelectStatement stmt = (QuerySelectStatement) queryObj;
+            QueryExpressionRoot queryExpr = stmt.getQueryExpr();
+            if (queryExpr != null) {
+                QueryExpressionBody query = queryExpr.getQuery();
+                if (query != null) {
+                    if (query instanceof QuerySelect) {
+                        QuerySelect querySelect = (QuerySelect) query;
+                        List tableExprList = querySelect.getFromClause();
+                        if (tableExprList != null && !tableExprList.isEmpty()) {
+                            /* Remove any joins containing the target table. */
+                            JoinHelper.removeJoinsForTable(tableExprList, tableExpr);
+                            /* Remove the table. */
+                            tableExprList.remove(tableExpr);
+                        }
+                    }
+                }
+            }
+        }
+        else if (queryObj instanceof QueryInsertStatement) {
+            QueryInsertStatement stmt = (QueryInsertStatement) queryObj;
+            stmt.getTargetColumnList().clear();
+            stmt.getSourceValuesRowList().clear();
+            stmt.setTargetTable(null);
+        }
+        else if (queryObj instanceof QueryUpdateStatement) {
+            QueryUpdateStatement stmt = (QueryUpdateStatement) queryObj;
+            stmt.setTargetTable(null);
+        }
+        else if (queryObj instanceof QueryDeleteStatement) {
+            QueryDeleteStatement stmt = (QueryDeleteStatement) queryObj;
+            stmt.setTargetTable(null);
+        }
+        // QueryMergeStatement is not supported here
+    }
+
+    /**
+     * Removes the given ValueExpression object from the object that
+     * contains it.  If the containing object would then be invalid, remove
+     * the containing object as well.
+     * 
+     * @param valExpr the object to remove
+     */
+    public static void removeValueExpression( QueryValueExpression valExpr ) {
+        /* Get the container for this object. */
+        Object container = valExpr.eContainer();
+        if (container instanceof ValueExpressionNested) {
+            ValueExpressionNested nest = (ValueExpressionNested) container;
+            nest.setNestedValueExpr(null);
+            removeValueExpression(nest);
+        }
+        else if (container instanceof ValueExpressionCombined) {
+            ValueExpressionCombined combined = (ValueExpressionCombined) container;
+            combined.setLeftValueExpr(null);
+            combined.setRightValueExpr(null);
+            removeValueExpression(combined);
+        }
+        else if (container instanceof GroupingExpression) {
+            GroupingExpression groupingExpr = (GroupingExpression) container;
+            groupingExpr.setValueExpr(null);
+            removeGroupingSpecification(groupingExpr);
+        }
+        else if (container instanceof OrderByValueExpression) {
+            OrderByValueExpression orderByVal = (OrderByValueExpression) container;
+            orderByVal.setValueExpr(null);
+            removeOrderBySpecification(orderByVal);
+        }
+        else if (container instanceof Predicate) {
+            Predicate pred = (Predicate) container;
+            // should determine the subclass of Predicate and remove the value expr from it
+            removePredicate(pred);
+        }
+        else if (container instanceof ResultColumn) {
+            ResultColumn resultCol = (ResultColumn) container;
+            resultCol.setValueExpr(null);
+            removeResultColumn(resultCol);
+        }
+    }
+    
+    /**
+     * @see #resolveOrderByColumns(QuerySelect, List)
+     */
+    public static Set resolveOrderByColumns(QueryExpressionBody queryExpr, List orderByList) {
+        Set removedColumns = new HashSet();
+
+        if (queryExpr instanceof QuerySelect) {
+            QuerySelect select = (QuerySelect) queryExpr;
+            removedColumns.addAll(resolveOrderByColumns(select, orderByList));
+        }
+        else if (queryExpr instanceof QueryCombined) {
+            QueryCombined combined = (QueryCombined) queryExpr;
+            removedColumns.addAll(resolveOrderByColumns(combined.getLeftQuery(), orderByList));
+            removedColumns.addAll(resolveOrderByColumns(combined.getRightQuery(), orderByList));
+        }
+        else if (queryExpr instanceof QueryNested) {
+            QueryNested qryNested = (QueryNested) queryExpr;
+            QueryExpressionBody nestedQuery = qryNested.getNestedQuery();
+            removedColumns.addAll(resolveOrderByColumns(nestedQuery, orderByList));
+        }
+        else if (queryExpr instanceof QueryValues) {
+            // nothing to resolve! no column references in VALUES clause
+            // possible
+        }
+        else {
+            throw new UnsupportedOperationException("resolveOrderByColumns(QueryExpressionBody, List) not implemented for " + queryExpr.getClass().getName()
+                    + " in " + StatementHelper.class.getName());
+        }
+
+        return removedColumns;
+    }
+
+    /**
+     * Every given <code>OrderBySpecification</code>s contained in the given
+     * <code>orderByList</code>, that is of type
+     * <code>OrderByValueExpression</code> and its owned
+     * <code>ValueExpression</code> is of type
+     * <code>ValueExpressionColumn</code>, will be removed from the given
+     * <code>QuerySelect</code> and substituted by a new
+     * <code>OrderByResultColumn</code> that will then be given the reference
+     * to the <code>ValueExpressionColumn</code> formerly associated to the
+     * removed <code>OrderByValueExpression</code>, if the given
+     * <code>QuerySelect</code> has a <code>ResultColumn</code> that refers
+     * by its <code>name</code> to the same <code>ValueExpressionColumn</code>.
+     * In other words, the type of a <code>OrderByValueExpression</code>,
+     * that references a <code>ValueExpressionColumn</code> also referred to
+     * by one <code>ResultColumn</code> of the given <code>select</code>,
+     * will be changed to <code>OrderByResultColumn</code>.
+     * <p>
+     * <b>Note:</b> Returns the Set of <code>ValueExpressionColumn</code>s
+     * that have been removed from their <code>OrderByValueExpression</code>.
+     * </p>
+     * 
+     * @param select
+     * @param orderBySpecList List of <code>OrderBySpecification</code>s
+     *        referring to the given <code>QuerySelect</code>
+     * @return Set of <code>ValueExpressionColumn</code>s that have been
+     *         removed from their <code>OrderByValueExpression</code>
+     */
+    public static Set resolveOrderByColumns(QuerySelect select, List orderBySpecList) {
+        // for the ORDER BY specifications that currently are of type
+        // OrderByValueExpression, check if the ValueExpression is a ColumnExpr.
+        // if so resolve it with the ResultColumns of the given select and
+        // change
+        // the type of the OrderBySpecification from OrderByValueExpression to
+        // OrderByResultColumn
+        List newOrderBySpecList = new ArrayList();
+
+        // collect the remove ValueExpressionColumns for further check or processing
+        Set removedColumnExprs = new HashSet();
+
+        for (Iterator orderIter = orderBySpecList.iterator(); orderIter.hasNext();) {
+            // Get the next order by spec from the old order by list and also remove it from the list.
+            // If it's an OrderByValueExpression whose value expression matches one of the
+            // Result Column value expressions, then it will be transformed into a 
+            // OrderByResultColumn and added to the new order by list.  Otherwise it will be
+            // added to the new order by list unchanged.
+            OrderBySpecification oldOrderBySpec = (OrderBySpecification) orderIter.next();
+            orderIter.remove();
+            OrderBySpecification newOrderBySpec = oldOrderBySpec;
+            if (oldOrderBySpec instanceof OrderByValueExpression) {
+                OrderByValueExpression orderByVE = (OrderByValueExpression) oldOrderBySpec;
+
+                if (orderByVE.getValueExpr() instanceof ValueExpressionColumn) {
+                    ValueExpressionColumn columnExpr = (ValueExpressionColumn) orderByVE.getValueExpr();
+
+                    // find ResultColumns in select's resultSpecList
+                    ResultColumn resultCol = null;
+                    // if current order by column is just a name we want to look
+                    // for result column's alias or result column's columnRef's
+                    // name
+                    // otherwise, if the order by column is qualified we must
+                    // not
+                    // look for a result column with that name but for a result
+                    // column
+                    // with a reference to a corresponding column expression
+                    if (columnExpr.getTableExpr() == null) {
+                        resultCol = findResultColumnForColumnNameOrAlias(select, columnExpr.getName());
+                    }
+                    else {
+                        resultCol = findResultColumnForColumnExpression(select, columnExpr);
+                    }
+
+                    if (resultCol != null) {
+                        OrderByResultColumn newOrderByRC = SQLQueryModelFactory.eINSTANCE.createOrderByResultColumn();
+                        newOrderByRC.setResultCol(resultCol);
+                        newOrderByRC.setOrderingSpecOption(orderByVE.getOrderingSpecOption());
+                        // descending is replaced by the orderingspecOption.  User should use the
+                        // orderingspecOption instead of descending to determine orderby type. 
+                        newOrderByRC.setDescending(orderByVE.isDescending());
+                        newOrderByRC.setNullOrderingOption(orderByVE.getNullOrderingOption());
+
+                        
+                        // remove the columnExpr from its table if it's a
+                        // duplicate representative of a column existing,
+                        // because
+                        // the equivalent columnExpr will already exist because
+                        // of the ResultColumn that already exists
+                        orderByVE.setValueExpr(null);
+                        // keep reference to it in removedColumnExprs
+                        removedColumnExprs.add(columnExpr);
+
+                        TableHelper.removeColumnExpressionFromTableIfNotReferenced(columnExpr);
+                        
+                        newOrderBySpec = newOrderByRC;
+                    }
+                }
+            }
+            
+            // Add the transformed order by spec (or the original one, if no transform needed)
+            // to the new list.
+            newOrderBySpecList.add(newOrderBySpec);
+        }
+
+        // Copy the new order by spec list contents into the old
+        orderBySpecList.addAll(newOrderBySpecList);
+
+        return removedColumnExprs;
+    }
+
+    /**
+     * Resolves columnExpressions and tableReferences in given
+     * <code>querySelect</code>'s <code>QueryResultSpecification</code> 
+     * <code>ResultColumn</code>
+     * or <code>ResultTableAllColumns</code> with the columnExpressions and
+     * tableExpressions in the given <code>querySelect</code>'s
+     * <code>fromClause</code>.
+     * 
+     * @param querySelect
+     */
+    public static void resolveQueryResultSpecification(QuerySelect querySelect) {
+        List tableRefList = querySelect.getFromClause();
+
+        // get list of query result columns or table.*s
+        List queryResultSpecList = querySelect.getSelectClause();
+
+        // resolve column table references
+        Set columnExprSet = TableHelper.findColumnReferencesInQueryResultSpecificationList(queryResultSpecList);
+        TableHelper.resolveColumnTableReferences(columnExprSet, tableRefList);
+
+        // resolve TABLE.* all column references
+        // get all table expressions in given list of tableRefs
+        List tableExprList = TableHelper.getTableExpressionsInTableReferenceList(tableRefList);
+        List resultTableList = getResultTableAllColumnsInQueryResultSpecificationList(queryResultSpecList);
+
+        TableHelper.resolveResultTableReferences(resultTableList, tableExprList);
+
+    }
+
+    /**
+     * Resolves tableReferences in given <code>querySelect</code>'s
+     * <code>QueryResultSpecification</code>s of type
+     * <code>ResultTableAllColumns</code> with the tableExpressions in the
+     * given <code>querySelect</code>'s <code>fromClause</code>.
+     * 
+     * @param querySelect
+     */
+    public static void resolveResultTableAllColumns(QuerySelect querySelect) {
+        List tableRefList = querySelect.getFromClause();
+
+        // get list of query result columns or table.*s
+        List queryResultSpecList = querySelect.getSelectClause();
+
+        // resolve TABLE.* all column references
+        // get all table expressions in given list of tableRefs
+        List tableExprList = TableHelper.getTableExpressionsInTableReferenceList(tableRefList);
+        List resultTableList = getResultTableAllColumnsInQueryResultSpecificationList(queryResultSpecList);
+
+        TableHelper.resolveResultTableReferences(resultTableList, tableExprList);
+    }
+
+    /**
+     * Substitutes the given <code>TableReference</code> with the
+     * <code>WithTableSpecification</code> that is refered by the given
+     * <code>potentialTableWithRef</code>'s <code>name</code>, if a
+     * <code>TableWithSpecification</code> is found in the
+     * <code>QueryExpressionRoot</code> that contains the given
+     * <code>TableReference</code>.
+     * 
+     * @param potentialTableWithRef
+     * @return the substitute <code>TableWithSpecification</code> found
+     */
+    public static WithTableReference resolveWithTableSpecificationReference(TableExpression potentialWithTableRef) {
+        WithTableReference withTableRef = null;
+
+        if (potentialWithTableRef != null) {
+
+            String withTableName = potentialWithTableRef.getName();
+
+            WithTableSpecification withTableSpec = null;
+
+            QuerySelect querySelect = getQuerySelectForTableReference(potentialWithTableRef);
+
+            // solves the resolving problem for WithTableReferences in selects
+            // that are not a nested query, like in PredicateExists
+            // like in:
+            // "with temp1 (col1) as (values 256),
+            // temp2 (col2) as (values 'string')
+            // select t1.col1 from temp1 t1
+            // where exists (
+            // select * from temp2 t2 where t1.col1 = t2.col2);"
+            // where "t1.col1" will be attempted to resolve in the context of
+            // the exist-select, but must be resolved in the context of the
+            // sourrounding select and we need the WithTable.
+            withTableSpec = getWithTableSpecificationForNameRecursively(withTableName, querySelect);
+
+            if (withTableSpec != null) {
+                withTableRef = createWithTableReferenceForWithTable(withTableSpec);
+                substituteTableReference(potentialWithTableRef, withTableRef);
+            }
+
+        }
+        return withTableRef;
+    }
+
+    /**
+     * Sets the having clause in the given sql statement.
+     * 
+     * @param newSearchCon new QuerySearchCondition that needs to be set.
+     * @param statement the SQL Statement on which new having clause needs to
+     *        set.
+     */
+    public static void setHavingClauseForStatement(QuerySearchCondition newSearchCon, QueryStatement statement) {
+        if (statement instanceof QuerySelectStatement) {
+            QueryExpressionRoot qRoot = ((QuerySelectStatement) statement).getQueryExpr();
+            if (qRoot != null && qRoot.getQuery() instanceof QuerySelect) {
+                QuerySelect qSelect = (QuerySelect) qRoot.getQuery();
+                qSelect.setHavingClause(newSearchCon);
+            }
+        }
+    }
+
+    /**
+     * Sets the having clause in the given SQLQueryObject.
+     * 
+     * @param newSearchCon new QuerySearchCondition that needs to be set.
+     * @param statement the SQLQueryObject on which new having clause needs to
+     *        set.
+     */
+    public static void setHavingClauseForStatement(QuerySearchCondition newSearchCon, SQLQueryObject statement) {
+        if (statement instanceof QueryStatement) {
+            setHavingClauseForStatement(newSearchCon, (QueryStatement) statement);
+        }
+        else if (statement instanceof QuerySelect) {
+            QuerySelect qSelect = (QuerySelect) statement;
+            qSelect.setHavingClause(newSearchCon);
+        }
+
+    }
+
+    /**
+     * Sets the where clause in the given sql statement.
+     * 
+     * @param newSearchCon new QuerySearchCondition that needs to set.
+     * @param statement the SQL Statement on which new where clause needs to
+     *        set.
+     */
+    public static void setWhereClauseForStatement(QuerySearchCondition newSearchCon, QueryStatement statement) {
+        if (statement instanceof QuerySelectStatement) {
+            QueryExpressionRoot qRoot = ((QuerySelectStatement) statement).getQueryExpr();
+            if (qRoot != null && qRoot.getQuery() instanceof QuerySelect) {
+                QuerySelect qSelect = (QuerySelect) qRoot.getQuery();
+                qSelect.setWhereClause(newSearchCon);
+            }
+        }
+        else if (statement instanceof QueryUpdateStatement) {
+            ((QueryUpdateStatement) statement).setWhereClause(newSearchCon);
+        }
+        else if (statement instanceof QueryDeleteStatement) {
+            ((QueryDeleteStatement) statement).setWhereClause(newSearchCon);
+        }
+        // QueryMergeStatement is not supported here
+    }
+
+    /**
+     * Sets the where clause in the given sqlQueryObject.
+     * 
+     * @param newSearchCon new QuerySearchCondition that needs to set.
+     * @param statement the SQLObject on which new where clause needs to set.
+     */
+    public static void setWhereClauseForStatement(QuerySearchCondition newSearchCon, SQLQueryObject statement) {
+        if (statement instanceof QueryStatement) {
+            setWhereClauseForStatement(newSearchCon, (QueryStatement) statement);
+        }
+        else if (statement instanceof QuerySelect) {
+            QuerySelect qSelect = (QuerySelect) statement;
+            qSelect.setWhereClause(newSearchCon);
+        }
+    }
+
+    /**
+     * Strips of the optional whitespace from the given <code>sql</code> and
+     * replaces all new lines with single spaces.
+     * <p>
+     * <b>Note:</b> this method does not strip comments from the given
+     * <code>sql</code> and consequently makes any given SQL that contains
+     * comments invalid, unless the comment is on the last line and no valid SQL
+     * succeeds the comment.
+     * <p>
+     * <b>Note performance: </b> this method invokes
+     * {@link String#replaceAll(java.lang.String, java.lang.String)} 11 times
+     * after walking through the SQL source two times to remove all comments and
+     * transforming the given <code>sql</code> into upper case format
+     * (respecting delimited identifiers).
+     * 
+     * @param sql the SQL source string
+     * @param delimitedIdentifierQt the String that is used to pre- and suffix
+     *        delimited identifiers, commonly it is the double-quote char '"'
+     * @return the given <code>sql</code> in upper case, without comments and
+     *         with minimal whitespace
+     */
+    public static String stripWhiteSpace(String sql, char delimitedIdentifierQt) {
+        String stmtTerm = ";"; //$NON-NLS-1$
+
+        if (sql != null) {
+            sql = toSQLFormatUpperCase(sql, delimitedIdentifierQt);
+            sql = sql.replaceAll("\n", " "); // line breaks to space
+                                                // //$NON-NLS-1$ //$NON-NLS-2$
+            // sql = sql.replaceAll(" AS ", " "); // AS is optional, exept in
+            // WITH table spec //$NON-NLS-1$ //$NON-NLS-2$
+            sql = sql.replaceAll("\\s*,\\s*", ","); // eliminate white space
+                                                    // before and after comma
+                                                    // //$NON-NLS-1$
+                                                    // //$NON-NLS-2$
+            sql = sql.replaceAll("\\s*\\(\\s*", "("); // delete space before
+                                                        // and after left paren
+                                                        // //$NON-NLS-1$
+                                                        // //$NON-NLS-2$
+            sql = sql.replaceAll("\\s*\\)\\s*", ")"); // one space after right
+                                                        // paren, no more space
+                                                        // before or after
+                                                        // //$NON-NLS-1$
+                                                        // //$NON-NLS-2$
+            sql = sql.replaceAll("\\s+", " "); // multiple space into single
+                                                // space //$NON-NLS-1$
+                                                // //$NON-NLS-2$
+            // sql = sql.replaceAll("\\s+\\(\\+\\*-/\\)\\s+", "\\1");
+            sql = sql.replaceAll("\\s*=\\s*", "="); // one space before and
+                                                    // after = //$NON-NLS-1$
+                                                    // //$NON-NLS-2$
+            sql = sql.replaceAll("\\s*-\\s*", "-"); // one space before and
+                                                    // after - //$NON-NLS-1$
+                                                    // //$NON-NLS-2$
+            sql = sql.replaceAll("\\s*\\+\\s*", "+"); // one space before and
+                                                        // after + //$NON-NLS-1$
+                                                        // //$NON-NLS-2$
+            sql = sql.replaceAll("\\s*\\*\\s*", "*"); // one space before and
+                                                        // after * //$NON-NLS-1$
+                                                        // //$NON-NLS-2$
+            sql = sql.replaceAll("\\s*/\\s*", "/"); // one space before and
+                                                    // after / //$NON-NLS-1$
+                                                    // //$NON-NLS-2$
+            sql = sql.replaceAll(stmtTerm, " "); // eliminate optional
+                                                    // trailing stmt terminator
+                                                    // //$NON-NLS-1$
+        }
+        return sql.trim();
+    }
+
+    /**
+     * Strips of the optional whitespace from the given <code>sql</code> and
+     * replaces all new lines as well as comments.
+     * <p>
+     * <b>Note performance: </b> this method invokes
+     * {@link String#replaceAll(java.lang.String, java.lang.String)} 11 times
+     * after walking through the SQL source two times to remove all comments and
+     * transforming the given <code>sql</code> into upper case format
+     * (respecting delimited identifiers).
+     * 
+     * @param sql the SQL source string
+     * @param delimitedIdentifierQt the String that is used to pre- and suffix
+     *        delimited identifiers, commonly it is the double-quote char '"'
+     * @return the given <code>sql</code> in upper case, without comments and
+     *         with minimal whitespace
+     */
+    private static String stripWhiteSpaceAndComments(String sql, char delimitedIdentifierQt) {
+        if (sql != null) {
+            sql = removeCommentsInSQL(sql, delimitedIdentifierQt);
+            sql = toSQLFormatUpperCase(sql, delimitedIdentifierQt);
+            sql = stripWhiteSpace(sql, delimitedIdentifierQt);
+        }
+        return sql.trim();
+    }
+
+    /**
+     * Unhooks all refernces to <code>ValueEpressionColumn</code>s and
+     * <code>ResultTableAllColumns</code> of the <code>oldTableRef</code>
+     * and hooks them into the
+     * <code>substitute</code> <code>TableExpression</code>, removes the
+     * <code>oldTableRef</code> from its container ( {@link QuerySelect},
+     * {@link QueryInsertStatement}, {@link QueryDeleteStatement},
+     * {@link QueryUpdateStatement}, {@link TableNested} or {@link TableJoined})
+     * and hooks in the <code>substitute</code> <code>TableExpression</code>
+     * instead.
+     * 
+     * @param oldTableRef
+     * @param substitute
+     */
+    private static void substituteTableReference(TableExpression oldTableRef, TableExpression substitute) {
+        if (oldTableRef != null && substitute != null && oldTableRef != substitute) {
+
+            if (oldTableRef.getQuerySelect() != null) {
+                List oldTableSiblings = oldTableRef.getQuerySelect().getFromClause();
+                // insert substitute in same position as old one
+                for (int i = 0; i < oldTableSiblings.size(); i++) {
+                    TableReference oldSibling = (TableReference) oldTableSiblings.get(i);
+                    if (oldSibling == oldTableRef) {
+                        oldTableSiblings.set(i, substitute);
+                        // oldTableRef.setQuerySelect(null); // EMF does it
+                        break;
+                    }
+                }
+            }
+
+            copyAllDirectNonNullReferences(oldTableRef, substitute);
+            // the following code is obsolete if copyAllDirectNonNullReferences
+            // works correctly
+            if (false) {
+                substitute.getColumnList().addAll(oldTableRef.getColumnList());
+                substitute.getResultTableAllColumns().addAll(oldTableRef.getResultTableAllColumns());
+
+                if (oldTableRef.getTableCorrelation() != null) {
+                    substitute.setTableCorrelation(oldTableRef.getTableCorrelation());
+                    oldTableRef.setTableCorrelation(null);
+                }
+                if (oldTableRef.getTableJoinedLeft() != null) {
+                    substitute.setTableJoinedLeft(oldTableRef.getTableJoinedLeft());
+                    oldTableRef.setTableJoinedLeft(null);
+                }
+                if (oldTableRef.getTableJoinedRight() != null) {
+                    substitute.setTableJoinedRight(oldTableRef.getTableJoinedRight());
+                    oldTableRef.setTableJoinedRight(null);
+                }
+                if (oldTableRef.getNest() != null) {
+                    substitute.setNest(oldTableRef.getNest());
+                    oldTableRef.setNest(null);
+                }
+
+                if (oldTableRef instanceof TableInDatabase && substitute instanceof TableInDatabase) {
+                    TableInDatabase oldTableInDB = (TableInDatabase) oldTableRef;
+                    TableInDatabase substituteTableInDB = (TableInDatabase) substitute;
+
+                    if (oldTableInDB.getInsertStatement() != null) {
+                        substituteTableInDB.setInsertStatement(oldTableInDB.getInsertStatement());
+                    }
+                    if (oldTableInDB.getUpdateStatement() != null) {
+                        substituteTableInDB.setUpdateStatement(oldTableInDB.getUpdateStatement());
+                    }
+                    if (oldTableInDB.getDeleteStatement() != null) {
+                        substituteTableInDB.setDeleteStatement(oldTableInDB.getDeleteStatement());
+                    }
+                    if (oldTableInDB.getDatabaseTable() != null) {
+                        substituteTableInDB.setDatabaseTable(oldTableInDB.getDatabaseTable());
+                    }
+                    if (oldTableInDB.getDatabaseTable() != null) {
+                        substituteTableInDB.setDatabaseTable(oldTableInDB.getDatabaseTable());
+                    }
+                }
+            }
+        }
+    }
+
+    /**
+     * Uppercases the characters in the given SQL exept for delimited
+     * identifiers.
+     * 
+     * @param sql
+     * @param delimitedIdentifierQt
+     * @return
+     */
+    private static String toSQLFormatUpperCase(String sql, char delimitedIdentifierQt) {
+        StringBuffer sqlUC = new StringBuffer();
+        char[] sqlChar = sql.toCharArray();
+        char delimiterQuote = delimitedIdentifierQt;
+        boolean inDelimitedIdentifier = false;
+
+        for (int i = 0; i < sqlChar.length; i++) {
+            char c = sqlChar[i];
+            if (c == delimiterQuote) {
+                inDelimitedIdentifier = !inDelimitedIdentifier;
+            }
+            if (!inDelimitedIdentifier) {
+                c = Character.toUpperCase(c);
+            }
+            sqlUC.append(c);
+        }
+
+        return sqlUC.toString();
+    }
+
+    /**
+     * Replaces the given Search Condition in the supplied parent.
+     * 
+     * @param searchCon the new SearchCondition that needs to be replaced with
+     * @param parent the Object that contains a SearchCondition that needs to be
+     *        replaced
+     * @param isHaving true if the given SearchCondition is HavingClause
+     */
+    private static void updateSearchConditionParent(QuerySearchCondition searchCon, Object parent, boolean isHaving) {
+        if (parent instanceof QueryDeleteStatement) {
+            ((QueryDeleteStatement) parent).setWhereClause(searchCon);
+        }
+        else if (parent instanceof QueryUpdateStatement) {
+            ((QueryUpdateStatement) parent).setWhereClause(searchCon);
+        }
+        else if (parent instanceof TableJoined) {
+            ((TableJoined) parent).setJoinCondition(searchCon);
+        }
+        else if (parent instanceof ValueExpressionCaseSearchContent) {
+            ((ValueExpressionCaseSearchContent) parent).setSearchCondition(searchCon);
+        }
+        else if (parent instanceof QuerySelect && isHaving) {
+            ((QuerySelect) parent).setHavingClause(searchCon);
+        }
+        else if (parent instanceof QuerySelect && !isHaving) {
+            ((QuerySelect) parent).setWhereClause(searchCon);
+        }
+        // QueryMergeStatement is not supported here
+    }
+
+    /**
+     * Provide the name that will be generated next this is for populating alias
+     * text field with a default
+     */
+    public void addNewName(Table selectedTable) {
+        boolean done = false;
+        String token = selectedTable.getName();
+        Integer value = new Integer(0);
+        if (nameList == null)
+           nameList = new Hashtable();
+        Integer number = (Integer) nameList.get(token);
+
+        if (number == null) {
+            nameList.put(token, value);
+        }
+        else {
+            while (!done) {
+                String result = nameGenerator(selectedTable.getName());
+                if (!findSelect(result))
+                    break;
+            }
+        }
+    }
+
+    /**
+     * @deprecated
+     * @param name
+     * @param addToDb
+     * @return
+     */
+    public QueryInsertStatement createInsertStatement(String name, boolean addToDb) {
+        SQLQueryModelFactory factory = new SQLQueryModelFactoryImpl();
+        QueryInsertStatement sqlInsertStatement = factory.createQueryInsertStatement();
+        sqlInsertStatement.setName(name);
+
+        if (addToDb) {
+            // database.getStatement().add(sqlInsertStatement);
+        }
+
+        return sqlInsertStatement;
+    }
+
+    public QuerySelectStatement createSelectStatement(String name) {
+
+        SQLQueryModelFactory factory = SQLQueryModelFactory.eINSTANCE;
+        QuerySelectStatement sqlSelectStatement = factory.createQuerySelectStatement();
+        sqlSelectStatement.setName(name);
+        return sqlSelectStatement;
+    }
+
+    /**
+     * @deprecated
+     * @param name
+     * @param addToDb
+     * @return
+     */
+    public QueryUpdateStatement createUpdateStatement(String name, boolean addToDb) {
+        SQLQueryModelFactory factory = SQLQueryModelFactoryImpl.eINSTANCE;
+        QueryUpdateStatement sqlUpdateStatement = factory.createQueryUpdateStatement();
+        sqlUpdateStatement.setName(name);
+        if (addToDb) {
+            // database.getStatement().add(sqlUpdateStatement);
+        }
+
+        return sqlUpdateStatement;
+    }
+
+    /**
+     * return false if we cannot find the input name
+     */
+    private boolean findInsert(String name) {
+        /*
+         * Iterator iterator = database.getStatement().iterator();
+         * 
+         * while (iterator.hasNext()) { Object o = iterator.next();
+         * 
+         * if (o instanceof SQLInsertStatement) { SQLInsertStatement insert =
+         * (SQLInsertStatement) o; String sname = insert.getName();
+         * 
+         * if (sname != null && sname.equals(name)) { return true; } } }
+         */
+        return false;
+    }
+
+    /**
+     * return false if we cannot find the input name
+     */
+    private boolean findSelect(String name) {
+        /*
+         * Iterator iterator = database.getStatement().iterator(); while
+         * (iterator.hasNext()) { Object o = iterator.next(); if (o instanceof
+         * SQLSelectStatement) { SQLSelectStatement select =
+         * (SQLSelectStatement) o;
+         * 
+         * String sname = select.getName();
+         * 
+         * if (sname != null && sname.equals(name)) { return true; } } }
+         */
+        return false;
+    }
+
+    public String getNewName(QueryInsertStatement insert) {
+        boolean done = false;
+        while (!done) {
+            String result = nameGenerator("Insert");
+            if (!findInsert(result))
+                return result;
+        }
+
+        return "Insert1";
+    }
+    
+    /**
+     * Generate a name
+     */
+    private String nameGenerator(String token) {
+       if (nameList == null)
+          nameList = new Hashtable();
+       Integer number = (Integer) nameList.get(token);
+       int value = 1;
+       if (number == null) {
+          nameList.put(token, new Integer(value));
+       }
+       else {
+          value = number.intValue();
+          value++;
+          nameList.remove(token);
+          nameList.put(token, new Integer(value));
+       }
+
+       return token + value;
+    }
+
+    /**
+     * Comparator for sorting ValueExpressionVariables.
+     */
+    public static class ValueExpressionComparator implements Comparator
+    {
+       public int compare(Object o1, Object o2) {
+           int result = 0;
+           ValueExpressionVariable h1 = (ValueExpressionVariable) o1;
+           ValueExpressionVariable h2 = (ValueExpressionVariable) o2;
+           SQLQuerySourceInfo h1si = h1.getSourceInfo();
+           SQLQuerySourceInfo h2si = h2.getSourceInfo();
+           if (h1si != null && h2si != null) {
+               int h1Loc = h1si.getSpanStartOffset();
+               int h2Loc = h2si.getSpanStartOffset();
+               result = h1Loc - h2Loc;
+           }
+           else {
+//               StatementHelper.logError(StatementHelper.class.getName() + "could not compare the location of host variables or parameter markers as no "
+//                       + SQLQuerySourceInfo.class.getName() + " was associated with them. For host variables or parameter markers: " + h1 + " and " + h2);
+           }
+           return result;
+       }
+    }
+
+}
+
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/helper/TableHelper.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/helper/TableHelper.java
new file mode 100644
index 0000000..131db80
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/helper/TableHelper.java
@@ -0,0 +1,3549 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 2011 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.query.helper;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.datatools.modelbase.sql.constraints.Constraint;
+import org.eclipse.datatools.modelbase.sql.constraints.ForeignKey;
+import org.eclipse.datatools.modelbase.sql.constraints.PrimaryKey;
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.expressions.ValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.ColumnName;
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.GroupingSets;
+import org.eclipse.datatools.modelbase.sql.query.GroupingSetsElement;
+import org.eclipse.datatools.modelbase.sql.query.GroupingSpecification;
+import org.eclipse.datatools.modelbase.sql.query.MergeInsertSpecification;
+import org.eclipse.datatools.modelbase.sql.query.MergeOnCondition;
+import org.eclipse.datatools.modelbase.sql.query.MergeOperationSpecification;
+import org.eclipse.datatools.modelbase.sql.query.MergeUpdateSpecification;
+import org.eclipse.datatools.modelbase.sql.query.OrderBySpecification;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.Predicate;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.PredicateExists;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryCombined;
+import org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody;
+import org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot;
+import org.eclipse.datatools.modelbase.sql.query.QueryMergeStatement;
+import org.eclipse.datatools.modelbase.sql.query.QueryNested;
+import org.eclipse.datatools.modelbase.sql.query.QueryResultSpecification;
+import org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelectStatement;
+import org.eclipse.datatools.modelbase.sql.query.QueryStatement;
+import org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement;
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.QueryValues;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.ResultTableAllColumns;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelFactory;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryObject;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionNested;
+import org.eclipse.datatools.modelbase.sql.query.SuperGroup;
+import org.eclipse.datatools.modelbase.sql.query.SuperGroupElement;
+import org.eclipse.datatools.modelbase.sql.query.TableCorrelation;
+import org.eclipse.datatools.modelbase.sql.query.TableExpression;
+import org.eclipse.datatools.modelbase.sql.query.TableFunction;
+import org.eclipse.datatools.modelbase.sql.query.TableInDatabase;
+import org.eclipse.datatools.modelbase.sql.query.TableJoined;
+import org.eclipse.datatools.modelbase.sql.query.TableNested;
+import org.eclipse.datatools.modelbase.sql.query.TableQueryLateral;
+import org.eclipse.datatools.modelbase.sql.query.TableReference;
+import org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearch;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionDefaultValue;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNullValue;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionScalarSelect;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionVariable;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+import org.eclipse.datatools.modelbase.sql.query.WithTableReference;
+import org.eclipse.datatools.modelbase.sql.query.WithTableSpecification;
+import org.eclipse.datatools.modelbase.sql.query.util.SQLQuerySourceFormat;
+import org.eclipse.datatools.modelbase.sql.query.util.SQLQuerySourceInfo;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.tables.BaseTable;
+import org.eclipse.datatools.modelbase.sql.tables.Column;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+/**
+ * Provides utility functions related to tables and columns.
+ *
+ */
+@SuppressWarnings("unchecked")
+public class TableHelper {
+     
+    /** This is the default quote character to use for delimited identifiers like "Col1".  
+     * When comparing with a delimited identifier, the characters inside the delimiters must 
+     * match exactly.
+     * <p>
+     * Note: this character can vary depending on the database type, so use of this constant
+     * is not recommended.  Instead get the identifier quote character from the database
+     * configuration.
+     */
+    public static final String DELIMITED_IDENTIFIER_QUOTE = "\"";
+
+    /**
+       * Creates the From Clause with the tables used in the given SQLStatement.
+       *
+       * @param stmt
+       *          the QueryStatement from which is used to get list of tables
+       * @return the From Clause string
+       */
+      public static String createFromClauseForStatement(QueryStatement stmt) {
+        StringBuffer sqlBuf = new StringBuffer();
+    
+        List tableRefList = StatementHelper.getTablesForStatement(stmt);
+        TableExpression tblExpr;
+    
+        for (Iterator tableIt = tableRefList.iterator(); tableIt.hasNext();) {
+          tblExpr = (TableExpression) tableIt.next();
+          if (sqlBuf.length() > 0) {
+            sqlBuf.append(", ");
+          }
+          //retVal = getTableForTableExpression(tblExpr).getName();
+          String tblExprSQL = tblExpr.getSQL();
+          sqlBuf.append(tblExprSQL);
+          //TableCorrelation tblCorr = tblExpr.getTableCorrelation();
+          //if (tblCorr != null) {
+          //  String corrName = tblCorr.getName();
+          //  retVal = retVal.concat(" as ").concat(corrName);
+          //}
+        }
+    
+        if (sqlBuf.length() > 0) {
+          sqlBuf.insert(0, "From ");
+        }
+        
+        return sqlBuf.toString();
+      }
+      
+    /**
+       * Creates the From Clause with the tables used in the given SQLStatement.
+       *
+       * @param stmt
+       *          the QueryStatement from which is used to get list of tables
+       * @return the From Clause string
+       */
+      public static String createFromClauseForStatement(SQLQueryObject stmt) {
+        String retVal = "";
+        
+        if (stmt instanceof QueryStatement) {
+            retVal = createFromClauseForStatement((QueryStatement)stmt);
+        } else if (stmt instanceof QuerySelect) {
+            StringBuffer sqlBuf = new StringBuffer();
+            List tableRefList = StatementHelper.getTablesForStatement(stmt);
+            TableExpression tblExpr;
+            
+            for (Iterator tableIt = tableRefList.iterator(); tableIt.hasNext();) {
+                tblExpr = (TableExpression) tableIt.next();
+                if (sqlBuf.length() > 0) {
+                    sqlBuf.append(", ");
+                }
+                String tblExprSQL = tblExpr.getSQL(); 
+                sqlBuf.append(tblExprSQL);
+            }
+            if (sqlBuf.length() > 0) {
+                sqlBuf.insert(0, "FROM ");
+            }
+            retVal = sqlBuf.toString();
+        }
+        
+        return retVal;
+      }
+
+    /**
+     * Creates and returns a <code>TableInDatabase</code> object for the given 
+     * <code>Table</code> object and initializes its list of SQLValueExpressColumn 
+     * objects corresponding to each column of the table.
+     *
+     * @param table
+     *          the Table for which we need a SQLRDBTable
+     * @return the SQLRDBTable that is created
+     */
+    public static TableInDatabase createTableExpressionForTable(Table table) {
+      TableInDatabase tableInDB = null;
+      
+      if (table != null) {
+        List rdbColumnList;
+        List cList;
+
+        SQLQueryModelFactory factory = SQLQueryModelFactory.eINSTANCE;
+        tableInDB = factory.createTableInDatabase();
+        tableInDB.setDatabaseTable(table);
+        String tableName = table.getName();
+        tableInDB.setName( tableName );
+        rdbColumnList = tableInDB.getColumnList();
+        cList = table.getColumns();
+        Iterator columnItr = cList.iterator();
+        while (columnItr.hasNext()) {
+          Column col = (Column) columnItr.next();
+          ValueExpressionColumn valueExprColumn = factory.createValueExpressionColumn();
+          valueExprColumn.setName(col.getName());
+          valueExprColumn.setDataType(ValueExpressionHelper.copyDataType(col.getDataType()));
+          rdbColumnList.add(valueExprColumn);
+        }
+      }
+      
+      return tableInDB;
+    }
+
+    /**
+     * Adds <code>ValueExpressionColumn</code> objects to the column list of 
+     * the given <code>QueryExpressionBody</code> for each named result column of 
+     * the query.  This is useful in case the given <code>QueryExpressionBody</code> 
+     * is used as a nested query, that is, as a table reference within another
+     * <code>QuerySelect</code>, so that nested query can be treated like
+     * any other table reference with a column list.
+     * 
+     * @param qryExprBody the query whose columns should be exposed
+     * @return a list of already or newly exposed <code>ValueExpressionColumn</code>s
+     */
+    public static List exposeEffectiveResultColumns(QueryExpressionBody qryExprBody) {
+        List exposedColumns = new ArrayList();
+        
+        if (qryExprBody instanceof QuerySelect) {
+            QuerySelect select = (QuerySelect) qryExprBody;
+            exposedColumns = exposeResultColumnsOfQuerySelect(select);
+        }
+        else if (qryExprBody instanceof QueryCombined) {
+            QueryCombined combined = (QueryCombined) qryExprBody;
+            exposedColumns = exposeResultColumnsOfQueryCombined(combined);
+        }
+        else if (qryExprBody instanceof QueryNested) {
+            /* A QueryNested is a type of query expression that is a query
+             * expression with parens around it. */
+            QueryNested qryNested = (QueryNested) qryExprBody;
+            /* Get the exposed columns of the inner (nested) query. */
+            QueryExpressionBody nestedQuery = qryNested.getNestedQuery();
+            exposedColumns = exposeEffectiveResultColumns(nestedQuery);
+            /* Copy the exposed columns from the inner (nested) query to the outer
+             * (nesting) query. */
+            List qryNestedColList = qryNested.getColumnList();
+            qryNestedColList.clear();
+            qryNestedColList.addAll(exposedColumns);
+        }
+        else if (qryExprBody instanceof QueryValues) {
+            QueryValues values = (QueryValues) qryExprBody;
+            exposedColumns = exposeResultColumnsOfQueryValues(values);
+        }
+        
+        return exposedColumns;
+    }
+
+    /**
+     * Populates the given <code>tableExpr</code>'s <code>columnList</code> with
+     * <code>ValueExpressionColumn</code>s, with <code>name</code>,
+     * <code>dataType</code> and in ordering, so the given
+     * <code>tableExpr</code> can be handled like a <code>TableInDatabase</code>.
+     * 
+     * @param tableExpr the table expression whose columns should be expose
+     * @return a list of already or newly exposed <code>ValueExpressionColumn</code>s
+     */
+    public static List exposeEffectiveResultColumns(TableExpression tableExpr) {
+        List resultColExprList = new ArrayList();
+        
+        if (tableExpr == null) {
+            return null;
+        }
+        else if (tableExpr instanceof QueryExpressionBody)
+        {
+            QueryExpressionBody query = (QueryExpressionBody) tableExpr;
+            // no column List copy, just hand it through
+            resultColExprList = exposeEffectiveResultColumns(query);
+        }
+        else if (tableExpr instanceof TableInDatabase) 
+        {
+            // should already have been done! but check anyways
+            TableInDatabase tableInDB = (TableInDatabase) tableExpr;
+            Table dbTable = tableInDB.getDatabaseTable();
+            if (dbTable != null && 
+                            dbTable.getColumns().size() != 
+                                tableInDB.getColumnList().size()) 
+            {
+                populateTableExpressionColumns(tableInDB, dbTable);
+            }
+            //no column List copy, just hand it through
+            resultColExprList = tableInDB.getColumnList();
+        } 
+        else if (tableExpr instanceof WithTableReference) 
+        {
+            WithTableReference withTableRef = (WithTableReference) tableExpr;
+            resultColExprList = exposeEffectiveResultColumns(withTableRef);
+        }
+        else if (tableExpr instanceof TableQueryLateral) 
+        {
+            TableQueryLateral queryLateral = (TableQueryLateral) tableExpr;
+            QueryExpressionBody nestedQuery = queryLateral.getQuery();
+            resultColExprList = exposeEffectiveResultColumns(nestedQuery);
+            queryLateral.getColumnList().addAll(resultColExprList);
+        }
+        else if (tableExpr instanceof TableFunction) 
+        {
+//            StatementHelper.logError(TableHelper.class.getName()+
+//                            ": implement exposeEffectiveResultColumns(TableExpression) for type"+
+//                            TableFunction.class.getName());
+        }
+        else
+        {
+//            StatementHelper.logError(TableHelper.class.getName()+
+//                            ": implement exposeEffectiveResultColumns(TableExpression) for type"+
+//                            tableExpr.getClass().getName());
+        }
+        
+        /* Find out if there is a column name list attached to the correlation name (if any)
+         * and use those names for the exposed result columns. */
+        TableCorrelation tableCorr = tableExpr.getTableCorrelation();
+        if (tableCorr != null) {
+            List corrColNameList = tableCorr.getColumnNameList();
+            if (corrColNameList.size() > 0 && corrColNameList.size() <= resultColExprList.size()) {
+                List corrColList = new ArrayList();
+                for (int i=0; i<corrColNameList.size(); i++) {
+                    Object obj1 = corrColNameList.get(i);
+                    Object obj2 = resultColExprList.get(i);
+                    if (obj1 instanceof ColumnName && obj2 instanceof ValueExpressionColumn) {
+                        ColumnName corrColName = (ColumnName) obj1;
+                        ValueExpressionColumn exposedCol = (ValueExpressionColumn) obj2;
+                        ValueExpressionColumn exposedCorrCol = StatementHelper.createColumnExpression(corrColName.getName());
+                        
+                        /* Get the existing exposed column's data type and table reference
+                         * set them as the datatype and table of the new exposed correlation column. */
+                        DataType exposedColDataType = exposedCol.getDataType();
+                        DataType exposedCorrColDataType = ValueExpressionHelper.copyDataType(exposedColDataType);
+                        exposedCorrCol.setDataType(exposedCorrColDataType);
+                        
+                        TableInDatabase tableInDB = exposedCol.getTableInDatabase();
+                        exposedCorrCol.setTableInDatabase(tableInDB);
+
+                        /* Add the new exposed column to the list we're building. */
+                        corrColList.add(exposedCorrCol);
+                    }
+                }
+                
+                /* Substitute the new list of correlation columns as the exposed result
+                 * column list. */
+                resultColExprList = corrColList;
+            }
+        }
+        
+        return resultColExprList;
+    }
+
+    /**
+     * Populates the given <code>withTable</code>'s <code>columnList</code> with
+     * <code>ValueExpressionColumn</code>s, with <code>name</code>,
+     * <code>dataType</code> and in ordering, so the given
+     * <code>tableExpr</code> can be handled like a <code>TableInDatabase</code>.
+     * 
+     * @param withTable the WITH table whose columns should be exposed
+     * @return a list of already or newly exposed <code>ValueExpressionColumn</code>s
+     */
+    public static List exposeEffectiveResultColumns(WithTableReference withTable) {
+        List resultColExprList = new ArrayList();
+        
+        if (withTable == null || withTable.getWithTableSpecification() == null)
+        {
+            return resultColExprList;
+        }
+        
+        WithTableSpecification withTableSpec = 
+            withTable.getWithTableSpecification();
+        
+        QueryExpressionBody withTableQuery = 
+            withTableSpec.getWithTableQueryExpr();
+        
+        List withTableQueryResultCols = 
+            getEffectiveResultColumns(withTableQuery);
+        
+        List withTableColNames = withTableSpec.getColumnNameList();        
+        
+        // if WITH table has not specified column names
+        // the effective result columns (with name and type) are determined by
+        // the WITH query
+        if (withTableColNames == null || withTableColNames.isEmpty())
+        {
+            // deep copy-by-value! (EMF ownership doesn't allow us copy-by-ref)
+            resultColExprList.addAll(copyColumnExprList(withTableQueryResultCols));
+        }
+        // does WITH table has specified column names?
+        // we assume that the number of specified result column names
+        // matches the number of effective result columns of the WITH-query
+        else if (withTableColNames != null && !withTableColNames.isEmpty() &&
+                        withTableColNames.size() <= withTableQueryResultCols.size())
+        {
+            for (int i = 0; i < withTableColNames.size(); i++)
+            {
+                ColumnName columnName = (ColumnName) withTableColNames.get(i);
+                
+                ValueExpressionColumn exposedCol = 
+                    StatementHelper.createColumnExpression(columnName.getName());
+                
+                
+                
+                ValueExpressionColumn withQueryResultCol =
+                    (ValueExpressionColumn) withTableQueryResultCols.get(i);
+                
+                DataType withQueryResultColDataType = 
+                    withQueryResultCol.getDataType();
+                
+                DataType exposedColDataType = 
+                    ValueExpressionHelper.copyDataType(
+                                    withQueryResultColDataType);
+                
+                
+                // we are setting the TableInDatabase that this column was
+                // originally derived from, we should use a reference called
+                // "derivedFromTableInDatabase"
+                exposedCol.setTableInDatabase(withQueryResultCol.getTableInDatabase());
+
+                exposedCol.setDataType(exposedColDataType);
+                resultColExprList.add(exposedCol);
+            }
+        }
+        // WITH table has specified column names and the WITH query was not yet
+        // resolved - has no exposed columns
+        else if (withTableColNames != null && !withTableColNames.isEmpty() &&
+                        withTableQueryResultCols.isEmpty())
+        {
+            for (int i = 0; i < withTableColNames.size(); i++)
+            {
+                ColumnName columnName = (ColumnName) withTableColNames.get(i);
+                
+                ValueExpressionColumn exposedCol = 
+                    StatementHelper.createColumnExpression(columnName.getName());
+                
+                resultColExprList.add(exposedCol);
+            }
+        }
+        
+        withTable.getColumnList().clear();
+        withTable.getColumnList().addAll(resultColExprList);
+        
+        return resultColExprList;
+    }
+    
+    /**
+       * Returns a Set containing all <code>ValueExpressionColumn</code>s found
+       * in the given <code>GroupingExpression</code>.
+       */
+        public static Set findColumnReferencesInGroupingExpression(GroupingExpression groupingExpr)
+        {
+            if (groupingExpr == null) { return Collections.EMPTY_SET; }
+    
+            HashSet columnSet = new HashSet();
+            columnSet.addAll(findColumnReferencesInValueExpression(groupingExpr
+                            .getValueExpr()));
+    
+            return columnSet;
+        }
+
+    /**
+     * Returns a Set containing all <code>ValueExpressionColumn</code>s found
+     * in the given <code>GroupingSpecification</code>.
+     */
+    public static Set findColumnReferencesInGroupingSpecification(GroupingSpecification groupingSpec)
+    {
+        HashSet columnSet = new HashSet();
+
+        if (groupingSpec != null)
+        {
+
+            if (groupingSpec instanceof GroupingExpression)
+            {
+                GroupingExpression groupingExpr = (GroupingExpression) groupingSpec;
+                columnSet
+                                .addAll(findColumnReferencesInValueExpression(groupingExpr
+                                                .getValueExpr()));
+            }
+            else if (groupingSpec instanceof SuperGroup)
+            {
+                Class refWanted = ValueExpressionColumn.class;
+                Class[] refsToCheck = new Class[] {
+                                GroupingSpecification.class,
+                                SuperGroupElement.class };
+                
+                Set groupColumns = StatementHelper.getReferencesViaSpecificReferencePaths(groupingSpec, refWanted, refsToCheck);
+                      
+                columnSet.addAll(groupColumns);
+                
+/*                //throw new UnsupportedOperationException(
+                StatementHelper.logError(
+                                TableHelper.class.getName()
+                                                + "#findColumnReferencesInGroupingSpecification() not implemented for "
+                                                + groupingSpec.getClass()
+                                                                .getName()
+                                                + ".");
+*/
+            }
+            else if (groupingSpec instanceof GroupingSets)
+            {
+                Class refWanted = ValueExpressionColumn.class;
+                Class[] refsToCheck = new Class[] {
+                                GroupingSpecification.class,
+                                GroupingSetsElement.class,
+                                SuperGroupElement.class };
+                
+                Set groupColumns = StatementHelper.getReferencesViaSpecificReferencePaths(groupingSpec, refWanted, refsToCheck);
+                      
+                columnSet.addAll(groupColumns);
+
+/*                
+                // throw new UnsupportedOperationException(
+                StatementHelper.logError(
+                                TableHelper.class.getName()
+                                                + "#findColumnReferencesInGroupingSpecification() not implemented for "
+                                                + groupingSpec.getClass()
+                                                                .getName()
+                                                + ".");
+*/            
+            }
+            else
+            {
+                throw new UnsupportedOperationException(
+                                TableHelper.class.getName()
+                                                + "#findColumnReferencesInGroupingSpecification() not implemented for "
+                                                + groupingSpec.getClass()
+                                                                .getName()
+                                                + ".");
+            }
+        }
+        return columnSet;
+    }
+
+    /**
+     * Returns a Set containing all <code>ValueExpressionColumn</code>s found
+     * in the given <code>GroupingSpecification</code> list.
+     */
+    public static Set findColumnReferencesInGroupingSpecificationList(List groupingSpecList)
+    {
+        HashSet columnSet = new HashSet();
+
+        if (groupingSpecList != null)
+        {
+            for (Iterator it = groupingSpecList.iterator(); it.hasNext();)
+            {
+                GroupingSpecification groupingSpec = (GroupingSpecification) it
+                                .next();
+                columnSet
+                                .addAll(findColumnReferencesInGroupingSpecification(groupingSpec));
+            }
+        }
+        return columnSet;
+
+    }
+
+    /**
+     * Returns a Set containing all <code>ValueExpressionColumn</code> s found
+     * in the given <code>OrderBySpecification</code>.
+     */
+    public static Set findColumnReferencesInOrderBySpecification(OrderBySpecification orderBySpec)
+    {
+        if (orderBySpec == null) { return Collections.EMPTY_SET; }
+        HashSet columnSet = new HashSet();
+        
+        if (orderBySpec instanceof OrderByValueExpression)
+        {
+            OrderByValueExpression orderByValue = (OrderByValueExpression) orderBySpec;
+            columnSet.addAll(findColumnReferencesInValueExpression(orderByValue
+                            .getValueExpr()));
+        }
+
+        // Note:
+        //  column references in ResultSpecification should be found by specific
+        //  method and not here via OrderByResultColumn -> ResultColumn -> ValueExpressionColumn
+        //  would be very incomplete or duplicate effort
+        
+        return columnSet;
+    }
+
+    /**
+     * Returns a Set containing all <code>ValueExpressionColumn</code> s found
+     * in the given List of <code>OrderBySpecification</code>.
+     */
+     public static Set findColumnReferencesInOrderBySpecificationList(List orderBySpecList)
+     {
+         if (orderBySpecList == null) { return Collections.EMPTY_SET; }
+
+         HashSet columnSet = new HashSet();
+
+         for (Iterator orderIt = orderBySpecList.iterator(); orderIt.hasNext();)
+         {
+             OrderBySpecification orderBySpec = 
+                 (OrderBySpecification) orderIt.next();
+
+             columnSet.addAll(findColumnReferencesInOrderBySpecification(orderBySpec));
+         }
+
+         return columnSet;
+     }
+
+    /**
+       * Returns a Set containing all, not necessarily distinct,
+       * <code>ValueExpressionColumn</code>s found in the given
+       * <code>Predicate</code>. This means you have to expect duplicate
+       * <code>ValueExpressionColumn</code>s regarding their column names.
+       *
+       * @param predicate
+       * @return
+       */
+      public static Set findColumnReferencesInPredicate(Predicate predicate) {
+        if (predicate == null) {
+          return Collections.EMPTY_SET;
+        }
+    
+        HashSet columnSet = new HashSet();
+    
+        if (predicate instanceof PredicateBasic) {
+          PredicateBasic basic = (PredicateBasic) predicate;
+          columnSet.addAll(findColumnReferencesInValueExpression(basic.getRightValueExpr()));
+          columnSet.addAll(findColumnReferencesInValueExpression(basic.getLeftValueExpr()));
+          return columnSet;
+        }
+    
+        else if (predicate instanceof PredicateBetween) {
+          PredicateBetween between = (PredicateBetween) predicate;
+          columnSet.addAll(findColumnReferencesInValueExpression(between.getRightValueExpr1()));
+          columnSet.addAll(findColumnReferencesInValueExpression(between.getRightValueExpr2()));
+          columnSet.addAll(findColumnReferencesInValueExpression(between.getLeftValueExpr()));
+          return columnSet;
+        }
+    
+        else if (predicate instanceof PredicateExists) {
+          PredicateExists exists = (PredicateExists) predicate;
+          columnSet.addAll(findColumnReferencesInQueryExpressionBody(exists.getQueryExpr()));
+          return columnSet;
+        }
+    
+        else if (predicate instanceof PredicateInValueList) {
+          PredicateInValueList inValueList = (PredicateInValueList) predicate;
+          columnSet.addAll(findColumnReferencesInValueExpression(inValueList.getValueExpr()));
+          columnSet.addAll(findColumnReferencesInValueExpressionList(inValueList.getValueExprList()));
+          return columnSet;
+        }
+    
+        else if (predicate instanceof PredicateInValueRowSelect) {
+          PredicateInValueRowSelect inRowSelect = (PredicateInValueRowSelect) predicate;
+          columnSet.addAll(findColumnReferencesInQueryExpressionRoot(inRowSelect.getQueryExpr()));
+          columnSet.addAll(findColumnReferencesInValueExpressionList(inRowSelect.getValueExprList()));
+          return columnSet;
+        }
+    
+        else if (predicate instanceof PredicateInValueSelect) {
+          PredicateInValueSelect inValueSelect = (PredicateInValueSelect) predicate;
+          columnSet.addAll(findColumnReferencesInQueryExpressionRoot(inValueSelect.getQueryExpr()));
+          columnSet.addAll(findColumnReferencesInValueExpression(inValueSelect.getValueExpr()));
+          return columnSet;
+        }
+    
+        else if (predicate instanceof PredicateIsNull) {
+          PredicateIsNull isNull = (PredicateIsNull) predicate;
+          columnSet.addAll(findColumnReferencesInValueExpression(isNull.getValueExpr()));
+          return columnSet;
+        }
+    
+        else if (predicate instanceof PredicateLike) {
+          PredicateLike like = (PredicateLike) predicate;
+          columnSet.addAll(findColumnReferencesInValueExpression(like.getMatchingValueExpr()));
+          columnSet.addAll(findColumnReferencesInValueExpression(like.getPatternValueExpr()));
+          columnSet.addAll(findColumnReferencesInValueExpression(like.getEscapeValueExpr()));
+          return columnSet;
+        }
+    
+        else if (predicate instanceof PredicateQuantifiedRowSelect) {
+          PredicateQuantifiedRowSelect rowSelect = (PredicateQuantifiedRowSelect) predicate;
+          columnSet.addAll(findColumnReferencesInQueryExpressionRoot(rowSelect.getQueryExpr()));
+          columnSet.addAll(findColumnReferencesInValueExpressionList(rowSelect.getValueExprList()));
+          return columnSet;
+        }
+    
+        else if (predicate instanceof PredicateQuantifiedValueSelect) {
+          PredicateQuantifiedValueSelect inValueSelect = (PredicateQuantifiedValueSelect) predicate;
+          columnSet.addAll(findColumnReferencesInQueryExpressionRoot(inValueSelect.getQueryExpr()));
+          columnSet.addAll(findColumnReferencesInValueExpression(inValueSelect.getValueExpr()));
+          return columnSet;
+        }
+    
+        return columnSet;
+      }
+
+  /**
+   * Returns a Set containing all <code>ValueExpressionColumn</code>s found in
+   * the given <code>QueryExpressionBody</code>.
+   */
+   public static Set findColumnReferencesInQueryExpressionBody(QueryExpressionBody queryExprBody) {
+    if (queryExprBody == null) {
+      return Collections.EMPTY_SET;
+    }
+
+    HashSet columnSet = new HashSet();
+
+    if (queryExprBody instanceof QuerySelect) {
+      QuerySelect select = (QuerySelect) queryExprBody;
+      columnSet.addAll(findColumnReferencesInQueryResultSpecificationList(select.getSelectClause()));
+      columnSet.addAll(findColumnReferencesInTableReferenceList(select.getFromClause()));
+      columnSet.addAll(findColumnReferencesInSearchCondition(select.getWhereClause()));
+      columnSet.addAll(findColumnReferencesInSearchCondition(select.getHavingClause()));
+      columnSet.addAll(findColumnReferencesInGroupingSpecificationList(select.getGroupByClause()));
+
+    }
+    else if (queryExprBody instanceof QueryCombined) {
+      QueryCombined combined = (QueryCombined) queryExprBody;
+      columnSet.addAll(findColumnReferencesInQueryExpressionBody(combined.getLeftQuery()));
+      columnSet.addAll(findColumnReferencesInQueryExpressionBody(combined.getRightQuery()));
+    }
+    else if (queryExprBody instanceof QueryNested) {
+        QueryNested qryNested = (QueryNested) queryExprBody;
+        QueryExpressionBody nestedQuery = qryNested.getNestedQuery();
+        columnSet.addAll(findColumnReferencesInQueryExpressionBody(nestedQuery));
+    }
+    else if (queryExprBody instanceof QueryValues) {
+        // nothing to do here, no column references possible in VALUES clause
+    }
+    else {
+//        throw new UnsupportedOperationException(
+//            TableHelper.class.getName()
+//                + "#findColumnReferencesInQueryExpressionBody( ("+queryExprBody.getClass().getName()+") QueryExpressionBody ) not implemented.");
+    }
+
+    List sortSpecList = queryExprBody.getSortSpecList();
+    columnSet.addAll( findColumnReferencesInOrderBySpecificationList(sortSpecList));
+    
+    return columnSet;
+  }
+
+  /**
+   * Returns a Set containing all <code>ValueExpressionColumn</code>s found in
+   * the given <code>QueryExpressionRoot</code>.
+   */
+   public static Set findColumnReferencesInQueryExpressionRoot(
+      QueryExpressionRoot queryExprRoot) {
+    if (queryExprRoot == null) {
+      return Collections.EMPTY_SET;
+    }
+
+    HashSet columnSet = new HashSet();
+
+    columnSet.addAll(findColumnReferencesInQueryExpressionBody(queryExprRoot.getQuery()));
+    
+    // we don't want to find column references in TableWithSpecification
+    // cause they are resolved within the context of the TableWithSpecification's query
+    //columnSet.addAll(findColumnReferencesInTableWithSpecificationList(queryExprRoot.getWithClause()));
+
+    return columnSet;
+  }
+
+   /**
+    * Returns a set containing all the column value expression objects in the given statement.
+    * 
+    * @param mergeStmt the statement from which column expressions are wanted 
+    * @return a set containing the column expressions in the statement
+    */
+   public static Set findColumnReferencesInQueryMergeStatement(QueryMergeStatement mergeStmt) {
+       Set colSet = new HashSet();
+       
+       if (mergeStmt == null) {
+           colSet = Collections.EMPTY_SET;
+       }
+       else {
+           MergeOnCondition onCondition = mergeStmt.getOnCondition();
+           QuerySearchCondition searchCond = onCondition.getSearchCondition();
+           Set searchCondColSet = findColumnReferencesInSearchCondition(searchCond);
+           colSet.addAll(searchCondColSet);
+           
+           List operSpecList = mergeStmt.getOperationSpecList();
+           Iterator operSpecListIter = operSpecList.iterator();
+           while (operSpecListIter.hasNext()) {
+               MergeOperationSpecification operSpec = (MergeOperationSpecification) operSpecListIter.next();
+               if (operSpec instanceof MergeUpdateSpecification) {
+                   MergeUpdateSpecification updateSpec = (MergeUpdateSpecification) operSpec;
+                   List assignExprList = updateSpec.getAssignementExprList();
+                   Set assignExprListColSet = findColumnReferencesInUpdateAssignmentExprList(assignExprList);
+                   colSet.addAll(assignExprListColSet);
+               }
+               else if (operSpec instanceof MergeInsertSpecification) {
+                   MergeInsertSpecification insertSpec = (MergeInsertSpecification) operSpec;
+                   List targetColList = insertSpec.getTargetColumnList();
+                   colSet.addAll(targetColList);
+                   ValuesRow valRow = insertSpec.getSourceValuesRow();
+                   Set valRowColSet = findColumnReferencesInValuesRow(valRow);
+                   colSet.addAll(valRowColSet);
+               }
+           }
+       }
+       
+       return colSet;
+   }
+   
+/**
+ * Returns a Set containing all <code>ValueExpressionColumn</code>s found
+ * in the given <code>QueryResultSpecification</code>.
+ */
+public static Set findColumnReferencesInQueryResultSpecification(QueryResultSpecification queryResult)
+{
+    if (queryResult == null) { return Collections.EMPTY_SET; }
+    HashSet columnSet = new HashSet();
+    if (queryResult instanceof ResultColumn)
+    {
+        ResultColumn resultCol = (ResultColumn) queryResult;
+        columnSet.addAll(findColumnReferencesInValueExpression(resultCol
+                        .getValueExpr()));
+    }
+    return columnSet;
+}
+  
+  
+/**
+ * Returns a Set containing all <code>ValueExpressionColumn</code>s found
+ * in the given <code>QueryResultSpecification</code> list.
+ */
+public static Set findColumnReferencesInQueryResultSpecificationList(List queryResultSpecList)
+{
+    if (queryResultSpecList == null) { return Collections.EMPTY_SET; }
+    HashSet columnSet = new HashSet();
+    for (Iterator it = queryResultSpecList.iterator(); it.hasNext();)
+    {
+        QueryResultSpecification resultSpec = (QueryResultSpecification) it
+                        .next();
+        columnSet
+                        .addAll(findColumnReferencesInQueryResultSpecification(resultSpec));
+    }
+    return columnSet;
+}
+
+  /**
+    * Returns a Set containing all <code>ValueExpressionColumn</code>s found
+    * in the given <code>QuerySelectStatement</code>.
+    */
+    public static Set findColumnReferencesInQuerySelectStatement(QuerySelectStatement querySelect)
+    {
+        if (querySelect == null) { return Collections.EMPTY_SET; }
+
+        HashSet columnSet = new HashSet();
+
+        columnSet.addAll(findColumnReferencesInQueryExpressionRoot(querySelect
+                        .getQueryExpr()));
+
+        List orderBySpecList = querySelect.getOrderByClause();
+        columnSet.addAll( findColumnReferencesInOrderBySpecificationList(orderBySpecList));
+
+        return columnSet;
+    }
+
+  /**
+   * Returns a Set containing all <code>ValueExpressionColumn</code>s found
+   * in the given <code>QueryUpdateStatement</code>.
+   */
+   public static Set findColumnReferencesInQueryUpdateStatement(QueryUpdateStatement updateStmt)
+   {
+       if (updateStmt == null) { return Collections.EMPTY_SET; }
+
+       HashSet columnSet = new HashSet();
+
+       columnSet.addAll(findColumnReferencesInUpdateAssignmentExprList(updateStmt.getAssignmentClause()));
+       columnSet.addAll(findColumnReferencesInSearchCondition(updateStmt.getWhereClause()));
+
+       if (updateStmt.getWhereCurrentOfClause() != null) 
+       {
+//           StatementHelper.logError(TableHelper.class.getName()
+//                           +" implement findColumnReferencesInQueryUpdateStatement(QueryUpdateStatement)" 
+//                           +" for "+CursorReference.class.getName());
+       }
+
+       return columnSet;
+   }
+
+  /**
+   * Returns a Set of not neccessarily distinct
+   * <code>ValueExpressionColumn</code>s found in the given 
+   * <code>SearchCondition</code>, means you have to expect duplicates regarding
+   * column names.
+   *
+   * @param searchCond
+   * @return
+   */
+  public static Set findColumnReferencesInSearchCondition(QuerySearchCondition searchCond) {
+    if (searchCond == null) {
+      return Collections.EMPTY_SET;
+    }
+
+    HashSet columnSet = new HashSet();
+
+    if (searchCond instanceof Predicate) {
+      Predicate pred = (Predicate) searchCond;
+      return findColumnReferencesInPredicate(pred);
+    }
+    else if (searchCond instanceof SearchConditionCombined) {
+      SearchConditionCombined combined = (SearchConditionCombined) searchCond;
+      columnSet.addAll(findColumnReferencesInSearchCondition(combined.getLeftCondition()));
+      columnSet.addAll(findColumnReferencesInSearchCondition(combined.getRightCondition()));
+      return columnSet;
+    }
+    else if (searchCond instanceof SearchConditionNested) {
+      SearchConditionNested nest = (SearchConditionNested) searchCond;
+      return findColumnReferencesInSearchCondition(nest.getNestedCondition());
+    }
+
+    return columnSet;
+  }
+
+  /**
+   * Returns a Set containing all the <code>ValueExpressionColumn</code>s found
+   * in the given <code>TableReference</code>.
+   */
+  public static Set findColumnReferencesInTableReference(TableReference tableRef) {
+      Set columnSet = Collections.EMPTY_SET;
+      
+      if (tableRef != null) {
+          columnSet = new HashSet();
+          
+          if (tableRef instanceof TableInDatabase) {
+              // do nothing; doesn't contain query column references
+          }
+          // A QueryExpressionBody as a table ref as a nested query definition in the FROM clause, ie:
+          //   SELECT * FROM table1, (SELECT foo, bar FROM table2)
+          else if (tableRef instanceof QueryExpressionBody) {
+              QueryExpressionBody queryExprBody = (QueryExpressionBody) tableRef;
+              columnSet.addAll(findColumnReferencesInQueryExpressionBody(queryExprBody));
+          }
+          // A "lateral" table query is like the nested query definition in the FROM clause
+          // as above, but the sub-query has the LATERAL (or TABLE) keyword in front of it, ie:
+          //   SELECT * FROM table1, TABLE (SELECT foo, bar FROM table2)
+          // In a lateral table query, the tables ahead of it in the FROM clause, (ie, table1) are
+          // visible within the sub-query.
+          else if (tableRef instanceof TableQueryLateral) {
+              TableQueryLateral tableQueryLateral = (TableQueryLateral) tableRef;
+              QueryExpressionBody queryExprBody = tableQueryLateral.getQuery();
+              columnSet.addAll(findColumnReferencesInQueryExpressionBody(queryExprBody));
+          }
+          else if (tableRef instanceof TableFunction) {
+              TableFunction tableFunc = (TableFunction) tableRef;
+              columnSet.addAll(findColumnReferencesInValueExpressionList(tableFunc.getParameterList()));
+          }
+          else if (tableRef instanceof TableNested) {
+              TableNested tableNested = (TableNested) tableRef;
+              columnSet.addAll(findColumnReferencesInTableReference(tableNested.getNestedTableRef()));
+          }
+          else if (tableRef instanceof TableJoined) {
+              TableJoined tableJoined = (TableJoined) tableRef;
+              columnSet.addAll(findColumnReferencesInTableReference(tableJoined.getTableRefLeft()));
+              columnSet.addAll(findColumnReferencesInTableReference(tableJoined.getTableRefRight()));
+              columnSet.addAll(findColumnReferencesInSearchCondition(tableJoined.getJoinCondition()));
+          }
+          else if (tableRef instanceof WithTableReference) {
+              WithTableReference withTableRef = (WithTableReference) tableRef;
+              String withTableRefName = withTableRef.getName();
+              /* Find out if this WITH reference is recursive.  If so, we don't want to dig any further. */
+              boolean isRecursive = false;
+              EObject parent = tableRef.eContainer();
+              while (parent != null && isRecursive == false) {
+                  if (parent instanceof WithTableSpecification) {
+                      WithTableSpecification parentWithTableSpec = (WithTableSpecification) parent;
+                      String parentName = parentWithTableSpec.getName();
+                      if (StatementHelper.equalSQLIdentifiers(withTableRefName, parentName) == true) {
+                          isRecursive = true;
+                      }
+                  }
+                  parent = parent.eContainer();
+              }
+              
+              if (isRecursive == false) {
+                  columnSet.addAll(findColumnReferencesInWithTableSpecification(withTableRef.getWithTableSpecification()));
+              }
+          }
+      }
+      
+      return columnSet;
+  }
+  
+  /**
+   * Returns a Set containing all the <code>ValueExpressionColumn</code>s found
+   * in the given <code>TableReference</code> list.
+   */
+  public static Set findColumnReferencesInTableReferenceList(List tableRefList) {
+      Set columnSet = Collections.EMPTY_SET;
+      
+      if (tableRefList != null && tableRefList.size() > 0) {
+          columnSet = new HashSet();
+          Iterator tableRefListIter = tableRefList.iterator();
+          while (tableRefListIter.hasNext()) {
+              Object listObj = tableRefListIter.next();
+              if (listObj instanceof TableReference) {
+                  TableReference tableRef = (TableReference) listObj;
+                  columnSet.addAll(findColumnReferencesInTableReference(tableRef));
+              }
+          }
+      }
+      
+      return columnSet;
+  }
+
+/**
+ * Returns a Set containing all <code>ValueExpressionColumn</code>s found
+ * in the given List of <code>UpdateAssignmentExpression</code>.
+ * 
+ * @param updateAssignmentExpr
+ *            the <code>UpdateAssignmentExpression</code> to search in
+ * @return Set containing all <code>ValueExpressionColumn</code>s found
+ */
+ public static Set findColumnReferencesInUpdateAssignmentExpr(UpdateAssignmentExpression updateAssignmentExpr)
+ {
+     Set columnSet = new HashSet();
+
+     columnSet.addAll(updateAssignmentExpr.getTargetColumnList());
+     
+     // We only want column references in updateSourceExpressionList,
+     // NOT in UpdateSourceQuery, cause the columns contained there are locally
+     // resolved within the context of the source Query.
+     if (updateAssignmentExpr.getUpdateSource() instanceof UpdateSourceExprList)
+     {
+         UpdateSourceExprList updateSrcExprList = 
+             (UpdateSourceExprList) updateAssignmentExpr.getUpdateSource();
+         columnSet.addAll(findColumnReferencesInUpdateSourceExprList(updateSrcExprList));
+     }
+
+     return columnSet;
+ }
+
+  /**
+    * Returns a Set containing all <code>ValueExpressionColumn</code>s found
+    * in the given List of <code>UpdateAssignmentExpression</code>s.
+    * 
+    * @param updateAssignmentExprList
+    *            the list of <code>UpdateAssignmentExpression</code>s to search in
+    * @return Set containing all <code>ValueExpressionColumn</code>s found
+    */
+    public static Set findColumnReferencesInUpdateAssignmentExprList(List updateAssignmentExprList)
+    {
+        Set columnSet = new HashSet();
+
+        for (Iterator assignIt = updateAssignmentExprList.iterator(); assignIt.hasNext();)
+        {
+            UpdateAssignmentExpression upAssEx = 
+                (UpdateAssignmentExpression) assignIt.next();
+
+            columnSet.addAll(findColumnReferencesInUpdateAssignmentExpr(upAssEx));
+        }
+        
+
+        return columnSet;
+    }
+
+  
+  
+  /**
+ * Returns a Set containing all <code>ValueExpressionColumn</code>s found
+ * in the given <code>UpdateSourceExprList</code>.
+ */
+public static Set findColumnReferencesInUpdateSourceExprList(UpdateSourceExprList updateSourceExprList)
+{
+    if (updateSourceExprList == null) { return Collections.EMPTY_SET; }
+    
+    HashSet columnSet = new HashSet();
+    List exprList = updateSourceExprList.getValueExprList();
+    columnSet.addAll(findColumnReferencesInValueExpressionList(exprList));
+    return columnSet;
+}
+
+  /**
+   * Returns a Set containing all <code>ValueExpressionColumn</code>s found
+   * in the given <code>QueryValueExpression</code>.
+   *
+   * @param valueExpr
+   * @return a Set of <code>ValueExpressionColumn</code>s
+   */
+  public static Set findColumnReferencesInValueExpression(QueryValueExpression valueExpr) {
+
+    if (valueExpr == null)
+      return Collections.EMPTY_SET;
+
+    HashSet columnSet = new HashSet();
+
+    if (valueExpr instanceof ValueExpressionColumn) {
+      columnSet.add(valueExpr);
+      return columnSet;
+    }
+    // catch these types for performance! are very likely to occur!
+    else if (valueExpr instanceof ValueExpressionSimple) {
+        return Collections.EMPTY_SET;
+    }
+    else if (valueExpr instanceof ValueExpressionCombined) {
+        ValueExpressionCombined combi = (ValueExpressionCombined) valueExpr;
+        columnSet.addAll(findColumnReferencesInValueExpression(combi.getRightValueExpr()));
+        columnSet.addAll(findColumnReferencesInValueExpression(combi.getLeftValueExpr()));
+        return columnSet;
+    }
+    // catch these types for performance! are very likely to occur!
+    else if (valueExpr instanceof ValueExpressionDefaultValue
+                    || valueExpr instanceof ValueExpressionNullValue
+                    || valueExpr instanceof ValueExpressionVariable) {
+        return Collections.EMPTY_SET;
+    }
+    else if (valueExpr instanceof ValueExpressionNested) {
+      ValueExpressionNested nest = (ValueExpressionNested) valueExpr;
+      return findColumnReferencesInValueExpression(nest.getNestedValueExpr());
+    }
+
+    else if (valueExpr instanceof ValueExpressionCaseSearch) {
+      ValueExpressionCaseSearch caseSearch = (ValueExpressionCaseSearch) valueExpr;
+      for (Iterator searchContentList = caseSearch.getSearchContentList()
+          .iterator(); searchContentList.hasNext();) {
+        ValueExpressionCaseSearchContent searchContent = (ValueExpressionCaseSearchContent) searchContentList.next();
+        columnSet.addAll(findColumnReferencesInValueExpression(searchContent.getValueExpr()));
+        columnSet.addAll(findColumnReferencesInSearchCondition(searchContent.getSearchCondition()));
+      }
+      ValueExpressionCaseElse caseElse = (ValueExpressionCaseElse) caseSearch.getCaseElse();
+      if (caseElse != null) {
+          columnSet.addAll(findColumnReferencesInValueExpression(caseElse.getValueExpr()));
+      }
+      return columnSet;
+    }
+
+    else if (valueExpr instanceof ValueExpressionCaseSimple) {
+      ValueExpressionCaseSimple caseSimple = (ValueExpressionCaseSimple) valueExpr;
+      
+      columnSet.addAll( findColumnReferencesInValueExpression(caseSimple.getValueExpr()) );
+      
+      for (Iterator simpleContentList = caseSimple.getContentList().iterator(); simpleContentList.hasNext();) {
+        ValueExpressionCaseSimpleContent simpleContent = (ValueExpressionCaseSimpleContent) simpleContentList.next();
+        columnSet.addAll(findColumnReferencesInValueExpression(simpleContent.getResultValueExpr()));
+        columnSet.addAll(findColumnReferencesInValueExpression(simpleContent.getWhenValueExpr()));
+      }
+
+      ValueExpressionCaseElse caseElse = caseSimple.getCaseElse();
+      if (caseElse != null) {
+          columnSet.addAll(findColumnReferencesInValueExpression(caseElse.getValueExpr()));
+      }
+      return columnSet;
+    }
+
+    else if (valueExpr instanceof ValueExpressionCast) {
+      ValueExpressionCast cast = (ValueExpressionCast) valueExpr;
+      return findColumnReferencesInValueExpression(cast.getValueExpr());
+    }
+
+    else if (valueExpr instanceof ValueExpressionFunction) {
+      ValueExpressionFunction func = (ValueExpressionFunction) valueExpr;
+      return findColumnReferencesInValueExpressionList(func.getParameterList());
+    }
+
+    else if (valueExpr instanceof ValueExpressionLabeledDuration) {
+      ValueExpressionLabeledDuration dur = (ValueExpressionLabeledDuration) valueExpr;
+      return findColumnReferencesInValueExpression(dur.getValueExpr());
+    }
+
+    else if (valueExpr instanceof ValueExpressionScalarSelect) {
+        // we don't want the column references in scalar sub-select,
+        // these are only valid and resolved within the context of its QueryExpressionRoot
+        //**DON'T**//ValueExpressionScalarSelect scalar = (ValueExpressionScalarSelect) valueExpr;
+        //**DON'T**//return findColumnReferencesInQueryExpressionRoot(scalar.getQueryExpr());
+    }
+
+    return columnSet;
+  }
+
+  /**
+   * Returns a Set containing all <code>ValueExpressionColumn</code>s found
+   * in the given <code>ValueExpression</code> list.
+   */
+    public static Set findColumnReferencesInValueExpressionList(List valueExprList)
+    {
+        HashSet columnSet = null;
+
+        if (valueExprList != null)
+        {
+            columnSet = new HashSet();
+
+            for (Iterator valIt = valueExprList.iterator(); valIt.hasNext();)
+            {
+                QueryValueExpression valueExpr = (QueryValueExpression) valIt
+                                .next();
+                columnSet
+                                .addAll(findColumnReferencesInValueExpression(valueExpr));
+            }
+        }
+        return columnSet;
+    }
+
+/**
+ * Returns a Set containing all <code>ValueExpressionColumn</code>s found in
+ * the given <code>ValuesRow</code>.
+ */
+public static Set findColumnReferencesInValuesRow(ValuesRow valuesRow)
+{
+    if (valuesRow == null) { return Collections.EMPTY_SET; }
+    HashSet columnSet = new HashSet();
+    columnSet.addAll(findColumnReferencesInValueExpressionList(valuesRow
+                    .getExprList()));
+    return columnSet;
+}
+  
+/**
+ * Returns a Set containing all the <code>ValueExpressionColumn</code>s found in
+ * the given <code>WithTableSpecification</code>.
+ */
+public static Set findColumnReferencesInWithTableSpecification(WithTableSpecification withTableSpec) {
+    Set columnSet = Collections.EMPTY_SET;
+    
+    if (withTableSpec != null) {
+        columnSet = new HashSet();
+        
+        columnSet.addAll(findColumnReferencesInQueryExpressionBody(withTableSpec.getWithTableQueryExpr()));
+    }
+    
+    return columnSet;
+}
+
+  /**
+   * Finds in the given List of <code>TableExpression</code>s the one
+   * <code>TableExpression</code> with a name that matches the given
+   * <code>tableName</code> and, if a <code>schemaName</code> is
+   * given, with a <code>Schema</code> whose name matches the
+   * <code>schemaName</code>. If no <code>schemaName</code> is given,
+   * the first <code>TableExpression</code> found without regard of its
+   * <code>Schema</code>, will be returned.
+   * 
+   * @param schemaName
+   *          optional the schema name of the table to find
+   * @param tableName
+   *          the name of the table to find
+   * @param tableExprList
+   *          the list of <code>TableExpression</code> s to search
+   * @return the matching <code>TableExpression</code> or <code>null</code>
+   */
+  public static TableExpression findTableExpressionInTableExpressionList(
+                                                                           String schemaName,
+                                                                           String tableName,
+                                                                           List tableExprList)
+    {
+        TableExpression foundTableExpr = null;
+        SQLQuerySourceFormat sourceFormat = null;
+
+        if (tableName != null && tableExprList != null)
+        {
+
+            for (Iterator tableIt = tableExprList.iterator(); tableIt.hasNext();)
+            {
+                TableExpression tableExpr = (TableExpression) tableIt.next();
+
+                // get the delimited identifier quote from the SourceFormat
+                if (sourceFormat == null
+                                && tableExpr.getSourceInfo() != null
+                                && tableExpr.getSourceInfo().getSqlFormat() != null)
+                {
+                    sourceFormat = tableExpr.getSourceInfo().getSqlFormat();
+                }
+                
+
+                if (StatementHelper.equalSQLIdentifiers(tableName, tableExpr.getName()))
+                {
+                    String tableExprSchemaName = getSchemaNameForTableExpression(tableExpr);
+
+                    if (schemaName == null
+                     || StatementHelper.equalSQLIdentifiers(schemaName, tableExprSchemaName))
+                    {
+                        foundTableExpr = tableExpr;
+                        break;
+                    }
+                }
+            }
+
+        }
+
+        return foundTableExpr;
+    }
+
+  /**
+ * Finds in the given List of <code>TableExpression</code>s the
+ * <code>TableExpression</code> with a name that matches the given
+ * <code>tableNameOrAlias</code> or a <code>tableCorrelation</code> with
+ * a name that matches <code>tableNameOrAlias</code>. If multiple tables
+ * are found, preference is given to the first. <b>Note: </b> if no table is
+ * found by alias name but more than one table is found by name, the table
+ * that is in the default Schema specified by <code>defaultSchemaName</code>
+ * will be returned, or, if no <code>defaultSchemaName</code> is given the
+ * table to be returned must have no <code>Schema</code> reference.
+ * If you are searching for a table with name and schema, use
+ * {@link #findTableExpressionInTableExpressionList(String, String, List)}
+ * <b>Note:</b> If only one table is found with the given
+ * <code>tableNameOrAlias</code>, but it is Schema-qualified, it will be
+ * returned also.
+ * 
+ * Example: <br>
+ * for <code>tableNameOrAlias = "T1"</code>
+ * and the given <code>tableExprList</code> contains:
+ * <table border='1' width='250'>
+ * <tr><th><b><code>tableExprList*</code></b></th><th><b>return</b></th>
+ * </tr>
+ * <tr><td> T1<br> T2<br></td><td>T1</td>
+ * </tr>
+ * <tr><td> S1.T1<br> T1<br></td><td>T1</td>
+ * </tr>
+ * <tr><td> S1.T1 AS T1<br> S2.T1<br></td><td>S1.T1</td>
+ * </tr>
+ * <tr><td> S1.T1<br> S1.T2<br></td><td>S1.T1</td>
+ * </tr>
+ * <tr><td> S1.T2<br> S1.T3<br></td><td><code>null</code></td>
+ * </tr>
+ * <tr><td> S1.T1<br> S2.T1<br></td><td><code>null</code></td>
+ * </tr>
+ * </table>
+ * * S1,S2 are Schema names; T1,T2,T3 are Table names
+ * 
+ * @param tableNameOrAlias
+ *            the name of the table to find or its correlation name
+ * @param tableExprList
+ *            the list of <code>TableExpression</code> s to search
+ * @param defaultSchemaName
+ *            optional, if given and no table is found by alias name but
+ *            tables, that have no alias are found by name, the table to be
+ *            returned has to be in the default Schema
+ * 
+ * @return the matching <code>TableExpression</code> or <code>null</code>
+ */
+public static TableExpression findTableExpressionsByNameOrAlias(String tableNameOrAlias,
+                                                     List tableExprList,
+                                                     String defaultSchemaName)
+{
+    TableExpression tableExprFound = null;
+    SQLQuerySourceFormat sourceFormat = null;
+    
+    // if we find tables that match the given tableNameOrAlias but are schema
+    // qualified we will check in the end if only one of that was found and take it
+    List matchingSchemaQualifiedTables = new ArrayList();
+    
+    if (tableNameOrAlias != null && tableExprList != null)
+    {
+        for (Iterator tableIt = tableExprList.iterator(); tableIt.hasNext();)
+        {
+            TableExpression tableExpr = (TableExpression) tableIt.next();
+            TableCorrelation tableCorr = tableExpr.getTableCorrelation();
+            
+            String tableName = tableExpr.getName();
+            String tableAlias = null;
+            
+            if (tableCorr != null) 
+            {
+                tableAlias = tableCorr.getName();
+            }
+            
+            // get the omitSchema from the table
+            if (tableExpr.getSourceInfo() != null
+                            && tableExpr.getSourceInfo().getSqlFormat() != null)
+            {
+                sourceFormat = tableExpr.getSourceInfo().getSqlFormat();
+                if (sourceFormat.getOmitSchema() != null
+                                && sourceFormat.getOmitSchema().length()>0)
+                {
+                    defaultSchemaName = sourceFormat.getOmitSchema();
+                }
+            }
+  
+            boolean equalNames = StatementHelper.equalSQLIdentifiers(tableNameOrAlias, tableName);
+            boolean equalAlias = StatementHelper.equalSQLIdentifiers(tableNameOrAlias, tableAlias);
+            
+            // the alias-name wins over the name
+            if (equalAlias)
+            {
+                tableExprFound = tableExpr;
+                break;
+            }
+            else if (equalNames && tableAlias == null)
+            {
+                // the table can only be the one, if it is in the default
+                // schema or has no schemas specified
+                // or else (forgiving the user his inproper input) we check
+                // for schema-qualified tables in the FROM-clause and if
+                // only one matches by name (no like-named tables in
+                // different schemas) we return the "best match"
+                String tableSchema = getSchemaName(tableExpr);
+                if (tableSchema == null
+                 || StatementHelper.equalSQLIdentifiers(tableSchema, defaultSchemaName))
+                {
+                    tableExprFound = tableExpr;
+                    // don't break as we could find another table that
+                    // matches by alias name, and that would be prioritized
+                }
+                else
+                {
+                    matchingSchemaQualifiedTables.add(tableExpr);
+                }
+            }
+        }
+    }
+
+    if (tableExprFound == null && matchingSchemaQualifiedTables.size() == 1)
+    {
+        tableExprFound = (TableExpression) matchingSchemaQualifiedTables.get(0);
+    }
+    
+    return tableExprFound;
+}
+
+    /**
+     * Gets the SQLValueExpressionColumn corresponding to the given Column, in the
+     * given table.
+     *
+     * @param tableExpr the table to search
+     * @param column the column to be looked for
+     * @return the SQLValueExpressionColumn corresponding to the given Column, or
+     *         null if there is no match
+     */
+    public static ValueExpressionColumn getColumnExpressionForColumn(
+            TableExpression tableExpr, Column column) {
+        ValueExpressionColumn foundCol = null;
+
+        if (column != null && tableExpr != null) {
+            String colName = column.getName();
+            foundCol = getColumnExpressionForName(tableExpr, colName);
+        }
+
+        return foundCol;
+    }
+
+    /**
+     * Returns the <code>ValueExpressionColumn</code> from the given
+     * <code>TableExpression</code>, if the <code>ValueExpressionColumn</code>'s
+     * name matches the given column name.
+     * <p>
+     * <b>NOTE: </b> If there is more than one <code>ValueExpressionColumn</code> 
+     * with the same name (both representing one and the same real <code>Column</code>), 
+     * the first one found will be returned.
+     * </p>
+     * 
+     * @param tableExpr the TableReference to search for the matching column name
+     * @param columnName the name of the ValueExpressionColumn to search for
+     * @return the found ValueExpressionColumn or <code>null</code>
+     */
+    static public ValueExpressionColumn getColumnExpressionForName(TableExpression tableExpr,
+            String columnName) {
+        ValueExpressionColumn colExprFound = null;
+
+        // Try to find the column name in the table's list of columns.
+        if (tableExpr != null && columnName != null) {
+            /* Determine if the table has a correlation column name list.
+             * If so, we need to use that list of names, since they hide the table's 
+             * real column names. */
+            boolean hasCorrColList = false;
+            TableCorrelation tableCorr = tableExpr.getTableCorrelation();
+            if (tableCorr != null) {
+                List corrColNameList = tableCorr.getColumnNameList();
+                if (corrColNameList != null && corrColNameList.size() > 0) {
+                    hasCorrColList = true;
+                }
+            }
+            
+            /* If there is a correlation column name list, look through it for a match
+             * and get the corresponding underlying column. */
+            if (hasCorrColList == true) {
+                List corrColNameList = tableCorr.getColumnNameList();
+                List tableColList = tableExpr.getColumnList();
+                if (corrColNameList.size() <= tableColList.size()) {
+                    int i=0;
+                    while (colExprFound == null && i<corrColNameList.size()) {
+                        Object obj1 = corrColNameList.get(i);
+                        Object obj2 = tableColList.get(i);
+                        if (obj1 instanceof ColumnName && obj2 instanceof ValueExpressionColumn) {
+                            ColumnName corrColName = (ColumnName) obj1;
+                            String corrColNameName = corrColName.getName();
+                            ValueExpressionColumn tableColExpr = (ValueExpressionColumn) obj2;
+                            
+                            if (StatementHelper.equalSQLIdentifiers(columnName, corrColNameName)) {
+                                colExprFound = tableColExpr;
+                            }
+                        }
+                        i++;
+                    }
+                }
+            }
+            /* Otherwise look through the table's regular column list. */
+            else {
+                List tableColList = tableExpr.getColumnList();
+                Iterator tableColListIter = tableColList.iterator();
+                while (tableColListIter.hasNext() && colExprFound == null) {
+                    ValueExpressionColumn tableColExpr = (ValueExpressionColumn) tableColListIter.next();
+                    String tableColName = tableColExpr.getName();
+                    if (StatementHelper.equalSQLIdentifiers(columnName, tableColName)) {
+                        colExprFound = tableColExpr;
+                    }
+                }
+            }
+        }
+
+        return colExprFound;
+    }
+
+    /**
+     * Returns the <code>ValueExpressionColumn</code> from the given
+     * <code>TableReference</code> matching the given <code>columnName</code>.
+     * If the given <code>TableReference</code> is of type
+     * <code>QueryExpressionBody</code> <code>ResultColumn</code>s of the
+     * <code>QuerySelect</code> statement will be regarded too.
+     * <p>
+     * <b>NOTE:</b>
+     * If there is more than one <code>ValueExpressionColumn</code> with the same
+     * name (both representing one and the same real <code>Column</code>), the
+     * first one found will be returned. 
+     * </p>
+     *
+     * @param tableRef the TableReference to search for the matching column
+     * @param columnName the name of the column to search for
+     * @return the found ValueExpressionColumn or <code>null</code>
+     */
+    static public ValueExpressionColumn getColumnExpressionForName(TableReference tableRef,
+            String columnName) {
+        ValueExpressionColumn colExpr = null;
+
+        if (tableRef != null && columnName != null) {
+            if (tableRef instanceof TableExpression) {
+                TableExpression tableExpr = (TableExpression) tableRef;
+                colExpr = getColumnExpressionForName(tableExpr, columnName);
+            }
+            if (tableRef instanceof TableNested) {
+                TableNested nest = (TableNested) tableRef;
+                TableReference nestedTableRef = nest.getNestedTableRef();
+                colExpr = getColumnExpressionForName(nestedTableRef, columnName);
+            }
+            if (tableRef instanceof TableJoined) {
+                TableJoined tableJoined = (TableJoined) tableRef;
+                TableReference leftTableRef = tableJoined.getTableRefLeft();
+                TableReference rightTableRef = tableJoined.getTableRefRight();
+
+                ValueExpressionColumn leftColumn = getColumnExpressionForName(leftTableRef, columnName);
+
+                if (leftColumn != null) {
+                    colExpr = leftColumn;
+                } 
+                else {
+                    ValueExpressionColumn rightColumn = getColumnExpressionForName(rightTableRef, columnName);
+                    colExpr = rightColumn;
+                }
+            }
+        }
+
+        return colExpr;
+    }
+    
+
+    
+    /**
+     * Returns the <code>ValueExpressionColumn</code> from the given
+     * <code>TableExpression</code>, if the <code>ValueExpressionColumn</code>'s
+     * name matches the given <code>columnName</code>.
+     * If the given <code>TableExpression</code> is of type
+     * <code>QueryExpressionBody</code>, this method will recursively analyze
+     * its effective result columns, e.g. the <code>ResultColumn</code>s of a
+     * nested <code>QuerySelect</code> statement will be considered, too.
+     * <p>
+     * <b>NOTE: </b> If there is more than one <code>ValueExpressionColumn</code> with 
+     * the same name (both representing one and the same real <code>Column</code>), the 
+     * first one found will be returned.
+     * </p>
+     * 
+     * @param tableExpr the TableReference to search for the matching column name
+     * @param columnName the name of the ValueExpressionColumn search for
+     * @return column the found ValueExpressionColumn or <code>null</code>
+     */
+    static public ValueExpressionColumn getColumnExpressionForNameRecursively(TableExpression tableExpr,
+                                                                              String columnName) {
+        ValueExpressionColumn colExprFound = null;
+
+        if (tableExpr != null && columnName != null) {
+            colExprFound = getColumnExpressionForName(tableExpr, columnName);
+        }
+
+        if (colExprFound == null) {
+            if (tableExpr instanceof QueryExpressionBody) {
+                QueryExpressionBody tableQuery = (QueryExpressionBody) tableExpr;
+                ResultColumn resultColFound = getResultColumnForAliasOrColumnName(tableQuery,columnName);
+                
+                if (resultColFound != null) {
+                    // We have a result column for the column, but the result column
+                    // doesn't have an associated ValueExpressionColumn, so create one.
+                    ValueExpressionColumn resultColExpr = SQLQueryModelFactory.eINSTANCE.createValueExpressionColumn();
+                    resultColExpr.setName(columnName);
+                    tableQuery.getColumnList().add(resultColExpr);
+                    
+                    colExprFound = resultColExpr;
+                }
+            }
+            else if (tableExpr instanceof TableInDatabase) {
+                TableInDatabase tableInDB = (TableInDatabase) tableExpr;
+                Column dbColumn = getColumnForName(tableInDB, columnName);
+                if (dbColumn != null) {
+                    colExprFound = getColumnExpressionForColumn(tableInDB, dbColumn);
+                }
+            }
+            else if (tableExpr instanceof WithTableReference) {
+//                WithTableReference withTable = (WithTableReference) tableExpr;
+//                StatementHelper.logError(
+//                                TableHelper.class.getName()+
+//                                "#getColumnExpressionForName(TableExpression,String) not implemented for TableExpression of type "+
+//                                withTable.getClass().getName());
+            }
+            else if (tableExpr instanceof TableFunction) {
+//                TableFunction tableFunc = (TableFunction) tableExpr;
+//                throw new UnsupportedOperationException(TableHelper.class.getName()+"#getColumnExpressionForName(TableExpression,String) not implemented for TableExpression of type "+
+//                                tableFunc.getClass().getName());
+            } 
+            else
+            {
+//                throw new UnsupportedOperationException(TableHelper.class.getName()+"#getColumnExpressionForName(TableExpression,String) not implemented for TableExpression of type "+
+//                                tableExpr.getClass().getName());
+            }
+        }
+
+        return colExprFound;
+    }
+
+    /**
+     * Returns the Column matching the name of the SQLValueExpressionColumn from
+     * the given SQLTableExpression.
+     *
+     * @param tableExpr the SQLTableExpression to search for the matching
+     *          SQLValueExpressionColumn
+     * @param colExpr the SQLValueExpressionColumn to search for
+     * @return the found column object or null if not found
+     */
+    static public Column getColumnForColumnExpression(TableExpression tableExpr,
+            ValueExpressionColumn colExpr) {
+        Column foundColumn = null;
+        
+        if (colExpr != null) {
+            String columnName = colExpr.getName();
+            if (tableExpr instanceof TableInDatabase) {
+                TableInDatabase tableInDB = (TableInDatabase) tableExpr;
+                foundColumn = getColumnForName(tableInDB, columnName);
+            }
+        }
+        
+        return foundColumn;
+    }
+
+/**
+ * Returns the Column matching the columnName from the given TableInDatabase
+ * 
+ * @param tableInDB the TableInDatabase to search for the matching column name
+ * @param columnName the name of the column to search for
+ * @return the column object or null if not found
+ */
+static public Column getColumnForName(TableInDatabase tableInDB,
+                                      String columnName) {
+    Column columnFound = null;
+
+    if (tableInDB != null && columnName != null) {
+        Table dbTable = tableInDB.getDatabaseTable();
+        if (dbTable != null) {
+            List dbColList = dbTable.getColumns();
+            Iterator dbColListIter = dbColList.iterator();
+            while (dbColListIter.hasNext() && columnFound == null) {
+                Column dbCol = (Column) dbColListIter.next();
+                String dbColName = dbCol.getName();
+                if (StatementHelper.equalSQLIdentifiers(columnName, dbColName)) {
+                    columnFound = dbCol; 
+                }
+            }
+        }
+    }
+
+    return columnFound;
+}
+
+/**
+ * Returns the Column matching the columnName from the given TableReference.
+ *
+ * @param tableRef the TableReference to search for the matching column name
+ * @param columnName the String name of the column to search
+ * @return the found column object or null if not found
+ */
+static public Column getColumnForName(TableReference tableRef,
+        String columnName) {
+    Column foundColumn = null;
+    
+    if (tableRef != null) {
+        if (tableRef instanceof TableInDatabase) {
+            TableInDatabase tableInDB = (TableInDatabase) tableRef;
+            foundColumn = getColumnForName(tableInDB, columnName);
+        }
+        if (tableRef instanceof TableNested) {
+            TableNested nest = (TableNested) tableRef;
+            TableReference nestedTable = nest.getNestedTableRef();
+            foundColumn = getColumnForName(nestedTable, columnName);
+        }
+        if (tableRef instanceof TableJoined) {
+            TableJoined tableJoined = (TableJoined) tableRef;
+            TableReference leftTableRef = tableJoined.getTableRefLeft();
+            TableReference rightTableRef = tableJoined.getTableRefRight();
+
+            Column leftColumn = getColumnForName(leftTableRef, columnName);
+            Column rightColumn = getColumnForName(rightTableRef, columnName);
+
+            if (leftColumn != null) {
+                foundColumn = leftColumn;
+            } else {
+                foundColumn = rightColumn;
+            }
+        }
+    }
+
+    return foundColumn;
+}
+
+/**
+ * Returns the Column matching the columnName from the given <code>WithTableReference</code>.
+ * 
+ * @param withTableRef the <code>WithTableReference</code> to search for the
+ *        matching column name
+ * @param columnName the name of the column to search for
+ * @return the found column object or null if not found
+ */
+static public Column getColumnForName(WithTableReference withTableRef,
+                                      String columnName) {
+    Column columnFound = null;
+    
+    if (withTableRef != null && columnName != null) {
+        WithTableSpecification withTableSpec = withTableRef.getWithTableSpecification();
+        if (withTableSpec != null) {
+            // columnName matches either one of the declared columns
+            //   then find the corresponding valueExpression in the query result
+            // or columnName matches one of the implicit result columns of 
+            //   the AS query
+
+//            StatementHelper.logError(TableHelper.class.getName()+
+//            "#getColumnForName(WithTableReference,String) is not implemented.");
+            // Note: implement if it makes sense, we needed the datatype but that
+            //      could be different from the original column!
+        }
+    }
+
+    return columnFound;
+}
+
+    /**
+     * Returns a List of <code>ValueExpressionColumn</code>s,
+     * with <code>name</code>, <code>dataType</code> and in ordering, 
+     * so the given <code>tableRef</code> can be handled like a
+     * <code>TableInDatabase</code>.
+     * 
+     * @param tableRef
+     * @return List of exposed <code>ValueExpressionColumn</code>s
+     */
+    public static List getEffectiveResultColumns(TableReference tableRef) {
+        
+        // must be a copy of the exposed result columns of the given tableRef
+        // to not allow manipulations on it to effect the underlying tableRefs
+        List resultColExprList = new ArrayList();
+        
+        if (tableRef == null) {
+            return null;
+        }
+        else if (tableRef instanceof TableExpression)
+        {
+            TableExpression tableExpr = (TableExpression) tableRef;
+            // if we not already exposed the columns, expose them here
+            if (tableExpr.getColumnList() == null ||
+                            tableExpr.getColumnList().isEmpty()) 
+            {
+                exposeEffectiveResultColumns(tableExpr);
+            }
+            // add the exposed effective result columns from the tableExpression
+            resultColExprList.addAll(tableExpr.getColumnList());
+        }
+        else if (tableRef instanceof TableJoined) 
+        {
+            // Note: naming rules for result columns in the higher star-query
+            //   different Databases will have different naming schemes!!!
+            //   hand-in a String pattern or a formatter object that does it
+            //   e.g. assume TABLE_A (col1, col2, col3) and TABLE_B (col1,col5)
+            //   duplicated column name "col1" what are the result columns of
+            //   select * from TABLE_A as A join TABLE_B as B on A.col1 = B.col1
+            //   -> col1, col2, col3, col1, col5
+            //      ^                 ^      
+            TableJoined tableJoin = (TableJoined) tableRef;
+            
+            List leftCols = 
+                getEffectiveResultColumns(tableJoin.getTableRefLeft());
+            List rightCols = 
+                getEffectiveResultColumns(tableJoin.getTableRefRight());
+            resultColExprList.addAll(leftCols); 
+            resultColExprList.addAll(rightCols); 
+        } 
+        else if (tableRef instanceof TableNested)
+        {
+            TableNested tableNest = (TableNested) tableRef;
+            resultColExprList = 
+                getEffectiveResultColumns(tableNest.getNestedTableRef());
+        }
+        else
+        {
+//            StatementHelper.logError(TableHelper.class.getName()+
+//                            ": implement getEffectiveResultColumns(TableReference)" +
+//                            " for "+tableRef.getClass().getName());
+        }
+               
+        return resultColExprList;
+    }
+
+    /**
+       * Returns the name or the alias name of the given
+       * <code>TableExpression</code> <code>tableExpr</code> depending on, whether
+       * or not the <code>tableExpr</code> has a
+       * <code>TableCorrelation</code>.
+       * 
+       * @param tableExpr
+       *          the TableExpression for which the exposed name is needed
+       * @return the exposed table name
+       */
+      public static String getExposedTableName(TableExpression tableExpr) {
+        String tablename = null;
+        if (tableExpr != null) {
+            if (tableExpr.getTableCorrelation() != null) {
+                tablename = tableExpr.getTableCorrelation().getName();
+            } else {
+                tablename = tableExpr.getName();
+            }
+        }
+        return tablename;
+      }
+
+
+
+
+  /**
+   * Returns the list of Columns that are part of the Foreign key constraint for
+   * the given table.
+   *
+   * @param table
+   *          the Table for which list of Foreign key columns needed
+   * @return the list of columns
+   */
+  public static List getForeignKeyColumns(Table table) {
+    List fkCols = new ArrayList();
+    if (table instanceof BaseTable) {
+      List list = ((BaseTable) table).getConstraints();
+      Iterator conItr = list.iterator();
+      while (conItr.hasNext()) {
+        Constraint con = (Constraint) conItr.next();
+        if (con instanceof ForeignKey) {
+          fkCols.addAll(((ForeignKey) con).getMembers());
+        }
+      }
+    }
+    return fkCols;
+  }
+
+  /**
+   * Returns fully qualified name for the given table.
+   *
+   * @param table
+   *          the Table for which the fully qualified name is needed
+   * @return the fully qualified table name
+   */
+  public static String getFullTableName(Table table) {
+    String tablename = table.getName();
+    if (table.getSchema() != null) {
+      tablename = table.getSchema().getName() + "." + tablename;
+    }
+    return tablename;
+  }
+
+   
+/**
+ * Returns the <code>ValueExpressionColumn</code> with the given
+ * <code>columnName</code> from the given <code>tableExpression</code>'s
+ * <code>columnList</code> or, if the given <code>tableExpression</code>'s
+ * <code>columnList</code> does not contain a
+ * <code>ValueExpressionColumn</code> with the given <code>columnName</code>,
+ * creates a new <code>ValueExpressionColumn</code> with the given
+ * <code>columnName</code> and returns it.
+ * 
+ * @param columnName 
+ * @param tableExpr optional <code>TableExpression</code>, if provided the
+ *      existing <code>ValueExpressionColumn</code> with the given
+ *      <code>columnName</code> will be returned from the
+ *      <code>tableExpr</code>'s <code>columnList</code>
+ * 
+ * @return a <code>ValueExpressionColumn</code> - already existing or newly
+ *      created
+ * 
+ */
+public static ValueExpressionColumn getOrCreateColumnExpression(String columnName, TableExpression tableExpr)
+{
+    ValueExpressionColumn newCol = null;
+    
+    if (columnName != null) 
+    {
+        // first try to find a column (not in the depth of the database, though)
+        if (tableExpr != null && tableExpr.getColumnList() != null)
+        {
+            newCol = getColumnExpressionForName(tableExpr, columnName);
+        }
+    }
+    
+    // if no existing column was found create one and don't attach it to the tableExpr
+    if (newCol == null)
+    {
+        newCol = StatementHelper.createColumnExpression(columnName);
+// in question if we want the references from column to table
+// or the table have this column added to its exposed columnList
+// we don't want to mess with the exposed columnList though!!! (ordering, names, types!
+// will be added to table's exposedColumnList from caller of this method anyways, right?
+//          newCol.setTableExpr(tableExpr);
+    }
+    
+    return newCol;
+}
+   
+  
+  /**
+   * Returns the list of Columns that are part of the primary key constraint for
+   * the given table.
+   *
+   * @param table
+   *          the Table for which list of primary key columns needed
+   * @return the list of columns
+   */
+  public static List getPrimaryKeyColumns(Table table) {
+    List primarykeyCols = new ArrayList();
+    if (table instanceof BaseTable) {
+      List list = ((BaseTable) table).getConstraints();
+      Iterator conItr = list.iterator();
+      while (conItr.hasNext()) {
+        Constraint con = (Constraint) conItr.next();
+        if (con instanceof PrimaryKey) {
+          primarykeyCols.addAll(((PrimaryKey) con).getMembers());
+        }
+      }
+    }
+    return primarykeyCols;
+  }
+  
+/**
+ * Returns the <code>ResultColumn</code> contained in the
+ * <code>selectClause</code> of the given <code>QueryExpressionBody</code>,
+ * whose <code>name</code> matches the given <code>columnName</code>
+ * or whose referenced <code>ValueExpression</code> is of type
+ * <code>ValueExpressionColumn</code> and has a <code>name</code> matching
+ * the given <code>columnName</code>.
+ * 
+ * @param tableQuery the TableReference to search for the matching column name
+ * @param columnName the name of the ValueExpressionColumn to search
+ * @return the found <code>ResultColumn</code> <code>null</code>
+ */
+public static ResultColumn getResultColumnForAliasOrColumnName(QueryExpressionBody tableQuery,
+                                                               String columnName) {
+    ResultColumn resultColFound = null;
+
+    if (tableQuery != null && columnName != null) {
+        List resultColList = getResultColumnsOfQueryExpression(tableQuery);
+        Iterator resultColListIter = resultColList.iterator();
+        while (resultColListIter.hasNext() && resultColFound == null) {
+            ResultColumn resultCol = (ResultColumn) resultColListIter.next();
+            String resultColName = resultCol.getName();
+            ValueExpression resultColValExpr = resultCol.getValueExpr();
+            
+            if (StatementHelper.equalSQLIdentifiers(columnName, resultColName)) { 
+                resultColFound = resultCol;
+            }
+            else if (resultColValExpr instanceof ValueExpressionColumn) {
+                ValueExpressionColumn valExprCol = (ValueExpressionColumn) resultColValExpr;
+                String valExprColName = valExprCol.getName();
+                
+                if (StatementHelper.equalSQLIdentifiers(columnName, valExprColName)) {
+                    resultColFound = resultCol;
+                }
+            }
+        }         
+    }
+
+    return resultColFound;
+}
+
+    /**
+     * Returns the <code>ResultColumn</code> contained in the
+     * <code>selectClause</code> of the given <code>QueryExpressionBody</code>,
+     * whose <code>name</code> matches the given <code>columnName</code>.
+     * 
+     * @param tableQuery the TableReference to search for the matching column name
+     * @param columnName the name of the ValueExpressionColumn to search for
+     * @return the found ValueExpressionColumn or <code>null</code>
+     */
+    static public ResultColumn getResultColumnForName(QueryExpressionBody tableQuery,
+                                                                   String columnName) {
+        ResultColumn resultColFound = null;
+
+        if (tableQuery != null && columnName != null) {
+            List resultColList = getResultColumnsOfQueryExpression(tableQuery);
+            Iterator resultColListIter = resultColList.iterator();
+            while (resultColListIter.hasNext() && resultColFound == null) {
+                ResultColumn resultCol = (ResultColumn) resultColListIter.next();
+                String resultColName = resultCol.getName();
+                // check with regards to delimited identifier
+                if (StatementHelper.equalSQLIdentifiers(columnName, resultColName)) {
+                    resultColFound = resultCol;
+                }
+            }         
+        }
+
+        return resultColFound;
+    }
+  
+/**
+ * Returns the <code>ResultColumn</code>s of the given
+ * <code>QueryExpressionBody queryExpr</code>.
+ * <p>
+ * <b>NOTE:</b>
+ * If the given <code>queryExpr</code>'s 
+ * <code>QueryResultSpecification</code> is of type
+ * <code>ResultTableAllColumns</code> ('SELECT * FROM ...') an empty List
+ * will be returned.
+ * </p>
+ * 
+ * @param queryExpr the <code>QueryExpressionBody</code> for which the
+ *      <code>ResultColumn</code>s will be returned
+ * @return the <code>ResultColumn</code>s of the given <code>queryExpr</code>
+ */
+static public List getResultColumnsOfQueryExpression(QueryExpressionBody queryExpr) {
+    List resultColList = new ArrayList();
+
+    if (queryExpr != null) {
+        if (queryExpr instanceof QuerySelect) {
+            QuerySelect select = (QuerySelect) queryExpr;
+            List resultClause = select.getSelectClause();
+            Iterator resultClauseIter  = resultClause.iterator();
+            while (resultClauseIter.hasNext()) {
+                QueryResultSpecification resultSpec = (QueryResultSpecification) resultClauseIter.next();
+                if (resultSpec instanceof ResultColumn) {
+                    ResultColumn resultCol = (ResultColumn) resultSpec;
+                    resultColList.add(resultCol);
+                }
+            }
+        } 
+        else if (queryExpr instanceof QueryCombined) {
+            QueryCombined combinedQ = (QueryCombined) queryExpr;                
+            resultColList.addAll(getResultColumnsOfQueryExpression(combinedQ.getLeftQuery()));
+            resultColList.addAll(getResultColumnsOfQueryExpression(combinedQ.getRightQuery()));
+        }
+        else if (queryExpr instanceof QueryNested) {
+            QueryNested nest = (QueryNested) queryExpr;
+            QueryExpressionBody nestedQuery = nest.getNestedQuery();
+            resultColList.addAll(getResultColumnsOfQueryExpression(nestedQuery));
+        }
+        else {
+            throw new UnsupportedOperationException(TableHelper.class.getName()+"#getColumnExpressionForName(QueryExpressionBody,String) not implemented for TableExpression of type "+
+                            queryExpr.getClass().getName());
+        }
+    }
+
+    return resultColList;
+}
+
+/**
+ * @param tableInDB
+ * @return
+ */
+public static Schema getSchemaForTableInDatabase(TableInDatabase tableInDB)
+{
+    Schema colTblRefSchema = null;
+
+    if (tableInDB.getDatabaseTable() != null
+                    && tableInDB.getDatabaseTable().getSchema() != null)
+    {
+        colTblRefSchema = tableInDB.getDatabaseTable().getSchema();
+    }
+    
+    return colTblRefSchema;
+}
+
+  /**
+   * Returns the name of the <code>Schema</code> that the given
+   * <code>TableExpression</code> is part of or <code>null</code>, if the
+   * given <code>TableExpression</code> has no reference to a
+   * <code>Schema</code> or the referenced <code>Schema</code>'s name is
+   * <code>null</code>.
+   *
+   * @param tableExpr
+   * @return the <code>Schema</code> name or <code>null</code>
+   */
+  public static String getSchemaNameForTableExpression(TableExpression tableExpr) {
+    String schemaName = null;
+    if (tableExpr instanceof TableInDatabase) {
+      TableInDatabase tableInDB = (TableInDatabase) tableExpr;
+      Table table = tableInDB.getDatabaseTable();
+      if (table != null) {
+        Schema schema = table.getSchema();
+        if (schema != null) {
+          schemaName = schema.getName();
+        }
+      }
+    }
+    return schemaName;
+  }
+  
+  /**
+   * Gets the table object from the given list of table references that is
+   * associated with (contains) a column with the given table and column name.
+   * If the table name is null or blank, look through all the tables for a match
+   * on the column name alone.
+   *
+   * @param aTableName
+   *          a table name to use to search for a table reference
+   * @param aColName
+   *          a column name to use to search for a table reference
+   * @param aTableExprList
+   *          a list of table references to search
+   * @return TableExpression the table expression associated with the column.
+   *         Null if not found
+   */
+  public static TableExpression getTableExpressionForNamedColumn(
+      String aTableName, String aColName, List aTableExprList) {
+    TableExpression tableExpr = null;
+    Column rdbColumn = null;
+
+    // Scan the list of tables.
+    boolean foundIt = false;
+    Iterator tableExprListIter = aTableExprList.iterator();
+    while (tableExprListIter.hasNext() && foundIt == false) {
+      // See if we have a match by table name.
+      tableExpr = (TableExpression) tableExprListIter.next();
+      if (aTableName != null && aTableName.length() > 0) {
+        String tableExprName = tableExpr.getName();
+        String tableExprCorrName = null;
+
+        if (tableExpr.getTableCorrelation() != null) {
+          tableExprCorrName = tableExpr.getTableCorrelation().getName();
+        }
+
+        if (StatementHelper.equalSQLIdentifiers(aTableName, tableExprName)
+         || StatementHelper.equalSQLIdentifiers(aTableName, tableExprCorrName)) {
+          foundIt = true;
+        }
+      }
+      // If no table name, use the column to try to find the table.
+      else {
+        if (tableExpr instanceof TableInDatabase) {
+          TableInDatabase dbTable = (TableInDatabase) tableExpr;
+          rdbColumn = getColumnForName(dbTable, aColName);
+          if (rdbColumn != null) {
+            foundIt = true;
+          }
+        }
+      }
+    }
+
+    if (foundIt == false) {
+      tableExpr = null;
+    }
+
+    return tableExpr;
+  }
+
+  /**
+   * Gets the TableExpression object from the given list of table references by
+   * name or correlation name ("AS"-alias). 
+   * @param aTableName
+   *          a table name or alias name to use to search for a table reference
+   * @param aTableExprList
+   *          a list of table references to search
+   * @return TableExpression the table expression associated with the column.
+   *         Null if not found
+   */
+  public static TableExpression getTableExpressionFromTableExprList(String aTableName, List aTableExprList) {
+    TableExpression retTableExpr = null;
+
+    // Scan the list of tables.
+    boolean foundIt = false;
+    Iterator tableExprListIter = aTableExprList.iterator();
+    while (tableExprListIter.hasNext() && foundIt == false) {
+      // See if we have a match by table name.
+      TableExpression tableExpr = null; 
+      tableExpr = (TableExpression) tableExprListIter.next();
+      if (aTableName != null && aTableName.length() > 0) {
+        String tableExprName = tableExpr.getName();
+        String tableExprCorrName = null;
+
+        if (tableExpr.getTableCorrelation() != null) {
+          tableExprCorrName = tableExpr.getTableCorrelation().getName();
+        }
+        //if (aTableName.equalsIgnoreCase(tableExprName) || aTableName.equalsIgnoreCase(tableExprCorrName)) {
+        if (StatementHelper.equalSQLIdentifiers(aTableName, tableExprName)
+         || StatementHelper.equalSQLIdentifiers(aTableName, tableExprCorrName)) {
+            retTableExpr = tableExpr ;
+            foundIt = true;
+        }
+      }
+    }
+    return retTableExpr;
+  }
+
+
+    /**
+       * Retrieves a List of <code>TableExpression</code> s from the given
+       * <code>TableReference</code>.
+       *
+       * @param tableRef
+       * @return
+       */
+      public static List getTableExpressionsInTableReference(TableReference tableRef) {
+        List tableExprList = new ArrayList();
+    
+        if (tableRef instanceof TableExpression) {
+          TableExpression tableExpr = (TableExpression) tableRef;
+          tableExprList.add(tableExpr);
+        }
+    
+        if (tableRef instanceof TableNested) {
+          TableNested nest = (TableNested) tableRef;
+          tableExprList.addAll(getTableExpressionsInTableReference(nest.getNestedTableRef()));
+        }
+    
+        if (tableRef instanceof TableJoined) {
+          TableJoined join = (TableJoined) tableRef;
+          tableExprList.addAll(getTableExpressionsInTableReference(join.getTableRefLeft()));
+          tableExprList.addAll(getTableExpressionsInTableReference(join.getTableRefRight()));
+    
+        }
+    
+        return tableExprList;
+      }
+  
+  /**
+   * Retrieves a List of <code>TableExpression</code>s from the given List of
+   * <code>TableReference</code>s.
+   *
+   * @param tableReferenceList
+   * @return
+   */
+  public static List getTableExpressionsInTableReferenceList(List tableReferenceList) {
+    List tableExprList = new ArrayList();
+
+    for (Iterator tableRefIt = tableReferenceList.iterator(); tableRefIt.hasNext();) {
+      TableReference tableRef = (TableReference) tableRefIt.next();
+
+      tableExprList.addAll(getTableExpressionsInTableReference(tableRef));
+    }
+
+    return tableExprList;
+  }
+
+  /**
+   * Returns the Table from the given SQLTableExpression if there is one
+   * otherwise return null.
+   *
+   * @param tableExpr
+   *          the SQLTableExpression for which the table is needed
+   * @return the table
+   */
+  static public Table getTableForTableExpression(TableExpression tableExpr) {
+    Table table = null;
+    if (tableExpr != null && (tableExpr instanceof TableInDatabase)) {
+      TableInDatabase tableInDB = (TableInDatabase) tableExpr;
+      table = tableInDB.getDatabaseTable();
+    }
+
+    return table;
+  }
+
+  /**
+   * Retrieves the <code>TableInDatabase</code> objects contained in the given
+   * List of <code>TableReference</code>s. This method might be useful to
+   * find all the references to database tables in the FROM-clause of a
+   * <code>QuerySelect</code>.
+   * 
+   * @param tableReferenceList List of <code>TableReference</code> s
+   * @return List of <code>TableInDatabase</code> s contained in the given
+   *         <code>tableReferenceList</code>
+   */
+  public static List getTableInDatabaseInTableReferenceList(List tableReferenceList) {
+    List tableExprList = new ArrayList();
+
+    for (Iterator tableRefIt = tableReferenceList.iterator(); tableRefIt.hasNext();) {
+      TableReference tableRef = (TableReference) tableRefIt.next();
+      tableExprList.addAll(getTableExpressionsInTableReference(tableRef));
+    }
+    
+    // filter out TableInDatabase
+    for (Iterator tableExprIt = tableExprList.iterator(); tableExprIt.hasNext();) {
+        if (!(tableExprIt.next() instanceof TableInDatabase)) {
+            tableExprIt.remove();
+        }
+    }
+    
+    return tableExprList;
+  }
+
+  /**
+   * Returns true if the given column is part of Foreign key constraint.
+   *
+   * @param column
+   *          the Column that needs to check for the Foreign key constraint
+   * @return the Boolean result
+   */
+  public static boolean isForeignKey(Column column) {
+    boolean retValue = false;
+    Table table = column.getTable();
+    List fkCols = getForeignKeyColumns(table);
+    Iterator fkcolItr = fkCols.iterator();
+    while (fkcolItr.hasNext() && retValue == false) {
+      if (column == (Column) fkcolItr.next()) {
+        retValue = true;
+      }
+    }
+    return retValue;
+  }
+
+  /**
+   * Returns true if the given ValueExpressionColumn is part of Foreign key constraint.
+   *
+   * @param colExpr
+   *          the ValueExpressionColumn that needs to check for the Foreign key constraint
+   * @return the Boolean result
+   */
+  public static boolean isForeignKey(ValueExpressionColumn colExpr) {
+    boolean retValue = false;
+    if (colExpr != null && colExpr.getTableExpr() instanceof TableInDatabase) {
+        Column column = getColumnForColumnExpression( colExpr.getTableExpr(), colExpr) ;
+        if (column != null) {
+            retValue = isForeignKey(column) ;
+        }
+    }
+    return retValue;
+  }
+
+/**
+   * Returns true if the given column is part of a primary key constraint.
+   *
+   * @param column
+   *          the Column that needs to check for the primary key constraint
+   * @return the Boolean result
+   */
+  public static boolean isPrimaryKey(Column column) {
+    boolean retValue = false;
+    Table table = column.getTable();
+    List primarykeyCols = getPrimaryKeyColumns(table);
+    Iterator pkcolItr = primarykeyCols.iterator();
+    while (pkcolItr.hasNext() && retValue == false) {
+      if (column == (Column) pkcolItr.next()) {
+        retValue = true;
+      }
+    }
+    return retValue;
+  }
+
+    /**
+       * Returns true if the given ValueExpressionColumn is part of a primary key constraint.
+       *
+       * @param colExpr
+       *          the ValueExpressionColumn that needs to check for the primary key constraint
+       * @return the Boolean result
+       */
+      public static boolean isPrimaryKey(ValueExpressionColumn colExpr) {
+        boolean retValue = false;
+        if (colExpr != null && colExpr.getTableExpr() instanceof TableInDatabase) {
+            Column column = getColumnForColumnExpression( colExpr.getTableExpr(), colExpr) ;
+            if (column != null) {
+                retValue = isPrimaryKey(column) ;
+            }
+        }
+        return retValue;
+      }
+
+    /**
+       * Returns the <code>true</code> if the given <code>tableExpr</code>
+       * is referenced by another <code>ValueExpressionColumn</code>
+       * with the same name as the given <code>referencedByColumnName</code>
+       * 
+       * 
+       * @param tableExpr
+       *            the TableReference searched for the matching column name reference
+       * @param referencedByColumnName
+       *            the String name of the ValueExpressionColumn to be searched in the
+       * list of column references to the given <code>tableExpr</code>
+       * @return <code>true</code>
+       *   if another column was found to reference the given <code>tableExpr</code>
+       * 
+       */
+      static public boolean isTableReferencedByColumnWithName(TableExpression tableExpr,
+              String referencedByColumnName) {
+          boolean colExprFound = false;
+    
+          // Try to find the column in the columnList of the given table.
+          if (tableExpr != null && referencedByColumnName != null) {
+              List tableColList = tableExpr.getValueExprColumns();
+              Iterator tableColListIter = tableColList.iterator();
+              while (tableColListIter.hasNext() && colExprFound == false) {
+                  ValueExpressionColumn tableCol = (ValueExpressionColumn) tableColListIter.next();
+                  String tableColName = tableCol.getName();
+                  if (StatementHelper.equalSQLIdentifiers(referencedByColumnName, tableColName)) {
+                      colExprFound = true;
+                  }
+              }
+          }
+    
+          return colExprFound;
+      }
+
+    /**
+       * Populates the list of ValueExpressionColumn in the given table expression
+       * using the columns in the given Table object
+       *
+       * @param tableInDB
+       *          the TableInDatabase to be populated
+       * @param databaseTable
+       *          the Table object used in populating the tableExpression
+       */
+      public static void populateTableExpressionColumns(TableInDatabase tableInDB,
+          Table databaseTable) {
+          
+        if (databaseTable == null || tableInDB == null) { return; }
+    
+        List rdbColumnList = databaseTable.getColumns();
+        Iterator colItr = rdbColumnList.iterator();
+        List columnList = tableInDB.getColumnList();
+        columnList.clear(); // clean out the previously populated columns
+        SQLQueryModelFactory factory = SQLQueryModelFactory.eINSTANCE;
+        while (colItr.hasNext()) {
+          Column col = (Column) colItr.next();
+          ValueExpressionColumn valueExprColumn = null;
+          
+          // we don't need this anymore, since we'll have a list of only the exposed
+          // columns vs. the list of column references to the table
+    //      ValueExpressionColumn valueExprColumn = TableHelper.getColumnExpressionForColumn(tableExpr, col);
+    //      if (valueExprColumn == null) {
+          
+            valueExprColumn = factory.createValueExpressionColumn();
+            valueExprColumn.setName(col.getName());
+            DataType type = ValueExpressionHelper.copyDataType(col.getDataType());
+            valueExprColumn.setDataType(type);
+            
+            // if this tableInDB will be used in a nested query, e.g.
+            //  "select t1.col1 as c1 from (select col1 from table1) as t1;"
+            // the effective result column of the outer/big select will be "c1"
+            // and we want to be able to know "c1" was derived from table1
+            // we are setting the TableInDatabase that this column was
+            // originally derived from, this reference will be passed on through all
+            // levels of nested queries. We should use a reference called
+            // "derivedFromTableInDatabase"
+            valueExprColumn.setTableInDatabase(tableInDB);
+    
+            columnList.add(valueExprColumn);
+    //      }
+        }
+      }
+
+    /**
+       * Removes a columnExpression from its tableExpression if it has
+       * no other references to objects other than its tableExpression.
+       * 
+       * @param columnExpr
+       */
+      public static void removeColumnExpressionFromTableIfNotReferenced(ValueExpressionColumn col) {
+          boolean isReferenced = false;
+          
+          // if col has its table reference and all the columns references are only 1
+          // this one ref is the table ref and will be deleted
+          if (col != null && col.getTableExpr() != null) {
+    
+            for(Iterator refIt = col.eClass().getEAllReferences().iterator();refIt.hasNext();) {
+                EReference ref = (EReference) refIt.next();
+                if(ref.isMany()) {
+                    EList refList = (EList)col.eGet(ref);
+                    // is there a reference
+                    if (refList.size() > 0) {
+                        isReferenced = true;
+                    }
+                } else {
+                    EObject reference = (EObject) col.eGet(ref);
+                    // is there some reference besides its table
+                    if (reference != null && reference != col.getTableExpr()
+                                    && reference != col.getTableInDatabase()) {
+                        isReferenced = true;
+                    }
+                }
+                
+            }
+            
+            if (!isReferenced) {
+                col.setTableExpr(null);
+            }
+    
+          }
+      }
+
+    /**
+     * Link table references in column expressions to tables in the given
+     * list of tables (that is, the From clause),
+     * copies <code>DataType</code>s as well.
+     * 
+     * <p><b>Note:</b> the given set of <code>ValueExpressionColumn</code>s 
+     * <code>aColumnSet</code> will be modified directly. The resolved
+     * columns will be removed from the set.
+     * </p>
+     * 
+     * <p><b>Note:</b> <code>TableExpression</code>s directly contained in the given
+     * <code>aTableRefList</code> will be given preference before
+     * <code>TableExpression</code>s found contained indeirectly within
+     * <code>TableNested</code>s or <code>TableJoined</code>s, when two
+     * <code>TableReference</code>s with the same <code>name</code> are found.
+     * </p>
+     * 
+     * @param unresolvedColumns will be modified, see NOTE
+     * 
+     * @param aTableRefList a list of tables to use to resolve column references
+     */
+    public static void resolveColumnTableReferences( Collection unresolvedColumns, List aTableRefList ) {
+
+        if (unresolvedColumns == null || unresolvedColumns.isEmpty() == true) { 
+            return; 
+        }
+        
+        // expand joined tables
+        List tableExprList = getTableExpressionsInTableReferenceList(aTableRefList);
+        
+        ValueExpressionColumn col = null;   // column to resolve
+        String colName = null; // the name of column to resolve
+        TableExpression colTblRef = null;   // table referenced by the column
+        TableCorrelation colTblRefCorr = null; // correlation of table referenced by the column, if column was resolved before
+        String colTblRefSchemaName = null;  // the Schema that might be qualified for the column  schema1.table1.col1
+        String colQualifier = null;  // the table qualifier of the column
+        
+        TableExpression refTableFound = null;   // table to match the column
+        boolean isOffLine = getIsOffLine(tableExprList);  // find out if we're in off-line (non-connected) mode
+        
+        for (Iterator colIt = unresolvedColumns.iterator(); colIt.hasNext();)
+        {
+            col = (ValueExpressionColumn) colIt.next();
+            colName = col.getName();
+            colTblRef = col.getTableExpr();
+
+            
+            // first finding table candidate refTableFound
+            
+            if (colTblRef == null)
+            {
+             // If we're off-line and there is only one tableExpr, assume the columns are in it.
+                if (isOffLine && tableExprList.size() == 1)
+                {
+                    refTableFound = (TableExpression) tableExprList.get(0);
+                    // don't check here if the table found really 
+                    // has a column with that name, part of semantic check
+                }
+                else
+                {
+                    // maybe one of the tables has a column with the same name
+                    // only one!
+                    
+                    // if we have the real database columns resolved, we check
+                    // for other column in the tables exposed columnList
+                    // if we run without database connected, we might have no
+                    // columns in the tables exposed columnList (tables not resolved)
+                    // in that case we are checking for other columns that refer
+                    // to that table : check disconnected mode
+                    refTableFound = findTableExpressionForColumnName(tableExprList, colName, true);                    
+                }
+                
+                // The table ref found is not valid if it is a query select that contains the column.
+                if (refTableFound != null && getIsQueryParentOfColumn(refTableFound, col) == true) {
+                    refTableFound = null;
+                }
+            }
+            // was the column previously resolved?
+            else if (StatementHelper.getQuerySelectForTableReference(colTblRef) != null)
+            {
+                // column was already resolved, we checked that the referenced
+                // tableExpr is part of a fromClause of a QuerySelect
+                refTableFound = colTblRef;
+            }
+            else
+            {
+                colQualifier = colTblRef.getName();
+                colTblRefCorr = colTblRef.getTableCorrelation();
+                
+                // if the column to resolve was resolved already we must 
+                // consider the alias of the columns table ref, if there are
+                // two FROM-tables with the same name, but different aliases
+                // select t1.col1 from table1 t1, table1 t2;
+                // before first resolving:
+                //   col1.getTable() == t1 and
+                //   col1.getTable().getCorrelation() == null
+                // after first resolving:
+                //   col1.getTable() == table1 and 
+                //   col1.getTable().getCorrelation() == t1
+                if (colTblRefCorr != null)
+                {
+                    colQualifier = colTblRefCorr.getName();
+                }
+                
+                
+                // for "select table1.col1 from table1 t1, table1 t2"
+                //  we want "col1" to be associated with "table1 t1"
+                // for "select s2.table1.col1 from s1.table1 t1, s2.table1 t2"
+                //  we want "col1" to be associated with "table1 t2"
+                // for "select table1.col1 from s1.table1 t1, s2.table1 t2"
+                //  where the default Schema is "s1" we want "col1" to be 
+                //  associated with "table1 t1" as we assume no Schema is default schema
+                // for "select t1.col1 from t2 as t1, t1 as t2"
+                //  we want "col1" to be associated with "t2 as t1"
+                //  where in "select s1.t1.col1 from s1.t2 as t1, s1.t1 as t2"
+                //  we want "col1" associated with "s1.t1 as t2"
+                
+
+                // if the user qualified the column name with schema and table
+                // "schema.table.column"
+                // we assume that the table qualifier is the actual table name
+                // rather than its alias/correlation name, like in  
+                // "select s1.t1.col1 from s1.t2, s1.t1", and not likely
+                // "select s1.t1.col1 from s1.t2 as t1, s1.t1 as t2"
+                // and the column would refer to the 2nd table reference "s1.t1"
+                // "select s1.t1.col1 from s2.t1, s1.t1" or if
+                // default schema "s1": "select t1.col1 from s2.t1, t1" 
+                colTblRefSchemaName = getSchemaName(colTblRef);
+                if (colTblRefSchemaName != null)
+                {
+                    //colTblRefSchemaName = getDefaultSchemaName(colTblRef);
+                    // col ref without schema doesn't mean the col belongs to
+                    // default schema!
+                    // "select t2.col1 from table1 as t1, s2.table1 as t2"  with
+                    // "s1" as default schema still allows "t2.col1" to be in
+                    // schema "s2"
+                    
+                    refTableFound = findTableExpressionInTableExpressionList(
+                                    colTblRefSchemaName, colTblRef.getName(),
+                                    tableExprList,
+                                    getDefaultSchemaName(col));
+                }
+                else
+                {
+                    refTableFound = findTableExpressionsByNameOrAlias(
+                                    colQualifier, tableExprList,
+                                    getDefaultSchemaName(col));
+                }
+            }
+            
+            if (refTableFound != null)
+            {
+                            
+                // if refTableFound has been resolved already, it has
+                // a list of exposed columns and we should find
+                // a correlated column with same name to retrieve its
+                // DataType and the derived-from TableInDatabase
+                ValueExpressionColumn corrExposedTableCol =
+                    getColumnExpressionForName(refTableFound, colName);
+                
+                if (corrExposedTableCol != null)
+                {
+                    DataType dataType = 
+                        corrExposedTableCol.getDataType();
+                    // copy by value, cause EMF owner relationship
+                    DataType colDataType = 
+                        ValueExpressionHelper.copyDataType(dataType);
+                
+                    if (colDataType != null)
+                    {
+                        col.setDataType(colDataType);
+                    }
+                    
+                    // set the table that this column is ultimately derived from
+                    if (corrExposedTableCol.getTableInDatabase() != null)
+                    {
+                        col.setTableInDatabase(corrExposedTableCol.getTableInDatabase());
+                    }
+                }
+                
+                col.setTableExpr(refTableFound);
+                // remove the column from the unresolved column set
+                colIt.remove();
+           }
+
+
+        } // end for columnSet iteration
+
+    }
+
+    /**
+     * Resolves the <code>TableReference</code>s of the
+     * <code>ResultTableAllColumns</code> in the given
+     * <code>resultTableList</code> with the <code>TableExpression</code>s
+     * in the given <code>tableExprList</code>.
+     * 
+     * @param resultTableList
+     *            a List of {@link ResultTableAllColumns}
+     * @param tableExprList
+     *            a List of {@link TableExpression}s
+     */
+    public static void resolveResultTableReferences(List resultTableList, List tableExprList)
+    {
+        if (resultTableList == null || resultTableList.isEmpty())
+        {
+            return;
+        }
+        
+        for (Iterator resultTableIt = resultTableList.iterator(); resultTableIt.hasNext();)
+        {
+            ResultTableAllColumns resultTable = (ResultTableAllColumns) resultTableIt.next();
+                
+            if (resultTable != null && resultTable.getName() != null) 
+            {
+                String resultTableName = resultTable.getName();           
+                TableExpression tableExpr = getTableExpressionFromTableExprList(resultTableName, tableExprList);
+                
+                if (tableExpr != null) {
+                    resultTable.setTableExpr(tableExpr);
+                }
+            }
+        }
+    }
+
+    /**
+     * Assigns the alias to the given TableExpression. 
+     * @param tableExpr the TableExpression for which alias needs to be set
+     * @param alias the String value for the alias
+     */
+    public static void setTableAliasInTableExpression(TableExpression tableExpr, String alias) {
+        if (alias.trim().length() > 0) {
+            TableCorrelation tableCorr = SQLQueryModelFactory.eINSTANCE.createTableCorrelation() ;
+            tableCorr.setName(alias.trim().toUpperCase());
+            tableExpr.setTableCorrelation(tableCorr) ;
+        }
+    }
+    
+    /**
+     * Returns a new List with new <code>ValueExpressionColumn</code>s
+     * reflecting the given <code>origColExprList</code> of
+     * <code>ValueExpressionColumn</code>s. This method returns a result List
+     * different from the List that would result of
+     * <code>
+     *   List newList = ArrayList(); // could be any List implementation
+     *   newList.addAll(origColExprList);
+     * </code>
+     * 
+     * @param origColExprList List of <code>ValueExpressionColumn</code>s to be
+     *  copied by value
+     * @return a new List containing new copied <code>ValueExpressionColumn</code>
+     *  objects
+     */
+    private static List copyColumnExprList(List origColExprList)
+    {
+        //return (List)EcoreUtil.copyAll(origColExprList); // didn't copy the 
+        // reference to the derived TableInDatabase
+        List result;
+        if(origColExprList == null){
+            result = new ArrayList();            
+        } else {
+            result = new ArrayList(origColExprList.size());
+            for (Iterator it = origColExprList.iterator(); it.hasNext();)
+            {
+                ValueExpressionColumn original = (ValueExpressionColumn) it.next();
+                ValueExpressionColumn copy = 
+                    (ValueExpressionColumn)EcoreUtil.copy(original);
+                
+                // copy the reference to the derived TableInDatabase
+                // we should have a reference called "derivedFromTableInDatabase"
+                copy.setTableInDatabase(original.getTableInDatabase());
+                
+                result.add(copy);
+            }
+        }
+        return result;
+   }
+
+    /**
+     * Adds <code>ValueExpressionColumn</code>s to the given
+     * <code>queryCombined</code> for each of its queries' exposed columns, see
+     * {@link #exposeEffectiveResultColumns(QueryExpressionBody)}, if both
+     * combined queries have the same number of exposed columns (explicitly by
+     * <code>ResultColumn</code>s or implicit by
+     * <code>ResultTableAllColumns</code> or no
+     * <code>QueryResultSpecification</code> at all - "select * from ...")
+     * If the related <code>ValueExpressionColumn</code> names of both combined
+     * queries don't match, the exposed <code>ValueExpressionColumn</code> will
+     * get the <code>leftQuery</code>'s name.
+     * That methods is used for resolving purposes and useful in case the given
+     * <code>queryCombined</code> is used as a nested query as a
+     * <code>TableReference</code> within another <code>QuerySelect</code>.
+     * 
+     * @param queryCombined
+     * @return List of already or newly exposed <code>ValueExpressionColumn</code>s
+     */
+    private static List exposeResultColumnsOfQueryCombined(QueryCombined queryCombined)
+    {
+        List exposedColumns = new ArrayList();
+        
+        if (queryCombined == null) {return exposedColumns;}
+        
+        List exposedColListLeft = getEffectiveResultColumns(queryCombined.getLeftQuery());
+        List exposedColListRight = getEffectiveResultColumns(queryCombined.getRightQuery());
+        
+        // only if the two combined queries have the same number of columns
+        if (exposedColListLeft != null && exposedColListRight != null
+                        && exposedColListLeft.size() == exposedColListRight.size())
+        {
+            for (int i = 0; i < exposedColListLeft.size(); i++)
+            {
+                ValueExpressionColumn resultColExprLeft = 
+                    (ValueExpressionColumn) exposedColListLeft.get(i);
+                ValueExpressionColumn resultColExprRight = 
+                    (ValueExpressionColumn) exposedColListRight.get(i);
+                
+                String leftName = resultColExprLeft.getName();
+                String rightName = resultColExprRight.getName();
+                
+                
+                String exposedColumnName = null;
+                
+                // the result name is always(?) the left name
+                // except we have a QueryValues on the left side (has no names)
+                if (queryCombined.getLeftQuery() instanceof QueryValues &&
+                               !(queryCombined.getRightQuery() instanceof QueryValues))
+                {
+                    exposedColumnName = rightName;
+                }
+                else
+                {
+                    exposedColumnName = leftName;
+                }
+                
+                // get previously exposed columns or create new one
+                ValueExpressionColumn exposedColumn = 
+                    getOrCreateColumnExpression(exposedColumnName, queryCombined);
+                
+                // get the best fitting inclusive DataType
+                DataType exposedColumnDataType = 
+                    ValueExpressionHelper.resolveCombinedDataType(
+                                    resultColExprLeft.getDataType(),
+                                    resultColExprRight.getDataType());
+                
+                exposedColumn.setDataType(exposedColumnDataType);
+                
+                // there is likely to be no common derived tableInDB for the 
+                // here exposed column, but check if both exposed columns of
+                // the underlying combined query are derived from the same
+                // database table
+                if (resultColExprLeft.getTableInDatabase() 
+                                == resultColExprRight.getTableInDatabase())
+                {
+                    exposedColumn.setTableInDatabase(resultColExprLeft.getTableInDatabase());
+                }
+                
+                exposedColumns.add(exposedColumn);
+            }
+            
+        }
+        // all the previously associated columns (if previously exposed)
+        // are in exposedColumns @see #getOrCreateColumnExpression()
+        //so clear the old columnList to not duplicate and preserve ordering
+        queryCombined.getColumnList().clear();
+        queryCombined.getColumnList().addAll(exposedColumns);
+        
+        return exposedColumns;
+    }
+
+    /**
+     * Adds a <code>ValueExpressionColumn</code> to the given
+     * <code>querySelect</code> for each of its <code>ResultColumn</code>s that
+     * have either a <code>name</code> or reference a
+     * <code>ValueExpressionColumn</code> that has a <code>name</code>. That is
+     * useful in case the given <code>querySelect</code> is used as a nested
+     * query as a <code>TableReference</code> within another
+     * <code>QuerySelect</code>.
+     * If the given <code>querySelect</code> already exposes some or all the
+     * columns of its <code>selectClause</code>, these columns will not be
+     * duplicated.
+     * <p><b>Note:</b> 
+     * If the <code>querySelect</code>'s <code>selectClause</code> does include
+     * <code>ResultColumn</code>s without a <code>name</code> a
+     * <code>ValueExpressionColumn</code> without a <code>name</code> will be
+     * exposed, in order to correctly reflect order and number of resulting
+     * columns for the given <code>QuerySelect</code>.
+     * If the <code>querySelect</code>'s <code>selectClause</code> does include
+     * a <code>ResultTableAllColumns</code>, or no <code>ResultColumn</code>s at
+     * all, the number of <code>ValueExpressionColumn</code>s to be exposed is
+     * determined by the total number of columns in the
+     * <code>querySelect</code>'s <code>fromClause</code>.
+     * </p>
+     * 
+     * @param querySelect
+     * @return List of already or newly exposed <code>ValueExpressionColumn</code>s
+     */
+    private static List exposeResultColumnsOfQuerySelect(QuerySelect querySelect)
+    {
+        List exposedColumns = new ArrayList();
+        
+        if (querySelect == null) { return exposedColumns; }
+        
+        List resultSpecList = querySelect.getSelectClause();
+        
+        // do we have a "SELECT * FROM ...", star query
+        if (resultSpecList == null || resultSpecList.isEmpty())
+        {
+            //StatementHelper.logError(TableHelper.class.getName()
+            //                +" implement exposeResultColumnsOfQuerySelect(QuerySelect)" 
+            //                +" for star queries (\"SELECT * FROM ...\")");
+            
+            // Determine the number of columns implied by table, tables or joins
+            // in the select's from-clause, expose as many columnExpressions with
+            // name = null to make it correct for further resolving
+            for (Iterator it = querySelect.getFromClause().iterator(); it.hasNext();)
+            {
+                TableReference tableRef = (TableReference) it.next();
+                
+                List tableRefCols = getEffectiveResultColumns(tableRef);
+                // Not: exposedColumns.addAll(tableRefCols);
+                // deep copy by value the returned exposed columnList
+                //(EMF ownership doesn't allow shallow copy by reference)
+                exposedColumns.addAll(copyColumnExprList(tableRefCols));                    
+            }
+        }
+        else 
+        {
+            for (Iterator resultIt = resultSpecList.iterator(); resultIt.hasNext();)
+            {
+                
+                QueryResultSpecification resultSpec = (QueryResultSpecification) resultIt.next();
+                
+                // do we have a "SELECT t1.*, ... FROM table AS t1, ..."
+                if (resultSpec instanceof ResultTableAllColumns)
+                {
+                    //StatementHelper.logError(TableHelper.class.getName()
+                    //        +" implement exposeResultColumnsOfQuerySelect(QuerySelect)" 
+                    //        +" for table-star queries (\"SELECT t1.* ... FROM table1 AS t1...\")");
+                    
+                    // Determine the number of columns implied by table, tables or joins
+                    // in the select's from-clause, expose as many columnExpressions with
+                    // name = null to make it correct for further resolving
+                    
+                    ResultTableAllColumns tableAll = (ResultTableAllColumns) resultSpec;
+                    TableExpression tableExpr = tableAll.getTableExpr();
+                    
+                    // has the tableExpr already been resolved? check 
+                    // if tableAll.getTableExpr() only returns a place holder
+                    // we assume a resolved tableExpression would have a exposed
+                    // columnList, therefore if columnList is empty we only have
+                    // a place holder table
+                    if (tableExpr.getColumnList().isEmpty())
+                    {
+                        String tableNameOrAlias = tableAll.getName();
+                        List tableExprList = getTableExpressionsInTableReferenceList(querySelect.getFromClause());
+                        tableExpr = getTableExpressionFromTableExprList(tableNameOrAlias, tableExprList);
+                    }
+                    
+                    List tableExprCols = getEffectiveResultColumns(tableExpr);
+                    // Not: exposedColumns.addAll(tableExprCols);
+                    // deep copy by value the returned exposed columnList
+                    //(EMF ownership doesn't allow shallow copy by reference)
+                    exposedColumns.addAll(copyColumnExprList(tableExprCols));                   
+
+                }
+                else if (resultSpec instanceof ResultColumn) 
+                {
+
+                
+                    ResultColumn resultCol = (ResultColumn) resultSpec;
+                    QueryValueExpression resultColExpr = resultCol.getValueExpr();
+                    String exposedColumnName = null;
+                    TableInDatabase derivedFromTableInDB = null;
+                    
+                    // try to get the alias name of the result column
+                    if (resultCol.getName() != null)
+                    {
+                        exposedColumnName = resultCol.getName();
+                    }
+                    // if it doesn't have an alias, it might have a columnExpr with a name
+                    else if (resultColExpr != null 
+                                    && resultColExpr instanceof ValueExpressionColumn)
+                    {
+                        ValueExpressionColumn colExpr = 
+                            (ValueExpressionColumn) resultColExpr;
+                        //exposedColumnName = colExpr.getName();
+                        // what if "select t1.col1, t2.col1 from table1 t1, table2 t2;"
+                        // then we expose not only COL1 but T1_COL1 and T2_COL1 or so?
+                        // what if we have column name duplications
+                        // we don't do anything about duplicate column names
+                        // that will be different from application to application
+                        // and can't be referenced by name anyway
+                        exposedColumnName = colExpr.getName();
+                    }
+
+                    
+                    // if we found no name, we still must expose a new columnExpr
+                    // how do we generate a column name, ...we don't that's not
+                    // specified by database either, names will be generated
+                    // by application and can therefore not be referenced too
+//                  if (exposedColumnName == null)
+//                  {
+//                      exposedColumnName = "_"+String.valueOf(exposedColumns.size() + 1);
+//                  }                    
+                    
+                    // check if column table reference was resolved already
+                    if (resultColExpr != null 
+                                    && resultColExpr instanceof ValueExpressionColumn)
+                    {
+                        ValueExpressionColumn colExpr = 
+                            (ValueExpressionColumn) resultColExpr;
+                        // was column resolved already?
+                        if (colExpr.getDataType() == null)
+                        {
+                            // if not resolve column reference
+                            HashSet unresolvedColumns = new HashSet();
+                            unresolvedColumns.add(colExpr);
+                            List tableRefList = querySelect.getFromClause();
+                            resolveColumnTableReferences(unresolvedColumns, tableRefList);
+                        }
+                    }               
+                    
+                    // if the result column was derived from a TableInDB column
+                    // keep this information
+                    if (resultColExpr != null 
+                                    && resultColExpr instanceof ValueExpressionColumn)
+                    {
+                        ValueExpressionColumn colExpr = 
+                            (ValueExpressionColumn) resultColExpr;
+                        
+                        // we use the columnExpr's tableRefernce, not parentTable!!!
+                        // tableRef is just an reference, the column's parentTable
+                        // is always just one owner tableExpression that will have
+                        // the column in its columnList, this columnList is not
+                        // a random collection of columns that refer to that table
+                        // but it reflects the exact list of columns in order like
+                        // in the database below
+                        // here: we should have a special reference to a TableInDB
+                        // with name "derivedFromTableInDatabase"
+                        
+                        // get corresponding exposed column of the colExpr's table
+                        ValueExpressionColumn colExprsTableExposedColumn =
+                            getColumnExpressionForName(colExpr.getTableExpr(), colExpr.getName());
+                        // and the tableInDB that it was derived from
+                        if (colExprsTableExposedColumn != null
+                                        && colExprsTableExposedColumn
+                                                        .getTableInDatabase() != null)
+                        {
+                            derivedFromTableInDB = colExprsTableExposedColumn
+                                            .getTableInDatabase();
+                        }
+                        
+                    }
+                    
+                    // create a new ValueExpressionColumn and associate with this
+                    // querySelect or find a already exposed column
+                    ValueExpressionColumn exposedColumn = 
+                        getOrCreateColumnExpression(exposedColumnName, querySelect);
+                                      
+                    // check for datatype
+                    if (resultColExpr != null)
+                    {
+                        DataType resultColDataType = resultColExpr.getDataType();
+                        //was the datatype resolved already?
+                        if (resultColDataType == null) {
+                            ValueExpressionHelper.resolveValueExpressionDatatypeRecursively(resultColExpr);
+                            resultColDataType = resultColExpr.getDataType();
+                        }
+                        DataType exposedColumnDataType = 
+                            ValueExpressionHelper.copyDataType(resultColDataType);
+                        exposedColumn.setDataType(exposedColumnDataType); 
+                    }
+
+                    // we are setting the TableInDatabase that this column was
+                    // originally derived from, we should use a reference called
+                    // "derivedFromTableInDatabase"
+                    exposedColumn.setTableInDatabase(derivedFromTableInDB);
+                            
+                    exposedColumns.add(exposedColumn);
+                }
+            }
+        }
+        
+        // all the previously associated columns (if previously exposed)
+        // are in exposedColumns @see #getOrCreateColumnExpression()
+        // so clear the old columnList to not duplicate and preserve ordering
+        querySelect.getColumnList().clear();
+        querySelect.getColumnList().addAll(exposedColumns);
+        
+        return exposedColumns;
+    }
+
+    /**
+     * Adds <code>ValueExpressionColumn</code>s to the given
+     * <code>queryValues</code> for each of its values in the first
+     * <code>ValuesRow</code>.
+     * @see #exposeEffectiveResultColumns(QueryExpressionBody)
+     * 
+     * That methods is used for resolving purposes and useful in case the given
+     * <code>queryValues</code> is used as a nested query as a
+     * <code>TableReference</code> within another <code>QuerySelect</code> or as
+     * part of a <code>QueryCombined</code>.
+     * 
+     * @param queryValues
+     * @return List of already or newly exposed <code>ValueExpressionColumn</code>s
+     */
+    private static List exposeResultColumnsOfQueryValues(QueryValues queryValues)
+    {
+        List exposedColumns = new ArrayList();
+
+        if (queryValues == null || queryValues.getValuesRowList().isEmpty()) {
+            return exposedColumns;
+        }
+        
+        ValuesRow firstRow = (ValuesRow) queryValues.getValuesRowList().get(0);
+        List firstRowValues = firstRow.getExprList();
+        
+        for (int i = 0; i < firstRowValues.size(); i++)
+        {
+            QueryValueExpression valueExpr = 
+                (QueryValueExpression) firstRowValues.get(i);
+            
+            // figure out the naming of unnamed columns in QueryValues
+            // if we found no name, we still must expose a new columnExpr
+            // how do we generate a column name, ...we don't that's not
+            // specified by database either, names will be generated
+            // by application and can therefore not be referenced too
+//            ValueExpressionColumn exposedCol = 
+//                StatementHelper.createColumnExpression("_"+(i+1));
+            ValueExpressionColumn exposedCol = 
+                StatementHelper.createColumnExpression(null);
+            
+            // was the DataType resolved already?
+            if (valueExpr.getDataType() == null)
+            {
+                ValueExpressionHelper.resolveValueExpressionDatatypeRecursively(valueExpr);
+            }
+            ValueExpressionHelper.copyDataType(valueExpr, exposedCol);
+            
+            exposedColumns.add(exposedCol);
+        }
+        queryValues.getColumnList().clear();
+        queryValues.getColumnList().addAll(exposedColumns);
+        
+        return exposedColumns;
+    }
+
+    /**
+     * Returns the one <code>TableExpression</code> from the given
+     * <code>tableExprList</code>, that has a
+     * <code>ValueExpressionColumn</code> in its <code>columnList</code>
+     * whose name matches the given <code>columnName</code>. If there is more
+     * than one <code>TableExpression</code> found with a matching column,
+     * <code>null</code> will be returned.
+     * @param tableExprList
+     *            the List of tables to check for the specified column
+     * @param columnName
+     *            the name of the column that a <code>TableExpression</code>
+     *            is searched for
+     * 
+     * @return the <code>TableExpression</code> that has a column with the
+     *         given <code>columnName</code>,<code>null</code> if more
+     *         than one or no such table was found in the given
+     *         <code>tableExprList</code>
+     */
+    private static TableExpression findTableExpressionForColumnName(List tableExprList, String columnName)
+    {
+        return findTableExpressionForColumnName(tableExprList, columnName, false);
+    }
+
+    /**
+     * Returns the one <code>TableExpression</code> from the given
+     * <code>tableExprList</code>, that has a
+     * <code>ValueExpressionColumn</code> in its <code>columnList</code>
+     * whose name matches the given <code>columnName</code>. If there is more
+     * than one <code>TableExpression</code> found with a matching column,
+     * <code>null</code> will be returned.
+     * 
+     * @param tableExprList
+     *            the List of tables to check for the specified column
+     * @param columnName
+     *            the name of the column that a <code>TableExpression</code>
+     *            is searched for
+     * @param checkDisconnected
+     *            if <code>true</code> a <code>TableExpression</code> will
+     *            be returned, if it is referenced by another column with the
+     *            same name as the given <code>columnName</code>, that is
+     *            useful if the given <code>tableExprList</code>'s
+     *            <code>TableExpression</code> s have not been populated with
+     *            column in their exposed <code>columnList</code> (if no
+     *            database was connected this information can be missing)
+     * 
+     * @return the <code>TableExpression</code> that has a column with the
+     *         given <code>columnName</code>,<code>null</code> if more
+     *         than one or no such table was found in the given
+     *         <code>tableExprList</code>
+     */
+    private static TableExpression findTableExpressionForColumnName(List tableExprList, String columnName, boolean checkDisconnected)
+    {
+        TableExpression tableFound = null;
+        
+        List tablesReferencedByColumn = null;
+        
+        if (checkDisconnected)
+        {
+            tablesReferencedByColumn = new ArrayList();
+        }
+
+        for (Iterator it = tableExprList.iterator(); it.hasNext();)
+        {
+            TableExpression tableExpr = (TableExpression) it.next();
+            
+            if (checkDisconnected
+                            && isTableReferencedByColumnWithName(tableExpr,
+                                            columnName))
+            {
+                tablesReferencedByColumn.add(tableExpr);
+            }
+            
+            ValueExpressionColumn columnFound = 
+                getColumnExpressionForName(tableExpr, columnName);
+            
+            if (columnFound != null)
+            {
+                // if we did not find one other table already, we found it
+                // if we found one already, but it was the same real table like in
+                // select col1 from table1, table1; we keep the one previously found
+                // but if we found one already and the one we found now are not
+                // representing the same real table, then delete the previously found
+                // and break
+                if (tableFound == null)
+                {
+                    tableFound = tableExpr;
+                }
+                else 
+                {
+                    String tableFoundName = tableFound.getName();
+                    String tableExprName = tableExpr.getName();
+                    if (StatementHelper.equalSQLIdentifiers(tableFoundName, tableExprName) )
+                    {
+                        // we have the same column name in two different tables
+                        // that means we can't tell what table the column is of
+                        tableFound = null;
+                        break;
+                    }
+                    else
+                    {
+                        // check if we have the same table in the same schema
+                        // twice, in that case we keep the first table as
+                        // the one found
+                        // select col1 from table1, table1; or
+                        // select col1 from s1.table1 t1, s1.table1 t2;
+                        // NOT select col1 from s1.table1, s2.table1;
+                        
+                        String tableExprSchema = getSchemaName(tableExpr);
+                        String tableFoundSchema = getSchemaName(tableFound);
+                        String defaultSchema = getDefaultSchemaName(tableExpr);
+                        
+                        if (tableExprSchema == null)
+                        {
+                            tableExprSchema = defaultSchema;
+                        }
+                        if (tableFoundSchema == null)
+                        {
+                            tableFoundSchema = defaultSchema;
+                        }
+                        
+                        if (StatementHelper.equalSQLIdentifiers(tableExprSchema,tableFoundSchema))
+                        {
+                            // we have the same column name in two tables with
+                            // the same name but in different schemas
+                            // that means we can't tell what table the column is of
+                            tableFound = null;
+                            break;
+                        }
+                        
+                    }
+                }
+            }
+        }
+        
+        // if we didn't find a table maybe the reason is that all the
+        // TableInDatabases were not populated because no database is connected
+        // in that case we want to be smart enough to find out about other
+        // columns referring to the table
+        // e.g. "select col1, col2 from tbl1 JOIN tbl2 ON tbl1.col1 = tbl2.col2"
+        // we know that "col1" belongs to "tbl1" and "col2" to "tbl2", right?
+        if (tableFound == null && checkDisconnected)
+        {
+            if (tablesReferencedByColumn != null
+                            && tablesReferencedByColumn.size() == 1)
+            {
+                tableFound = (TableExpression) tablesReferencedByColumn.get(0);
+            }
+        }
+        
+        return tableFound;
+    }
+
+    /**
+       * Finds in the given List of <code>TableExpression</code> s the one
+       * <code>TableExpression</code> with a name that matches the given
+       * <code>tableName</code> and, if given a <code>schemaName</code> is
+       * given, a <code>Schema</code> that name matches the
+       * <code>schemaName</code>. If no <code>schemaName</code> is given, only
+       * a <code>TableExpression</code> without a schema name or with the
+       * current default <code>Schema</code> can match.
+       * (see {@link SQLQueryObject#getSourceInfo()},
+       * {@link SQLQuerySourceInfo#getSqlFormat()},
+       * {@link SQLQuerySourceFormat#getOmitSchema()})
+       * <b>Note:</b> a table can only match if it has no alias, which would cascade
+       * the table name and schema.
+       *
+       * @param schemaName
+       *          optional the schema name of the table to find
+       * @param tableName
+       *          the name of the table to find
+       * @param tableExprList
+       *          the list of <code>TableExpression</code> s to search
+       * @param defaultSchemaName
+       * @return the matching <code>TableExpression</code> or <code>null</code>
+       */
+      private static TableExpression findTableExpressionInTableExpressionList(
+                                                                               String schemaName,
+                                                                               String tableName,
+                                                                               List tableExprList,
+                                                                               String defaultSchemaName)
+        {
+            TableExpression foundTableExpr = null;
+            SQLQuerySourceFormat sourceFormat = null;
+    
+            if (tableName != null && tableExprList != null)
+            {
+    
+                for (Iterator tableIt = tableExprList.iterator(); tableIt.hasNext();)
+                {
+                    TableExpression tableExpr = (TableExpression) tableIt.next();
+                    String tableExprName = tableExpr.getName();
+    
+                    // get the omitSchema from the table
+                    if (tableExpr.getSourceInfo() != null
+                                    && tableExpr.getSourceInfo().getSqlFormat() != null)
+                    {
+                        sourceFormat = tableExpr.getSourceInfo().getSqlFormat();
+                        if (sourceFormat.getOmitSchema() != null
+                                        && sourceFormat.getOmitSchema().length() > 0)
+                        {
+                            defaultSchemaName = sourceFormat.getOmitSchema();
+                        }
+                    }
+    
+                    if (StatementHelper.equalSQLIdentifiers(tableName, tableExprName))
+                    {
+    
+                        // attention: no schemaName given can match any schema name of
+                        // the tables here (doesn't mean the defaultSchema as the column
+                        // trying to be resolved doesn't have to be qualified with the
+                        // schema), but if the schemaName was given it is binding and
+                        // we assume the given
+    
+                        if (schemaName != null)
+                        {
+                            String tableExprSchemaName = getSchemaName(tableExpr);
+    
+                            if (tableExprSchemaName == null)
+                            {
+                                tableExprSchemaName = defaultSchemaName;
+                            }
+    
+                            // How to generate the SQL for column?
+                            // First find out if column is in more than one table.
+                            // If the column is unique, don't qualify. 
+                            // If the column's table has an alias, use the alias as the 
+                            // qualifier, ie t1.col1
+                            // If there are two or more tables with the same name,
+                            // qualify with the schema if that's different.
+    
+                            // table alias must be null
+                            if (StatementHelper.equalSQLIdentifiers(schemaName, tableExprSchemaName)
+                             && tableExpr.getTableCorrelation() == null)
+                            {
+                                foundTableExpr = tableExpr;
+                                break;
+                            }
+                        }
+                        else
+                        // no schema to compare
+                        {
+                            // table alias must be null
+                            if (tableExpr.getTableCorrelation() == null)
+                            {
+                                // give priority to previously found
+                                //if (foundTableExpr == null)
+                                //    foundTableExpr = tableExpr;
+                                
+                                // the schema name has to match exactly or has to be
+                                // absent
+                                String tableSchema = getSchemaName(tableExpr);
+                                if (tableSchema == null
+                                 || StatementHelper.equalSQLIdentifiers(tableSchema, defaultSchemaName))
+                                {
+                                    // we have the table in the default schema or in
+                                    // a schema not specified (implicit default)
+                                    // that's the one, don't look further
+                                    foundTableExpr = tableExpr;
+                                    break;
+                                }
+    
+                            }
+    
+                        }
+    
+                    }
+                }
+            }
+    
+            return foundTableExpr;
+        }
+
+    
+    /**
+     * Returns the default <code>Schema</code> valid for the context of the
+     * <code>QueryStatement</code> that the given <code>queryObject</code> is
+     * part of.
+     * 
+     * @param queryObject
+     * @return the default <code>Schema</code> name that might be omitted
+     */
+    private static String getDefaultSchemaName(SQLQueryObject queryObject)
+    {
+        String defaultSchema = null;
+        
+        if (queryObject.getSourceInfo() != null &&
+                        queryObject.getSourceInfo().getSqlFormat() != null)
+        {
+            defaultSchema =
+                queryObject.getSourceInfo().getSqlFormat().getOmitSchema();
+        }
+        
+        return defaultSchema;
+    }
+    
+    /**
+     * Tries to determines whether or not we are operating in off-line mode by examining the
+     * given list of table expression objects. Off-line mode means that there isn't an instance
+     * of the SQL model reachable from the table objects.  (That is, there is no database 
+     * connection available.)
+     *  
+     * @param aTableExprList the table expression list to examine
+     * @return true when the tables appear to be off-line, otherwise false
+     */
+    private static boolean getIsOffLine(List aTableExprList) {
+        boolean isOffLine = true;
+        
+        if (aTableExprList != null && aTableExprList.size() > 0) {
+            // Look for a TableInDatabase in the list.  If find one, see if the Table
+            // object attached to it is (indirectly) attached to a Database object.
+            // If so, we assume we are on-line.
+            Iterator tableExprListIter = aTableExprList.iterator();
+            while (tableExprListIter.hasNext() && isOffLine == true) {
+                TableExpression tableExpr = (TableExpression) tableExprListIter.next();
+                if (tableExpr instanceof TableInDatabase) {
+                    TableInDatabase tableInDB = (TableInDatabase) tableExpr;
+                    Table table = tableInDB.getDatabaseTable();
+                    if (table != null) {
+                        Schema schema = table.getSchema();
+                        if (schema != null) {
+                            if (schema.getDatabase() != null 
+                              || (schema.getCatalog() != null && schema.getCatalog().getDatabase() != null)
+                               ) {
+                                isOffLine = false;
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        
+        return isOffLine;
+    }
+
+    /**
+     * Gets whether or not the given table reference is a query select that contains the given column.
+     * 
+     * @param tblRef the table reference to check
+     * @param col the column to check
+     * @return true when the table reference is a query select that contains the column otherwise false
+     */
+    private static boolean getIsQueryParentOfColumn(TableReference tblRef, ValueExpressionColumn col) {
+        boolean isQueryParent = false;
+        
+        if (tblRef instanceof QuerySelect) {
+            EObject colContainerObj = col.eContainer();
+            while (colContainerObj != null && !(colContainerObj instanceof QuerySelect)) {
+                colContainerObj = colContainerObj.eContainer();
+            } 
+            
+            if (colContainerObj == tblRef) {
+                isQueryParent = true;
+            }
+        }
+        
+        return isQueryParent;
+    }
+    
+    /**
+     * Convenience method:
+     * Returns the Schema name of the given <code>TableExpression</code> if the
+     * given <code>tableExpr</code> is of type {@link TableInDatabase}, or
+     * <code>null</code> if the given <code>tableExpr</code> has no
+     * <code>Schema</code> (or no reference to a real <code>Table</code>)
+     * or the given <code>tableExpr</code> was not of type
+     * <code>TableInDatabase</code>.
+     * 
+     * @param tableExpr
+     * @return the <code>tableExpr</code>s <code>Schema</code> name or <code>null</code>
+     */
+    private static String getSchemaName(TableExpression tableExpr)
+    {
+        String schemaName = null;
+
+        if (tableExpr instanceof TableInDatabase)
+        {
+            TableInDatabase tableInDB = (TableInDatabase) tableExpr;
+            Table dbTable = tableInDB.getDatabaseTable();
+
+            if (dbTable != null)
+            {
+                Schema schema = dbTable.getSchema();
+                if (schema != null)
+                {
+                    schemaName = schema.getName();
+                }
+            }
+        }
+        return schemaName;
+    }
+
+} // End Class
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/helper/ValueExpressionHelper.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/helper/ValueExpressionHelper.java
new file mode 100644
index 0000000..59a91a2
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/helper/ValueExpressionHelper.java
@@ -0,0 +1,2491 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 2011 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.query.helper;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.ApproximateNumericDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.BinaryStringDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.CharacterStringDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.DateDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.FixedPrecisionDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.IntegerDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.NumericalDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.PredefinedDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.PrimitiveType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesFactory;
+import org.eclipse.datatools.modelbase.sql.datatypes.TimeDataType;
+import org.eclipse.datatools.modelbase.sql.query.MergeSourceTable;
+import org.eclipse.datatools.modelbase.sql.query.MergeTargetTable;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.QueryInsertStatement;
+import org.eclipse.datatools.modelbase.sql.query.QueryMergeStatement;
+import org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition;
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.QueryValues;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionNested;
+import org.eclipse.datatools.modelbase.sql.query.TableExpression;
+import org.eclipse.datatools.modelbase.sql.query.TableInDatabase;
+import org.eclipse.datatools.modelbase.sql.query.TableReference;
+import org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCase;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearch;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombinedOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionDefaultValue;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNullValue;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionVariable;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+import org.eclipse.datatools.modelbase.sql.tables.Column;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+
+
+/**
+ * This class provides a set of utility methods for dealing with
+ * Value Expression objects.
+ */
+public class ValueExpressionHelper {
+
+    
+protected static HashMap FunctionReturnType = createFunctionReturnTypeMap();
+
+/** CHECK IMPLEMENTATION! CODE UNTESTED!
+ * Determines whether a given value expression is already a column expression
+ * and if so, adds it to the passed in list.  Otherwise, get the columns
+ * and addAll to the list
+ * @param List list of columns
+ * @param aValueExpr QueryValueExpression whose columns will be added to the list
+ */
+public static void addExpressionsToList(List columnList,
+                                        QueryValueExpression aValueExpr) {
+  if ( aValueExpr instanceof ValueExpressionColumn ) {
+       columnList.add( aValueExpr );
+  } else {
+       columnList.addAll(getColumnsFromValueExpression(aValueExpr));
+  }
+}
+
+/**
+ * Returns a copy of the given <code>valueExpr</code> using
+ * {@link EcoreUtil#copy(org.eclipse.emf.ecore.EObject)}.
+ * @param valueExpr
+ * @return a copy of the given <code>valueExpr</code>
+ */
+public static QueryValueExpression cloneQueryValueExpression ( QueryValueExpression valueExpr) {
+
+//  throw new UnsupportedOperationException(ValueExpressionHelper.class.getName()+"#cloneQueryValueExpression() not implemented and not to be used!");
+
+    QueryValueExpression clone = null;
+    
+    if (valueExpr != null)
+    {
+        DataType dataType = valueExpr.getDataType();
+        DataType dataTypeCopy = copyDataType(dataType);
+
+        // we don't want the DataType to be copyed by reference, EMF ownership
+        // would cause the DataTuype to be removed from original valueExpr when
+        // the cloned value expr gets a reference to it
+        valueExpr.setDataType(null);
+        
+        clone = (QueryValueExpression) EcoreUtil.copy(valueExpr);
+        
+        valueExpr.setDataType(dataType);
+        clone.setDataType(dataTypeCopy);
+    }
+    
+    return clone;
+}
+
+
+
+
+/**
+ * Returns a copy of the given <code>datatype</code> using
+ * {@link EcoreUtil#copy(org.eclipse.emf.ecore.EObject)}.
+ * @param dataType
+ * @return a copy of the given <code>datatype</code>
+ */
+public static DataType copyDataType(DataType dataType)
+{
+    DataType copy = null;
+    
+    if (dataType != null)
+    {
+        copy = (DataType) EcoreUtil.copy(dataType);
+    }
+    
+    return copy;
+}
+
+/**
+ * Attempts to copy the datatype from one given value expression to another
+ * using {@link EcoreUtil#copy(org.eclipse.emf.ecore.EObject)}.
+ * The type is not copied if the source expression does not exist or
+ * its datatype is not set.
+ * @param aSourceExpr the value expression whose datatype we want to copy
+ * @param aTargetExpr the value expression whose datatype we want to set
+ */
+public static void copyDataType( QueryValueExpression aSourceExpr, QueryValueExpression aTargetExpr ) {
+  if (aSourceExpr != null && aSourceExpr.getDataType() != null) {
+      DataType dataType = aSourceExpr.getDataType();
+      DataType dataTypeCopy = copyDataType(dataType);
+      aTargetExpr.setDataType( dataTypeCopy );
+  }
+}
+
+/** CHECK IMPLEMENTATION! CODE UNTESTED!
+ * Method to obtain the column expressions from a SearchCondition
+ * @param aSearchCond QuerySearchCondition whose columns we need to get
+ * @return List list of ValueExpressionColumns
+ */
+public static List getColumnsFromSearchCondition( QuerySearchCondition aSearchCond) {
+
+    List columns = new ArrayList();
+    QuerySearchCondition sc = aSearchCond;
+    // Check if we have a "combined" condition (that is, two conditions combined 
+    // by AND or OR).  If so, process each side of the condition separately.
+    if (sc instanceof SearchConditionCombined) {
+        QuerySearchCondition left = ((SearchConditionCombined)sc).getLeftCondition();
+        QuerySearchCondition right = ((SearchConditionCombined)sc).getRightCondition();
+
+        columns.addAll(getColumnsFromSearchCondition(left));
+        columns.addAll(getColumnsFromSearchCondition(right));
+    } 
+    // [161670] bgp 19Oct2006 - begin
+    // Handle a "nested" condition, that is, a condition in parens.  Get the nested
+    // condition and process it.
+    else if (sc instanceof SearchConditionNested) {
+        QuerySearchCondition nested = ((SearchConditionNested)sc).getNestedCondition();
+        columns.addAll(getColumnsFromSearchCondition(nested));
+    }
+    // [161670] bgp 19Oct2006 - end
+    // Handle a "basic" predicate.  A basic predicate has a simple 
+    // relational operator (ie, "=").
+    else if (sc instanceof PredicateBasic) {
+        QueryValueExpression valueExpr = ((PredicateBasic)sc).getLeftValueExpr();
+        addExpressionsToList(columns, valueExpr);
+
+        valueExpr = ((PredicateBasic)sc).getRightValueExpr();
+        addExpressionsToList(columns, valueExpr);
+    } 
+    // Handle a BETWEEN predicate.
+    else if (sc instanceof PredicateBetween) {
+        // [161670] bgp 19Oct2006 - begin
+        QueryValueExpression valueExpr = ((PredicateBetween)sc).getLeftValueExpr();
+        addExpressionsToList(columns, valueExpr);
+        // [161670] bgp 19Oct2006 - end
+        QueryValueExpression lower =
+            (QueryValueExpression)((PredicateBetween)sc).getRightValueExpr1();
+        addExpressionsToList(columns, lower);
+        QueryValueExpression upper =
+            (QueryValueExpression)((PredicateBetween)sc).getRightValueExpr2();
+        addExpressionsToList(columns, upper);
+    } 
+    // Handle a IN predicate.
+    else if (sc instanceof PredicateInValueList) {
+        QueryValueExpression valueExpr = ((PredicateInValueList)sc).getValueExpr();
+        addExpressionsToList(columns, valueExpr);
+
+        List inValues = ((PredicateInValueList)sc).getValueExprList();
+        Iterator ivIter = inValues.iterator();
+        while (ivIter.hasNext()) {
+            QueryValueExpression inExpr = (QueryValueExpression)ivIter.next();
+            addExpressionsToList(columns, inExpr);
+        }
+    }
+    // Handle a LIKE predicate.
+    else if (sc instanceof PredicateLike) {
+        QueryValueExpression valueExpr = ((PredicateLike)sc).getMatchingValueExpr();
+        addExpressionsToList(columns, valueExpr);
+        valueExpr = (QueryValueExpression)((PredicateLike)sc).getPatternValueExpr();
+        addExpressionsToList(columns, valueExpr);
+    } 
+    // Handle a IS NULL predicate.
+    else if (sc instanceof PredicateIsNull) {
+        QueryValueExpression valueExpr = ((PredicateIsNull)sc).getValueExpr();
+        addExpressionsToList(columns, valueExpr);
+    }
+    
+    return columns;
+}
+
+/** CHECK IMPLEMENTATION! CODE UNTESTED!
+ * Method to obtain the column expressions from a generic ValueExpression
+ * Note that only the value expressions listed below can contain columns
+ * within them.  All other value expressions should return an empty list.
+ * @param valueExpr QueryValueExpression whose columns we need to get
+ * @return List list of ValueExpressionColumns
+ */
+public static List getColumnsFromValueExpression( QueryValueExpression valueExpr) {
+
+  List columns = new ArrayList();
+  if (valueExpr instanceof ValueExpressionColumn) {
+     columns.add(valueExpr);
+  }
+  else  if (valueExpr instanceof ValueExpressionFunction) {
+     columns.addAll(getVEFunctionColumns( (ValueExpressionFunction)valueExpr ));
+  }
+  else if (valueExpr instanceof ValueExpressionCombined) {
+     columns.addAll(getVECombinedColumns( (ValueExpressionCombined)valueExpr ));
+  }
+  else if (valueExpr instanceof ValueExpressionCast) {
+     columns.addAll(getVECastColumns( (ValueExpressionCast)valueExpr ));
+  }
+  else if (valueExpr instanceof ValueExpressionCase) {
+     columns.addAll(getVECaseColumns( (ValueExpressionCase)valueExpr ));
+  }
+  else if (valueExpr instanceof ValueExpressionLabeledDuration) {
+     columns.addAll(getVELabeledDurationColumns( (ValueExpressionLabeledDuration)valueExpr ));
+  }
+  return columns;
+}
+
+/** CHECK IMPLEMENTATION! CODE UNTESTED!
+ * Method to obtain the string table name/s from a ValueExpression
+ */
+public static List getTableNamesFromExpression (QueryValueExpression valueExpr) {
+
+  List tableNames = new ArrayList();
+
+  List columnExpr = getColumnsFromValueExpression( valueExpr );
+  if ( !columnExpr.isEmpty() ) {
+     // now get the table names for each column expression
+     Iterator cIter = columnExpr.iterator();
+     while ( cIter.hasNext() ) {
+        ValueExpressionColumn aColumn =
+          (ValueExpressionColumn)cIter.next();
+        String aTableName = ((TableInDatabase)aColumn.getTableExpr()).getName();
+        if ( !tableNames.contains(aTableName) || tableNames.isEmpty() )
+           tableNames.add(aTableName);
+     }
+  }
+  return tableNames;
+}
+/** CHECK IMPLEMENTATION! CODE UNTESTED!
+ * Method to obtain the table references from a ValueExpression
+ */
+public static List getTableRefsFromExpression (QueryValueExpression valueExpr) {
+
+  List tableRefs = new ArrayList();
+
+  List columnExpr = getColumnsFromValueExpression( valueExpr );
+  if ( !columnExpr.isEmpty() ) {
+     // now get the table references for each column expression
+     Iterator cIter = columnExpr.iterator();
+     while ( cIter.hasNext() ) {
+        ValueExpressionColumn aColumn =
+          (ValueExpressionColumn)cIter.next();
+        TableReference aTableRef = aColumn.getTableExpr();
+        if (aTableRef != null) {
+           tableRefs.add(aTableRef);
+        }
+     }
+  }
+  return tableRefs;
+}
+
+/** CHECK IMPLEMENTATION! CODE UNTESTED!
+ * Extracts and returns a list of column reference objects from the given
+ * ValueExpressionCase object.
+ * @param aValExpr the CASE expression to process
+ * @return a list of ValueExpressionColumn objects
+ */
+public static List getVECaseColumns( ValueExpressionCase aValExpr ) {
+  List contentList = null;
+  Iterator contentListIter = null;
+  List columnList = new ArrayList();
+
+  // The model structure of the "searched" case and "simple" case
+  // are different, so we handle them separately.
+  // @d278068 bgp 20Jan2004 - begin
+
+  // Process a searched case expression.
+  if (aValExpr instanceof ValueExpressionCaseSearch) {
+    // A "searched" case looks like this:
+    //  CASE
+    //    WHEN EDLEVEL < 15 THEN 'Secondary'
+    //    WHEN EDLEVEL < 19 THEN 'College'
+    //    ELSE 'Post graduate'
+    //  END
+
+    // Process the "contents" list.  In the example above,
+    // the contents list is all of the "WHEN EDLEVEL < n THEN 'Xxxxxx'"
+    // clauses.
+    contentList = ((ValueExpressionCaseSearch) aValExpr).getSearchContentList();
+    contentListIter = contentList.iterator();
+    ValueExpressionCaseSearchContent searchedWhen;
+    QuerySearchCondition searchCondition;
+    QueryValueExpression resultExpr;
+    while (contentListIter.hasNext()) {
+      // Process a single WHEN clause, ie "WHEN EDLEVEL < 15 THEN 'Secondary'"
+      searchedWhen = (ValueExpressionCaseSearchContent) contentListIter.next();
+
+      // Get the search condition from WHEN clause (ie, EDLEVEL < 15)
+      // and add any columns that it contains to the column list.
+      searchCondition = searchedWhen.getSearchCondition();
+      if (searchCondition != null) {
+        columnList.addAll( getColumnsFromSearchCondition( searchCondition ));
+      }
+
+      // Get the result expression from the WHEN clause (ie 'SECONDARY')
+      // and add any columns it contains to the column list.
+      resultExpr = searchedWhen.getValueExpr();
+      if (resultExpr instanceof ValueExpressionColumn) {
+        columnList.add( resultExpr );
+      }
+      else {
+        columnList.addAll( getColumnsFromValueExpression( resultExpr ));
+      }
+    } // end while
+  }
+  // Process a simple case expression.
+  else {
+    // A "simple" case looks like this:
+    //   CASE SUBSTR( WORKDEPT,1,1 )
+    //     WHEN 'A' THEN 'Administration'
+    //     WHEN 'H' THEN 'Human Resources'
+    //      ...
+    //     ELSE 'Unknown'
+    //   END
+
+    // Process the case operand expression.  In the example above,
+    // the case operand expression is "SUBSTR( WORKDEPT,1,1 )".
+    QueryValueExpression operandExpr = ((ValueExpressionCaseSimple) aValExpr).getValueExpr();
+    if (operandExpr instanceof ValueExpressionColumn) {
+      columnList.add( operandExpr );
+    }
+    else {
+      columnList.addAll( getColumnsFromValueExpression( operandExpr ));
+    }
+
+    // Process the "contents" list.  In the example above,
+    // the contents list is all of the "WHEN 'X' THEN 'Xxxxxxx'"
+    // clauses.
+    contentList = ((ValueExpressionCaseSimple) aValExpr).getContentList();
+    contentListIter = contentList.iterator();
+    ValueExpressionCaseSimpleContent simpleWhen;
+    QueryValueExpression whenExpr;
+    QueryValueExpression resultExpr;
+    while (contentListIter.hasNext()) {
+      // Process a single WHEN clause, ie "WHEN 'A' THEN 'Administration'"
+      simpleWhen = (ValueExpressionCaseSimpleContent) contentListIter.next();
+
+      // Get the WHEN expression (ie, 'A') and add any columns it
+      // contains to the list.
+      whenExpr = simpleWhen.getWhenValueExpr();
+      if (whenExpr instanceof ValueExpressionColumn) {
+        columnList.add( whenExpr );
+      }
+      else {
+        columnList.addAll( getColumnsFromValueExpression( whenExpr ));
+      }
+
+      // Get the result expression (ie, 'Administration') and
+      // add any columns it contains to the list.
+      resultExpr = simpleWhen.getResultValueExpr();
+      if (resultExpr instanceof ValueExpressionColumn) {
+        columnList.add( resultExpr );
+      }
+      else {
+        columnList.addAll( getColumnsFromValueExpression( resultExpr ));
+      }
+    } // end while
+  }
+
+  // Both the searched and simple flavors of CASE have an optional ELSE clause,
+  // so scan it and add any columns it contains to the list.
+  ValueExpressionCaseElse caseElse = aValExpr.getValueExprCaseElse();
+  if (caseElse != null) {
+    QueryValueExpression elseExpr = caseElse.getValueExpr();
+    if (elseExpr instanceof ValueExpressionColumn) {
+      columnList.add( elseExpr );
+    }
+    else {
+      columnList.addAll( getColumnsFromValueExpression( elseExpr ));
+    }
+  }
+  // @d278068 bgp 20Jan2004 - end
+  return columnList;
+}
+
+/** CHECK IMPLEMENTATION! CODE UNTESTED!
+ * Method to obtain the column expressions from a ValueExpressionCast
+ */
+public static List getVECastColumns( ValueExpressionCast aValExpr ) {
+
+  List columnList = new ArrayList();
+  QueryValueExpression castValExpr = aValExpr.getValueExpr();
+  if ( aValExpr instanceof ValueExpressionColumn ) {
+     columnList.add( castValExpr );
+  } else {
+     columnList.addAll(getColumnsFromValueExpression(castValExpr) );
+  }
+  return columnList;
+}
+
+/** CHECK IMPLEMENTATION! CODE UNTESTED!
+ * Method to obtain the column expressions from a ValueExpressionCombined
+ */
+public static List getVECombinedColumns (ValueExpressionCombined combined) {
+
+  List columnList = new ArrayList();
+  // Handle the left side of the VECombined.  We may have to recurse.
+  QueryValueExpression leftVE = combined.getLeftValueExpr();
+  if ( leftVE instanceof ValueExpressionColumn ) {
+     columnList.add( leftVE );
+  } else {
+     columnList.addAll(getColumnsFromValueExpression(leftVE) );
+  }
+
+  // Now handle the right side of the VECombined.  We may have to recurse.
+  QueryValueExpression rightVE = combined.getRightValueExpr();
+  if ( rightVE instanceof ValueExpressionColumn ) {
+     columnList.add( rightVE );
+  } else {
+     columnList.addAll(getColumnsFromValueExpression(rightVE) );
+  }
+
+  return columnList;
+}
+
+/** CHECK IMPLEMENTATION! CODE UNTESTED!
+ * Method to obtain the column expressions from a ValueExpressionFunction
+ */
+public static List getVEFunctionColumns(ValueExpressionFunction funcExpr) {
+
+   List valueExprCols = new ArrayList();
+   List parms = funcExpr.getParameterList();
+      Iterator pIter = parms.iterator();
+      while ( pIter.hasNext() ) {
+         Object parmx = pIter.next();
+         QueryValueExpression parmExpr = (QueryValueExpression)parmx;
+         if (parmx instanceof ValueExpressionColumn) {
+            ValueExpressionColumn colExpr = (ValueExpressionColumn)parmx;
+            valueExprCols.add(colExpr);
+         }
+         else {
+            valueExprCols.addAll(getColumnsFromValueExpression(parmExpr) );
+         }
+      } // end while
+   return valueExprCols;
+}
+
+/** CHECK IMPLEMENTATION! CODE UNTESTED!
+ * Method to obtain the column expressions from a ValueExpressionLabeledDuration
+ */
+public static List getVELabeledDurationColumns(ValueExpressionLabeledDuration labeledDurExpr) {
+
+   List columnList = new ArrayList();
+   QueryValueExpression durExpr = labeledDurExpr.getValueExpr();
+   if (durExpr instanceof ValueExpressionColumn) {
+      columnList.add(durExpr);
+   } else {
+      columnList.addAll(getColumnsFromValueExpression(durExpr) );
+   }
+   return columnList;
+}
+
+/**
+ * Do the numeric data type promotion
+ * @param left
+ * @param right
+ * @return
+ */
+public static DataType numericDataTypePromotion(DataType left, DataType right)
+{
+    DataType retType = doNumericDataTypePromotion(left, right);
+    if(retType == null)
+        retType = doNumericDataTypePromotion(right, left);
+    
+    if(retType == null)
+    {
+        if(left != null)
+            retType = copyDataType(left);
+        else
+            retType = copyDataType(right);
+    }
+    
+    return retType;
+}
+
+/** CHECK IMPLEMENTATION! CODE UNTESTED!
+ * Determine the Column that corresponds to this column expression if there is
+ * one that the given columnExpr is derived from.
+ */
+public static Column resolveColumnFromValueExpression( ValueExpressionColumn aValExpr) {
+
+  String colName = aValExpr.getName();
+  Column theColumn = null;
+  TableInDatabase tableRef = aValExpr.getTableInDatabase();
+  if (tableRef != null) {
+     List columns = tableRef.getDatabaseTable().getColumns();
+     Iterator iter = columns.iterator();
+     while (iter.hasNext()) {
+       Column aColumn = (Column)iter.next();
+       String aColumnName = aColumn.getName();
+       if (StatementHelper.equalSQLIdentifiers(aColumnName, colName )) {
+          theColumn = aColumn;
+          break;
+       }
+     }
+  }
+  return theColumn;
+}
+
+/** CHANGE IMPLEMENTATION! CODE INCORRECT! 
+ * returns the given <code>aDataType</code>, if not <code>null</code>, or
+ * the given <code>anotherDataType</code>. 
+ * <p>
+ * Tries to determine the datatype that can contain values of both given 
+ * <code>DataType</code>s <code>aDataType</code> and
+ * <code>anotherDataType</code>, useful for example for the result columns
+ * of a {@link com.ibm.db.models.sql.query.QueryCombined} or a CASE stmt
+ * @param aDataType one <code>DataType</code>
+ * @param anotherDataType another <code>DataType</code>
+ * @return the inclusive <code>DataType</code>
+ * 
+ * Note:  complex rules for combining data types are documented in the DB2 SQL
+ * Reference under "Rules for Result Data Types"
+ * http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/index.jsp?topic=/com.ibm.db2.luw.sql.ref.doc/doc/r0008480.html
+ * 
+ * To date we've only implemented the rules for combining character strings
+ */
+public static DataType resolveCombinedDataType( DataType aDataType,
+                                            DataType anotherDataType) {
+    /*
+     * If we have two character strings to combine
+     */
+    if (aDataType != null && anotherDataType != null &&
+        aDataType       instanceof CharacterStringDataType &&
+        anotherDataType instanceof CharacterStringDataType)
+    {
+        CharacterStringDataType resolvedDataType = (CharacterStringDataType) copyDataType(aDataType);
+        /*
+         * set length to maximum 
+         */
+        resolvedDataType.setLength(
+                Math.max( ((CharacterStringDataType) aDataType).getLength(), 
+                          ((CharacterStringDataType) anotherDataType).getLength() )
+                                  );
+        PrimitiveType aPrimType = ((PredefinedDataType) aDataType).getPrimitiveType();
+        PrimitiveType anotherPrimType = ((PredefinedDataType) anotherDataType).getPrimitiveType();
+        if ( aPrimType == PrimitiveType.CHARACTER_LITERAL &&
+             anotherPrimType == PrimitiveType.CHARACTER_VARYING_LITERAL             
+           )
+        {
+            resolvedDataType.setPrimitiveType(PrimitiveType.CHARACTER_VARYING_LITERAL); 
+        }
+        else if ( (aPrimType == PrimitiveType.CHARACTER_LITERAL || 
+                   aPrimType == PrimitiveType.CHARACTER_VARYING_LITERAL)
+                   &&
+                   anotherPrimType == PrimitiveType.CHARACTER_LARGE_OBJECT_LITERAL )
+        {
+            resolvedDataType.setPrimitiveType(PrimitiveType.CHARACTER_LARGE_OBJECT_LITERAL);
+        }
+                
+        return resolvedDataType;
+    }    
+    else if (aDataType != null)
+    {
+        return aDataType;
+    }
+    else 
+    {
+        return anotherDataType;
+    }
+}
+/** CHECK IMPLEMENTATION! CODE UNTESTED!
+ * Substitutes the tables in the given table list into the given
+ * Value Expression in place of the one it currently has.
+ * @param valExpr the QueryValueExpression whose table need to be resolved
+ * @param tables List of TableReference tables
+ */
+public static void resolveTablesInValueExpression(QueryValueExpression valExpr,
+                                                            List tables) {
+
+  List columnList = ValueExpressionHelper.getColumnsFromValueExpression( valExpr);
+  boolean useCorrName = false;
+  String searchTableName = "";
+  String colCorrName = "";
+  if ( columnList != null  && !columnList.isEmpty() ) {
+    Iterator cIter = columnList.iterator();
+    while ( cIter.hasNext() ) {
+        ValueExpressionColumn colExpr = (ValueExpressionColumn)cIter.next();
+      TableExpression colTable = colExpr.getTableExpr();             // @d281131 bgp 27May2003
+      if (colTable != null) {                             // @d281131 bgp 27May2003
+        colCorrName = colTable.getTableCorrelation().getName();
+        if ((colCorrName != null) && (colCorrName.length() > 0) ) {
+            searchTableName = colCorrName;
+            useCorrName = true;
+          } else {
+            searchTableName = colExpr.getTableExpr().getName();
+            useCorrName = false;
+        }
+      }                                                   // @d281131 bgp 27May2003
+        Iterator tIter = tables.iterator();
+        TableExpression foundTable = null;
+        while ( tIter.hasNext() &&  foundTable == null) {
+           TableExpression fcTable = (TableExpression)tIter.next();
+           if (useCorrName) {
+              String fcCorrName = fcTable.getTableCorrelation().getName();
+              if ( fcCorrName != null
+                && StatementHelper.equalSQLIdentifiers(fcCorrName, searchTableName)) {
+                 foundTable = fcTable;
+              }
+           } else {
+              String fcTableName = fcTable.getName();
+              if ( fcTableName != null 
+                && StatementHelper.equalSQLIdentifiers(fcTableName, searchTableName)) {
+                 foundTable = fcTable;
+              }
+           }
+        } // end while for table
+        if (foundTable != null) {
+           colExpr.setTableExpr(foundTable);
+        }
+     } // end while for columns
+  }
+}
+
+/** CHECK IMPLEMENTATION! CODE UNTESTED!
+ * Tries to determine and set the datatype of the given Case value
+ * expression.
+ * @param aValExpr a value expression to resolve
+ * @param aTableRefList the current list of From clause table references
+ * @param aDB a RDBDatabase object containing datatype information
+ * @param aDBVersion an object containing database version information
+ */
+public static void resolveValueExpressionCaseDatatype( ValueExpressionCase aValExpr) {
+/*
+ * We'll set the datatype for this value expression to the datatype
+ * of the combined "result expression" that is not NULL and that has a
+ * datatype.
+ */
+    List contentList = null;
+    Iterator contentListIter = null;
+    DataType contentDatatype = null;
+    /* 
+     * The model structure of the "searched case" and
+     * "simple case" are slightly different, so we handle them separately.
+     */
+    if (aValExpr instanceof ValueExpressionCaseSearch) {
+        contentList = ((ValueExpressionCaseSearch) aValExpr).getSearchContentList();
+        contentListIter = contentList.iterator();
+        ValueExpressionCaseSearchContent content;
+        QueryValueExpression contentValExpr;
+        while ( contentListIter.hasNext() ) {
+            content = (ValueExpressionCaseSearchContent) contentListIter.next();
+            contentValExpr = content.getValueExpr();
+            if (!(contentValExpr instanceof ValueExpressionNullValue)) {
+                contentDatatype = copyDataType(
+                        resolveCombinedDataType( contentDatatype, contentValExpr.getDataType() )
+                      );
+            }
+        }
+        /*
+         * Process the "ELSE" value expression of the ELSE y clause, if any
+         */
+        ValueExpressionCaseElse elseContent = ((ValueExpressionCaseSearch) aValExpr).getCaseElse();
+        if (elseContent != null) {
+            contentValExpr = elseContent.getValueExpr();
+            if (!(contentValExpr instanceof ValueExpressionNullValue)) {
+                contentDatatype = copyDataType(
+                        resolveCombinedDataType( contentDatatype, contentValExpr.getDataType() )
+                        );
+            }
+        }
+    }
+    /*
+     * otherwise must be ValueExpressionCaseSimple
+     */
+    else {
+    /*
+     * Step through all the "THEN" value expressions of the WHEN x THEN y clauses
+     */
+        contentList = ((ValueExpressionCaseSimple) aValExpr).getContentList();
+        contentListIter = contentList.iterator();
+        ValueExpressionCaseSimpleContent content;
+        QueryValueExpression contentValExpr;
+        while ( contentListIter.hasNext() ) {
+            content = (ValueExpressionCaseSimpleContent) contentListIter.next();
+            contentValExpr = content.getResultValueExpr();
+            if (!(contentValExpr instanceof ValueExpressionNullValue)) {
+                contentDatatype = copyDataType(
+                        resolveCombinedDataType( contentDatatype, contentValExpr.getDataType() )
+                      );
+            }
+        }
+        /*
+         * Process the "ELSE" value expression of the ELSE y clause, if any
+         */
+        ValueExpressionCaseElse elseContent = ((ValueExpressionCaseSimple) aValExpr).getCaseElse();
+        if (elseContent != null) {
+            contentValExpr = elseContent.getValueExpr();
+            if (!(contentValExpr instanceof ValueExpressionNullValue)) {
+                contentDatatype = copyDataType(
+                        resolveCombinedDataType( contentDatatype, contentValExpr.getDataType() )
+                        );
+            }
+        }
+    }
+
+    if (contentDatatype != null) {
+        aValExpr.setDataType(contentDatatype);
+    }
+}
+
+/** CHECK IMPLEMENTATION! CODE UNTESTED!
+ * Tries to determine and set the datatype of the given column value
+ * expression.
+ * @param aValExpr a value expression to resolve
+ */
+public static void resolveValueExpressionColumnDatatype( ValueExpressionColumn aValExpr ) {
+    
+    //only resolve if the current DataType is null, might be called duplicately
+    if (aValExpr == null || aValExpr.getDataType() != null) {return;}
+    
+    // Make sure that the table reference contained in the column is one
+    // of the From clause tables. If it isn't, get the From clause table
+    // that matches the name of the table in the column and set that as
+    // the column table ref.
+    String colName = aValExpr.getName();
+    TableExpression tableRef = aValExpr.getTableExpr();
+    if (tableRef != null)
+    {
+        if (tableRef instanceof TableInDatabase)
+        {
+            TableInDatabase tableInDB = (TableInDatabase) tableRef;
+            Column rdbColumn = null;
+
+            // Get the Column object.
+            rdbColumn = TableHelper.getColumnForName(tableInDB, colName);
+
+            // Get the datatype from the Column and attach it to the
+            // value expression.
+            if (rdbColumn != null)
+            {
+                DataType datatype = rdbColumn.getDataType();
+                aValExpr.setDataType(copyDataType(datatype));
+            }
+        }
+        // maybe more generally the tableRef is a TableExpression that has been
+        // resolved already, try to use the exposed columnList
+        else
+        {
+            ValueExpressionColumn tableColExpr =
+                TableHelper.getColumnExpressionForName(tableRef, colName);
+            
+            if (tableColExpr != null && tableColExpr.getDataType() != null)
+            {
+                aValExpr.setDataType(copyDataType(tableColExpr.getDataType()));
+            }
+        }
+    }
+
+ }
+
+/** CHECK IMPLEMENTATION! CODE UNTESTED!
+ * Tries to determine and set the datatype of the given "Combined" value
+ * expression.
+ * @param aValExpr a value expression to resolve
+ */
+public static void resolveValueExpressionCombined( ValueExpressionCombined aValExpr) {
+  // Get the left and right value expressions, and if either of them has
+  // a datatype, we will use that as the datatype for this expression.
+  // However we need to treat CONCAT as a special case, since the length
+  // of the result of a CONCAT is the length of the left plus the length
+  // of the right.  There are also special rules regarding "promoting"
+  // the datatype, from CHAR to VARCHAR, for example.
+  QueryValueExpression leftExpr = aValExpr.getLeftValueExpr();
+  QueryValueExpression rightExpr = aValExpr.getRightValueExpr();
+  int oper = aValExpr.getCombinedOperator().getValue();
+  if (oper == ValueExpressionCombinedOperator.CONCATENATE) {
+    resolveValueExpressionConcatDatatype( aValExpr, leftExpr, rightExpr);
+  }
+  else {
+    DataType leftExprDatatype = leftExpr.getDataType();
+    DataType rightExprDatatype = rightExpr.getDataType();
+    aValExpr.setDataType(numericDataTypePromotion(leftExprDatatype, rightExprDatatype));
+  }
+}
+
+/** CHECK IMPLEMENTATION! CODE UNTESTED!
+ * Tries to determine and set the datatype (DataType) of the given
+ * "concatenated" value expression.  This may either be a CONCAT function or a
+ * "combined" value expression with a CONCAT operator.
+ * @param aValueExpr a value expression to resolve
+ * @param aLeftValueExpr the LHS value expression involved in the CONCAT
+ * @param aRightValueExpr the RHS value expression involved in the CONCAT
+ */
+public static void resolveValueExpressionConcatDatatype( QueryValueExpression aValExpr, QueryValueExpression aLeftValExpr, QueryValueExpression aRightValExpr) {
+
+//    throw new UnsupportedOperationException(ValueExpressionHelper.class.getName()+"#resolveValueExpressionCastDatatype() not implemented!");
+  
+    
+  // First check if one or both of the left and right expressions are variables.
+  // If so, check to see if they are part of a pattern like the following
+  // (which is a pattern generated by the UI):
+  //    <column> LIKE '%' CONCAT <varname>             -- 'ends with'
+  // or <column> LIKE <varname> CONCAT '%'             -- 'starts with'
+  // or <column> LIKE '%' CONCAT <varname> CONCAT '%'  -- 'contains'
+  // If so, we want to set the var's datatype to the column's datatype.
+
+   
+  if ((aLeftValExpr instanceof ValueExpressionVariable && aLeftValExpr.getDataType() == null)
+   || (aRightValExpr instanceof ValueExpressionVariable && aRightValExpr.getDataType() == null)) {
+    PredicateLike likePred = null;
+    // @d281231 bgp 27May2003 - begin
+    ValueExpressionCombined combined = aLeftValExpr.getValueExprCombinedLeft();
+    if (combined != null) {
+      // Look for a nearby Like predicate.
+        likePred = combined.getLikePattern();
+      // Try one level higher to see if we have a Like predicate.
+      if (likePred == null) {
+        ValueExpressionCombined combined2 = combined.getValueExprCombinedLeft();
+        if (combined2 == null) {
+          combined2 = combined.getValueExprCombinedRight();
+        }
+        if (combined2 != null) {
+          likePred = combined2.getLikePattern();
+        }
+        // @d281231 bgp 27May2003
+      }
+
+      // If we found the Like predicate, get the "matching" expression
+      // and see if it is a column.  If it is, copy its datatype to our
+      // variables.
+      if (likePred != null) {
+        QueryValueExpression matchExpr = likePred.getMatchingValueExpr();
+        if (matchExpr != null && matchExpr instanceof ValueExpressionColumn) {
+          if (aLeftValExpr instanceof ValueExpressionVariable && aLeftValExpr.getDataType() == null) {
+            copyDataType( matchExpr, aLeftValExpr );
+          }
+          if (aRightValExpr instanceof ValueExpressionVariable && aRightValExpr.getDataType() == null) {
+            copyDataType( matchExpr, aRightValExpr );
+          }
+        }
+      }
+    }
+  }
+
+  // Set this value expression's datatype based on the characteristics of
+  // the left and right sides.
+//  if (aValExpr.getDataType() == null) {
+    DataType leftDatatype = aLeftValExpr.getDataType();
+    DataType rightDatatype = aRightValExpr.getDataType();
+    
+    aValExpr.setDataType(concatCharStringDataTypePromotion(leftDatatype, rightDatatype));
+//    if (leftDatatype != null && rightDatatype != null) {
+//      // There are complicated rules for "promoting" datatypes, for
+//      // example promoting CHAR to VARCHAR or VARCHAR to LONG VARCHAR.
+//      // For now we will assume the datatype is VARCHAR or VARGRAPHIC
+//      // depending on the type of the left side.
+//      // ***TODO: handle type promotion, etc.
+//      int concatLen = -1;
+//      int leftDatatypeLen = 0;
+//      int rightDatatypeLen = 0;
+//      boolean isVarchar = true;
+//
+//      // Get the lengths from the left and right datatypes. The lengths
+//      // are returned as strings.
+//      if (leftDatatype instanceof CharacterStringDataType) {
+//        leftDatatypeLen = ((CharacterStringDataType) leftDatatype).getLength();
+//      }
+//      
+//      if (rightDatatype instanceof CharacterStringDataType) {
+//        rightDatatypeLen = ((CharacterStringDataType) rightDatatype).getLength();
+//      }
+//
+//      // Convert the strings to integers and compute the concatenated length.
+//      if (leftDatatypeLen != 0 && rightDatatypeLen != 0) {
+//        try {
+//          concatLen = leftDatatypeLen + rightDatatypeLen;
+//        }
+//        catch (NumberFormatException e) {
+//        }
+//      }
+//
+//      // Create the new datatype object and set it as our datatype.
+//      if (concatLen > -1) {
+//        DataType datatype = null;
+//          if (isVarchar == true) {
+//              //TODO: supposed to be VARCHAR
+//          datatype = getPredefinedDataTypeForSimpleValue( aValExpr.getSQL() , null);
+//          }
+//          else {
+//              //TODO: supposed to be VARGRAPHIC
+//            datatype = getPredefinedDataTypeForSimpleValue( aValExpr.getSQL() , null);
+//          }
+//
+//          if (datatype != null) {
+//          aValExpr.setDataType( datatype );
+//          }
+//      }
+//    }
+//  }
+}
+
+/** CHECK IMPLEMENTATION! CODE UNTESTED!
+ * Tries to determine and set the datatype (DataType) of the given
+ * value expression.  The datatype may be determined through information
+ * inherent in this object (for example, by examining the content of
+ * a simple value expression), or by checking the datatype of objects
+ * that this object is associated with (for example, by getting the datatype
+ * of a column to which the value expression is compared).
+ * @param aValueExpr a value expression to resolve
+ */
+public static void resolveValueExpressionDatatype( QueryValueExpression valExpr) {
+  // Handle each subclass of QueryValueExpression individually.
+
+// TODO: cover all the following ValueExpressionTypes!
+/*
+    ValueExpressionCaseElse;
+    ValueExpressionCaseSearch;
+    ValueExpressionCaseSearchContent;
+    ValueExpressionCaseSimple;
+    ValueExpressionCaseSimpleContent;
+    ValueExpressionCast;
+    ValueExpressionColumn;
+    ValueExpressionCombined;
+    ValueExpressionDefaultValue;
+    ValueExpressionFunction;
+    ValueExpressionLabeledDuration;
+    ValueExpressionNested;
+    ValueExpressionNullValue;
+    ValueExpressionScalarSelect;
+    ValueExpressionSimple;
+    ValueExpressionVariable;
+
+*/        
+    
+
+  // Column value expression
+  if (valExpr instanceof ValueExpressionColumn) {
+    resolveValueExpressionColumnDatatype( (ValueExpressionColumn) valExpr);
+  }
+  // "Combined" value expression
+  else if (valExpr instanceof ValueExpressionCombined) {
+    resolveValueExpressionCombined( (ValueExpressionCombined) valExpr);
+  }
+  // "Nested" value expression
+  else if (valExpr instanceof ValueExpressionNested) {
+      ValueExpressionNested nest = (ValueExpressionNested) valExpr;
+      QueryValueExpression nestedExpr = nest.getNestedValueExpr();
+      if (nestedExpr != null && nestedExpr.getDataType() == null) {
+          resolveValueExpressionDatatype( nestedExpr );
+      }
+      copyDataType(nestedExpr, nest);
+  }
+  // "Default" value expression
+  else if (valExpr instanceof ValueExpressionDefaultValue) {
+    resolveValueExpressionDefaultValueDatatype( (ValueExpressionDefaultValue) valExpr);
+  }
+  // Case value expression
+  else if (valExpr instanceof ValueExpressionCase) {
+    resolveValueExpressionCaseDatatype( (ValueExpressionCase) valExpr);
+  }
+  // Cast value expression
+  else if (valExpr instanceof ValueExpressionCast) {
+    // doesn't do anything here, the datatype is already there
+    //resolveValueExpressionCastDatatype( (ValueExpressionCast) valExpr);
+  }
+  // Function value expression
+  else if (valExpr instanceof ValueExpressionFunction) {
+    resolveValueExpressionFunctionDatatype( (ValueExpressionFunction) valExpr);
+  }
+  // Labeled duration expression
+  else if (valExpr instanceof ValueExpressionLabeledDuration) {
+    resolveValueExpressionLabeledDurationDatatype( (ValueExpressionLabeledDuration) valExpr);
+  }
+  // "Null" value expression
+  else if (valExpr instanceof ValueExpressionNullValue) {
+    resolveValueExpressionNullValueDatatype( (ValueExpressionNullValue) valExpr);
+  }
+  // Simple (literal) value expression
+  else if (valExpr instanceof ValueExpressionSimple) {
+    resolveValueExpressionSimpleDatatype( (ValueExpressionSimple) valExpr );
+  }
+  // Variable value expression
+  else if (valExpr instanceof ValueExpressionVariable) {
+    resolveValueExpressionVariableDatatype( (ValueExpressionVariable) valExpr);
+  }
+  else {
+//      StatementHelper.logError(ValueExpressionHelper.class.getName()+
+//                      "#resolveValueExpressionDatatype(QueryValueExpression) " +
+//                      "not implemented for "+valExpr.getClass().getName());
+  }
+}
+
+/**
+ * Tries to recursively determine and set the datatype (DataType) of the given
+ * value expression.  The datatype may be determined through information
+ * inherent in this object (for example, by examining the content of
+ * a simple value expression), or by checking the datatype of objects
+ * that this object is associated with (for example, by getting the datatype
+ * of a column to which the value expression is compared).
+ * @param aValueExpr a value expression to resolve
+ */
+public static void resolveValueExpressionDatatypeRecursively( QueryValueExpression aValueExpr ) {
+    Class valueExprType = QueryValueExpression.class;
+    Class[] valueExprRefType = new Class[] {valueExprType};
+    Set allValueExprRefs = 
+        StatementHelper.getReferencesViaSpecificReferencePaths(aValueExpr, 
+                        valueExprType, valueExprRefType);
+    allValueExprRefs.add(aValueExpr);
+    
+    int valueExprsUnresolved = 0; 
+
+    // try to resolve at least one ValueExpression per iteration and eventually
+    // resolve the whole tree of ValueExpressions up to the top (or to the root)
+    do
+    {
+        valueExprsUnresolved = allValueExprRefs.size();
+        
+        for (Iterator exprIt = allValueExprRefs.iterator(); exprIt.hasNext();)
+        {
+            QueryValueExpression valueExpr = (QueryValueExpression) exprIt.next();
+            resolveValueExpressionDatatype(valueExpr);
+            
+            if (valueExpr.getDataType() != null) {
+                exprIt.remove();
+            }
+        }
+    }
+    while (valueExprsUnresolved > allValueExprRefs.size());
+    
+}
+
+/** CHECK IMPLEMENTATION! CODE UNTESTED!
+ * Tries to determine and set the datatype of the given "default" value
+ * expression.  Note: this value expression type comes from the DEFAULT
+ * keyword in , which is used in Insert and Update statements.  It's
+ * not a default value expression in the usual sense.
+ * @param aValExpr a value expression to resolve
+ * @param aTableRefList the current list of From clause table references
+ * @param aDB a RDBDatabase object containing datatype information
+ * @param aDBVersion an object containing database version information
+ */
+public static void resolveValueExpressionDefaultValueDatatype( ValueExpressionDefaultValue aValExpr) {
+ 
+  // A SELECT result column can't be a value expression of type DEFAULT,
+  // so we won't try to set the datatype.  DEFAULT is used in Insert and
+  // Update statements.
+}
+
+
+
+/** CHECK IMPLEMENTATION! CODE UNTESTED!
+ * Tries to determine and set the datatype of the given function value
+ * expression.
+ * @param aValExpr a value expression to resolve
+ * @param aTableRefList the current list of From clause table references
+ * @param aDB a RDBDatabase object containing datatype information
+ * @param aDBVersion an object containing database version information
+ */
+public static void resolveValueExpressionFunctionDatatype(ValueExpressionFunction aValExpr)
+{
+    String funcName = aValExpr.getName();
+
+    DataType dataType = aValExpr.getDataType();
+
+    if (dataType == null) {
+    
+        // Get the parameter list, then get the first parameter's datatype name
+        // and length, if they are known.
+        List paramList = aValExpr.getParameterList();
+        int paramSize = paramList.size();
+        List paramDataTypeList = new ArrayList();
+        if (paramSize > 0)
+        {
+            for (int i = 0; i < paramSize; ++i)
+            {
+                QueryValueExpression valExpr = (QueryValueExpression) paramList.get(i);
+                DataType paramDataType = null;
+                if (valExpr != null)
+                {
+                    paramDataType = valExpr.getDataType();
+                }
+                paramDataTypeList.add(paramDataType);
+    
+            }
+        }
+    
+        // ***TODO: load/use the appropriate function helper for the connected
+        // database.
+        dataType = getFuncReturnType(funcName);
+    
+        // NOT a fixed return type function
+        // for first parameter
+        DataType param1DataType = null;
+        PrimitiveType param1PrimType = null;
+        if (paramDataTypeList.size() > 0)
+        {
+            param1DataType = (DataType) paramDataTypeList.get(0);
+        }
+    
+        if (param1DataType != null)
+        {
+            if(param1DataType instanceof PredefinedDataType ){
+                param1PrimType = ((PredefinedDataType) param1DataType).getPrimitiveType();    
+            }
+            else{
+                //it is a user defined type. Can't resolve
+            }
+            param1DataType = copyDataType(param1DataType);
+        }
+    
+        // for second parameter
+        DataType param2DataType = null;
+        PrimitiveType param2PrimType = null;
+        if (paramDataTypeList.size() > 1)
+            param2DataType = (DataType) paramDataTypeList.get(1);
+    
+        if (param2DataType != null)
+        {
+            param2DataType = copyDataType(param2DataType);
+            if(param2DataType instanceof PredefinedDataType ){
+                param2PrimType = ((PredefinedDataType) param2DataType).getPrimitiveType();
+             }
+             else{
+                //it is a user defined type. Can't resolve
+            }
+        }
+    
+        if (dataType == null)
+        {
+            if (FunctionReturnType.containsKey(funcName))
+    
+            {
+                dataType = param1DataType;
+            }
+            else
+            {
+                // Handle the special cases.
+                if (funcName != null) {
+                    if (funcName.equals("AVG") || funcName.equals("SUM"))
+                    {
+                        if (param1DataType instanceof IntegerDataType) 
+                        {
+                            IntegerDataType intDataType = SQLDataTypesFactory.eINSTANCE.createIntegerDataType();
+                            intDataType.setPrimitiveType(PrimitiveType.BIGINT_LITERAL);
+                            dataType = intDataType;
+                        }
+                        else if (param1DataType instanceof ApproximateNumericDataType) 
+                        {
+                            ApproximateNumericDataType doubleDataType = SQLDataTypesFactory.eINSTANCE.createApproximateNumericDataType();
+                            doubleDataType.setPrimitiveType(PrimitiveType.DOUBLE_PRECISION_LITERAL);
+                            dataType = doubleDataType;
+                        }
+                        else if (param1DataType instanceof FixedPrecisionDataType) {
+                            FixedPrecisionDataType decimalDataType = SQLDataTypesFactory.eINSTANCE.createFixedPrecisionDataType();
+                            decimalDataType.setPrimitiveType(PrimitiveType.DECIMAL_LITERAL);
+                            decimalDataType.setPrecision(31);
+                            int scale = ((FixedPrecisionDataType) param1DataType).getScale();
+                            decimalDataType.setScale(scale);
+                            dataType = decimalDataType;
+                        }
+                        else {
+                            dataType = copyDataType(param1DataType);
+                        }
+                    }
+                    else if(funcName.equals("CHAR"))
+                    {
+                        dataType = SQLDataTypesFactory.eINSTANCE.createCharacterStringDataType();
+                        // an arbitrary default length
+                        int length = 254;
+                        if (param1DataType instanceof CharacterStringDataType
+                                && param1DataType != null)
+                        {
+                            length = ((CharacterStringDataType)param1DataType).getLength();
+                        }
+                        else if (param1DataType instanceof DateDataType)
+                        {
+                            length = 10;
+                        }
+                        else if (param1DataType instanceof TimeDataType)
+                        {
+                            if(param1PrimType == PrimitiveType.TIME_LITERAL)
+                            {
+                                length = 8;
+                            }
+                            else if(param1PrimType == PrimitiveType.TIMESTAMP_LITERAL)
+                            {
+                                length = 26;
+                            }
+                        }
+                        else if (param1DataType instanceof IntegerDataType)
+                        {
+                            if (param1PrimType == PrimitiveType.SMALLINT_LITERAL && param2PrimType == PrimitiveType.SMALLINT_LITERAL)
+                            {
+                                length = 6;
+                            }
+                            else if (param1PrimType == PrimitiveType.BIGINT_LITERAL && param2PrimType != PrimitiveType.BIGINT_LITERAL)
+                            {
+                                length = 20;
+                            }
+                            else
+                                length = 11;
+                        }
+                        else if (param1DataType instanceof FixedPrecisionDataType 
+                                && param1DataType != null)
+                        {
+                            length = ((FixedPrecisionDataType)param1DataType).getPrecision() + 2;
+
+                        }
+                        else if (param1DataType instanceof ApproximateNumericDataType)
+                        {
+                            length = 24;
+                        }
+                        length = length > 254 ? 254 : length;
+
+                        ((CharacterStringDataType)dataType).setLength(length);
+                    }
+                    else if (funcName.equals("CEILING") || funcName.equals("CEIL") || funcName.equals("FLOOR"))
+                    {
+                        if (param1DataType instanceof FixedPrecisionDataType)
+                        {
+                            int precision = ((FixedPrecisionDataType) param1DataType).getPrecision();
+                            if (precision < 31)
+                                ((FixedPrecisionDataType) param1DataType).setPrecision(precision + 1);
+                            ((FixedPrecisionDataType) param1DataType).setScale(0);
+                        }
+                        dataType = param1DataType;
+                    }
+                    else if (funcName.equals("MOD"))
+                    {
+                        dataType = SQLDataTypesFactory.eINSTANCE.createIntegerDataType();
+
+                        if (param1DataType instanceof IntegerDataType || param2DataType instanceof IntegerDataType)
+                        {
+                            if (param1PrimType == PrimitiveType.SMALLINT_LITERAL && param2PrimType == PrimitiveType.SMALLINT_LITERAL)
+                            {
+                                ((IntegerDataType) dataType).setPrimitiveType(PrimitiveType.SMALLINT_LITERAL);
+                            }
+                            else if (param1PrimType != PrimitiveType.BIGINT_LITERAL && param2PrimType != PrimitiveType.BIGINT_LITERAL)
+                            {
+                                ((IntegerDataType) dataType).setPrimitiveType(PrimitiveType.INTEGER_LITERAL);
+                            }
+                            else
+                                ((IntegerDataType) dataType).setPrimitiveType(PrimitiveType.BIGINT_LITERAL);
+                        }
+                    }
+                    else if(funcName.equals("MULTIPLY_ALT"))
+                    {
+                        dataType = SQLDataTypesFactory.eINSTANCE.createFixedPrecisionDataType();
+                        ((FixedPrecisionDataType) dataType).setPrimitiveType(PrimitiveType.DECIMAL_LITERAL);
+
+                        if (param1PrimType == PrimitiveType.DECIMAL_LITERAL && param2PrimType == PrimitiveType.DECIMAL_LITERAL)
+                        {
+                            int p1 = ((FixedPrecisionDataType)param1DataType).getPrecision();
+                            int s1 = ((FixedPrecisionDataType)param1DataType).getScale();
+
+                            int p2 = ((FixedPrecisionDataType)param2DataType).getPrecision();
+                            int s2 = ((FixedPrecisionDataType)param2DataType).getScale();
+
+                            int p = (p1 + p2) > 31 ? 31 : (p1 + p2);
+                            int s = s1 + s2;
+                            if(s != 0)
+                            {
+                                if(p1 + p2 > 31)
+                                {
+                                    int t1 = (s > 3 ? 3 : s);
+                                    int t2 = 31 - (p1 - s1 + p2 -s2);
+                                    s = t1 > t2 ? t1 : t2;
+                                }
+                                else
+                                {
+                                    s = s > 31 ? 31 : s;
+                                }
+                            }
+                            ((FixedPrecisionDataType) dataType).setPrecision(p);
+                            ((FixedPrecisionDataType) dataType).setScale(s);
+                        }
+                        else
+                        {
+                            ((FixedPrecisionDataType)dataType).setPrecision(31);
+                            ((FixedPrecisionDataType)dataType).setScale(10);
+                        }                
+                    }
+                    else if (funcName.equals("POWER"))
+                    {
+                        if (param1DataType instanceof IntegerDataType || param2DataType instanceof IntegerDataType)
+                        {
+                            dataType = SQLDataTypesFactory.eINSTANCE.createIntegerDataType();
+
+                            if (param1PrimType != PrimitiveType.BIGINT_LITERAL && param2PrimType != PrimitiveType.BIGINT_LITERAL)
+                            {
+                                ((IntegerDataType) dataType).setPrimitiveType(PrimitiveType.INTEGER_LITERAL);
+                            }
+                            else
+                            {
+                                ((IntegerDataType) dataType).setPrimitiveType(PrimitiveType.BIGINT_LITERAL);
+                            }
+                        }
+                        else
+                        {
+                            dataType = SQLDataTypesFactory.eINSTANCE.createApproximateNumericDataType();
+                            ((ApproximateNumericDataType) dataType).setPrimitiveType(PrimitiveType.DOUBLE_PRECISION_LITERAL);
+                        }
+                    }
+                    else if (funcName.equals("ROUND"))
+                    {
+                        if (param1DataType instanceof FixedPrecisionDataType)
+                        {
+                            int precision = ((FixedPrecisionDataType) param1DataType).getPrecision();
+                            if (precision < 31)
+                                ((FixedPrecisionDataType) param1DataType).setPrecision(precision + 1);
+                        }
+                        dataType = param1DataType;
+                    }
+                    else if (funcName.equals("SIGN"))
+                    {
+                        if (param1DataType instanceof IntegerDataType)
+                        {
+                            dataType = SQLDataTypesFactory.eINSTANCE.createIntegerDataType();
+
+                            ((IntegerDataType) dataType).setPrimitiveType(((IntegerDataType) param1DataType).getPrimitiveType());
+
+                        }
+                        else
+                        {
+                            dataType = SQLDataTypesFactory.eINSTANCE.createApproximateNumericDataType();
+                            ((ApproximateNumericDataType) dataType).setPrimitiveType(PrimitiveType.DOUBLE_PRECISION_LITERAL);
+                        }
+                    }
+                    else if (funcName.equals("CONCAT"))
+                    {
+                        dataType = concatCharStringDataTypePromotion(param1DataType, param2DataType);
+                    }
+                    else
+                    {
+                        dataType = param1DataType;
+                    }
+                }
+            }
+        }
+    
+        aValExpr.setDataType(copyDataType(dataType));
+    }
+}
+
+/** CHECK IMPLEMENTATION! CODE UNTESTED!
+ * Tries to determine and set the datatype of the given labeled duration value
+ * expression.
+ * @param aValExpr a value expression to resolve
+ * @param aTableRefList the current list of From clause table references
+ * @param aDB a RDBDatabase object containing datatype information
+ * @param aDBVersion an object containing database version information
+ */
+public static void resolveValueExpressionLabeledDurationDatatype( ValueExpressionLabeledDuration aValExpr) {
+  // The datatype of a labelled duration is always DECIMAL(15,0).
+  //DataType datatype = DatabaseHelper.getDataType( Types.DECIMAL, "DECimal", "15", "0", aDB );
+  //TODO:review type
+  PredefinedDataType datatype = SQLDataTypesFactory.eINSTANCE.createFixedPrecisionDataType();
+  datatype.setPrimitiveType(PrimitiveType.DECIMAL_LITERAL);  
+  aValExpr.setDataType( datatype );
+}
+
+/** CHECK IMPLEMENTATION! CODE UNTESTED!
+ * Tries to determine and set the datatype (DataType) of each
+ * of the ValueExpressions in the given list of value expression
+ * objects.  This is done by either examing the literal value of
+ * the expression and determining the datatype from that (if it's
+ * a literal value), finding the datatype of the associated Column
+ * datatype (if it's a column expression), or locating a "neighboring"
+ * value expressions that can determine the datatype of the current
+ * value expression.
+ * @param aValueExprList a list of value expressions to resolve
+ * @param aTableRefList the current list of From clause table references
+ * @param aDB a RDBDatabase object containing datatype information
+ * @param aDBVersion an object containing database version information
+ */
+public static void resolveValueExpressionListDatatypes( List aValExprList) {
+  QueryValueExpression valExpr;
+  int valExprCount = aValExprList.size();
+  int resolvedCount = 0;
+  int prevResolvedCount = -1;
+  Iterator valExprListIter;
+
+  // Resolving all the datatypes may take more than one pass over
+  // the value expression list.  We want to keep trying until we
+  // have resolved all the expressions or we are no longer adding
+  // to the number of resolved expressions.
+  do {
+    prevResolvedCount = resolvedCount;
+    valExprListIter = aValExprList.iterator();
+    while( valExprListIter.hasNext() ) {
+      valExpr = (QueryValueExpression) valExprListIter.next();
+      if (valExpr.getDataType() == null) {
+        resolveValueExpressionDatatype( valExpr);
+
+        // Check if we managed to resolve the datatype during this
+        // pass.  If so, remember that we did so.
+        if (valExpr.getDataType() != null) {
+          resolvedCount++;
+        }
+      }
+    }
+
+  // Terminate our check when we have either resolved all the expression
+  // datatypes or are no longer making any progress.
+  } while (resolvedCount < valExprCount && resolvedCount != prevResolvedCount);
+
+  // @d301485 bgp 06Feb2004 - begin
+  // Set a default datatype for any value expressions that didn't
+  // get resolved.  This prevents null pointer exceptions later.
+  if (resolvedCount < valExprCount) {
+      
+      //TODO: what's the default type?
+    DataType memberType = SQLDataTypesFactory.eINSTANCE.createCharacterStringDataType();
+    valExprListIter = aValExprList.iterator();
+    while (valExprListIter.hasNext()) {
+      valExpr = (QueryValueExpression) valExprListIter.next();
+      if (valExpr.getDataType() == null) {
+        valExpr.setDataType( memberType );
+      }
+    }
+  }
+  // @d301485 bgp 06Feb2004 - end
+}
+
+
+/** CHECK IMPLEMENTATION! CODE UNTESTED!
+ * Tries to determine and set the datatype of the given "null" value
+ * expression.  Note: this value expression type comes from the NULL
+ * keyword in , which is used in Insert and Update statements.  It's
+ * not a null value expression in the usual sense.
+ * @param aValExpr a value expression to resolve
+ * @param aTableRefList the current list of From clause table references
+ * @param aDB a RDBDatabase object containing datatype information
+ * @param aDBVersion an object containing database version information
+ */
+public static void resolveValueExpressionNullValueDatatype( ValueExpressionNullValue aValExpr) {
+  // A NULL insert/update value has no datatype.  A result column can't
+  // be a value expression of type NULL.
+}
+
+
+/** CHECK IMPLEMENTATION! CODE UNTESTED!
+ * Tries to determine and set the datatype of the given simple value
+ * expression.
+ * @param aValExpr a value expression to resolve
+ */
+public static void resolveValueExpressionSimpleDatatype( ValueExpressionSimple aValExpr ) {
+  String value = aValExpr.getValue();
+  DataType datatype = null;
+  if (value != null && value.length() > 0) {
+      datatype = getPredefinedDataTypeForSimpleValue(value,aValExpr.getUnaryOperator());
+  }
+
+  if (datatype != null) {
+    aValExpr.setDataType( datatype );
+  }
+}
+
+/** CHECK IMPLEMENTATION! CODE UNTESTED!
+ * Tries to determine and set the datatype of the given variable value
+ * expression, using the given list of table references.
+ * @param aVarExpr a value expression to resolve
+ */
+public static void resolveValueExpressionVariableDatatype( ValueExpressionVariable aVarExpr) {
+  // @d281231 bgp 27May2003 - method rewritten to repace MOF "isSet" functions with EMF "get"
+  //                          and added "resolved" logic
+  boolean resolved = false;
+  
+  // bugfix: wsdbu00023418: "column = (:hostvar)"
+  // if we have our hostvariable nested in parenthesis "(:hostVar)" we want to
+  // figure out the data type of the nested expression instead and
+  // set that data type to the hostVarExpr
+  ValueExpressionVariable varExpr = aVarExpr; // the varExpr we gonna set the data type for
+  QueryValueExpression aValExpr = aVarExpr; // the valExpr we gonna work with, could be the nesting expr of the given variable
+  // bugfix: wsdbu00032486 - hostvar not resolved in: "INSERT INTO MYSCHEMA.STAFF(ID) VALUES ( (:id) )"
+  // get the top nesting value expression that contains this hostvariable
+  // e.g.  "column1 = ((((:hostVar))))"
+  while (aValExpr.getNest() != null) {
+      // if we have a nested hostVar, we work on the find out the data type of the nest
+      aValExpr = aValExpr.getNest();
+  }
+  
+  
+  // A variable may appear on the left or right side of a basic
+  // predicate. It's more likely to appear on the right side (for
+  // example "DEPTNO = :var1") than on the left side ":var1 = DEPTNO",
+  // but we need to handle both cases.  Try to get the datatype from
+  // the value expresson on the other side of the predicate.
+
+  // Case: var is left side of basic predicate
+  PredicateBasic predBasic = aValExpr.getBasicLeft();
+  if (predBasic != null) {
+    QueryValueExpression rightExpr = predBasic.getRightValueExpr();
+    copyDataType( rightExpr, varExpr );
+    resolved = true;
+  }
+
+  // Case: var is right side of a basic predicate.
+  else {
+    predBasic = aValExpr.getBasicRight();
+    if (predBasic != null) {
+      QueryValueExpression leftExpr = predBasic.getLeftValueExpr();
+      copyDataType( leftExpr, varExpr );
+      resolved = true;
+    }
+  }
+
+  if (resolved == false) {
+    // A var may appear in a Between predicate, as the left side,
+    // or one of the two right-hand sides.  Handle these in a similar
+    // manner to the basic predicate.
+
+    // Case: var is left side of a Between predicate
+    PredicateBetween predBetween = aValExpr.getBetweenLeft();
+    if (predBetween != null) {
+    // Look for a column in either right 1 or right 2.
+      QueryValueExpression rightExpr1 = predBetween.getRightValueExpr1();
+      QueryValueExpression rightExpr2 = predBetween.getRightValueExpr2();
+      copyDataType( rightExpr1, varExpr );
+      if (aValExpr.getDataType() == null) {
+        copyDataType( rightExpr2, varExpr );
+      }
+      resolved = true;
+    }
+
+    // Case: var is the first value of the right side of a Between predicate
+    else {
+      predBetween = aValExpr.getBetweenRight1();
+      if ( predBetween != null) {
+        QueryValueExpression leftExpr = predBetween.getLeftValueExpr();
+        copyDataType( leftExpr, varExpr );
+        resolved = true;
+      }
+
+      // Case: var is the second value of the right side of a Between predicate
+      else {
+        predBetween = aValExpr.getBetweenRight2();
+        if (predBetween != null) {
+          QueryValueExpression leftExpr = predBetween.getLeftValueExpr();
+          copyDataType( leftExpr, varExpr );
+          resolved = true;
+        }
+      }
+    }
+  }
+
+  if (resolved == false) {
+    // A var may appear on the left or right side of an "IN" predicate.
+    // At this time the only flavor of In predicate that we support is
+    // the "In Value List" type.  The right side of this kind of In is
+    // a list of value expressions.
+
+    // Case: var is the left side on an In predicate
+    PredicateInValueList predIn = aValExpr.getInValueListLeft();
+    if (predIn != null) {
+      List rightExprList = predIn.getValueExprList();//getRightValueExpr();
+      Iterator listIter = rightExprList.iterator();
+      QueryValueExpression inListMember;
+      while (listIter.hasNext() && aValExpr.getDataType() == null) {
+        inListMember = (QueryValueExpression) listIter.next();
+        copyDataType( inListMember, varExpr );
+        resolved = true;
+      }
+    }
+
+    // Case: var is in the list on the right side of an In predicate
+    else {
+      predIn = aValExpr.getInValueListRight();
+      if (predIn != null) {
+        QueryValueExpression leftExpr = predIn.getValueExpr();//getLeftValueExpr();
+        copyDataType( leftExpr, varExpr );
+        resolved = true;
+      }
+    }
+  }
+
+  if (resolved == false) {
+    // A var may appear in a "LIKE" predicate as the left or right side.
+    // Note: appearing as the right side of a Like predicate is not the
+    // same as being embedded within a string expression that appears as
+    // the right side of a Like predicate, which is handled elsewhere.
+    // An example of the later is "COL1 LIKE '%' || CAST( :var1 AS VARCHAR(10)) || '%'".  This
+    // is likely to be a much more common case than the var being the
+    // only thing on the right side.
+
+    // Case: var is the left ("matching") side of a Like predicate
+    PredicateLike predLikeMatching = aValExpr.getLikeMatching();
+    if (predLikeMatching != null) {
+      // The datatype is set directly in this case.
+      //DataType datatype = DatabaseHelper.getDataType( Types.VARCHAR, "VARCHAR", "255", "0", aDB );
+      // TODO: review this type
+      PredefinedDataType datatype = SQLDataTypesFactory.eINSTANCE.createCharacterStringDataType();
+      datatype.setPrimitiveType(PrimitiveType.CHARACTER_VARYING_LITERAL);
+      aValExpr.setDataType( datatype );
+      resolved = true;
+    }
+
+    // Case: var is the right ("pattern") side of a Like predicate
+    else {
+      PredicateLike predLikePattern = aValExpr.getLikePattern();
+      if (predLikePattern != null) {
+        QueryValueExpression leftExpr = predLikePattern.getMatchingValueExpr();
+        copyDataType( leftExpr, varExpr );
+        resolved = true;
+      }
+    }
+  }
+
+  if (resolved == false) {
+    // A var may appear as the left side of a IS NULL predicate, but
+    // that isn't very likely.  How would one determine the datatype in this
+    // context anyway?  Set the type to INTEGER just to make it non-null.
+
+    // Case: var is the left side of an Is Null predicate
+    PredicateIsNull predNull = aValExpr.getPredicateNull();
+    if (predNull != null) {
+      //DataType datatype = DatabaseHelper.getDataType( Types.INTEGER, "INTEGER", "10", "0", aDB );
+      PredefinedDataType datatype = SQLDataTypesFactory.eINSTANCE.createIntegerDataType();
+      datatype.setPrimitiveType(PrimitiveType.INTEGER_LITERAL);
+      aValExpr.setDataType( datatype );
+      resolved = true;
+    }
+  }
+
+  if (resolved == false) {
+    // A var may appear as a value in an insert row in a Insert statement,
+    // or in the assignment clause of an Update statement, or in a When Not Matched clause
+    // in a Merge statement.
+    // We should be able to get the datatype from the corresponding target
+    // column.
+
+    // Case: var is a value in an Values Row, which might be attached to an Insert
+    // statement or a QueryValues (a kind of table reference).
+    ValuesRow valRow = aValExpr.getValuesRow();
+    if (valRow != null) {
+      List valExprList = valRow.getExprList();
+      int valExprIndex = valExprList.indexOf( aValExpr );
+      
+      // First check for and process the Insert statement case.
+      QueryInsertStatement insertStmt = valRow.getInsertStatement();
+      if (insertStmt != null) {
+        List intoColList = insertStmt.getTargetColumnList();
+        if (intoColList != null && intoColList.size() > valExprIndex) { 
+          ValueExpressionColumn intoCol = (ValueExpressionColumn) intoColList.get( valExprIndex );
+          copyDataType( intoCol, varExpr );
+          resolved = true;
+        }
+        else {
+          TableInDatabase intoTable = insertStmt.getTargetTable();
+          if (intoTable != null
+           && intoTable.getColumnList() != null
+           && intoTable.getColumnList().size() > valExprIndex)
+          {
+            intoColList = intoTable.getColumnList();
+            ValueExpressionColumn intoCol = (ValueExpressionColumn) intoColList.get( valExprIndex );
+            copyDataType( intoCol, varExpr );
+            resolved = true;
+          }
+        }
+      }
+      else {
+          // Otherwise check to see if part of a VALUES table expression.  If the VALUES table expr
+          // is part of a MERGE statement, then we might be able to get the column datatype from
+          // the target table.
+          QueryValues queryValues = valRow.getQueryValues();
+          if (queryValues != null) {
+              MergeSourceTable mergeSourceTable = queryValues.getMergeSourceTable();
+              if (mergeSourceTable != null) {
+                  QueryMergeStatement mergeStmt = mergeSourceTable.getMergeStatement();
+                  if (mergeStmt != null) {
+                      MergeTargetTable mergeTargetTbl = mergeStmt.getTargetTable();
+                      if (mergeTargetTbl != null) {
+                          TableExpression tableExpr = mergeTargetTbl.getTableExpr();
+                          if (tableExpr instanceof TableInDatabase) {
+                              TableInDatabase tableInDB = (TableInDatabase) tableExpr;
+                              if (tableInDB.getColumnList() != null && tableInDB.getColumnList().size() > valExprIndex) {
+                                List colList = tableInDB.getColumnList();
+                                ValueExpressionColumn col = (ValueExpressionColumn) colList.get( valExprIndex );
+                                copyDataType( col, varExpr );
+                                resolved = true;
+                              }
+                          }
+                      }
+                  }
+              }
+          }
+      }
+    }
+
+    // Case: var is in an assignment clause of an Update statement
+    else {
+      UpdateSourceExprList updateSrcExprList = aValExpr.getUpdateSourceExprList();
+      if (updateSrcExprList != null) {
+        UpdateAssignmentExpression assignExpr = updateSrcExprList.getUpdateAssignmentExpr();
+        EList valExprList = updateSrcExprList.getValueExprList();
+        int valExprIndex = valExprList.indexOf( aValExpr );
+        EList assignColList = assignExpr.getTargetColumnList();
+        ValueExpressionColumn assignCol = (ValueExpressionColumn) assignColList.get( valExprIndex );
+        copyDataType( assignCol, varExpr );
+        resolved = true;
+      }
+    }
+  }
+
+  // @d301485 bgp 06Feb2004 - begin
+  if (resolved == false) {
+    // A var may appear as the cast expression of a CAST function.
+    ValueExpressionCast valCast = aValExpr.getValueExprCast();
+    if (valCast != null) {
+      copyDataType( valCast, varExpr );
+      resolved = true;
+    }
+  }
+  // @d301485 bgp 06Feb2004 - end
+
+  if (resolved == false) {
+    // A var may appear within a larger (combined) value expression.
+    // This case requires further checking to properly determine the
+    // datatype.
+
+    // Case: var is part of a combined value expression
+    if ( aValExpr.getValueExprCombinedLeft() != null
+      || aValExpr.getValueExprCombinedRight() != null ) {
+      // Get the "combined" val expr object that this expression is
+      // part of, plus the val expr on the other side of the combined.
+      ValueExpressionCombined valExprCombined = null;
+      QueryValueExpression otherExpr = null;
+      boolean isLeft = true;
+      if (aValExpr.getValueExprCombinedLeft() != null) {
+        valExprCombined = aValExpr.getValueExprCombinedLeft();
+        otherExpr = valExprCombined.getRightValueExpr();
+      }
+      else if (aValExpr.getValueExprCombinedRight() != null) {
+        valExprCombined = aValExpr.getValueExprCombinedRight();
+        otherExpr = valExprCombined.getLeftValueExpr();
+        isLeft = false;
+      }
+
+      // If we have the other elements, go on with our datatype search.
+      if (valExprCombined != null && otherExpr != null) {
+        // A common case is that a var appears in a string expression
+        // like this:  "'%' || :var1 || '%'".  If we find we're in a
+        // string expression like this, follow the tree up to see if
+        // this expression is the right side of a LIKE predicate, and
+        // if so, get the datatype of the expr on the other side of
+        // the predicate.
+        if (valExprCombined.getCombinedOperator().getValue() == ValueExpressionCombinedOperator.CONCATENATE) {
+          if (isLeft == true) {
+            resolveValueExpressionConcatDatatype( valExprCombined, aValExpr, otherExpr);
+          }
+          else {
+            resolveValueExpressionConcatDatatype( valExprCombined, otherExpr, aValExpr);
+          }
+          resolved = true;
+        }
+      }
+    }
+  }
+}
+
+
+/**
+ * Returns a mapping of <code>DataType</code> s (value) for SQL built-in
+ * function names (key)
+ * 
+ * @return <code>HashMap</code> keys: <code>String</code> function name in
+ *         upper case, values: {@link DataType}
+ */
+protected static HashMap createFunctionReturnTypeMap()
+{
+    HashMap functionReturnTypes = new HashMap();
+    ApproximateNumericDataType doubleType = SQLDataTypesFactory.eINSTANCE.createApproximateNumericDataType();
+    doubleType.setPrimitiveType(PrimitiveType.DOUBLE_PRECISION_LITERAL);
+
+    ApproximateNumericDataType realType = SQLDataTypesFactory.eINSTANCE.createApproximateNumericDataType();
+    realType.setPrimitiveType(PrimitiveType.REAL_LITERAL);
+
+    IntegerDataType bigIntType = SQLDataTypesFactory.eINSTANCE.createIntegerDataType();
+    bigIntType.setPrimitiveType(PrimitiveType.BIGINT_LITERAL);
+
+    IntegerDataType intType = SQLDataTypesFactory.eINSTANCE.createIntegerDataType();
+    intType.setPrimitiveType(PrimitiveType.INTEGER_LITERAL);
+
+    IntegerDataType smallIntType = SQLDataTypesFactory.eINSTANCE.createIntegerDataType();
+    smallIntType.setPrimitiveType(PrimitiveType.SMALLINT_LITERAL);
+
+    BinaryStringDataType blobType = SQLDataTypesFactory.eINSTANCE.createBinaryStringDataType();
+    blobType.setPrimitiveType(PrimitiveType.BINARY_LARGE_OBJECT_LITERAL);
+
+    CharacterStringDataType clobType = SQLDataTypesFactory.eINSTANCE.createCharacterStringDataType();
+    clobType.setPrimitiveType(PrimitiveType.CHARACTER_LARGE_OBJECT_LITERAL);
+
+    DateDataType dateType = SQLDataTypesFactory.eINSTANCE.createDateDataType();
+    dateType.setPrimitiveType(PrimitiveType.DATE_LITERAL);
+
+    TimeDataType timeType = SQLDataTypesFactory.eINSTANCE.createTimeDataType();
+    timeType.setPrimitiveType(PrimitiveType.TIME_LITERAL);
+
+    TimeDataType timeStampType = SQLDataTypesFactory.eINSTANCE.createTimeDataType();
+    timeStampType.setPrimitiveType(PrimitiveType.TIMESTAMP_LITERAL);
+
+    /*
+     * aggregate functions
+     */
+    functionReturnTypes.put("CORRELATION", doubleType);
+    functionReturnTypes.put("CORR", doubleType);
+
+    functionReturnTypes.put("COUNT", bigIntType);
+    functionReturnTypes.put("COUNT_BIG", bigIntType);
+
+    functionReturnTypes.put("COVARIANCE", doubleType);
+    functionReturnTypes.put("COVAR", doubleType);
+
+    // if and only if the return data type is the same as the argument
+    // set value of the map to null
+    functionReturnTypes.put("MAX", null);
+    functionReturnTypes.put("MIN", null);
+
+    functionReturnTypes.put("STDDEV", doubleType);
+    functionReturnTypes.put("VARIANCE", doubleType);
+    functionReturnTypes.put("VAR", doubleType);
+
+    /*
+     * scalar functions
+     */
+    functionReturnTypes.put("ABS", null);
+    functionReturnTypes.put("ABSVAL", null);
+    functionReturnTypes.put("ACOS", doubleType);
+
+    CharacterStringDataType varchar128 = SQLDataTypesFactory.eINSTANCE.createCharacterStringDataType();
+    varchar128.setPrimitiveType(PrimitiveType.CHARACTER_VARYING_LITERAL);
+    varchar128.setLength(128);
+
+    functionReturnTypes.put("APPLICATION_ID", varchar128);
+    functionReturnTypes.put("ASCII", intType);
+    functionReturnTypes.put("ASIN", doubleType);
+    functionReturnTypes.put("ATAN", doubleType);
+    functionReturnTypes.put("ATAN2", doubleType);
+    functionReturnTypes.put("BIGINT", bigIntType);
+    functionReturnTypes.put("BLOB", blobType);
+
+    CharacterStringDataType char1 = SQLDataTypesFactory.eINSTANCE.createCharacterStringDataType();
+    char1.setPrimitiveType(PrimitiveType.CHARACTER_LITERAL);
+    char1.setLength(1);
+
+    functionReturnTypes.put("CHR", char1);
+    functionReturnTypes.put("CLOB", clobType);
+    functionReturnTypes.put("COALESCE", char1);
+    functionReturnTypes.put("COS", doubleType);
+    functionReturnTypes.put("COSH", doubleType);
+    functionReturnTypes.put("COT", doubleType);
+    functionReturnTypes.put("DATE", dateType);
+    functionReturnTypes.put("DAY", bigIntType);
+
+    CharacterStringDataType varchar100 = SQLDataTypesFactory.eINSTANCE.createCharacterStringDataType();
+    varchar100.setPrimitiveType(PrimitiveType.CHARACTER_VARYING_LITERAL);
+    varchar100.setLength(100);
+
+    functionReturnTypes.put("DAYNAME", varchar100);
+    functionReturnTypes.put("DAYOFWEEK", intType);
+    functionReturnTypes.put("DAYOFWEEK_ISO", intType);
+    functionReturnTypes.put("DAYOFYEAR", intType);
+    functionReturnTypes.put("DAYS", intType);
+    functionReturnTypes.put("DBCLOB", clobType);
+    functionReturnTypes.put("DBPARTITIONNUM", intType);
+    functionReturnTypes.put("DEGREES", doubleType);
+    functionReturnTypes.put("DIFFERENCE", intType);
+
+    CharacterStringDataType varchar254 = SQLDataTypesFactory.eINSTANCE.createCharacterStringDataType();
+    varchar254.setPrimitiveType(PrimitiveType.CHARACTER_VARYING_LITERAL);
+    varchar254.setLength(254);
+
+    CharacterStringDataType varchar4 = SQLDataTypesFactory.eINSTANCE.createCharacterStringDataType();
+    varchar4.setPrimitiveType(PrimitiveType.CHARACTER_VARYING_LITERAL);
+    varchar4.setLength(4);
+
+    CharacterStringDataType varchar200 = SQLDataTypesFactory.eINSTANCE.createCharacterStringDataType();
+    varchar200.setPrimitiveType(PrimitiveType.CHARACTER_VARYING_LITERAL);
+    varchar200.setLength(200);
+
+    CharacterStringDataType varchar20 = SQLDataTypesFactory.eINSTANCE.createCharacterStringDataType();
+    varchar20.setPrimitiveType(PrimitiveType.CHARACTER_VARYING_LITERAL);
+    varchar20.setLength(20);
+
+    functionReturnTypes.put("DLCOMMENT", varchar254);
+    functionReturnTypes.put("DLLINKTYPE", varchar4);
+    functionReturnTypes.put("DLNEWCOPY", varchar200);
+    functionReturnTypes.put("DLPREVIOUSCOPY", varchar200);
+    functionReturnTypes.put("DLURLCOMPLETE", varchar4);
+    functionReturnTypes.put("DLURLCOMPLETEONLY", varchar4);
+    functionReturnTypes.put("DLURLCOMPLETEWRITE", varchar254);
+    functionReturnTypes.put("DLURLPATH", varchar4);
+    functionReturnTypes.put("DLURLPATHONLY", varchar4);
+    functionReturnTypes.put("DLURLPATHWRITE", varchar4);
+    functionReturnTypes.put("DLURLSCHEME", varchar20);
+    functionReturnTypes.put("DLURLSERVER", varchar254);
+
+    functionReturnTypes.put("DOUBLE", doubleType);
+    functionReturnTypes.put("EVENT_MON_STATE", intType);
+    functionReturnTypes.put("EXP", doubleType);
+    functionReturnTypes.put("FLOAT", doubleType);
+
+    CharacterStringDataType varchar32 = SQLDataTypesFactory.eINSTANCE.createCharacterStringDataType();
+    varchar32.setPrimitiveType(PrimitiveType.CHARACTER_VARYING_LITERAL);
+    varchar32.setLength(32);
+    functionReturnTypes.put("GETHINT", varchar32);
+
+    CharacterStringDataType varchar1024 = SQLDataTypesFactory.eINSTANCE.createCharacterStringDataType();
+    varchar1024.setPrimitiveType(PrimitiveType.CHARACTER_VARYING_LITERAL);
+    varchar1024.setLength(1024);
+    functionReturnTypes.put("GET_ROUTINE_OPTS", varchar1024);
+
+    functionReturnTypes.put("HASHEDVALUE", intType);
+    functionReturnTypes.put("HOUR", bigIntType);
+
+    FixedPrecisionDataType decimalType_31_0 = SQLDataTypesFactory.eINSTANCE.createFixedPrecisionDataType();
+    decimalType_31_0.setPrimitiveType(PrimitiveType.DECIMAL_LITERAL);
+    decimalType_31_0.setPrecision(31);
+    decimalType_31_0.setScale(0);
+    functionReturnTypes.put("IDENTITY_VAL_LOCAL", varchar1024);
+
+    functionReturnTypes.put("INTEGER", bigIntType);
+    functionReturnTypes.put("INT", bigIntType);             // fix wsdbu00045539
+    functionReturnTypes.put("JULIAN_DAY", intType);
+
+    functionReturnTypes.put("LCASE", null);
+    functionReturnTypes.put("LOWER", null);
+
+    functionReturnTypes.put("LENGTH", bigIntType);
+    functionReturnTypes.put("LN", doubleType);
+    functionReturnTypes.put("LOCATE", intType);
+    functionReturnTypes.put("LOG", doubleType);
+    functionReturnTypes.put("LOG10", doubleType);
+    functionReturnTypes.put("LTRIM", null);
+    functionReturnTypes.put("MICROSECOND", bigIntType);
+    functionReturnTypes.put("MIDNIGHT_SECONDS", intType);
+    functionReturnTypes.put("MINUTE", bigIntType);
+    functionReturnTypes.put("MONTH", bigIntType);
+    functionReturnTypes.put("MONTHNAME", varchar100);
+    functionReturnTypes.put("NULLIF", null);
+    functionReturnTypes.put("POSSTR", bigIntType);
+    functionReturnTypes.put("QUARTER", intType);
+    functionReturnTypes.put("RADIANS", doubleType);
+    functionReturnTypes.put("RAND", doubleType);
+    functionReturnTypes.put("REAL", realType);
+    functionReturnTypes.put("RTRIM", null);
+    functionReturnTypes.put("SECOND", bigIntType);
+    functionReturnTypes.put("SIN", doubleType);
+    functionReturnTypes.put("SINH", doubleType);
+    functionReturnTypes.put("SMALLINT", smallIntType);
+
+    CharacterStringDataType char4 = SQLDataTypesFactory.eINSTANCE.createCharacterStringDataType();
+    char4.setPrimitiveType(PrimitiveType.CHARACTER_LITERAL);
+    char4.setLength(4);
+    functionReturnTypes.put("SOUNDEX", char4);
+
+    CharacterStringDataType varchar4000 = SQLDataTypesFactory.eINSTANCE.createCharacterStringDataType();
+    varchar4000.setPrimitiveType(PrimitiveType.CHARACTER_VARYING_LITERAL);
+    varchar4000.setLength(4000);
+    functionReturnTypes.put("SPACE", varchar4000);
+
+    functionReturnTypes.put("SQRT", doubleType);
+    functionReturnTypes.put("SOUNDEX", char4);
+    functionReturnTypes.put("TABLE_NAME", varchar128);
+    functionReturnTypes.put("TABLE_SCHEMA", varchar128);
+    functionReturnTypes.put("TAN", doubleType);
+    functionReturnTypes.put("TANH", doubleType);
+    functionReturnTypes.put("TIME", timeType);
+    functionReturnTypes.put("TIMESTAMP", timeStampType);
+    functionReturnTypes.put("TIMESTAMP_FORMAT", timeStampType);
+    functionReturnTypes.put("TIMESTAMP_ISO", timeStampType);
+    functionReturnTypes.put("TIMESTAMPDIFF", intType);
+    functionReturnTypes.put("TO_DATE", timeStampType);
+    functionReturnTypes.put("TRUNCATE", null);
+    functionReturnTypes.put("TRUNC", null);
+    functionReturnTypes.put("TYPE_ID", intType);
+
+    CharacterStringDataType varchar18 = SQLDataTypesFactory.eINSTANCE.createCharacterStringDataType();
+    varchar18.setPrimitiveType(PrimitiveType.CHARACTER_VARYING_LITERAL);
+    varchar18.setLength(18);
+    functionReturnTypes.put("TYPE_NAME", varchar18);
+
+    functionReturnTypes.put("TYPE_SCHEMA", varchar128);
+    functionReturnTypes.put("UCASE", null);
+    functionReturnTypes.put("UPPER", varchar18);
+    functionReturnTypes.put("VALUE", null);
+
+    functionReturnTypes.put("WEEK", intType);
+    functionReturnTypes.put("WEEK_ISO", intType);
+    functionReturnTypes.put("YEAR", bigIntType);
+    
+    return functionReturnTypes;
+}
+
+
+
+
+/**
+ * Get the data type of result of the string binary operation of "left" and
+ * "right" 
+ * ASSUMPTION: the DataType of "left" should be greater than or equal to the 
+ * "right". And both of them are not null. Otherwise, null value will be returned.
+ * @param left
+ * @param right
+ * @return
+ */
+private static DataType concatCharStringDataTypePromotion(DataType left, DataType right)
+{
+    DataType retType = null;
+    
+    if(left != null && right != null)
+    {
+        PrimitiveType leftPrim = ((PredefinedDataType)left).getPrimitiveType();
+        PrimitiveType rightPrim = ((PredefinedDataType)right).getPrimitiveType();
+        
+        if(left instanceof CharacterStringDataType && right instanceof CharacterStringDataType)
+        {
+            retType = copyDataType(left);
+            int len = ((CharacterStringDataType)left).getLength();
+            len += ((CharacterStringDataType)right).getLength();
+            ((CharacterStringDataType)retType).setLength(len);
+            if(leftPrim == PrimitiveType.CHARACTER_LITERAL && rightPrim == PrimitiveType.CHARACTER_LITERAL && len < 255)
+                ((CharacterStringDataType)retType).setPrimitiveType(PrimitiveType.CHARACTER_LITERAL);            
+            else
+                ((CharacterStringDataType)retType).setPrimitiveType(PrimitiveType.CHARACTER_VARYING_LITERAL);            
+        }
+    }
+    if(retType == null)
+    {
+        retType = SQLDataTypesFactory.eINSTANCE.createCharacterStringDataType();
+        ((CharacterStringDataType)retType).setPrimitiveType(PrimitiveType.CHARACTER_VARYING_LITERAL);
+        ((CharacterStringDataType)retType).setLength(100);
+    }
+
+    return retType;
+}
+
+/**
+ * Get the data type of result of the numeric binary operation of "left" and
+ * "right" 
+ * ASSUMPTION: the DataType of "left" should be greater than or equal to the 
+ * "right". And both of them are not null. Otherwise, null value will be returned.
+ * 
+ * @param left a type that is "greater than or equal to" the right
+ * @param right a type that is "less than or equal to" the left
+ * @return
+ */
+private static DataType doNumericDataTypePromotion(DataType left, DataType right)
+{
+    DataType retType = null;
+    
+    if(left != null && right != null)
+    {
+        PrimitiveType leftPrim = ((PredefinedDataType)left).getPrimitiveType();
+        PrimitiveType rightPrim = ((PredefinedDataType)right).getPrimitiveType();
+        
+        if(leftPrim == PrimitiveType.SMALLINT_LITERAL)
+        {
+            if(rightPrim == PrimitiveType.SMALLINT_LITERAL)
+                retType = copyDataType(left);
+        }
+        else if(leftPrim == PrimitiveType.INTEGER_LITERAL)
+        {
+            if(rightPrim  == PrimitiveType.SMALLINT_LITERAL
+                    || rightPrim  == PrimitiveType.INTEGER_LITERAL)
+                retType = copyDataType(left);
+        }
+        else if(leftPrim == PrimitiveType.BIGINT_LITERAL)
+        {
+            if(rightPrim  == PrimitiveType.SMALLINT_LITERAL
+                    || rightPrim  == PrimitiveType.INTEGER_LITERAL
+                    || rightPrim  == PrimitiveType.BIGINT_LITERAL)
+                retType = copyDataType(left);
+        }
+        else if(leftPrim == PrimitiveType.DECIMAL_LITERAL)
+        {
+            if(rightPrim  == PrimitiveType.SMALLINT_LITERAL)
+            {
+                retType = copyDataType(left);
+                int precision = ((FixedPrecisionDataType)left).getPrecision();
+                int scale = ((FixedPrecisionDataType)left).getScale();
+                
+                precision = scale + ((precision - scale) > 5 ? (precision - scale) : 5);
+                precision = (precision > 31 ? 31 : precision);
+                ((FixedPrecisionDataType)retType).setPrecision(precision);
+            }
+            else if(rightPrim  == PrimitiveType.INTEGER_LITERAL)
+            {
+                retType = copyDataType(left);
+                int precision = ((FixedPrecisionDataType)left).getPrecision();
+                int scale = ((FixedPrecisionDataType)left).getScale();
+                
+                precision = scale + ((precision - scale) > 11 ? (precision - scale) : 11);
+                precision = (precision > 31 ? 31 : precision);
+                ((FixedPrecisionDataType)retType).setPrecision(precision);
+            }
+            else if(rightPrim  == PrimitiveType.BIGINT_LITERAL)
+            {
+                retType = copyDataType(left);
+                int precision = ((FixedPrecisionDataType)left).getPrecision();
+                int scale = ((FixedPrecisionDataType)left).getScale();
+                
+                precision = scale + ((precision - scale) > 19 ? (precision - scale) : 19);
+                precision = (precision > 31 ? 31 : precision);
+                ((FixedPrecisionDataType)retType).setPrecision(precision);
+                
+            }
+            else if(rightPrim  == PrimitiveType.DECIMAL_LITERAL)
+            {
+                retType = copyDataType(left);
+                int pleft = ((FixedPrecisionDataType)left).getPrecision();
+                int sleft = ((FixedPrecisionDataType)left).getScale();
+
+                int pright = ((FixedPrecisionDataType)right).getPrecision();
+                int sright = ((FixedPrecisionDataType)right).getScale();
+
+                int s = (sleft > sright ? sleft : sright);
+                int p = s + ((pleft - sleft) > (pright - sright) ? (pleft - sleft) : (pright - sright));
+
+                ((FixedPrecisionDataType)retType).setPrecision(p);
+                ((FixedPrecisionDataType)retType).setScale(s);
+            }
+        }
+        else if(leftPrim == PrimitiveType.REAL_LITERAL)
+        {
+            if(rightPrim  == PrimitiveType.REAL_LITERAL)
+            {
+                retType = copyDataType(left);
+            } 
+            else if(rightPrim  == PrimitiveType.SMALLINT_LITERAL
+                    || rightPrim  == PrimitiveType.INTEGER_LITERAL
+                    || rightPrim  == PrimitiveType.BIGINT_LITERAL
+                    || rightPrim  == PrimitiveType.DECIMAL_LITERAL)
+            {
+                retType = copyDataType(left);
+                ((ApproximateNumericDataType)retType).setPrimitiveType(PrimitiveType.DOUBLE_PRECISION_LITERAL);
+            }
+        }
+        else if(leftPrim == PrimitiveType.DOUBLE_PRECISION_LITERAL)
+        {
+            retType = copyDataType(left);
+        }
+        
+    }
+    return retType;
+}
+
+/**
+ * For fixed return type
+ * @param funcName
+ * @return
+ */
+private static DataType getFuncReturnType(String funcName)
+{
+    DataType dt = (DataType)FunctionReturnType.get(funcName);
+    if(dt != null)
+        return (DataType)EcoreUtil.copy(dt);
+    else
+        return null;
+}
+
+/**
+ * CHECK IMPLEMENTATION! CODE UNTESTED! TODO: implement this Proxy method.
+ * Throws UnsupportedOperationException now.
+ * 
+ * @param funcName
+ * @return
+ */
+private static Object[][] getParameterFormats(String funcName)
+{
+    // FIXME implement another method taking a ValueExpressionFunction object that has a return type
+    throw new UnsupportedOperationException(
+                    ValueExpressionHelper.class.getName()+
+                    "#getParameterFormats(String funcName) not implemented!");
+    //return FunctionHelper.getParameterFormats( funcName );
+}
+
+// TODO: to be refactored somewhere properly
+/** CHECK IMPLEMENTATION! CODE UNTESTED!
+ * Guesses the DataType of the given value of a ValueExpression.
+ * TODO: document this properly, after review
+ * 
+ * @param value the value to which a DataType should be guessed
+ * @return the DataType that was guessed
+ */
+private static PredefinedDataType getPredefinedDataTypeForSimpleValue(String value, ValueExpressionUnaryOperator op)
+{
+
+    PredefinedDataType datatype = null;
+
+    SQLDataTypesFactory sqlDataTypesFactory = SQLDataTypesFactory.eINSTANCE;
+
+    String lenStr = null;
+    String scaleStr = null;
+    if (value != null && value.length() > 0)
+    {
+        // Check for a string datatype by looking for enclosing quotes.
+        if (value.startsWith("'") && value.endsWith("'"))
+        {
+            Integer len = new Integer(value.length() - 2);
+            lenStr = len.toString();
+            datatype = sqlDataTypesFactory.createCharacterStringDataType();
+            //TODO: when is it, what about length
+            //PrimitiveType.CHARACTER_LARGE_OBJECT_LITERAL;
+            //PrimitiveType.CHARACTER_VARYING_LITERAL;
+            datatype.setPrimitiveType(PrimitiveType.CHARACTER_LITERAL);
+            //TODO: better!
+            ((CharacterStringDataType) datatype).setLength(len.intValue());
+
+            // TODO: what about date types??? or other string represented
+            // types
+
+        }
+
+        // Check for a "graphic" (G'dddd' or N'dddd') double-byte literal.
+        else if ((value.startsWith("G'") || value.startsWith("g'")
+                        || value.startsWith("N'") || value.startsWith("n'"))
+                        && value.endsWith("'"))
+        {
+            Integer len = new Integer((value.length() - 3) / 2);
+            lenStr = len.toString();
+            //datatype = DatabaseHelper.getDataType( Types.CHAR, "GRAPHIC",
+            // lenStr, scaleStr, aDB );
+            datatype = sqlDataTypesFactory.createCharacterStringDataType();
+            datatype.setPrimitiveType(PrimitiveType.NATIONAL_CHARACTER_LITERAL);
+        }
+
+        // Check for a "hex" (X'cccc') literal.
+        else if ((value.startsWith("X'") || value.startsWith("x'"))
+                        && value.endsWith("'"))
+        {
+            // TODO: Now that I've found it, what do I do with it?
+            datatype = sqlDataTypesFactory.createBinaryStringDataType();
+            //TODO: HEX is not large per se, Hemant
+            datatype.setPrimitiveType(PrimitiveType.BINARY_LARGE_OBJECT_LITERAL);
+        }
+
+        // Must not be a string. Check for a numeric value.
+        else
+        {
+            // Since we know we don't have a string literal, we can upper
+            // case the string to
+            // simplify our search for special characters.
+            String ucValue = value.toUpperCase();
+            
+            // append back the unary operator minus if present
+            if (ValueExpressionUnaryOperator.MINUS_LITERAL.equals(op)) {
+                ucValue = "-" + ucValue;
+            }
+
+            // We can also ignore any leading sign, since we're not really
+            // interested in the value, just its datatype
+
+            // Check for double literal. (Floating point constants are
+            // always
+            // assumed to be double-precision.)
+            int eIndex = ucValue.indexOf('E');
+            int dIndex = ucValue.lastIndexOf('.');
+
+            // TODO: very important for range checks! unary operator
+            // cascades sign!
+
+            // INTEGER types
+            if (eIndex == -1 && dIndex == -1 && datatype == null)
+            {
+                try
+                {
+                    Integer intObj = new Integer(ucValue);
+                    int intValue = intObj.intValue();
+                    int precision = 10;
+                    PrimitiveType primitiveType = PrimitiveType.INTEGER_LITERAL;
+
+                    if (intValue > -32769 && intValue < 32768)
+                    {
+                        precision = 5;
+                        primitiveType = PrimitiveType.SMALLINT_LITERAL;
+                    }
+
+                    // If we reached here we know we have an integer.
+                    //datatype = DatabaseHelper.getDataType( Types.INTEGER,
+                    // "INTEGER", "10", "0", aDB );
+                    datatype = sqlDataTypesFactory.createIntegerDataType();
+                    datatype.setPrimitiveType(primitiveType);
+                    ((NumericalDataType) datatype).setPrecision(precision);
+                }
+                catch (NumberFormatException e2)
+                {
+                    try
+                    {
+                        Long bigInt = new Long(ucValue);
+                        int precision = 19;
+
+                        // If we reached here we know we have a big integer.
+                        //datatype = DatabaseHelper.getDataType(
+                        // Types.INTEGER, "INTEGER", "19", "0", aDB );
+                        datatype = sqlDataTypesFactory.createIntegerDataType();
+                        // TODO: check that
+                        datatype.setPrimitiveType(PrimitiveType.BIGINT_LITERAL);
+                        ((NumericalDataType) datatype).setPrecision(precision);
+                    }
+                    catch (NumberFormatException e3)
+                    {
+                    }
+                }
+
+            }
+
+            // DECIMAL type (fixed precision)
+            if (eIndex == -1 && datatype == null)
+            {
+                try
+                {
+                    BigDecimal decimal = new BigDecimal(ucValue);
+
+                    // If we reached here we know we have a decimal. Get
+                    // it's precision
+                    // and scale.
+                    BigInteger bigIntVal = decimal.unscaledValue();
+                    bigIntVal = bigIntVal.abs(); // eliminate the minus
+                                                 // sign, if any.
+                    String bigIntValStr = bigIntVal.toString();
+                    int precision = bigIntValStr.length();
+
+                    int scale = decimal.scale();
+                    //datatype = DatabaseHelper.getDataType( Types.DECIMAL,
+                    // "DECIMAL", "" + precision, "" + scale, aDB );
+                    //TODO: check for right datatype
+                    datatype = sqlDataTypesFactory.createFixedPrecisionDataType();
+                    datatype.setPrimitiveType(PrimitiveType.DECIMAL_LITERAL);
+                    ((FixedPrecisionDataType) datatype).setPrecision(precision);
+                    ((FixedPrecisionDataType) datatype).setScale(scale);
+                }
+                catch (NumberFormatException e2)
+                {
+                }
+
+            }
+
+            // FLOAT types and all included
+            if (datatype == null)
+            {
+                try
+                {
+                    Double doubleObject = new Double(ucValue);
+                    double doubleValue = doubleObject.doubleValue();
+
+                    //float floatMin = Float.MIN_VALUE; //("-3.402E+38");
+                    //float floatMax = Float.MAX_VALUE;//("3.402E+38");
+
+                    float floatNegMin = Float.parseFloat("-3.402E+38");
+                    float floatNegMax = Float.parseFloat("-1.175E-37");
+                    float floatPosMin = Float.parseFloat("1.175E-37");
+                    float floatPosMax = Float.parseFloat("3.402E+38");
+
+                    // If we reached here, we really do have a double.
+                    // Get its 'precision'.
+                    // (I'm assuming that the precision, like for
+                    // decimal numbers, is the
+                    // total number of digits, not including the 'E'
+                    // part.) When
+                    // computing the precision, take into account any
+                    // leading sign
+                    // and decimal point.
+                    int valPrecision = eIndex;
+                    if (ucValue.startsWith("-") || ucValue.startsWith("+"))
+                    {
+                        valPrecision--;
+                    }
+                    if (ucValue.lastIndexOf('.', eIndex) != -1)
+                    {
+                        valPrecision--;
+                    }
+                    //datatype = DatabaseHelper.getDataType(
+                    // Types.DOUBLE, "DOUBLE", "" + valPrecision, "0",
+                    // aDB );
+                    //TODO: check the right datatype?
+                    datatype = sqlDataTypesFactory.createApproximateNumericDataType();
+
+                    //if (doubleValue < floatMin || doubleValue > floatMax) {
+                    if (doubleValue < floatNegMin
+                                    || doubleValue > floatPosMax
+                                    || doubleValue > floatNegMax
+                                    && doubleValue < floatPosMin)
+                    {
+                        datatype.setPrimitiveType(PrimitiveType.DOUBLE_PRECISION_LITERAL);
+                    }
+                    else
+                    {
+                        datatype.setPrimitiveType(PrimitiveType.REAL_LITERAL);
+                    }
+                    
+                    ((ApproximateNumericDataType) datatype).setPrecision(valPrecision);
+                }
+                catch (NumberFormatException ed)
+                {
+                }
+
+            }
+
+        }
+
+    }
+
+    return datatype;
+
+}
+
+/**
+ * CHECK IMPLEMENTATION! CODE UNTESTED! TODO: implement this Proxy method.
+ * Throws UnsupportedOperationException now.
+ * 
+ * @param funcName
+ * @param returnDatatypeName
+ * @param param1DatatypeName
+ * @param param1DatatypeLen
+ * @return
+ */
+private static int getReturnDatatypeLength(String funcName, String returnDatatypeName, String param1DatatypeName, int param1DatatypeLen)
+{
+    // FIXME implement another method taking a ValueExpressionFunction object
+    // that has a return type
+    throw new UnsupportedOperationException(
+    //System.err.println(
+                    ValueExpressionHelper.class.getName()+"#getReturnDatatypeLength(String funcName, String returnDatatypeName, String param1DatatypeName, int param1DatatypeLen) not implemented!");
+    //return FunctionHelper.getReturnDatatypeLength( funcName,
+    // returnDatatypeName, param1DatatypeName, param1DatatypeLen );
+}
+
+
+} // end class
+
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/CallStatementImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/CallStatementImpl.java
new file mode 100644
index 0000000..3c78cf5
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/CallStatementImpl.java
@@ -0,0 +1,234 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.CallStatement;
+import org.eclipse.datatools.modelbase.sql.query.ProcedureReference;
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Call Statement</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.CallStatementImpl#getArgumentList <em>Argument List</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.CallStatementImpl#getProcedureRef <em>Procedure Ref</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CallStatementImpl extends SQLQueryObjectImpl implements CallStatement {
+    /**
+     * The cached value of the '{@link #getArgumentList() <em>Argument List</em>}' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getArgumentList()
+     * @generated
+     * @ordered
+     */
+    protected EList argumentList;
+
+    /**
+     * The cached value of the '{@link #getProcedureRef() <em>Procedure Ref</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getProcedureRef()
+     * @generated
+     * @ordered
+     */
+    protected ProcedureReference procedureRef;
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected CallStatementImpl() {
+        super();
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.CALL_STATEMENT;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getArgumentList() {
+        if (argumentList == null) {
+            argumentList = new EObjectContainmentWithInverseEList(QueryValueExpression.class, this, SQLQueryModelPackage.CALL_STATEMENT__ARGUMENT_LIST, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__CALL_STATEMENT);
+        }
+        return argumentList;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public ProcedureReference getProcedureRef() {
+        return procedureRef;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetProcedureRef(ProcedureReference newProcedureRef, NotificationChain msgs) {
+        ProcedureReference oldProcedureRef = procedureRef;
+        procedureRef = newProcedureRef;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.CALL_STATEMENT__PROCEDURE_REF, oldProcedureRef, newProcedureRef);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setProcedureRef(ProcedureReference newProcedureRef) {
+        if (newProcedureRef != procedureRef) {
+            NotificationChain msgs = null;
+            if (procedureRef != null)
+                msgs = ((InternalEObject)procedureRef).eInverseRemove(this, SQLQueryModelPackage.PROCEDURE_REFERENCE__CALL_STATEMENT, ProcedureReference.class, msgs);
+            if (newProcedureRef != null)
+                msgs = ((InternalEObject)newProcedureRef).eInverseAdd(this, SQLQueryModelPackage.PROCEDURE_REFERENCE__CALL_STATEMENT, ProcedureReference.class, msgs);
+            msgs = basicSetProcedureRef(newProcedureRef, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.CALL_STATEMENT__PROCEDURE_REF, newProcedureRef, newProcedureRef));
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.CALL_STATEMENT__ARGUMENT_LIST:
+                return ((InternalEList)getArgumentList()).basicAdd(otherEnd, msgs);
+            case SQLQueryModelPackage.CALL_STATEMENT__PROCEDURE_REF:
+                if (procedureRef != null)
+                    msgs = ((InternalEObject)procedureRef).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.CALL_STATEMENT__PROCEDURE_REF, null, msgs);
+                return basicSetProcedureRef((ProcedureReference)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.CALL_STATEMENT__ARGUMENT_LIST:
+                return ((InternalEList)getArgumentList()).basicRemove(otherEnd, msgs);
+            case SQLQueryModelPackage.CALL_STATEMENT__PROCEDURE_REF:
+                return basicSetProcedureRef(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.CALL_STATEMENT__ARGUMENT_LIST:
+                return getArgumentList();
+            case SQLQueryModelPackage.CALL_STATEMENT__PROCEDURE_REF:
+                return getProcedureRef();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.CALL_STATEMENT__ARGUMENT_LIST:
+                getArgumentList().clear();
+                getArgumentList().addAll((Collection)newValue);
+                return;
+            case SQLQueryModelPackage.CALL_STATEMENT__PROCEDURE_REF:
+                setProcedureRef((ProcedureReference)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.CALL_STATEMENT__ARGUMENT_LIST:
+                getArgumentList().clear();
+                return;
+            case SQLQueryModelPackage.CALL_STATEMENT__PROCEDURE_REF:
+                setProcedureRef((ProcedureReference)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.CALL_STATEMENT__ARGUMENT_LIST:
+                return argumentList != null && !argumentList.isEmpty();
+            case SQLQueryModelPackage.CALL_STATEMENT__PROCEDURE_REF:
+                return procedureRef != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //CallStatementImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ColumnNameImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ColumnNameImpl.java
new file mode 100644
index 0000000..b078572
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ColumnNameImpl.java
@@ -0,0 +1,254 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ColumnNameImpl.java,v 1.5 2008/01/31 02:57:15 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.ColumnName;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.TableCorrelation;
+import org.eclipse.datatools.modelbase.sql.query.WithTableSpecification;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Column Name</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.ColumnNameImpl#getTableCorrelation <em>Table Correlation</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.ColumnNameImpl#getWithTableSpecification <em>With Table Specification</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ColumnNameImpl extends SQLQueryObjectImpl implements ColumnName {
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected ColumnNameImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.COLUMN_NAME;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public TableCorrelation getTableCorrelation() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.COLUMN_NAME__TABLE_CORRELATION) return null;
+        return (TableCorrelation)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetTableCorrelation(TableCorrelation newTableCorrelation, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newTableCorrelation, SQLQueryModelPackage.COLUMN_NAME__TABLE_CORRELATION, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setTableCorrelation(TableCorrelation newTableCorrelation) {
+        if (newTableCorrelation != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.COLUMN_NAME__TABLE_CORRELATION && newTableCorrelation != null)) {
+            if (EcoreUtil.isAncestor(this, newTableCorrelation))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newTableCorrelation != null)
+                msgs = ((InternalEObject)newTableCorrelation).eInverseAdd(this, SQLQueryModelPackage.TABLE_CORRELATION__COLUMN_NAME_LIST, TableCorrelation.class, msgs);
+            msgs = basicSetTableCorrelation(newTableCorrelation, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.COLUMN_NAME__TABLE_CORRELATION, newTableCorrelation, newTableCorrelation));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public WithTableSpecification getWithTableSpecification() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.COLUMN_NAME__WITH_TABLE_SPECIFICATION) return null;
+        return (WithTableSpecification)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetWithTableSpecification(WithTableSpecification newWithTableSpecification, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newWithTableSpecification, SQLQueryModelPackage.COLUMN_NAME__WITH_TABLE_SPECIFICATION, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setWithTableSpecification(WithTableSpecification newWithTableSpecification) {
+        if (newWithTableSpecification != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.COLUMN_NAME__WITH_TABLE_SPECIFICATION && newWithTableSpecification != null)) {
+            if (EcoreUtil.isAncestor(this, newWithTableSpecification))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newWithTableSpecification != null)
+                msgs = ((InternalEObject)newWithTableSpecification).eInverseAdd(this, SQLQueryModelPackage.WITH_TABLE_SPECIFICATION__COLUMN_NAME_LIST, WithTableSpecification.class, msgs);
+            msgs = basicSetWithTableSpecification(newWithTableSpecification, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.COLUMN_NAME__WITH_TABLE_SPECIFICATION, newWithTableSpecification, newWithTableSpecification));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.COLUMN_NAME__TABLE_CORRELATION:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetTableCorrelation((TableCorrelation)otherEnd, msgs);
+            case SQLQueryModelPackage.COLUMN_NAME__WITH_TABLE_SPECIFICATION:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetWithTableSpecification((WithTableSpecification)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.COLUMN_NAME__TABLE_CORRELATION:
+                return basicSetTableCorrelation(null, msgs);
+            case SQLQueryModelPackage.COLUMN_NAME__WITH_TABLE_SPECIFICATION:
+                return basicSetWithTableSpecification(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLQueryModelPackage.COLUMN_NAME__TABLE_CORRELATION:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.TABLE_CORRELATION__COLUMN_NAME_LIST, TableCorrelation.class, msgs);
+            case SQLQueryModelPackage.COLUMN_NAME__WITH_TABLE_SPECIFICATION:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.WITH_TABLE_SPECIFICATION__COLUMN_NAME_LIST, WithTableSpecification.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.COLUMN_NAME__TABLE_CORRELATION:
+                return getTableCorrelation();
+            case SQLQueryModelPackage.COLUMN_NAME__WITH_TABLE_SPECIFICATION:
+                return getWithTableSpecification();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.COLUMN_NAME__TABLE_CORRELATION:
+                setTableCorrelation((TableCorrelation)newValue);
+                return;
+            case SQLQueryModelPackage.COLUMN_NAME__WITH_TABLE_SPECIFICATION:
+                setWithTableSpecification((WithTableSpecification)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.COLUMN_NAME__TABLE_CORRELATION:
+                setTableCorrelation((TableCorrelation)null);
+                return;
+            case SQLQueryModelPackage.COLUMN_NAME__WITH_TABLE_SPECIFICATION:
+                setWithTableSpecification((WithTableSpecification)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.COLUMN_NAME__TABLE_CORRELATION:
+                return getTableCorrelation() != null;
+            case SQLQueryModelPackage.COLUMN_NAME__WITH_TABLE_SPECIFICATION:
+                return getWithTableSpecification() != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //SQLColumnNameImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/CursorReferenceImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/CursorReferenceImpl.java
new file mode 100644
index 0000000..b98a6dc
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/CursorReferenceImpl.java
@@ -0,0 +1,253 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: CursorReferenceImpl.java,v 1.5 2008/01/31 02:57:15 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.CursorReference;
+import org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement;
+import org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Cursor Reference</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.CursorReferenceImpl#getUpdateStatement <em>Update Statement</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.CursorReferenceImpl#getDeleteStatement <em>Delete Statement</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CursorReferenceImpl extends SQLQueryObjectImpl implements CursorReference {
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected CursorReferenceImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.CURSOR_REFERENCE;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryUpdateStatement getUpdateStatement() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.CURSOR_REFERENCE__UPDATE_STATEMENT) return null;
+        return (QueryUpdateStatement)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetUpdateStatement(QueryUpdateStatement newUpdateStatement, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newUpdateStatement, SQLQueryModelPackage.CURSOR_REFERENCE__UPDATE_STATEMENT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setUpdateStatement(QueryUpdateStatement newUpdateStatement) {
+        if (newUpdateStatement != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.CURSOR_REFERENCE__UPDATE_STATEMENT && newUpdateStatement != null)) {
+            if (EcoreUtil.isAncestor(this, newUpdateStatement))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newUpdateStatement != null)
+                msgs = ((InternalEObject)newUpdateStatement).eInverseAdd(this, SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__WHERE_CURRENT_OF_CLAUSE, QueryUpdateStatement.class, msgs);
+            msgs = basicSetUpdateStatement(newUpdateStatement, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.CURSOR_REFERENCE__UPDATE_STATEMENT, newUpdateStatement, newUpdateStatement));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryDeleteStatement getDeleteStatement() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.CURSOR_REFERENCE__DELETE_STATEMENT) return null;
+        return (QueryDeleteStatement)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetDeleteStatement(QueryDeleteStatement newDeleteStatement, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newDeleteStatement, SQLQueryModelPackage.CURSOR_REFERENCE__DELETE_STATEMENT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setDeleteStatement(QueryDeleteStatement newDeleteStatement) {
+        if (newDeleteStatement != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.CURSOR_REFERENCE__DELETE_STATEMENT && newDeleteStatement != null)) {
+            if (EcoreUtil.isAncestor(this, newDeleteStatement))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newDeleteStatement != null)
+                msgs = ((InternalEObject)newDeleteStatement).eInverseAdd(this, SQLQueryModelPackage.QUERY_DELETE_STATEMENT__WHERE_CURRENT_OF_CLAUSE, QueryDeleteStatement.class, msgs);
+            msgs = basicSetDeleteStatement(newDeleteStatement, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.CURSOR_REFERENCE__DELETE_STATEMENT, newDeleteStatement, newDeleteStatement));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.CURSOR_REFERENCE__UPDATE_STATEMENT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetUpdateStatement((QueryUpdateStatement)otherEnd, msgs);
+            case SQLQueryModelPackage.CURSOR_REFERENCE__DELETE_STATEMENT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetDeleteStatement((QueryDeleteStatement)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.CURSOR_REFERENCE__UPDATE_STATEMENT:
+                return basicSetUpdateStatement(null, msgs);
+            case SQLQueryModelPackage.CURSOR_REFERENCE__DELETE_STATEMENT:
+                return basicSetDeleteStatement(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLQueryModelPackage.CURSOR_REFERENCE__UPDATE_STATEMENT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__WHERE_CURRENT_OF_CLAUSE, QueryUpdateStatement.class, msgs);
+            case SQLQueryModelPackage.CURSOR_REFERENCE__DELETE_STATEMENT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.QUERY_DELETE_STATEMENT__WHERE_CURRENT_OF_CLAUSE, QueryDeleteStatement.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.CURSOR_REFERENCE__UPDATE_STATEMENT:
+                return getUpdateStatement();
+            case SQLQueryModelPackage.CURSOR_REFERENCE__DELETE_STATEMENT:
+                return getDeleteStatement();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.CURSOR_REFERENCE__UPDATE_STATEMENT:
+                setUpdateStatement((QueryUpdateStatement)newValue);
+                return;
+            case SQLQueryModelPackage.CURSOR_REFERENCE__DELETE_STATEMENT:
+                setDeleteStatement((QueryDeleteStatement)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.CURSOR_REFERENCE__UPDATE_STATEMENT:
+                setUpdateStatement((QueryUpdateStatement)null);
+                return;
+            case SQLQueryModelPackage.CURSOR_REFERENCE__DELETE_STATEMENT:
+                setDeleteStatement((QueryDeleteStatement)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.CURSOR_REFERENCE__UPDATE_STATEMENT:
+                return getUpdateStatement() != null;
+            case SQLQueryModelPackage.CURSOR_REFERENCE__DELETE_STATEMENT:
+                return getDeleteStatement() != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //SQLCursorReferenceImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/GroupingExpressionImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/GroupingExpressionImpl.java
new file mode 100644
index 0000000..dd91ecc
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/GroupingExpressionImpl.java
@@ -0,0 +1,265 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: GroupingExpressionImpl.java,v 1.5 2008/01/31 02:57:15 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementExpression;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.SuperGroupElementExpression;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Grouping Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.GroupingExpressionImpl#getValueExpr <em>Value Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.GroupingExpressionImpl#getSuperGroupElementExpr <em>Super Group Element Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class GroupingExpressionImpl extends GroupingImpl implements GroupingExpression {
+	/**
+     * The cached value of the '{@link #getValueExpr() <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getValueExpr()
+     * @generated
+     * @ordered
+     */
+    protected QueryValueExpression valueExpr;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected GroupingExpressionImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.GROUPING_EXPRESSION;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryValueExpression getValueExpr() {
+        return valueExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetValueExpr(QueryValueExpression newValueExpr, NotificationChain msgs) {
+        QueryValueExpression oldValueExpr = valueExpr;
+        valueExpr = newValueExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.GROUPING_EXPRESSION__VALUE_EXPR, oldValueExpr, newValueExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueExpr(QueryValueExpression newValueExpr) {
+        if (newValueExpr != valueExpr) {
+            NotificationChain msgs = null;
+            if (valueExpr != null)
+                msgs = ((InternalEObject)valueExpr).eInverseRemove(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__GROUPING_EXPR, QueryValueExpression.class, msgs);
+            if (newValueExpr != null)
+                msgs = ((InternalEObject)newValueExpr).eInverseAdd(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__GROUPING_EXPR, QueryValueExpression.class, msgs);
+            msgs = basicSetValueExpr(newValueExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.GROUPING_EXPRESSION__VALUE_EXPR, newValueExpr, newValueExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public SuperGroupElementExpression getSuperGroupElementExpr() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.GROUPING_EXPRESSION__SUPER_GROUP_ELEMENT_EXPR) return null;
+        return (SuperGroupElementExpression)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetSuperGroupElementExpr(SuperGroupElementExpression newSuperGroupElementExpr, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newSuperGroupElementExpr, SQLQueryModelPackage.GROUPING_EXPRESSION__SUPER_GROUP_ELEMENT_EXPR, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setSuperGroupElementExpr(SuperGroupElementExpression newSuperGroupElementExpr) {
+        if (newSuperGroupElementExpr != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.GROUPING_EXPRESSION__SUPER_GROUP_ELEMENT_EXPR && newSuperGroupElementExpr != null)) {
+            if (EcoreUtil.isAncestor(this, newSuperGroupElementExpr))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newSuperGroupElementExpr != null)
+                msgs = ((InternalEObject)newSuperGroupElementExpr).eInverseAdd(this, SQLQueryModelPackage.SUPER_GROUP_ELEMENT_EXPRESSION__GROUPING_EXPR, SuperGroupElementExpression.class, msgs);
+            msgs = basicSetSuperGroupElementExpr(newSuperGroupElementExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.GROUPING_EXPRESSION__SUPER_GROUP_ELEMENT_EXPR, newSuperGroupElementExpr, newSuperGroupElementExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.GROUPING_EXPRESSION__VALUE_EXPR:
+                if (valueExpr != null)
+                    msgs = ((InternalEObject)valueExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.GROUPING_EXPRESSION__VALUE_EXPR, null, msgs);
+                return basicSetValueExpr((QueryValueExpression)otherEnd, msgs);
+            case SQLQueryModelPackage.GROUPING_EXPRESSION__SUPER_GROUP_ELEMENT_EXPR:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetSuperGroupElementExpr((SuperGroupElementExpression)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.GROUPING_EXPRESSION__VALUE_EXPR:
+                return basicSetValueExpr(null, msgs);
+            case SQLQueryModelPackage.GROUPING_EXPRESSION__SUPER_GROUP_ELEMENT_EXPR:
+                return basicSetSuperGroupElementExpr(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLQueryModelPackage.GROUPING_EXPRESSION__SUPER_GROUP_ELEMENT_EXPR:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.SUPER_GROUP_ELEMENT_EXPRESSION__GROUPING_EXPR, SuperGroupElementExpression.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.GROUPING_EXPRESSION__VALUE_EXPR:
+                return getValueExpr();
+            case SQLQueryModelPackage.GROUPING_EXPRESSION__SUPER_GROUP_ELEMENT_EXPR:
+                return getSuperGroupElementExpr();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.GROUPING_EXPRESSION__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)newValue);
+                return;
+            case SQLQueryModelPackage.GROUPING_EXPRESSION__SUPER_GROUP_ELEMENT_EXPR:
+                setSuperGroupElementExpr((SuperGroupElementExpression)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.GROUPING_EXPRESSION__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)null);
+                return;
+            case SQLQueryModelPackage.GROUPING_EXPRESSION__SUPER_GROUP_ELEMENT_EXPR:
+                setSuperGroupElementExpr((SuperGroupElementExpression)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.GROUPING_EXPRESSION__VALUE_EXPR:
+                return valueExpr != null;
+            case SQLQueryModelPackage.GROUPING_EXPRESSION__SUPER_GROUP_ELEMENT_EXPR:
+                return getSuperGroupElementExpr() != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //SQLGroupingExpressionImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/GroupingImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/GroupingImpl.java
new file mode 100644
index 0000000..6930e5a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/GroupingImpl.java
@@ -0,0 +1,193 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: GroupingImpl.java,v 1.5 2008/01/31 02:57:15 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.Grouping;
+import org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementExpression;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Group</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.GroupingImpl#getGroupingSetsElementExpr <em>Grouping Sets Element Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class GroupingImpl extends GroupingSpecificationImpl implements Grouping {
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected GroupingImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.GROUPING;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public GroupingSetsElementExpression getGroupingSetsElementExpr() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.GROUPING__GROUPING_SETS_ELEMENT_EXPR) return null;
+        return (GroupingSetsElementExpression)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetGroupingSetsElementExpr(GroupingSetsElementExpression newGroupingSetsElementExpr, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newGroupingSetsElementExpr, SQLQueryModelPackage.GROUPING__GROUPING_SETS_ELEMENT_EXPR, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setGroupingSetsElementExpr(GroupingSetsElementExpression newGroupingSetsElementExpr) {
+        if (newGroupingSetsElementExpr != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.GROUPING__GROUPING_SETS_ELEMENT_EXPR && newGroupingSetsElementExpr != null)) {
+            if (EcoreUtil.isAncestor(this, newGroupingSetsElementExpr))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newGroupingSetsElementExpr != null)
+                msgs = ((InternalEObject)newGroupingSetsElementExpr).eInverseAdd(this, SQLQueryModelPackage.GROUPING_SETS_ELEMENT_EXPRESSION__GROUPING, GroupingSetsElementExpression.class, msgs);
+            msgs = basicSetGroupingSetsElementExpr(newGroupingSetsElementExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.GROUPING__GROUPING_SETS_ELEMENT_EXPR, newGroupingSetsElementExpr, newGroupingSetsElementExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.GROUPING__GROUPING_SETS_ELEMENT_EXPR:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetGroupingSetsElementExpr((GroupingSetsElementExpression)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.GROUPING__GROUPING_SETS_ELEMENT_EXPR:
+                return basicSetGroupingSetsElementExpr(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLQueryModelPackage.GROUPING__GROUPING_SETS_ELEMENT_EXPR:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.GROUPING_SETS_ELEMENT_EXPRESSION__GROUPING, GroupingSetsElementExpression.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.GROUPING__GROUPING_SETS_ELEMENT_EXPR:
+                return getGroupingSetsElementExpr();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.GROUPING__GROUPING_SETS_ELEMENT_EXPR:
+                setGroupingSetsElementExpr((GroupingSetsElementExpression)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.GROUPING__GROUPING_SETS_ELEMENT_EXPR:
+                setGroupingSetsElementExpr((GroupingSetsElementExpression)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.GROUPING__GROUPING_SETS_ELEMENT_EXPR:
+                return getGroupingSetsElementExpr() != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //SQLGroupImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/GroupingSetsElementExpressionImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/GroupingSetsElementExpressionImpl.java
new file mode 100644
index 0000000..b2b627f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/GroupingSetsElementExpressionImpl.java
@@ -0,0 +1,264 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: GroupingSetsElementExpressionImpl.java,v 1.5 2008/01/31 02:57:15 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.Grouping;
+import org.eclipse.datatools.modelbase.sql.query.GroupingSets;
+import org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementExpression;
+import org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementSublist;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Grouping Sets Element Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.GroupingSetsElementExpressionImpl#getGroupingSetsElementSublist <em>Grouping Sets Element Sublist</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.GroupingSetsElementExpressionImpl#getGrouping <em>Grouping</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class GroupingSetsElementExpressionImpl extends GroupingSetsElementImpl implements GroupingSetsElementExpression {
+	/**
+     * The cached value of the '{@link #getGrouping() <em>Grouping</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getGrouping()
+     * @generated
+     * @ordered
+     */
+    protected Grouping grouping;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected GroupingSetsElementExpressionImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.GROUPING_SETS_ELEMENT_EXPRESSION;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public GroupingSetsElementSublist getGroupingSetsElementSublist() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.GROUPING_SETS_ELEMENT_EXPRESSION__GROUPING_SETS_ELEMENT_SUBLIST) return null;
+        return (GroupingSetsElementSublist)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetGroupingSetsElementSublist(GroupingSetsElementSublist newGroupingSetsElementSublist, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newGroupingSetsElementSublist, SQLQueryModelPackage.GROUPING_SETS_ELEMENT_EXPRESSION__GROUPING_SETS_ELEMENT_SUBLIST, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setGroupingSetsElementSublist(GroupingSetsElementSublist newGroupingSetsElementSublist) {
+        if (newGroupingSetsElementSublist != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.GROUPING_SETS_ELEMENT_EXPRESSION__GROUPING_SETS_ELEMENT_SUBLIST && newGroupingSetsElementSublist != null)) {
+            if (EcoreUtil.isAncestor(this, newGroupingSetsElementSublist))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newGroupingSetsElementSublist != null)
+                msgs = ((InternalEObject)newGroupingSetsElementSublist).eInverseAdd(this, SQLQueryModelPackage.GROUPING_SETS_ELEMENT_SUBLIST__GROUPING_SETS_ELEMENT_EXPR_LIST, GroupingSetsElementSublist.class, msgs);
+            msgs = basicSetGroupingSetsElementSublist(newGroupingSetsElementSublist, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.GROUPING_SETS_ELEMENT_EXPRESSION__GROUPING_SETS_ELEMENT_SUBLIST, newGroupingSetsElementSublist, newGroupingSetsElementSublist));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public Grouping getGrouping() {
+        return grouping;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetGrouping(Grouping newGrouping, NotificationChain msgs) {
+        Grouping oldGrouping = grouping;
+        grouping = newGrouping;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.GROUPING_SETS_ELEMENT_EXPRESSION__GROUPING, oldGrouping, newGrouping);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setGrouping(Grouping newGrouping) {
+        if (newGrouping != grouping) {
+            NotificationChain msgs = null;
+            if (grouping != null)
+                msgs = ((InternalEObject)grouping).eInverseRemove(this, SQLQueryModelPackage.GROUPING__GROUPING_SETS_ELEMENT_EXPR, Grouping.class, msgs);
+            if (newGrouping != null)
+                msgs = ((InternalEObject)newGrouping).eInverseAdd(this, SQLQueryModelPackage.GROUPING__GROUPING_SETS_ELEMENT_EXPR, Grouping.class, msgs);
+            msgs = basicSetGrouping(newGrouping, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.GROUPING_SETS_ELEMENT_EXPRESSION__GROUPING, newGrouping, newGrouping));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.GROUPING_SETS_ELEMENT_EXPRESSION__GROUPING_SETS_ELEMENT_SUBLIST:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetGroupingSetsElementSublist((GroupingSetsElementSublist)otherEnd, msgs);
+            case SQLQueryModelPackage.GROUPING_SETS_ELEMENT_EXPRESSION__GROUPING:
+                if (grouping != null)
+                    msgs = ((InternalEObject)grouping).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.GROUPING_SETS_ELEMENT_EXPRESSION__GROUPING, null, msgs);
+                return basicSetGrouping((Grouping)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.GROUPING_SETS_ELEMENT_EXPRESSION__GROUPING_SETS_ELEMENT_SUBLIST:
+                return basicSetGroupingSetsElementSublist(null, msgs);
+            case SQLQueryModelPackage.GROUPING_SETS_ELEMENT_EXPRESSION__GROUPING:
+                return basicSetGrouping(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLQueryModelPackage.GROUPING_SETS_ELEMENT_EXPRESSION__GROUPING_SETS_ELEMENT_SUBLIST:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.GROUPING_SETS_ELEMENT_SUBLIST__GROUPING_SETS_ELEMENT_EXPR_LIST, GroupingSetsElementSublist.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.GROUPING_SETS_ELEMENT_EXPRESSION__GROUPING_SETS_ELEMENT_SUBLIST:
+                return getGroupingSetsElementSublist();
+            case SQLQueryModelPackage.GROUPING_SETS_ELEMENT_EXPRESSION__GROUPING:
+                return getGrouping();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.GROUPING_SETS_ELEMENT_EXPRESSION__GROUPING_SETS_ELEMENT_SUBLIST:
+                setGroupingSetsElementSublist((GroupingSetsElementSublist)newValue);
+                return;
+            case SQLQueryModelPackage.GROUPING_SETS_ELEMENT_EXPRESSION__GROUPING:
+                setGrouping((Grouping)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.GROUPING_SETS_ELEMENT_EXPRESSION__GROUPING_SETS_ELEMENT_SUBLIST:
+                setGroupingSetsElementSublist((GroupingSetsElementSublist)null);
+                return;
+            case SQLQueryModelPackage.GROUPING_SETS_ELEMENT_EXPRESSION__GROUPING:
+                setGrouping((Grouping)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.GROUPING_SETS_ELEMENT_EXPRESSION__GROUPING_SETS_ELEMENT_SUBLIST:
+                return getGroupingSetsElementSublist() != null;
+            case SQLQueryModelPackage.GROUPING_SETS_ELEMENT_EXPRESSION__GROUPING:
+                return grouping != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //SQLGroupingSetsElementExpressionImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/GroupingSetsElementImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/GroupingSetsElementImpl.java
new file mode 100644
index 0000000..4f18555
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/GroupingSetsElementImpl.java
@@ -0,0 +1,192 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: GroupingSetsElementImpl.java,v 1.5 2008/01/31 02:57:15 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.GroupingSets;
+import org.eclipse.datatools.modelbase.sql.query.GroupingSetsElement;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Grouping Sets Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.GroupingSetsElementImpl#getGroupingSets <em>Grouping Sets</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class GroupingSetsElementImpl extends SQLQueryObjectImpl implements GroupingSetsElement {
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected GroupingSetsElementImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.GROUPING_SETS_ELEMENT;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public GroupingSets getGroupingSets() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.GROUPING_SETS_ELEMENT__GROUPING_SETS) return null;
+        return (GroupingSets)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetGroupingSets(GroupingSets newGroupingSets, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newGroupingSets, SQLQueryModelPackage.GROUPING_SETS_ELEMENT__GROUPING_SETS, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setGroupingSets(GroupingSets newGroupingSets) {
+        if (newGroupingSets != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.GROUPING_SETS_ELEMENT__GROUPING_SETS && newGroupingSets != null)) {
+            if (EcoreUtil.isAncestor(this, newGroupingSets))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newGroupingSets != null)
+                msgs = ((InternalEObject)newGroupingSets).eInverseAdd(this, SQLQueryModelPackage.GROUPING_SETS__GROUPING_SETS_ELEMENT_LIST, GroupingSets.class, msgs);
+            msgs = basicSetGroupingSets(newGroupingSets, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.GROUPING_SETS_ELEMENT__GROUPING_SETS, newGroupingSets, newGroupingSets));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.GROUPING_SETS_ELEMENT__GROUPING_SETS:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetGroupingSets((GroupingSets)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.GROUPING_SETS_ELEMENT__GROUPING_SETS:
+                return basicSetGroupingSets(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLQueryModelPackage.GROUPING_SETS_ELEMENT__GROUPING_SETS:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.GROUPING_SETS__GROUPING_SETS_ELEMENT_LIST, GroupingSets.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.GROUPING_SETS_ELEMENT__GROUPING_SETS:
+                return getGroupingSets();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.GROUPING_SETS_ELEMENT__GROUPING_SETS:
+                setGroupingSets((GroupingSets)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.GROUPING_SETS_ELEMENT__GROUPING_SETS:
+                setGroupingSets((GroupingSets)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.GROUPING_SETS_ELEMENT__GROUPING_SETS:
+                return getGroupingSets() != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //SQLGroupingSetsElementImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/GroupingSetsElementSublistImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/GroupingSetsElementSublistImpl.java
new file mode 100644
index 0000000..54e40e7
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/GroupingSetsElementSublistImpl.java
@@ -0,0 +1,159 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: GroupingSetsElementSublistImpl.java,v 1.5 2007/02/08 17:00:32 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.GroupingSets;
+import org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementExpression;
+import org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementSublist;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Grouping Sets Element Sublist</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.GroupingSetsElementSublistImpl#getGroupingSetsElementExprList <em>Grouping Sets Element Expr List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class GroupingSetsElementSublistImpl extends GroupingSetsElementImpl implements GroupingSetsElementSublist {
+	/**
+     * The cached value of the '{@link #getGroupingSetsElementExprList() <em>Grouping Sets Element Expr List</em>}' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getGroupingSetsElementExprList()
+     * @generated
+     * @ordered
+     */
+    protected EList groupingSetsElementExprList;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected GroupingSetsElementSublistImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.GROUPING_SETS_ELEMENT_SUBLIST;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getGroupingSetsElementExprList() {
+        if (groupingSetsElementExprList == null) {
+            groupingSetsElementExprList = new EObjectContainmentWithInverseEList(GroupingSetsElementExpression.class, this, SQLQueryModelPackage.GROUPING_SETS_ELEMENT_SUBLIST__GROUPING_SETS_ELEMENT_EXPR_LIST, SQLQueryModelPackage.GROUPING_SETS_ELEMENT_EXPRESSION__GROUPING_SETS_ELEMENT_SUBLIST);
+        }
+        return groupingSetsElementExprList;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.GROUPING_SETS_ELEMENT_SUBLIST__GROUPING_SETS_ELEMENT_EXPR_LIST:
+                return ((InternalEList)getGroupingSetsElementExprList()).basicAdd(otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.GROUPING_SETS_ELEMENT_SUBLIST__GROUPING_SETS_ELEMENT_EXPR_LIST:
+                return ((InternalEList)getGroupingSetsElementExprList()).basicRemove(otherEnd, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.GROUPING_SETS_ELEMENT_SUBLIST__GROUPING_SETS_ELEMENT_EXPR_LIST:
+                return getGroupingSetsElementExprList();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.GROUPING_SETS_ELEMENT_SUBLIST__GROUPING_SETS_ELEMENT_EXPR_LIST:
+                getGroupingSetsElementExprList().clear();
+                getGroupingSetsElementExprList().addAll((Collection)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.GROUPING_SETS_ELEMENT_SUBLIST__GROUPING_SETS_ELEMENT_EXPR_LIST:
+                getGroupingSetsElementExprList().clear();
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.GROUPING_SETS_ELEMENT_SUBLIST__GROUPING_SETS_ELEMENT_EXPR_LIST:
+                return groupingSetsElementExprList != null && !groupingSetsElementExprList.isEmpty();
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //SQLGroupingSetsElementSublistImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/GroupingSetsImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/GroupingSetsImpl.java
new file mode 100644
index 0000000..9747de0
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/GroupingSetsImpl.java
@@ -0,0 +1,159 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: GroupingSetsImpl.java,v 1.5 2007/02/08 17:00:27 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.GroupingSets;
+import org.eclipse.datatools.modelbase.sql.query.GroupingSetsElement;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Grouping Sets</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.GroupingSetsImpl#getGroupingSetsElementList <em>Grouping Sets Element List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class GroupingSetsImpl extends GroupingSpecificationImpl implements GroupingSets {
+	/**
+     * The cached value of the '{@link #getGroupingSetsElementList() <em>Grouping Sets Element List</em>}' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getGroupingSetsElementList()
+     * @generated
+     * @ordered
+     */
+    protected EList groupingSetsElementList;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected GroupingSetsImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.GROUPING_SETS;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getGroupingSetsElementList() {
+        if (groupingSetsElementList == null) {
+            groupingSetsElementList = new EObjectContainmentWithInverseEList(GroupingSetsElement.class, this, SQLQueryModelPackage.GROUPING_SETS__GROUPING_SETS_ELEMENT_LIST, SQLQueryModelPackage.GROUPING_SETS_ELEMENT__GROUPING_SETS);
+        }
+        return groupingSetsElementList;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.GROUPING_SETS__GROUPING_SETS_ELEMENT_LIST:
+                return ((InternalEList)getGroupingSetsElementList()).basicAdd(otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.GROUPING_SETS__GROUPING_SETS_ELEMENT_LIST:
+                return ((InternalEList)getGroupingSetsElementList()).basicRemove(otherEnd, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.GROUPING_SETS__GROUPING_SETS_ELEMENT_LIST:
+                return getGroupingSetsElementList();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.GROUPING_SETS__GROUPING_SETS_ELEMENT_LIST:
+                getGroupingSetsElementList().clear();
+                getGroupingSetsElementList().addAll((Collection)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.GROUPING_SETS__GROUPING_SETS_ELEMENT_LIST:
+                getGroupingSetsElementList().clear();
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.GROUPING_SETS__GROUPING_SETS_ELEMENT_LIST:
+                return groupingSetsElementList != null && !groupingSetsElementList.isEmpty();
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //SQLGroupingSetsImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/GroupingSpecificationImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/GroupingSpecificationImpl.java
new file mode 100644
index 0000000..a893a8f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/GroupingSpecificationImpl.java
@@ -0,0 +1,192 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: GroupingSpecificationImpl.java,v 1.5 2008/01/31 02:57:15 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.GroupingSpecification;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Group By Specification</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.GroupingSpecificationImpl#getQuerySelect <em>Query Select</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class GroupingSpecificationImpl extends SQLQueryObjectImpl implements GroupingSpecification {
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected GroupingSpecificationImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.GROUPING_SPECIFICATION;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QuerySelect getQuerySelect() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.GROUPING_SPECIFICATION__QUERY_SELECT) return null;
+        return (QuerySelect)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetQuerySelect(QuerySelect newQuerySelect, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newQuerySelect, SQLQueryModelPackage.GROUPING_SPECIFICATION__QUERY_SELECT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setQuerySelect(QuerySelect newQuerySelect) {
+        if (newQuerySelect != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.GROUPING_SPECIFICATION__QUERY_SELECT && newQuerySelect != null)) {
+            if (EcoreUtil.isAncestor(this, newQuerySelect))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newQuerySelect != null)
+                msgs = ((InternalEObject)newQuerySelect).eInverseAdd(this, SQLQueryModelPackage.QUERY_SELECT__GROUP_BY_CLAUSE, QuerySelect.class, msgs);
+            msgs = basicSetQuerySelect(newQuerySelect, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.GROUPING_SPECIFICATION__QUERY_SELECT, newQuerySelect, newQuerySelect));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.GROUPING_SPECIFICATION__QUERY_SELECT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetQuerySelect((QuerySelect)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.GROUPING_SPECIFICATION__QUERY_SELECT:
+                return basicSetQuerySelect(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLQueryModelPackage.GROUPING_SPECIFICATION__QUERY_SELECT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.QUERY_SELECT__GROUP_BY_CLAUSE, QuerySelect.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.GROUPING_SPECIFICATION__QUERY_SELECT:
+                return getQuerySelect();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.GROUPING_SPECIFICATION__QUERY_SELECT:
+                setQuerySelect((QuerySelect)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.GROUPING_SPECIFICATION__QUERY_SELECT:
+                setQuerySelect((QuerySelect)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.GROUPING_SPECIFICATION__QUERY_SELECT:
+                return getQuerySelect() != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //SQLGroupBySpecificationImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/MergeInsertSpecificationImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/MergeInsertSpecificationImpl.java
new file mode 100644
index 0000000..b0e0269
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/MergeInsertSpecificationImpl.java
@@ -0,0 +1,230 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.MergeInsertSpecification;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Merge Insert Specification</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.MergeInsertSpecificationImpl#getTargetColumnList <em>Target Column List</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.MergeInsertSpecificationImpl#getSourceValuesRow <em>Source Values Row</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class MergeInsertSpecificationImpl extends MergeOperationSpecificationImpl implements MergeInsertSpecification {
+    /**
+     * The cached value of the '{@link #getTargetColumnList() <em>Target Column List</em>}' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getTargetColumnList()
+     * @generated
+     * @ordered
+     */
+    protected EList targetColumnList;
+
+    /**
+     * The cached value of the '{@link #getSourceValuesRow() <em>Source Values Row</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getSourceValuesRow()
+     * @generated
+     * @ordered
+     */
+    protected ValuesRow sourceValuesRow;
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected MergeInsertSpecificationImpl() {
+        super();
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.MERGE_INSERT_SPECIFICATION;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getTargetColumnList() {
+        if (targetColumnList == null) {
+            targetColumnList = new EObjectWithInverseResolvingEList.ManyInverse(ValueExpressionColumn.class, this, SQLQueryModelPackage.MERGE_INSERT_SPECIFICATION__TARGET_COLUMN_LIST, SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__MERGE_INSERT_SPEC);
+        }
+        return targetColumnList;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public ValuesRow getSourceValuesRow() {
+        return sourceValuesRow;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetSourceValuesRow(ValuesRow newSourceValuesRow, NotificationChain msgs) {
+        ValuesRow oldSourceValuesRow = sourceValuesRow;
+        sourceValuesRow = newSourceValuesRow;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.MERGE_INSERT_SPECIFICATION__SOURCE_VALUES_ROW, oldSourceValuesRow, newSourceValuesRow);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setSourceValuesRow(ValuesRow newSourceValuesRow) {
+        if (newSourceValuesRow != sourceValuesRow) {
+            NotificationChain msgs = null;
+            if (sourceValuesRow != null)
+                msgs = ((InternalEObject)sourceValuesRow).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.MERGE_INSERT_SPECIFICATION__SOURCE_VALUES_ROW, null, msgs);
+            if (newSourceValuesRow != null)
+                msgs = ((InternalEObject)newSourceValuesRow).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.MERGE_INSERT_SPECIFICATION__SOURCE_VALUES_ROW, null, msgs);
+            msgs = basicSetSourceValuesRow(newSourceValuesRow, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.MERGE_INSERT_SPECIFICATION__SOURCE_VALUES_ROW, newSourceValuesRow, newSourceValuesRow));
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.MERGE_INSERT_SPECIFICATION__TARGET_COLUMN_LIST:
+                return ((InternalEList)getTargetColumnList()).basicAdd(otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.MERGE_INSERT_SPECIFICATION__TARGET_COLUMN_LIST:
+                return ((InternalEList)getTargetColumnList()).basicRemove(otherEnd, msgs);
+            case SQLQueryModelPackage.MERGE_INSERT_SPECIFICATION__SOURCE_VALUES_ROW:
+                return basicSetSourceValuesRow(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.MERGE_INSERT_SPECIFICATION__TARGET_COLUMN_LIST:
+                return getTargetColumnList();
+            case SQLQueryModelPackage.MERGE_INSERT_SPECIFICATION__SOURCE_VALUES_ROW:
+                return getSourceValuesRow();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.MERGE_INSERT_SPECIFICATION__TARGET_COLUMN_LIST:
+                getTargetColumnList().clear();
+                getTargetColumnList().addAll((Collection)newValue);
+                return;
+            case SQLQueryModelPackage.MERGE_INSERT_SPECIFICATION__SOURCE_VALUES_ROW:
+                setSourceValuesRow((ValuesRow)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.MERGE_INSERT_SPECIFICATION__TARGET_COLUMN_LIST:
+                getTargetColumnList().clear();
+                return;
+            case SQLQueryModelPackage.MERGE_INSERT_SPECIFICATION__SOURCE_VALUES_ROW:
+                setSourceValuesRow((ValuesRow)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.MERGE_INSERT_SPECIFICATION__TARGET_COLUMN_LIST:
+                return targetColumnList != null && !targetColumnList.isEmpty();
+            case SQLQueryModelPackage.MERGE_INSERT_SPECIFICATION__SOURCE_VALUES_ROW:
+                return sourceValuesRow != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //MergeInsertSpecificationImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/MergeOnConditionImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/MergeOnConditionImpl.java
new file mode 100644
index 0000000..97028f6
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/MergeOnConditionImpl.java
@@ -0,0 +1,262 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import org.eclipse.datatools.modelbase.sql.query.MergeOnCondition;
+import org.eclipse.datatools.modelbase.sql.query.QueryMergeStatement;
+import org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Merge On Condition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.MergeOnConditionImpl#getMergeStatement <em>Merge Statement</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.MergeOnConditionImpl#getSearchCondition <em>Search Condition</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class MergeOnConditionImpl extends SQLQueryObjectImpl implements MergeOnCondition {
+    /**
+     * The cached value of the '{@link #getSearchCondition() <em>Search Condition</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getSearchCondition()
+     * @generated
+     * @ordered
+     */
+    protected QuerySearchCondition searchCondition;
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected MergeOnConditionImpl() {
+        super();
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.MERGE_ON_CONDITION;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryMergeStatement getMergeStatement() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.MERGE_ON_CONDITION__MERGE_STATEMENT) return null;
+        return (QueryMergeStatement)eContainer();
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetMergeStatement(QueryMergeStatement newMergeStatement, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newMergeStatement, SQLQueryModelPackage.MERGE_ON_CONDITION__MERGE_STATEMENT, msgs);
+        return msgs;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setMergeStatement(QueryMergeStatement newMergeStatement) {
+        if (newMergeStatement != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.MERGE_ON_CONDITION__MERGE_STATEMENT && newMergeStatement != null)) {
+            if (EcoreUtil.isAncestor(this, newMergeStatement))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newMergeStatement != null)
+                msgs = ((InternalEObject)newMergeStatement).eInverseAdd(this, SQLQueryModelPackage.QUERY_MERGE_STATEMENT__ON_CONDITION, QueryMergeStatement.class, msgs);
+            msgs = basicSetMergeStatement(newMergeStatement, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.MERGE_ON_CONDITION__MERGE_STATEMENT, newMergeStatement, newMergeStatement));
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QuerySearchCondition getSearchCondition() {
+        return searchCondition;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetSearchCondition(QuerySearchCondition newSearchCondition, NotificationChain msgs) {
+        QuerySearchCondition oldSearchCondition = searchCondition;
+        searchCondition = newSearchCondition;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.MERGE_ON_CONDITION__SEARCH_CONDITION, oldSearchCondition, newSearchCondition);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setSearchCondition(QuerySearchCondition newSearchCondition) {
+        if (newSearchCondition != searchCondition) {
+            NotificationChain msgs = null;
+            if (searchCondition != null)
+                msgs = ((InternalEObject)searchCondition).eInverseRemove(this, SQLQueryModelPackage.QUERY_SEARCH_CONDITION__MERGE_ON_CONDITION, QuerySearchCondition.class, msgs);
+            if (newSearchCondition != null)
+                msgs = ((InternalEObject)newSearchCondition).eInverseAdd(this, SQLQueryModelPackage.QUERY_SEARCH_CONDITION__MERGE_ON_CONDITION, QuerySearchCondition.class, msgs);
+            msgs = basicSetSearchCondition(newSearchCondition, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.MERGE_ON_CONDITION__SEARCH_CONDITION, newSearchCondition, newSearchCondition));
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.MERGE_ON_CONDITION__MERGE_STATEMENT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetMergeStatement((QueryMergeStatement)otherEnd, msgs);
+            case SQLQueryModelPackage.MERGE_ON_CONDITION__SEARCH_CONDITION:
+                if (searchCondition != null)
+                    msgs = ((InternalEObject)searchCondition).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.MERGE_ON_CONDITION__SEARCH_CONDITION, null, msgs);
+                return basicSetSearchCondition((QuerySearchCondition)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.MERGE_ON_CONDITION__MERGE_STATEMENT:
+                return basicSetMergeStatement(null, msgs);
+            case SQLQueryModelPackage.MERGE_ON_CONDITION__SEARCH_CONDITION:
+                return basicSetSearchCondition(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLQueryModelPackage.MERGE_ON_CONDITION__MERGE_STATEMENT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.QUERY_MERGE_STATEMENT__ON_CONDITION, QueryMergeStatement.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.MERGE_ON_CONDITION__MERGE_STATEMENT:
+                return getMergeStatement();
+            case SQLQueryModelPackage.MERGE_ON_CONDITION__SEARCH_CONDITION:
+                return getSearchCondition();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.MERGE_ON_CONDITION__MERGE_STATEMENT:
+                setMergeStatement((QueryMergeStatement)newValue);
+                return;
+            case SQLQueryModelPackage.MERGE_ON_CONDITION__SEARCH_CONDITION:
+                setSearchCondition((QuerySearchCondition)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.MERGE_ON_CONDITION__MERGE_STATEMENT:
+                setMergeStatement((QueryMergeStatement)null);
+                return;
+            case SQLQueryModelPackage.MERGE_ON_CONDITION__SEARCH_CONDITION:
+                setSearchCondition((QuerySearchCondition)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.MERGE_ON_CONDITION__MERGE_STATEMENT:
+                return getMergeStatement() != null;
+            case SQLQueryModelPackage.MERGE_ON_CONDITION__SEARCH_CONDITION:
+                return searchCondition != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //MergeOnConditionImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/MergeOperationSpecificationImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/MergeOperationSpecificationImpl.java
new file mode 100644
index 0000000..9b189e6
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/MergeOperationSpecificationImpl.java
@@ -0,0 +1,191 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import org.eclipse.datatools.modelbase.sql.query.MergeOperationSpecification;
+import org.eclipse.datatools.modelbase.sql.query.QueryMergeStatement;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Merge Operation Specification</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.MergeOperationSpecificationImpl#getMergeStatement <em>Merge Statement</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class MergeOperationSpecificationImpl extends SQLQueryObjectImpl implements MergeOperationSpecification {
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected MergeOperationSpecificationImpl() {
+        super();
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.MERGE_OPERATION_SPECIFICATION;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryMergeStatement getMergeStatement() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.MERGE_OPERATION_SPECIFICATION__MERGE_STATEMENT) return null;
+        return (QueryMergeStatement)eContainer();
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetMergeStatement(QueryMergeStatement newMergeStatement, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newMergeStatement, SQLQueryModelPackage.MERGE_OPERATION_SPECIFICATION__MERGE_STATEMENT, msgs);
+        return msgs;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setMergeStatement(QueryMergeStatement newMergeStatement) {
+        if (newMergeStatement != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.MERGE_OPERATION_SPECIFICATION__MERGE_STATEMENT && newMergeStatement != null)) {
+            if (EcoreUtil.isAncestor(this, newMergeStatement))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newMergeStatement != null)
+                msgs = ((InternalEObject)newMergeStatement).eInverseAdd(this, SQLQueryModelPackage.QUERY_MERGE_STATEMENT__OPERATION_SPEC_LIST, QueryMergeStatement.class, msgs);
+            msgs = basicSetMergeStatement(newMergeStatement, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.MERGE_OPERATION_SPECIFICATION__MERGE_STATEMENT, newMergeStatement, newMergeStatement));
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.MERGE_OPERATION_SPECIFICATION__MERGE_STATEMENT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetMergeStatement((QueryMergeStatement)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.MERGE_OPERATION_SPECIFICATION__MERGE_STATEMENT:
+                return basicSetMergeStatement(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLQueryModelPackage.MERGE_OPERATION_SPECIFICATION__MERGE_STATEMENT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.QUERY_MERGE_STATEMENT__OPERATION_SPEC_LIST, QueryMergeStatement.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.MERGE_OPERATION_SPECIFICATION__MERGE_STATEMENT:
+                return getMergeStatement();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.MERGE_OPERATION_SPECIFICATION__MERGE_STATEMENT:
+                setMergeStatement((QueryMergeStatement)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.MERGE_OPERATION_SPECIFICATION__MERGE_STATEMENT:
+                setMergeStatement((QueryMergeStatement)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.MERGE_OPERATION_SPECIFICATION__MERGE_STATEMENT:
+                return getMergeStatement() != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //MergeOperationSpecificationImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/MergeSourceTableImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/MergeSourceTableImpl.java
new file mode 100644
index 0000000..ea5d945
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/MergeSourceTableImpl.java
@@ -0,0 +1,301 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.MergeSourceTable;
+import org.eclipse.datatools.modelbase.sql.query.QueryMergeStatement;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.TableReference;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Merge Source Table</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.MergeSourceTableImpl#getQueryMergeStatement <em>Query Merge Statement</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.MergeSourceTableImpl#getMergeStatement <em>Merge Statement</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.MergeSourceTableImpl#getTableRef <em>Table Ref</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class MergeSourceTableImpl extends SQLQueryObjectImpl implements MergeSourceTable {
+    /**
+     * The cached value of the '{@link #getQueryMergeStatement() <em>Query Merge Statement</em>}' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getQueryMergeStatement()
+     * @generated
+     * @ordered
+     */
+    protected EList queryMergeStatement;
+
+    /**
+     * The cached value of the '{@link #getTableRef() <em>Table Ref</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getTableRef()
+     * @generated
+     * @ordered
+     */
+    protected TableReference tableRef;
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected MergeSourceTableImpl() {
+        super();
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.MERGE_SOURCE_TABLE;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getQueryMergeStatement() {
+        if (queryMergeStatement == null) {
+            queryMergeStatement = new EObjectResolvingEList(QueryMergeStatement.class, this, SQLQueryModelPackage.MERGE_SOURCE_TABLE__QUERY_MERGE_STATEMENT);
+        }
+        return queryMergeStatement;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryMergeStatement getMergeStatement() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.MERGE_SOURCE_TABLE__MERGE_STATEMENT) return null;
+        return (QueryMergeStatement)eContainer();
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetMergeStatement(QueryMergeStatement newMergeStatement, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newMergeStatement, SQLQueryModelPackage.MERGE_SOURCE_TABLE__MERGE_STATEMENT, msgs);
+        return msgs;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setMergeStatement(QueryMergeStatement newMergeStatement) {
+        if (newMergeStatement != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.MERGE_SOURCE_TABLE__MERGE_STATEMENT && newMergeStatement != null)) {
+            if (EcoreUtil.isAncestor(this, newMergeStatement))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newMergeStatement != null)
+                msgs = ((InternalEObject)newMergeStatement).eInverseAdd(this, SQLQueryModelPackage.QUERY_MERGE_STATEMENT__SOURCE_TABLE, QueryMergeStatement.class, msgs);
+            msgs = basicSetMergeStatement(newMergeStatement, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.MERGE_SOURCE_TABLE__MERGE_STATEMENT, newMergeStatement, newMergeStatement));
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public TableReference getTableRef() {
+        return tableRef;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetTableRef(TableReference newTableRef, NotificationChain msgs) {
+        TableReference oldTableRef = tableRef;
+        tableRef = newTableRef;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.MERGE_SOURCE_TABLE__TABLE_REF, oldTableRef, newTableRef);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setTableRef(TableReference newTableRef) {
+        if (newTableRef != tableRef) {
+            NotificationChain msgs = null;
+            if (tableRef != null)
+                msgs = ((InternalEObject)tableRef).eInverseRemove(this, SQLQueryModelPackage.TABLE_REFERENCE__MERGE_SOURCE_TABLE, TableReference.class, msgs);
+            if (newTableRef != null)
+                msgs = ((InternalEObject)newTableRef).eInverseAdd(this, SQLQueryModelPackage.TABLE_REFERENCE__MERGE_SOURCE_TABLE, TableReference.class, msgs);
+            msgs = basicSetTableRef(newTableRef, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.MERGE_SOURCE_TABLE__TABLE_REF, newTableRef, newTableRef));
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.MERGE_SOURCE_TABLE__MERGE_STATEMENT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetMergeStatement((QueryMergeStatement)otherEnd, msgs);
+            case SQLQueryModelPackage.MERGE_SOURCE_TABLE__TABLE_REF:
+                if (tableRef != null)
+                    msgs = ((InternalEObject)tableRef).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.MERGE_SOURCE_TABLE__TABLE_REF, null, msgs);
+                return basicSetTableRef((TableReference)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.MERGE_SOURCE_TABLE__MERGE_STATEMENT:
+                return basicSetMergeStatement(null, msgs);
+            case SQLQueryModelPackage.MERGE_SOURCE_TABLE__TABLE_REF:
+                return basicSetTableRef(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLQueryModelPackage.MERGE_SOURCE_TABLE__MERGE_STATEMENT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.QUERY_MERGE_STATEMENT__SOURCE_TABLE, QueryMergeStatement.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.MERGE_SOURCE_TABLE__QUERY_MERGE_STATEMENT:
+                return getQueryMergeStatement();
+            case SQLQueryModelPackage.MERGE_SOURCE_TABLE__MERGE_STATEMENT:
+                return getMergeStatement();
+            case SQLQueryModelPackage.MERGE_SOURCE_TABLE__TABLE_REF:
+                return getTableRef();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.MERGE_SOURCE_TABLE__QUERY_MERGE_STATEMENT:
+                getQueryMergeStatement().clear();
+                getQueryMergeStatement().addAll((Collection)newValue);
+                return;
+            case SQLQueryModelPackage.MERGE_SOURCE_TABLE__MERGE_STATEMENT:
+                setMergeStatement((QueryMergeStatement)newValue);
+                return;
+            case SQLQueryModelPackage.MERGE_SOURCE_TABLE__TABLE_REF:
+                setTableRef((TableReference)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.MERGE_SOURCE_TABLE__QUERY_MERGE_STATEMENT:
+                getQueryMergeStatement().clear();
+                return;
+            case SQLQueryModelPackage.MERGE_SOURCE_TABLE__MERGE_STATEMENT:
+                setMergeStatement((QueryMergeStatement)null);
+                return;
+            case SQLQueryModelPackage.MERGE_SOURCE_TABLE__TABLE_REF:
+                setTableRef((TableReference)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.MERGE_SOURCE_TABLE__QUERY_MERGE_STATEMENT:
+                return queryMergeStatement != null && !queryMergeStatement.isEmpty();
+            case SQLQueryModelPackage.MERGE_SOURCE_TABLE__MERGE_STATEMENT:
+                return getMergeStatement() != null;
+            case SQLQueryModelPackage.MERGE_SOURCE_TABLE__TABLE_REF:
+                return tableRef != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //MergeSourceTableImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/MergeTargetTableImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/MergeTargetTableImpl.java
new file mode 100644
index 0000000..7d7f01c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/MergeTargetTableImpl.java
@@ -0,0 +1,262 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import org.eclipse.datatools.modelbase.sql.query.MergeTargetTable;
+import org.eclipse.datatools.modelbase.sql.query.QueryMergeStatement;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.TableExpression;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Merge Target Table</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.MergeTargetTableImpl#getMergeStatement <em>Merge Statement</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.MergeTargetTableImpl#getTableExpr <em>Table Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class MergeTargetTableImpl extends SQLQueryObjectImpl implements MergeTargetTable {
+    /**
+     * The cached value of the '{@link #getTableExpr() <em>Table Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getTableExpr()
+     * @generated
+     * @ordered
+     */
+    protected TableExpression tableExpr;
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected MergeTargetTableImpl() {
+        super();
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.MERGE_TARGET_TABLE;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryMergeStatement getMergeStatement() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.MERGE_TARGET_TABLE__MERGE_STATEMENT) return null;
+        return (QueryMergeStatement)eContainer();
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetMergeStatement(QueryMergeStatement newMergeStatement, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newMergeStatement, SQLQueryModelPackage.MERGE_TARGET_TABLE__MERGE_STATEMENT, msgs);
+        return msgs;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setMergeStatement(QueryMergeStatement newMergeStatement) {
+        if (newMergeStatement != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.MERGE_TARGET_TABLE__MERGE_STATEMENT && newMergeStatement != null)) {
+            if (EcoreUtil.isAncestor(this, newMergeStatement))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newMergeStatement != null)
+                msgs = ((InternalEObject)newMergeStatement).eInverseAdd(this, SQLQueryModelPackage.QUERY_MERGE_STATEMENT__TARGET_TABLE, QueryMergeStatement.class, msgs);
+            msgs = basicSetMergeStatement(newMergeStatement, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.MERGE_TARGET_TABLE__MERGE_STATEMENT, newMergeStatement, newMergeStatement));
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public TableExpression getTableExpr() {
+        return tableExpr;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetTableExpr(TableExpression newTableExpr, NotificationChain msgs) {
+        TableExpression oldTableExpr = tableExpr;
+        tableExpr = newTableExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.MERGE_TARGET_TABLE__TABLE_EXPR, oldTableExpr, newTableExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setTableExpr(TableExpression newTableExpr) {
+        if (newTableExpr != tableExpr) {
+            NotificationChain msgs = null;
+            if (tableExpr != null)
+                msgs = ((InternalEObject)tableExpr).eInverseRemove(this, SQLQueryModelPackage.TABLE_EXPRESSION__MERGE_TARGET_TABLE, TableExpression.class, msgs);
+            if (newTableExpr != null)
+                msgs = ((InternalEObject)newTableExpr).eInverseAdd(this, SQLQueryModelPackage.TABLE_EXPRESSION__MERGE_TARGET_TABLE, TableExpression.class, msgs);
+            msgs = basicSetTableExpr(newTableExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.MERGE_TARGET_TABLE__TABLE_EXPR, newTableExpr, newTableExpr));
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.MERGE_TARGET_TABLE__MERGE_STATEMENT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetMergeStatement((QueryMergeStatement)otherEnd, msgs);
+            case SQLQueryModelPackage.MERGE_TARGET_TABLE__TABLE_EXPR:
+                if (tableExpr != null)
+                    msgs = ((InternalEObject)tableExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.MERGE_TARGET_TABLE__TABLE_EXPR, null, msgs);
+                return basicSetTableExpr((TableExpression)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.MERGE_TARGET_TABLE__MERGE_STATEMENT:
+                return basicSetMergeStatement(null, msgs);
+            case SQLQueryModelPackage.MERGE_TARGET_TABLE__TABLE_EXPR:
+                return basicSetTableExpr(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLQueryModelPackage.MERGE_TARGET_TABLE__MERGE_STATEMENT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.QUERY_MERGE_STATEMENT__TARGET_TABLE, QueryMergeStatement.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.MERGE_TARGET_TABLE__MERGE_STATEMENT:
+                return getMergeStatement();
+            case SQLQueryModelPackage.MERGE_TARGET_TABLE__TABLE_EXPR:
+                return getTableExpr();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.MERGE_TARGET_TABLE__MERGE_STATEMENT:
+                setMergeStatement((QueryMergeStatement)newValue);
+                return;
+            case SQLQueryModelPackage.MERGE_TARGET_TABLE__TABLE_EXPR:
+                setTableExpr((TableExpression)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.MERGE_TARGET_TABLE__MERGE_STATEMENT:
+                setMergeStatement((QueryMergeStatement)null);
+                return;
+            case SQLQueryModelPackage.MERGE_TARGET_TABLE__TABLE_EXPR:
+                setTableExpr((TableExpression)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.MERGE_TARGET_TABLE__MERGE_STATEMENT:
+                return getMergeStatement() != null;
+            case SQLQueryModelPackage.MERGE_TARGET_TABLE__TABLE_EXPR:
+                return tableExpr != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //MergeTargetTableImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/MergeUpdateSpecificationImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/MergeUpdateSpecificationImpl.java
new file mode 100644
index 0000000..45a0478
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/MergeUpdateSpecificationImpl.java
@@ -0,0 +1,160 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.MergeUpdateSpecification;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Merge Update Specification</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.MergeUpdateSpecificationImpl#getAssignementExprList <em>Assignement Expr List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class MergeUpdateSpecificationImpl extends MergeOperationSpecificationImpl implements MergeUpdateSpecification {
+    /**
+     * The cached value of the '{@link #getAssignementExprList() <em>Assignement Expr List</em>}' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getAssignementExprList()
+     * @generated
+     * @ordered
+     */
+    protected EList assignementExprList;
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected MergeUpdateSpecificationImpl() {
+        super();
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.MERGE_UPDATE_SPECIFICATION;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getAssignementExprList() {
+        if (assignementExprList == null) {
+            assignementExprList = new EObjectContainmentWithInverseEList(UpdateAssignmentExpression.class, this, SQLQueryModelPackage.MERGE_UPDATE_SPECIFICATION__ASSIGNEMENT_EXPR_LIST, SQLQueryModelPackage.UPDATE_ASSIGNMENT_EXPRESSION__MERGE_UPDATE_SPEC);
+        }
+        return assignementExprList;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.MERGE_UPDATE_SPECIFICATION__ASSIGNEMENT_EXPR_LIST:
+                return ((InternalEList)getAssignementExprList()).basicAdd(otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.MERGE_UPDATE_SPECIFICATION__ASSIGNEMENT_EXPR_LIST:
+                return ((InternalEList)getAssignementExprList()).basicRemove(otherEnd, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.MERGE_UPDATE_SPECIFICATION__ASSIGNEMENT_EXPR_LIST:
+                return getAssignementExprList();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.MERGE_UPDATE_SPECIFICATION__ASSIGNEMENT_EXPR_LIST:
+                getAssignementExprList().clear();
+                getAssignementExprList().addAll((Collection)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.MERGE_UPDATE_SPECIFICATION__ASSIGNEMENT_EXPR_LIST:
+                getAssignementExprList().clear();
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.MERGE_UPDATE_SPECIFICATION__ASSIGNEMENT_EXPR_LIST:
+                return assignementExprList != null && !assignementExprList.isEmpty();
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //MergeUpdateSpecificationImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/OrderByOrdinalImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/OrderByOrdinalImpl.java
new file mode 100644
index 0000000..544a195
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/OrderByOrdinalImpl.java
@@ -0,0 +1,170 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: OrderByOrdinalImpl.java,v 1.5 2007/02/08 17:00:29 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.NullOrderingType;
+import org.eclipse.datatools.modelbase.sql.query.OrderByOrdinal;
+import org.eclipse.datatools.modelbase.sql.query.OrderingSpecType;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelectStatement;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Order By Ordinal</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.OrderByOrdinalImpl#getOrdinalValue <em>Ordinal Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class OrderByOrdinalImpl extends OrderBySpecificationImpl implements OrderByOrdinal {
+	/**
+     * The default value of the '{@link #getOrdinalValue() <em>Ordinal Value</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getOrdinalValue()
+     * @generated
+     * @ordered
+     */
+    protected static final int ORDINAL_VALUE_EDEFAULT = 0;
+
+	/**
+     * The cached value of the '{@link #getOrdinalValue() <em>Ordinal Value</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getOrdinalValue()
+     * @generated
+     * @ordered
+     */
+    protected int ordinalValue = ORDINAL_VALUE_EDEFAULT;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected OrderByOrdinalImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.ORDER_BY_ORDINAL;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public int getOrdinalValue() {
+        return ordinalValue;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void setOrdinalValue(int newOrdinalValue) {
+        int oldOrdinalValue = ordinalValue;
+        ordinalValue = newOrdinalValue;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.ORDER_BY_ORDINAL__ORDINAL_VALUE, oldOrdinalValue, ordinalValue));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.ORDER_BY_ORDINAL__ORDINAL_VALUE:
+                return new Integer(getOrdinalValue());
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.ORDER_BY_ORDINAL__ORDINAL_VALUE:
+                setOrdinalValue(((Integer)newValue).intValue());
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.ORDER_BY_ORDINAL__ORDINAL_VALUE:
+                setOrdinalValue(ORDINAL_VALUE_EDEFAULT);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.ORDER_BY_ORDINAL__ORDINAL_VALUE:
+                return ordinalValue != ORDINAL_VALUE_EDEFAULT;
+        }
+        return super.eIsSet(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (ordinalValue: ");
+        result.append(ordinalValue);
+        result.append(')');
+        return result.toString();
+    }
+
+} //SQLOrderByOrdinalImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/OrderByResultColumnImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/OrderByResultColumnImpl.java
new file mode 100644
index 0000000..7160653
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/OrderByResultColumnImpl.java
@@ -0,0 +1,211 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: OrderByResultColumnImpl.java,v 1.5 2007/02/08 17:00:30 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.NullOrderingType;
+import org.eclipse.datatools.modelbase.sql.query.OrderByResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.OrderingSpecType;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelectStatement;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Order By Result Column</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.OrderByResultColumnImpl#getResultCol <em>Result Col</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class OrderByResultColumnImpl extends OrderBySpecificationImpl implements OrderByResultColumn {
+	/**
+     * The cached value of the '{@link #getResultCol() <em>Result Col</em>}' reference.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @see #getResultCol()
+     * @generated
+     * @ordered
+     */
+  protected ResultColumn resultCol;
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected OrderByResultColumnImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.ORDER_BY_RESULT_COLUMN;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public ResultColumn getResultCol() {
+        if (resultCol != null && resultCol.eIsProxy()) {
+            InternalEObject oldResultCol = (InternalEObject)resultCol;
+            resultCol = (ResultColumn)eResolveProxy(oldResultCol);
+            if (resultCol != oldResultCol) {
+                if (eNotificationRequired())
+                    eNotify(new ENotificationImpl(this, Notification.RESOLVE, SQLQueryModelPackage.ORDER_BY_RESULT_COLUMN__RESULT_COL, oldResultCol, resultCol));
+            }
+        }
+        return resultCol;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public ResultColumn basicGetResultCol() {
+        return resultCol;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public NotificationChain basicSetResultCol(ResultColumn newResultCol, NotificationChain msgs) {
+        ResultColumn oldResultCol = resultCol;
+        resultCol = newResultCol;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.ORDER_BY_RESULT_COLUMN__RESULT_COL, oldResultCol, newResultCol);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void setResultCol(ResultColumn newResultCol) {
+        if (newResultCol != resultCol) {
+            NotificationChain msgs = null;
+            if (resultCol != null)
+                msgs = ((InternalEObject)resultCol).eInverseRemove(this, SQLQueryModelPackage.RESULT_COLUMN__ORDER_BY_RESULT_COL, ResultColumn.class, msgs);
+            if (newResultCol != null)
+                msgs = ((InternalEObject)newResultCol).eInverseAdd(this, SQLQueryModelPackage.RESULT_COLUMN__ORDER_BY_RESULT_COL, ResultColumn.class, msgs);
+            msgs = basicSetResultCol(newResultCol, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.ORDER_BY_RESULT_COLUMN__RESULT_COL, newResultCol, newResultCol));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.ORDER_BY_RESULT_COLUMN__RESULT_COL:
+                if (resultCol != null)
+                    msgs = ((InternalEObject)resultCol).eInverseRemove(this, SQLQueryModelPackage.RESULT_COLUMN__ORDER_BY_RESULT_COL, ResultColumn.class, msgs);
+                return basicSetResultCol((ResultColumn)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.ORDER_BY_RESULT_COLUMN__RESULT_COL:
+                return basicSetResultCol(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.ORDER_BY_RESULT_COLUMN__RESULT_COL:
+                if (resolve) return getResultCol();
+                return basicGetResultCol();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.ORDER_BY_RESULT_COLUMN__RESULT_COL:
+                setResultCol((ResultColumn)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.ORDER_BY_RESULT_COLUMN__RESULT_COL:
+                setResultCol((ResultColumn)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.ORDER_BY_RESULT_COLUMN__RESULT_COL:
+                return resultCol != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //OrderByResultColumnImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/OrderBySpecificationImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/OrderBySpecificationImpl.java
new file mode 100644
index 0000000..e2905cf
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/OrderBySpecificationImpl.java
@@ -0,0 +1,429 @@
+/**
+ * </copyright>
+ *
+ * $Id: OrderBySpecificationImpl.java,v 1.5 2008/01/31 02:57:15 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.NullOrderingType;
+import org.eclipse.datatools.modelbase.sql.query.OrderBySpecification;
+import org.eclipse.datatools.modelbase.sql.query.OrderingSpecType;
+import org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelectStatement;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Order By Specification</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.OrderBySpecificationImpl#isDescending <em>Descending</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.OrderBySpecificationImpl#getOrderingSpecOption <em>Ordering Spec Option</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.OrderBySpecificationImpl#getNullOrderingOption <em>Null Ordering Option</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.OrderBySpecificationImpl#getSelectStatement <em>Select Statement</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.OrderBySpecificationImpl#getQuery <em>Query</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class OrderBySpecificationImpl extends SQLQueryObjectImpl implements OrderBySpecification {
+	/**
+     * The default value of the '{@link #isDescending() <em>Descending</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #isDescending()
+     * @generated
+     * @ordered
+     */
+    protected static final boolean DESCENDING_EDEFAULT = false;
+
+	/**
+     * The cached value of the '{@link #isDescending() <em>Descending</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #isDescending()
+     * @generated
+     * @ordered
+     */
+    protected boolean descending = DESCENDING_EDEFAULT;
+
+	/**
+     * The default value of the '{@link #getOrderingSpecOption() <em>Ordering Spec Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getOrderingSpecOption()
+     * @generated
+     * @ordered
+     */
+    protected static final OrderingSpecType ORDERING_SPEC_OPTION_EDEFAULT = OrderingSpecType.NONE_LITERAL;
+
+	/**
+     * The cached value of the '{@link #getOrderingSpecOption() <em>Ordering Spec Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getOrderingSpecOption()
+     * @generated
+     * @ordered
+     */
+    protected OrderingSpecType orderingSpecOption = ORDERING_SPEC_OPTION_EDEFAULT;
+
+	/**
+     * The default value of the '{@link #getNullOrderingOption() <em>Null Ordering Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getNullOrderingOption()
+     * @generated
+     * @ordered
+     */
+    protected static final NullOrderingType NULL_ORDERING_OPTION_EDEFAULT = NullOrderingType.NONE_LITERAL;
+
+	/**
+     * The cached value of the '{@link #getNullOrderingOption() <em>Null Ordering Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getNullOrderingOption()
+     * @generated
+     * @ordered
+     */
+    protected NullOrderingType nullOrderingOption = NULL_ORDERING_OPTION_EDEFAULT;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected OrderBySpecificationImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.ORDER_BY_SPECIFICATION;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public boolean isDescending() {
+        return descending;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setDescending(boolean newDescending) {
+        boolean oldDescending = descending;
+        descending = newDescending;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.ORDER_BY_SPECIFICATION__DESCENDING, oldDescending, descending));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public OrderingSpecType getOrderingSpecOption() {
+        return orderingSpecOption;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setOrderingSpecOption(OrderingSpecType newOrderingSpecOption) {
+        OrderingSpecType oldOrderingSpecOption = orderingSpecOption;
+        orderingSpecOption = newOrderingSpecOption == null ? ORDERING_SPEC_OPTION_EDEFAULT : newOrderingSpecOption;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.ORDER_BY_SPECIFICATION__ORDERING_SPEC_OPTION, oldOrderingSpecOption, orderingSpecOption));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NullOrderingType getNullOrderingOption() {
+        return nullOrderingOption;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setNullOrderingOption(NullOrderingType newNullOrderingOption) {
+        NullOrderingType oldNullOrderingOption = nullOrderingOption;
+        nullOrderingOption = newNullOrderingOption == null ? NULL_ORDERING_OPTION_EDEFAULT : newNullOrderingOption;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.ORDER_BY_SPECIFICATION__NULL_ORDERING_OPTION, oldNullOrderingOption, nullOrderingOption));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QuerySelectStatement getSelectStatement() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.ORDER_BY_SPECIFICATION__SELECT_STATEMENT) return null;
+        return (QuerySelectStatement)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetSelectStatement(QuerySelectStatement newSelectStatement, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newSelectStatement, SQLQueryModelPackage.ORDER_BY_SPECIFICATION__SELECT_STATEMENT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setSelectStatement(QuerySelectStatement newSelectStatement) {
+        if (newSelectStatement != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.ORDER_BY_SPECIFICATION__SELECT_STATEMENT && newSelectStatement != null)) {
+            if (EcoreUtil.isAncestor(this, newSelectStatement))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newSelectStatement != null)
+                msgs = ((InternalEObject)newSelectStatement).eInverseAdd(this, SQLQueryModelPackage.QUERY_SELECT_STATEMENT__ORDER_BY_CLAUSE, QuerySelectStatement.class, msgs);
+            msgs = basicSetSelectStatement(newSelectStatement, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.ORDER_BY_SPECIFICATION__SELECT_STATEMENT, newSelectStatement, newSelectStatement));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryExpressionBody getQuery() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.ORDER_BY_SPECIFICATION__QUERY) return null;
+        return (QueryExpressionBody)eContainer();
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetQuery(QueryExpressionBody newQuery, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newQuery, SQLQueryModelPackage.ORDER_BY_SPECIFICATION__QUERY, msgs);
+        return msgs;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setQuery(QueryExpressionBody newQuery) {
+        if (newQuery != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.ORDER_BY_SPECIFICATION__QUERY && newQuery != null)) {
+            if (EcoreUtil.isAncestor(this, newQuery))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newQuery != null)
+                msgs = ((InternalEObject)newQuery).eInverseAdd(this, SQLQueryModelPackage.QUERY_EXPRESSION_BODY__SORT_SPEC_LIST, QueryExpressionBody.class, msgs);
+            msgs = basicSetQuery(newQuery, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.ORDER_BY_SPECIFICATION__QUERY, newQuery, newQuery));
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.ORDER_BY_SPECIFICATION__SELECT_STATEMENT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetSelectStatement((QuerySelectStatement)otherEnd, msgs);
+            case SQLQueryModelPackage.ORDER_BY_SPECIFICATION__QUERY:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetQuery((QueryExpressionBody)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.ORDER_BY_SPECIFICATION__SELECT_STATEMENT:
+                return basicSetSelectStatement(null, msgs);
+            case SQLQueryModelPackage.ORDER_BY_SPECIFICATION__QUERY:
+                return basicSetQuery(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLQueryModelPackage.ORDER_BY_SPECIFICATION__SELECT_STATEMENT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.QUERY_SELECT_STATEMENT__ORDER_BY_CLAUSE, QuerySelectStatement.class, msgs);
+            case SQLQueryModelPackage.ORDER_BY_SPECIFICATION__QUERY:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.QUERY_EXPRESSION_BODY__SORT_SPEC_LIST, QueryExpressionBody.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.ORDER_BY_SPECIFICATION__DESCENDING:
+                return isDescending() ? Boolean.TRUE : Boolean.FALSE;
+            case SQLQueryModelPackage.ORDER_BY_SPECIFICATION__ORDERING_SPEC_OPTION:
+                return getOrderingSpecOption();
+            case SQLQueryModelPackage.ORDER_BY_SPECIFICATION__NULL_ORDERING_OPTION:
+                return getNullOrderingOption();
+            case SQLQueryModelPackage.ORDER_BY_SPECIFICATION__SELECT_STATEMENT:
+                return getSelectStatement();
+            case SQLQueryModelPackage.ORDER_BY_SPECIFICATION__QUERY:
+                return getQuery();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.ORDER_BY_SPECIFICATION__DESCENDING:
+                setDescending(((Boolean)newValue).booleanValue());
+                return;
+            case SQLQueryModelPackage.ORDER_BY_SPECIFICATION__ORDERING_SPEC_OPTION:
+                setOrderingSpecOption((OrderingSpecType)newValue);
+                return;
+            case SQLQueryModelPackage.ORDER_BY_SPECIFICATION__NULL_ORDERING_OPTION:
+                setNullOrderingOption((NullOrderingType)newValue);
+                return;
+            case SQLQueryModelPackage.ORDER_BY_SPECIFICATION__SELECT_STATEMENT:
+                setSelectStatement((QuerySelectStatement)newValue);
+                return;
+            case SQLQueryModelPackage.ORDER_BY_SPECIFICATION__QUERY:
+                setQuery((QueryExpressionBody)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.ORDER_BY_SPECIFICATION__DESCENDING:
+                setDescending(DESCENDING_EDEFAULT);
+                return;
+            case SQLQueryModelPackage.ORDER_BY_SPECIFICATION__ORDERING_SPEC_OPTION:
+                setOrderingSpecOption(ORDERING_SPEC_OPTION_EDEFAULT);
+                return;
+            case SQLQueryModelPackage.ORDER_BY_SPECIFICATION__NULL_ORDERING_OPTION:
+                setNullOrderingOption(NULL_ORDERING_OPTION_EDEFAULT);
+                return;
+            case SQLQueryModelPackage.ORDER_BY_SPECIFICATION__SELECT_STATEMENT:
+                setSelectStatement((QuerySelectStatement)null);
+                return;
+            case SQLQueryModelPackage.ORDER_BY_SPECIFICATION__QUERY:
+                setQuery((QueryExpressionBody)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.ORDER_BY_SPECIFICATION__DESCENDING:
+                return descending != DESCENDING_EDEFAULT;
+            case SQLQueryModelPackage.ORDER_BY_SPECIFICATION__ORDERING_SPEC_OPTION:
+                return orderingSpecOption != ORDERING_SPEC_OPTION_EDEFAULT;
+            case SQLQueryModelPackage.ORDER_BY_SPECIFICATION__NULL_ORDERING_OPTION:
+                return nullOrderingOption != NULL_ORDERING_OPTION_EDEFAULT;
+            case SQLQueryModelPackage.ORDER_BY_SPECIFICATION__SELECT_STATEMENT:
+                return getSelectStatement() != null;
+            case SQLQueryModelPackage.ORDER_BY_SPECIFICATION__QUERY:
+                return getQuery() != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (descending: ");
+        result.append(descending);
+        result.append(", OrderingSpecOption: ");
+        result.append(orderingSpecOption);
+        result.append(", NullOrderingOption: ");
+        result.append(nullOrderingOption);
+        result.append(')');
+        return result.toString();
+    }
+
+} //SQLOrderBySpecificationImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/OrderByValueExpressionImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/OrderByValueExpressionImpl.java
new file mode 100644
index 0000000..68eeeef
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/OrderByValueExpressionImpl.java
@@ -0,0 +1,192 @@
+/**
+ * </copyright>
+ *
+ * $Id: OrderByValueExpressionImpl.java,v 1.5 2007/02/08 17:00:25 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.NullOrderingType;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.OrderingSpecType;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelectStatement;
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Order By Value Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.OrderByValueExpressionImpl#getValueExpr <em>Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class OrderByValueExpressionImpl extends OrderBySpecificationImpl implements OrderByValueExpression {
+	/**
+     * The cached value of the '{@link #getValueExpr() <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getValueExpr()
+     * @generated
+     * @ordered
+     */
+    protected QueryValueExpression valueExpr;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected OrderByValueExpressionImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.ORDER_BY_VALUE_EXPRESSION;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryValueExpression getValueExpr() {
+        return valueExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetValueExpr(QueryValueExpression newValueExpr, NotificationChain msgs) {
+        QueryValueExpression oldValueExpr = valueExpr;
+        valueExpr = newValueExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.ORDER_BY_VALUE_EXPRESSION__VALUE_EXPR, oldValueExpr, newValueExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueExpr(QueryValueExpression newValueExpr) {
+        if (newValueExpr != valueExpr) {
+            NotificationChain msgs = null;
+            if (valueExpr != null)
+                msgs = ((InternalEObject)valueExpr).eInverseRemove(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__ORDER_BY_VALUE_EXPR, QueryValueExpression.class, msgs);
+            if (newValueExpr != null)
+                msgs = ((InternalEObject)newValueExpr).eInverseAdd(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__ORDER_BY_VALUE_EXPR, QueryValueExpression.class, msgs);
+            msgs = basicSetValueExpr(newValueExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.ORDER_BY_VALUE_EXPRESSION__VALUE_EXPR, newValueExpr, newValueExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.ORDER_BY_VALUE_EXPRESSION__VALUE_EXPR:
+                if (valueExpr != null)
+                    msgs = ((InternalEObject)valueExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.ORDER_BY_VALUE_EXPRESSION__VALUE_EXPR, null, msgs);
+                return basicSetValueExpr((QueryValueExpression)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.ORDER_BY_VALUE_EXPRESSION__VALUE_EXPR:
+                return basicSetValueExpr(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.ORDER_BY_VALUE_EXPRESSION__VALUE_EXPR:
+                return getValueExpr();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.ORDER_BY_VALUE_EXPRESSION__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.ORDER_BY_VALUE_EXPRESSION__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.ORDER_BY_VALUE_EXPRESSION__VALUE_EXPR:
+                return valueExpr != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //SQLOrderByValueExpressionImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/PredicateBasicImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/PredicateBasicImpl.java
new file mode 100644
index 0000000..0379398
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/PredicateBasicImpl.java
@@ -0,0 +1,335 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PredicateBasicImpl.java,v 1.5 2007/02/08 17:00:32 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateComparisonOperator;
+import org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement;
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionNested;
+import org.eclipse.datatools.modelbase.sql.query.TableJoined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Predicate Basic</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateBasicImpl#getComparisonOperator <em>Comparison Operator</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateBasicImpl#getRightValueExpr <em>Right Value Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateBasicImpl#getLeftValueExpr <em>Left Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PredicateBasicImpl extends PredicateImpl implements PredicateBasic {
+	/**
+     * The default value of the '{@link #getComparisonOperator() <em>Comparison Operator</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getComparisonOperator()
+     * @generated
+     * @ordered
+     */
+    protected static final PredicateComparisonOperator COMPARISON_OPERATOR_EDEFAULT = PredicateComparisonOperator.EQUAL_LITERAL;
+
+	/**
+     * The cached value of the '{@link #getComparisonOperator() <em>Comparison Operator</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getComparisonOperator()
+     * @generated
+     * @ordered
+     */
+    protected PredicateComparisonOperator comparisonOperator = COMPARISON_OPERATOR_EDEFAULT;
+
+	/**
+     * The cached value of the '{@link #getRightValueExpr() <em>Right Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getRightValueExpr()
+     * @generated
+     * @ordered
+     */
+    protected QueryValueExpression rightValueExpr;
+
+	/**
+     * The cached value of the '{@link #getLeftValueExpr() <em>Left Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getLeftValueExpr()
+     * @generated
+     * @ordered
+     */
+    protected QueryValueExpression leftValueExpr;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected PredicateBasicImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.PREDICATE_BASIC;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public PredicateComparisonOperator getComparisonOperator() {
+        return comparisonOperator;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setComparisonOperator(PredicateComparisonOperator newComparisonOperator) {
+        PredicateComparisonOperator oldComparisonOperator = comparisonOperator;
+        comparisonOperator = newComparisonOperator == null ? COMPARISON_OPERATOR_EDEFAULT : newComparisonOperator;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.PREDICATE_BASIC__COMPARISON_OPERATOR, oldComparisonOperator, comparisonOperator));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryValueExpression getRightValueExpr() {
+        return rightValueExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetRightValueExpr(QueryValueExpression newRightValueExpr, NotificationChain msgs) {
+        QueryValueExpression oldRightValueExpr = rightValueExpr;
+        rightValueExpr = newRightValueExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.PREDICATE_BASIC__RIGHT_VALUE_EXPR, oldRightValueExpr, newRightValueExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setRightValueExpr(QueryValueExpression newRightValueExpr) {
+        if (newRightValueExpr != rightValueExpr) {
+            NotificationChain msgs = null;
+            if (rightValueExpr != null)
+                msgs = ((InternalEObject)rightValueExpr).eInverseRemove(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_RIGHT, QueryValueExpression.class, msgs);
+            if (newRightValueExpr != null)
+                msgs = ((InternalEObject)newRightValueExpr).eInverseAdd(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_RIGHT, QueryValueExpression.class, msgs);
+            msgs = basicSetRightValueExpr(newRightValueExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.PREDICATE_BASIC__RIGHT_VALUE_EXPR, newRightValueExpr, newRightValueExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryValueExpression getLeftValueExpr() {
+        return leftValueExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetLeftValueExpr(QueryValueExpression newLeftValueExpr, NotificationChain msgs) {
+        QueryValueExpression oldLeftValueExpr = leftValueExpr;
+        leftValueExpr = newLeftValueExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.PREDICATE_BASIC__LEFT_VALUE_EXPR, oldLeftValueExpr, newLeftValueExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setLeftValueExpr(QueryValueExpression newLeftValueExpr) {
+        if (newLeftValueExpr != leftValueExpr) {
+            NotificationChain msgs = null;
+            if (leftValueExpr != null)
+                msgs = ((InternalEObject)leftValueExpr).eInverseRemove(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_LEFT, QueryValueExpression.class, msgs);
+            if (newLeftValueExpr != null)
+                msgs = ((InternalEObject)newLeftValueExpr).eInverseAdd(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_LEFT, QueryValueExpression.class, msgs);
+            msgs = basicSetLeftValueExpr(newLeftValueExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.PREDICATE_BASIC__LEFT_VALUE_EXPR, newLeftValueExpr, newLeftValueExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_BASIC__RIGHT_VALUE_EXPR:
+                if (rightValueExpr != null)
+                    msgs = ((InternalEObject)rightValueExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.PREDICATE_BASIC__RIGHT_VALUE_EXPR, null, msgs);
+                return basicSetRightValueExpr((QueryValueExpression)otherEnd, msgs);
+            case SQLQueryModelPackage.PREDICATE_BASIC__LEFT_VALUE_EXPR:
+                if (leftValueExpr != null)
+                    msgs = ((InternalEObject)leftValueExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.PREDICATE_BASIC__LEFT_VALUE_EXPR, null, msgs);
+                return basicSetLeftValueExpr((QueryValueExpression)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_BASIC__RIGHT_VALUE_EXPR:
+                return basicSetRightValueExpr(null, msgs);
+            case SQLQueryModelPackage.PREDICATE_BASIC__LEFT_VALUE_EXPR:
+                return basicSetLeftValueExpr(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_BASIC__COMPARISON_OPERATOR:
+                return getComparisonOperator();
+            case SQLQueryModelPackage.PREDICATE_BASIC__RIGHT_VALUE_EXPR:
+                return getRightValueExpr();
+            case SQLQueryModelPackage.PREDICATE_BASIC__LEFT_VALUE_EXPR:
+                return getLeftValueExpr();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_BASIC__COMPARISON_OPERATOR:
+                setComparisonOperator((PredicateComparisonOperator)newValue);
+                return;
+            case SQLQueryModelPackage.PREDICATE_BASIC__RIGHT_VALUE_EXPR:
+                setRightValueExpr((QueryValueExpression)newValue);
+                return;
+            case SQLQueryModelPackage.PREDICATE_BASIC__LEFT_VALUE_EXPR:
+                setLeftValueExpr((QueryValueExpression)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_BASIC__COMPARISON_OPERATOR:
+                setComparisonOperator(COMPARISON_OPERATOR_EDEFAULT);
+                return;
+            case SQLQueryModelPackage.PREDICATE_BASIC__RIGHT_VALUE_EXPR:
+                setRightValueExpr((QueryValueExpression)null);
+                return;
+            case SQLQueryModelPackage.PREDICATE_BASIC__LEFT_VALUE_EXPR:
+                setLeftValueExpr((QueryValueExpression)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_BASIC__COMPARISON_OPERATOR:
+                return comparisonOperator != COMPARISON_OPERATOR_EDEFAULT;
+            case SQLQueryModelPackage.PREDICATE_BASIC__RIGHT_VALUE_EXPR:
+                return rightValueExpr != null;
+            case SQLQueryModelPackage.PREDICATE_BASIC__LEFT_VALUE_EXPR:
+                return leftValueExpr != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (comparisonOperator: ");
+        result.append(comparisonOperator);
+        result.append(')');
+        return result.toString();
+    }
+
+} //SQLPredicateBasicImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/PredicateBetweenImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/PredicateBetweenImpl.java
new file mode 100644
index 0000000..4478a3e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/PredicateBetweenImpl.java
@@ -0,0 +1,404 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PredicateBetweenImpl.java,v 1.5 2007/02/08 17:00:32 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement;
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionNested;
+import org.eclipse.datatools.modelbase.sql.query.TableJoined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Predicate Between</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateBetweenImpl#isNotBetween <em>Not Between</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateBetweenImpl#getLeftValueExpr <em>Left Value Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateBetweenImpl#getRightValueExpr1 <em>Right Value Expr1</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateBetweenImpl#getRightValueExpr2 <em>Right Value Expr2</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PredicateBetweenImpl extends PredicateImpl implements PredicateBetween {
+	/**
+     * The default value of the '{@link #isNotBetween() <em>Not Between</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #isNotBetween()
+     * @generated
+     * @ordered
+     */
+    protected static final boolean NOT_BETWEEN_EDEFAULT = false;
+
+	/**
+     * The cached value of the '{@link #isNotBetween() <em>Not Between</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #isNotBetween()
+     * @generated
+     * @ordered
+     */
+    protected boolean notBetween = NOT_BETWEEN_EDEFAULT;
+
+	/**
+     * The cached value of the '{@link #getLeftValueExpr() <em>Left Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getLeftValueExpr()
+     * @generated
+     * @ordered
+     */
+    protected QueryValueExpression leftValueExpr;
+
+	/**
+     * The cached value of the '{@link #getRightValueExpr1() <em>Right Value Expr1</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getRightValueExpr1()
+     * @generated
+     * @ordered
+     */
+    protected QueryValueExpression rightValueExpr1;
+
+	/**
+     * The cached value of the '{@link #getRightValueExpr2() <em>Right Value Expr2</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getRightValueExpr2()
+     * @generated
+     * @ordered
+     */
+    protected QueryValueExpression rightValueExpr2;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected PredicateBetweenImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.PREDICATE_BETWEEN;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public boolean isNotBetween() {
+        return notBetween;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setNotBetween(boolean newNotBetween) {
+        boolean oldNotBetween = notBetween;
+        notBetween = newNotBetween;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.PREDICATE_BETWEEN__NOT_BETWEEN, oldNotBetween, notBetween));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryValueExpression getLeftValueExpr() {
+        return leftValueExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetLeftValueExpr(QueryValueExpression newLeftValueExpr, NotificationChain msgs) {
+        QueryValueExpression oldLeftValueExpr = leftValueExpr;
+        leftValueExpr = newLeftValueExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.PREDICATE_BETWEEN__LEFT_VALUE_EXPR, oldLeftValueExpr, newLeftValueExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setLeftValueExpr(QueryValueExpression newLeftValueExpr) {
+        if (newLeftValueExpr != leftValueExpr) {
+            NotificationChain msgs = null;
+            if (leftValueExpr != null)
+                msgs = ((InternalEObject)leftValueExpr).eInverseRemove(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_LEFT, QueryValueExpression.class, msgs);
+            if (newLeftValueExpr != null)
+                msgs = ((InternalEObject)newLeftValueExpr).eInverseAdd(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_LEFT, QueryValueExpression.class, msgs);
+            msgs = basicSetLeftValueExpr(newLeftValueExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.PREDICATE_BETWEEN__LEFT_VALUE_EXPR, newLeftValueExpr, newLeftValueExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryValueExpression getRightValueExpr1() {
+        return rightValueExpr1;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetRightValueExpr1(QueryValueExpression newRightValueExpr1, NotificationChain msgs) {
+        QueryValueExpression oldRightValueExpr1 = rightValueExpr1;
+        rightValueExpr1 = newRightValueExpr1;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.PREDICATE_BETWEEN__RIGHT_VALUE_EXPR1, oldRightValueExpr1, newRightValueExpr1);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setRightValueExpr1(QueryValueExpression newRightValueExpr1) {
+        if (newRightValueExpr1 != rightValueExpr1) {
+            NotificationChain msgs = null;
+            if (rightValueExpr1 != null)
+                msgs = ((InternalEObject)rightValueExpr1).eInverseRemove(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT1, QueryValueExpression.class, msgs);
+            if (newRightValueExpr1 != null)
+                msgs = ((InternalEObject)newRightValueExpr1).eInverseAdd(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT1, QueryValueExpression.class, msgs);
+            msgs = basicSetRightValueExpr1(newRightValueExpr1, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.PREDICATE_BETWEEN__RIGHT_VALUE_EXPR1, newRightValueExpr1, newRightValueExpr1));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryValueExpression getRightValueExpr2() {
+        return rightValueExpr2;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetRightValueExpr2(QueryValueExpression newRightValueExpr2, NotificationChain msgs) {
+        QueryValueExpression oldRightValueExpr2 = rightValueExpr2;
+        rightValueExpr2 = newRightValueExpr2;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.PREDICATE_BETWEEN__RIGHT_VALUE_EXPR2, oldRightValueExpr2, newRightValueExpr2);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setRightValueExpr2(QueryValueExpression newRightValueExpr2) {
+        if (newRightValueExpr2 != rightValueExpr2) {
+            NotificationChain msgs = null;
+            if (rightValueExpr2 != null)
+                msgs = ((InternalEObject)rightValueExpr2).eInverseRemove(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT2, QueryValueExpression.class, msgs);
+            if (newRightValueExpr2 != null)
+                msgs = ((InternalEObject)newRightValueExpr2).eInverseAdd(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT2, QueryValueExpression.class, msgs);
+            msgs = basicSetRightValueExpr2(newRightValueExpr2, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.PREDICATE_BETWEEN__RIGHT_VALUE_EXPR2, newRightValueExpr2, newRightValueExpr2));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_BETWEEN__LEFT_VALUE_EXPR:
+                if (leftValueExpr != null)
+                    msgs = ((InternalEObject)leftValueExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.PREDICATE_BETWEEN__LEFT_VALUE_EXPR, null, msgs);
+                return basicSetLeftValueExpr((QueryValueExpression)otherEnd, msgs);
+            case SQLQueryModelPackage.PREDICATE_BETWEEN__RIGHT_VALUE_EXPR1:
+                if (rightValueExpr1 != null)
+                    msgs = ((InternalEObject)rightValueExpr1).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.PREDICATE_BETWEEN__RIGHT_VALUE_EXPR1, null, msgs);
+                return basicSetRightValueExpr1((QueryValueExpression)otherEnd, msgs);
+            case SQLQueryModelPackage.PREDICATE_BETWEEN__RIGHT_VALUE_EXPR2:
+                if (rightValueExpr2 != null)
+                    msgs = ((InternalEObject)rightValueExpr2).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.PREDICATE_BETWEEN__RIGHT_VALUE_EXPR2, null, msgs);
+                return basicSetRightValueExpr2((QueryValueExpression)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_BETWEEN__LEFT_VALUE_EXPR:
+                return basicSetLeftValueExpr(null, msgs);
+            case SQLQueryModelPackage.PREDICATE_BETWEEN__RIGHT_VALUE_EXPR1:
+                return basicSetRightValueExpr1(null, msgs);
+            case SQLQueryModelPackage.PREDICATE_BETWEEN__RIGHT_VALUE_EXPR2:
+                return basicSetRightValueExpr2(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_BETWEEN__NOT_BETWEEN:
+                return isNotBetween() ? Boolean.TRUE : Boolean.FALSE;
+            case SQLQueryModelPackage.PREDICATE_BETWEEN__LEFT_VALUE_EXPR:
+                return getLeftValueExpr();
+            case SQLQueryModelPackage.PREDICATE_BETWEEN__RIGHT_VALUE_EXPR1:
+                return getRightValueExpr1();
+            case SQLQueryModelPackage.PREDICATE_BETWEEN__RIGHT_VALUE_EXPR2:
+                return getRightValueExpr2();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_BETWEEN__NOT_BETWEEN:
+                setNotBetween(((Boolean)newValue).booleanValue());
+                return;
+            case SQLQueryModelPackage.PREDICATE_BETWEEN__LEFT_VALUE_EXPR:
+                setLeftValueExpr((QueryValueExpression)newValue);
+                return;
+            case SQLQueryModelPackage.PREDICATE_BETWEEN__RIGHT_VALUE_EXPR1:
+                setRightValueExpr1((QueryValueExpression)newValue);
+                return;
+            case SQLQueryModelPackage.PREDICATE_BETWEEN__RIGHT_VALUE_EXPR2:
+                setRightValueExpr2((QueryValueExpression)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_BETWEEN__NOT_BETWEEN:
+                setNotBetween(NOT_BETWEEN_EDEFAULT);
+                return;
+            case SQLQueryModelPackage.PREDICATE_BETWEEN__LEFT_VALUE_EXPR:
+                setLeftValueExpr((QueryValueExpression)null);
+                return;
+            case SQLQueryModelPackage.PREDICATE_BETWEEN__RIGHT_VALUE_EXPR1:
+                setRightValueExpr1((QueryValueExpression)null);
+                return;
+            case SQLQueryModelPackage.PREDICATE_BETWEEN__RIGHT_VALUE_EXPR2:
+                setRightValueExpr2((QueryValueExpression)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_BETWEEN__NOT_BETWEEN:
+                return notBetween != NOT_BETWEEN_EDEFAULT;
+            case SQLQueryModelPackage.PREDICATE_BETWEEN__LEFT_VALUE_EXPR:
+                return leftValueExpr != null;
+            case SQLQueryModelPackage.PREDICATE_BETWEEN__RIGHT_VALUE_EXPR1:
+                return rightValueExpr1 != null;
+            case SQLQueryModelPackage.PREDICATE_BETWEEN__RIGHT_VALUE_EXPR2:
+                return rightValueExpr2 != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (notBetween: ");
+        result.append(notBetween);
+        result.append(')');
+        return result.toString();
+    }
+
+} //SQLPredicateBetweenImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/PredicateExistsImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/PredicateExistsImpl.java
new file mode 100644
index 0000000..c94bf62
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/PredicateExistsImpl.java
@@ -0,0 +1,197 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PredicateExistsImpl.java,v 1.5 2007/02/08 17:00:28 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.PredicateExists;
+import org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement;
+import org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionNested;
+import org.eclipse.datatools.modelbase.sql.query.TableJoined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Predicate Exists</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateExistsImpl#getQueryExpr <em>Query Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PredicateExistsImpl extends PredicateImpl implements PredicateExists {
+	/**
+     * The cached value of the '{@link #getQueryExpr() <em>Query Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getQueryExpr()
+     * @generated
+     * @ordered
+     */
+    protected QueryExpressionBody queryExpr;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected PredicateExistsImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.PREDICATE_EXISTS;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryExpressionBody getQueryExpr() {
+        return queryExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetQueryExpr(QueryExpressionBody newQueryExpr, NotificationChain msgs) {
+        QueryExpressionBody oldQueryExpr = queryExpr;
+        queryExpr = newQueryExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.PREDICATE_EXISTS__QUERY_EXPR, oldQueryExpr, newQueryExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setQueryExpr(QueryExpressionBody newQueryExpr) {
+        if (newQueryExpr != queryExpr) {
+            NotificationChain msgs = null;
+            if (queryExpr != null)
+                msgs = ((InternalEObject)queryExpr).eInverseRemove(this, SQLQueryModelPackage.QUERY_EXPRESSION_BODY__PREDICATE_EXISTS, QueryExpressionBody.class, msgs);
+            if (newQueryExpr != null)
+                msgs = ((InternalEObject)newQueryExpr).eInverseAdd(this, SQLQueryModelPackage.QUERY_EXPRESSION_BODY__PREDICATE_EXISTS, QueryExpressionBody.class, msgs);
+            msgs = basicSetQueryExpr(newQueryExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.PREDICATE_EXISTS__QUERY_EXPR, newQueryExpr, newQueryExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_EXISTS__QUERY_EXPR:
+                if (queryExpr != null)
+                    msgs = ((InternalEObject)queryExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.PREDICATE_EXISTS__QUERY_EXPR, null, msgs);
+                return basicSetQueryExpr((QueryExpressionBody)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_EXISTS__QUERY_EXPR:
+                return basicSetQueryExpr(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_EXISTS__QUERY_EXPR:
+                return getQueryExpr();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_EXISTS__QUERY_EXPR:
+                setQueryExpr((QueryExpressionBody)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_EXISTS__QUERY_EXPR:
+                setQueryExpr((QueryExpressionBody)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_EXISTS__QUERY_EXPR:
+                return queryExpr != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //SQLPredicateExistsImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/PredicateImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/PredicateImpl.java
new file mode 100644
index 0000000..db6f29d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/PredicateImpl.java
@@ -0,0 +1,282 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PredicateImpl.java,v 1.5 2007/02/08 17:00:30 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.Predicate;
+import org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionNested;
+import org.eclipse.datatools.modelbase.sql.query.TableJoined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateImpl#isNegatedPredicate <em>Negated Predicate</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateImpl#isHasSelectivity <em>Has Selectivity</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateImpl#getSelectivityValue <em>Selectivity Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class PredicateImpl extends QuerySearchConditionImpl implements Predicate {
+	/**
+     * The default value of the '{@link #isNegatedPredicate() <em>Negated Predicate</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #isNegatedPredicate()
+     * @generated
+     * @ordered
+     */
+    protected static final boolean NEGATED_PREDICATE_EDEFAULT = false;
+
+	/**
+     * The cached value of the '{@link #isNegatedPredicate() <em>Negated Predicate</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #isNegatedPredicate()
+     * @generated
+     * @ordered
+     */
+    protected boolean negatedPredicate = NEGATED_PREDICATE_EDEFAULT;
+
+	/**
+     * The default value of the '{@link #isHasSelectivity() <em>Has Selectivity</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #isHasSelectivity()
+     * @generated
+     * @ordered
+     */
+    protected static final boolean HAS_SELECTIVITY_EDEFAULT = false;
+
+	/**
+     * The cached value of the '{@link #isHasSelectivity() <em>Has Selectivity</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #isHasSelectivity()
+     * @generated
+     * @ordered
+     */
+    protected boolean hasSelectivity = HAS_SELECTIVITY_EDEFAULT;
+
+	/**
+     * The default value of the '{@link #getSelectivityValue() <em>Selectivity Value</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getSelectivityValue()
+     * @generated
+     * @ordered
+     */
+    protected static final Integer SELECTIVITY_VALUE_EDEFAULT = null;
+
+	/**
+     * The cached value of the '{@link #getSelectivityValue() <em>Selectivity Value</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getSelectivityValue()
+     * @generated
+     * @ordered
+     */
+    protected Integer selectivityValue = SELECTIVITY_VALUE_EDEFAULT;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected PredicateImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.PREDICATE;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public boolean isNegatedPredicate() {
+        return negatedPredicate;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setNegatedPredicate(boolean newNegatedPredicate) {
+        boolean oldNegatedPredicate = negatedPredicate;
+        negatedPredicate = newNegatedPredicate;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.PREDICATE__NEGATED_PREDICATE, oldNegatedPredicate, negatedPredicate));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public boolean isHasSelectivity() {
+        return hasSelectivity;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setHasSelectivity(boolean newHasSelectivity) {
+        boolean oldHasSelectivity = hasSelectivity;
+        hasSelectivity = newHasSelectivity;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.PREDICATE__HAS_SELECTIVITY, oldHasSelectivity, hasSelectivity));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public Integer getSelectivityValue() {
+        return selectivityValue;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setSelectivityValue(Integer newSelectivityValue) {
+        Integer oldSelectivityValue = selectivityValue;
+        selectivityValue = newSelectivityValue;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.PREDICATE__SELECTIVITY_VALUE, oldSelectivityValue, selectivityValue));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE__NEGATED_PREDICATE:
+                return isNegatedPredicate() ? Boolean.TRUE : Boolean.FALSE;
+            case SQLQueryModelPackage.PREDICATE__HAS_SELECTIVITY:
+                return isHasSelectivity() ? Boolean.TRUE : Boolean.FALSE;
+            case SQLQueryModelPackage.PREDICATE__SELECTIVITY_VALUE:
+                return getSelectivityValue();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE__NEGATED_PREDICATE:
+                setNegatedPredicate(((Boolean)newValue).booleanValue());
+                return;
+            case SQLQueryModelPackage.PREDICATE__HAS_SELECTIVITY:
+                setHasSelectivity(((Boolean)newValue).booleanValue());
+                return;
+            case SQLQueryModelPackage.PREDICATE__SELECTIVITY_VALUE:
+                setSelectivityValue((Integer)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE__NEGATED_PREDICATE:
+                setNegatedPredicate(NEGATED_PREDICATE_EDEFAULT);
+                return;
+            case SQLQueryModelPackage.PREDICATE__HAS_SELECTIVITY:
+                setHasSelectivity(HAS_SELECTIVITY_EDEFAULT);
+                return;
+            case SQLQueryModelPackage.PREDICATE__SELECTIVITY_VALUE:
+                setSelectivityValue(SELECTIVITY_VALUE_EDEFAULT);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE__NEGATED_PREDICATE:
+                return negatedPredicate != NEGATED_PREDICATE_EDEFAULT;
+            case SQLQueryModelPackage.PREDICATE__HAS_SELECTIVITY:
+                return hasSelectivity != HAS_SELECTIVITY_EDEFAULT;
+            case SQLQueryModelPackage.PREDICATE__SELECTIVITY_VALUE:
+                return SELECTIVITY_VALUE_EDEFAULT == null ? selectivityValue != null : !SELECTIVITY_VALUE_EDEFAULT.equals(selectivityValue);
+        }
+        return super.eIsSet(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (negatedPredicate: ");
+        result.append(negatedPredicate);
+        result.append(", hasSelectivity: ");
+        result.append(hasSelectivity);
+        result.append(", selectivityValue: ");
+        result.append(selectivityValue);
+        result.append(')');
+        return result.toString();
+    }
+
+} //SQLPredicateImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/PredicateInImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/PredicateInImpl.java
new file mode 100644
index 0000000..67d77e8
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/PredicateInImpl.java
@@ -0,0 +1,174 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PredicateInImpl.java,v 1.5 2007/02/08 17:00:26 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.PredicateIn;
+import org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionNested;
+import org.eclipse.datatools.modelbase.sql.query.TableJoined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Predicate In</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateInImpl#isNotIn <em>Not In</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class PredicateInImpl extends PredicateImpl implements PredicateIn {
+	/**
+     * The default value of the '{@link #isNotIn() <em>Not In</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #isNotIn()
+     * @generated
+     * @ordered
+     */
+    protected static final boolean NOT_IN_EDEFAULT = false;
+
+	/**
+     * The cached value of the '{@link #isNotIn() <em>Not In</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #isNotIn()
+     * @generated
+     * @ordered
+     */
+    protected boolean notIn = NOT_IN_EDEFAULT;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected PredicateInImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.PREDICATE_IN;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public boolean isNotIn() {
+        return notIn;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setNotIn(boolean newNotIn) {
+        boolean oldNotIn = notIn;
+        notIn = newNotIn;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.PREDICATE_IN__NOT_IN, oldNotIn, notIn));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_IN__NOT_IN:
+                return isNotIn() ? Boolean.TRUE : Boolean.FALSE;
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_IN__NOT_IN:
+                setNotIn(((Boolean)newValue).booleanValue());
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_IN__NOT_IN:
+                setNotIn(NOT_IN_EDEFAULT);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_IN__NOT_IN:
+                return notIn != NOT_IN_EDEFAULT;
+        }
+        return super.eIsSet(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (notIn: ");
+        result.append(notIn);
+        result.append(')');
+        return result.toString();
+    }
+
+} //SQLPredicateInImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/PredicateInValueListImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/PredicateInValueListImpl.java
new file mode 100644
index 0000000..ff3a246
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/PredicateInValueListImpl.java
@@ -0,0 +1,236 @@
+/**
+ * </copyright>
+ *
+ * $Id: PredicateInValueListImpl.java,v 1.5 2007/02/08 17:00:29 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement;
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionNested;
+import org.eclipse.datatools.modelbase.sql.query.TableJoined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Predicate In Value List</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateInValueListImpl#getValueExprList <em>Value Expr List</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateInValueListImpl#getValueExpr <em>Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PredicateInValueListImpl extends PredicateInImpl implements PredicateInValueList {
+	/**
+     * The cached value of the '{@link #getValueExprList() <em>Value Expr List</em>}' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getValueExprList()
+     * @generated
+     * @ordered
+     */
+    protected EList valueExprList;
+
+	/**
+     * The cached value of the '{@link #getValueExpr() <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getValueExpr()
+     * @generated
+     * @ordered
+     */
+    protected QueryValueExpression valueExpr;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected PredicateInValueListImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.PREDICATE_IN_VALUE_LIST;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getValueExprList() {
+        if (valueExprList == null) {
+            valueExprList = new EObjectContainmentWithInverseEList(QueryValueExpression.class, this, SQLQueryModelPackage.PREDICATE_IN_VALUE_LIST__VALUE_EXPR_LIST, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_RIGHT);
+        }
+        return valueExprList;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryValueExpression getValueExpr() {
+        return valueExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetValueExpr(QueryValueExpression newValueExpr, NotificationChain msgs) {
+        QueryValueExpression oldValueExpr = valueExpr;
+        valueExpr = newValueExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.PREDICATE_IN_VALUE_LIST__VALUE_EXPR, oldValueExpr, newValueExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueExpr(QueryValueExpression newValueExpr) {
+        if (newValueExpr != valueExpr) {
+            NotificationChain msgs = null;
+            if (valueExpr != null)
+                msgs = ((InternalEObject)valueExpr).eInverseRemove(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_LEFT, QueryValueExpression.class, msgs);
+            if (newValueExpr != null)
+                msgs = ((InternalEObject)newValueExpr).eInverseAdd(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_LEFT, QueryValueExpression.class, msgs);
+            msgs = basicSetValueExpr(newValueExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.PREDICATE_IN_VALUE_LIST__VALUE_EXPR, newValueExpr, newValueExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_LIST__VALUE_EXPR_LIST:
+                return ((InternalEList)getValueExprList()).basicAdd(otherEnd, msgs);
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_LIST__VALUE_EXPR:
+                if (valueExpr != null)
+                    msgs = ((InternalEObject)valueExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.PREDICATE_IN_VALUE_LIST__VALUE_EXPR, null, msgs);
+                return basicSetValueExpr((QueryValueExpression)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_LIST__VALUE_EXPR_LIST:
+                return ((InternalEList)getValueExprList()).basicRemove(otherEnd, msgs);
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_LIST__VALUE_EXPR:
+                return basicSetValueExpr(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_LIST__VALUE_EXPR_LIST:
+                return getValueExprList();
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_LIST__VALUE_EXPR:
+                return getValueExpr();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_LIST__VALUE_EXPR_LIST:
+                getValueExprList().clear();
+                getValueExprList().addAll((Collection)newValue);
+                return;
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_LIST__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_LIST__VALUE_EXPR_LIST:
+                getValueExprList().clear();
+                return;
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_LIST__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_LIST__VALUE_EXPR_LIST:
+                return valueExprList != null && !valueExprList.isEmpty();
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_LIST__VALUE_EXPR:
+                return valueExpr != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //SQLPredicateInValueListImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/PredicateInValueRowSelectImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/PredicateInValueRowSelectImpl.java
new file mode 100644
index 0000000..772c463
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/PredicateInValueRowSelectImpl.java
@@ -0,0 +1,237 @@
+/**
+ * </copyright>
+ *
+ * $Id: PredicateInValueRowSelectImpl.java,v 1.5 2007/02/08 17:00:26 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement;
+import org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement;
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionNested;
+import org.eclipse.datatools.modelbase.sql.query.TableJoined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Predicate In Value Row Select</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateInValueRowSelectImpl#getValueExprList <em>Value Expr List</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateInValueRowSelectImpl#getQueryExpr <em>Query Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PredicateInValueRowSelectImpl extends PredicateInImpl implements PredicateInValueRowSelect {
+	/**
+     * The cached value of the '{@link #getValueExprList() <em>Value Expr List</em>}' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getValueExprList()
+     * @generated
+     * @ordered
+     */
+    protected EList valueExprList;
+
+	/**
+     * The cached value of the '{@link #getQueryExpr() <em>Query Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getQueryExpr()
+     * @generated
+     * @ordered
+     */
+    protected QueryExpressionRoot queryExpr;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected PredicateInValueRowSelectImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.PREDICATE_IN_VALUE_ROW_SELECT;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getValueExprList() {
+        if (valueExprList == null) {
+            valueExprList = new EObjectContainmentWithInverseEList(QueryValueExpression.class, this, SQLQueryModelPackage.PREDICATE_IN_VALUE_ROW_SELECT__VALUE_EXPR_LIST, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_ROW_SELECT_LEFT);
+        }
+        return valueExprList;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryExpressionRoot getQueryExpr() {
+        return queryExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetQueryExpr(QueryExpressionRoot newQueryExpr, NotificationChain msgs) {
+        QueryExpressionRoot oldQueryExpr = queryExpr;
+        queryExpr = newQueryExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.PREDICATE_IN_VALUE_ROW_SELECT__QUERY_EXPR, oldQueryExpr, newQueryExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setQueryExpr(QueryExpressionRoot newQueryExpr) {
+        if (newQueryExpr != queryExpr) {
+            NotificationChain msgs = null;
+            if (queryExpr != null)
+                msgs = ((InternalEObject)queryExpr).eInverseRemove(this, SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__IN_VALUE_ROW_SELECT_RIGHT, QueryExpressionRoot.class, msgs);
+            if (newQueryExpr != null)
+                msgs = ((InternalEObject)newQueryExpr).eInverseAdd(this, SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__IN_VALUE_ROW_SELECT_RIGHT, QueryExpressionRoot.class, msgs);
+            msgs = basicSetQueryExpr(newQueryExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.PREDICATE_IN_VALUE_ROW_SELECT__QUERY_EXPR, newQueryExpr, newQueryExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_ROW_SELECT__VALUE_EXPR_LIST:
+                return ((InternalEList)getValueExprList()).basicAdd(otherEnd, msgs);
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_ROW_SELECT__QUERY_EXPR:
+                if (queryExpr != null)
+                    msgs = ((InternalEObject)queryExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.PREDICATE_IN_VALUE_ROW_SELECT__QUERY_EXPR, null, msgs);
+                return basicSetQueryExpr((QueryExpressionRoot)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_ROW_SELECT__VALUE_EXPR_LIST:
+                return ((InternalEList)getValueExprList()).basicRemove(otherEnd, msgs);
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_ROW_SELECT__QUERY_EXPR:
+                return basicSetQueryExpr(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_ROW_SELECT__VALUE_EXPR_LIST:
+                return getValueExprList();
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_ROW_SELECT__QUERY_EXPR:
+                return getQueryExpr();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_ROW_SELECT__VALUE_EXPR_LIST:
+                getValueExprList().clear();
+                getValueExprList().addAll((Collection)newValue);
+                return;
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_ROW_SELECT__QUERY_EXPR:
+                setQueryExpr((QueryExpressionRoot)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_ROW_SELECT__VALUE_EXPR_LIST:
+                getValueExprList().clear();
+                return;
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_ROW_SELECT__QUERY_EXPR:
+                setQueryExpr((QueryExpressionRoot)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_ROW_SELECT__VALUE_EXPR_LIST:
+                return valueExprList != null && !valueExprList.isEmpty();
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_ROW_SELECT__QUERY_EXPR:
+                return queryExpr != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //SQLPredicateInValueRowSelectImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/PredicateInValueSelectImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/PredicateInValueSelectImpl.java
new file mode 100644
index 0000000..a26e077
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/PredicateInValueSelectImpl.java
@@ -0,0 +1,268 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PredicateInValueSelectImpl.java,v 1.5 2007/02/08 17:00:26 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement;
+import org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement;
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionNested;
+import org.eclipse.datatools.modelbase.sql.query.TableJoined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Predicate In Value Select</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateInValueSelectImpl#getQueryExpr <em>Query Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateInValueSelectImpl#getValueExpr <em>Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PredicateInValueSelectImpl extends PredicateInImpl implements PredicateInValueSelect {
+	/**
+     * The cached value of the '{@link #getQueryExpr() <em>Query Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getQueryExpr()
+     * @generated
+     * @ordered
+     */
+    protected QueryExpressionRoot queryExpr;
+
+	/**
+     * The cached value of the '{@link #getValueExpr() <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getValueExpr()
+     * @generated
+     * @ordered
+     */
+    protected QueryValueExpression valueExpr;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected PredicateInValueSelectImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.PREDICATE_IN_VALUE_SELECT;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryExpressionRoot getQueryExpr() {
+        return queryExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetQueryExpr(QueryExpressionRoot newQueryExpr, NotificationChain msgs) {
+        QueryExpressionRoot oldQueryExpr = queryExpr;
+        queryExpr = newQueryExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.PREDICATE_IN_VALUE_SELECT__QUERY_EXPR, oldQueryExpr, newQueryExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setQueryExpr(QueryExpressionRoot newQueryExpr) {
+        if (newQueryExpr != queryExpr) {
+            NotificationChain msgs = null;
+            if (queryExpr != null)
+                msgs = ((InternalEObject)queryExpr).eInverseRemove(this, SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__IN_VALUE_SELECT_RIGHT, QueryExpressionRoot.class, msgs);
+            if (newQueryExpr != null)
+                msgs = ((InternalEObject)newQueryExpr).eInverseAdd(this, SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__IN_VALUE_SELECT_RIGHT, QueryExpressionRoot.class, msgs);
+            msgs = basicSetQueryExpr(newQueryExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.PREDICATE_IN_VALUE_SELECT__QUERY_EXPR, newQueryExpr, newQueryExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryValueExpression getValueExpr() {
+        return valueExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetValueExpr(QueryValueExpression newValueExpr, NotificationChain msgs) {
+        QueryValueExpression oldValueExpr = valueExpr;
+        valueExpr = newValueExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.PREDICATE_IN_VALUE_SELECT__VALUE_EXPR, oldValueExpr, newValueExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueExpr(QueryValueExpression newValueExpr) {
+        if (newValueExpr != valueExpr) {
+            NotificationChain msgs = null;
+            if (valueExpr != null)
+                msgs = ((InternalEObject)valueExpr).eInverseRemove(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_SELECT_LEFT, QueryValueExpression.class, msgs);
+            if (newValueExpr != null)
+                msgs = ((InternalEObject)newValueExpr).eInverseAdd(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_SELECT_LEFT, QueryValueExpression.class, msgs);
+            msgs = basicSetValueExpr(newValueExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.PREDICATE_IN_VALUE_SELECT__VALUE_EXPR, newValueExpr, newValueExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_SELECT__QUERY_EXPR:
+                if (queryExpr != null)
+                    msgs = ((InternalEObject)queryExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.PREDICATE_IN_VALUE_SELECT__QUERY_EXPR, null, msgs);
+                return basicSetQueryExpr((QueryExpressionRoot)otherEnd, msgs);
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_SELECT__VALUE_EXPR:
+                if (valueExpr != null)
+                    msgs = ((InternalEObject)valueExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.PREDICATE_IN_VALUE_SELECT__VALUE_EXPR, null, msgs);
+                return basicSetValueExpr((QueryValueExpression)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_SELECT__QUERY_EXPR:
+                return basicSetQueryExpr(null, msgs);
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_SELECT__VALUE_EXPR:
+                return basicSetValueExpr(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_SELECT__QUERY_EXPR:
+                return getQueryExpr();
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_SELECT__VALUE_EXPR:
+                return getValueExpr();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_SELECT__QUERY_EXPR:
+                setQueryExpr((QueryExpressionRoot)newValue);
+                return;
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_SELECT__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_SELECT__QUERY_EXPR:
+                setQueryExpr((QueryExpressionRoot)null);
+                return;
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_SELECT__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_SELECT__QUERY_EXPR:
+                return queryExpr != null;
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_SELECT__VALUE_EXPR:
+                return valueExpr != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //SQLPredicateInValueSelectImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/PredicateIsNullImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/PredicateIsNullImpl.java
new file mode 100644
index 0000000..47308f2
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/PredicateIsNullImpl.java
@@ -0,0 +1,264 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PredicateIsNullImpl.java,v 1.5 2007/02/08 17:00:26 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement;
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionNested;
+import org.eclipse.datatools.modelbase.sql.query.TableJoined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Predicate Null</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateIsNullImpl#isNotNull <em>Not Null</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateIsNullImpl#getValueExpr <em>Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PredicateIsNullImpl extends PredicateImpl implements PredicateIsNull {
+	/**
+     * The default value of the '{@link #isNotNull() <em>Not Null</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #isNotNull()
+     * @generated
+     * @ordered
+     */
+    protected static final boolean NOT_NULL_EDEFAULT = false;
+
+	/**
+     * The cached value of the '{@link #isNotNull() <em>Not Null</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #isNotNull()
+     * @generated
+     * @ordered
+     */
+    protected boolean notNull = NOT_NULL_EDEFAULT;
+
+	/**
+     * The cached value of the '{@link #getValueExpr() <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getValueExpr()
+     * @generated
+     * @ordered
+     */
+    protected QueryValueExpression valueExpr;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected PredicateIsNullImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.PREDICATE_IS_NULL;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public boolean isNotNull() {
+        return notNull;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setNotNull(boolean newNotNull) {
+        boolean oldNotNull = notNull;
+        notNull = newNotNull;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.PREDICATE_IS_NULL__NOT_NULL, oldNotNull, notNull));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryValueExpression getValueExpr() {
+        return valueExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetValueExpr(QueryValueExpression newValueExpr, NotificationChain msgs) {
+        QueryValueExpression oldValueExpr = valueExpr;
+        valueExpr = newValueExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.PREDICATE_IS_NULL__VALUE_EXPR, oldValueExpr, newValueExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueExpr(QueryValueExpression newValueExpr) {
+        if (newValueExpr != valueExpr) {
+            NotificationChain msgs = null;
+            if (valueExpr != null)
+                msgs = ((InternalEObject)valueExpr).eInverseRemove(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__PREDICATE_NULL, QueryValueExpression.class, msgs);
+            if (newValueExpr != null)
+                msgs = ((InternalEObject)newValueExpr).eInverseAdd(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__PREDICATE_NULL, QueryValueExpression.class, msgs);
+            msgs = basicSetValueExpr(newValueExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.PREDICATE_IS_NULL__VALUE_EXPR, newValueExpr, newValueExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_IS_NULL__VALUE_EXPR:
+                if (valueExpr != null)
+                    msgs = ((InternalEObject)valueExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.PREDICATE_IS_NULL__VALUE_EXPR, null, msgs);
+                return basicSetValueExpr((QueryValueExpression)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_IS_NULL__VALUE_EXPR:
+                return basicSetValueExpr(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_IS_NULL__NOT_NULL:
+                return isNotNull() ? Boolean.TRUE : Boolean.FALSE;
+            case SQLQueryModelPackage.PREDICATE_IS_NULL__VALUE_EXPR:
+                return getValueExpr();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_IS_NULL__NOT_NULL:
+                setNotNull(((Boolean)newValue).booleanValue());
+                return;
+            case SQLQueryModelPackage.PREDICATE_IS_NULL__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_IS_NULL__NOT_NULL:
+                setNotNull(NOT_NULL_EDEFAULT);
+                return;
+            case SQLQueryModelPackage.PREDICATE_IS_NULL__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_IS_NULL__NOT_NULL:
+                return notNull != NOT_NULL_EDEFAULT;
+            case SQLQueryModelPackage.PREDICATE_IS_NULL__VALUE_EXPR:
+                return valueExpr != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (notNull: ");
+        result.append(notNull);
+        result.append(')');
+        return result.toString();
+    }
+
+} //SQLPredicateNullImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/PredicateLikeImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/PredicateLikeImpl.java
new file mode 100644
index 0000000..f30927b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/PredicateLikeImpl.java
@@ -0,0 +1,404 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PredicateLikeImpl.java,v 1.5 2007/02/08 17:00:26 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement;
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionNested;
+import org.eclipse.datatools.modelbase.sql.query.TableJoined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Predicate Like</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateLikeImpl#isNotLike <em>Not Like</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateLikeImpl#getPatternValueExpr <em>Pattern Value Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateLikeImpl#getMatchingValueExpr <em>Matching Value Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateLikeImpl#getEscapeValueExpr <em>Escape Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PredicateLikeImpl extends PredicateImpl implements PredicateLike {
+	/**
+     * The default value of the '{@link #isNotLike() <em>Not Like</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #isNotLike()
+     * @generated
+     * @ordered
+     */
+    protected static final boolean NOT_LIKE_EDEFAULT = false;
+
+	/**
+     * The cached value of the '{@link #isNotLike() <em>Not Like</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #isNotLike()
+     * @generated
+     * @ordered
+     */
+    protected boolean notLike = NOT_LIKE_EDEFAULT;
+
+	/**
+     * The cached value of the '{@link #getPatternValueExpr() <em>Pattern Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getPatternValueExpr()
+     * @generated
+     * @ordered
+     */
+    protected QueryValueExpression patternValueExpr;
+
+	/**
+     * The cached value of the '{@link #getMatchingValueExpr() <em>Matching Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getMatchingValueExpr()
+     * @generated
+     * @ordered
+     */
+    protected QueryValueExpression matchingValueExpr;
+
+	/**
+     * The cached value of the '{@link #getEscapeValueExpr() <em>Escape Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getEscapeValueExpr()
+     * @generated
+     * @ordered
+     */
+    protected QueryValueExpression escapeValueExpr;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected PredicateLikeImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.PREDICATE_LIKE;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public boolean isNotLike() {
+        return notLike;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setNotLike(boolean newNotLike) {
+        boolean oldNotLike = notLike;
+        notLike = newNotLike;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.PREDICATE_LIKE__NOT_LIKE, oldNotLike, notLike));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryValueExpression getPatternValueExpr() {
+        return patternValueExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetPatternValueExpr(QueryValueExpression newPatternValueExpr, NotificationChain msgs) {
+        QueryValueExpression oldPatternValueExpr = patternValueExpr;
+        patternValueExpr = newPatternValueExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.PREDICATE_LIKE__PATTERN_VALUE_EXPR, oldPatternValueExpr, newPatternValueExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setPatternValueExpr(QueryValueExpression newPatternValueExpr) {
+        if (newPatternValueExpr != patternValueExpr) {
+            NotificationChain msgs = null;
+            if (patternValueExpr != null)
+                msgs = ((InternalEObject)patternValueExpr).eInverseRemove(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_PATTERN, QueryValueExpression.class, msgs);
+            if (newPatternValueExpr != null)
+                msgs = ((InternalEObject)newPatternValueExpr).eInverseAdd(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_PATTERN, QueryValueExpression.class, msgs);
+            msgs = basicSetPatternValueExpr(newPatternValueExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.PREDICATE_LIKE__PATTERN_VALUE_EXPR, newPatternValueExpr, newPatternValueExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryValueExpression getMatchingValueExpr() {
+        return matchingValueExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetMatchingValueExpr(QueryValueExpression newMatchingValueExpr, NotificationChain msgs) {
+        QueryValueExpression oldMatchingValueExpr = matchingValueExpr;
+        matchingValueExpr = newMatchingValueExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.PREDICATE_LIKE__MATCHING_VALUE_EXPR, oldMatchingValueExpr, newMatchingValueExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setMatchingValueExpr(QueryValueExpression newMatchingValueExpr) {
+        if (newMatchingValueExpr != matchingValueExpr) {
+            NotificationChain msgs = null;
+            if (matchingValueExpr != null)
+                msgs = ((InternalEObject)matchingValueExpr).eInverseRemove(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_MATCHING, QueryValueExpression.class, msgs);
+            if (newMatchingValueExpr != null)
+                msgs = ((InternalEObject)newMatchingValueExpr).eInverseAdd(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_MATCHING, QueryValueExpression.class, msgs);
+            msgs = basicSetMatchingValueExpr(newMatchingValueExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.PREDICATE_LIKE__MATCHING_VALUE_EXPR, newMatchingValueExpr, newMatchingValueExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryValueExpression getEscapeValueExpr() {
+        return escapeValueExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetEscapeValueExpr(QueryValueExpression newEscapeValueExpr, NotificationChain msgs) {
+        QueryValueExpression oldEscapeValueExpr = escapeValueExpr;
+        escapeValueExpr = newEscapeValueExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.PREDICATE_LIKE__ESCAPE_VALUE_EXPR, oldEscapeValueExpr, newEscapeValueExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setEscapeValueExpr(QueryValueExpression newEscapeValueExpr) {
+        if (newEscapeValueExpr != escapeValueExpr) {
+            NotificationChain msgs = null;
+            if (escapeValueExpr != null)
+                msgs = ((InternalEObject)escapeValueExpr).eInverseRemove(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_ESCAPE, QueryValueExpression.class, msgs);
+            if (newEscapeValueExpr != null)
+                msgs = ((InternalEObject)newEscapeValueExpr).eInverseAdd(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_ESCAPE, QueryValueExpression.class, msgs);
+            msgs = basicSetEscapeValueExpr(newEscapeValueExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.PREDICATE_LIKE__ESCAPE_VALUE_EXPR, newEscapeValueExpr, newEscapeValueExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_LIKE__PATTERN_VALUE_EXPR:
+                if (patternValueExpr != null)
+                    msgs = ((InternalEObject)patternValueExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.PREDICATE_LIKE__PATTERN_VALUE_EXPR, null, msgs);
+                return basicSetPatternValueExpr((QueryValueExpression)otherEnd, msgs);
+            case SQLQueryModelPackage.PREDICATE_LIKE__MATCHING_VALUE_EXPR:
+                if (matchingValueExpr != null)
+                    msgs = ((InternalEObject)matchingValueExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.PREDICATE_LIKE__MATCHING_VALUE_EXPR, null, msgs);
+                return basicSetMatchingValueExpr((QueryValueExpression)otherEnd, msgs);
+            case SQLQueryModelPackage.PREDICATE_LIKE__ESCAPE_VALUE_EXPR:
+                if (escapeValueExpr != null)
+                    msgs = ((InternalEObject)escapeValueExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.PREDICATE_LIKE__ESCAPE_VALUE_EXPR, null, msgs);
+                return basicSetEscapeValueExpr((QueryValueExpression)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_LIKE__PATTERN_VALUE_EXPR:
+                return basicSetPatternValueExpr(null, msgs);
+            case SQLQueryModelPackage.PREDICATE_LIKE__MATCHING_VALUE_EXPR:
+                return basicSetMatchingValueExpr(null, msgs);
+            case SQLQueryModelPackage.PREDICATE_LIKE__ESCAPE_VALUE_EXPR:
+                return basicSetEscapeValueExpr(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_LIKE__NOT_LIKE:
+                return isNotLike() ? Boolean.TRUE : Boolean.FALSE;
+            case SQLQueryModelPackage.PREDICATE_LIKE__PATTERN_VALUE_EXPR:
+                return getPatternValueExpr();
+            case SQLQueryModelPackage.PREDICATE_LIKE__MATCHING_VALUE_EXPR:
+                return getMatchingValueExpr();
+            case SQLQueryModelPackage.PREDICATE_LIKE__ESCAPE_VALUE_EXPR:
+                return getEscapeValueExpr();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_LIKE__NOT_LIKE:
+                setNotLike(((Boolean)newValue).booleanValue());
+                return;
+            case SQLQueryModelPackage.PREDICATE_LIKE__PATTERN_VALUE_EXPR:
+                setPatternValueExpr((QueryValueExpression)newValue);
+                return;
+            case SQLQueryModelPackage.PREDICATE_LIKE__MATCHING_VALUE_EXPR:
+                setMatchingValueExpr((QueryValueExpression)newValue);
+                return;
+            case SQLQueryModelPackage.PREDICATE_LIKE__ESCAPE_VALUE_EXPR:
+                setEscapeValueExpr((QueryValueExpression)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_LIKE__NOT_LIKE:
+                setNotLike(NOT_LIKE_EDEFAULT);
+                return;
+            case SQLQueryModelPackage.PREDICATE_LIKE__PATTERN_VALUE_EXPR:
+                setPatternValueExpr((QueryValueExpression)null);
+                return;
+            case SQLQueryModelPackage.PREDICATE_LIKE__MATCHING_VALUE_EXPR:
+                setMatchingValueExpr((QueryValueExpression)null);
+                return;
+            case SQLQueryModelPackage.PREDICATE_LIKE__ESCAPE_VALUE_EXPR:
+                setEscapeValueExpr((QueryValueExpression)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_LIKE__NOT_LIKE:
+                return notLike != NOT_LIKE_EDEFAULT;
+            case SQLQueryModelPackage.PREDICATE_LIKE__PATTERN_VALUE_EXPR:
+                return patternValueExpr != null;
+            case SQLQueryModelPackage.PREDICATE_LIKE__MATCHING_VALUE_EXPR:
+                return matchingValueExpr != null;
+            case SQLQueryModelPackage.PREDICATE_LIKE__ESCAPE_VALUE_EXPR:
+                return escapeValueExpr != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (notLike: ");
+        result.append(notLike);
+        result.append(')');
+        return result.toString();
+    }
+
+} //SQLPredicateLikeImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/PredicateQuantifiedImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/PredicateQuantifiedImpl.java
new file mode 100644
index 0000000..154f988
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/PredicateQuantifiedImpl.java
@@ -0,0 +1,59 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PredicateQuantifiedImpl.java,v 1.5 2007/02/08 17:00:27 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantified;
+import org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionNested;
+import org.eclipse.datatools.modelbase.sql.query.TableJoined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Predicate Quantified</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class PredicateQuantifiedImpl extends PredicateImpl implements PredicateQuantified {
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected PredicateQuantifiedImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.PREDICATE_QUANTIFIED;
+    }
+
+} //SQLPredicateQuantifiedImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/PredicateQuantifiedRowSelectImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/PredicateQuantifiedRowSelectImpl.java
new file mode 100644
index 0000000..f7acb15
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/PredicateQuantifiedRowSelectImpl.java
@@ -0,0 +1,306 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PredicateQuantifiedRowSelectImpl.java,v 1.5 2007/02/08 17:00:26 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedType;
+import org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement;
+import org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement;
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionNested;
+import org.eclipse.datatools.modelbase.sql.query.TableJoined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Predicate Quantified Row Select</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateQuantifiedRowSelectImpl#getQuantifiedType <em>Quantified Type</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateQuantifiedRowSelectImpl#getQueryExpr <em>Query Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateQuantifiedRowSelectImpl#getValueExprList <em>Value Expr List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PredicateQuantifiedRowSelectImpl extends PredicateQuantifiedImpl implements PredicateQuantifiedRowSelect {
+	/**
+     * The default value of the '{@link #getQuantifiedType() <em>Quantified Type</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getQuantifiedType()
+     * @generated
+     * @ordered
+     */
+    protected static final PredicateQuantifiedType QUANTIFIED_TYPE_EDEFAULT = PredicateQuantifiedType.SOME_LITERAL;
+
+	/**
+     * The cached value of the '{@link #getQuantifiedType() <em>Quantified Type</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getQuantifiedType()
+     * @generated
+     * @ordered
+     */
+    protected PredicateQuantifiedType quantifiedType = QUANTIFIED_TYPE_EDEFAULT;
+
+	/**
+     * The cached value of the '{@link #getQueryExpr() <em>Query Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getQueryExpr()
+     * @generated
+     * @ordered
+     */
+    protected QueryExpressionRoot queryExpr;
+
+	/**
+     * The cached value of the '{@link #getValueExprList() <em>Value Expr List</em>}' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getValueExprList()
+     * @generated
+     * @ordered
+     */
+    protected EList valueExprList;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected PredicateQuantifiedRowSelectImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.PREDICATE_QUANTIFIED_ROW_SELECT;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public PredicateQuantifiedType getQuantifiedType() {
+        return quantifiedType;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setQuantifiedType(PredicateQuantifiedType newQuantifiedType) {
+        PredicateQuantifiedType oldQuantifiedType = quantifiedType;
+        quantifiedType = newQuantifiedType == null ? QUANTIFIED_TYPE_EDEFAULT : newQuantifiedType;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.PREDICATE_QUANTIFIED_ROW_SELECT__QUANTIFIED_TYPE, oldQuantifiedType, quantifiedType));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryExpressionRoot getQueryExpr() {
+        return queryExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetQueryExpr(QueryExpressionRoot newQueryExpr, NotificationChain msgs) {
+        QueryExpressionRoot oldQueryExpr = queryExpr;
+        queryExpr = newQueryExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.PREDICATE_QUANTIFIED_ROW_SELECT__QUERY_EXPR, oldQueryExpr, newQueryExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setQueryExpr(QueryExpressionRoot newQueryExpr) {
+        if (newQueryExpr != queryExpr) {
+            NotificationChain msgs = null;
+            if (queryExpr != null)
+                msgs = ((InternalEObject)queryExpr).eInverseRemove(this, SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__QUANTIFIED_ROW_SELECT_RIGHT, QueryExpressionRoot.class, msgs);
+            if (newQueryExpr != null)
+                msgs = ((InternalEObject)newQueryExpr).eInverseAdd(this, SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__QUANTIFIED_ROW_SELECT_RIGHT, QueryExpressionRoot.class, msgs);
+            msgs = basicSetQueryExpr(newQueryExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.PREDICATE_QUANTIFIED_ROW_SELECT__QUERY_EXPR, newQueryExpr, newQueryExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getValueExprList() {
+        if (valueExprList == null) {
+            valueExprList = new EObjectContainmentWithInverseEList(QueryValueExpression.class, this, SQLQueryModelPackage.PREDICATE_QUANTIFIED_ROW_SELECT__VALUE_EXPR_LIST, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_ROW_SELECT_LEFT);
+        }
+        return valueExprList;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_ROW_SELECT__QUERY_EXPR:
+                if (queryExpr != null)
+                    msgs = ((InternalEObject)queryExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.PREDICATE_QUANTIFIED_ROW_SELECT__QUERY_EXPR, null, msgs);
+                return basicSetQueryExpr((QueryExpressionRoot)otherEnd, msgs);
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_ROW_SELECT__VALUE_EXPR_LIST:
+                return ((InternalEList)getValueExprList()).basicAdd(otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_ROW_SELECT__QUERY_EXPR:
+                return basicSetQueryExpr(null, msgs);
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_ROW_SELECT__VALUE_EXPR_LIST:
+                return ((InternalEList)getValueExprList()).basicRemove(otherEnd, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_ROW_SELECT__QUANTIFIED_TYPE:
+                return getQuantifiedType();
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_ROW_SELECT__QUERY_EXPR:
+                return getQueryExpr();
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_ROW_SELECT__VALUE_EXPR_LIST:
+                return getValueExprList();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_ROW_SELECT__QUANTIFIED_TYPE:
+                setQuantifiedType((PredicateQuantifiedType)newValue);
+                return;
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_ROW_SELECT__QUERY_EXPR:
+                setQueryExpr((QueryExpressionRoot)newValue);
+                return;
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_ROW_SELECT__VALUE_EXPR_LIST:
+                getValueExprList().clear();
+                getValueExprList().addAll((Collection)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_ROW_SELECT__QUANTIFIED_TYPE:
+                setQuantifiedType(QUANTIFIED_TYPE_EDEFAULT);
+                return;
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_ROW_SELECT__QUERY_EXPR:
+                setQueryExpr((QueryExpressionRoot)null);
+                return;
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_ROW_SELECT__VALUE_EXPR_LIST:
+                getValueExprList().clear();
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_ROW_SELECT__QUANTIFIED_TYPE:
+                return quantifiedType != QUANTIFIED_TYPE_EDEFAULT;
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_ROW_SELECT__QUERY_EXPR:
+                return queryExpr != null;
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_ROW_SELECT__VALUE_EXPR_LIST:
+                return valueExprList != null && !valueExprList.isEmpty();
+        }
+        return super.eIsSet(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (quantifiedType: ");
+        result.append(quantifiedType);
+        result.append(')');
+        return result.toString();
+    }
+
+} //SQLPredicateQuantifiedRowSelectImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/PredicateQuantifiedValueSelectImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/PredicateQuantifiedValueSelectImpl.java
new file mode 100644
index 0000000..46ebd3e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/PredicateQuantifiedValueSelectImpl.java
@@ -0,0 +1,391 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PredicateQuantifiedValueSelectImpl.java,v 1.5 2007/02/08 17:00:32 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.PredicateComparisonOperator;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedType;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement;
+import org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement;
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionNested;
+import org.eclipse.datatools.modelbase.sql.query.TableJoined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Predicate Quantified Value Select</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateQuantifiedValueSelectImpl#getQuantifiedType <em>Quantified Type</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateQuantifiedValueSelectImpl#getComparisonOperator <em>Comparison Operator</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateQuantifiedValueSelectImpl#getQueryExpr <em>Query Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.PredicateQuantifiedValueSelectImpl#getValueExpr <em>Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PredicateQuantifiedValueSelectImpl extends PredicateQuantifiedImpl implements PredicateQuantifiedValueSelect {
+	/**
+     * The default value of the '{@link #getQuantifiedType() <em>Quantified Type</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getQuantifiedType()
+     * @generated
+     * @ordered
+     */
+    protected static final PredicateQuantifiedType QUANTIFIED_TYPE_EDEFAULT = PredicateQuantifiedType.SOME_LITERAL;
+
+	/**
+     * The cached value of the '{@link #getQuantifiedType() <em>Quantified Type</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getQuantifiedType()
+     * @generated
+     * @ordered
+     */
+    protected PredicateQuantifiedType quantifiedType = QUANTIFIED_TYPE_EDEFAULT;
+
+	/**
+     * The default value of the '{@link #getComparisonOperator() <em>Comparison Operator</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getComparisonOperator()
+     * @generated
+     * @ordered
+     */
+    protected static final PredicateComparisonOperator COMPARISON_OPERATOR_EDEFAULT = PredicateComparisonOperator.EQUAL_LITERAL;
+
+	/**
+     * The cached value of the '{@link #getComparisonOperator() <em>Comparison Operator</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getComparisonOperator()
+     * @generated
+     * @ordered
+     */
+    protected PredicateComparisonOperator comparisonOperator = COMPARISON_OPERATOR_EDEFAULT;
+
+	/**
+     * The cached value of the '{@link #getQueryExpr() <em>Query Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getQueryExpr()
+     * @generated
+     * @ordered
+     */
+    protected QueryExpressionRoot queryExpr;
+
+	/**
+     * The cached value of the '{@link #getValueExpr() <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getValueExpr()
+     * @generated
+     * @ordered
+     */
+    protected QueryValueExpression valueExpr;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected PredicateQuantifiedValueSelectImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.PREDICATE_QUANTIFIED_VALUE_SELECT;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public PredicateQuantifiedType getQuantifiedType() {
+        return quantifiedType;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setQuantifiedType(PredicateQuantifiedType newQuantifiedType) {
+        PredicateQuantifiedType oldQuantifiedType = quantifiedType;
+        quantifiedType = newQuantifiedType == null ? QUANTIFIED_TYPE_EDEFAULT : newQuantifiedType;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.PREDICATE_QUANTIFIED_VALUE_SELECT__QUANTIFIED_TYPE, oldQuantifiedType, quantifiedType));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public PredicateComparisonOperator getComparisonOperator() {
+        return comparisonOperator;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setComparisonOperator(PredicateComparisonOperator newComparisonOperator) {
+        PredicateComparisonOperator oldComparisonOperator = comparisonOperator;
+        comparisonOperator = newComparisonOperator == null ? COMPARISON_OPERATOR_EDEFAULT : newComparisonOperator;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.PREDICATE_QUANTIFIED_VALUE_SELECT__COMPARISON_OPERATOR, oldComparisonOperator, comparisonOperator));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryExpressionRoot getQueryExpr() {
+        return queryExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetQueryExpr(QueryExpressionRoot newQueryExpr, NotificationChain msgs) {
+        QueryExpressionRoot oldQueryExpr = queryExpr;
+        queryExpr = newQueryExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.PREDICATE_QUANTIFIED_VALUE_SELECT__QUERY_EXPR, oldQueryExpr, newQueryExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setQueryExpr(QueryExpressionRoot newQueryExpr) {
+        if (newQueryExpr != queryExpr) {
+            NotificationChain msgs = null;
+            if (queryExpr != null)
+                msgs = ((InternalEObject)queryExpr).eInverseRemove(this, SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__QUANTIFIED_VALUE_SELECT_RIGHT, QueryExpressionRoot.class, msgs);
+            if (newQueryExpr != null)
+                msgs = ((InternalEObject)newQueryExpr).eInverseAdd(this, SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__QUANTIFIED_VALUE_SELECT_RIGHT, QueryExpressionRoot.class, msgs);
+            msgs = basicSetQueryExpr(newQueryExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.PREDICATE_QUANTIFIED_VALUE_SELECT__QUERY_EXPR, newQueryExpr, newQueryExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryValueExpression getValueExpr() {
+        return valueExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetValueExpr(QueryValueExpression newValueExpr, NotificationChain msgs) {
+        QueryValueExpression oldValueExpr = valueExpr;
+        valueExpr = newValueExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.PREDICATE_QUANTIFIED_VALUE_SELECT__VALUE_EXPR, oldValueExpr, newValueExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueExpr(QueryValueExpression newValueExpr) {
+        if (newValueExpr != valueExpr) {
+            NotificationChain msgs = null;
+            if (valueExpr != null)
+                msgs = ((InternalEObject)valueExpr).eInverseRemove(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_VALUE_SELECT_LEFT, QueryValueExpression.class, msgs);
+            if (newValueExpr != null)
+                msgs = ((InternalEObject)newValueExpr).eInverseAdd(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_VALUE_SELECT_LEFT, QueryValueExpression.class, msgs);
+            msgs = basicSetValueExpr(newValueExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.PREDICATE_QUANTIFIED_VALUE_SELECT__VALUE_EXPR, newValueExpr, newValueExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_VALUE_SELECT__QUERY_EXPR:
+                if (queryExpr != null)
+                    msgs = ((InternalEObject)queryExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.PREDICATE_QUANTIFIED_VALUE_SELECT__QUERY_EXPR, null, msgs);
+                return basicSetQueryExpr((QueryExpressionRoot)otherEnd, msgs);
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_VALUE_SELECT__VALUE_EXPR:
+                if (valueExpr != null)
+                    msgs = ((InternalEObject)valueExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.PREDICATE_QUANTIFIED_VALUE_SELECT__VALUE_EXPR, null, msgs);
+                return basicSetValueExpr((QueryValueExpression)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_VALUE_SELECT__QUERY_EXPR:
+                return basicSetQueryExpr(null, msgs);
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_VALUE_SELECT__VALUE_EXPR:
+                return basicSetValueExpr(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_VALUE_SELECT__QUANTIFIED_TYPE:
+                return getQuantifiedType();
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_VALUE_SELECT__COMPARISON_OPERATOR:
+                return getComparisonOperator();
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_VALUE_SELECT__QUERY_EXPR:
+                return getQueryExpr();
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_VALUE_SELECT__VALUE_EXPR:
+                return getValueExpr();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_VALUE_SELECT__QUANTIFIED_TYPE:
+                setQuantifiedType((PredicateQuantifiedType)newValue);
+                return;
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_VALUE_SELECT__COMPARISON_OPERATOR:
+                setComparisonOperator((PredicateComparisonOperator)newValue);
+                return;
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_VALUE_SELECT__QUERY_EXPR:
+                setQueryExpr((QueryExpressionRoot)newValue);
+                return;
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_VALUE_SELECT__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_VALUE_SELECT__QUANTIFIED_TYPE:
+                setQuantifiedType(QUANTIFIED_TYPE_EDEFAULT);
+                return;
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_VALUE_SELECT__COMPARISON_OPERATOR:
+                setComparisonOperator(COMPARISON_OPERATOR_EDEFAULT);
+                return;
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_VALUE_SELECT__QUERY_EXPR:
+                setQueryExpr((QueryExpressionRoot)null);
+                return;
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_VALUE_SELECT__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_VALUE_SELECT__QUANTIFIED_TYPE:
+                return quantifiedType != QUANTIFIED_TYPE_EDEFAULT;
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_VALUE_SELECT__COMPARISON_OPERATOR:
+                return comparisonOperator != COMPARISON_OPERATOR_EDEFAULT;
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_VALUE_SELECT__QUERY_EXPR:
+                return queryExpr != null;
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_VALUE_SELECT__VALUE_EXPR:
+                return valueExpr != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (quantifiedType: ");
+        result.append(quantifiedType);
+        result.append(", comparisonOperator: ");
+        result.append(comparisonOperator);
+        result.append(')');
+        return result.toString();
+    }
+
+} //SQLPredicateQuantifiedValueSelectImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ProcedureReferenceImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ProcedureReferenceImpl.java
new file mode 100644
index 0000000..4b195bf
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ProcedureReferenceImpl.java
@@ -0,0 +1,253 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import org.eclipse.datatools.modelbase.sql.query.CallStatement;
+import org.eclipse.datatools.modelbase.sql.query.ProcedureReference;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+
+import org.eclipse.datatools.modelbase.sql.routines.Procedure;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Procedure Reference</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.ProcedureReferenceImpl#getCallStatement <em>Call Statement</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.ProcedureReferenceImpl#getProcedure <em>Procedure</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ProcedureReferenceImpl extends SQLQueryObjectImpl implements ProcedureReference {
+    /**
+     * The cached value of the '{@link #getProcedure() <em>Procedure</em>}' reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getProcedure()
+     * @generated
+     * @ordered
+     */
+    protected Procedure procedure;
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected ProcedureReferenceImpl() {
+        super();
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.PROCEDURE_REFERENCE;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public CallStatement getCallStatement() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.PROCEDURE_REFERENCE__CALL_STATEMENT) return null;
+        return (CallStatement)eContainer();
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetCallStatement(CallStatement newCallStatement, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newCallStatement, SQLQueryModelPackage.PROCEDURE_REFERENCE__CALL_STATEMENT, msgs);
+        return msgs;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setCallStatement(CallStatement newCallStatement) {
+        if (newCallStatement != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.PROCEDURE_REFERENCE__CALL_STATEMENT && newCallStatement != null)) {
+            if (EcoreUtil.isAncestor(this, newCallStatement))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newCallStatement != null)
+                msgs = ((InternalEObject)newCallStatement).eInverseAdd(this, SQLQueryModelPackage.CALL_STATEMENT__PROCEDURE_REF, CallStatement.class, msgs);
+            msgs = basicSetCallStatement(newCallStatement, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.PROCEDURE_REFERENCE__CALL_STATEMENT, newCallStatement, newCallStatement));
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public Procedure getProcedure() {
+        if (procedure != null && procedure.eIsProxy()) {
+            InternalEObject oldProcedure = (InternalEObject)procedure;
+            procedure = (Procedure)eResolveProxy(oldProcedure);
+            if (procedure != oldProcedure) {
+                if (eNotificationRequired())
+                    eNotify(new ENotificationImpl(this, Notification.RESOLVE, SQLQueryModelPackage.PROCEDURE_REFERENCE__PROCEDURE, oldProcedure, procedure));
+            }
+        }
+        return procedure;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public Procedure basicGetProcedure() {
+        return procedure;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setProcedure(Procedure newProcedure) {
+        Procedure oldProcedure = procedure;
+        procedure = newProcedure;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.PROCEDURE_REFERENCE__PROCEDURE, oldProcedure, procedure));
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PROCEDURE_REFERENCE__CALL_STATEMENT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetCallStatement((CallStatement)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PROCEDURE_REFERENCE__CALL_STATEMENT:
+                return basicSetCallStatement(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLQueryModelPackage.PROCEDURE_REFERENCE__CALL_STATEMENT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.CALL_STATEMENT__PROCEDURE_REF, CallStatement.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PROCEDURE_REFERENCE__CALL_STATEMENT:
+                return getCallStatement();
+            case SQLQueryModelPackage.PROCEDURE_REFERENCE__PROCEDURE:
+                if (resolve) return getProcedure();
+                return basicGetProcedure();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PROCEDURE_REFERENCE__CALL_STATEMENT:
+                setCallStatement((CallStatement)newValue);
+                return;
+            case SQLQueryModelPackage.PROCEDURE_REFERENCE__PROCEDURE:
+                setProcedure((Procedure)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PROCEDURE_REFERENCE__CALL_STATEMENT:
+                setCallStatement((CallStatement)null);
+                return;
+            case SQLQueryModelPackage.PROCEDURE_REFERENCE__PROCEDURE:
+                setProcedure((Procedure)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.PROCEDURE_REFERENCE__CALL_STATEMENT:
+                return getCallStatement() != null;
+            case SQLQueryModelPackage.PROCEDURE_REFERENCE__PROCEDURE:
+                return procedure != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //ProcedureReferenceImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QueryChangeStatementImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QueryChangeStatementImpl.java
new file mode 100644
index 0000000..de1af53
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QueryChangeStatementImpl.java
@@ -0,0 +1,51 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QueryChangeStatementImpl.java,v 1.5 2007/02/08 17:00:27 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryChangeStatement;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Change Statement</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class QueryChangeStatementImpl extends QueryStatementImpl implements QueryChangeStatement {
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected QueryChangeStatementImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.QUERY_CHANGE_STATEMENT;
+    }
+
+} //SQLQueryChangeStatementImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QueryCombinedImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QueryCombinedImpl.java
new file mode 100644
index 0000000..5d9b5ca
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QueryCombinedImpl.java
@@ -0,0 +1,336 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QueryCombinedImpl.java,v 1.5 2007/02/08 17:00:25 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.PredicateExists;
+import org.eclipse.datatools.modelbase.sql.query.QueryCombined;
+import org.eclipse.datatools.modelbase.sql.query.QueryCombinedOperator;
+import org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody;
+import org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.TableCorrelation;
+import org.eclipse.datatools.modelbase.sql.query.TableJoined;
+import org.eclipse.datatools.modelbase.sql.query.TableNested;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceQuery;
+import org.eclipse.datatools.modelbase.sql.query.WithTableSpecification;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Combined</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryCombinedImpl#getCombinedOperator <em>Combined Operator</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryCombinedImpl#getLeftQuery <em>Left Query</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryCombinedImpl#getRightQuery <em>Right Query</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class QueryCombinedImpl extends QueryExpressionBodyImpl implements QueryCombined {
+	/**
+     * The default value of the '{@link #getCombinedOperator() <em>Combined Operator</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getCombinedOperator()
+     * @generated
+     * @ordered
+     */
+    protected static final QueryCombinedOperator COMBINED_OPERATOR_EDEFAULT = QueryCombinedOperator.UNION_LITERAL;
+
+	/**
+     * The cached value of the '{@link #getCombinedOperator() <em>Combined Operator</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getCombinedOperator()
+     * @generated
+     * @ordered
+     */
+    protected QueryCombinedOperator combinedOperator = COMBINED_OPERATOR_EDEFAULT;
+
+	/**
+     * The cached value of the '{@link #getLeftQuery() <em>Left Query</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getLeftQuery()
+     * @generated
+     * @ordered
+     */
+    protected QueryExpressionBody leftQuery;
+
+	/**
+     * The cached value of the '{@link #getRightQuery() <em>Right Query</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getRightQuery()
+     * @generated
+     * @ordered
+     */
+    protected QueryExpressionBody rightQuery;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected QueryCombinedImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.QUERY_COMBINED;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryCombinedOperator getCombinedOperator() {
+        return combinedOperator;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setCombinedOperator(QueryCombinedOperator newCombinedOperator) {
+        QueryCombinedOperator oldCombinedOperator = combinedOperator;
+        combinedOperator = newCombinedOperator == null ? COMBINED_OPERATOR_EDEFAULT : newCombinedOperator;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_COMBINED__COMBINED_OPERATOR, oldCombinedOperator, combinedOperator));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryExpressionBody getLeftQuery() {
+        return leftQuery;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetLeftQuery(QueryExpressionBody newLeftQuery, NotificationChain msgs) {
+        QueryExpressionBody oldLeftQuery = leftQuery;
+        leftQuery = newLeftQuery;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_COMBINED__LEFT_QUERY, oldLeftQuery, newLeftQuery);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setLeftQuery(QueryExpressionBody newLeftQuery) {
+        if (newLeftQuery != leftQuery) {
+            NotificationChain msgs = null;
+            if (leftQuery != null)
+                msgs = ((InternalEObject)leftQuery).eInverseRemove(this, SQLQueryModelPackage.QUERY_EXPRESSION_BODY__COMBINED_LEFT, QueryExpressionBody.class, msgs);
+            if (newLeftQuery != null)
+                msgs = ((InternalEObject)newLeftQuery).eInverseAdd(this, SQLQueryModelPackage.QUERY_EXPRESSION_BODY__COMBINED_LEFT, QueryExpressionBody.class, msgs);
+            msgs = basicSetLeftQuery(newLeftQuery, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_COMBINED__LEFT_QUERY, newLeftQuery, newLeftQuery));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryExpressionBody getRightQuery() {
+        return rightQuery;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetRightQuery(QueryExpressionBody newRightQuery, NotificationChain msgs) {
+        QueryExpressionBody oldRightQuery = rightQuery;
+        rightQuery = newRightQuery;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_COMBINED__RIGHT_QUERY, oldRightQuery, newRightQuery);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setRightQuery(QueryExpressionBody newRightQuery) {
+        if (newRightQuery != rightQuery) {
+            NotificationChain msgs = null;
+            if (rightQuery != null)
+                msgs = ((InternalEObject)rightQuery).eInverseRemove(this, SQLQueryModelPackage.QUERY_EXPRESSION_BODY__COMBINED_RIGHT, QueryExpressionBody.class, msgs);
+            if (newRightQuery != null)
+                msgs = ((InternalEObject)newRightQuery).eInverseAdd(this, SQLQueryModelPackage.QUERY_EXPRESSION_BODY__COMBINED_RIGHT, QueryExpressionBody.class, msgs);
+            msgs = basicSetRightQuery(newRightQuery, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_COMBINED__RIGHT_QUERY, newRightQuery, newRightQuery));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_COMBINED__LEFT_QUERY:
+                if (leftQuery != null)
+                    msgs = ((InternalEObject)leftQuery).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.QUERY_COMBINED__LEFT_QUERY, null, msgs);
+                return basicSetLeftQuery((QueryExpressionBody)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_COMBINED__RIGHT_QUERY:
+                if (rightQuery != null)
+                    msgs = ((InternalEObject)rightQuery).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.QUERY_COMBINED__RIGHT_QUERY, null, msgs);
+                return basicSetRightQuery((QueryExpressionBody)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_COMBINED__LEFT_QUERY:
+                return basicSetLeftQuery(null, msgs);
+            case SQLQueryModelPackage.QUERY_COMBINED__RIGHT_QUERY:
+                return basicSetRightQuery(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_COMBINED__COMBINED_OPERATOR:
+                return getCombinedOperator();
+            case SQLQueryModelPackage.QUERY_COMBINED__LEFT_QUERY:
+                return getLeftQuery();
+            case SQLQueryModelPackage.QUERY_COMBINED__RIGHT_QUERY:
+                return getRightQuery();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_COMBINED__COMBINED_OPERATOR:
+                setCombinedOperator((QueryCombinedOperator)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_COMBINED__LEFT_QUERY:
+                setLeftQuery((QueryExpressionBody)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_COMBINED__RIGHT_QUERY:
+                setRightQuery((QueryExpressionBody)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_COMBINED__COMBINED_OPERATOR:
+                setCombinedOperator(COMBINED_OPERATOR_EDEFAULT);
+                return;
+            case SQLQueryModelPackage.QUERY_COMBINED__LEFT_QUERY:
+                setLeftQuery((QueryExpressionBody)null);
+                return;
+            case SQLQueryModelPackage.QUERY_COMBINED__RIGHT_QUERY:
+                setRightQuery((QueryExpressionBody)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_COMBINED__COMBINED_OPERATOR:
+                return combinedOperator != COMBINED_OPERATOR_EDEFAULT;
+            case SQLQueryModelPackage.QUERY_COMBINED__LEFT_QUERY:
+                return leftQuery != null;
+            case SQLQueryModelPackage.QUERY_COMBINED__RIGHT_QUERY:
+                return rightQuery != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (combinedOperator: ");
+        result.append(combinedOperator);
+        result.append(')');
+        return result.toString();
+    }
+
+} //SQLQueryCombinedImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QueryDeleteStatementImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QueryDeleteStatementImpl.java
new file mode 100644
index 0000000..0617504
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QueryDeleteStatementImpl.java
@@ -0,0 +1,454 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QueryDeleteStatementImpl.java,v 1.4 2007/02/08 17:00:26 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.CursorReference;
+import org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement;
+import org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.TableInDatabase;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Delete Statement</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryDeleteStatementImpl#getWhereCurrentOfClause <em>Where Current Of Clause</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryDeleteStatementImpl#getWhereClause <em>Where Clause</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryDeleteStatementImpl#getTargetTable <em>Target Table</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class QueryDeleteStatementImpl extends QueryChangeStatementImpl implements QueryDeleteStatement {
+	/**
+     * The cached value of the '{@link #getWhereCurrentOfClause() <em>Where Current Of Clause</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getWhereCurrentOfClause()
+     * @generated
+     * @ordered
+     */
+    protected CursorReference whereCurrentOfClause;
+
+	/**
+     * The cached value of the '{@link #getWhereClause() <em>Where Clause</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getWhereClause()
+     * @generated
+     * @ordered
+     */
+    protected QuerySearchCondition whereClause;
+
+	/**
+     * This is true if the Where Clause containment reference has been set.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    protected boolean whereClauseESet;
+
+	/**
+     * The cached value of the '{@link #getTargetTable() <em>Target Table</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getTargetTable()
+     * @generated
+     * @ordered
+     */
+    protected TableInDatabase targetTable;
+
+	/**
+     * This is true if the Target Table containment reference has been set.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    protected boolean targetTableESet;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected QueryDeleteStatementImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.QUERY_DELETE_STATEMENT;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public CursorReference getWhereCurrentOfClause() {
+        return whereCurrentOfClause;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetWhereCurrentOfClause(CursorReference newWhereCurrentOfClause, NotificationChain msgs) {
+        CursorReference oldWhereCurrentOfClause = whereCurrentOfClause;
+        whereCurrentOfClause = newWhereCurrentOfClause;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_DELETE_STATEMENT__WHERE_CURRENT_OF_CLAUSE, oldWhereCurrentOfClause, newWhereCurrentOfClause);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setWhereCurrentOfClause(CursorReference newWhereCurrentOfClause) {
+        if (newWhereCurrentOfClause != whereCurrentOfClause) {
+            NotificationChain msgs = null;
+            if (whereCurrentOfClause != null)
+                msgs = ((InternalEObject)whereCurrentOfClause).eInverseRemove(this, SQLQueryModelPackage.CURSOR_REFERENCE__DELETE_STATEMENT, CursorReference.class, msgs);
+            if (newWhereCurrentOfClause != null)
+                msgs = ((InternalEObject)newWhereCurrentOfClause).eInverseAdd(this, SQLQueryModelPackage.CURSOR_REFERENCE__DELETE_STATEMENT, CursorReference.class, msgs);
+            msgs = basicSetWhereCurrentOfClause(newWhereCurrentOfClause, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_DELETE_STATEMENT__WHERE_CURRENT_OF_CLAUSE, newWhereCurrentOfClause, newWhereCurrentOfClause));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QuerySearchCondition getWhereClause() {
+        return whereClause;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetWhereClause(QuerySearchCondition newWhereClause, NotificationChain msgs) {
+        QuerySearchCondition oldWhereClause = whereClause;
+        whereClause = newWhereClause;
+        boolean oldWhereClauseESet = whereClauseESet;
+        whereClauseESet = true;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_DELETE_STATEMENT__WHERE_CLAUSE, oldWhereClause, newWhereClause, !oldWhereClauseESet);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setWhereClause(QuerySearchCondition newWhereClause) {
+        if (newWhereClause != whereClause) {
+            NotificationChain msgs = null;
+            if (whereClause != null)
+                msgs = ((InternalEObject)whereClause).eInverseRemove(this, SQLQueryModelPackage.QUERY_SEARCH_CONDITION__DELETE_STATEMENT, QuerySearchCondition.class, msgs);
+            if (newWhereClause != null)
+                msgs = ((InternalEObject)newWhereClause).eInverseAdd(this, SQLQueryModelPackage.QUERY_SEARCH_CONDITION__DELETE_STATEMENT, QuerySearchCondition.class, msgs);
+            msgs = basicSetWhereClause(newWhereClause, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else {
+            boolean oldWhereClauseESet = whereClauseESet;
+            whereClauseESet = true;
+            if (eNotificationRequired())
+                eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_DELETE_STATEMENT__WHERE_CLAUSE, newWhereClause, newWhereClause, !oldWhereClauseESet));
+        }
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicUnsetWhereClause(NotificationChain msgs) {
+        QuerySearchCondition oldWhereClause = whereClause;
+        whereClause = null;
+        boolean oldWhereClauseESet = whereClauseESet;
+        whereClauseESet = false;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.UNSET, SQLQueryModelPackage.QUERY_DELETE_STATEMENT__WHERE_CLAUSE, oldWhereClause, null, oldWhereClauseESet);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void unsetWhereClause() {
+        if (whereClause != null) {
+            NotificationChain msgs = null;
+            msgs = ((InternalEObject)whereClause).eInverseRemove(this, SQLQueryModelPackage.QUERY_SEARCH_CONDITION__DELETE_STATEMENT, QuerySearchCondition.class, msgs);
+            msgs = basicUnsetWhereClause(msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else {
+            boolean oldWhereClauseESet = whereClauseESet;
+            whereClauseESet = false;
+            if (eNotificationRequired())
+                eNotify(new ENotificationImpl(this, Notification.UNSET, SQLQueryModelPackage.QUERY_DELETE_STATEMENT__WHERE_CLAUSE, null, null, oldWhereClauseESet));
+        }
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public boolean isSetWhereClause() {
+        return whereClauseESet;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public TableInDatabase getTargetTable() {
+        return targetTable;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public NotificationChain basicSetTargetTable(TableInDatabase newTargetTable, NotificationChain msgs) {
+        TableInDatabase oldTargetTable = targetTable;
+        targetTable = newTargetTable;
+        boolean oldTargetTableESet = targetTableESet;
+        targetTableESet = true;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_DELETE_STATEMENT__TARGET_TABLE, oldTargetTable, newTargetTable, !oldTargetTableESet);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void setTargetTable(TableInDatabase newTargetTable) {
+        if (newTargetTable != targetTable) {
+            NotificationChain msgs = null;
+            if (targetTable != null)
+                msgs = ((InternalEObject)targetTable).eInverseRemove(this, SQLQueryModelPackage.TABLE_IN_DATABASE__DELETE_STATEMENT, TableInDatabase.class, msgs);
+            if (newTargetTable != null)
+                msgs = ((InternalEObject)newTargetTable).eInverseAdd(this, SQLQueryModelPackage.TABLE_IN_DATABASE__DELETE_STATEMENT, TableInDatabase.class, msgs);
+            msgs = basicSetTargetTable(newTargetTable, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else {
+            boolean oldTargetTableESet = targetTableESet;
+            targetTableESet = true;
+            if (eNotificationRequired())
+                eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_DELETE_STATEMENT__TARGET_TABLE, newTargetTable, newTargetTable, !oldTargetTableESet));
+        }
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicUnsetTargetTable(NotificationChain msgs) {
+        TableInDatabase oldTargetTable = targetTable;
+        targetTable = null;
+        boolean oldTargetTableESet = targetTableESet;
+        targetTableESet = false;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.UNSET, SQLQueryModelPackage.QUERY_DELETE_STATEMENT__TARGET_TABLE, oldTargetTable, null, oldTargetTableESet);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void unsetTargetTable() {
+        if (targetTable != null) {
+            NotificationChain msgs = null;
+            msgs = ((InternalEObject)targetTable).eInverseRemove(this, SQLQueryModelPackage.TABLE_IN_DATABASE__DELETE_STATEMENT, TableInDatabase.class, msgs);
+            msgs = basicUnsetTargetTable(msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else {
+            boolean oldTargetTableESet = targetTableESet;
+            targetTableESet = false;
+            if (eNotificationRequired())
+                eNotify(new ENotificationImpl(this, Notification.UNSET, SQLQueryModelPackage.QUERY_DELETE_STATEMENT__TARGET_TABLE, null, null, oldTargetTableESet));
+        }
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public boolean isSetTargetTable() {
+        return targetTableESet;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_DELETE_STATEMENT__WHERE_CURRENT_OF_CLAUSE:
+                if (whereCurrentOfClause != null)
+                    msgs = ((InternalEObject)whereCurrentOfClause).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.QUERY_DELETE_STATEMENT__WHERE_CURRENT_OF_CLAUSE, null, msgs);
+                return basicSetWhereCurrentOfClause((CursorReference)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_DELETE_STATEMENT__WHERE_CLAUSE:
+                if (whereClause != null)
+                    msgs = ((InternalEObject)whereClause).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.QUERY_DELETE_STATEMENT__WHERE_CLAUSE, null, msgs);
+                return basicSetWhereClause((QuerySearchCondition)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_DELETE_STATEMENT__TARGET_TABLE:
+                if (targetTable != null)
+                    msgs = ((InternalEObject)targetTable).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.QUERY_DELETE_STATEMENT__TARGET_TABLE, null, msgs);
+                return basicSetTargetTable((TableInDatabase)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_DELETE_STATEMENT__WHERE_CURRENT_OF_CLAUSE:
+                return basicSetWhereCurrentOfClause(null, msgs);
+            case SQLQueryModelPackage.QUERY_DELETE_STATEMENT__WHERE_CLAUSE:
+                return basicUnsetWhereClause(msgs);
+            case SQLQueryModelPackage.QUERY_DELETE_STATEMENT__TARGET_TABLE:
+                return basicUnsetTargetTable(msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_DELETE_STATEMENT__WHERE_CURRENT_OF_CLAUSE:
+                return getWhereCurrentOfClause();
+            case SQLQueryModelPackage.QUERY_DELETE_STATEMENT__WHERE_CLAUSE:
+                return getWhereClause();
+            case SQLQueryModelPackage.QUERY_DELETE_STATEMENT__TARGET_TABLE:
+                return getTargetTable();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_DELETE_STATEMENT__WHERE_CURRENT_OF_CLAUSE:
+                setWhereCurrentOfClause((CursorReference)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_DELETE_STATEMENT__WHERE_CLAUSE:
+                setWhereClause((QuerySearchCondition)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_DELETE_STATEMENT__TARGET_TABLE:
+                setTargetTable((TableInDatabase)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_DELETE_STATEMENT__WHERE_CURRENT_OF_CLAUSE:
+                setWhereCurrentOfClause((CursorReference)null);
+                return;
+            case SQLQueryModelPackage.QUERY_DELETE_STATEMENT__WHERE_CLAUSE:
+                unsetWhereClause();
+                return;
+            case SQLQueryModelPackage.QUERY_DELETE_STATEMENT__TARGET_TABLE:
+                unsetTargetTable();
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_DELETE_STATEMENT__WHERE_CURRENT_OF_CLAUSE:
+                return whereCurrentOfClause != null;
+            case SQLQueryModelPackage.QUERY_DELETE_STATEMENT__WHERE_CLAUSE:
+                return isSetWhereClause();
+            case SQLQueryModelPackage.QUERY_DELETE_STATEMENT__TARGET_TABLE:
+                return isSetTargetTable();
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //SQLDeleteStatementImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QueryExpressionBodyImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QueryExpressionBodyImpl.java
new file mode 100644
index 0000000..e613d10
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QueryExpressionBodyImpl.java
@@ -0,0 +1,667 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QueryExpressionBodyImpl.java,v 1.5 2008/01/31 02:57:15 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.OrderBySpecification;
+import org.eclipse.datatools.modelbase.sql.query.PredicateExists;
+import org.eclipse.datatools.modelbase.sql.query.QueryCombined;
+import org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody;
+import org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot;
+import org.eclipse.datatools.modelbase.sql.query.QueryNested;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.TableCorrelation;
+import org.eclipse.datatools.modelbase.sql.query.TableJoined;
+import org.eclipse.datatools.modelbase.sql.query.TableNested;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceQuery;
+import org.eclipse.datatools.modelbase.sql.query.WithTableSpecification;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Expression Body</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryExpressionBodyImpl#getRowFetchLimit <em>Row Fetch Limit</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryExpressionBodyImpl#getQueryExpression <em>Query Expression</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryExpressionBodyImpl#getCombinedLeft <em>Combined Left</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryExpressionBodyImpl#getCombinedRight <em>Combined Right</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryExpressionBodyImpl#getPredicateExists <em>Predicate Exists</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryExpressionBodyImpl#getUpdateSourceQuery <em>Update Source Query</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryExpressionBodyImpl#getWithTableSpecification <em>With Table Specification</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryExpressionBodyImpl#getQueryNest <em>Query Nest</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryExpressionBodyImpl#getSortSpecList <em>Sort Spec List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class QueryExpressionBodyImpl extends TableExpressionImpl implements QueryExpressionBody {
+	/**
+     * The default value of the '{@link #getRowFetchLimit() <em>Row Fetch Limit</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getRowFetchLimit()
+     * @generated
+     * @ordered
+     */
+    protected static final int ROW_FETCH_LIMIT_EDEFAULT = 0;
+    /**
+     * The cached value of the '{@link #getRowFetchLimit() <em>Row Fetch Limit</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getRowFetchLimit()
+     * @generated
+     * @ordered
+     */
+    protected int rowFetchLimit = ROW_FETCH_LIMIT_EDEFAULT;
+    /**
+     * The cached value of the '{@link #getSortSpecList() <em>Sort Spec List</em>}' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getSortSpecList()
+     * @generated
+     * @ordered
+     */
+    protected EList sortSpecList;
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected QueryExpressionBodyImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.QUERY_EXPRESSION_BODY;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public int getRowFetchLimit() {
+        return rowFetchLimit;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setRowFetchLimit(int newRowFetchLimit) {
+        int oldRowFetchLimit = rowFetchLimit;
+        rowFetchLimit = newRowFetchLimit;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_EXPRESSION_BODY__ROW_FETCH_LIMIT, oldRowFetchLimit, rowFetchLimit));
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryExpressionRoot getQueryExpression() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_EXPRESSION_BODY__QUERY_EXPRESSION) return null;
+        return (QueryExpressionRoot)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetQueryExpression(QueryExpressionRoot newQueryExpression, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newQueryExpression, SQLQueryModelPackage.QUERY_EXPRESSION_BODY__QUERY_EXPRESSION, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setQueryExpression(QueryExpressionRoot newQueryExpression) {
+        if (newQueryExpression != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_EXPRESSION_BODY__QUERY_EXPRESSION && newQueryExpression != null)) {
+            if (EcoreUtil.isAncestor(this, newQueryExpression))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newQueryExpression != null)
+                msgs = ((InternalEObject)newQueryExpression).eInverseAdd(this, SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__QUERY, QueryExpressionRoot.class, msgs);
+            msgs = basicSetQueryExpression(newQueryExpression, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_EXPRESSION_BODY__QUERY_EXPRESSION, newQueryExpression, newQueryExpression));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryCombined getCombinedLeft() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_EXPRESSION_BODY__COMBINED_LEFT) return null;
+        return (QueryCombined)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetCombinedLeft(QueryCombined newCombinedLeft, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newCombinedLeft, SQLQueryModelPackage.QUERY_EXPRESSION_BODY__COMBINED_LEFT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setCombinedLeft(QueryCombined newCombinedLeft) {
+        if (newCombinedLeft != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_EXPRESSION_BODY__COMBINED_LEFT && newCombinedLeft != null)) {
+            if (EcoreUtil.isAncestor(this, newCombinedLeft))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newCombinedLeft != null)
+                msgs = ((InternalEObject)newCombinedLeft).eInverseAdd(this, SQLQueryModelPackage.QUERY_COMBINED__LEFT_QUERY, QueryCombined.class, msgs);
+            msgs = basicSetCombinedLeft(newCombinedLeft, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_EXPRESSION_BODY__COMBINED_LEFT, newCombinedLeft, newCombinedLeft));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryCombined getCombinedRight() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_EXPRESSION_BODY__COMBINED_RIGHT) return null;
+        return (QueryCombined)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetCombinedRight(QueryCombined newCombinedRight, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newCombinedRight, SQLQueryModelPackage.QUERY_EXPRESSION_BODY__COMBINED_RIGHT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setCombinedRight(QueryCombined newCombinedRight) {
+        if (newCombinedRight != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_EXPRESSION_BODY__COMBINED_RIGHT && newCombinedRight != null)) {
+            if (EcoreUtil.isAncestor(this, newCombinedRight))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newCombinedRight != null)
+                msgs = ((InternalEObject)newCombinedRight).eInverseAdd(this, SQLQueryModelPackage.QUERY_COMBINED__RIGHT_QUERY, QueryCombined.class, msgs);
+            msgs = basicSetCombinedRight(newCombinedRight, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_EXPRESSION_BODY__COMBINED_RIGHT, newCombinedRight, newCombinedRight));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public PredicateExists getPredicateExists() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_EXPRESSION_BODY__PREDICATE_EXISTS) return null;
+        return (PredicateExists)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetPredicateExists(PredicateExists newPredicateExists, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newPredicateExists, SQLQueryModelPackage.QUERY_EXPRESSION_BODY__PREDICATE_EXISTS, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setPredicateExists(PredicateExists newPredicateExists) {
+        if (newPredicateExists != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_EXPRESSION_BODY__PREDICATE_EXISTS && newPredicateExists != null)) {
+            if (EcoreUtil.isAncestor(this, newPredicateExists))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newPredicateExists != null)
+                msgs = ((InternalEObject)newPredicateExists).eInverseAdd(this, SQLQueryModelPackage.PREDICATE_EXISTS__QUERY_EXPR, PredicateExists.class, msgs);
+            msgs = basicSetPredicateExists(newPredicateExists, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_EXPRESSION_BODY__PREDICATE_EXISTS, newPredicateExists, newPredicateExists));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public UpdateSourceQuery getUpdateSourceQuery() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_EXPRESSION_BODY__UPDATE_SOURCE_QUERY) return null;
+        return (UpdateSourceQuery)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetUpdateSourceQuery(UpdateSourceQuery newUpdateSourceQuery, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newUpdateSourceQuery, SQLQueryModelPackage.QUERY_EXPRESSION_BODY__UPDATE_SOURCE_QUERY, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void setUpdateSourceQuery(UpdateSourceQuery newUpdateSourceQuery) {
+        if (newUpdateSourceQuery != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_EXPRESSION_BODY__UPDATE_SOURCE_QUERY && newUpdateSourceQuery != null)) {
+            if (EcoreUtil.isAncestor(this, newUpdateSourceQuery))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newUpdateSourceQuery != null)
+                msgs = ((InternalEObject)newUpdateSourceQuery).eInverseAdd(this, SQLQueryModelPackage.UPDATE_SOURCE_QUERY__QUERY_EXPR, UpdateSourceQuery.class, msgs);
+            msgs = basicSetUpdateSourceQuery(newUpdateSourceQuery, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_EXPRESSION_BODY__UPDATE_SOURCE_QUERY, newUpdateSourceQuery, newUpdateSourceQuery));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public WithTableSpecification getWithTableSpecification() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_EXPRESSION_BODY__WITH_TABLE_SPECIFICATION) return null;
+        return (WithTableSpecification)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetWithTableSpecification(WithTableSpecification newWithTableSpecification, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newWithTableSpecification, SQLQueryModelPackage.QUERY_EXPRESSION_BODY__WITH_TABLE_SPECIFICATION, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setWithTableSpecification(WithTableSpecification newWithTableSpecification) {
+        if (newWithTableSpecification != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_EXPRESSION_BODY__WITH_TABLE_SPECIFICATION && newWithTableSpecification != null)) {
+            if (EcoreUtil.isAncestor(this, newWithTableSpecification))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newWithTableSpecification != null)
+                msgs = ((InternalEObject)newWithTableSpecification).eInverseAdd(this, SQLQueryModelPackage.WITH_TABLE_SPECIFICATION__WITH_TABLE_QUERY_EXPR, WithTableSpecification.class, msgs);
+            msgs = basicSetWithTableSpecification(newWithTableSpecification, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_EXPRESSION_BODY__WITH_TABLE_SPECIFICATION, newWithTableSpecification, newWithTableSpecification));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryNested getQueryNest() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_EXPRESSION_BODY__QUERY_NEST) return null;
+        return (QueryNested)eContainer();
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetQueryNest(QueryNested newQueryNest, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newQueryNest, SQLQueryModelPackage.QUERY_EXPRESSION_BODY__QUERY_NEST, msgs);
+        return msgs;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setQueryNest(QueryNested newQueryNest) {
+        if (newQueryNest != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_EXPRESSION_BODY__QUERY_NEST && newQueryNest != null)) {
+            if (EcoreUtil.isAncestor(this, newQueryNest))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newQueryNest != null)
+                msgs = ((InternalEObject)newQueryNest).eInverseAdd(this, SQLQueryModelPackage.QUERY_NESTED__NESTED_QUERY, QueryNested.class, msgs);
+            msgs = basicSetQueryNest(newQueryNest, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_EXPRESSION_BODY__QUERY_NEST, newQueryNest, newQueryNest));
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getSortSpecList() {
+        if (sortSpecList == null) {
+            sortSpecList = new EObjectContainmentWithInverseEList(OrderBySpecification.class, this, SQLQueryModelPackage.QUERY_EXPRESSION_BODY__SORT_SPEC_LIST, SQLQueryModelPackage.ORDER_BY_SPECIFICATION__QUERY);
+        }
+        return sortSpecList;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__QUERY_EXPRESSION:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetQueryExpression((QueryExpressionRoot)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__COMBINED_LEFT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetCombinedLeft((QueryCombined)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__COMBINED_RIGHT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetCombinedRight((QueryCombined)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__PREDICATE_EXISTS:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetPredicateExists((PredicateExists)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__UPDATE_SOURCE_QUERY:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetUpdateSourceQuery((UpdateSourceQuery)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__WITH_TABLE_SPECIFICATION:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetWithTableSpecification((WithTableSpecification)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__QUERY_NEST:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetQueryNest((QueryNested)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__SORT_SPEC_LIST:
+                return ((InternalEList)getSortSpecList()).basicAdd(otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__QUERY_EXPRESSION:
+                return basicSetQueryExpression(null, msgs);
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__COMBINED_LEFT:
+                return basicSetCombinedLeft(null, msgs);
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__COMBINED_RIGHT:
+                return basicSetCombinedRight(null, msgs);
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__PREDICATE_EXISTS:
+                return basicSetPredicateExists(null, msgs);
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__UPDATE_SOURCE_QUERY:
+                return basicSetUpdateSourceQuery(null, msgs);
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__WITH_TABLE_SPECIFICATION:
+                return basicSetWithTableSpecification(null, msgs);
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__QUERY_NEST:
+                return basicSetQueryNest(null, msgs);
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__SORT_SPEC_LIST:
+                return ((InternalEList)getSortSpecList()).basicRemove(otherEnd, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__QUERY_EXPRESSION:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__QUERY, QueryExpressionRoot.class, msgs);
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__COMBINED_LEFT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.QUERY_COMBINED__LEFT_QUERY, QueryCombined.class, msgs);
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__COMBINED_RIGHT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.QUERY_COMBINED__RIGHT_QUERY, QueryCombined.class, msgs);
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__PREDICATE_EXISTS:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.PREDICATE_EXISTS__QUERY_EXPR, PredicateExists.class, msgs);
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__UPDATE_SOURCE_QUERY:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.UPDATE_SOURCE_QUERY__QUERY_EXPR, UpdateSourceQuery.class, msgs);
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__WITH_TABLE_SPECIFICATION:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.WITH_TABLE_SPECIFICATION__WITH_TABLE_QUERY_EXPR, WithTableSpecification.class, msgs);
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__QUERY_NEST:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.QUERY_NESTED__NESTED_QUERY, QueryNested.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__ROW_FETCH_LIMIT:
+                return new Integer(getRowFetchLimit());
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__QUERY_EXPRESSION:
+                return getQueryExpression();
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__COMBINED_LEFT:
+                return getCombinedLeft();
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__COMBINED_RIGHT:
+                return getCombinedRight();
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__PREDICATE_EXISTS:
+                return getPredicateExists();
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__UPDATE_SOURCE_QUERY:
+                return getUpdateSourceQuery();
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__WITH_TABLE_SPECIFICATION:
+                return getWithTableSpecification();
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__QUERY_NEST:
+                return getQueryNest();
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__SORT_SPEC_LIST:
+                return getSortSpecList();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__ROW_FETCH_LIMIT:
+                setRowFetchLimit(((Integer)newValue).intValue());
+                return;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__QUERY_EXPRESSION:
+                setQueryExpression((QueryExpressionRoot)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__COMBINED_LEFT:
+                setCombinedLeft((QueryCombined)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__COMBINED_RIGHT:
+                setCombinedRight((QueryCombined)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__PREDICATE_EXISTS:
+                setPredicateExists((PredicateExists)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__UPDATE_SOURCE_QUERY:
+                setUpdateSourceQuery((UpdateSourceQuery)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__WITH_TABLE_SPECIFICATION:
+                setWithTableSpecification((WithTableSpecification)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__QUERY_NEST:
+                setQueryNest((QueryNested)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__SORT_SPEC_LIST:
+                getSortSpecList().clear();
+                getSortSpecList().addAll((Collection)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__ROW_FETCH_LIMIT:
+                setRowFetchLimit(ROW_FETCH_LIMIT_EDEFAULT);
+                return;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__QUERY_EXPRESSION:
+                setQueryExpression((QueryExpressionRoot)null);
+                return;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__COMBINED_LEFT:
+                setCombinedLeft((QueryCombined)null);
+                return;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__COMBINED_RIGHT:
+                setCombinedRight((QueryCombined)null);
+                return;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__PREDICATE_EXISTS:
+                setPredicateExists((PredicateExists)null);
+                return;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__UPDATE_SOURCE_QUERY:
+                setUpdateSourceQuery((UpdateSourceQuery)null);
+                return;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__WITH_TABLE_SPECIFICATION:
+                setWithTableSpecification((WithTableSpecification)null);
+                return;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__QUERY_NEST:
+                setQueryNest((QueryNested)null);
+                return;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__SORT_SPEC_LIST:
+                getSortSpecList().clear();
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__ROW_FETCH_LIMIT:
+                return rowFetchLimit != ROW_FETCH_LIMIT_EDEFAULT;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__QUERY_EXPRESSION:
+                return getQueryExpression() != null;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__COMBINED_LEFT:
+                return getCombinedLeft() != null;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__COMBINED_RIGHT:
+                return getCombinedRight() != null;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__PREDICATE_EXISTS:
+                return getPredicateExists() != null;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__UPDATE_SOURCE_QUERY:
+                return getUpdateSourceQuery() != null;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__WITH_TABLE_SPECIFICATION:
+                return getWithTableSpecification() != null;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__QUERY_NEST:
+                return getQueryNest() != null;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY__SORT_SPEC_LIST:
+                return sortSpecList != null && !sortSpecList.isEmpty();
+        }
+        return super.eIsSet(featureID);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (rowFetchLimit: ");
+        result.append(rowFetchLimit);
+        result.append(')');
+        return result.toString();
+    }
+
+} //SQLQueryExpressionBodyImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QueryExpressionRootImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QueryExpressionRootImpl.java
new file mode 100644
index 0000000..ee9741a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QueryExpressionRootImpl.java
@@ -0,0 +1,696 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QueryExpressionRootImpl.java,v 1.6 2008/01/31 02:57:15 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody;
+import org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot;
+import org.eclipse.datatools.modelbase.sql.query.QueryInsertStatement;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelectStatement;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionScalarSelect;
+import org.eclipse.datatools.modelbase.sql.query.WithTableSpecification;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryExpressionRootImpl#getInsertStatement <em>Insert Statement</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryExpressionRootImpl#getSelectStatement <em>Select Statement</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryExpressionRootImpl#getWithClause <em>With Clause</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryExpressionRootImpl#getQuery <em>Query</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryExpressionRootImpl#getInValueRowSelectRight <em>In Value Row Select Right</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryExpressionRootImpl#getInValueSelectRight <em>In Value Select Right</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryExpressionRootImpl#getQuantifiedRowSelectRight <em>Quantified Row Select Right</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryExpressionRootImpl#getQuantifiedValueSelectRight <em>Quantified Value Select Right</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryExpressionRootImpl#getValExprScalarSelect <em>Val Expr Scalar Select</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class QueryExpressionRootImpl extends SQLQueryObjectImpl implements QueryExpressionRoot {
+	/**
+     * The cached value of the '{@link #getWithClause() <em>With Clause</em>}' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getWithClause()
+     * @generated
+     * @ordered
+     */
+    protected EList withClause;
+
+	/**
+     * The cached value of the '{@link #getQuery() <em>Query</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getQuery()
+     * @generated
+     * @ordered
+     */
+    protected QueryExpressionBody query;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected QueryExpressionRootImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.QUERY_EXPRESSION_ROOT;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryInsertStatement getInsertStatement() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__INSERT_STATEMENT) return null;
+        return (QueryInsertStatement)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetInsertStatement(QueryInsertStatement newInsertStatement, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newInsertStatement, SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__INSERT_STATEMENT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setInsertStatement(QueryInsertStatement newInsertStatement) {
+        if (newInsertStatement != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__INSERT_STATEMENT && newInsertStatement != null)) {
+            if (EcoreUtil.isAncestor(this, newInsertStatement))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newInsertStatement != null)
+                msgs = ((InternalEObject)newInsertStatement).eInverseAdd(this, SQLQueryModelPackage.QUERY_INSERT_STATEMENT__SOURCE_QUERY, QueryInsertStatement.class, msgs);
+            msgs = basicSetInsertStatement(newInsertStatement, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__INSERT_STATEMENT, newInsertStatement, newInsertStatement));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QuerySelectStatement getSelectStatement() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__SELECT_STATEMENT) return null;
+        return (QuerySelectStatement)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetSelectStatement(QuerySelectStatement newSelectStatement, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newSelectStatement, SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__SELECT_STATEMENT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setSelectStatement(QuerySelectStatement newSelectStatement) {
+        if (newSelectStatement != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__SELECT_STATEMENT && newSelectStatement != null)) {
+            if (EcoreUtil.isAncestor(this, newSelectStatement))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newSelectStatement != null)
+                msgs = ((InternalEObject)newSelectStatement).eInverseAdd(this, SQLQueryModelPackage.QUERY_SELECT_STATEMENT__QUERY_EXPR, QuerySelectStatement.class, msgs);
+            msgs = basicSetSelectStatement(newSelectStatement, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__SELECT_STATEMENT, newSelectStatement, newSelectStatement));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getWithClause() {
+        if (withClause == null) {
+            withClause = new EObjectContainmentWithInverseEList(WithTableSpecification.class, this, SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__WITH_CLAUSE, SQLQueryModelPackage.WITH_TABLE_SPECIFICATION__QUERY_EXPRESSION_ROOT);
+        }
+        return withClause;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryExpressionBody getQuery() {
+        return query;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetQuery(QueryExpressionBody newQuery, NotificationChain msgs) {
+        QueryExpressionBody oldQuery = query;
+        query = newQuery;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__QUERY, oldQuery, newQuery);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setQuery(QueryExpressionBody newQuery) {
+        if (newQuery != query) {
+            NotificationChain msgs = null;
+            if (query != null)
+                msgs = ((InternalEObject)query).eInverseRemove(this, SQLQueryModelPackage.QUERY_EXPRESSION_BODY__QUERY_EXPRESSION, QueryExpressionBody.class, msgs);
+            if (newQuery != null)
+                msgs = ((InternalEObject)newQuery).eInverseAdd(this, SQLQueryModelPackage.QUERY_EXPRESSION_BODY__QUERY_EXPRESSION, QueryExpressionBody.class, msgs);
+            msgs = basicSetQuery(newQuery, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__QUERY, newQuery, newQuery));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public PredicateInValueRowSelect getInValueRowSelectRight() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__IN_VALUE_ROW_SELECT_RIGHT) return null;
+        return (PredicateInValueRowSelect)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetInValueRowSelectRight(PredicateInValueRowSelect newInValueRowSelectRight, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newInValueRowSelectRight, SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__IN_VALUE_ROW_SELECT_RIGHT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setInValueRowSelectRight(PredicateInValueRowSelect newInValueRowSelectRight) {
+        if (newInValueRowSelectRight != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__IN_VALUE_ROW_SELECT_RIGHT && newInValueRowSelectRight != null)) {
+            if (EcoreUtil.isAncestor(this, newInValueRowSelectRight))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newInValueRowSelectRight != null)
+                msgs = ((InternalEObject)newInValueRowSelectRight).eInverseAdd(this, SQLQueryModelPackage.PREDICATE_IN_VALUE_ROW_SELECT__QUERY_EXPR, PredicateInValueRowSelect.class, msgs);
+            msgs = basicSetInValueRowSelectRight(newInValueRowSelectRight, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__IN_VALUE_ROW_SELECT_RIGHT, newInValueRowSelectRight, newInValueRowSelectRight));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public PredicateInValueSelect getInValueSelectRight() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__IN_VALUE_SELECT_RIGHT) return null;
+        return (PredicateInValueSelect)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetInValueSelectRight(PredicateInValueSelect newInValueSelectRight, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newInValueSelectRight, SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__IN_VALUE_SELECT_RIGHT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setInValueSelectRight(PredicateInValueSelect newInValueSelectRight) {
+        if (newInValueSelectRight != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__IN_VALUE_SELECT_RIGHT && newInValueSelectRight != null)) {
+            if (EcoreUtil.isAncestor(this, newInValueSelectRight))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newInValueSelectRight != null)
+                msgs = ((InternalEObject)newInValueSelectRight).eInverseAdd(this, SQLQueryModelPackage.PREDICATE_IN_VALUE_SELECT__QUERY_EXPR, PredicateInValueSelect.class, msgs);
+            msgs = basicSetInValueSelectRight(newInValueSelectRight, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__IN_VALUE_SELECT_RIGHT, newInValueSelectRight, newInValueSelectRight));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public PredicateQuantifiedRowSelect getQuantifiedRowSelectRight() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__QUANTIFIED_ROW_SELECT_RIGHT) return null;
+        return (PredicateQuantifiedRowSelect)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetQuantifiedRowSelectRight(PredicateQuantifiedRowSelect newQuantifiedRowSelectRight, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newQuantifiedRowSelectRight, SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__QUANTIFIED_ROW_SELECT_RIGHT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setQuantifiedRowSelectRight(PredicateQuantifiedRowSelect newQuantifiedRowSelectRight) {
+        if (newQuantifiedRowSelectRight != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__QUANTIFIED_ROW_SELECT_RIGHT && newQuantifiedRowSelectRight != null)) {
+            if (EcoreUtil.isAncestor(this, newQuantifiedRowSelectRight))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newQuantifiedRowSelectRight != null)
+                msgs = ((InternalEObject)newQuantifiedRowSelectRight).eInverseAdd(this, SQLQueryModelPackage.PREDICATE_QUANTIFIED_ROW_SELECT__QUERY_EXPR, PredicateQuantifiedRowSelect.class, msgs);
+            msgs = basicSetQuantifiedRowSelectRight(newQuantifiedRowSelectRight, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__QUANTIFIED_ROW_SELECT_RIGHT, newQuantifiedRowSelectRight, newQuantifiedRowSelectRight));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public PredicateQuantifiedValueSelect getQuantifiedValueSelectRight() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__QUANTIFIED_VALUE_SELECT_RIGHT) return null;
+        return (PredicateQuantifiedValueSelect)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetQuantifiedValueSelectRight(PredicateQuantifiedValueSelect newQuantifiedValueSelectRight, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newQuantifiedValueSelectRight, SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__QUANTIFIED_VALUE_SELECT_RIGHT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setQuantifiedValueSelectRight(PredicateQuantifiedValueSelect newQuantifiedValueSelectRight) {
+        if (newQuantifiedValueSelectRight != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__QUANTIFIED_VALUE_SELECT_RIGHT && newQuantifiedValueSelectRight != null)) {
+            if (EcoreUtil.isAncestor(this, newQuantifiedValueSelectRight))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newQuantifiedValueSelectRight != null)
+                msgs = ((InternalEObject)newQuantifiedValueSelectRight).eInverseAdd(this, SQLQueryModelPackage.PREDICATE_QUANTIFIED_VALUE_SELECT__QUERY_EXPR, PredicateQuantifiedValueSelect.class, msgs);
+            msgs = basicSetQuantifiedValueSelectRight(newQuantifiedValueSelectRight, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__QUANTIFIED_VALUE_SELECT_RIGHT, newQuantifiedValueSelectRight, newQuantifiedValueSelectRight));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public ValueExpressionScalarSelect getValExprScalarSelect() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__VAL_EXPR_SCALAR_SELECT) return null;
+        return (ValueExpressionScalarSelect)eContainer();
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetValExprScalarSelect(ValueExpressionScalarSelect newValExprScalarSelect, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newValExprScalarSelect, SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__VAL_EXPR_SCALAR_SELECT, msgs);
+        return msgs;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValExprScalarSelect(ValueExpressionScalarSelect newValExprScalarSelect) {
+        if (newValExprScalarSelect != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__VAL_EXPR_SCALAR_SELECT && newValExprScalarSelect != null)) {
+            if (EcoreUtil.isAncestor(this, newValExprScalarSelect))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newValExprScalarSelect != null)
+                msgs = ((InternalEObject)newValExprScalarSelect).eInverseAdd(this, SQLQueryModelPackage.VALUE_EXPRESSION_SCALAR_SELECT__QUERY_EXPR, ValueExpressionScalarSelect.class, msgs);
+            msgs = basicSetValExprScalarSelect(newValExprScalarSelect, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__VAL_EXPR_SCALAR_SELECT, newValExprScalarSelect, newValExprScalarSelect));
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated NOT
+     * @deprecated the ValueExprScalarSelect object is now associated with QueryExpressionBody
+     */
+    public EList getValueExprScalarSelects() {
+//        if (valueExprScalarSelects == null) {
+//            valueExprScalarSelects = new EObjectWithInverseResolvingEList(ValueExpressionScalarSelect.class, this, SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__VALUE_EXPR_SCALAR_SELECTS, SQLQueryModelPackage.VALUE_EXPRESSION_SCALAR_SELECT__QUERY_EXPR);
+//        }
+//        return valueExprScalarSelects;
+        EList scalarSelectList = new BasicEList();
+        ValueExpressionScalarSelect scalarSelect = getValExprScalarSelect();
+        scalarSelectList.add(scalarSelect);
+        return scalarSelectList;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__INSERT_STATEMENT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetInsertStatement((QueryInsertStatement)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__SELECT_STATEMENT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetSelectStatement((QuerySelectStatement)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__WITH_CLAUSE:
+                return ((InternalEList)getWithClause()).basicAdd(otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__QUERY:
+                if (query != null)
+                    msgs = ((InternalEObject)query).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__QUERY, null, msgs);
+                return basicSetQuery((QueryExpressionBody)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__IN_VALUE_ROW_SELECT_RIGHT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetInValueRowSelectRight((PredicateInValueRowSelect)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__IN_VALUE_SELECT_RIGHT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetInValueSelectRight((PredicateInValueSelect)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__QUANTIFIED_ROW_SELECT_RIGHT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetQuantifiedRowSelectRight((PredicateQuantifiedRowSelect)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__QUANTIFIED_VALUE_SELECT_RIGHT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetQuantifiedValueSelectRight((PredicateQuantifiedValueSelect)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__VAL_EXPR_SCALAR_SELECT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetValExprScalarSelect((ValueExpressionScalarSelect)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__INSERT_STATEMENT:
+                return basicSetInsertStatement(null, msgs);
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__SELECT_STATEMENT:
+                return basicSetSelectStatement(null, msgs);
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__WITH_CLAUSE:
+                return ((InternalEList)getWithClause()).basicRemove(otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__QUERY:
+                return basicSetQuery(null, msgs);
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__IN_VALUE_ROW_SELECT_RIGHT:
+                return basicSetInValueRowSelectRight(null, msgs);
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__IN_VALUE_SELECT_RIGHT:
+                return basicSetInValueSelectRight(null, msgs);
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__QUANTIFIED_ROW_SELECT_RIGHT:
+                return basicSetQuantifiedRowSelectRight(null, msgs);
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__QUANTIFIED_VALUE_SELECT_RIGHT:
+                return basicSetQuantifiedValueSelectRight(null, msgs);
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__VAL_EXPR_SCALAR_SELECT:
+                return basicSetValExprScalarSelect(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__INSERT_STATEMENT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.QUERY_INSERT_STATEMENT__SOURCE_QUERY, QueryInsertStatement.class, msgs);
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__SELECT_STATEMENT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.QUERY_SELECT_STATEMENT__QUERY_EXPR, QuerySelectStatement.class, msgs);
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__IN_VALUE_ROW_SELECT_RIGHT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.PREDICATE_IN_VALUE_ROW_SELECT__QUERY_EXPR, PredicateInValueRowSelect.class, msgs);
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__IN_VALUE_SELECT_RIGHT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.PREDICATE_IN_VALUE_SELECT__QUERY_EXPR, PredicateInValueSelect.class, msgs);
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__QUANTIFIED_ROW_SELECT_RIGHT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.PREDICATE_QUANTIFIED_ROW_SELECT__QUERY_EXPR, PredicateQuantifiedRowSelect.class, msgs);
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__QUANTIFIED_VALUE_SELECT_RIGHT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.PREDICATE_QUANTIFIED_VALUE_SELECT__QUERY_EXPR, PredicateQuantifiedValueSelect.class, msgs);
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__VAL_EXPR_SCALAR_SELECT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.VALUE_EXPRESSION_SCALAR_SELECT__QUERY_EXPR, ValueExpressionScalarSelect.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__INSERT_STATEMENT:
+                return getInsertStatement();
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__SELECT_STATEMENT:
+                return getSelectStatement();
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__WITH_CLAUSE:
+                return getWithClause();
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__QUERY:
+                return getQuery();
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__IN_VALUE_ROW_SELECT_RIGHT:
+                return getInValueRowSelectRight();
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__IN_VALUE_SELECT_RIGHT:
+                return getInValueSelectRight();
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__QUANTIFIED_ROW_SELECT_RIGHT:
+                return getQuantifiedRowSelectRight();
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__QUANTIFIED_VALUE_SELECT_RIGHT:
+                return getQuantifiedValueSelectRight();
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__VAL_EXPR_SCALAR_SELECT:
+                return getValExprScalarSelect();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__INSERT_STATEMENT:
+                setInsertStatement((QueryInsertStatement)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__SELECT_STATEMENT:
+                setSelectStatement((QuerySelectStatement)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__WITH_CLAUSE:
+                getWithClause().clear();
+                getWithClause().addAll((Collection)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__QUERY:
+                setQuery((QueryExpressionBody)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__IN_VALUE_ROW_SELECT_RIGHT:
+                setInValueRowSelectRight((PredicateInValueRowSelect)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__IN_VALUE_SELECT_RIGHT:
+                setInValueSelectRight((PredicateInValueSelect)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__QUANTIFIED_ROW_SELECT_RIGHT:
+                setQuantifiedRowSelectRight((PredicateQuantifiedRowSelect)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__QUANTIFIED_VALUE_SELECT_RIGHT:
+                setQuantifiedValueSelectRight((PredicateQuantifiedValueSelect)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__VAL_EXPR_SCALAR_SELECT:
+                setValExprScalarSelect((ValueExpressionScalarSelect)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__INSERT_STATEMENT:
+                setInsertStatement((QueryInsertStatement)null);
+                return;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__SELECT_STATEMENT:
+                setSelectStatement((QuerySelectStatement)null);
+                return;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__WITH_CLAUSE:
+                getWithClause().clear();
+                return;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__QUERY:
+                setQuery((QueryExpressionBody)null);
+                return;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__IN_VALUE_ROW_SELECT_RIGHT:
+                setInValueRowSelectRight((PredicateInValueRowSelect)null);
+                return;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__IN_VALUE_SELECT_RIGHT:
+                setInValueSelectRight((PredicateInValueSelect)null);
+                return;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__QUANTIFIED_ROW_SELECT_RIGHT:
+                setQuantifiedRowSelectRight((PredicateQuantifiedRowSelect)null);
+                return;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__QUANTIFIED_VALUE_SELECT_RIGHT:
+                setQuantifiedValueSelectRight((PredicateQuantifiedValueSelect)null);
+                return;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__VAL_EXPR_SCALAR_SELECT:
+                setValExprScalarSelect((ValueExpressionScalarSelect)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__INSERT_STATEMENT:
+                return getInsertStatement() != null;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__SELECT_STATEMENT:
+                return getSelectStatement() != null;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__WITH_CLAUSE:
+                return withClause != null && !withClause.isEmpty();
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__QUERY:
+                return query != null;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__IN_VALUE_ROW_SELECT_RIGHT:
+                return getInValueRowSelectRight() != null;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__IN_VALUE_SELECT_RIGHT:
+                return getInValueSelectRight() != null;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__QUANTIFIED_ROW_SELECT_RIGHT:
+                return getQuantifiedRowSelectRight() != null;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__QUANTIFIED_VALUE_SELECT_RIGHT:
+                return getQuantifiedValueSelectRight() != null;
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__VAL_EXPR_SCALAR_SELECT:
+                return getValExprScalarSelect() != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated NOT
+     */
+    public String getSQL() {
+        return super.getSQL();
+    }
+
+} //SQLQueryExpressionImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QueryInsertStatementImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QueryInsertStatementImpl.java
new file mode 100644
index 0000000..19e5d26
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QueryInsertStatementImpl.java
@@ -0,0 +1,403 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QueryInsertStatementImpl.java,v 1.4 2007/02/08 17:00:26 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot;
+import org.eclipse.datatools.modelbase.sql.query.QueryInsertStatement;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.TableInDatabase;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Insert Statement</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryInsertStatementImpl#getSourceQuery <em>Source Query</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryInsertStatementImpl#getSourceValuesRowList <em>Source Values Row List</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryInsertStatementImpl#getTargetTable <em>Target Table</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryInsertStatementImpl#getTargetColumnList <em>Target Column List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class QueryInsertStatementImpl extends QueryChangeStatementImpl implements QueryInsertStatement {
+	/**
+     * The cached value of the '{@link #getSourceQuery() <em>Source Query</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getSourceQuery()
+     * @generated
+     * @ordered
+     */
+    protected QueryExpressionRoot sourceQuery;
+
+	/**
+     * The cached value of the '{@link #getSourceValuesRowList() <em>Source Values Row List</em>}' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getSourceValuesRowList()
+     * @generated
+     * @ordered
+     */
+    protected EList sourceValuesRowList;
+
+	/**
+     * The cached value of the '{@link #getTargetTable() <em>Target Table</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getTargetTable()
+     * @generated
+     * @ordered
+     */
+    protected TableInDatabase targetTable;
+
+	/**
+     * This is true if the Target Table containment reference has been set.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    protected boolean targetTableESet;
+
+	/**
+     * The cached value of the '{@link #getTargetColumnList() <em>Target Column List</em>}' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getTargetColumnList()
+     * @generated
+     * @ordered
+     */
+    protected EList targetColumnList;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected QueryInsertStatementImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.QUERY_INSERT_STATEMENT;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryExpressionRoot getSourceQuery() {
+        return sourceQuery;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetSourceQuery(QueryExpressionRoot newSourceQuery, NotificationChain msgs) {
+        QueryExpressionRoot oldSourceQuery = sourceQuery;
+        sourceQuery = newSourceQuery;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_INSERT_STATEMENT__SOURCE_QUERY, oldSourceQuery, newSourceQuery);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setSourceQuery(QueryExpressionRoot newSourceQuery) {
+        if (newSourceQuery != sourceQuery) {
+            NotificationChain msgs = null;
+            if (sourceQuery != null)
+                msgs = ((InternalEObject)sourceQuery).eInverseRemove(this, SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__INSERT_STATEMENT, QueryExpressionRoot.class, msgs);
+            if (newSourceQuery != null)
+                msgs = ((InternalEObject)newSourceQuery).eInverseAdd(this, SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__INSERT_STATEMENT, QueryExpressionRoot.class, msgs);
+            msgs = basicSetSourceQuery(newSourceQuery, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_INSERT_STATEMENT__SOURCE_QUERY, newSourceQuery, newSourceQuery));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getSourceValuesRowList() {
+        if (sourceValuesRowList == null) {
+            sourceValuesRowList = new EObjectContainmentWithInverseEList(ValuesRow.class, this, SQLQueryModelPackage.QUERY_INSERT_STATEMENT__SOURCE_VALUES_ROW_LIST, SQLQueryModelPackage.VALUES_ROW__INSERT_STATEMENT);
+        }
+        return sourceValuesRowList;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public TableInDatabase getTargetTable() {
+        return targetTable;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public NotificationChain basicSetTargetTable(TableInDatabase newTargetTable, NotificationChain msgs) {
+        TableInDatabase oldTargetTable = targetTable;
+        targetTable = newTargetTable;
+        boolean oldTargetTableESet = targetTableESet;
+        targetTableESet = true;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_INSERT_STATEMENT__TARGET_TABLE, oldTargetTable, newTargetTable, !oldTargetTableESet);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void setTargetTable(TableInDatabase newTargetTable) {
+        if (newTargetTable != targetTable) {
+            NotificationChain msgs = null;
+            if (targetTable != null)
+                msgs = ((InternalEObject)targetTable).eInverseRemove(this, SQLQueryModelPackage.TABLE_IN_DATABASE__INSERT_STATEMENT, TableInDatabase.class, msgs);
+            if (newTargetTable != null)
+                msgs = ((InternalEObject)newTargetTable).eInverseAdd(this, SQLQueryModelPackage.TABLE_IN_DATABASE__INSERT_STATEMENT, TableInDatabase.class, msgs);
+            msgs = basicSetTargetTable(newTargetTable, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else {
+            boolean oldTargetTableESet = targetTableESet;
+            targetTableESet = true;
+            if (eNotificationRequired())
+                eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_INSERT_STATEMENT__TARGET_TABLE, newTargetTable, newTargetTable, !oldTargetTableESet));
+        }
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicUnsetTargetTable(NotificationChain msgs) {
+        TableInDatabase oldTargetTable = targetTable;
+        targetTable = null;
+        boolean oldTargetTableESet = targetTableESet;
+        targetTableESet = false;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.UNSET, SQLQueryModelPackage.QUERY_INSERT_STATEMENT__TARGET_TABLE, oldTargetTable, null, oldTargetTableESet);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void unsetTargetTable() {
+        if (targetTable != null) {
+            NotificationChain msgs = null;
+            msgs = ((InternalEObject)targetTable).eInverseRemove(this, SQLQueryModelPackage.TABLE_IN_DATABASE__INSERT_STATEMENT, TableInDatabase.class, msgs);
+            msgs = basicUnsetTargetTable(msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else {
+            boolean oldTargetTableESet = targetTableESet;
+            targetTableESet = false;
+            if (eNotificationRequired())
+                eNotify(new ENotificationImpl(this, Notification.UNSET, SQLQueryModelPackage.QUERY_INSERT_STATEMENT__TARGET_TABLE, null, null, oldTargetTableESet));
+        }
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public boolean isSetTargetTable() {
+        return targetTableESet;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getTargetColumnList() {
+        if (targetColumnList == null) {
+            targetColumnList = new EObjectWithInverseResolvingEList.ManyInverse(ValueExpressionColumn.class, this, SQLQueryModelPackage.QUERY_INSERT_STATEMENT__TARGET_COLUMN_LIST, SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__INSERT_STATEMENT);
+        }
+        return targetColumnList;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_INSERT_STATEMENT__SOURCE_QUERY:
+                if (sourceQuery != null)
+                    msgs = ((InternalEObject)sourceQuery).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.QUERY_INSERT_STATEMENT__SOURCE_QUERY, null, msgs);
+                return basicSetSourceQuery((QueryExpressionRoot)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_INSERT_STATEMENT__SOURCE_VALUES_ROW_LIST:
+                return ((InternalEList)getSourceValuesRowList()).basicAdd(otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_INSERT_STATEMENT__TARGET_TABLE:
+                if (targetTable != null)
+                    msgs = ((InternalEObject)targetTable).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.QUERY_INSERT_STATEMENT__TARGET_TABLE, null, msgs);
+                return basicSetTargetTable((TableInDatabase)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_INSERT_STATEMENT__TARGET_COLUMN_LIST:
+                return ((InternalEList)getTargetColumnList()).basicAdd(otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_INSERT_STATEMENT__SOURCE_QUERY:
+                return basicSetSourceQuery(null, msgs);
+            case SQLQueryModelPackage.QUERY_INSERT_STATEMENT__SOURCE_VALUES_ROW_LIST:
+                return ((InternalEList)getSourceValuesRowList()).basicRemove(otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_INSERT_STATEMENT__TARGET_TABLE:
+                return basicUnsetTargetTable(msgs);
+            case SQLQueryModelPackage.QUERY_INSERT_STATEMENT__TARGET_COLUMN_LIST:
+                return ((InternalEList)getTargetColumnList()).basicRemove(otherEnd, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_INSERT_STATEMENT__SOURCE_QUERY:
+                return getSourceQuery();
+            case SQLQueryModelPackage.QUERY_INSERT_STATEMENT__SOURCE_VALUES_ROW_LIST:
+                return getSourceValuesRowList();
+            case SQLQueryModelPackage.QUERY_INSERT_STATEMENT__TARGET_TABLE:
+                return getTargetTable();
+            case SQLQueryModelPackage.QUERY_INSERT_STATEMENT__TARGET_COLUMN_LIST:
+                return getTargetColumnList();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_INSERT_STATEMENT__SOURCE_QUERY:
+                setSourceQuery((QueryExpressionRoot)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_INSERT_STATEMENT__SOURCE_VALUES_ROW_LIST:
+                getSourceValuesRowList().clear();
+                getSourceValuesRowList().addAll((Collection)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_INSERT_STATEMENT__TARGET_TABLE:
+                setTargetTable((TableInDatabase)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_INSERT_STATEMENT__TARGET_COLUMN_LIST:
+                getTargetColumnList().clear();
+                getTargetColumnList().addAll((Collection)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_INSERT_STATEMENT__SOURCE_QUERY:
+                setSourceQuery((QueryExpressionRoot)null);
+                return;
+            case SQLQueryModelPackage.QUERY_INSERT_STATEMENT__SOURCE_VALUES_ROW_LIST:
+                getSourceValuesRowList().clear();
+                return;
+            case SQLQueryModelPackage.QUERY_INSERT_STATEMENT__TARGET_TABLE:
+                unsetTargetTable();
+                return;
+            case SQLQueryModelPackage.QUERY_INSERT_STATEMENT__TARGET_COLUMN_LIST:
+                getTargetColumnList().clear();
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_INSERT_STATEMENT__SOURCE_QUERY:
+                return sourceQuery != null;
+            case SQLQueryModelPackage.QUERY_INSERT_STATEMENT__SOURCE_VALUES_ROW_LIST:
+                return sourceValuesRowList != null && !sourceValuesRowList.isEmpty();
+            case SQLQueryModelPackage.QUERY_INSERT_STATEMENT__TARGET_TABLE:
+                return isSetTargetTable();
+            case SQLQueryModelPackage.QUERY_INSERT_STATEMENT__TARGET_COLUMN_LIST:
+                return targetColumnList != null && !targetColumnList.isEmpty();
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //SQLInsertStatementImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QueryMergeStatementImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QueryMergeStatementImpl.java
new file mode 100644
index 0000000..d5988f5
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QueryMergeStatementImpl.java
@@ -0,0 +1,372 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QueryMergeStatementImpl.java,v 1.6 2008/01/31 02:57:15 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.MergeOnCondition;
+import org.eclipse.datatools.modelbase.sql.query.MergeOperationSpecification;
+import org.eclipse.datatools.modelbase.sql.query.MergeSourceTable;
+import org.eclipse.datatools.modelbase.sql.query.MergeTargetTable;
+import org.eclipse.datatools.modelbase.sql.query.QueryMergeStatement;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Merge Statement</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryMergeStatementImpl#getTargetTable <em>Target Table</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryMergeStatementImpl#getSourceTable <em>Source Table</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryMergeStatementImpl#getOnCondition <em>On Condition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryMergeStatementImpl#getOperationSpecList <em>Operation Spec List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class QueryMergeStatementImpl extends QueryChangeStatementImpl implements QueryMergeStatement {
+	/**
+     * The cached value of the '{@link #getTargetTable() <em>Target Table</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getTargetTable()
+     * @generated
+     * @ordered
+     */
+    protected MergeTargetTable targetTable;
+    /**
+     * The cached value of the '{@link #getSourceTable() <em>Source Table</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getSourceTable()
+     * @generated
+     * @ordered
+     */
+    protected MergeSourceTable sourceTable;
+    /**
+     * The cached value of the '{@link #getOnCondition() <em>On Condition</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getOnCondition()
+     * @generated
+     * @ordered
+     */
+    protected MergeOnCondition onCondition;
+    /**
+     * The cached value of the '{@link #getOperationSpecList() <em>Operation Spec List</em>}' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getOperationSpecList()
+     * @generated
+     * @ordered
+     */
+    protected EList operationSpecList;
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected QueryMergeStatementImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.QUERY_MERGE_STATEMENT;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public MergeTargetTable getTargetTable() {
+        return targetTable;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetTargetTable(MergeTargetTable newTargetTable, NotificationChain msgs) {
+        MergeTargetTable oldTargetTable = targetTable;
+        targetTable = newTargetTable;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_MERGE_STATEMENT__TARGET_TABLE, oldTargetTable, newTargetTable);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setTargetTable(MergeTargetTable newTargetTable) {
+        if (newTargetTable != targetTable) {
+            NotificationChain msgs = null;
+            if (targetTable != null)
+                msgs = ((InternalEObject)targetTable).eInverseRemove(this, SQLQueryModelPackage.MERGE_TARGET_TABLE__MERGE_STATEMENT, MergeTargetTable.class, msgs);
+            if (newTargetTable != null)
+                msgs = ((InternalEObject)newTargetTable).eInverseAdd(this, SQLQueryModelPackage.MERGE_TARGET_TABLE__MERGE_STATEMENT, MergeTargetTable.class, msgs);
+            msgs = basicSetTargetTable(newTargetTable, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_MERGE_STATEMENT__TARGET_TABLE, newTargetTable, newTargetTable));
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public MergeSourceTable getSourceTable() {
+        return sourceTable;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetSourceTable(MergeSourceTable newSourceTable, NotificationChain msgs) {
+        MergeSourceTable oldSourceTable = sourceTable;
+        sourceTable = newSourceTable;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_MERGE_STATEMENT__SOURCE_TABLE, oldSourceTable, newSourceTable);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setSourceTable(MergeSourceTable newSourceTable) {
+        if (newSourceTable != sourceTable) {
+            NotificationChain msgs = null;
+            if (sourceTable != null)
+                msgs = ((InternalEObject)sourceTable).eInverseRemove(this, SQLQueryModelPackage.MERGE_SOURCE_TABLE__MERGE_STATEMENT, MergeSourceTable.class, msgs);
+            if (newSourceTable != null)
+                msgs = ((InternalEObject)newSourceTable).eInverseAdd(this, SQLQueryModelPackage.MERGE_SOURCE_TABLE__MERGE_STATEMENT, MergeSourceTable.class, msgs);
+            msgs = basicSetSourceTable(newSourceTable, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_MERGE_STATEMENT__SOURCE_TABLE, newSourceTable, newSourceTable));
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public MergeOnCondition getOnCondition() {
+        return onCondition;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetOnCondition(MergeOnCondition newOnCondition, NotificationChain msgs) {
+        MergeOnCondition oldOnCondition = onCondition;
+        onCondition = newOnCondition;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_MERGE_STATEMENT__ON_CONDITION, oldOnCondition, newOnCondition);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setOnCondition(MergeOnCondition newOnCondition) {
+        if (newOnCondition != onCondition) {
+            NotificationChain msgs = null;
+            if (onCondition != null)
+                msgs = ((InternalEObject)onCondition).eInverseRemove(this, SQLQueryModelPackage.MERGE_ON_CONDITION__MERGE_STATEMENT, MergeOnCondition.class, msgs);
+            if (newOnCondition != null)
+                msgs = ((InternalEObject)newOnCondition).eInverseAdd(this, SQLQueryModelPackage.MERGE_ON_CONDITION__MERGE_STATEMENT, MergeOnCondition.class, msgs);
+            msgs = basicSetOnCondition(newOnCondition, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_MERGE_STATEMENT__ON_CONDITION, newOnCondition, newOnCondition));
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getOperationSpecList() {
+        if (operationSpecList == null) {
+            operationSpecList = new EObjectContainmentWithInverseEList(MergeOperationSpecification.class, this, SQLQueryModelPackage.QUERY_MERGE_STATEMENT__OPERATION_SPEC_LIST, SQLQueryModelPackage.MERGE_OPERATION_SPECIFICATION__MERGE_STATEMENT);
+        }
+        return operationSpecList;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_MERGE_STATEMENT__TARGET_TABLE:
+                if (targetTable != null)
+                    msgs = ((InternalEObject)targetTable).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.QUERY_MERGE_STATEMENT__TARGET_TABLE, null, msgs);
+                return basicSetTargetTable((MergeTargetTable)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_MERGE_STATEMENT__SOURCE_TABLE:
+                if (sourceTable != null)
+                    msgs = ((InternalEObject)sourceTable).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.QUERY_MERGE_STATEMENT__SOURCE_TABLE, null, msgs);
+                return basicSetSourceTable((MergeSourceTable)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_MERGE_STATEMENT__ON_CONDITION:
+                if (onCondition != null)
+                    msgs = ((InternalEObject)onCondition).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.QUERY_MERGE_STATEMENT__ON_CONDITION, null, msgs);
+                return basicSetOnCondition((MergeOnCondition)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_MERGE_STATEMENT__OPERATION_SPEC_LIST:
+                return ((InternalEList)getOperationSpecList()).basicAdd(otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_MERGE_STATEMENT__TARGET_TABLE:
+                return basicSetTargetTable(null, msgs);
+            case SQLQueryModelPackage.QUERY_MERGE_STATEMENT__SOURCE_TABLE:
+                return basicSetSourceTable(null, msgs);
+            case SQLQueryModelPackage.QUERY_MERGE_STATEMENT__ON_CONDITION:
+                return basicSetOnCondition(null, msgs);
+            case SQLQueryModelPackage.QUERY_MERGE_STATEMENT__OPERATION_SPEC_LIST:
+                return ((InternalEList)getOperationSpecList()).basicRemove(otherEnd, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_MERGE_STATEMENT__TARGET_TABLE:
+                return getTargetTable();
+            case SQLQueryModelPackage.QUERY_MERGE_STATEMENT__SOURCE_TABLE:
+                return getSourceTable();
+            case SQLQueryModelPackage.QUERY_MERGE_STATEMENT__ON_CONDITION:
+                return getOnCondition();
+            case SQLQueryModelPackage.QUERY_MERGE_STATEMENT__OPERATION_SPEC_LIST:
+                return getOperationSpecList();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_MERGE_STATEMENT__TARGET_TABLE:
+                setTargetTable((MergeTargetTable)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_MERGE_STATEMENT__SOURCE_TABLE:
+                setSourceTable((MergeSourceTable)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_MERGE_STATEMENT__ON_CONDITION:
+                setOnCondition((MergeOnCondition)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_MERGE_STATEMENT__OPERATION_SPEC_LIST:
+                getOperationSpecList().clear();
+                getOperationSpecList().addAll((Collection)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_MERGE_STATEMENT__TARGET_TABLE:
+                setTargetTable((MergeTargetTable)null);
+                return;
+            case SQLQueryModelPackage.QUERY_MERGE_STATEMENT__SOURCE_TABLE:
+                setSourceTable((MergeSourceTable)null);
+                return;
+            case SQLQueryModelPackage.QUERY_MERGE_STATEMENT__ON_CONDITION:
+                setOnCondition((MergeOnCondition)null);
+                return;
+            case SQLQueryModelPackage.QUERY_MERGE_STATEMENT__OPERATION_SPEC_LIST:
+                getOperationSpecList().clear();
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_MERGE_STATEMENT__TARGET_TABLE:
+                return targetTable != null;
+            case SQLQueryModelPackage.QUERY_MERGE_STATEMENT__SOURCE_TABLE:
+                return sourceTable != null;
+            case SQLQueryModelPackage.QUERY_MERGE_STATEMENT__ON_CONDITION:
+                return onCondition != null;
+            case SQLQueryModelPackage.QUERY_MERGE_STATEMENT__OPERATION_SPEC_LIST:
+                return operationSpecList != null && !operationSpecList.isEmpty();
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //SQLMergeStatementImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QueryNestedImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QueryNestedImpl.java
new file mode 100644
index 0000000..38d32fc
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QueryNestedImpl.java
@@ -0,0 +1,188 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody;
+import org.eclipse.datatools.modelbase.sql.query.QueryNested;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Query Nested</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryNestedImpl#getNestedQuery <em>Nested Query</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class QueryNestedImpl extends QueryExpressionBodyImpl implements QueryNested {
+    /**
+     * The cached value of the '{@link #getNestedQuery() <em>Nested Query</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getNestedQuery()
+     * @generated
+     * @ordered
+     */
+    protected QueryExpressionBody nestedQuery;
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected QueryNestedImpl() {
+        super();
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.QUERY_NESTED;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryExpressionBody getNestedQuery() {
+        return nestedQuery;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetNestedQuery(QueryExpressionBody newNestedQuery, NotificationChain msgs) {
+        QueryExpressionBody oldNestedQuery = nestedQuery;
+        nestedQuery = newNestedQuery;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_NESTED__NESTED_QUERY, oldNestedQuery, newNestedQuery);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setNestedQuery(QueryExpressionBody newNestedQuery) {
+        if (newNestedQuery != nestedQuery) {
+            NotificationChain msgs = null;
+            if (nestedQuery != null)
+                msgs = ((InternalEObject)nestedQuery).eInverseRemove(this, SQLQueryModelPackage.QUERY_EXPRESSION_BODY__QUERY_NEST, QueryExpressionBody.class, msgs);
+            if (newNestedQuery != null)
+                msgs = ((InternalEObject)newNestedQuery).eInverseAdd(this, SQLQueryModelPackage.QUERY_EXPRESSION_BODY__QUERY_NEST, QueryExpressionBody.class, msgs);
+            msgs = basicSetNestedQuery(newNestedQuery, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_NESTED__NESTED_QUERY, newNestedQuery, newNestedQuery));
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_NESTED__NESTED_QUERY:
+                if (nestedQuery != null)
+                    msgs = ((InternalEObject)nestedQuery).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.QUERY_NESTED__NESTED_QUERY, null, msgs);
+                return basicSetNestedQuery((QueryExpressionBody)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_NESTED__NESTED_QUERY:
+                return basicSetNestedQuery(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_NESTED__NESTED_QUERY:
+                return getNestedQuery();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_NESTED__NESTED_QUERY:
+                setNestedQuery((QueryExpressionBody)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_NESTED__NESTED_QUERY:
+                setNestedQuery((QueryExpressionBody)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_NESTED__NESTED_QUERY:
+                return nestedQuery != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //QueryNestedImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QueryResultSpecificationImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QueryResultSpecificationImpl.java
new file mode 100644
index 0000000..a75abac
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QueryResultSpecificationImpl.java
@@ -0,0 +1,192 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QueryResultSpecificationImpl.java,v 1.5 2008/01/31 02:57:15 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryResultSpecification;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Result Column Specification</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryResultSpecificationImpl#getQuerySelect <em>Query Select</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class QueryResultSpecificationImpl extends SQLQueryObjectImpl implements QueryResultSpecification {
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected QueryResultSpecificationImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.QUERY_RESULT_SPECIFICATION;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QuerySelect getQuerySelect() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_RESULT_SPECIFICATION__QUERY_SELECT) return null;
+        return (QuerySelect)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetQuerySelect(QuerySelect newQuerySelect, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newQuerySelect, SQLQueryModelPackage.QUERY_RESULT_SPECIFICATION__QUERY_SELECT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setQuerySelect(QuerySelect newQuerySelect) {
+        if (newQuerySelect != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_RESULT_SPECIFICATION__QUERY_SELECT && newQuerySelect != null)) {
+            if (EcoreUtil.isAncestor(this, newQuerySelect))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newQuerySelect != null)
+                msgs = ((InternalEObject)newQuerySelect).eInverseAdd(this, SQLQueryModelPackage.QUERY_SELECT__SELECT_CLAUSE, QuerySelect.class, msgs);
+            msgs = basicSetQuerySelect(newQuerySelect, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_RESULT_SPECIFICATION__QUERY_SELECT, newQuerySelect, newQuerySelect));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_RESULT_SPECIFICATION__QUERY_SELECT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetQuerySelect((QuerySelect)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_RESULT_SPECIFICATION__QUERY_SELECT:
+                return basicSetQuerySelect(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLQueryModelPackage.QUERY_RESULT_SPECIFICATION__QUERY_SELECT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.QUERY_SELECT__SELECT_CLAUSE, QuerySelect.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_RESULT_SPECIFICATION__QUERY_SELECT:
+                return getQuerySelect();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_RESULT_SPECIFICATION__QUERY_SELECT:
+                setQuerySelect((QuerySelect)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_RESULT_SPECIFICATION__QUERY_SELECT:
+                setQuerySelect((QuerySelect)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_RESULT_SPECIFICATION__QUERY_SELECT:
+                return getQuerySelect() != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //SQLResultColumnSpecificationImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QuerySearchConditionImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QuerySearchConditionImpl.java
new file mode 100644
index 0000000..6ce265b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QuerySearchConditionImpl.java
@@ -0,0 +1,815 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QuerySearchConditionImpl.java,v 1.6 2008/01/31 02:57:15 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+import org.eclipse.datatools.modelbase.sql.query.MergeOnCondition;
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement;
+import org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionNested;
+import org.eclipse.datatools.modelbase.sql.query.TableJoined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Search Condition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QuerySearchConditionImpl#isNegatedCondition <em>Negated Condition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QuerySearchConditionImpl#getUpdateStatement <em>Update Statement</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QuerySearchConditionImpl#getDeleteStatement <em>Delete Statement</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QuerySearchConditionImpl#getTableJoined <em>Table Joined</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QuerySearchConditionImpl#getCombinedLeft <em>Combined Left</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QuerySearchConditionImpl#getCombinedRight <em>Combined Right</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QuerySearchConditionImpl#getQuerySelectHaving <em>Query Select Having</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QuerySearchConditionImpl#getQuerySelectWhere <em>Query Select Where</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QuerySearchConditionImpl#getValueExprCaseSearchContent <em>Value Expr Case Search Content</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QuerySearchConditionImpl#getNest <em>Nest</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QuerySearchConditionImpl#getMergeOnCondition <em>Merge On Condition</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class QuerySearchConditionImpl extends SQLQueryObjectImpl implements QuerySearchCondition {
+	/**
+     * The default value of the '{@link #isNegatedCondition() <em>Negated Condition</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #isNegatedCondition()
+     * @generated
+     * @ordered
+     */
+    protected static final boolean NEGATED_CONDITION_EDEFAULT = false;
+
+	/**
+     * The cached value of the '{@link #isNegatedCondition() <em>Negated Condition</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #isNegatedCondition()
+     * @generated
+     * @ordered
+     */
+    protected boolean negatedCondition = NEGATED_CONDITION_EDEFAULT;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected QuerySearchConditionImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.QUERY_SEARCH_CONDITION;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public boolean isNegatedCondition() {
+        return negatedCondition;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setNegatedCondition(boolean newNegatedCondition) {
+        boolean oldNegatedCondition = negatedCondition;
+        negatedCondition = newNegatedCondition;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_SEARCH_CONDITION__NEGATED_CONDITION, oldNegatedCondition, negatedCondition));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryUpdateStatement getUpdateStatement() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_SEARCH_CONDITION__UPDATE_STATEMENT) return null;
+        return (QueryUpdateStatement)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetUpdateStatement(QueryUpdateStatement newUpdateStatement, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newUpdateStatement, SQLQueryModelPackage.QUERY_SEARCH_CONDITION__UPDATE_STATEMENT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setUpdateStatement(QueryUpdateStatement newUpdateStatement) {
+        if (newUpdateStatement != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_SEARCH_CONDITION__UPDATE_STATEMENT && newUpdateStatement != null)) {
+            if (EcoreUtil.isAncestor(this, newUpdateStatement))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newUpdateStatement != null)
+                msgs = ((InternalEObject)newUpdateStatement).eInverseAdd(this, SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__WHERE_CLAUSE, QueryUpdateStatement.class, msgs);
+            msgs = basicSetUpdateStatement(newUpdateStatement, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_SEARCH_CONDITION__UPDATE_STATEMENT, newUpdateStatement, newUpdateStatement));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryDeleteStatement getDeleteStatement() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_SEARCH_CONDITION__DELETE_STATEMENT) return null;
+        return (QueryDeleteStatement)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetDeleteStatement(QueryDeleteStatement newDeleteStatement, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newDeleteStatement, SQLQueryModelPackage.QUERY_SEARCH_CONDITION__DELETE_STATEMENT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setDeleteStatement(QueryDeleteStatement newDeleteStatement) {
+        if (newDeleteStatement != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_SEARCH_CONDITION__DELETE_STATEMENT && newDeleteStatement != null)) {
+            if (EcoreUtil.isAncestor(this, newDeleteStatement))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newDeleteStatement != null)
+                msgs = ((InternalEObject)newDeleteStatement).eInverseAdd(this, SQLQueryModelPackage.QUERY_DELETE_STATEMENT__WHERE_CLAUSE, QueryDeleteStatement.class, msgs);
+            msgs = basicSetDeleteStatement(newDeleteStatement, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_SEARCH_CONDITION__DELETE_STATEMENT, newDeleteStatement, newDeleteStatement));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public TableJoined getTableJoined() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_SEARCH_CONDITION__TABLE_JOINED) return null;
+        return (TableJoined)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetTableJoined(TableJoined newTableJoined, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newTableJoined, SQLQueryModelPackage.QUERY_SEARCH_CONDITION__TABLE_JOINED, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setTableJoined(TableJoined newTableJoined) {
+        if (newTableJoined != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_SEARCH_CONDITION__TABLE_JOINED && newTableJoined != null)) {
+            if (EcoreUtil.isAncestor(this, newTableJoined))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newTableJoined != null)
+                msgs = ((InternalEObject)newTableJoined).eInverseAdd(this, SQLQueryModelPackage.TABLE_JOINED__JOIN_CONDITION, TableJoined.class, msgs);
+            msgs = basicSetTableJoined(newTableJoined, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_SEARCH_CONDITION__TABLE_JOINED, newTableJoined, newTableJoined));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public SearchConditionCombined getCombinedLeft() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_SEARCH_CONDITION__COMBINED_LEFT) return null;
+        return (SearchConditionCombined)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetCombinedLeft(SearchConditionCombined newCombinedLeft, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newCombinedLeft, SQLQueryModelPackage.QUERY_SEARCH_CONDITION__COMBINED_LEFT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setCombinedLeft(SearchConditionCombined newCombinedLeft) {
+        if (newCombinedLeft != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_SEARCH_CONDITION__COMBINED_LEFT && newCombinedLeft != null)) {
+            if (EcoreUtil.isAncestor(this, newCombinedLeft))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newCombinedLeft != null)
+                msgs = ((InternalEObject)newCombinedLeft).eInverseAdd(this, SQLQueryModelPackage.SEARCH_CONDITION_COMBINED__LEFT_CONDITION, SearchConditionCombined.class, msgs);
+            msgs = basicSetCombinedLeft(newCombinedLeft, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_SEARCH_CONDITION__COMBINED_LEFT, newCombinedLeft, newCombinedLeft));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public SearchConditionCombined getCombinedRight() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_SEARCH_CONDITION__COMBINED_RIGHT) return null;
+        return (SearchConditionCombined)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetCombinedRight(SearchConditionCombined newCombinedRight, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newCombinedRight, SQLQueryModelPackage.QUERY_SEARCH_CONDITION__COMBINED_RIGHT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setCombinedRight(SearchConditionCombined newCombinedRight) {
+        if (newCombinedRight != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_SEARCH_CONDITION__COMBINED_RIGHT && newCombinedRight != null)) {
+            if (EcoreUtil.isAncestor(this, newCombinedRight))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newCombinedRight != null)
+                msgs = ((InternalEObject)newCombinedRight).eInverseAdd(this, SQLQueryModelPackage.SEARCH_CONDITION_COMBINED__RIGHT_CONDITION, SearchConditionCombined.class, msgs);
+            msgs = basicSetCombinedRight(newCombinedRight, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_SEARCH_CONDITION__COMBINED_RIGHT, newCombinedRight, newCombinedRight));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QuerySelect getQuerySelectHaving() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_SEARCH_CONDITION__QUERY_SELECT_HAVING) return null;
+        return (QuerySelect)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetQuerySelectHaving(QuerySelect newQuerySelectHaving, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newQuerySelectHaving, SQLQueryModelPackage.QUERY_SEARCH_CONDITION__QUERY_SELECT_HAVING, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setQuerySelectHaving(QuerySelect newQuerySelectHaving) {
+        if (newQuerySelectHaving != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_SEARCH_CONDITION__QUERY_SELECT_HAVING && newQuerySelectHaving != null)) {
+            if (EcoreUtil.isAncestor(this, newQuerySelectHaving))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newQuerySelectHaving != null)
+                msgs = ((InternalEObject)newQuerySelectHaving).eInverseAdd(this, SQLQueryModelPackage.QUERY_SELECT__HAVING_CLAUSE, QuerySelect.class, msgs);
+            msgs = basicSetQuerySelectHaving(newQuerySelectHaving, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_SEARCH_CONDITION__QUERY_SELECT_HAVING, newQuerySelectHaving, newQuerySelectHaving));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QuerySelect getQuerySelectWhere() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_SEARCH_CONDITION__QUERY_SELECT_WHERE) return null;
+        return (QuerySelect)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetQuerySelectWhere(QuerySelect newQuerySelectWhere, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newQuerySelectWhere, SQLQueryModelPackage.QUERY_SEARCH_CONDITION__QUERY_SELECT_WHERE, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setQuerySelectWhere(QuerySelect newQuerySelectWhere) {
+        if (newQuerySelectWhere != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_SEARCH_CONDITION__QUERY_SELECT_WHERE && newQuerySelectWhere != null)) {
+            if (EcoreUtil.isAncestor(this, newQuerySelectWhere))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newQuerySelectWhere != null)
+                msgs = ((InternalEObject)newQuerySelectWhere).eInverseAdd(this, SQLQueryModelPackage.QUERY_SELECT__WHERE_CLAUSE, QuerySelect.class, msgs);
+            msgs = basicSetQuerySelectWhere(newQuerySelectWhere, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_SEARCH_CONDITION__QUERY_SELECT_WHERE, newQuerySelectWhere, newQuerySelectWhere));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public ValueExpressionCaseSearchContent getValueExprCaseSearchContent() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_SEARCH_CONDITION__VALUE_EXPR_CASE_SEARCH_CONTENT) return null;
+        return (ValueExpressionCaseSearchContent)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetValueExprCaseSearchContent(ValueExpressionCaseSearchContent newValueExprCaseSearchContent, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newValueExprCaseSearchContent, SQLQueryModelPackage.QUERY_SEARCH_CONDITION__VALUE_EXPR_CASE_SEARCH_CONTENT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueExprCaseSearchContent(ValueExpressionCaseSearchContent newValueExprCaseSearchContent) {
+        if (newValueExprCaseSearchContent != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_SEARCH_CONDITION__VALUE_EXPR_CASE_SEARCH_CONTENT && newValueExprCaseSearchContent != null)) {
+            if (EcoreUtil.isAncestor(this, newValueExprCaseSearchContent))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newValueExprCaseSearchContent != null)
+                msgs = ((InternalEObject)newValueExprCaseSearchContent).eInverseAdd(this, SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH_CONTENT__SEARCH_CONDITION, ValueExpressionCaseSearchContent.class, msgs);
+            msgs = basicSetValueExprCaseSearchContent(newValueExprCaseSearchContent, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_SEARCH_CONDITION__VALUE_EXPR_CASE_SEARCH_CONTENT, newValueExprCaseSearchContent, newValueExprCaseSearchContent));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public SearchConditionNested getNest() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_SEARCH_CONDITION__NEST) return null;
+        return (SearchConditionNested)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetNest(SearchConditionNested newNest, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newNest, SQLQueryModelPackage.QUERY_SEARCH_CONDITION__NEST, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void setNest(SearchConditionNested newNest) {
+        if (newNest != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_SEARCH_CONDITION__NEST && newNest != null)) {
+            if (EcoreUtil.isAncestor(this, newNest))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newNest != null)
+                msgs = ((InternalEObject)newNest).eInverseAdd(this, SQLQueryModelPackage.SEARCH_CONDITION_NESTED__NESTED_CONDITION, SearchConditionNested.class, msgs);
+            msgs = basicSetNest(newNest, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_SEARCH_CONDITION__NEST, newNest, newNest));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public MergeOnCondition getMergeOnCondition() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_SEARCH_CONDITION__MERGE_ON_CONDITION) return null;
+        return (MergeOnCondition)eContainer();
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetMergeOnCondition(MergeOnCondition newMergeOnCondition, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newMergeOnCondition, SQLQueryModelPackage.QUERY_SEARCH_CONDITION__MERGE_ON_CONDITION, msgs);
+        return msgs;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setMergeOnCondition(MergeOnCondition newMergeOnCondition) {
+        if (newMergeOnCondition != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_SEARCH_CONDITION__MERGE_ON_CONDITION && newMergeOnCondition != null)) {
+            if (EcoreUtil.isAncestor(this, newMergeOnCondition))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newMergeOnCondition != null)
+                msgs = ((InternalEObject)newMergeOnCondition).eInverseAdd(this, SQLQueryModelPackage.MERGE_ON_CONDITION__SEARCH_CONDITION, MergeOnCondition.class, msgs);
+            msgs = basicSetMergeOnCondition(newMergeOnCondition, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_SEARCH_CONDITION__MERGE_ON_CONDITION, newMergeOnCondition, newMergeOnCondition));
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__UPDATE_STATEMENT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetUpdateStatement((QueryUpdateStatement)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__DELETE_STATEMENT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetDeleteStatement((QueryDeleteStatement)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__TABLE_JOINED:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetTableJoined((TableJoined)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__COMBINED_LEFT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetCombinedLeft((SearchConditionCombined)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__COMBINED_RIGHT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetCombinedRight((SearchConditionCombined)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__QUERY_SELECT_HAVING:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetQuerySelectHaving((QuerySelect)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__QUERY_SELECT_WHERE:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetQuerySelectWhere((QuerySelect)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__VALUE_EXPR_CASE_SEARCH_CONTENT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetValueExprCaseSearchContent((ValueExpressionCaseSearchContent)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__NEST:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetNest((SearchConditionNested)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__MERGE_ON_CONDITION:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetMergeOnCondition((MergeOnCondition)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__UPDATE_STATEMENT:
+                return basicSetUpdateStatement(null, msgs);
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__DELETE_STATEMENT:
+                return basicSetDeleteStatement(null, msgs);
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__TABLE_JOINED:
+                return basicSetTableJoined(null, msgs);
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__COMBINED_LEFT:
+                return basicSetCombinedLeft(null, msgs);
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__COMBINED_RIGHT:
+                return basicSetCombinedRight(null, msgs);
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__QUERY_SELECT_HAVING:
+                return basicSetQuerySelectHaving(null, msgs);
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__QUERY_SELECT_WHERE:
+                return basicSetQuerySelectWhere(null, msgs);
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__VALUE_EXPR_CASE_SEARCH_CONTENT:
+                return basicSetValueExprCaseSearchContent(null, msgs);
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__NEST:
+                return basicSetNest(null, msgs);
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__MERGE_ON_CONDITION:
+                return basicSetMergeOnCondition(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__UPDATE_STATEMENT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__WHERE_CLAUSE, QueryUpdateStatement.class, msgs);
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__DELETE_STATEMENT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.QUERY_DELETE_STATEMENT__WHERE_CLAUSE, QueryDeleteStatement.class, msgs);
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__TABLE_JOINED:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.TABLE_JOINED__JOIN_CONDITION, TableJoined.class, msgs);
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__COMBINED_LEFT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.SEARCH_CONDITION_COMBINED__LEFT_CONDITION, SearchConditionCombined.class, msgs);
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__COMBINED_RIGHT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.SEARCH_CONDITION_COMBINED__RIGHT_CONDITION, SearchConditionCombined.class, msgs);
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__QUERY_SELECT_HAVING:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.QUERY_SELECT__HAVING_CLAUSE, QuerySelect.class, msgs);
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__QUERY_SELECT_WHERE:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.QUERY_SELECT__WHERE_CLAUSE, QuerySelect.class, msgs);
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__VALUE_EXPR_CASE_SEARCH_CONTENT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH_CONTENT__SEARCH_CONDITION, ValueExpressionCaseSearchContent.class, msgs);
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__NEST:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.SEARCH_CONDITION_NESTED__NESTED_CONDITION, SearchConditionNested.class, msgs);
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__MERGE_ON_CONDITION:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.MERGE_ON_CONDITION__SEARCH_CONDITION, MergeOnCondition.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__NEGATED_CONDITION:
+                return isNegatedCondition() ? Boolean.TRUE : Boolean.FALSE;
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__UPDATE_STATEMENT:
+                return getUpdateStatement();
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__DELETE_STATEMENT:
+                return getDeleteStatement();
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__TABLE_JOINED:
+                return getTableJoined();
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__COMBINED_LEFT:
+                return getCombinedLeft();
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__COMBINED_RIGHT:
+                return getCombinedRight();
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__QUERY_SELECT_HAVING:
+                return getQuerySelectHaving();
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__QUERY_SELECT_WHERE:
+                return getQuerySelectWhere();
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__VALUE_EXPR_CASE_SEARCH_CONTENT:
+                return getValueExprCaseSearchContent();
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__NEST:
+                return getNest();
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__MERGE_ON_CONDITION:
+                return getMergeOnCondition();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__NEGATED_CONDITION:
+                setNegatedCondition(((Boolean)newValue).booleanValue());
+                return;
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__UPDATE_STATEMENT:
+                setUpdateStatement((QueryUpdateStatement)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__DELETE_STATEMENT:
+                setDeleteStatement((QueryDeleteStatement)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__TABLE_JOINED:
+                setTableJoined((TableJoined)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__COMBINED_LEFT:
+                setCombinedLeft((SearchConditionCombined)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__COMBINED_RIGHT:
+                setCombinedRight((SearchConditionCombined)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__QUERY_SELECT_HAVING:
+                setQuerySelectHaving((QuerySelect)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__QUERY_SELECT_WHERE:
+                setQuerySelectWhere((QuerySelect)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__VALUE_EXPR_CASE_SEARCH_CONTENT:
+                setValueExprCaseSearchContent((ValueExpressionCaseSearchContent)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__NEST:
+                setNest((SearchConditionNested)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__MERGE_ON_CONDITION:
+                setMergeOnCondition((MergeOnCondition)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__NEGATED_CONDITION:
+                setNegatedCondition(NEGATED_CONDITION_EDEFAULT);
+                return;
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__UPDATE_STATEMENT:
+                setUpdateStatement((QueryUpdateStatement)null);
+                return;
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__DELETE_STATEMENT:
+                setDeleteStatement((QueryDeleteStatement)null);
+                return;
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__TABLE_JOINED:
+                setTableJoined((TableJoined)null);
+                return;
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__COMBINED_LEFT:
+                setCombinedLeft((SearchConditionCombined)null);
+                return;
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__COMBINED_RIGHT:
+                setCombinedRight((SearchConditionCombined)null);
+                return;
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__QUERY_SELECT_HAVING:
+                setQuerySelectHaving((QuerySelect)null);
+                return;
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__QUERY_SELECT_WHERE:
+                setQuerySelectWhere((QuerySelect)null);
+                return;
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__VALUE_EXPR_CASE_SEARCH_CONTENT:
+                setValueExprCaseSearchContent((ValueExpressionCaseSearchContent)null);
+                return;
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__NEST:
+                setNest((SearchConditionNested)null);
+                return;
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__MERGE_ON_CONDITION:
+                setMergeOnCondition((MergeOnCondition)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__NEGATED_CONDITION:
+                return negatedCondition != NEGATED_CONDITION_EDEFAULT;
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__UPDATE_STATEMENT:
+                return getUpdateStatement() != null;
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__DELETE_STATEMENT:
+                return getDeleteStatement() != null;
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__TABLE_JOINED:
+                return getTableJoined() != null;
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__COMBINED_LEFT:
+                return getCombinedLeft() != null;
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__COMBINED_RIGHT:
+                return getCombinedRight() != null;
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__QUERY_SELECT_HAVING:
+                return getQuerySelectHaving() != null;
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__QUERY_SELECT_WHERE:
+                return getQuerySelectWhere() != null;
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__VALUE_EXPR_CASE_SEARCH_CONTENT:
+                return getValueExprCaseSearchContent() != null;
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__NEST:
+                return getNest() != null;
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION__MERGE_ON_CONDITION:
+                return getMergeOnCondition() != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated NOT
+     */
+    public String getSQL() {
+        return super.getSQL();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (negatedCondition: ");
+        result.append(negatedCondition);
+        result.append(')');
+        return result.toString();
+    }
+
+} //SQLSearchConditionImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QuerySelectImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QuerySelectImpl.java
new file mode 100644
index 0000000..ce2d133
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QuerySelectImpl.java
@@ -0,0 +1,615 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QuerySelectImpl.java,v 1.5 2007/02/08 17:00:30 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.GroupingSpecification;
+import org.eclipse.datatools.modelbase.sql.query.PredicateExists;
+import org.eclipse.datatools.modelbase.sql.query.QueryCombined;
+import org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot;
+import org.eclipse.datatools.modelbase.sql.query.QueryResultSpecification;
+import org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.TableCorrelation;
+import org.eclipse.datatools.modelbase.sql.query.TableJoined;
+import org.eclipse.datatools.modelbase.sql.query.TableNested;
+import org.eclipse.datatools.modelbase.sql.query.TableReference;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceQuery;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionVariable;
+import org.eclipse.datatools.modelbase.sql.query.WithTableSpecification;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Select</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QuerySelectImpl#isDistinct <em>Distinct</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QuerySelectImpl#getHavingClause <em>Having Clause</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QuerySelectImpl#getWhereClause <em>Where Clause</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QuerySelectImpl#getGroupByClause <em>Group By Clause</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QuerySelectImpl#getSelectClause <em>Select Clause</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QuerySelectImpl#getFromClause <em>From Clause</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QuerySelectImpl#getIntoClause <em>Into Clause</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class QuerySelectImpl extends QueryExpressionBodyImpl implements QuerySelect {
+	/**
+     * The default value of the '{@link #isDistinct() <em>Distinct</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #isDistinct()
+     * @generated
+     * @ordered
+     */
+    protected static final boolean DISTINCT_EDEFAULT = false;
+
+	/**
+     * The cached value of the '{@link #isDistinct() <em>Distinct</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #isDistinct()
+     * @generated
+     * @ordered
+     */
+    protected boolean distinct = DISTINCT_EDEFAULT;
+
+	/**
+     * The cached value of the '{@link #getHavingClause() <em>Having Clause</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getHavingClause()
+     * @generated
+     * @ordered
+     */
+    protected QuerySearchCondition havingClause;
+
+	/**
+     * This is true if the Having Clause containment reference has been set.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    protected boolean havingClauseESet;
+
+	/**
+     * The cached value of the '{@link #getWhereClause() <em>Where Clause</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getWhereClause()
+     * @generated
+     * @ordered
+     */
+    protected QuerySearchCondition whereClause;
+
+	/**
+     * This is true if the Where Clause containment reference has been set.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    protected boolean whereClauseESet;
+
+	/**
+     * The cached value of the '{@link #getGroupByClause() <em>Group By Clause</em>}' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getGroupByClause()
+     * @generated
+     * @ordered
+     */
+    protected EList groupByClause;
+
+	/**
+     * The cached value of the '{@link #getSelectClause() <em>Select Clause</em>}' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getSelectClause()
+     * @generated
+     * @ordered
+     */
+    protected EList selectClause;
+
+	/**
+     * The cached value of the '{@link #getFromClause() <em>From Clause</em>}' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getFromClause()
+     * @generated
+     * @ordered
+     */
+    protected EList fromClause;
+
+	/**
+     * The cached value of the '{@link #getIntoClause() <em>Into Clause</em>}' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getIntoClause()
+     * @generated
+     * @ordered
+     */
+    protected EList intoClause;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected QuerySelectImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.QUERY_SELECT;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public boolean isDistinct() {
+        return distinct;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setDistinct(boolean newDistinct) {
+        boolean oldDistinct = distinct;
+        distinct = newDistinct;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_SELECT__DISTINCT, oldDistinct, distinct));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QuerySearchCondition getHavingClause() {
+        return havingClause;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetHavingClause(QuerySearchCondition newHavingClause, NotificationChain msgs) {
+        QuerySearchCondition oldHavingClause = havingClause;
+        havingClause = newHavingClause;
+        boolean oldHavingClauseESet = havingClauseESet;
+        havingClauseESet = true;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_SELECT__HAVING_CLAUSE, oldHavingClause, newHavingClause, !oldHavingClauseESet);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setHavingClause(QuerySearchCondition newHavingClause) {
+        if (newHavingClause != havingClause) {
+            NotificationChain msgs = null;
+            if (havingClause != null)
+                msgs = ((InternalEObject)havingClause).eInverseRemove(this, SQLQueryModelPackage.QUERY_SEARCH_CONDITION__QUERY_SELECT_HAVING, QuerySearchCondition.class, msgs);
+            if (newHavingClause != null)
+                msgs = ((InternalEObject)newHavingClause).eInverseAdd(this, SQLQueryModelPackage.QUERY_SEARCH_CONDITION__QUERY_SELECT_HAVING, QuerySearchCondition.class, msgs);
+            msgs = basicSetHavingClause(newHavingClause, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else {
+            boolean oldHavingClauseESet = havingClauseESet;
+            havingClauseESet = true;
+            if (eNotificationRequired())
+                eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_SELECT__HAVING_CLAUSE, newHavingClause, newHavingClause, !oldHavingClauseESet));
+        }
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicUnsetHavingClause(NotificationChain msgs) {
+        QuerySearchCondition oldHavingClause = havingClause;
+        havingClause = null;
+        boolean oldHavingClauseESet = havingClauseESet;
+        havingClauseESet = false;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.UNSET, SQLQueryModelPackage.QUERY_SELECT__HAVING_CLAUSE, oldHavingClause, null, oldHavingClauseESet);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void unsetHavingClause() {
+        if (havingClause != null) {
+            NotificationChain msgs = null;
+            msgs = ((InternalEObject)havingClause).eInverseRemove(this, SQLQueryModelPackage.QUERY_SEARCH_CONDITION__QUERY_SELECT_HAVING, QuerySearchCondition.class, msgs);
+            msgs = basicUnsetHavingClause(msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else {
+            boolean oldHavingClauseESet = havingClauseESet;
+            havingClauseESet = false;
+            if (eNotificationRequired())
+                eNotify(new ENotificationImpl(this, Notification.UNSET, SQLQueryModelPackage.QUERY_SELECT__HAVING_CLAUSE, null, null, oldHavingClauseESet));
+        }
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public boolean isSetHavingClause() {
+        return havingClauseESet;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QuerySearchCondition getWhereClause() {
+        return whereClause;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetWhereClause(QuerySearchCondition newWhereClause, NotificationChain msgs) {
+        QuerySearchCondition oldWhereClause = whereClause;
+        whereClause = newWhereClause;
+        boolean oldWhereClauseESet = whereClauseESet;
+        whereClauseESet = true;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_SELECT__WHERE_CLAUSE, oldWhereClause, newWhereClause, !oldWhereClauseESet);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setWhereClause(QuerySearchCondition newWhereClause) {
+        if (newWhereClause != whereClause) {
+            NotificationChain msgs = null;
+            if (whereClause != null)
+                msgs = ((InternalEObject)whereClause).eInverseRemove(this, SQLQueryModelPackage.QUERY_SEARCH_CONDITION__QUERY_SELECT_WHERE, QuerySearchCondition.class, msgs);
+            if (newWhereClause != null)
+                msgs = ((InternalEObject)newWhereClause).eInverseAdd(this, SQLQueryModelPackage.QUERY_SEARCH_CONDITION__QUERY_SELECT_WHERE, QuerySearchCondition.class, msgs);
+            msgs = basicSetWhereClause(newWhereClause, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else {
+            boolean oldWhereClauseESet = whereClauseESet;
+            whereClauseESet = true;
+            if (eNotificationRequired())
+                eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_SELECT__WHERE_CLAUSE, newWhereClause, newWhereClause, !oldWhereClauseESet));
+        }
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicUnsetWhereClause(NotificationChain msgs) {
+        QuerySearchCondition oldWhereClause = whereClause;
+        whereClause = null;
+        boolean oldWhereClauseESet = whereClauseESet;
+        whereClauseESet = false;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.UNSET, SQLQueryModelPackage.QUERY_SELECT__WHERE_CLAUSE, oldWhereClause, null, oldWhereClauseESet);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void unsetWhereClause() {
+        if (whereClause != null) {
+            NotificationChain msgs = null;
+            msgs = ((InternalEObject)whereClause).eInverseRemove(this, SQLQueryModelPackage.QUERY_SEARCH_CONDITION__QUERY_SELECT_WHERE, QuerySearchCondition.class, msgs);
+            msgs = basicUnsetWhereClause(msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else {
+            boolean oldWhereClauseESet = whereClauseESet;
+            whereClauseESet = false;
+            if (eNotificationRequired())
+                eNotify(new ENotificationImpl(this, Notification.UNSET, SQLQueryModelPackage.QUERY_SELECT__WHERE_CLAUSE, null, null, oldWhereClauseESet));
+        }
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public boolean isSetWhereClause() {
+        return whereClauseESet;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getGroupByClause() {
+        if (groupByClause == null) {
+            groupByClause = new EObjectContainmentWithInverseEList(GroupingSpecification.class, this, SQLQueryModelPackage.QUERY_SELECT__GROUP_BY_CLAUSE, SQLQueryModelPackage.GROUPING_SPECIFICATION__QUERY_SELECT);
+        }
+        return groupByClause;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getSelectClause() {
+        if (selectClause == null) {
+            selectClause = new EObjectContainmentWithInverseEList(QueryResultSpecification.class, this, SQLQueryModelPackage.QUERY_SELECT__SELECT_CLAUSE, SQLQueryModelPackage.QUERY_RESULT_SPECIFICATION__QUERY_SELECT);
+        }
+        return selectClause;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getFromClause() {
+        if (fromClause == null) {
+            fromClause = new EObjectContainmentWithInverseEList(TableReference.class, this, SQLQueryModelPackage.QUERY_SELECT__FROM_CLAUSE, SQLQueryModelPackage.TABLE_REFERENCE__QUERY_SELECT);
+        }
+        return fromClause;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getIntoClause() {
+        if (intoClause == null) {
+            intoClause = new EObjectContainmentWithInverseEList(ValueExpressionVariable.class, this, SQLQueryModelPackage.QUERY_SELECT__INTO_CLAUSE, SQLQueryModelPackage.VALUE_EXPRESSION_VARIABLE__QUERY_SELECT);
+        }
+        return intoClause;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_SELECT__HAVING_CLAUSE:
+                if (havingClause != null)
+                    msgs = ((InternalEObject)havingClause).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.QUERY_SELECT__HAVING_CLAUSE, null, msgs);
+                return basicSetHavingClause((QuerySearchCondition)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_SELECT__WHERE_CLAUSE:
+                if (whereClause != null)
+                    msgs = ((InternalEObject)whereClause).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.QUERY_SELECT__WHERE_CLAUSE, null, msgs);
+                return basicSetWhereClause((QuerySearchCondition)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_SELECT__GROUP_BY_CLAUSE:
+                return ((InternalEList)getGroupByClause()).basicAdd(otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_SELECT__SELECT_CLAUSE:
+                return ((InternalEList)getSelectClause()).basicAdd(otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_SELECT__FROM_CLAUSE:
+                return ((InternalEList)getFromClause()).basicAdd(otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_SELECT__INTO_CLAUSE:
+                return ((InternalEList)getIntoClause()).basicAdd(otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_SELECT__HAVING_CLAUSE:
+                return basicUnsetHavingClause(msgs);
+            case SQLQueryModelPackage.QUERY_SELECT__WHERE_CLAUSE:
+                return basicUnsetWhereClause(msgs);
+            case SQLQueryModelPackage.QUERY_SELECT__GROUP_BY_CLAUSE:
+                return ((InternalEList)getGroupByClause()).basicRemove(otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_SELECT__SELECT_CLAUSE:
+                return ((InternalEList)getSelectClause()).basicRemove(otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_SELECT__FROM_CLAUSE:
+                return ((InternalEList)getFromClause()).basicRemove(otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_SELECT__INTO_CLAUSE:
+                return ((InternalEList)getIntoClause()).basicRemove(otherEnd, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_SELECT__DISTINCT:
+                return isDistinct() ? Boolean.TRUE : Boolean.FALSE;
+            case SQLQueryModelPackage.QUERY_SELECT__HAVING_CLAUSE:
+                return getHavingClause();
+            case SQLQueryModelPackage.QUERY_SELECT__WHERE_CLAUSE:
+                return getWhereClause();
+            case SQLQueryModelPackage.QUERY_SELECT__GROUP_BY_CLAUSE:
+                return getGroupByClause();
+            case SQLQueryModelPackage.QUERY_SELECT__SELECT_CLAUSE:
+                return getSelectClause();
+            case SQLQueryModelPackage.QUERY_SELECT__FROM_CLAUSE:
+                return getFromClause();
+            case SQLQueryModelPackage.QUERY_SELECT__INTO_CLAUSE:
+                return getIntoClause();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_SELECT__DISTINCT:
+                setDistinct(((Boolean)newValue).booleanValue());
+                return;
+            case SQLQueryModelPackage.QUERY_SELECT__HAVING_CLAUSE:
+                setHavingClause((QuerySearchCondition)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_SELECT__WHERE_CLAUSE:
+                setWhereClause((QuerySearchCondition)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_SELECT__GROUP_BY_CLAUSE:
+                getGroupByClause().clear();
+                getGroupByClause().addAll((Collection)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_SELECT__SELECT_CLAUSE:
+                getSelectClause().clear();
+                getSelectClause().addAll((Collection)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_SELECT__FROM_CLAUSE:
+                getFromClause().clear();
+                getFromClause().addAll((Collection)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_SELECT__INTO_CLAUSE:
+                getIntoClause().clear();
+                getIntoClause().addAll((Collection)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_SELECT__DISTINCT:
+                setDistinct(DISTINCT_EDEFAULT);
+                return;
+            case SQLQueryModelPackage.QUERY_SELECT__HAVING_CLAUSE:
+                unsetHavingClause();
+                return;
+            case SQLQueryModelPackage.QUERY_SELECT__WHERE_CLAUSE:
+                unsetWhereClause();
+                return;
+            case SQLQueryModelPackage.QUERY_SELECT__GROUP_BY_CLAUSE:
+                getGroupByClause().clear();
+                return;
+            case SQLQueryModelPackage.QUERY_SELECT__SELECT_CLAUSE:
+                getSelectClause().clear();
+                return;
+            case SQLQueryModelPackage.QUERY_SELECT__FROM_CLAUSE:
+                getFromClause().clear();
+                return;
+            case SQLQueryModelPackage.QUERY_SELECT__INTO_CLAUSE:
+                getIntoClause().clear();
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_SELECT__DISTINCT:
+                return distinct != DISTINCT_EDEFAULT;
+            case SQLQueryModelPackage.QUERY_SELECT__HAVING_CLAUSE:
+                return isSetHavingClause();
+            case SQLQueryModelPackage.QUERY_SELECT__WHERE_CLAUSE:
+                return isSetWhereClause();
+            case SQLQueryModelPackage.QUERY_SELECT__GROUP_BY_CLAUSE:
+                return groupByClause != null && !groupByClause.isEmpty();
+            case SQLQueryModelPackage.QUERY_SELECT__SELECT_CLAUSE:
+                return selectClause != null && !selectClause.isEmpty();
+            case SQLQueryModelPackage.QUERY_SELECT__FROM_CLAUSE:
+                return fromClause != null && !fromClause.isEmpty();
+            case SQLQueryModelPackage.QUERY_SELECT__INTO_CLAUSE:
+                return intoClause != null && !intoClause.isEmpty();
+        }
+        return super.eIsSet(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (distinct: ");
+        result.append(distinct);
+        result.append(')');
+        return result.toString();
+    }
+
+} //SQLQuerySelectImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QuerySelectStatementImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QuerySelectStatementImpl.java
new file mode 100644
index 0000000..30344e8
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QuerySelectStatementImpl.java
@@ -0,0 +1,302 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QuerySelectStatementImpl.java,v 1.5 2008/01/31 02:57:15 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.OrderBySpecification;
+import org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelectStatement;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdatabilityExpression;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Select Statement</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QuerySelectStatementImpl#getQueryExpr <em>Query Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QuerySelectStatementImpl#getOrderByClause <em>Order By Clause</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QuerySelectStatementImpl#getUpdatabilityExpr <em>Updatability Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class QuerySelectStatementImpl extends QueryStatementImpl implements QuerySelectStatement {
+	/**
+     * The cached value of the '{@link #getQueryExpr() <em>Query Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getQueryExpr()
+     * @generated
+     * @ordered
+     */
+    protected QueryExpressionRoot queryExpr;
+
+	/**
+     * The cached value of the '{@link #getOrderByClause() <em>Order By Clause</em>}' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getOrderByClause()
+     * @generated
+     * @ordered
+     */
+    protected EList orderByClause;
+
+	/**
+     * The cached value of the '{@link #getUpdatabilityExpr() <em>Updatability Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getUpdatabilityExpr()
+     * @generated
+     * @ordered
+     */
+    protected UpdatabilityExpression updatabilityExpr;
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected QuerySelectStatementImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.QUERY_SELECT_STATEMENT;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryExpressionRoot getQueryExpr() {
+        return queryExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetQueryExpr(QueryExpressionRoot newQueryExpr, NotificationChain msgs) {
+        QueryExpressionRoot oldQueryExpr = queryExpr;
+        queryExpr = newQueryExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_SELECT_STATEMENT__QUERY_EXPR, oldQueryExpr, newQueryExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setQueryExpr(QueryExpressionRoot newQueryExpr) {
+        if (newQueryExpr != queryExpr) {
+            NotificationChain msgs = null;
+            if (queryExpr != null)
+                msgs = ((InternalEObject)queryExpr).eInverseRemove(this, SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__SELECT_STATEMENT, QueryExpressionRoot.class, msgs);
+            if (newQueryExpr != null)
+                msgs = ((InternalEObject)newQueryExpr).eInverseAdd(this, SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__SELECT_STATEMENT, QueryExpressionRoot.class, msgs);
+            msgs = basicSetQueryExpr(newQueryExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_SELECT_STATEMENT__QUERY_EXPR, newQueryExpr, newQueryExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getOrderByClause() {
+        if (orderByClause == null) {
+            orderByClause = new EObjectContainmentWithInverseEList(OrderBySpecification.class, this, SQLQueryModelPackage.QUERY_SELECT_STATEMENT__ORDER_BY_CLAUSE, SQLQueryModelPackage.ORDER_BY_SPECIFICATION__SELECT_STATEMENT);
+        }
+        return orderByClause;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public UpdatabilityExpression getUpdatabilityExpr() {
+        return updatabilityExpr;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetUpdatabilityExpr(UpdatabilityExpression newUpdatabilityExpr, NotificationChain msgs) {
+        UpdatabilityExpression oldUpdatabilityExpr = updatabilityExpr;
+        updatabilityExpr = newUpdatabilityExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_SELECT_STATEMENT__UPDATABILITY_EXPR, oldUpdatabilityExpr, newUpdatabilityExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setUpdatabilityExpr(UpdatabilityExpression newUpdatabilityExpr) {
+        if (newUpdatabilityExpr != updatabilityExpr) {
+            NotificationChain msgs = null;
+            if (updatabilityExpr != null)
+                msgs = ((InternalEObject)updatabilityExpr).eInverseRemove(this, SQLQueryModelPackage.UPDATABILITY_EXPRESSION__SELECT_STATEMENT, UpdatabilityExpression.class, msgs);
+            if (newUpdatabilityExpr != null)
+                msgs = ((InternalEObject)newUpdatabilityExpr).eInverseAdd(this, SQLQueryModelPackage.UPDATABILITY_EXPRESSION__SELECT_STATEMENT, UpdatabilityExpression.class, msgs);
+            msgs = basicSetUpdatabilityExpr(newUpdatabilityExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_SELECT_STATEMENT__UPDATABILITY_EXPR, newUpdatabilityExpr, newUpdatabilityExpr));
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_SELECT_STATEMENT__QUERY_EXPR:
+                if (queryExpr != null)
+                    msgs = ((InternalEObject)queryExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.QUERY_SELECT_STATEMENT__QUERY_EXPR, null, msgs);
+                return basicSetQueryExpr((QueryExpressionRoot)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_SELECT_STATEMENT__ORDER_BY_CLAUSE:
+                return ((InternalEList)getOrderByClause()).basicAdd(otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_SELECT_STATEMENT__UPDATABILITY_EXPR:
+                if (updatabilityExpr != null)
+                    msgs = ((InternalEObject)updatabilityExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.QUERY_SELECT_STATEMENT__UPDATABILITY_EXPR, null, msgs);
+                return basicSetUpdatabilityExpr((UpdatabilityExpression)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_SELECT_STATEMENT__QUERY_EXPR:
+                return basicSetQueryExpr(null, msgs);
+            case SQLQueryModelPackage.QUERY_SELECT_STATEMENT__ORDER_BY_CLAUSE:
+                return ((InternalEList)getOrderByClause()).basicRemove(otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_SELECT_STATEMENT__UPDATABILITY_EXPR:
+                return basicSetUpdatabilityExpr(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_SELECT_STATEMENT__QUERY_EXPR:
+                return getQueryExpr();
+            case SQLQueryModelPackage.QUERY_SELECT_STATEMENT__ORDER_BY_CLAUSE:
+                return getOrderByClause();
+            case SQLQueryModelPackage.QUERY_SELECT_STATEMENT__UPDATABILITY_EXPR:
+                return getUpdatabilityExpr();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_SELECT_STATEMENT__QUERY_EXPR:
+                setQueryExpr((QueryExpressionRoot)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_SELECT_STATEMENT__ORDER_BY_CLAUSE:
+                getOrderByClause().clear();
+                getOrderByClause().addAll((Collection)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_SELECT_STATEMENT__UPDATABILITY_EXPR:
+                setUpdatabilityExpr((UpdatabilityExpression)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_SELECT_STATEMENT__QUERY_EXPR:
+                setQueryExpr((QueryExpressionRoot)null);
+                return;
+            case SQLQueryModelPackage.QUERY_SELECT_STATEMENT__ORDER_BY_CLAUSE:
+                getOrderByClause().clear();
+                return;
+            case SQLQueryModelPackage.QUERY_SELECT_STATEMENT__UPDATABILITY_EXPR:
+                setUpdatabilityExpr((UpdatabilityExpression)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_SELECT_STATEMENT__QUERY_EXPR:
+                return queryExpr != null;
+            case SQLQueryModelPackage.QUERY_SELECT_STATEMENT__ORDER_BY_CLAUSE:
+                return orderByClause != null && !orderByClause.isEmpty();
+            case SQLQueryModelPackage.QUERY_SELECT_STATEMENT__UPDATABILITY_EXPR:
+                return updatabilityExpr != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //SQLSelectStatementImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QueryStatementImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QueryStatementImpl.java
new file mode 100644
index 0000000..112c1c2
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QueryStatementImpl.java
@@ -0,0 +1,60 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QueryStatementImpl.java,v 1.5 2007/02/08 17:00:27 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryStatement;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Statement</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class QueryStatementImpl extends SQLQueryObjectImpl implements QueryStatement {
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected QueryStatementImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.QUERY_STATEMENT;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated NOT
+     */
+    public String getSQL() {
+        return super.getSQL();
+    }
+
+} //SQLQueryStatementImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QueryUpdateStatementImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QueryUpdateStatementImpl.java
new file mode 100644
index 0000000..380bf01
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QueryUpdateStatementImpl.java
@@ -0,0 +1,495 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QueryUpdateStatementImpl.java,v 1.4 2007/02/08 17:00:26 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.CursorReference;
+import org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition;
+import org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.TableInDatabase;
+import org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Update Statement</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryUpdateStatementImpl#getAssignmentClause <em>Assignment Clause</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryUpdateStatementImpl#getWhereCurrentOfClause <em>Where Current Of Clause</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryUpdateStatementImpl#getWhereClause <em>Where Clause</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryUpdateStatementImpl#getTargetTable <em>Target Table</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class QueryUpdateStatementImpl extends QueryChangeStatementImpl implements QueryUpdateStatement {
+	/**
+     * The cached value of the '{@link #getAssignmentClause() <em>Assignment Clause</em>}' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getAssignmentClause()
+     * @generated
+     * @ordered
+     */
+    protected EList assignmentClause;
+
+	/**
+     * The cached value of the '{@link #getWhereCurrentOfClause() <em>Where Current Of Clause</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getWhereCurrentOfClause()
+     * @generated
+     * @ordered
+     */
+    protected CursorReference whereCurrentOfClause;
+
+	/**
+     * The cached value of the '{@link #getWhereClause() <em>Where Clause</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getWhereClause()
+     * @generated
+     * @ordered
+     */
+    protected QuerySearchCondition whereClause;
+
+	/**
+     * This is true if the Where Clause containment reference has been set.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    protected boolean whereClauseESet;
+
+	/**
+     * The cached value of the '{@link #getTargetTable() <em>Target Table</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getTargetTable()
+     * @generated
+     * @ordered
+     */
+    protected TableInDatabase targetTable;
+
+	/**
+     * This is true if the Target Table containment reference has been set.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    protected boolean targetTableESet;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected QueryUpdateStatementImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.QUERY_UPDATE_STATEMENT;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getAssignmentClause() {
+        if (assignmentClause == null) {
+            assignmentClause = new EObjectContainmentWithInverseEList(UpdateAssignmentExpression.class, this, SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__ASSIGNMENT_CLAUSE, SQLQueryModelPackage.UPDATE_ASSIGNMENT_EXPRESSION__UPDATE_STATEMENT);
+        }
+        return assignmentClause;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public CursorReference getWhereCurrentOfClause() {
+        return whereCurrentOfClause;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetWhereCurrentOfClause(CursorReference newWhereCurrentOfClause, NotificationChain msgs) {
+        CursorReference oldWhereCurrentOfClause = whereCurrentOfClause;
+        whereCurrentOfClause = newWhereCurrentOfClause;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__WHERE_CURRENT_OF_CLAUSE, oldWhereCurrentOfClause, newWhereCurrentOfClause);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setWhereCurrentOfClause(CursorReference newWhereCurrentOfClause) {
+        if (newWhereCurrentOfClause != whereCurrentOfClause) {
+            NotificationChain msgs = null;
+            if (whereCurrentOfClause != null)
+                msgs = ((InternalEObject)whereCurrentOfClause).eInverseRemove(this, SQLQueryModelPackage.CURSOR_REFERENCE__UPDATE_STATEMENT, CursorReference.class, msgs);
+            if (newWhereCurrentOfClause != null)
+                msgs = ((InternalEObject)newWhereCurrentOfClause).eInverseAdd(this, SQLQueryModelPackage.CURSOR_REFERENCE__UPDATE_STATEMENT, CursorReference.class, msgs);
+            msgs = basicSetWhereCurrentOfClause(newWhereCurrentOfClause, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__WHERE_CURRENT_OF_CLAUSE, newWhereCurrentOfClause, newWhereCurrentOfClause));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QuerySearchCondition getWhereClause() {
+        return whereClause;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetWhereClause(QuerySearchCondition newWhereClause, NotificationChain msgs) {
+        QuerySearchCondition oldWhereClause = whereClause;
+        whereClause = newWhereClause;
+        boolean oldWhereClauseESet = whereClauseESet;
+        whereClauseESet = true;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__WHERE_CLAUSE, oldWhereClause, newWhereClause, !oldWhereClauseESet);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setWhereClause(QuerySearchCondition newWhereClause) {
+        if (newWhereClause != whereClause) {
+            NotificationChain msgs = null;
+            if (whereClause != null)
+                msgs = ((InternalEObject)whereClause).eInverseRemove(this, SQLQueryModelPackage.QUERY_SEARCH_CONDITION__UPDATE_STATEMENT, QuerySearchCondition.class, msgs);
+            if (newWhereClause != null)
+                msgs = ((InternalEObject)newWhereClause).eInverseAdd(this, SQLQueryModelPackage.QUERY_SEARCH_CONDITION__UPDATE_STATEMENT, QuerySearchCondition.class, msgs);
+            msgs = basicSetWhereClause(newWhereClause, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else {
+            boolean oldWhereClauseESet = whereClauseESet;
+            whereClauseESet = true;
+            if (eNotificationRequired())
+                eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__WHERE_CLAUSE, newWhereClause, newWhereClause, !oldWhereClauseESet));
+        }
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicUnsetWhereClause(NotificationChain msgs) {
+        QuerySearchCondition oldWhereClause = whereClause;
+        whereClause = null;
+        boolean oldWhereClauseESet = whereClauseESet;
+        whereClauseESet = false;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.UNSET, SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__WHERE_CLAUSE, oldWhereClause, null, oldWhereClauseESet);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void unsetWhereClause() {
+        if (whereClause != null) {
+            NotificationChain msgs = null;
+            msgs = ((InternalEObject)whereClause).eInverseRemove(this, SQLQueryModelPackage.QUERY_SEARCH_CONDITION__UPDATE_STATEMENT, QuerySearchCondition.class, msgs);
+            msgs = basicUnsetWhereClause(msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else {
+            boolean oldWhereClauseESet = whereClauseESet;
+            whereClauseESet = false;
+            if (eNotificationRequired())
+                eNotify(new ENotificationImpl(this, Notification.UNSET, SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__WHERE_CLAUSE, null, null, oldWhereClauseESet));
+        }
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public boolean isSetWhereClause() {
+        return whereClauseESet;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public TableInDatabase getTargetTable() {
+        return targetTable;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public NotificationChain basicSetTargetTable(TableInDatabase newTargetTable, NotificationChain msgs) {
+        TableInDatabase oldTargetTable = targetTable;
+        targetTable = newTargetTable;
+        boolean oldTargetTableESet = targetTableESet;
+        targetTableESet = true;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__TARGET_TABLE, oldTargetTable, newTargetTable, !oldTargetTableESet);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void setTargetTable(TableInDatabase newTargetTable) {
+        if (newTargetTable != targetTable) {
+            NotificationChain msgs = null;
+            if (targetTable != null)
+                msgs = ((InternalEObject)targetTable).eInverseRemove(this, SQLQueryModelPackage.TABLE_IN_DATABASE__UPDATE_STATEMENT, TableInDatabase.class, msgs);
+            if (newTargetTable != null)
+                msgs = ((InternalEObject)newTargetTable).eInverseAdd(this, SQLQueryModelPackage.TABLE_IN_DATABASE__UPDATE_STATEMENT, TableInDatabase.class, msgs);
+            msgs = basicSetTargetTable(newTargetTable, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else {
+            boolean oldTargetTableESet = targetTableESet;
+            targetTableESet = true;
+            if (eNotificationRequired())
+                eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__TARGET_TABLE, newTargetTable, newTargetTable, !oldTargetTableESet));
+        }
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicUnsetTargetTable(NotificationChain msgs) {
+        TableInDatabase oldTargetTable = targetTable;
+        targetTable = null;
+        boolean oldTargetTableESet = targetTableESet;
+        targetTableESet = false;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.UNSET, SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__TARGET_TABLE, oldTargetTable, null, oldTargetTableESet);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void unsetTargetTable() {
+        if (targetTable != null) {
+            NotificationChain msgs = null;
+            msgs = ((InternalEObject)targetTable).eInverseRemove(this, SQLQueryModelPackage.TABLE_IN_DATABASE__UPDATE_STATEMENT, TableInDatabase.class, msgs);
+            msgs = basicUnsetTargetTable(msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else {
+            boolean oldTargetTableESet = targetTableESet;
+            targetTableESet = false;
+            if (eNotificationRequired())
+                eNotify(new ENotificationImpl(this, Notification.UNSET, SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__TARGET_TABLE, null, null, oldTargetTableESet));
+        }
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public boolean isSetTargetTable() {
+        return targetTableESet;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__ASSIGNMENT_CLAUSE:
+                return ((InternalEList)getAssignmentClause()).basicAdd(otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__WHERE_CURRENT_OF_CLAUSE:
+                if (whereCurrentOfClause != null)
+                    msgs = ((InternalEObject)whereCurrentOfClause).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__WHERE_CURRENT_OF_CLAUSE, null, msgs);
+                return basicSetWhereCurrentOfClause((CursorReference)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__WHERE_CLAUSE:
+                if (whereClause != null)
+                    msgs = ((InternalEObject)whereClause).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__WHERE_CLAUSE, null, msgs);
+                return basicSetWhereClause((QuerySearchCondition)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__TARGET_TABLE:
+                if (targetTable != null)
+                    msgs = ((InternalEObject)targetTable).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__TARGET_TABLE, null, msgs);
+                return basicSetTargetTable((TableInDatabase)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__ASSIGNMENT_CLAUSE:
+                return ((InternalEList)getAssignmentClause()).basicRemove(otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__WHERE_CURRENT_OF_CLAUSE:
+                return basicSetWhereCurrentOfClause(null, msgs);
+            case SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__WHERE_CLAUSE:
+                return basicUnsetWhereClause(msgs);
+            case SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__TARGET_TABLE:
+                return basicUnsetTargetTable(msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__ASSIGNMENT_CLAUSE:
+                return getAssignmentClause();
+            case SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__WHERE_CURRENT_OF_CLAUSE:
+                return getWhereCurrentOfClause();
+            case SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__WHERE_CLAUSE:
+                return getWhereClause();
+            case SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__TARGET_TABLE:
+                return getTargetTable();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__ASSIGNMENT_CLAUSE:
+                getAssignmentClause().clear();
+                getAssignmentClause().addAll((Collection)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__WHERE_CURRENT_OF_CLAUSE:
+                setWhereCurrentOfClause((CursorReference)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__WHERE_CLAUSE:
+                setWhereClause((QuerySearchCondition)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__TARGET_TABLE:
+                setTargetTable((TableInDatabase)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__ASSIGNMENT_CLAUSE:
+                getAssignmentClause().clear();
+                return;
+            case SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__WHERE_CURRENT_OF_CLAUSE:
+                setWhereCurrentOfClause((CursorReference)null);
+                return;
+            case SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__WHERE_CLAUSE:
+                unsetWhereClause();
+                return;
+            case SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__TARGET_TABLE:
+                unsetTargetTable();
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__ASSIGNMENT_CLAUSE:
+                return assignmentClause != null && !assignmentClause.isEmpty();
+            case SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__WHERE_CURRENT_OF_CLAUSE:
+                return whereCurrentOfClause != null;
+            case SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__WHERE_CLAUSE:
+                return isSetWhereClause();
+            case SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__TARGET_TABLE:
+                return isSetTargetTable();
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //SQLUpdateStatementImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QueryValueExpressionImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QueryValueExpressionImpl.java
new file mode 100644
index 0000000..8218994
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QueryValueExpressionImpl.java
@@ -0,0 +1,2341 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QueryValueExpressionImpl.java,v 1.8 2010/02/25 01:57:24 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.query.CallStatement;
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.TableFunction;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionRow;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Value Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl#getUnaryOperator <em>Unary Operator</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl#getDataType <em>Data Type</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl#getValuesRow <em>Values Row</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl#getOrderByValueExpr <em>Order By Value Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl#getResultColumn <em>Result Column</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl#getBasicRight <em>Basic Right</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl#getBasicLeft <em>Basic Left</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl#getLikePattern <em>Like Pattern</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl#getLikeMatching <em>Like Matching</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl#getPredicateNull <em>Predicate Null</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl#getInValueListRight <em>In Value List Right</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl#getInValueListLeft <em>In Value List Left</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl#getInValueRowSelectLeft <em>In Value Row Select Left</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl#getInValueSelectLeft <em>In Value Select Left</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl#getQuantifiedRowSelectLeft <em>Quantified Row Select Left</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl#getQuantifiedValueSelectLeft <em>Quantified Value Select Left</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl#getBetweenLeft <em>Between Left</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl#getBetweenRight1 <em>Between Right1</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl#getBetweenRight2 <em>Between Right2</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl#getValueExprCast <em>Value Expr Cast</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl#getValueExprFunction <em>Value Expr Function</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl#getValueExprCombinedLeft <em>Value Expr Combined Left</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl#getValueExprCombinedRight <em>Value Expr Combined Right</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl#getGroupingExpr <em>Grouping Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl#getValueExprCaseElse <em>Value Expr Case Else</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl#getValueExprCaseSimple <em>Value Expr Case Simple</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl#getValueExprCaseSimpleContentWhen <em>Value Expr Case Simple Content When</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl#getValueExprCaseSimpleContentResult <em>Value Expr Case Simple Content Result</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl#getValueExprCaseSearchContent <em>Value Expr Case Search Content</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl#getLikeEscape <em>Like Escape</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl#getValueExprLabeledDuration <em>Value Expr Labeled Duration</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl#getNest <em>Nest</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl#getUpdateSourceExprList <em>Update Source Expr List</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl#getTableFunction <em>Table Function</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl#getValueExprRow <em>Value Expr Row</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl#getCallStatement <em>Call Statement</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class QueryValueExpressionImpl extends SQLQueryObjectImpl implements QueryValueExpression {
+	/**
+     * The default value of the '{@link #getUnaryOperator() <em>Unary Operator</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getUnaryOperator()
+     * @generated
+     * @ordered
+     */
+    protected static final ValueExpressionUnaryOperator UNARY_OPERATOR_EDEFAULT = ValueExpressionUnaryOperator.NONE_LITERAL;
+
+	/**
+     * The cached value of the '{@link #getUnaryOperator() <em>Unary Operator</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getUnaryOperator()
+     * @generated
+     * @ordered
+     */
+    protected ValueExpressionUnaryOperator unaryOperator = UNARY_OPERATOR_EDEFAULT;
+
+	/**
+     * The cached value of the '{@link #getDataType() <em>Data Type</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getDataType()
+     * @generated
+     * @ordered
+     */
+    protected DataType dataType;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected QueryValueExpressionImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.QUERY_VALUE_EXPRESSION;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public ValueExpressionUnaryOperator getUnaryOperator() {
+        return unaryOperator;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setUnaryOperator(ValueExpressionUnaryOperator newUnaryOperator) {
+        ValueExpressionUnaryOperator oldUnaryOperator = unaryOperator;
+        unaryOperator = newUnaryOperator == null ? UNARY_OPERATOR_EDEFAULT : newUnaryOperator;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__UNARY_OPERATOR, oldUnaryOperator, unaryOperator));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public DataType getDataType() {
+        return dataType;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetDataType(DataType newDataType, NotificationChain msgs) {
+        DataType oldDataType = dataType;
+        dataType = newDataType;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DATA_TYPE, oldDataType, newDataType);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setDataType(DataType newDataType) {
+        if (newDataType != dataType) {
+            NotificationChain msgs = null;
+            if (dataType != null)
+                msgs = ((InternalEObject)dataType).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DATA_TYPE, null, msgs);
+            if (newDataType != null)
+                msgs = ((InternalEObject)newDataType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DATA_TYPE, null, msgs);
+            msgs = basicSetDataType(newDataType, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DATA_TYPE, newDataType, newDataType));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public ValuesRow getValuesRow() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUES_ROW) return null;
+        return (ValuesRow)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetValuesRow(ValuesRow newValuesRow, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newValuesRow, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUES_ROW, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValuesRow(ValuesRow newValuesRow) {
+        if (newValuesRow != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUES_ROW && newValuesRow != null)) {
+            if (EcoreUtil.isAncestor(this, newValuesRow))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newValuesRow != null)
+                msgs = ((InternalEObject)newValuesRow).eInverseAdd(this, SQLQueryModelPackage.VALUES_ROW__EXPR_LIST, ValuesRow.class, msgs);
+            msgs = basicSetValuesRow(newValuesRow, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUES_ROW, newValuesRow, newValuesRow));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public OrderByValueExpression getOrderByValueExpr() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__ORDER_BY_VALUE_EXPR) return null;
+        return (OrderByValueExpression)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetOrderByValueExpr(OrderByValueExpression newOrderByValueExpr, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newOrderByValueExpr, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__ORDER_BY_VALUE_EXPR, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setOrderByValueExpr(OrderByValueExpression newOrderByValueExpr) {
+        if (newOrderByValueExpr != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__ORDER_BY_VALUE_EXPR && newOrderByValueExpr != null)) {
+            if (EcoreUtil.isAncestor(this, newOrderByValueExpr))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newOrderByValueExpr != null)
+                msgs = ((InternalEObject)newOrderByValueExpr).eInverseAdd(this, SQLQueryModelPackage.ORDER_BY_VALUE_EXPRESSION__VALUE_EXPR, OrderByValueExpression.class, msgs);
+            msgs = basicSetOrderByValueExpr(newOrderByValueExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__ORDER_BY_VALUE_EXPR, newOrderByValueExpr, newOrderByValueExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public ResultColumn getResultColumn() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__RESULT_COLUMN) return null;
+        return (ResultColumn)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetResultColumn(ResultColumn newResultColumn, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newResultColumn, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__RESULT_COLUMN, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setResultColumn(ResultColumn newResultColumn) {
+        if (newResultColumn != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__RESULT_COLUMN && newResultColumn != null)) {
+            if (EcoreUtil.isAncestor(this, newResultColumn))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newResultColumn != null)
+                msgs = ((InternalEObject)newResultColumn).eInverseAdd(this, SQLQueryModelPackage.RESULT_COLUMN__VALUE_EXPR, ResultColumn.class, msgs);
+            msgs = basicSetResultColumn(newResultColumn, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__RESULT_COLUMN, newResultColumn, newResultColumn));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public PredicateBasic getBasicRight() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_RIGHT) return null;
+        return (PredicateBasic)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetBasicRight(PredicateBasic newBasicRight, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newBasicRight, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_RIGHT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setBasicRight(PredicateBasic newBasicRight) {
+        if (newBasicRight != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_RIGHT && newBasicRight != null)) {
+            if (EcoreUtil.isAncestor(this, newBasicRight))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newBasicRight != null)
+                msgs = ((InternalEObject)newBasicRight).eInverseAdd(this, SQLQueryModelPackage.PREDICATE_BASIC__RIGHT_VALUE_EXPR, PredicateBasic.class, msgs);
+            msgs = basicSetBasicRight(newBasicRight, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_RIGHT, newBasicRight, newBasicRight));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public PredicateBasic getBasicLeft() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_LEFT) return null;
+        return (PredicateBasic)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetBasicLeft(PredicateBasic newBasicLeft, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newBasicLeft, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_LEFT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setBasicLeft(PredicateBasic newBasicLeft) {
+        if (newBasicLeft != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_LEFT && newBasicLeft != null)) {
+            if (EcoreUtil.isAncestor(this, newBasicLeft))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newBasicLeft != null)
+                msgs = ((InternalEObject)newBasicLeft).eInverseAdd(this, SQLQueryModelPackage.PREDICATE_BASIC__LEFT_VALUE_EXPR, PredicateBasic.class, msgs);
+            msgs = basicSetBasicLeft(newBasicLeft, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_LEFT, newBasicLeft, newBasicLeft));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public PredicateLike getLikePattern() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_PATTERN) return null;
+        return (PredicateLike)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetLikePattern(PredicateLike newLikePattern, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newLikePattern, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_PATTERN, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setLikePattern(PredicateLike newLikePattern) {
+        if (newLikePattern != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_PATTERN && newLikePattern != null)) {
+            if (EcoreUtil.isAncestor(this, newLikePattern))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newLikePattern != null)
+                msgs = ((InternalEObject)newLikePattern).eInverseAdd(this, SQLQueryModelPackage.PREDICATE_LIKE__PATTERN_VALUE_EXPR, PredicateLike.class, msgs);
+            msgs = basicSetLikePattern(newLikePattern, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_PATTERN, newLikePattern, newLikePattern));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public PredicateLike getLikeMatching() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_MATCHING) return null;
+        return (PredicateLike)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetLikeMatching(PredicateLike newLikeMatching, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newLikeMatching, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_MATCHING, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setLikeMatching(PredicateLike newLikeMatching) {
+        if (newLikeMatching != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_MATCHING && newLikeMatching != null)) {
+            if (EcoreUtil.isAncestor(this, newLikeMatching))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newLikeMatching != null)
+                msgs = ((InternalEObject)newLikeMatching).eInverseAdd(this, SQLQueryModelPackage.PREDICATE_LIKE__MATCHING_VALUE_EXPR, PredicateLike.class, msgs);
+            msgs = basicSetLikeMatching(newLikeMatching, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_MATCHING, newLikeMatching, newLikeMatching));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public PredicateIsNull getPredicateNull() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__PREDICATE_NULL) return null;
+        return (PredicateIsNull)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetPredicateNull(PredicateIsNull newPredicateNull, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newPredicateNull, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__PREDICATE_NULL, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setPredicateNull(PredicateIsNull newPredicateNull) {
+        if (newPredicateNull != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__PREDICATE_NULL && newPredicateNull != null)) {
+            if (EcoreUtil.isAncestor(this, newPredicateNull))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newPredicateNull != null)
+                msgs = ((InternalEObject)newPredicateNull).eInverseAdd(this, SQLQueryModelPackage.PREDICATE_IS_NULL__VALUE_EXPR, PredicateIsNull.class, msgs);
+            msgs = basicSetPredicateNull(newPredicateNull, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__PREDICATE_NULL, newPredicateNull, newPredicateNull));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public PredicateInValueList getInValueListRight() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_RIGHT) return null;
+        return (PredicateInValueList)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetInValueListRight(PredicateInValueList newInValueListRight, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newInValueListRight, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_RIGHT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setInValueListRight(PredicateInValueList newInValueListRight) {
+        if (newInValueListRight != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_RIGHT && newInValueListRight != null)) {
+            if (EcoreUtil.isAncestor(this, newInValueListRight))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newInValueListRight != null)
+                msgs = ((InternalEObject)newInValueListRight).eInverseAdd(this, SQLQueryModelPackage.PREDICATE_IN_VALUE_LIST__VALUE_EXPR_LIST, PredicateInValueList.class, msgs);
+            msgs = basicSetInValueListRight(newInValueListRight, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_RIGHT, newInValueListRight, newInValueListRight));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public PredicateInValueList getInValueListLeft() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_LEFT) return null;
+        return (PredicateInValueList)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetInValueListLeft(PredicateInValueList newInValueListLeft, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newInValueListLeft, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_LEFT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setInValueListLeft(PredicateInValueList newInValueListLeft) {
+        if (newInValueListLeft != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_LEFT && newInValueListLeft != null)) {
+            if (EcoreUtil.isAncestor(this, newInValueListLeft))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newInValueListLeft != null)
+                msgs = ((InternalEObject)newInValueListLeft).eInverseAdd(this, SQLQueryModelPackage.PREDICATE_IN_VALUE_LIST__VALUE_EXPR, PredicateInValueList.class, msgs);
+            msgs = basicSetInValueListLeft(newInValueListLeft, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_LEFT, newInValueListLeft, newInValueListLeft));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public PredicateInValueRowSelect getInValueRowSelectLeft() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_ROW_SELECT_LEFT) return null;
+        return (PredicateInValueRowSelect)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetInValueRowSelectLeft(PredicateInValueRowSelect newInValueRowSelectLeft, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newInValueRowSelectLeft, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_ROW_SELECT_LEFT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setInValueRowSelectLeft(PredicateInValueRowSelect newInValueRowSelectLeft) {
+        if (newInValueRowSelectLeft != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_ROW_SELECT_LEFT && newInValueRowSelectLeft != null)) {
+            if (EcoreUtil.isAncestor(this, newInValueRowSelectLeft))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newInValueRowSelectLeft != null)
+                msgs = ((InternalEObject)newInValueRowSelectLeft).eInverseAdd(this, SQLQueryModelPackage.PREDICATE_IN_VALUE_ROW_SELECT__VALUE_EXPR_LIST, PredicateInValueRowSelect.class, msgs);
+            msgs = basicSetInValueRowSelectLeft(newInValueRowSelectLeft, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_ROW_SELECT_LEFT, newInValueRowSelectLeft, newInValueRowSelectLeft));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public PredicateInValueSelect getInValueSelectLeft() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_SELECT_LEFT) return null;
+        return (PredicateInValueSelect)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetInValueSelectLeft(PredicateInValueSelect newInValueSelectLeft, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newInValueSelectLeft, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_SELECT_LEFT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setInValueSelectLeft(PredicateInValueSelect newInValueSelectLeft) {
+        if (newInValueSelectLeft != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_SELECT_LEFT && newInValueSelectLeft != null)) {
+            if (EcoreUtil.isAncestor(this, newInValueSelectLeft))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newInValueSelectLeft != null)
+                msgs = ((InternalEObject)newInValueSelectLeft).eInverseAdd(this, SQLQueryModelPackage.PREDICATE_IN_VALUE_SELECT__VALUE_EXPR, PredicateInValueSelect.class, msgs);
+            msgs = basicSetInValueSelectLeft(newInValueSelectLeft, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_SELECT_LEFT, newInValueSelectLeft, newInValueSelectLeft));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public PredicateQuantifiedRowSelect getQuantifiedRowSelectLeft() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_ROW_SELECT_LEFT) return null;
+        return (PredicateQuantifiedRowSelect)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetQuantifiedRowSelectLeft(PredicateQuantifiedRowSelect newQuantifiedRowSelectLeft, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newQuantifiedRowSelectLeft, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_ROW_SELECT_LEFT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setQuantifiedRowSelectLeft(PredicateQuantifiedRowSelect newQuantifiedRowSelectLeft) {
+        if (newQuantifiedRowSelectLeft != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_ROW_SELECT_LEFT && newQuantifiedRowSelectLeft != null)) {
+            if (EcoreUtil.isAncestor(this, newQuantifiedRowSelectLeft))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newQuantifiedRowSelectLeft != null)
+                msgs = ((InternalEObject)newQuantifiedRowSelectLeft).eInverseAdd(this, SQLQueryModelPackage.PREDICATE_QUANTIFIED_ROW_SELECT__VALUE_EXPR_LIST, PredicateQuantifiedRowSelect.class, msgs);
+            msgs = basicSetQuantifiedRowSelectLeft(newQuantifiedRowSelectLeft, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_ROW_SELECT_LEFT, newQuantifiedRowSelectLeft, newQuantifiedRowSelectLeft));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public PredicateQuantifiedValueSelect getQuantifiedValueSelectLeft() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_VALUE_SELECT_LEFT) return null;
+        return (PredicateQuantifiedValueSelect)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetQuantifiedValueSelectLeft(PredicateQuantifiedValueSelect newQuantifiedValueSelectLeft, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newQuantifiedValueSelectLeft, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_VALUE_SELECT_LEFT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setQuantifiedValueSelectLeft(PredicateQuantifiedValueSelect newQuantifiedValueSelectLeft) {
+        if (newQuantifiedValueSelectLeft != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_VALUE_SELECT_LEFT && newQuantifiedValueSelectLeft != null)) {
+            if (EcoreUtil.isAncestor(this, newQuantifiedValueSelectLeft))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newQuantifiedValueSelectLeft != null)
+                msgs = ((InternalEObject)newQuantifiedValueSelectLeft).eInverseAdd(this, SQLQueryModelPackage.PREDICATE_QUANTIFIED_VALUE_SELECT__VALUE_EXPR, PredicateQuantifiedValueSelect.class, msgs);
+            msgs = basicSetQuantifiedValueSelectLeft(newQuantifiedValueSelectLeft, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_VALUE_SELECT_LEFT, newQuantifiedValueSelectLeft, newQuantifiedValueSelectLeft));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public PredicateBetween getBetweenLeft() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_LEFT) return null;
+        return (PredicateBetween)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetBetweenLeft(PredicateBetween newBetweenLeft, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newBetweenLeft, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_LEFT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setBetweenLeft(PredicateBetween newBetweenLeft) {
+        if (newBetweenLeft != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_LEFT && newBetweenLeft != null)) {
+            if (EcoreUtil.isAncestor(this, newBetweenLeft))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newBetweenLeft != null)
+                msgs = ((InternalEObject)newBetweenLeft).eInverseAdd(this, SQLQueryModelPackage.PREDICATE_BETWEEN__LEFT_VALUE_EXPR, PredicateBetween.class, msgs);
+            msgs = basicSetBetweenLeft(newBetweenLeft, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_LEFT, newBetweenLeft, newBetweenLeft));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public PredicateBetween getBetweenRight1() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT1) return null;
+        return (PredicateBetween)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetBetweenRight1(PredicateBetween newBetweenRight1, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newBetweenRight1, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT1, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setBetweenRight1(PredicateBetween newBetweenRight1) {
+        if (newBetweenRight1 != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT1 && newBetweenRight1 != null)) {
+            if (EcoreUtil.isAncestor(this, newBetweenRight1))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newBetweenRight1 != null)
+                msgs = ((InternalEObject)newBetweenRight1).eInverseAdd(this, SQLQueryModelPackage.PREDICATE_BETWEEN__RIGHT_VALUE_EXPR1, PredicateBetween.class, msgs);
+            msgs = basicSetBetweenRight1(newBetweenRight1, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT1, newBetweenRight1, newBetweenRight1));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public PredicateBetween getBetweenRight2() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT2) return null;
+        return (PredicateBetween)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetBetweenRight2(PredicateBetween newBetweenRight2, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newBetweenRight2, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT2, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setBetweenRight2(PredicateBetween newBetweenRight2) {
+        if (newBetweenRight2 != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT2 && newBetweenRight2 != null)) {
+            if (EcoreUtil.isAncestor(this, newBetweenRight2))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newBetweenRight2 != null)
+                msgs = ((InternalEObject)newBetweenRight2).eInverseAdd(this, SQLQueryModelPackage.PREDICATE_BETWEEN__RIGHT_VALUE_EXPR2, PredicateBetween.class, msgs);
+            msgs = basicSetBetweenRight2(newBetweenRight2, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT2, newBetweenRight2, newBetweenRight2));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public ValueExpressionCast getValueExprCast() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CAST) return null;
+        return (ValueExpressionCast)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetValueExprCast(ValueExpressionCast newValueExprCast, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newValueExprCast, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CAST, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueExprCast(ValueExpressionCast newValueExprCast) {
+        if (newValueExprCast != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CAST && newValueExprCast != null)) {
+            if (EcoreUtil.isAncestor(this, newValueExprCast))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newValueExprCast != null)
+                msgs = ((InternalEObject)newValueExprCast).eInverseAdd(this, SQLQueryModelPackage.VALUE_EXPRESSION_CAST__VALUE_EXPR, ValueExpressionCast.class, msgs);
+            msgs = basicSetValueExprCast(newValueExprCast, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CAST, newValueExprCast, newValueExprCast));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public ValueExpressionFunction getValueExprFunction() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_FUNCTION) return null;
+        return (ValueExpressionFunction)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetValueExprFunction(ValueExpressionFunction newValueExprFunction, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newValueExprFunction, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_FUNCTION, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueExprFunction(ValueExpressionFunction newValueExprFunction) {
+        if (newValueExprFunction != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_FUNCTION && newValueExprFunction != null)) {
+            if (EcoreUtil.isAncestor(this, newValueExprFunction))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newValueExprFunction != null)
+                msgs = ((InternalEObject)newValueExprFunction).eInverseAdd(this, SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__PARAMETER_LIST, ValueExpressionFunction.class, msgs);
+            msgs = basicSetValueExprFunction(newValueExprFunction, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_FUNCTION, newValueExprFunction, newValueExprFunction));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public ValueExpressionCombined getValueExprCombinedLeft() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_LEFT) return null;
+        return (ValueExpressionCombined)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetValueExprCombinedLeft(ValueExpressionCombined newValueExprCombinedLeft, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newValueExprCombinedLeft, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_LEFT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueExprCombinedLeft(ValueExpressionCombined newValueExprCombinedLeft) {
+        if (newValueExprCombinedLeft != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_LEFT && newValueExprCombinedLeft != null)) {
+            if (EcoreUtil.isAncestor(this, newValueExprCombinedLeft))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newValueExprCombinedLeft != null)
+                msgs = ((InternalEObject)newValueExprCombinedLeft).eInverseAdd(this, SQLQueryModelPackage.VALUE_EXPRESSION_COMBINED__LEFT_VALUE_EXPR, ValueExpressionCombined.class, msgs);
+            msgs = basicSetValueExprCombinedLeft(newValueExprCombinedLeft, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_LEFT, newValueExprCombinedLeft, newValueExprCombinedLeft));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public ValueExpressionCombined getValueExprCombinedRight() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_RIGHT) return null;
+        return (ValueExpressionCombined)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetValueExprCombinedRight(ValueExpressionCombined newValueExprCombinedRight, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newValueExprCombinedRight, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_RIGHT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueExprCombinedRight(ValueExpressionCombined newValueExprCombinedRight) {
+        if (newValueExprCombinedRight != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_RIGHT && newValueExprCombinedRight != null)) {
+            if (EcoreUtil.isAncestor(this, newValueExprCombinedRight))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newValueExprCombinedRight != null)
+                msgs = ((InternalEObject)newValueExprCombinedRight).eInverseAdd(this, SQLQueryModelPackage.VALUE_EXPRESSION_COMBINED__RIGHT_VALUE_EXPR, ValueExpressionCombined.class, msgs);
+            msgs = basicSetValueExprCombinedRight(newValueExprCombinedRight, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_RIGHT, newValueExprCombinedRight, newValueExprCombinedRight));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public GroupingExpression getGroupingExpr() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__GROUPING_EXPR) return null;
+        return (GroupingExpression)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetGroupingExpr(GroupingExpression newGroupingExpr, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newGroupingExpr, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__GROUPING_EXPR, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setGroupingExpr(GroupingExpression newGroupingExpr) {
+        if (newGroupingExpr != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__GROUPING_EXPR && newGroupingExpr != null)) {
+            if (EcoreUtil.isAncestor(this, newGroupingExpr))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newGroupingExpr != null)
+                msgs = ((InternalEObject)newGroupingExpr).eInverseAdd(this, SQLQueryModelPackage.GROUPING_EXPRESSION__VALUE_EXPR, GroupingExpression.class, msgs);
+            msgs = basicSetGroupingExpr(newGroupingExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__GROUPING_EXPR, newGroupingExpr, newGroupingExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public ValueExpressionCaseElse getValueExprCaseElse() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_ELSE) return null;
+        return (ValueExpressionCaseElse)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetValueExprCaseElse(ValueExpressionCaseElse newValueExprCaseElse, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newValueExprCaseElse, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_ELSE, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueExprCaseElse(ValueExpressionCaseElse newValueExprCaseElse) {
+        if (newValueExprCaseElse != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_ELSE && newValueExprCaseElse != null)) {
+            if (EcoreUtil.isAncestor(this, newValueExprCaseElse))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newValueExprCaseElse != null)
+                msgs = ((InternalEObject)newValueExprCaseElse).eInverseAdd(this, SQLQueryModelPackage.VALUE_EXPRESSION_CASE_ELSE__VALUE_EXPR, ValueExpressionCaseElse.class, msgs);
+            msgs = basicSetValueExprCaseElse(newValueExprCaseElse, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_ELSE, newValueExprCaseElse, newValueExprCaseElse));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public ValueExpressionCaseSimple getValueExprCaseSimple() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE) return null;
+        return (ValueExpressionCaseSimple)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetValueExprCaseSimple(ValueExpressionCaseSimple newValueExprCaseSimple, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newValueExprCaseSimple, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueExprCaseSimple(ValueExpressionCaseSimple newValueExprCaseSimple) {
+        if (newValueExprCaseSimple != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE && newValueExprCaseSimple != null)) {
+            if (EcoreUtil.isAncestor(this, newValueExprCaseSimple))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newValueExprCaseSimple != null)
+                msgs = ((InternalEObject)newValueExprCaseSimple).eInverseAdd(this, SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE__VALUE_EXPR, ValueExpressionCaseSimple.class, msgs);
+            msgs = basicSetValueExprCaseSimple(newValueExprCaseSimple, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE, newValueExprCaseSimple, newValueExprCaseSimple));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public ValueExpressionCaseSimpleContent getValueExprCaseSimpleContentWhen() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN) return null;
+        return (ValueExpressionCaseSimpleContent)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetValueExprCaseSimpleContentWhen(ValueExpressionCaseSimpleContent newValueExprCaseSimpleContentWhen, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newValueExprCaseSimpleContentWhen, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueExprCaseSimpleContentWhen(ValueExpressionCaseSimpleContent newValueExprCaseSimpleContentWhen) {
+        if (newValueExprCaseSimpleContentWhen != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN && newValueExprCaseSimpleContentWhen != null)) {
+            if (EcoreUtil.isAncestor(this, newValueExprCaseSimpleContentWhen))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newValueExprCaseSimpleContentWhen != null)
+                msgs = ((InternalEObject)newValueExprCaseSimpleContentWhen).eInverseAdd(this, SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__WHEN_VALUE_EXPR, ValueExpressionCaseSimpleContent.class, msgs);
+            msgs = basicSetValueExprCaseSimpleContentWhen(newValueExprCaseSimpleContentWhen, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN, newValueExprCaseSimpleContentWhen, newValueExprCaseSimpleContentWhen));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public ValueExpressionCaseSimpleContent getValueExprCaseSimpleContentResult() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT) return null;
+        return (ValueExpressionCaseSimpleContent)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetValueExprCaseSimpleContentResult(ValueExpressionCaseSimpleContent newValueExprCaseSimpleContentResult, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newValueExprCaseSimpleContentResult, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueExprCaseSimpleContentResult(ValueExpressionCaseSimpleContent newValueExprCaseSimpleContentResult) {
+        if (newValueExprCaseSimpleContentResult != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT && newValueExprCaseSimpleContentResult != null)) {
+            if (EcoreUtil.isAncestor(this, newValueExprCaseSimpleContentResult))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newValueExprCaseSimpleContentResult != null)
+                msgs = ((InternalEObject)newValueExprCaseSimpleContentResult).eInverseAdd(this, SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__RESULT_VALUE_EXPR, ValueExpressionCaseSimpleContent.class, msgs);
+            msgs = basicSetValueExprCaseSimpleContentResult(newValueExprCaseSimpleContentResult, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT, newValueExprCaseSimpleContentResult, newValueExprCaseSimpleContentResult));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public ValueExpressionCaseSearchContent getValueExprCaseSearchContent() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SEARCH_CONTENT) return null;
+        return (ValueExpressionCaseSearchContent)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetValueExprCaseSearchContent(ValueExpressionCaseSearchContent newValueExprCaseSearchContent, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newValueExprCaseSearchContent, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SEARCH_CONTENT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueExprCaseSearchContent(ValueExpressionCaseSearchContent newValueExprCaseSearchContent) {
+        if (newValueExprCaseSearchContent != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SEARCH_CONTENT && newValueExprCaseSearchContent != null)) {
+            if (EcoreUtil.isAncestor(this, newValueExprCaseSearchContent))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newValueExprCaseSearchContent != null)
+                msgs = ((InternalEObject)newValueExprCaseSearchContent).eInverseAdd(this, SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH_CONTENT__VALUE_EXPR, ValueExpressionCaseSearchContent.class, msgs);
+            msgs = basicSetValueExprCaseSearchContent(newValueExprCaseSearchContent, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SEARCH_CONTENT, newValueExprCaseSearchContent, newValueExprCaseSearchContent));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public PredicateLike getLikeEscape() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_ESCAPE) return null;
+        return (PredicateLike)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetLikeEscape(PredicateLike newLikeEscape, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newLikeEscape, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_ESCAPE, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setLikeEscape(PredicateLike newLikeEscape) {
+        if (newLikeEscape != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_ESCAPE && newLikeEscape != null)) {
+            if (EcoreUtil.isAncestor(this, newLikeEscape))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newLikeEscape != null)
+                msgs = ((InternalEObject)newLikeEscape).eInverseAdd(this, SQLQueryModelPackage.PREDICATE_LIKE__ESCAPE_VALUE_EXPR, PredicateLike.class, msgs);
+            msgs = basicSetLikeEscape(newLikeEscape, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_ESCAPE, newLikeEscape, newLikeEscape));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public ValueExpressionLabeledDuration getValueExprLabeledDuration() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_LABELED_DURATION) return null;
+        return (ValueExpressionLabeledDuration)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetValueExprLabeledDuration(ValueExpressionLabeledDuration newValueExprLabeledDuration, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newValueExprLabeledDuration, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_LABELED_DURATION, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueExprLabeledDuration(ValueExpressionLabeledDuration newValueExprLabeledDuration) {
+        if (newValueExprLabeledDuration != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_LABELED_DURATION && newValueExprLabeledDuration != null)) {
+            if (EcoreUtil.isAncestor(this, newValueExprLabeledDuration))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newValueExprLabeledDuration != null)
+                msgs = ((InternalEObject)newValueExprLabeledDuration).eInverseAdd(this, SQLQueryModelPackage.VALUE_EXPRESSION_LABELED_DURATION__VALUE_EXPR, ValueExpressionLabeledDuration.class, msgs);
+            msgs = basicSetValueExprLabeledDuration(newValueExprLabeledDuration, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_LABELED_DURATION, newValueExprLabeledDuration, newValueExprLabeledDuration));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public ValueExpressionNested getNest() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__NEST) return null;
+        return (ValueExpressionNested)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetNest(ValueExpressionNested newNest, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newNest, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__NEST, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void setNest(ValueExpressionNested newNest) {
+        if (newNest != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__NEST && newNest != null)) {
+            if (EcoreUtil.isAncestor(this, newNest))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newNest != null)
+                msgs = ((InternalEObject)newNest).eInverseAdd(this, SQLQueryModelPackage.VALUE_EXPRESSION_NESTED__NESTED_VALUE_EXPR, ValueExpressionNested.class, msgs);
+            msgs = basicSetNest(newNest, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__NEST, newNest, newNest));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public UpdateSourceExprList getUpdateSourceExprList() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__UPDATE_SOURCE_EXPR_LIST) return null;
+        return (UpdateSourceExprList)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetUpdateSourceExprList(UpdateSourceExprList newUpdateSourceExprList, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newUpdateSourceExprList, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__UPDATE_SOURCE_EXPR_LIST, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void setUpdateSourceExprList(UpdateSourceExprList newUpdateSourceExprList) {
+        if (newUpdateSourceExprList != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__UPDATE_SOURCE_EXPR_LIST && newUpdateSourceExprList != null)) {
+            if (EcoreUtil.isAncestor(this, newUpdateSourceExprList))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newUpdateSourceExprList != null)
+                msgs = ((InternalEObject)newUpdateSourceExprList).eInverseAdd(this, SQLQueryModelPackage.UPDATE_SOURCE_EXPR_LIST__VALUE_EXPR_LIST, UpdateSourceExprList.class, msgs);
+            msgs = basicSetUpdateSourceExprList(newUpdateSourceExprList, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__UPDATE_SOURCE_EXPR_LIST, newUpdateSourceExprList, newUpdateSourceExprList));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public TableFunction getTableFunction() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__TABLE_FUNCTION) return null;
+        return (TableFunction)eContainer();
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetTableFunction(TableFunction newTableFunction, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newTableFunction, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__TABLE_FUNCTION, msgs);
+        return msgs;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setTableFunction(TableFunction newTableFunction) {
+        if (newTableFunction != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__TABLE_FUNCTION && newTableFunction != null)) {
+            if (EcoreUtil.isAncestor(this, newTableFunction))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newTableFunction != null)
+                msgs = ((InternalEObject)newTableFunction).eInverseAdd(this, SQLQueryModelPackage.TABLE_FUNCTION__PARAMETER_LIST, TableFunction.class, msgs);
+            msgs = basicSetTableFunction(newTableFunction, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__TABLE_FUNCTION, newTableFunction, newTableFunction));
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public ValueExpressionRow getValueExprRow() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_ROW) return null;
+        return (ValueExpressionRow)eContainer();
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetValueExprRow(ValueExpressionRow newValueExprRow, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newValueExprRow, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_ROW, msgs);
+        return msgs;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueExprRow(ValueExpressionRow newValueExprRow) {
+        if (newValueExprRow != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_ROW && newValueExprRow != null)) {
+            if (EcoreUtil.isAncestor(this, newValueExprRow))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newValueExprRow != null)
+                msgs = ((InternalEObject)newValueExprRow).eInverseAdd(this, SQLQueryModelPackage.VALUE_EXPRESSION_ROW__VALUE_EXPR_LIST, ValueExpressionRow.class, msgs);
+            msgs = basicSetValueExprRow(newValueExprRow, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_ROW, newValueExprRow, newValueExprRow));
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public CallStatement getCallStatement() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__CALL_STATEMENT) return null;
+        return (CallStatement)eContainer();
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetCallStatement(CallStatement newCallStatement, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newCallStatement, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__CALL_STATEMENT, msgs);
+        return msgs;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setCallStatement(CallStatement newCallStatement) {
+        if (newCallStatement != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__CALL_STATEMENT && newCallStatement != null)) {
+            if (EcoreUtil.isAncestor(this, newCallStatement))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newCallStatement != null)
+                msgs = ((InternalEObject)newCallStatement).eInverseAdd(this, SQLQueryModelPackage.CALL_STATEMENT__ARGUMENT_LIST, CallStatement.class, msgs);
+            msgs = basicSetCallStatement(newCallStatement, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__CALL_STATEMENT, newCallStatement, newCallStatement));
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUES_ROW:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetValuesRow((ValuesRow)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__ORDER_BY_VALUE_EXPR:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetOrderByValueExpr((OrderByValueExpression)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__RESULT_COLUMN:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetResultColumn((ResultColumn)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_RIGHT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetBasicRight((PredicateBasic)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_LEFT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetBasicLeft((PredicateBasic)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_PATTERN:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetLikePattern((PredicateLike)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_MATCHING:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetLikeMatching((PredicateLike)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__PREDICATE_NULL:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetPredicateNull((PredicateIsNull)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_RIGHT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetInValueListRight((PredicateInValueList)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_LEFT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetInValueListLeft((PredicateInValueList)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_ROW_SELECT_LEFT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetInValueRowSelectLeft((PredicateInValueRowSelect)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_SELECT_LEFT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetInValueSelectLeft((PredicateInValueSelect)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_ROW_SELECT_LEFT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetQuantifiedRowSelectLeft((PredicateQuantifiedRowSelect)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_VALUE_SELECT_LEFT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetQuantifiedValueSelectLeft((PredicateQuantifiedValueSelect)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_LEFT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetBetweenLeft((PredicateBetween)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT1:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetBetweenRight1((PredicateBetween)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT2:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetBetweenRight2((PredicateBetween)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CAST:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetValueExprCast((ValueExpressionCast)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_FUNCTION:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetValueExprFunction((ValueExpressionFunction)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_LEFT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetValueExprCombinedLeft((ValueExpressionCombined)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_RIGHT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetValueExprCombinedRight((ValueExpressionCombined)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__GROUPING_EXPR:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetGroupingExpr((GroupingExpression)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_ELSE:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetValueExprCaseElse((ValueExpressionCaseElse)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetValueExprCaseSimple((ValueExpressionCaseSimple)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetValueExprCaseSimpleContentWhen((ValueExpressionCaseSimpleContent)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetValueExprCaseSimpleContentResult((ValueExpressionCaseSimpleContent)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SEARCH_CONTENT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetValueExprCaseSearchContent((ValueExpressionCaseSearchContent)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_ESCAPE:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetLikeEscape((PredicateLike)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_LABELED_DURATION:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetValueExprLabeledDuration((ValueExpressionLabeledDuration)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__NEST:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetNest((ValueExpressionNested)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__UPDATE_SOURCE_EXPR_LIST:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetUpdateSourceExprList((UpdateSourceExprList)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__TABLE_FUNCTION:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetTableFunction((TableFunction)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_ROW:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetValueExprRow((ValueExpressionRow)otherEnd, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__CALL_STATEMENT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetCallStatement((CallStatement)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DATA_TYPE:
+                return basicSetDataType(null, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUES_ROW:
+                return basicSetValuesRow(null, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__ORDER_BY_VALUE_EXPR:
+                return basicSetOrderByValueExpr(null, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__RESULT_COLUMN:
+                return basicSetResultColumn(null, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_RIGHT:
+                return basicSetBasicRight(null, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_LEFT:
+                return basicSetBasicLeft(null, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_PATTERN:
+                return basicSetLikePattern(null, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_MATCHING:
+                return basicSetLikeMatching(null, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__PREDICATE_NULL:
+                return basicSetPredicateNull(null, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_RIGHT:
+                return basicSetInValueListRight(null, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_LEFT:
+                return basicSetInValueListLeft(null, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_ROW_SELECT_LEFT:
+                return basicSetInValueRowSelectLeft(null, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_SELECT_LEFT:
+                return basicSetInValueSelectLeft(null, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_ROW_SELECT_LEFT:
+                return basicSetQuantifiedRowSelectLeft(null, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_VALUE_SELECT_LEFT:
+                return basicSetQuantifiedValueSelectLeft(null, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_LEFT:
+                return basicSetBetweenLeft(null, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT1:
+                return basicSetBetweenRight1(null, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT2:
+                return basicSetBetweenRight2(null, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CAST:
+                return basicSetValueExprCast(null, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_FUNCTION:
+                return basicSetValueExprFunction(null, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_LEFT:
+                return basicSetValueExprCombinedLeft(null, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_RIGHT:
+                return basicSetValueExprCombinedRight(null, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__GROUPING_EXPR:
+                return basicSetGroupingExpr(null, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_ELSE:
+                return basicSetValueExprCaseElse(null, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE:
+                return basicSetValueExprCaseSimple(null, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN:
+                return basicSetValueExprCaseSimpleContentWhen(null, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT:
+                return basicSetValueExprCaseSimpleContentResult(null, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SEARCH_CONTENT:
+                return basicSetValueExprCaseSearchContent(null, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_ESCAPE:
+                return basicSetLikeEscape(null, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_LABELED_DURATION:
+                return basicSetValueExprLabeledDuration(null, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__NEST:
+                return basicSetNest(null, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__UPDATE_SOURCE_EXPR_LIST:
+                return basicSetUpdateSourceExprList(null, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__TABLE_FUNCTION:
+                return basicSetTableFunction(null, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_ROW:
+                return basicSetValueExprRow(null, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__CALL_STATEMENT:
+                return basicSetCallStatement(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUES_ROW:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.VALUES_ROW__EXPR_LIST, ValuesRow.class, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__ORDER_BY_VALUE_EXPR:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.ORDER_BY_VALUE_EXPRESSION__VALUE_EXPR, OrderByValueExpression.class, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__RESULT_COLUMN:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.RESULT_COLUMN__VALUE_EXPR, ResultColumn.class, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_RIGHT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.PREDICATE_BASIC__RIGHT_VALUE_EXPR, PredicateBasic.class, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_LEFT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.PREDICATE_BASIC__LEFT_VALUE_EXPR, PredicateBasic.class, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_PATTERN:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.PREDICATE_LIKE__PATTERN_VALUE_EXPR, PredicateLike.class, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_MATCHING:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.PREDICATE_LIKE__MATCHING_VALUE_EXPR, PredicateLike.class, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__PREDICATE_NULL:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.PREDICATE_IS_NULL__VALUE_EXPR, PredicateIsNull.class, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_RIGHT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.PREDICATE_IN_VALUE_LIST__VALUE_EXPR_LIST, PredicateInValueList.class, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_LEFT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.PREDICATE_IN_VALUE_LIST__VALUE_EXPR, PredicateInValueList.class, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_ROW_SELECT_LEFT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.PREDICATE_IN_VALUE_ROW_SELECT__VALUE_EXPR_LIST, PredicateInValueRowSelect.class, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_SELECT_LEFT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.PREDICATE_IN_VALUE_SELECT__VALUE_EXPR, PredicateInValueSelect.class, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_ROW_SELECT_LEFT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.PREDICATE_QUANTIFIED_ROW_SELECT__VALUE_EXPR_LIST, PredicateQuantifiedRowSelect.class, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_VALUE_SELECT_LEFT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.PREDICATE_QUANTIFIED_VALUE_SELECT__VALUE_EXPR, PredicateQuantifiedValueSelect.class, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_LEFT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.PREDICATE_BETWEEN__LEFT_VALUE_EXPR, PredicateBetween.class, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT1:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.PREDICATE_BETWEEN__RIGHT_VALUE_EXPR1, PredicateBetween.class, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT2:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.PREDICATE_BETWEEN__RIGHT_VALUE_EXPR2, PredicateBetween.class, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CAST:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.VALUE_EXPRESSION_CAST__VALUE_EXPR, ValueExpressionCast.class, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_FUNCTION:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__PARAMETER_LIST, ValueExpressionFunction.class, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_LEFT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.VALUE_EXPRESSION_COMBINED__LEFT_VALUE_EXPR, ValueExpressionCombined.class, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_RIGHT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.VALUE_EXPRESSION_COMBINED__RIGHT_VALUE_EXPR, ValueExpressionCombined.class, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__GROUPING_EXPR:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.GROUPING_EXPRESSION__VALUE_EXPR, GroupingExpression.class, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_ELSE:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.VALUE_EXPRESSION_CASE_ELSE__VALUE_EXPR, ValueExpressionCaseElse.class, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE__VALUE_EXPR, ValueExpressionCaseSimple.class, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__WHEN_VALUE_EXPR, ValueExpressionCaseSimpleContent.class, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__RESULT_VALUE_EXPR, ValueExpressionCaseSimpleContent.class, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SEARCH_CONTENT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH_CONTENT__VALUE_EXPR, ValueExpressionCaseSearchContent.class, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_ESCAPE:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.PREDICATE_LIKE__ESCAPE_VALUE_EXPR, PredicateLike.class, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_LABELED_DURATION:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.VALUE_EXPRESSION_LABELED_DURATION__VALUE_EXPR, ValueExpressionLabeledDuration.class, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__NEST:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.VALUE_EXPRESSION_NESTED__NESTED_VALUE_EXPR, ValueExpressionNested.class, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__UPDATE_SOURCE_EXPR_LIST:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.UPDATE_SOURCE_EXPR_LIST__VALUE_EXPR_LIST, UpdateSourceExprList.class, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__TABLE_FUNCTION:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.TABLE_FUNCTION__PARAMETER_LIST, TableFunction.class, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_ROW:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.VALUE_EXPRESSION_ROW__VALUE_EXPR_LIST, ValueExpressionRow.class, msgs);
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__CALL_STATEMENT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.CALL_STATEMENT__ARGUMENT_LIST, CallStatement.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__UNARY_OPERATOR:
+                return getUnaryOperator();
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DATA_TYPE:
+                return getDataType();
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUES_ROW:
+                return getValuesRow();
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__ORDER_BY_VALUE_EXPR:
+                return getOrderByValueExpr();
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__RESULT_COLUMN:
+                return getResultColumn();
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_RIGHT:
+                return getBasicRight();
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_LEFT:
+                return getBasicLeft();
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_PATTERN:
+                return getLikePattern();
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_MATCHING:
+                return getLikeMatching();
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__PREDICATE_NULL:
+                return getPredicateNull();
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_RIGHT:
+                return getInValueListRight();
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_LEFT:
+                return getInValueListLeft();
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_ROW_SELECT_LEFT:
+                return getInValueRowSelectLeft();
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_SELECT_LEFT:
+                return getInValueSelectLeft();
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_ROW_SELECT_LEFT:
+                return getQuantifiedRowSelectLeft();
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_VALUE_SELECT_LEFT:
+                return getQuantifiedValueSelectLeft();
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_LEFT:
+                return getBetweenLeft();
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT1:
+                return getBetweenRight1();
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT2:
+                return getBetweenRight2();
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CAST:
+                return getValueExprCast();
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_FUNCTION:
+                return getValueExprFunction();
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_LEFT:
+                return getValueExprCombinedLeft();
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_RIGHT:
+                return getValueExprCombinedRight();
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__GROUPING_EXPR:
+                return getGroupingExpr();
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_ELSE:
+                return getValueExprCaseElse();
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE:
+                return getValueExprCaseSimple();
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN:
+                return getValueExprCaseSimpleContentWhen();
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT:
+                return getValueExprCaseSimpleContentResult();
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SEARCH_CONTENT:
+                return getValueExprCaseSearchContent();
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_ESCAPE:
+                return getLikeEscape();
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_LABELED_DURATION:
+                return getValueExprLabeledDuration();
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__NEST:
+                return getNest();
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__UPDATE_SOURCE_EXPR_LIST:
+                return getUpdateSourceExprList();
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__TABLE_FUNCTION:
+                return getTableFunction();
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_ROW:
+                return getValueExprRow();
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__CALL_STATEMENT:
+                return getCallStatement();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__UNARY_OPERATOR:
+                setUnaryOperator((ValueExpressionUnaryOperator)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DATA_TYPE:
+                setDataType((DataType)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUES_ROW:
+                setValuesRow((ValuesRow)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__ORDER_BY_VALUE_EXPR:
+                setOrderByValueExpr((OrderByValueExpression)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__RESULT_COLUMN:
+                setResultColumn((ResultColumn)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_RIGHT:
+                setBasicRight((PredicateBasic)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_LEFT:
+                setBasicLeft((PredicateBasic)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_PATTERN:
+                setLikePattern((PredicateLike)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_MATCHING:
+                setLikeMatching((PredicateLike)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__PREDICATE_NULL:
+                setPredicateNull((PredicateIsNull)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_RIGHT:
+                setInValueListRight((PredicateInValueList)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_LEFT:
+                setInValueListLeft((PredicateInValueList)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_ROW_SELECT_LEFT:
+                setInValueRowSelectLeft((PredicateInValueRowSelect)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_SELECT_LEFT:
+                setInValueSelectLeft((PredicateInValueSelect)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_ROW_SELECT_LEFT:
+                setQuantifiedRowSelectLeft((PredicateQuantifiedRowSelect)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_VALUE_SELECT_LEFT:
+                setQuantifiedValueSelectLeft((PredicateQuantifiedValueSelect)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_LEFT:
+                setBetweenLeft((PredicateBetween)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT1:
+                setBetweenRight1((PredicateBetween)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT2:
+                setBetweenRight2((PredicateBetween)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CAST:
+                setValueExprCast((ValueExpressionCast)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_FUNCTION:
+                setValueExprFunction((ValueExpressionFunction)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_LEFT:
+                setValueExprCombinedLeft((ValueExpressionCombined)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_RIGHT:
+                setValueExprCombinedRight((ValueExpressionCombined)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__GROUPING_EXPR:
+                setGroupingExpr((GroupingExpression)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_ELSE:
+                setValueExprCaseElse((ValueExpressionCaseElse)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE:
+                setValueExprCaseSimple((ValueExpressionCaseSimple)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN:
+                setValueExprCaseSimpleContentWhen((ValueExpressionCaseSimpleContent)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT:
+                setValueExprCaseSimpleContentResult((ValueExpressionCaseSimpleContent)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SEARCH_CONTENT:
+                setValueExprCaseSearchContent((ValueExpressionCaseSearchContent)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_ESCAPE:
+                setLikeEscape((PredicateLike)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_LABELED_DURATION:
+                setValueExprLabeledDuration((ValueExpressionLabeledDuration)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__NEST:
+                setNest((ValueExpressionNested)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__UPDATE_SOURCE_EXPR_LIST:
+                setUpdateSourceExprList((UpdateSourceExprList)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__TABLE_FUNCTION:
+                setTableFunction((TableFunction)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_ROW:
+                setValueExprRow((ValueExpressionRow)newValue);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__CALL_STATEMENT:
+                setCallStatement((CallStatement)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__UNARY_OPERATOR:
+                setUnaryOperator(UNARY_OPERATOR_EDEFAULT);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DATA_TYPE:
+                setDataType((DataType)null);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUES_ROW:
+                setValuesRow((ValuesRow)null);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__ORDER_BY_VALUE_EXPR:
+                setOrderByValueExpr((OrderByValueExpression)null);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__RESULT_COLUMN:
+                setResultColumn((ResultColumn)null);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_RIGHT:
+                setBasicRight((PredicateBasic)null);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_LEFT:
+                setBasicLeft((PredicateBasic)null);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_PATTERN:
+                setLikePattern((PredicateLike)null);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_MATCHING:
+                setLikeMatching((PredicateLike)null);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__PREDICATE_NULL:
+                setPredicateNull((PredicateIsNull)null);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_RIGHT:
+                setInValueListRight((PredicateInValueList)null);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_LEFT:
+                setInValueListLeft((PredicateInValueList)null);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_ROW_SELECT_LEFT:
+                setInValueRowSelectLeft((PredicateInValueRowSelect)null);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_SELECT_LEFT:
+                setInValueSelectLeft((PredicateInValueSelect)null);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_ROW_SELECT_LEFT:
+                setQuantifiedRowSelectLeft((PredicateQuantifiedRowSelect)null);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_VALUE_SELECT_LEFT:
+                setQuantifiedValueSelectLeft((PredicateQuantifiedValueSelect)null);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_LEFT:
+                setBetweenLeft((PredicateBetween)null);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT1:
+                setBetweenRight1((PredicateBetween)null);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT2:
+                setBetweenRight2((PredicateBetween)null);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CAST:
+                setValueExprCast((ValueExpressionCast)null);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_FUNCTION:
+                setValueExprFunction((ValueExpressionFunction)null);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_LEFT:
+                setValueExprCombinedLeft((ValueExpressionCombined)null);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_RIGHT:
+                setValueExprCombinedRight((ValueExpressionCombined)null);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__GROUPING_EXPR:
+                setGroupingExpr((GroupingExpression)null);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_ELSE:
+                setValueExprCaseElse((ValueExpressionCaseElse)null);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE:
+                setValueExprCaseSimple((ValueExpressionCaseSimple)null);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN:
+                setValueExprCaseSimpleContentWhen((ValueExpressionCaseSimpleContent)null);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT:
+                setValueExprCaseSimpleContentResult((ValueExpressionCaseSimpleContent)null);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SEARCH_CONTENT:
+                setValueExprCaseSearchContent((ValueExpressionCaseSearchContent)null);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_ESCAPE:
+                setLikeEscape((PredicateLike)null);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_LABELED_DURATION:
+                setValueExprLabeledDuration((ValueExpressionLabeledDuration)null);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__NEST:
+                setNest((ValueExpressionNested)null);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__UPDATE_SOURCE_EXPR_LIST:
+                setUpdateSourceExprList((UpdateSourceExprList)null);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__TABLE_FUNCTION:
+                setTableFunction((TableFunction)null);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_ROW:
+                setValueExprRow((ValueExpressionRow)null);
+                return;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__CALL_STATEMENT:
+                setCallStatement((CallStatement)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__UNARY_OPERATOR:
+                return unaryOperator != UNARY_OPERATOR_EDEFAULT;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DATA_TYPE:
+                return dataType != null;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUES_ROW:
+                return getValuesRow() != null;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__ORDER_BY_VALUE_EXPR:
+                return getOrderByValueExpr() != null;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__RESULT_COLUMN:
+                return getResultColumn() != null;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_RIGHT:
+                return getBasicRight() != null;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_LEFT:
+                return getBasicLeft() != null;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_PATTERN:
+                return getLikePattern() != null;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_MATCHING:
+                return getLikeMatching() != null;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__PREDICATE_NULL:
+                return getPredicateNull() != null;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_RIGHT:
+                return getInValueListRight() != null;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_LEFT:
+                return getInValueListLeft() != null;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_ROW_SELECT_LEFT:
+                return getInValueRowSelectLeft() != null;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_SELECT_LEFT:
+                return getInValueSelectLeft() != null;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_ROW_SELECT_LEFT:
+                return getQuantifiedRowSelectLeft() != null;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_VALUE_SELECT_LEFT:
+                return getQuantifiedValueSelectLeft() != null;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_LEFT:
+                return getBetweenLeft() != null;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT1:
+                return getBetweenRight1() != null;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT2:
+                return getBetweenRight2() != null;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CAST:
+                return getValueExprCast() != null;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_FUNCTION:
+                return getValueExprFunction() != null;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_LEFT:
+                return getValueExprCombinedLeft() != null;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_RIGHT:
+                return getValueExprCombinedRight() != null;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__GROUPING_EXPR:
+                return getGroupingExpr() != null;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_ELSE:
+                return getValueExprCaseElse() != null;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE:
+                return getValueExprCaseSimple() != null;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN:
+                return getValueExprCaseSimpleContentWhen() != null;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT:
+                return getValueExprCaseSimpleContentResult() != null;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SEARCH_CONTENT:
+                return getValueExprCaseSearchContent() != null;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_ESCAPE:
+                return getLikeEscape() != null;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_LABELED_DURATION:
+                return getValueExprLabeledDuration() != null;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__NEST:
+                return getNest() != null;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__UPDATE_SOURCE_EXPR_LIST:
+                return getUpdateSourceExprList() != null;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__TABLE_FUNCTION:
+                return getTableFunction() != null;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_ROW:
+                return getValueExprRow() != null;
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__CALL_STATEMENT:
+                return getCallStatement() != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated NOT
+     */
+    public String getSQL() {
+        return super.getSQL();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (unaryOperator: ");
+        result.append(unaryOperator);
+        result.append(')');
+        return result.toString();
+    }
+
+} //SQLValueExpressionImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QueryValuesImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QueryValuesImpl.java
new file mode 100644
index 0000000..320bc0c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/QueryValuesImpl.java
@@ -0,0 +1,167 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: QueryValuesImpl.java,v 1.5 2007/02/08 17:00:32 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.PredicateExists;
+import org.eclipse.datatools.modelbase.sql.query.QueryCombined;
+import org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryValues;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.TableCorrelation;
+import org.eclipse.datatools.modelbase.sql.query.TableJoined;
+import org.eclipse.datatools.modelbase.sql.query.TableNested;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceQuery;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+import org.eclipse.datatools.modelbase.sql.query.WithTableSpecification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Values</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.QueryValuesImpl#getValuesRowList <em>Values Row List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class QueryValuesImpl extends QueryExpressionBodyImpl implements QueryValues {
+	/**
+     * The cached value of the '{@link #getValuesRowList() <em>Values Row List</em>}' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getValuesRowList()
+     * @generated
+     * @ordered
+     */
+    protected EList valuesRowList;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected QueryValuesImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.QUERY_VALUES;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getValuesRowList() {
+        if (valuesRowList == null) {
+            valuesRowList = new EObjectContainmentWithInverseEList(ValuesRow.class, this, SQLQueryModelPackage.QUERY_VALUES__VALUES_ROW_LIST, SQLQueryModelPackage.VALUES_ROW__QUERY_VALUES);
+        }
+        return valuesRowList;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_VALUES__VALUES_ROW_LIST:
+                return ((InternalEList)getValuesRowList()).basicAdd(otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_VALUES__VALUES_ROW_LIST:
+                return ((InternalEList)getValuesRowList()).basicRemove(otherEnd, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_VALUES__VALUES_ROW_LIST:
+                return getValuesRowList();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_VALUES__VALUES_ROW_LIST:
+                getValuesRowList().clear();
+                getValuesRowList().addAll((Collection)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_VALUES__VALUES_ROW_LIST:
+                getValuesRowList().clear();
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.QUERY_VALUES__VALUES_ROW_LIST:
+                return valuesRowList != null && !valuesRowList.isEmpty();
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //SQLQueryValuesImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ResultColumnImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ResultColumnImpl.java
new file mode 100644
index 0000000..fbf2bb0
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ResultColumnImpl.java
@@ -0,0 +1,232 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ResultColumnImpl.java,v 1.5 2007/02/08 17:00:27 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.OrderByResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Result Column</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.ResultColumnImpl#getValueExpr <em>Value Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.ResultColumnImpl#getOrderByResultCol <em>Order By Result Col</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ResultColumnImpl extends QueryResultSpecificationImpl implements ResultColumn {
+	/**
+     * The cached value of the '{@link #getValueExpr() <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getValueExpr()
+     * @generated
+     * @ordered
+     */
+    protected QueryValueExpression valueExpr;
+
+	/**
+     * The cached value of the '{@link #getOrderByResultCol() <em>Order By Result Col</em>}' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getOrderByResultCol()
+     * @generated
+     * @ordered
+     */
+    protected EList orderByResultCol;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected ResultColumnImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.RESULT_COLUMN;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryValueExpression getValueExpr() {
+        return valueExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetValueExpr(QueryValueExpression newValueExpr, NotificationChain msgs) {
+        QueryValueExpression oldValueExpr = valueExpr;
+        valueExpr = newValueExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.RESULT_COLUMN__VALUE_EXPR, oldValueExpr, newValueExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueExpr(QueryValueExpression newValueExpr) {
+        if (newValueExpr != valueExpr) {
+            NotificationChain msgs = null;
+            if (valueExpr != null)
+                msgs = ((InternalEObject)valueExpr).eInverseRemove(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__RESULT_COLUMN, QueryValueExpression.class, msgs);
+            if (newValueExpr != null)
+                msgs = ((InternalEObject)newValueExpr).eInverseAdd(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__RESULT_COLUMN, QueryValueExpression.class, msgs);
+            msgs = basicSetValueExpr(newValueExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.RESULT_COLUMN__VALUE_EXPR, newValueExpr, newValueExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getOrderByResultCol() {
+        if (orderByResultCol == null) {
+            orderByResultCol = new EObjectWithInverseResolvingEList(OrderByResultColumn.class, this, SQLQueryModelPackage.RESULT_COLUMN__ORDER_BY_RESULT_COL, SQLQueryModelPackage.ORDER_BY_RESULT_COLUMN__RESULT_COL);
+        }
+        return orderByResultCol;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.RESULT_COLUMN__VALUE_EXPR:
+                if (valueExpr != null)
+                    msgs = ((InternalEObject)valueExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.RESULT_COLUMN__VALUE_EXPR, null, msgs);
+                return basicSetValueExpr((QueryValueExpression)otherEnd, msgs);
+            case SQLQueryModelPackage.RESULT_COLUMN__ORDER_BY_RESULT_COL:
+                return ((InternalEList)getOrderByResultCol()).basicAdd(otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.RESULT_COLUMN__VALUE_EXPR:
+                return basicSetValueExpr(null, msgs);
+            case SQLQueryModelPackage.RESULT_COLUMN__ORDER_BY_RESULT_COL:
+                return ((InternalEList)getOrderByResultCol()).basicRemove(otherEnd, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.RESULT_COLUMN__VALUE_EXPR:
+                return getValueExpr();
+            case SQLQueryModelPackage.RESULT_COLUMN__ORDER_BY_RESULT_COL:
+                return getOrderByResultCol();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.RESULT_COLUMN__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)newValue);
+                return;
+            case SQLQueryModelPackage.RESULT_COLUMN__ORDER_BY_RESULT_COL:
+                getOrderByResultCol().clear();
+                getOrderByResultCol().addAll((Collection)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.RESULT_COLUMN__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)null);
+                return;
+            case SQLQueryModelPackage.RESULT_COLUMN__ORDER_BY_RESULT_COL:
+                getOrderByResultCol().clear();
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.RESULT_COLUMN__VALUE_EXPR:
+                return valueExpr != null;
+            case SQLQueryModelPackage.RESULT_COLUMN__ORDER_BY_RESULT_COL:
+                return orderByResultCol != null && !orderByResultCol.isEmpty();
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //SQLResultColumnImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ResultTableAllColumnsImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ResultTableAllColumnsImpl.java
new file mode 100644
index 0000000..06387c7
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ResultTableAllColumnsImpl.java
@@ -0,0 +1,209 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ResultTableAllColumnsImpl.java,v 1.5 2007/02/08 17:00:26 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.ResultTableAllColumns;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.TableExpression;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Result Column All</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.ResultTableAllColumnsImpl#getTableExpr <em>Table Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ResultTableAllColumnsImpl extends QueryResultSpecificationImpl implements ResultTableAllColumns {
+	/**
+     * The cached value of the '{@link #getTableExpr() <em>Table Expr</em>}' reference.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @see #getTableExpr()
+     * @generated
+     * @ordered
+     */
+  protected TableExpression tableExpr;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected ResultTableAllColumnsImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.RESULT_TABLE_ALL_COLUMNS;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public TableExpression getTableExpr() {
+        if (tableExpr != null && tableExpr.eIsProxy()) {
+            InternalEObject oldTableExpr = (InternalEObject)tableExpr;
+            tableExpr = (TableExpression)eResolveProxy(oldTableExpr);
+            if (tableExpr != oldTableExpr) {
+                if (eNotificationRequired())
+                    eNotify(new ENotificationImpl(this, Notification.RESOLVE, SQLQueryModelPackage.RESULT_TABLE_ALL_COLUMNS__TABLE_EXPR, oldTableExpr, tableExpr));
+            }
+        }
+        return tableExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public TableExpression basicGetTableExpr() {
+        return tableExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public NotificationChain basicSetTableExpr(TableExpression newTableExpr, NotificationChain msgs) {
+        TableExpression oldTableExpr = tableExpr;
+        tableExpr = newTableExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.RESULT_TABLE_ALL_COLUMNS__TABLE_EXPR, oldTableExpr, newTableExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void setTableExpr(TableExpression newTableExpr) {
+        if (newTableExpr != tableExpr) {
+            NotificationChain msgs = null;
+            if (tableExpr != null)
+                msgs = ((InternalEObject)tableExpr).eInverseRemove(this, SQLQueryModelPackage.TABLE_EXPRESSION__RESULT_TABLE_ALL_COLUMNS, TableExpression.class, msgs);
+            if (newTableExpr != null)
+                msgs = ((InternalEObject)newTableExpr).eInverseAdd(this, SQLQueryModelPackage.TABLE_EXPRESSION__RESULT_TABLE_ALL_COLUMNS, TableExpression.class, msgs);
+            msgs = basicSetTableExpr(newTableExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.RESULT_TABLE_ALL_COLUMNS__TABLE_EXPR, newTableExpr, newTableExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.RESULT_TABLE_ALL_COLUMNS__TABLE_EXPR:
+                if (tableExpr != null)
+                    msgs = ((InternalEObject)tableExpr).eInverseRemove(this, SQLQueryModelPackage.TABLE_EXPRESSION__RESULT_TABLE_ALL_COLUMNS, TableExpression.class, msgs);
+                return basicSetTableExpr((TableExpression)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.RESULT_TABLE_ALL_COLUMNS__TABLE_EXPR:
+                return basicSetTableExpr(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.RESULT_TABLE_ALL_COLUMNS__TABLE_EXPR:
+                if (resolve) return getTableExpr();
+                return basicGetTableExpr();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.RESULT_TABLE_ALL_COLUMNS__TABLE_EXPR:
+                setTableExpr((TableExpression)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.RESULT_TABLE_ALL_COLUMNS__TABLE_EXPR:
+                setTableExpr((TableExpression)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.RESULT_TABLE_ALL_COLUMNS__TABLE_EXPR:
+                return tableExpr != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //SQLResultColumnAllImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/SQLQueryModelFactoryImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/SQLQueryModelFactoryImpl.java
new file mode 100644
index 0000000..8285537
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/SQLQueryModelFactoryImpl.java
@@ -0,0 +1,1236 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SQLQueryModelFactoryImpl.java,v 1.5 2010/02/25 01:57:24 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import org.eclipse.datatools.modelbase.sql.query.*;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SQLQueryModelFactoryImpl extends EFactoryImpl implements SQLQueryModelFactory {
+	/**
+     * Creates the default factory implementation.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public static SQLQueryModelFactory init() {
+        try {
+            SQLQueryModelFactory theSQLQueryModelFactory = (SQLQueryModelFactory)EPackage.Registry.INSTANCE.getEFactory("http:///org/eclipse/datatools/modelbase/sql/query/SQLQueryModel.ecore"); 
+            if (theSQLQueryModelFactory != null) {
+                return theSQLQueryModelFactory;
+            }
+        }
+        catch (Exception exception) {
+            EcorePlugin.INSTANCE.log(exception);
+        }
+        return new SQLQueryModelFactoryImpl();
+    }
+
+	/**
+     * Creates an instance of the factory.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public SQLQueryModelFactoryImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EObject create(EClass eClass) {
+        switch (eClass.getClassifierID()) {
+            case SQLQueryModelPackage.QUERY_DELETE_STATEMENT: return createQueryDeleteStatement();
+            case SQLQueryModelPackage.QUERY_INSERT_STATEMENT: return createQueryInsertStatement();
+            case SQLQueryModelPackage.QUERY_SELECT_STATEMENT: return createQuerySelectStatement();
+            case SQLQueryModelPackage.QUERY_UPDATE_STATEMENT: return createQueryUpdateStatement();
+            case SQLQueryModelPackage.UPDATE_ASSIGNMENT_EXPRESSION: return createUpdateAssignmentExpression();
+            case SQLQueryModelPackage.CURSOR_REFERENCE: return createCursorReference();
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT: return createQueryExpressionRoot();
+            case SQLQueryModelPackage.VALUES_ROW: return createValuesRow();
+            case SQLQueryModelPackage.QUERY_VALUES: return createQueryValues();
+            case SQLQueryModelPackage.TABLE_JOINED: return createTableJoined();
+            case SQLQueryModelPackage.WITH_TABLE_SPECIFICATION: return createWithTableSpecification();
+            case SQLQueryModelPackage.SEARCH_CONDITION_COMBINED: return createSearchConditionCombined();
+            case SQLQueryModelPackage.ORDER_BY_VALUE_EXPRESSION: return createOrderByValueExpression();
+            case SQLQueryModelPackage.QUERY_COMBINED: return createQueryCombined();
+            case SQLQueryModelPackage.QUERY_SELECT: return createQuerySelect();
+            case SQLQueryModelPackage.RESULT_TABLE_ALL_COLUMNS: return createResultTableAllColumns();
+            case SQLQueryModelPackage.RESULT_COLUMN: return createResultColumn();
+            case SQLQueryModelPackage.PREDICATE_BASIC: return createPredicateBasic();
+            case SQLQueryModelPackage.PREDICATE_BETWEEN: return createPredicateBetween();
+            case SQLQueryModelPackage.PREDICATE_EXISTS: return createPredicateExists();
+            case SQLQueryModelPackage.PREDICATE_LIKE: return createPredicateLike();
+            case SQLQueryModelPackage.PREDICATE_IS_NULL: return createPredicateIsNull();
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_VALUE_SELECT: return createPredicateQuantifiedValueSelect();
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_ROW_SELECT: return createPredicateQuantifiedRowSelect();
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_SELECT: return createPredicateInValueSelect();
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_LIST: return createPredicateInValueList();
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_ROW_SELECT: return createPredicateInValueRowSelect();
+            case SQLQueryModelPackage.VALUE_EXPRESSION_SIMPLE: return createValueExpressionSimple();
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN: return createValueExpressionColumn();
+            case SQLQueryModelPackage.VALUE_EXPRESSION_VARIABLE: return createValueExpressionVariable();
+            case SQLQueryModelPackage.VALUE_EXPRESSION_SCALAR_SELECT: return createValueExpressionScalarSelect();
+            case SQLQueryModelPackage.VALUE_EXPRESSION_LABELED_DURATION: return createValueExpressionLabeledDuration();
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CAST: return createValueExpressionCast();
+            case SQLQueryModelPackage.VALUE_EXPRESSION_NULL_VALUE: return createValueExpressionNullValue();
+            case SQLQueryModelPackage.VALUE_EXPRESSION_DEFAULT_VALUE: return createValueExpressionDefaultValue();
+            case SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION: return createValueExpressionFunction();
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COMBINED: return createValueExpressionCombined();
+            case SQLQueryModelPackage.GROUPING_SETS: return createGroupingSets();
+            case SQLQueryModelPackage.GROUPING_SETS_ELEMENT_SUBLIST: return createGroupingSetsElementSublist();
+            case SQLQueryModelPackage.GROUPING_SETS_ELEMENT_EXPRESSION: return createGroupingSetsElementExpression();
+            case SQLQueryModelPackage.SUPER_GROUP: return createSuperGroup();
+            case SQLQueryModelPackage.GROUPING_EXPRESSION: return createGroupingExpression();
+            case SQLQueryModelPackage.SUPER_GROUP_ELEMENT_SUBLIST: return createSuperGroupElementSublist();
+            case SQLQueryModelPackage.SUPER_GROUP_ELEMENT_EXPRESSION: return createSuperGroupElementExpression();
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH: return createValueExpressionCaseSearch();
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE: return createValueExpressionCaseSimple();
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_ELSE: return createValueExpressionCaseElse();
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH_CONTENT: return createValueExpressionCaseSearchContent();
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE_CONTENT: return createValueExpressionCaseSimpleContent();
+            case SQLQueryModelPackage.TABLE_IN_DATABASE: return createTableInDatabase();
+            case SQLQueryModelPackage.TABLE_FUNCTION: return createTableFunction();
+            case SQLQueryModelPackage.COLUMN_NAME: return createColumnName();
+            case SQLQueryModelPackage.TABLE_NESTED: return createTableNested();
+            case SQLQueryModelPackage.QUERY_MERGE_STATEMENT: return createQueryMergeStatement();
+            case SQLQueryModelPackage.SEARCH_CONDITION_NESTED: return createSearchConditionNested();
+            case SQLQueryModelPackage.VALUE_EXPRESSION_NESTED: return createValueExpressionNested();
+            case SQLQueryModelPackage.ORDER_BY_ORDINAL: return createOrderByOrdinal();
+            case SQLQueryModelPackage.TABLE_CORRELATION: return createTableCorrelation();
+            case SQLQueryModelPackage.UPDATE_SOURCE: return createUpdateSource();
+            case SQLQueryModelPackage.UPDATE_SOURCE_EXPR_LIST: return createUpdateSourceExprList();
+            case SQLQueryModelPackage.UPDATE_SOURCE_QUERY: return createUpdateSourceQuery();
+            case SQLQueryModelPackage.ORDER_BY_RESULT_COLUMN: return createOrderByResultColumn();
+            case SQLQueryModelPackage.WITH_TABLE_REFERENCE: return createWithTableReference();
+            case SQLQueryModelPackage.QUERY_NESTED: return createQueryNested();
+            case SQLQueryModelPackage.VALUE_EXPRESSION_ROW: return createValueExpressionRow();
+            case SQLQueryModelPackage.MERGE_TARGET_TABLE: return createMergeTargetTable();
+            case SQLQueryModelPackage.MERGE_SOURCE_TABLE: return createMergeSourceTable();
+            case SQLQueryModelPackage.MERGE_ON_CONDITION: return createMergeOnCondition();
+            case SQLQueryModelPackage.MERGE_UPDATE_SPECIFICATION: return createMergeUpdateSpecification();
+            case SQLQueryModelPackage.MERGE_INSERT_SPECIFICATION: return createMergeInsertSpecification();
+            case SQLQueryModelPackage.MERGE_OPERATION_SPECIFICATION: return createMergeOperationSpecification();
+            case SQLQueryModelPackage.UPDATE_OF_COLUMN: return createUpdateOfColumn();
+            case SQLQueryModelPackage.UPDATABILITY_EXPRESSION: return createUpdatabilityExpression();
+            case SQLQueryModelPackage.CALL_STATEMENT: return createCallStatement();
+            case SQLQueryModelPackage.PROCEDURE_REFERENCE: return createProcedureReference();
+            case SQLQueryModelPackage.TABLE_QUERY_LATERAL: return createTableQueryLateral();
+            default:
+                throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+        }
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object createFromString(EDataType eDataType, String initialValue) {
+        switch (eDataType.getClassifierID()) {
+            case SQLQueryModelPackage.SUPER_GROUP_TYPE:
+                return createSuperGroupTypeFromString(eDataType, initialValue);
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_TYPE:
+                return createPredicateQuantifiedTypeFromString(eDataType, initialValue);
+            case SQLQueryModelPackage.PREDICATE_COMPARISON_OPERATOR:
+                return createPredicateComparisonOperatorFromString(eDataType, initialValue);
+            case SQLQueryModelPackage.SEARCH_CONDITION_COMBINED_OPERATOR:
+                return createSearchConditionCombinedOperatorFromString(eDataType, initialValue);
+            case SQLQueryModelPackage.TABLE_JOINED_OPERATOR:
+                return createTableJoinedOperatorFromString(eDataType, initialValue);
+            case SQLQueryModelPackage.QUERY_COMBINED_OPERATOR:
+                return createQueryCombinedOperatorFromString(eDataType, initialValue);
+            case SQLQueryModelPackage.VALUE_EXPRESSION_UNARY_OPERATOR:
+                return createValueExpressionUnaryOperatorFromString(eDataType, initialValue);
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COMBINED_OPERATOR:
+                return createValueExpressionCombinedOperatorFromString(eDataType, initialValue);
+            case SQLQueryModelPackage.VALUE_EXPRESSION_LABELED_DURATION_TYPE:
+                return createValueExpressionLabeledDurationTypeFromString(eDataType, initialValue);
+            case SQLQueryModelPackage.NULL_ORDERING_TYPE:
+                return createNullOrderingTypeFromString(eDataType, initialValue);
+            case SQLQueryModelPackage.ORDERING_SPEC_TYPE:
+                return createOrderingSpecTypeFromString(eDataType, initialValue);
+            case SQLQueryModelPackage.UPDATABILITY_TYPE:
+                return createUpdatabilityTypeFromString(eDataType, initialValue);
+            default:
+                throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+        }
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public String convertToString(EDataType eDataType, Object instanceValue) {
+        switch (eDataType.getClassifierID()) {
+            case SQLQueryModelPackage.SUPER_GROUP_TYPE:
+                return convertSuperGroupTypeToString(eDataType, instanceValue);
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_TYPE:
+                return convertPredicateQuantifiedTypeToString(eDataType, instanceValue);
+            case SQLQueryModelPackage.PREDICATE_COMPARISON_OPERATOR:
+                return convertPredicateComparisonOperatorToString(eDataType, instanceValue);
+            case SQLQueryModelPackage.SEARCH_CONDITION_COMBINED_OPERATOR:
+                return convertSearchConditionCombinedOperatorToString(eDataType, instanceValue);
+            case SQLQueryModelPackage.TABLE_JOINED_OPERATOR:
+                return convertTableJoinedOperatorToString(eDataType, instanceValue);
+            case SQLQueryModelPackage.QUERY_COMBINED_OPERATOR:
+                return convertQueryCombinedOperatorToString(eDataType, instanceValue);
+            case SQLQueryModelPackage.VALUE_EXPRESSION_UNARY_OPERATOR:
+                return convertValueExpressionUnaryOperatorToString(eDataType, instanceValue);
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COMBINED_OPERATOR:
+                return convertValueExpressionCombinedOperatorToString(eDataType, instanceValue);
+            case SQLQueryModelPackage.VALUE_EXPRESSION_LABELED_DURATION_TYPE:
+                return convertValueExpressionLabeledDurationTypeToString(eDataType, instanceValue);
+            case SQLQueryModelPackage.NULL_ORDERING_TYPE:
+                return convertNullOrderingTypeToString(eDataType, instanceValue);
+            case SQLQueryModelPackage.ORDERING_SPEC_TYPE:
+                return convertOrderingSpecTypeToString(eDataType, instanceValue);
+            case SQLQueryModelPackage.UPDATABILITY_TYPE:
+                return convertUpdatabilityTypeToString(eDataType, instanceValue);
+            default:
+                throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+        }
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public QueryDeleteStatement createQueryDeleteStatement() {
+        QueryDeleteStatementImpl queryDeleteStatement = new QueryDeleteStatementImpl();
+        return queryDeleteStatement;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public QueryInsertStatement createQueryInsertStatement() {
+        QueryInsertStatementImpl queryInsertStatement = new QueryInsertStatementImpl();
+        return queryInsertStatement;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public QuerySelectStatement createQuerySelectStatement() {
+        QuerySelectStatementImpl querySelectStatement = new QuerySelectStatementImpl();
+        return querySelectStatement;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public QueryUpdateStatement createQueryUpdateStatement() {
+        QueryUpdateStatementImpl queryUpdateStatement = new QueryUpdateStatementImpl();
+        return queryUpdateStatement;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public UpdateAssignmentExpression createUpdateAssignmentExpression() {
+        UpdateAssignmentExpressionImpl updateAssignmentExpression = new UpdateAssignmentExpressionImpl();
+        return updateAssignmentExpression;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public CursorReference createCursorReference() {
+        CursorReferenceImpl cursorReference = new CursorReferenceImpl();
+        return cursorReference;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public QueryExpressionRoot createQueryExpressionRoot() {
+        QueryExpressionRootImpl queryExpressionRoot = new QueryExpressionRootImpl();
+        return queryExpressionRoot;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public ValuesRow createValuesRow() {
+        ValuesRowImpl valuesRow = new ValuesRowImpl();
+        return valuesRow;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public QueryValues createQueryValues() {
+        QueryValuesImpl queryValues = new QueryValuesImpl();
+        return queryValues;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public TableJoined createTableJoined() {
+        TableJoinedImpl tableJoined = new TableJoinedImpl();
+        return tableJoined;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public WithTableSpecification createWithTableSpecification() {
+        WithTableSpecificationImpl withTableSpecification = new WithTableSpecificationImpl();
+        return withTableSpecification;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public SearchConditionCombined createSearchConditionCombined() {
+        SearchConditionCombinedImpl searchConditionCombined = new SearchConditionCombinedImpl();
+        return searchConditionCombined;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public OrderByValueExpression createOrderByValueExpression() {
+        OrderByValueExpressionImpl orderByValueExpression = new OrderByValueExpressionImpl();
+        return orderByValueExpression;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public QueryCombined createQueryCombined() {
+        QueryCombinedImpl queryCombined = new QueryCombinedImpl();
+        return queryCombined;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public QuerySelect createQuerySelect() {
+        QuerySelectImpl querySelect = new QuerySelectImpl();
+        return querySelect;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public ResultTableAllColumns createResultTableAllColumns() {
+        ResultTableAllColumnsImpl resultTableAllColumns = new ResultTableAllColumnsImpl();
+        return resultTableAllColumns;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public ResultColumn createResultColumn() {
+        ResultColumnImpl resultColumn = new ResultColumnImpl();
+        return resultColumn;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public PredicateBasic createPredicateBasic() {
+        PredicateBasicImpl predicateBasic = new PredicateBasicImpl();
+        return predicateBasic;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public PredicateBetween createPredicateBetween() {
+        PredicateBetweenImpl predicateBetween = new PredicateBetweenImpl();
+        return predicateBetween;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public PredicateExists createPredicateExists() {
+        PredicateExistsImpl predicateExists = new PredicateExistsImpl();
+        return predicateExists;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public PredicateLike createPredicateLike() {
+        PredicateLikeImpl predicateLike = new PredicateLikeImpl();
+        return predicateLike;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public PredicateIsNull createPredicateIsNull() {
+        PredicateIsNullImpl predicateIsNull = new PredicateIsNullImpl();
+        return predicateIsNull;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public PredicateQuantifiedValueSelect createPredicateQuantifiedValueSelect() {
+        PredicateQuantifiedValueSelectImpl predicateQuantifiedValueSelect = new PredicateQuantifiedValueSelectImpl();
+        return predicateQuantifiedValueSelect;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public PredicateQuantifiedRowSelect createPredicateQuantifiedRowSelect() {
+        PredicateQuantifiedRowSelectImpl predicateQuantifiedRowSelect = new PredicateQuantifiedRowSelectImpl();
+        return predicateQuantifiedRowSelect;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public PredicateInValueSelect createPredicateInValueSelect() {
+        PredicateInValueSelectImpl predicateInValueSelect = new PredicateInValueSelectImpl();
+        return predicateInValueSelect;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public PredicateInValueList createPredicateInValueList() {
+        PredicateInValueListImpl predicateInValueList = new PredicateInValueListImpl();
+        return predicateInValueList;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public PredicateInValueRowSelect createPredicateInValueRowSelect() {
+        PredicateInValueRowSelectImpl predicateInValueRowSelect = new PredicateInValueRowSelectImpl();
+        return predicateInValueRowSelect;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public ValueExpressionSimple createValueExpressionSimple() {
+        ValueExpressionSimpleImpl valueExpressionSimple = new ValueExpressionSimpleImpl();
+        return valueExpressionSimple;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public ValueExpressionColumn createValueExpressionColumn() {
+        ValueExpressionColumnImpl valueExpressionColumn = new ValueExpressionColumnImpl();
+        return valueExpressionColumn;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public ValueExpressionVariable createValueExpressionVariable() {
+        ValueExpressionVariableImpl valueExpressionVariable = new ValueExpressionVariableImpl();
+        return valueExpressionVariable;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public ValueExpressionScalarSelect createValueExpressionScalarSelect() {
+        ValueExpressionScalarSelectImpl valueExpressionScalarSelect = new ValueExpressionScalarSelectImpl();
+        return valueExpressionScalarSelect;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public ValueExpressionLabeledDuration createValueExpressionLabeledDuration() {
+        ValueExpressionLabeledDurationImpl valueExpressionLabeledDuration = new ValueExpressionLabeledDurationImpl();
+        return valueExpressionLabeledDuration;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public ValueExpressionCast createValueExpressionCast() {
+        ValueExpressionCastImpl valueExpressionCast = new ValueExpressionCastImpl();
+        return valueExpressionCast;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public ValueExpressionNullValue createValueExpressionNullValue() {
+        ValueExpressionNullValueImpl valueExpressionNullValue = new ValueExpressionNullValueImpl();
+        return valueExpressionNullValue;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public ValueExpressionDefaultValue createValueExpressionDefaultValue() {
+        ValueExpressionDefaultValueImpl valueExpressionDefaultValue = new ValueExpressionDefaultValueImpl();
+        return valueExpressionDefaultValue;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public ValueExpressionFunction createValueExpressionFunction() {
+        ValueExpressionFunctionImpl valueExpressionFunction = new ValueExpressionFunctionImpl();
+        return valueExpressionFunction;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public ValueExpressionCombined createValueExpressionCombined() {
+        ValueExpressionCombinedImpl valueExpressionCombined = new ValueExpressionCombinedImpl();
+        return valueExpressionCombined;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public GroupingSets createGroupingSets() {
+        GroupingSetsImpl groupingSets = new GroupingSetsImpl();
+        return groupingSets;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public GroupingSetsElementSublist createGroupingSetsElementSublist() {
+        GroupingSetsElementSublistImpl groupingSetsElementSublist = new GroupingSetsElementSublistImpl();
+        return groupingSetsElementSublist;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public GroupingSetsElementExpression createGroupingSetsElementExpression() {
+        GroupingSetsElementExpressionImpl groupingSetsElementExpression = new GroupingSetsElementExpressionImpl();
+        return groupingSetsElementExpression;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public SuperGroup createSuperGroup() {
+        SuperGroupImpl superGroup = new SuperGroupImpl();
+        return superGroup;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public GroupingExpression createGroupingExpression() {
+        GroupingExpressionImpl groupingExpression = new GroupingExpressionImpl();
+        return groupingExpression;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public SuperGroupElementSublist createSuperGroupElementSublist() {
+        SuperGroupElementSublistImpl superGroupElementSublist = new SuperGroupElementSublistImpl();
+        return superGroupElementSublist;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public SuperGroupElementExpression createSuperGroupElementExpression() {
+        SuperGroupElementExpressionImpl superGroupElementExpression = new SuperGroupElementExpressionImpl();
+        return superGroupElementExpression;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public ValueExpressionCaseSearch createValueExpressionCaseSearch() {
+        ValueExpressionCaseSearchImpl valueExpressionCaseSearch = new ValueExpressionCaseSearchImpl();
+        return valueExpressionCaseSearch;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public ValueExpressionCaseSimple createValueExpressionCaseSimple() {
+        ValueExpressionCaseSimpleImpl valueExpressionCaseSimple = new ValueExpressionCaseSimpleImpl();
+        return valueExpressionCaseSimple;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public ValueExpressionCaseElse createValueExpressionCaseElse() {
+        ValueExpressionCaseElseImpl valueExpressionCaseElse = new ValueExpressionCaseElseImpl();
+        return valueExpressionCaseElse;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public ValueExpressionCaseSearchContent createValueExpressionCaseSearchContent() {
+        ValueExpressionCaseSearchContentImpl valueExpressionCaseSearchContent = new ValueExpressionCaseSearchContentImpl();
+        return valueExpressionCaseSearchContent;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public ValueExpressionCaseSimpleContent createValueExpressionCaseSimpleContent() {
+        ValueExpressionCaseSimpleContentImpl valueExpressionCaseSimpleContent = new ValueExpressionCaseSimpleContentImpl();
+        return valueExpressionCaseSimpleContent;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public TableInDatabase createTableInDatabase() {
+        TableInDatabaseImpl tableInDatabase = new TableInDatabaseImpl();
+        return tableInDatabase;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public TableFunction createTableFunction() {
+        TableFunctionImpl tableFunction = new TableFunctionImpl();
+        return tableFunction;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public ColumnName createColumnName() {
+        ColumnNameImpl columnName = new ColumnNameImpl();
+        return columnName;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public TableNested createTableNested() {
+        TableNestedImpl tableNested = new TableNestedImpl();
+        return tableNested;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public QueryMergeStatement createQueryMergeStatement() {
+        QueryMergeStatementImpl queryMergeStatement = new QueryMergeStatementImpl();
+        return queryMergeStatement;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public SearchConditionNested createSearchConditionNested() {
+        SearchConditionNestedImpl searchConditionNested = new SearchConditionNestedImpl();
+        return searchConditionNested;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public ValueExpressionNested createValueExpressionNested() {
+        ValueExpressionNestedImpl valueExpressionNested = new ValueExpressionNestedImpl();
+        return valueExpressionNested;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public OrderByOrdinal createOrderByOrdinal() {
+        OrderByOrdinalImpl orderByOrdinal = new OrderByOrdinalImpl();
+        return orderByOrdinal;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public TableCorrelation createTableCorrelation() {
+        TableCorrelationImpl tableCorrelation = new TableCorrelationImpl();
+        return tableCorrelation;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public UpdateSource createUpdateSource() {
+        UpdateSourceImpl updateSource = new UpdateSourceImpl();
+        return updateSource;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public UpdateSourceExprList createUpdateSourceExprList() {
+        UpdateSourceExprListImpl updateSourceExprList = new UpdateSourceExprListImpl();
+        return updateSourceExprList;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public UpdateSourceQuery createUpdateSourceQuery() {
+        UpdateSourceQueryImpl updateSourceQuery = new UpdateSourceQueryImpl();
+        return updateSourceQuery;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public OrderByResultColumn createOrderByResultColumn() {
+        OrderByResultColumnImpl orderByResultColumn = new OrderByResultColumnImpl();
+        return orderByResultColumn;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public WithTableReference createWithTableReference() {
+        WithTableReferenceImpl withTableReference = new WithTableReferenceImpl();
+        return withTableReference;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryNested createQueryNested() {
+        QueryNestedImpl queryNested = new QueryNestedImpl();
+        return queryNested;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public ValueExpressionRow createValueExpressionRow() {
+        ValueExpressionRowImpl valueExpressionRow = new ValueExpressionRowImpl();
+        return valueExpressionRow;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public MergeTargetTable createMergeTargetTable() {
+        MergeTargetTableImpl mergeTargetTable = new MergeTargetTableImpl();
+        return mergeTargetTable;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public MergeSourceTable createMergeSourceTable() {
+        MergeSourceTableImpl mergeSourceTable = new MergeSourceTableImpl();
+        return mergeSourceTable;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public MergeOnCondition createMergeOnCondition() {
+        MergeOnConditionImpl mergeOnCondition = new MergeOnConditionImpl();
+        return mergeOnCondition;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public MergeUpdateSpecification createMergeUpdateSpecification() {
+        MergeUpdateSpecificationImpl mergeUpdateSpecification = new MergeUpdateSpecificationImpl();
+        return mergeUpdateSpecification;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public MergeInsertSpecification createMergeInsertSpecification() {
+        MergeInsertSpecificationImpl mergeInsertSpecification = new MergeInsertSpecificationImpl();
+        return mergeInsertSpecification;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public MergeOperationSpecification createMergeOperationSpecification() {
+        MergeOperationSpecificationImpl mergeOperationSpecification = new MergeOperationSpecificationImpl();
+        return mergeOperationSpecification;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public UpdateOfColumn createUpdateOfColumn() {
+        UpdateOfColumnImpl updateOfColumn = new UpdateOfColumnImpl();
+        return updateOfColumn;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public UpdatabilityExpression createUpdatabilityExpression() {
+        UpdatabilityExpressionImpl updatabilityExpression = new UpdatabilityExpressionImpl();
+        return updatabilityExpression;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public CallStatement createCallStatement() {
+        CallStatementImpl callStatement = new CallStatementImpl();
+        return callStatement;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public ProcedureReference createProcedureReference() {
+        ProcedureReferenceImpl procedureReference = new ProcedureReferenceImpl();
+        return procedureReference;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public TableQueryLateral createTableQueryLateral() {
+        TableQueryLateralImpl tableQueryLateral = new TableQueryLateralImpl();
+        return tableQueryLateral;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public SuperGroupType createSuperGroupTypeFromString(EDataType eDataType, String initialValue) {
+        SuperGroupType result = SuperGroupType.get(initialValue);
+        if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+        return result;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public String convertSuperGroupTypeToString(EDataType eDataType, Object instanceValue) {
+        return instanceValue == null ? null : instanceValue.toString();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public PredicateQuantifiedType createPredicateQuantifiedTypeFromString(EDataType eDataType, String initialValue) {
+        PredicateQuantifiedType result = PredicateQuantifiedType.get(initialValue);
+        if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+        return result;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public String convertPredicateQuantifiedTypeToString(EDataType eDataType, Object instanceValue) {
+        return instanceValue == null ? null : instanceValue.toString();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public PredicateComparisonOperator createPredicateComparisonOperatorFromString(EDataType eDataType, String initialValue) {
+        PredicateComparisonOperator result = PredicateComparisonOperator.get(initialValue);
+        if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+        return result;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public String convertPredicateComparisonOperatorToString(EDataType eDataType, Object instanceValue) {
+        return instanceValue == null ? null : instanceValue.toString();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public SearchConditionCombinedOperator createSearchConditionCombinedOperatorFromString(EDataType eDataType, String initialValue) {
+        SearchConditionCombinedOperator result = SearchConditionCombinedOperator.get(initialValue);
+        if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+        return result;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public String convertSearchConditionCombinedOperatorToString(EDataType eDataType, Object instanceValue) {
+        return instanceValue == null ? null : instanceValue.toString();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public TableJoinedOperator createTableJoinedOperatorFromString(EDataType eDataType, String initialValue) {
+        TableJoinedOperator result = TableJoinedOperator.get(initialValue);
+        if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+        return result;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public String convertTableJoinedOperatorToString(EDataType eDataType, Object instanceValue) {
+        return instanceValue == null ? null : instanceValue.toString();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public QueryCombinedOperator createQueryCombinedOperatorFromString(EDataType eDataType, String initialValue) {
+        QueryCombinedOperator result = QueryCombinedOperator.get(initialValue);
+        if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+        return result;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public String convertQueryCombinedOperatorToString(EDataType eDataType, Object instanceValue) {
+        return instanceValue == null ? null : instanceValue.toString();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public ValueExpressionUnaryOperator createValueExpressionUnaryOperatorFromString(EDataType eDataType, String initialValue) {
+        ValueExpressionUnaryOperator result = ValueExpressionUnaryOperator.get(initialValue);
+        if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+        return result;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public String convertValueExpressionUnaryOperatorToString(EDataType eDataType, Object instanceValue) {
+        return instanceValue == null ? null : instanceValue.toString();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public ValueExpressionCombinedOperator createValueExpressionCombinedOperatorFromString(EDataType eDataType, String initialValue) {
+        ValueExpressionCombinedOperator result = ValueExpressionCombinedOperator.get(initialValue);
+        if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+        return result;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public String convertValueExpressionCombinedOperatorToString(EDataType eDataType, Object instanceValue) {
+        return instanceValue == null ? null : instanceValue.toString();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public ValueExpressionLabeledDurationType createValueExpressionLabeledDurationTypeFromString(EDataType eDataType, String initialValue) {
+        ValueExpressionLabeledDurationType result = ValueExpressionLabeledDurationType.get(initialValue);
+        if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+        return result;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public String convertValueExpressionLabeledDurationTypeToString(EDataType eDataType, Object instanceValue) {
+        return instanceValue == null ? null : instanceValue.toString();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NullOrderingType createNullOrderingTypeFromString(EDataType eDataType, String initialValue) {
+        NullOrderingType result = NullOrderingType.get(initialValue);
+        if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+        return result;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public String convertNullOrderingTypeToString(EDataType eDataType, Object instanceValue) {
+        return instanceValue == null ? null : instanceValue.toString();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public OrderingSpecType createOrderingSpecTypeFromString(EDataType eDataType, String initialValue) {
+        OrderingSpecType result = OrderingSpecType.get(initialValue);
+        if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+        return result;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public String convertOrderingSpecTypeToString(EDataType eDataType, Object instanceValue) {
+        return instanceValue == null ? null : instanceValue.toString();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public UpdatabilityType createUpdatabilityTypeFromString(EDataType eDataType, String initialValue) {
+        UpdatabilityType result = UpdatabilityType.get(initialValue);
+        if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+        return result;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String convertUpdatabilityTypeToString(EDataType eDataType, Object instanceValue) {
+        return instanceValue == null ? null : instanceValue.toString();
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public SQLQueryModelPackage getSQLQueryModelPackage() {
+        return (SQLQueryModelPackage)getEPackage();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @deprecated
+     * @generated
+     */
+	public static SQLQueryModelPackage getPackage() {
+        return SQLQueryModelPackage.eINSTANCE;
+    }
+
+} //SQLQueryModelFactoryImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/SQLQueryModelPackageImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/SQLQueryModelPackageImpl.java
new file mode 100644
index 0000000..7c9cb00
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/SQLQueryModelPackageImpl.java
@@ -0,0 +1,5387 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SQLQueryModelPackageImpl.java,v 1.5 2010/02/25 01:57:24 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage;
+
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;
+
+import org.eclipse.datatools.modelbase.sql.accesscontrol.impl.SQLAccessControlPackageImpl;
+
+import org.eclipse.datatools.modelbase.sql.constraints.impl.SQLConstraintsPackageImpl;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl;
+
+import org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsPackage;
+
+import org.eclipse.datatools.modelbase.sql.query.CallStatement;
+import org.eclipse.datatools.modelbase.sql.expressions.impl.SQLExpressionsPackageImpl;
+
+import org.eclipse.datatools.modelbase.sql.query.ColumnName;
+import org.eclipse.datatools.modelbase.sql.query.CursorReference;
+import org.eclipse.datatools.modelbase.sql.query.Grouping;
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.GroupingSets;
+import org.eclipse.datatools.modelbase.sql.query.GroupingSetsElement;
+import org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementExpression;
+import org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementSublist;
+import org.eclipse.datatools.modelbase.sql.query.GroupingSpecification;
+import org.eclipse.datatools.modelbase.sql.query.MergeInsertSpecification;
+import org.eclipse.datatools.modelbase.sql.query.MergeOnCondition;
+import org.eclipse.datatools.modelbase.sql.query.MergeOperationSpecification;
+import org.eclipse.datatools.modelbase.sql.query.MergeSourceTable;
+import org.eclipse.datatools.modelbase.sql.query.MergeTargetTable;
+import org.eclipse.datatools.modelbase.sql.query.MergeUpdateSpecification;
+import org.eclipse.datatools.modelbase.sql.query.NullOrderingType;
+import org.eclipse.datatools.modelbase.sql.query.OrderByOrdinal;
+import org.eclipse.datatools.modelbase.sql.query.OrderByResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.OrderBySpecification;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.OrderingSpecType;
+import org.eclipse.datatools.modelbase.sql.query.Predicate;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.PredicateComparisonOperator;
+import org.eclipse.datatools.modelbase.sql.query.PredicateExists;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIn;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantified;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedType;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.ProcedureReference;
+import org.eclipse.datatools.modelbase.sql.query.QueryChangeStatement;
+import org.eclipse.datatools.modelbase.sql.query.QueryCombined;
+import org.eclipse.datatools.modelbase.sql.query.QueryCombinedOperator;
+import org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement;
+import org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody;
+import org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot;
+import org.eclipse.datatools.modelbase.sql.query.QueryInsertStatement;
+import org.eclipse.datatools.modelbase.sql.query.QueryMergeStatement;
+import org.eclipse.datatools.modelbase.sql.query.QueryNested;
+import org.eclipse.datatools.modelbase.sql.query.QueryResultSpecification;
+import org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelectStatement;
+import org.eclipse.datatools.modelbase.sql.query.QueryStatement;
+import org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement;
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.QueryValues;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.ResultTableAllColumns;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelFactory;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryObject;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionCombinedOperator;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionNested;
+import org.eclipse.datatools.modelbase.sql.query.SuperGroup;
+import org.eclipse.datatools.modelbase.sql.query.SuperGroupElement;
+import org.eclipse.datatools.modelbase.sql.query.SuperGroupElementExpression;
+import org.eclipse.datatools.modelbase.sql.query.SuperGroupElementSublist;
+import org.eclipse.datatools.modelbase.sql.query.SuperGroupType;
+import org.eclipse.datatools.modelbase.sql.query.TableCorrelation;
+import org.eclipse.datatools.modelbase.sql.query.TableExpression;
+import org.eclipse.datatools.modelbase.sql.query.TableFunction;
+import org.eclipse.datatools.modelbase.sql.query.TableInDatabase;
+import org.eclipse.datatools.modelbase.sql.query.TableJoined;
+import org.eclipse.datatools.modelbase.sql.query.TableJoinedOperator;
+import org.eclipse.datatools.modelbase.sql.query.TableNested;
+import org.eclipse.datatools.modelbase.sql.query.TableQueryLateral;
+import org.eclipse.datatools.modelbase.sql.query.TableReference;
+import org.eclipse.datatools.modelbase.sql.query.UpdatabilityExpression;
+import org.eclipse.datatools.modelbase.sql.query.UpdatabilityType;
+import org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression;
+import org.eclipse.datatools.modelbase.sql.query.UpdateOfColumn;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSource;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceQuery;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionAtomic;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCase;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearch;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombinedOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionDefaultValue;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDurationType;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNullValue;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionRow;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionScalarSelect;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionVariable;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+import org.eclipse.datatools.modelbase.sql.query.WithTableReference;
+import org.eclipse.datatools.modelbase.sql.query.WithTableSpecification;
+
+import org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage;
+
+import org.eclipse.datatools.modelbase.sql.routines.impl.SQLRoutinesPackageImpl;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLSchemaPackageImpl;
+
+import org.eclipse.datatools.modelbase.sql.statements.SQLStatementsPackage;
+
+import org.eclipse.datatools.modelbase.sql.statements.impl.SQLStatementsPackageImpl;
+
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+
+import org.eclipse.datatools.modelbase.sql.tables.impl.SQLTablesPackageImpl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.emf.ecore.EcorePackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.emf.ecore.impl.EcorePackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SQLQueryModelPackageImpl extends EPackageImpl implements SQLQueryModelPackage {
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass queryStatementEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass queryDeleteStatementEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass queryInsertStatementEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass querySelectStatementEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass queryUpdateStatementEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass updateAssignmentExpressionEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass cursorReferenceEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass querySearchConditionEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass queryExpressionBodyEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass queryValueExpressionEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass queryExpressionRootEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass valuesRowEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass queryValuesEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass tableReferenceEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass tableExpressionEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass tableJoinedEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass withTableSpecificationEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass predicateEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass searchConditionCombinedEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass orderByValueExpressionEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass queryCombinedEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass querySelectEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass groupingSpecificationEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass queryResultSpecificationEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass resultTableAllColumnsEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass resultColumnEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass predicateBasicEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass predicateQuantifiedEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass predicateBetweenEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass predicateExistsEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass predicateInEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass predicateLikeEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass predicateIsNullEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass predicateQuantifiedValueSelectEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass predicateQuantifiedRowSelectEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass predicateInValueSelectEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass predicateInValueListEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass predicateInValueRowSelectEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass valueExpressionSimpleEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass valueExpressionColumnEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass valueExpressionVariableEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass valueExpressionScalarSelectEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass valueExpressionLabeledDurationEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass valueExpressionCaseEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass valueExpressionCastEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass valueExpressionNullValueEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass valueExpressionDefaultValueEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass valueExpressionFunctionEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass valueExpressionCombinedEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass groupingSetsEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass groupingEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass groupingSetsElementEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass groupingSetsElementSublistEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass groupingSetsElementExpressionEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass superGroupEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass groupingExpressionEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass superGroupElementEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass superGroupElementSublistEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass superGroupElementExpressionEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass valueExpressionCaseSearchEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass valueExpressionCaseSimpleEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass valueExpressionCaseElseEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass valueExpressionCaseSearchContentEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass valueExpressionCaseSimpleContentEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass tableInDatabaseEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass tableFunctionEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass sqlQueryObjectEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass queryChangeStatementEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass columnNameEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass tableNestedEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass queryMergeStatementEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass searchConditionNestedEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass valueExpressionNestedEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass valueExpressionAtomicEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass orderBySpecificationEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass orderByOrdinalEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass tableCorrelationEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass updateSourceEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass updateSourceExprListEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass updateSourceQueryEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass orderByResultColumnEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EClass withTableReferenceEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass queryNestedEClass = null;
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass valueExpressionRowEClass = null;
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass mergeTargetTableEClass = null;
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass mergeSourceTableEClass = null;
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass mergeOnConditionEClass = null;
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass mergeUpdateSpecificationEClass = null;
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass mergeInsertSpecificationEClass = null;
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass mergeOperationSpecificationEClass = null;
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass updateOfColumnEClass = null;
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass updatabilityExpressionEClass = null;
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass callStatementEClass = null;
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass procedureReferenceEClass = null;
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass tableQueryLateralEClass = null;
+
+    /**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EEnum superGroupTypeEEnum = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EEnum predicateQuantifiedTypeEEnum = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EEnum predicateComparisonOperatorEEnum = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EEnum searchConditionCombinedOperatorEEnum = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EEnum tableJoinedOperatorEEnum = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EEnum queryCombinedOperatorEEnum = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EEnum valueExpressionUnaryOperatorEEnum = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EEnum valueExpressionCombinedOperatorEEnum = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EEnum valueExpressionLabeledDurationTypeEEnum = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EEnum nullOrderingTypeEEnum = null;
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private EEnum orderingSpecTypeEEnum = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EEnum updatabilityTypeEEnum = null;
+
+    /**
+     * Creates an instance of the model <b>Package</b>, registered with
+     * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+     * package URI value.
+     * <p>Note: the correct way to create the package is via the static
+     * factory method {@link #init init()}, which also performs
+     * initialization of the package, or returns the registered package,
+     * if one already exists.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see org.eclipse.emf.ecore.EPackage.Registry
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage#eNS_URI
+     * @see #init()
+     * @generated
+     */
+	private SQLQueryModelPackageImpl() {
+        super(eNS_URI, SQLQueryModelFactory.eINSTANCE);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private static boolean isInited = false;
+
+	/**
+     * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+     * 
+     * <p>This method is used to initialize {@link SQLQueryModelPackage#eINSTANCE} when that field is accessed.
+     * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @see #eNS_URI
+     * @see #createPackageContents()
+     * @see #initializePackageContents()
+     * @generated
+     */
+	public static SQLQueryModelPackage init() {
+        if (isInited) return (SQLQueryModelPackage)EPackage.Registry.INSTANCE.getEPackage(SQLQueryModelPackage.eNS_URI);
+
+        // Obtain or create and register package
+        SQLQueryModelPackageImpl theSQLQueryModelPackage = (SQLQueryModelPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof SQLQueryModelPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new SQLQueryModelPackageImpl());
+
+        isInited = true;
+
+        // Initialize simple dependencies
+        SQLSchemaPackage.eINSTANCE.eClass();
+        SQLConstraintsPackage.eINSTANCE.eClass();
+        SQLDataTypesPackage.eINSTANCE.eClass();
+        SQLExpressionsPackage.eINSTANCE.eClass();
+        SQLRoutinesPackage.eINSTANCE.eClass();
+        SQLStatementsPackage.eINSTANCE.eClass();
+        SQLTablesPackage.eINSTANCE.eClass();
+        SQLAccessControlPackage.eINSTANCE.eClass();
+
+        // Create package meta-data objects
+        theSQLQueryModelPackage.createPackageContents();
+
+        // Initialize created meta-data
+        theSQLQueryModelPackage.initializePackageContents();
+
+        // Mark meta-data to indicate it can't be changed
+        theSQLQueryModelPackage.freeze();
+
+  
+        // Update the registry and return the package
+        EPackage.Registry.INSTANCE.put(SQLQueryModelPackage.eNS_URI, theSQLQueryModelPackage);
+        return theSQLQueryModelPackage;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getQueryStatement() {
+        return queryStatementEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getQueryDeleteStatement() {
+        return queryDeleteStatementEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryDeleteStatement_WhereCurrentOfClause() {
+        return (EReference)queryDeleteStatementEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryDeleteStatement_WhereClause() {
+        return (EReference)queryDeleteStatementEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryDeleteStatement_TargetTable() {
+        return (EReference)queryDeleteStatementEClass.getEStructuralFeatures().get(2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getQueryInsertStatement() {
+        return queryInsertStatementEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryInsertStatement_SourceQuery() {
+        return (EReference)queryInsertStatementEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryInsertStatement_SourceValuesRowList() {
+        return (EReference)queryInsertStatementEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryInsertStatement_TargetTable() {
+        return (EReference)queryInsertStatementEClass.getEStructuralFeatures().get(2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryInsertStatement_TargetColumnList() {
+        return (EReference)queryInsertStatementEClass.getEStructuralFeatures().get(3);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getQuerySelectStatement() {
+        return querySelectStatementEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQuerySelectStatement_QueryExpr() {
+        return (EReference)querySelectStatementEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQuerySelectStatement_OrderByClause() {
+        return (EReference)querySelectStatementEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getQuerySelectStatement_UpdatabilityExpr() {
+        return (EReference)querySelectStatementEClass.getEStructuralFeatures().get(2);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getQueryUpdateStatement() {
+        return queryUpdateStatementEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryUpdateStatement_AssignmentClause() {
+        return (EReference)queryUpdateStatementEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryUpdateStatement_WhereCurrentOfClause() {
+        return (EReference)queryUpdateStatementEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryUpdateStatement_WhereClause() {
+        return (EReference)queryUpdateStatementEClass.getEStructuralFeatures().get(2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryUpdateStatement_TargetTable() {
+        return (EReference)queryUpdateStatementEClass.getEStructuralFeatures().get(3);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getUpdateAssignmentExpression() {
+        return updateAssignmentExpressionEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getUpdateAssignmentExpression_UpdateStatement() {
+        return (EReference)updateAssignmentExpressionEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getUpdateAssignmentExpression_TargetColumnList() {
+        return (EReference)updateAssignmentExpressionEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getUpdateAssignmentExpression_UpdateSource() {
+        return (EReference)updateAssignmentExpressionEClass.getEStructuralFeatures().get(2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getUpdateAssignmentExpression_MergeUpdateSpec() {
+        return (EReference)updateAssignmentExpressionEClass.getEStructuralFeatures().get(3);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getCursorReference() {
+        return cursorReferenceEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getCursorReference_UpdateStatement() {
+        return (EReference)cursorReferenceEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getCursorReference_DeleteStatement() {
+        return (EReference)cursorReferenceEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getQuerySearchCondition() {
+        return querySearchConditionEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EAttribute getQuerySearchCondition_NegatedCondition() {
+        return (EAttribute)querySearchConditionEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQuerySearchCondition_UpdateStatement() {
+        return (EReference)querySearchConditionEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQuerySearchCondition_DeleteStatement() {
+        return (EReference)querySearchConditionEClass.getEStructuralFeatures().get(2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQuerySearchCondition_TableJoined() {
+        return (EReference)querySearchConditionEClass.getEStructuralFeatures().get(3);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQuerySearchCondition_CombinedLeft() {
+        return (EReference)querySearchConditionEClass.getEStructuralFeatures().get(4);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQuerySearchCondition_CombinedRight() {
+        return (EReference)querySearchConditionEClass.getEStructuralFeatures().get(5);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQuerySearchCondition_QuerySelectHaving() {
+        return (EReference)querySearchConditionEClass.getEStructuralFeatures().get(6);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQuerySearchCondition_QuerySelectWhere() {
+        return (EReference)querySearchConditionEClass.getEStructuralFeatures().get(7);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQuerySearchCondition_ValueExprCaseSearchContent() {
+        return (EReference)querySearchConditionEClass.getEStructuralFeatures().get(8);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQuerySearchCondition_Nest() {
+        return (EReference)querySearchConditionEClass.getEStructuralFeatures().get(9);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getQuerySearchCondition_MergeOnCondition() {
+        return (EReference)querySearchConditionEClass.getEStructuralFeatures().get(10);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getQueryExpressionBody() {
+        return queryExpressionBodyEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EAttribute getQueryExpressionBody_RowFetchLimit() {
+        return (EAttribute)queryExpressionBodyEClass.getEStructuralFeatures().get(0);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryExpressionBody_QueryExpression() {
+        return (EReference)queryExpressionBodyEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryExpressionBody_CombinedLeft() {
+        return (EReference)queryExpressionBodyEClass.getEStructuralFeatures().get(2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryExpressionBody_CombinedRight() {
+        return (EReference)queryExpressionBodyEClass.getEStructuralFeatures().get(3);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryExpressionBody_PredicateExists() {
+        return (EReference)queryExpressionBodyEClass.getEStructuralFeatures().get(4);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryExpressionBody_UpdateSourceQuery() {
+        return (EReference)queryExpressionBodyEClass.getEStructuralFeatures().get(5);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryExpressionBody_WithTableSpecification() {
+        return (EReference)queryExpressionBodyEClass.getEStructuralFeatures().get(6);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getQueryExpressionBody_QueryNest() {
+        return (EReference)queryExpressionBodyEClass.getEStructuralFeatures().get(7);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getQueryExpressionBody_SortSpecList() {
+        return (EReference)queryExpressionBodyEClass.getEStructuralFeatures().get(8);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getQueryValueExpression() {
+        return queryValueExpressionEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EAttribute getQueryValueExpression_UnaryOperator() {
+        return (EAttribute)queryValueExpressionEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryValueExpression_DataType() {
+        return (EReference)queryValueExpressionEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryValueExpression_ValuesRow() {
+        return (EReference)queryValueExpressionEClass.getEStructuralFeatures().get(2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryValueExpression_OrderByValueExpr() {
+        return (EReference)queryValueExpressionEClass.getEStructuralFeatures().get(3);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryValueExpression_ResultColumn() {
+        return (EReference)queryValueExpressionEClass.getEStructuralFeatures().get(4);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryValueExpression_BasicRight() {
+        return (EReference)queryValueExpressionEClass.getEStructuralFeatures().get(5);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryValueExpression_BasicLeft() {
+        return (EReference)queryValueExpressionEClass.getEStructuralFeatures().get(6);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryValueExpression_LikePattern() {
+        return (EReference)queryValueExpressionEClass.getEStructuralFeatures().get(7);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryValueExpression_LikeMatching() {
+        return (EReference)queryValueExpressionEClass.getEStructuralFeatures().get(8);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryValueExpression_PredicateNull() {
+        return (EReference)queryValueExpressionEClass.getEStructuralFeatures().get(9);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryValueExpression_InValueListRight() {
+        return (EReference)queryValueExpressionEClass.getEStructuralFeatures().get(10);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryValueExpression_InValueListLeft() {
+        return (EReference)queryValueExpressionEClass.getEStructuralFeatures().get(11);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryValueExpression_InValueRowSelectLeft() {
+        return (EReference)queryValueExpressionEClass.getEStructuralFeatures().get(12);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryValueExpression_InValueSelectLeft() {
+        return (EReference)queryValueExpressionEClass.getEStructuralFeatures().get(13);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryValueExpression_QuantifiedRowSelectLeft() {
+        return (EReference)queryValueExpressionEClass.getEStructuralFeatures().get(14);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryValueExpression_QuantifiedValueSelectLeft() {
+        return (EReference)queryValueExpressionEClass.getEStructuralFeatures().get(15);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryValueExpression_BetweenLeft() {
+        return (EReference)queryValueExpressionEClass.getEStructuralFeatures().get(16);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryValueExpression_BetweenRight1() {
+        return (EReference)queryValueExpressionEClass.getEStructuralFeatures().get(17);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryValueExpression_BetweenRight2() {
+        return (EReference)queryValueExpressionEClass.getEStructuralFeatures().get(18);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryValueExpression_ValueExprCast() {
+        return (EReference)queryValueExpressionEClass.getEStructuralFeatures().get(19);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryValueExpression_ValueExprFunction() {
+        return (EReference)queryValueExpressionEClass.getEStructuralFeatures().get(20);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryValueExpression_ValueExprCombinedLeft() {
+        return (EReference)queryValueExpressionEClass.getEStructuralFeatures().get(21);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryValueExpression_ValueExprCombinedRight() {
+        return (EReference)queryValueExpressionEClass.getEStructuralFeatures().get(22);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryValueExpression_GroupingExpr() {
+        return (EReference)queryValueExpressionEClass.getEStructuralFeatures().get(23);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryValueExpression_ValueExprCaseElse() {
+        return (EReference)queryValueExpressionEClass.getEStructuralFeatures().get(24);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryValueExpression_ValueExprCaseSimple() {
+        return (EReference)queryValueExpressionEClass.getEStructuralFeatures().get(25);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryValueExpression_ValueExprCaseSimpleContentWhen() {
+        return (EReference)queryValueExpressionEClass.getEStructuralFeatures().get(26);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryValueExpression_ValueExprCaseSimpleContentResult() {
+        return (EReference)queryValueExpressionEClass.getEStructuralFeatures().get(27);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryValueExpression_ValueExprCaseSearchContent() {
+        return (EReference)queryValueExpressionEClass.getEStructuralFeatures().get(28);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryValueExpression_LikeEscape() {
+        return (EReference)queryValueExpressionEClass.getEStructuralFeatures().get(29);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryValueExpression_ValueExprLabeledDuration() {
+        return (EReference)queryValueExpressionEClass.getEStructuralFeatures().get(30);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryValueExpression_Nest() {
+        return (EReference)queryValueExpressionEClass.getEStructuralFeatures().get(31);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryValueExpression_UpdateSourceExprList() {
+        return (EReference)queryValueExpressionEClass.getEStructuralFeatures().get(32);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getQueryValueExpression_TableFunction() {
+        return (EReference)queryValueExpressionEClass.getEStructuralFeatures().get(33);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getQueryValueExpression_ValueExprRow() {
+        return (EReference)queryValueExpressionEClass.getEStructuralFeatures().get(34);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getQueryValueExpression_CallStatement() {
+        return (EReference)queryValueExpressionEClass.getEStructuralFeatures().get(35);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getQueryExpressionRoot() {
+        return queryExpressionRootEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryExpressionRoot_InsertStatement() {
+        return (EReference)queryExpressionRootEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryExpressionRoot_SelectStatement() {
+        return (EReference)queryExpressionRootEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryExpressionRoot_WithClause() {
+        return (EReference)queryExpressionRootEClass.getEStructuralFeatures().get(2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryExpressionRoot_Query() {
+        return (EReference)queryExpressionRootEClass.getEStructuralFeatures().get(3);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryExpressionRoot_InValueRowSelectRight() {
+        return (EReference)queryExpressionRootEClass.getEStructuralFeatures().get(4);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryExpressionRoot_InValueSelectRight() {
+        return (EReference)queryExpressionRootEClass.getEStructuralFeatures().get(5);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryExpressionRoot_QuantifiedRowSelectRight() {
+        return (EReference)queryExpressionRootEClass.getEStructuralFeatures().get(6);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryExpressionRoot_QuantifiedValueSelectRight() {
+        return (EReference)queryExpressionRootEClass.getEStructuralFeatures().get(7);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getQueryExpressionRoot_ValExprScalarSelect() {
+        return (EReference)queryExpressionRootEClass.getEStructuralFeatures().get(8);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getValuesRow() {
+        return valuesRowEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getValuesRow_InsertStatement() {
+        return (EReference)valuesRowEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getValuesRow_ExprList() {
+        return (EReference)valuesRowEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getValuesRow_QueryValues() {
+        return (EReference)valuesRowEClass.getEStructuralFeatures().get(2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getQueryValues() {
+        return queryValuesEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryValues_ValuesRowList() {
+        return (EReference)queryValuesEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getTableReference() {
+        return tableReferenceEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getTableReference_TableJoinedRight() {
+        return (EReference)tableReferenceEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getTableReference_TableJoinedLeft() {
+        return (EReference)tableReferenceEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getTableReference_QuerySelect() {
+        return (EReference)tableReferenceEClass.getEStructuralFeatures().get(2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getTableReference_Nest() {
+        return (EReference)tableReferenceEClass.getEStructuralFeatures().get(3);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getTableReference_MergeSourceTable() {
+        return (EReference)tableReferenceEClass.getEStructuralFeatures().get(4);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getTableExpression() {
+        return tableExpressionEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getTableExpression_ColumnList() {
+        return (EReference)tableExpressionEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getTableExpression_TableCorrelation() {
+        return (EReference)tableExpressionEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getTableExpression_ResultTableAllColumns() {
+        return (EReference)tableExpressionEClass.getEStructuralFeatures().get(2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getTableExpression_ValueExprColumns() {
+        return (EReference)tableExpressionEClass.getEStructuralFeatures().get(3);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getTableExpression_MergeTargetTable() {
+        return (EReference)tableExpressionEClass.getEStructuralFeatures().get(4);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getTableJoined() {
+        return tableJoinedEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EAttribute getTableJoined_JoinOperator() {
+        return (EAttribute)tableJoinedEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getTableJoined_JoinCondition() {
+        return (EReference)tableJoinedEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getTableJoined_TableRefRight() {
+        return (EReference)tableJoinedEClass.getEStructuralFeatures().get(2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getTableJoined_TableRefLeft() {
+        return (EReference)tableJoinedEClass.getEStructuralFeatures().get(3);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getWithTableSpecification() {
+        return withTableSpecificationEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getWithTableSpecification_QueryExpressionRoot() {
+        return (EReference)withTableSpecificationEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getWithTableSpecification_WithTableQueryExpr() {
+        return (EReference)withTableSpecificationEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getWithTableSpecification_WithTableReferences() {
+        return (EReference)withTableSpecificationEClass.getEStructuralFeatures().get(2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getWithTableSpecification_ColumnNameList() {
+        return (EReference)withTableSpecificationEClass.getEStructuralFeatures().get(3);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getPredicate() {
+        return predicateEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EAttribute getPredicate_NegatedPredicate() {
+        return (EAttribute)predicateEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EAttribute getPredicate_HasSelectivity() {
+        return (EAttribute)predicateEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EAttribute getPredicate_SelectivityValue() {
+        return (EAttribute)predicateEClass.getEStructuralFeatures().get(2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getSearchConditionCombined() {
+        return searchConditionCombinedEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EAttribute getSearchConditionCombined_CombinedOperator() {
+        return (EAttribute)searchConditionCombinedEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getSearchConditionCombined_LeftCondition() {
+        return (EReference)searchConditionCombinedEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getSearchConditionCombined_RightCondition() {
+        return (EReference)searchConditionCombinedEClass.getEStructuralFeatures().get(2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getOrderByValueExpression() {
+        return orderByValueExpressionEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getOrderByValueExpression_ValueExpr() {
+        return (EReference)orderByValueExpressionEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getQueryCombined() {
+        return queryCombinedEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EAttribute getQueryCombined_CombinedOperator() {
+        return (EAttribute)queryCombinedEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryCombined_LeftQuery() {
+        return (EReference)queryCombinedEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryCombined_RightQuery() {
+        return (EReference)queryCombinedEClass.getEStructuralFeatures().get(2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getQuerySelect() {
+        return querySelectEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EAttribute getQuerySelect_Distinct() {
+        return (EAttribute)querySelectEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQuerySelect_HavingClause() {
+        return (EReference)querySelectEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQuerySelect_WhereClause() {
+        return (EReference)querySelectEClass.getEStructuralFeatures().get(2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQuerySelect_GroupByClause() {
+        return (EReference)querySelectEClass.getEStructuralFeatures().get(3);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQuerySelect_SelectClause() {
+        return (EReference)querySelectEClass.getEStructuralFeatures().get(4);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQuerySelect_FromClause() {
+        return (EReference)querySelectEClass.getEStructuralFeatures().get(5);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQuerySelect_IntoClause() {
+        return (EReference)querySelectEClass.getEStructuralFeatures().get(6);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getGroupingSpecification() {
+        return groupingSpecificationEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getGroupingSpecification_QuerySelect() {
+        return (EReference)groupingSpecificationEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getQueryResultSpecification() {
+        return queryResultSpecificationEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getQueryResultSpecification_QuerySelect() {
+        return (EReference)queryResultSpecificationEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getResultTableAllColumns() {
+        return resultTableAllColumnsEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getResultTableAllColumns_TableExpr() {
+        return (EReference)resultTableAllColumnsEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getResultColumn() {
+        return resultColumnEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getResultColumn_ValueExpr() {
+        return (EReference)resultColumnEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getResultColumn_OrderByResultCol() {
+        return (EReference)resultColumnEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getPredicateBasic() {
+        return predicateBasicEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EAttribute getPredicateBasic_ComparisonOperator() {
+        return (EAttribute)predicateBasicEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getPredicateBasic_RightValueExpr() {
+        return (EReference)predicateBasicEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getPredicateBasic_LeftValueExpr() {
+        return (EReference)predicateBasicEClass.getEStructuralFeatures().get(2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getPredicateQuantified() {
+        return predicateQuantifiedEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getPredicateBetween() {
+        return predicateBetweenEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EAttribute getPredicateBetween_NotBetween() {
+        return (EAttribute)predicateBetweenEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getPredicateBetween_LeftValueExpr() {
+        return (EReference)predicateBetweenEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getPredicateBetween_RightValueExpr1() {
+        return (EReference)predicateBetweenEClass.getEStructuralFeatures().get(2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getPredicateBetween_RightValueExpr2() {
+        return (EReference)predicateBetweenEClass.getEStructuralFeatures().get(3);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getPredicateExists() {
+        return predicateExistsEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getPredicateExists_QueryExpr() {
+        return (EReference)predicateExistsEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getPredicateIn() {
+        return predicateInEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EAttribute getPredicateIn_NotIn() {
+        return (EAttribute)predicateInEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getPredicateLike() {
+        return predicateLikeEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EAttribute getPredicateLike_NotLike() {
+        return (EAttribute)predicateLikeEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getPredicateLike_PatternValueExpr() {
+        return (EReference)predicateLikeEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getPredicateLike_MatchingValueExpr() {
+        return (EReference)predicateLikeEClass.getEStructuralFeatures().get(2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getPredicateLike_EscapeValueExpr() {
+        return (EReference)predicateLikeEClass.getEStructuralFeatures().get(3);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getPredicateIsNull() {
+        return predicateIsNullEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EAttribute getPredicateIsNull_NotNull() {
+        return (EAttribute)predicateIsNullEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getPredicateIsNull_ValueExpr() {
+        return (EReference)predicateIsNullEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getPredicateQuantifiedValueSelect() {
+        return predicateQuantifiedValueSelectEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EAttribute getPredicateQuantifiedValueSelect_QuantifiedType() {
+        return (EAttribute)predicateQuantifiedValueSelectEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EAttribute getPredicateQuantifiedValueSelect_ComparisonOperator() {
+        return (EAttribute)predicateQuantifiedValueSelectEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getPredicateQuantifiedValueSelect_QueryExpr() {
+        return (EReference)predicateQuantifiedValueSelectEClass.getEStructuralFeatures().get(2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getPredicateQuantifiedValueSelect_ValueExpr() {
+        return (EReference)predicateQuantifiedValueSelectEClass.getEStructuralFeatures().get(3);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getPredicateQuantifiedRowSelect() {
+        return predicateQuantifiedRowSelectEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EAttribute getPredicateQuantifiedRowSelect_QuantifiedType() {
+        return (EAttribute)predicateQuantifiedRowSelectEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getPredicateQuantifiedRowSelect_QueryExpr() {
+        return (EReference)predicateQuantifiedRowSelectEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getPredicateQuantifiedRowSelect_ValueExprList() {
+        return (EReference)predicateQuantifiedRowSelectEClass.getEStructuralFeatures().get(2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getPredicateInValueSelect() {
+        return predicateInValueSelectEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getPredicateInValueSelect_QueryExpr() {
+        return (EReference)predicateInValueSelectEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getPredicateInValueSelect_ValueExpr() {
+        return (EReference)predicateInValueSelectEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getPredicateInValueList() {
+        return predicateInValueListEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getPredicateInValueList_ValueExprList() {
+        return (EReference)predicateInValueListEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getPredicateInValueList_ValueExpr() {
+        return (EReference)predicateInValueListEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getPredicateInValueRowSelect() {
+        return predicateInValueRowSelectEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getPredicateInValueRowSelect_ValueExprList() {
+        return (EReference)predicateInValueRowSelectEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getPredicateInValueRowSelect_QueryExpr() {
+        return (EReference)predicateInValueRowSelectEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getValueExpressionSimple() {
+        return valueExpressionSimpleEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EAttribute getValueExpressionSimple_Value() {
+        return (EAttribute)valueExpressionSimpleEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getValueExpressionColumn() {
+        return valueExpressionColumnEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getValueExpressionColumn_AssignmentExprTarget() {
+        return (EReference)valueExpressionColumnEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getValueExpressionColumn_ParentTableExpr() {
+        return (EReference)valueExpressionColumnEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getValueExpressionColumn_InsertStatement() {
+        return (EReference)valueExpressionColumnEClass.getEStructuralFeatures().get(2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getValueExpressionColumn_TableExpr() {
+        return (EReference)valueExpressionColumnEClass.getEStructuralFeatures().get(3);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getValueExpressionColumn_TableInDatabase() {
+        return (EReference)valueExpressionColumnEClass.getEStructuralFeatures().get(4);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getValueExpressionColumn_MergeInsertSpec() {
+        return (EReference)valueExpressionColumnEClass.getEStructuralFeatures().get(5);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getValueExpressionVariable() {
+        return valueExpressionVariableEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getValueExpressionVariable_QuerySelect() {
+        return (EReference)valueExpressionVariableEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getValueExpressionScalarSelect() {
+        return valueExpressionScalarSelectEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getValueExpressionScalarSelect_QueryExpr() {
+        return (EReference)valueExpressionScalarSelectEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getValueExpressionLabeledDuration() {
+        return valueExpressionLabeledDurationEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EAttribute getValueExpressionLabeledDuration_LabeledDurationType() {
+        return (EAttribute)valueExpressionLabeledDurationEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getValueExpressionLabeledDuration_ValueExpr() {
+        return (EReference)valueExpressionLabeledDurationEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getValueExpressionCase() {
+        return valueExpressionCaseEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getValueExpressionCase_CaseElse() {
+        return (EReference)valueExpressionCaseEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getValueExpressionCast() {
+        return valueExpressionCastEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getValueExpressionCast_ValueExpr() {
+        return (EReference)valueExpressionCastEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getValueExpressionNullValue() {
+        return valueExpressionNullValueEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getValueExpressionDefaultValue() {
+        return valueExpressionDefaultValueEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getValueExpressionFunction() {
+        return valueExpressionFunctionEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EAttribute getValueExpressionFunction_SpecialRegister() {
+        return (EAttribute)valueExpressionFunctionEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EAttribute getValueExpressionFunction_Distinct() {
+        return (EAttribute)valueExpressionFunctionEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EAttribute getValueExpressionFunction_ColumnFunction() {
+        return (EAttribute)valueExpressionFunctionEClass.getEStructuralFeatures().get(2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getValueExpressionFunction_ParameterList() {
+        return (EReference)valueExpressionFunctionEClass.getEStructuralFeatures().get(3);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getValueExpressionFunction_Function() {
+        return (EReference)valueExpressionFunctionEClass.getEStructuralFeatures().get(4);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getValueExpressionCombined() {
+        return valueExpressionCombinedEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EAttribute getValueExpressionCombined_CombinedOperator() {
+        return (EAttribute)valueExpressionCombinedEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getValueExpressionCombined_LeftValueExpr() {
+        return (EReference)valueExpressionCombinedEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getValueExpressionCombined_RightValueExpr() {
+        return (EReference)valueExpressionCombinedEClass.getEStructuralFeatures().get(2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getGroupingSets() {
+        return groupingSetsEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getGroupingSets_GroupingSetsElementList() {
+        return (EReference)groupingSetsEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getGrouping() {
+        return groupingEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getGrouping_GroupingSetsElementExpr() {
+        return (EReference)groupingEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getGroupingSetsElement() {
+        return groupingSetsElementEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getGroupingSetsElement_GroupingSets() {
+        return (EReference)groupingSetsElementEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getGroupingSetsElementSublist() {
+        return groupingSetsElementSublistEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getGroupingSetsElementSublist_GroupingSetsElementExprList() {
+        return (EReference)groupingSetsElementSublistEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getGroupingSetsElementExpression() {
+        return groupingSetsElementExpressionEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getGroupingSetsElementExpression_GroupingSetsElementSublist() {
+        return (EReference)groupingSetsElementExpressionEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getGroupingSetsElementExpression_Grouping() {
+        return (EReference)groupingSetsElementExpressionEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getSuperGroup() {
+        return superGroupEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EAttribute getSuperGroup_SuperGroupType() {
+        return (EAttribute)superGroupEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getSuperGroup_SuperGroupElementList() {
+        return (EReference)superGroupEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getGroupingExpression() {
+        return groupingExpressionEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getGroupingExpression_ValueExpr() {
+        return (EReference)groupingExpressionEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getGroupingExpression_SuperGroupElementExpr() {
+        return (EReference)groupingExpressionEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getSuperGroupElement() {
+        return superGroupElementEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getSuperGroupElement_SuperGroup() {
+        return (EReference)superGroupElementEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getSuperGroupElementSublist() {
+        return superGroupElementSublistEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getSuperGroupElementSublist_SuperGroupElementExprList() {
+        return (EReference)superGroupElementSublistEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getSuperGroupElementExpression() {
+        return superGroupElementExpressionEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getSuperGroupElementExpression_SuperGroupElementSublist() {
+        return (EReference)superGroupElementExpressionEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getSuperGroupElementExpression_GroupingExpr() {
+        return (EReference)superGroupElementExpressionEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getValueExpressionCaseSearch() {
+        return valueExpressionCaseSearchEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getValueExpressionCaseSearch_SearchContentList() {
+        return (EReference)valueExpressionCaseSearchEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getValueExpressionCaseSimple() {
+        return valueExpressionCaseSimpleEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getValueExpressionCaseSimple_ContentList() {
+        return (EReference)valueExpressionCaseSimpleEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getValueExpressionCaseSimple_ValueExpr() {
+        return (EReference)valueExpressionCaseSimpleEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getValueExpressionCaseElse() {
+        return valueExpressionCaseElseEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getValueExpressionCaseElse_ValueExprCase() {
+        return (EReference)valueExpressionCaseElseEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getValueExpressionCaseElse_ValueExpr() {
+        return (EReference)valueExpressionCaseElseEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getValueExpressionCaseSearchContent() {
+        return valueExpressionCaseSearchContentEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getValueExpressionCaseSearchContent_ValueExpr() {
+        return (EReference)valueExpressionCaseSearchContentEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getValueExpressionCaseSearchContent_SearchCondition() {
+        return (EReference)valueExpressionCaseSearchContentEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getValueExpressionCaseSearchContent_ValueExprCaseSearch() {
+        return (EReference)valueExpressionCaseSearchContentEClass.getEStructuralFeatures().get(2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getValueExpressionCaseSimpleContent() {
+        return valueExpressionCaseSimpleContentEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getValueExpressionCaseSimpleContent_ValueExprCaseSimple() {
+        return (EReference)valueExpressionCaseSimpleContentEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getValueExpressionCaseSimpleContent_WhenValueExpr() {
+        return (EReference)valueExpressionCaseSimpleContentEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getValueExpressionCaseSimpleContent_ResultValueExpr() {
+        return (EReference)valueExpressionCaseSimpleContentEClass.getEStructuralFeatures().get(2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getTableInDatabase() {
+        return tableInDatabaseEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getTableInDatabase_UpdateStatement() {
+        return (EReference)tableInDatabaseEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getTableInDatabase_DeleteStatement() {
+        return (EReference)tableInDatabaseEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getTableInDatabase_InsertStatement() {
+        return (EReference)tableInDatabaseEClass.getEStructuralFeatures().get(2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getTableInDatabase_DatabaseTable() {
+        return (EReference)tableInDatabaseEClass.getEStructuralFeatures().get(3);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getTableInDatabase_DerivedColumnList() {
+        return (EReference)tableInDatabaseEClass.getEStructuralFeatures().get(4);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getTableFunction() {
+        return tableFunctionEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getTableFunction_Function() {
+        return (EReference)tableFunctionEClass.getEStructuralFeatures().get(0);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getTableFunction_ParameterList() {
+        return (EReference)tableFunctionEClass.getEStructuralFeatures().get(1);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getSQLQueryObject() {
+        return sqlQueryObjectEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getQueryChangeStatement() {
+        return queryChangeStatementEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getColumnName() {
+        return columnNameEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getColumnName_TableCorrelation() {
+        return (EReference)columnNameEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getColumnName_WithTableSpecification() {
+        return (EReference)columnNameEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getTableNested() {
+        return tableNestedEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getTableNested_NestedTableRef() {
+        return (EReference)tableNestedEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getQueryMergeStatement() {
+        return queryMergeStatementEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getQueryMergeStatement_TargetTable() {
+        return (EReference)queryMergeStatementEClass.getEStructuralFeatures().get(0);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getQueryMergeStatement_SourceTable() {
+        return (EReference)queryMergeStatementEClass.getEStructuralFeatures().get(1);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getQueryMergeStatement_OnCondition() {
+        return (EReference)queryMergeStatementEClass.getEStructuralFeatures().get(2);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getQueryMergeStatement_OperationSpecList() {
+        return (EReference)queryMergeStatementEClass.getEStructuralFeatures().get(3);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getSearchConditionNested() {
+        return searchConditionNestedEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getSearchConditionNested_NestedCondition() {
+        return (EReference)searchConditionNestedEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getValueExpressionNested() {
+        return valueExpressionNestedEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getValueExpressionNested_NestedValueExpr() {
+        return (EReference)valueExpressionNestedEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getValueExpressionAtomic() {
+        return valueExpressionAtomicEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getOrderBySpecification() {
+        return orderBySpecificationEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EAttribute getOrderBySpecification_Descending() {
+        return (EAttribute)orderBySpecificationEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EAttribute getOrderBySpecification_OrderingSpecOption() {
+        return (EAttribute)orderBySpecificationEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EAttribute getOrderBySpecification_NullOrderingOption() {
+        return (EAttribute)orderBySpecificationEClass.getEStructuralFeatures().get(2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getOrderBySpecification_SelectStatement() {
+        return (EReference)orderBySpecificationEClass.getEStructuralFeatures().get(3);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getOrderBySpecification_Query() {
+        return (EReference)orderBySpecificationEClass.getEStructuralFeatures().get(4);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getOrderByOrdinal() {
+        return orderByOrdinalEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EAttribute getOrderByOrdinal_OrdinalValue() {
+        return (EAttribute)orderByOrdinalEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getTableCorrelation() {
+        return tableCorrelationEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getTableCorrelation_TableExpr() {
+        return (EReference)tableCorrelationEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getTableCorrelation_ColumnNameList() {
+        return (EReference)tableCorrelationEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getUpdateSource() {
+        return updateSourceEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getUpdateSource_UpdateAssignmentExpr() {
+        return (EReference)updateSourceEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getUpdateSourceExprList() {
+        return updateSourceExprListEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getUpdateSourceExprList_ValueExprList() {
+        return (EReference)updateSourceExprListEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getUpdateSourceQuery() {
+        return updateSourceQueryEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getUpdateSourceQuery_QueryExpr() {
+        return (EReference)updateSourceQueryEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getOrderByResultColumn() {
+        return orderByResultColumnEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getOrderByResultColumn_ResultCol() {
+        return (EReference)orderByResultColumnEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EClass getWithTableReference() {
+        return withTableReferenceEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EReference getWithTableReference_WithTableSpecification() {
+        return (EReference)withTableReferenceEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getQueryNested() {
+        return queryNestedEClass;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getQueryNested_NestedQuery() {
+        return (EReference)queryNestedEClass.getEStructuralFeatures().get(0);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getValueExpressionRow() {
+        return valueExpressionRowEClass;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getValueExpressionRow_ValueExprList() {
+        return (EReference)valueExpressionRowEClass.getEStructuralFeatures().get(0);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getMergeTargetTable() {
+        return mergeTargetTableEClass;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getMergeTargetTable_MergeStatement() {
+        return (EReference)mergeTargetTableEClass.getEStructuralFeatures().get(0);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getMergeTargetTable_TableExpr() {
+        return (EReference)mergeTargetTableEClass.getEStructuralFeatures().get(1);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getMergeSourceTable() {
+        return mergeSourceTableEClass;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getMergeSourceTable_QueryMergeStatement() {
+        return (EReference)mergeSourceTableEClass.getEStructuralFeatures().get(0);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getMergeSourceTable_MergeStatement() {
+        return (EReference)mergeSourceTableEClass.getEStructuralFeatures().get(1);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getMergeSourceTable_TableRef() {
+        return (EReference)mergeSourceTableEClass.getEStructuralFeatures().get(2);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getMergeOnCondition() {
+        return mergeOnConditionEClass;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getMergeOnCondition_MergeStatement() {
+        return (EReference)mergeOnConditionEClass.getEStructuralFeatures().get(0);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getMergeOnCondition_SearchCondition() {
+        return (EReference)mergeOnConditionEClass.getEStructuralFeatures().get(1);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getMergeUpdateSpecification() {
+        return mergeUpdateSpecificationEClass;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getMergeUpdateSpecification_AssignementExprList() {
+        return (EReference)mergeUpdateSpecificationEClass.getEStructuralFeatures().get(0);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getMergeInsertSpecification() {
+        return mergeInsertSpecificationEClass;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getMergeInsertSpecification_TargetColumnList() {
+        return (EReference)mergeInsertSpecificationEClass.getEStructuralFeatures().get(0);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getMergeInsertSpecification_SourceValuesRow() {
+        return (EReference)mergeInsertSpecificationEClass.getEStructuralFeatures().get(1);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getMergeOperationSpecification() {
+        return mergeOperationSpecificationEClass;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getMergeOperationSpecification_MergeStatement() {
+        return (EReference)mergeOperationSpecificationEClass.getEStructuralFeatures().get(0);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getUpdateOfColumn() {
+        return updateOfColumnEClass;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getUpdateOfColumn_UpdatabilityExpr() {
+        return (EReference)updateOfColumnEClass.getEStructuralFeatures().get(0);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getUpdatabilityExpression() {
+        return updatabilityExpressionEClass;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EAttribute getUpdatabilityExpression_UpdatabilityType() {
+        return (EAttribute)updatabilityExpressionEClass.getEStructuralFeatures().get(0);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getUpdatabilityExpression_UpdateOfColumnList() {
+        return (EReference)updatabilityExpressionEClass.getEStructuralFeatures().get(1);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getUpdatabilityExpression_SelectStatement() {
+        return (EReference)updatabilityExpressionEClass.getEStructuralFeatures().get(2);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getCallStatement() {
+        return callStatementEClass;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getCallStatement_ArgumentList() {
+        return (EReference)callStatementEClass.getEStructuralFeatures().get(0);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getCallStatement_ProcedureRef() {
+        return (EReference)callStatementEClass.getEStructuralFeatures().get(1);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getProcedureReference() {
+        return procedureReferenceEClass;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getProcedureReference_CallStatement() {
+        return (EReference)procedureReferenceEClass.getEStructuralFeatures().get(0);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getProcedureReference_Procedure() {
+        return (EReference)procedureReferenceEClass.getEStructuralFeatures().get(1);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getTableQueryLateral() {
+        return tableQueryLateralEClass;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getTableQueryLateral_Query() {
+        return (EReference)tableQueryLateralEClass.getEStructuralFeatures().get(0);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EEnum getSuperGroupType() {
+        return superGroupTypeEEnum;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EEnum getPredicateQuantifiedType() {
+        return predicateQuantifiedTypeEEnum;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EEnum getPredicateComparisonOperator() {
+        return predicateComparisonOperatorEEnum;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EEnum getSearchConditionCombinedOperator() {
+        return searchConditionCombinedOperatorEEnum;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EEnum getTableJoinedOperator() {
+        return tableJoinedOperatorEEnum;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EEnum getQueryCombinedOperator() {
+        return queryCombinedOperatorEEnum;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EEnum getValueExpressionUnaryOperator() {
+        return valueExpressionUnaryOperatorEEnum;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EEnum getValueExpressionCombinedOperator() {
+        return valueExpressionCombinedOperatorEEnum;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EEnum getValueExpressionLabeledDurationType() {
+        return valueExpressionLabeledDurationTypeEEnum;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EEnum getNullOrderingType() {
+        return nullOrderingTypeEEnum;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public EEnum getOrderingSpecType() {
+        return orderingSpecTypeEEnum;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EEnum getUpdatabilityType() {
+        return updatabilityTypeEEnum;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public SQLQueryModelFactory getSQLQueryModelFactory() {
+        return (SQLQueryModelFactory)getEFactoryInstance();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private boolean isCreated = false;
+
+	/**
+     * Creates the meta-model objects for the package.  This method is
+     * guarded to have no affect on any invocation but its first.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void createPackageContents() {
+        if (isCreated) return;
+        isCreated = true;
+
+        // Create classes and their features
+        queryStatementEClass = createEClass(QUERY_STATEMENT);
+
+        queryDeleteStatementEClass = createEClass(QUERY_DELETE_STATEMENT);
+        createEReference(queryDeleteStatementEClass, QUERY_DELETE_STATEMENT__WHERE_CURRENT_OF_CLAUSE);
+        createEReference(queryDeleteStatementEClass, QUERY_DELETE_STATEMENT__WHERE_CLAUSE);
+        createEReference(queryDeleteStatementEClass, QUERY_DELETE_STATEMENT__TARGET_TABLE);
+
+        queryInsertStatementEClass = createEClass(QUERY_INSERT_STATEMENT);
+        createEReference(queryInsertStatementEClass, QUERY_INSERT_STATEMENT__SOURCE_QUERY);
+        createEReference(queryInsertStatementEClass, QUERY_INSERT_STATEMENT__SOURCE_VALUES_ROW_LIST);
+        createEReference(queryInsertStatementEClass, QUERY_INSERT_STATEMENT__TARGET_TABLE);
+        createEReference(queryInsertStatementEClass, QUERY_INSERT_STATEMENT__TARGET_COLUMN_LIST);
+
+        querySelectStatementEClass = createEClass(QUERY_SELECT_STATEMENT);
+        createEReference(querySelectStatementEClass, QUERY_SELECT_STATEMENT__QUERY_EXPR);
+        createEReference(querySelectStatementEClass, QUERY_SELECT_STATEMENT__ORDER_BY_CLAUSE);
+        createEReference(querySelectStatementEClass, QUERY_SELECT_STATEMENT__UPDATABILITY_EXPR);
+
+        queryUpdateStatementEClass = createEClass(QUERY_UPDATE_STATEMENT);
+        createEReference(queryUpdateStatementEClass, QUERY_UPDATE_STATEMENT__ASSIGNMENT_CLAUSE);
+        createEReference(queryUpdateStatementEClass, QUERY_UPDATE_STATEMENT__WHERE_CURRENT_OF_CLAUSE);
+        createEReference(queryUpdateStatementEClass, QUERY_UPDATE_STATEMENT__WHERE_CLAUSE);
+        createEReference(queryUpdateStatementEClass, QUERY_UPDATE_STATEMENT__TARGET_TABLE);
+
+        updateAssignmentExpressionEClass = createEClass(UPDATE_ASSIGNMENT_EXPRESSION);
+        createEReference(updateAssignmentExpressionEClass, UPDATE_ASSIGNMENT_EXPRESSION__UPDATE_STATEMENT);
+        createEReference(updateAssignmentExpressionEClass, UPDATE_ASSIGNMENT_EXPRESSION__TARGET_COLUMN_LIST);
+        createEReference(updateAssignmentExpressionEClass, UPDATE_ASSIGNMENT_EXPRESSION__UPDATE_SOURCE);
+        createEReference(updateAssignmentExpressionEClass, UPDATE_ASSIGNMENT_EXPRESSION__MERGE_UPDATE_SPEC);
+
+        cursorReferenceEClass = createEClass(CURSOR_REFERENCE);
+        createEReference(cursorReferenceEClass, CURSOR_REFERENCE__UPDATE_STATEMENT);
+        createEReference(cursorReferenceEClass, CURSOR_REFERENCE__DELETE_STATEMENT);
+
+        querySearchConditionEClass = createEClass(QUERY_SEARCH_CONDITION);
+        createEAttribute(querySearchConditionEClass, QUERY_SEARCH_CONDITION__NEGATED_CONDITION);
+        createEReference(querySearchConditionEClass, QUERY_SEARCH_CONDITION__UPDATE_STATEMENT);
+        createEReference(querySearchConditionEClass, QUERY_SEARCH_CONDITION__DELETE_STATEMENT);
+        createEReference(querySearchConditionEClass, QUERY_SEARCH_CONDITION__TABLE_JOINED);
+        createEReference(querySearchConditionEClass, QUERY_SEARCH_CONDITION__COMBINED_LEFT);
+        createEReference(querySearchConditionEClass, QUERY_SEARCH_CONDITION__COMBINED_RIGHT);
+        createEReference(querySearchConditionEClass, QUERY_SEARCH_CONDITION__QUERY_SELECT_HAVING);
+        createEReference(querySearchConditionEClass, QUERY_SEARCH_CONDITION__QUERY_SELECT_WHERE);
+        createEReference(querySearchConditionEClass, QUERY_SEARCH_CONDITION__VALUE_EXPR_CASE_SEARCH_CONTENT);
+        createEReference(querySearchConditionEClass, QUERY_SEARCH_CONDITION__NEST);
+        createEReference(querySearchConditionEClass, QUERY_SEARCH_CONDITION__MERGE_ON_CONDITION);
+
+        queryExpressionBodyEClass = createEClass(QUERY_EXPRESSION_BODY);
+        createEAttribute(queryExpressionBodyEClass, QUERY_EXPRESSION_BODY__ROW_FETCH_LIMIT);
+        createEReference(queryExpressionBodyEClass, QUERY_EXPRESSION_BODY__QUERY_EXPRESSION);
+        createEReference(queryExpressionBodyEClass, QUERY_EXPRESSION_BODY__COMBINED_LEFT);
+        createEReference(queryExpressionBodyEClass, QUERY_EXPRESSION_BODY__COMBINED_RIGHT);
+        createEReference(queryExpressionBodyEClass, QUERY_EXPRESSION_BODY__PREDICATE_EXISTS);
+        createEReference(queryExpressionBodyEClass, QUERY_EXPRESSION_BODY__UPDATE_SOURCE_QUERY);
+        createEReference(queryExpressionBodyEClass, QUERY_EXPRESSION_BODY__WITH_TABLE_SPECIFICATION);
+        createEReference(queryExpressionBodyEClass, QUERY_EXPRESSION_BODY__QUERY_NEST);
+        createEReference(queryExpressionBodyEClass, QUERY_EXPRESSION_BODY__SORT_SPEC_LIST);
+
+        queryValueExpressionEClass = createEClass(QUERY_VALUE_EXPRESSION);
+        createEAttribute(queryValueExpressionEClass, QUERY_VALUE_EXPRESSION__UNARY_OPERATOR);
+        createEReference(queryValueExpressionEClass, QUERY_VALUE_EXPRESSION__DATA_TYPE);
+        createEReference(queryValueExpressionEClass, QUERY_VALUE_EXPRESSION__VALUES_ROW);
+        createEReference(queryValueExpressionEClass, QUERY_VALUE_EXPRESSION__ORDER_BY_VALUE_EXPR);
+        createEReference(queryValueExpressionEClass, QUERY_VALUE_EXPRESSION__RESULT_COLUMN);
+        createEReference(queryValueExpressionEClass, QUERY_VALUE_EXPRESSION__BASIC_RIGHT);
+        createEReference(queryValueExpressionEClass, QUERY_VALUE_EXPRESSION__BASIC_LEFT);
+        createEReference(queryValueExpressionEClass, QUERY_VALUE_EXPRESSION__LIKE_PATTERN);
+        createEReference(queryValueExpressionEClass, QUERY_VALUE_EXPRESSION__LIKE_MATCHING);
+        createEReference(queryValueExpressionEClass, QUERY_VALUE_EXPRESSION__PREDICATE_NULL);
+        createEReference(queryValueExpressionEClass, QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_RIGHT);
+        createEReference(queryValueExpressionEClass, QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_LEFT);
+        createEReference(queryValueExpressionEClass, QUERY_VALUE_EXPRESSION__IN_VALUE_ROW_SELECT_LEFT);
+        createEReference(queryValueExpressionEClass, QUERY_VALUE_EXPRESSION__IN_VALUE_SELECT_LEFT);
+        createEReference(queryValueExpressionEClass, QUERY_VALUE_EXPRESSION__QUANTIFIED_ROW_SELECT_LEFT);
+        createEReference(queryValueExpressionEClass, QUERY_VALUE_EXPRESSION__QUANTIFIED_VALUE_SELECT_LEFT);
+        createEReference(queryValueExpressionEClass, QUERY_VALUE_EXPRESSION__BETWEEN_LEFT);
+        createEReference(queryValueExpressionEClass, QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT1);
+        createEReference(queryValueExpressionEClass, QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT2);
+        createEReference(queryValueExpressionEClass, QUERY_VALUE_EXPRESSION__VALUE_EXPR_CAST);
+        createEReference(queryValueExpressionEClass, QUERY_VALUE_EXPRESSION__VALUE_EXPR_FUNCTION);
+        createEReference(queryValueExpressionEClass, QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_LEFT);
+        createEReference(queryValueExpressionEClass, QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_RIGHT);
+        createEReference(queryValueExpressionEClass, QUERY_VALUE_EXPRESSION__GROUPING_EXPR);
+        createEReference(queryValueExpressionEClass, QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_ELSE);
+        createEReference(queryValueExpressionEClass, QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE);
+        createEReference(queryValueExpressionEClass, QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN);
+        createEReference(queryValueExpressionEClass, QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT);
+        createEReference(queryValueExpressionEClass, QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SEARCH_CONTENT);
+        createEReference(queryValueExpressionEClass, QUERY_VALUE_EXPRESSION__LIKE_ESCAPE);
+        createEReference(queryValueExpressionEClass, QUERY_VALUE_EXPRESSION__VALUE_EXPR_LABELED_DURATION);
+        createEReference(queryValueExpressionEClass, QUERY_VALUE_EXPRESSION__NEST);
+        createEReference(queryValueExpressionEClass, QUERY_VALUE_EXPRESSION__UPDATE_SOURCE_EXPR_LIST);
+        createEReference(queryValueExpressionEClass, QUERY_VALUE_EXPRESSION__TABLE_FUNCTION);
+        createEReference(queryValueExpressionEClass, QUERY_VALUE_EXPRESSION__VALUE_EXPR_ROW);
+        createEReference(queryValueExpressionEClass, QUERY_VALUE_EXPRESSION__CALL_STATEMENT);
+
+        queryExpressionRootEClass = createEClass(QUERY_EXPRESSION_ROOT);
+        createEReference(queryExpressionRootEClass, QUERY_EXPRESSION_ROOT__INSERT_STATEMENT);
+        createEReference(queryExpressionRootEClass, QUERY_EXPRESSION_ROOT__SELECT_STATEMENT);
+        createEReference(queryExpressionRootEClass, QUERY_EXPRESSION_ROOT__WITH_CLAUSE);
+        createEReference(queryExpressionRootEClass, QUERY_EXPRESSION_ROOT__QUERY);
+        createEReference(queryExpressionRootEClass, QUERY_EXPRESSION_ROOT__IN_VALUE_ROW_SELECT_RIGHT);
+        createEReference(queryExpressionRootEClass, QUERY_EXPRESSION_ROOT__IN_VALUE_SELECT_RIGHT);
+        createEReference(queryExpressionRootEClass, QUERY_EXPRESSION_ROOT__QUANTIFIED_ROW_SELECT_RIGHT);
+        createEReference(queryExpressionRootEClass, QUERY_EXPRESSION_ROOT__QUANTIFIED_VALUE_SELECT_RIGHT);
+        createEReference(queryExpressionRootEClass, QUERY_EXPRESSION_ROOT__VAL_EXPR_SCALAR_SELECT);
+
+        valuesRowEClass = createEClass(VALUES_ROW);
+        createEReference(valuesRowEClass, VALUES_ROW__INSERT_STATEMENT);
+        createEReference(valuesRowEClass, VALUES_ROW__EXPR_LIST);
+        createEReference(valuesRowEClass, VALUES_ROW__QUERY_VALUES);
+
+        queryValuesEClass = createEClass(QUERY_VALUES);
+        createEReference(queryValuesEClass, QUERY_VALUES__VALUES_ROW_LIST);
+
+        tableReferenceEClass = createEClass(TABLE_REFERENCE);
+        createEReference(tableReferenceEClass, TABLE_REFERENCE__TABLE_JOINED_RIGHT);
+        createEReference(tableReferenceEClass, TABLE_REFERENCE__TABLE_JOINED_LEFT);
+        createEReference(tableReferenceEClass, TABLE_REFERENCE__QUERY_SELECT);
+        createEReference(tableReferenceEClass, TABLE_REFERENCE__NEST);
+        createEReference(tableReferenceEClass, TABLE_REFERENCE__MERGE_SOURCE_TABLE);
+
+        tableExpressionEClass = createEClass(TABLE_EXPRESSION);
+        createEReference(tableExpressionEClass, TABLE_EXPRESSION__COLUMN_LIST);
+        createEReference(tableExpressionEClass, TABLE_EXPRESSION__TABLE_CORRELATION);
+        createEReference(tableExpressionEClass, TABLE_EXPRESSION__RESULT_TABLE_ALL_COLUMNS);
+        createEReference(tableExpressionEClass, TABLE_EXPRESSION__VALUE_EXPR_COLUMNS);
+        createEReference(tableExpressionEClass, TABLE_EXPRESSION__MERGE_TARGET_TABLE);
+
+        tableJoinedEClass = createEClass(TABLE_JOINED);
+        createEAttribute(tableJoinedEClass, TABLE_JOINED__JOIN_OPERATOR);
+        createEReference(tableJoinedEClass, TABLE_JOINED__JOIN_CONDITION);
+        createEReference(tableJoinedEClass, TABLE_JOINED__TABLE_REF_RIGHT);
+        createEReference(tableJoinedEClass, TABLE_JOINED__TABLE_REF_LEFT);
+
+        withTableSpecificationEClass = createEClass(WITH_TABLE_SPECIFICATION);
+        createEReference(withTableSpecificationEClass, WITH_TABLE_SPECIFICATION__QUERY_EXPRESSION_ROOT);
+        createEReference(withTableSpecificationEClass, WITH_TABLE_SPECIFICATION__WITH_TABLE_QUERY_EXPR);
+        createEReference(withTableSpecificationEClass, WITH_TABLE_SPECIFICATION__WITH_TABLE_REFERENCES);
+        createEReference(withTableSpecificationEClass, WITH_TABLE_SPECIFICATION__COLUMN_NAME_LIST);
+
+        predicateEClass = createEClass(PREDICATE);
+        createEAttribute(predicateEClass, PREDICATE__NEGATED_PREDICATE);
+        createEAttribute(predicateEClass, PREDICATE__HAS_SELECTIVITY);
+        createEAttribute(predicateEClass, PREDICATE__SELECTIVITY_VALUE);
+
+        searchConditionCombinedEClass = createEClass(SEARCH_CONDITION_COMBINED);
+        createEAttribute(searchConditionCombinedEClass, SEARCH_CONDITION_COMBINED__COMBINED_OPERATOR);
+        createEReference(searchConditionCombinedEClass, SEARCH_CONDITION_COMBINED__LEFT_CONDITION);
+        createEReference(searchConditionCombinedEClass, SEARCH_CONDITION_COMBINED__RIGHT_CONDITION);
+
+        orderByValueExpressionEClass = createEClass(ORDER_BY_VALUE_EXPRESSION);
+        createEReference(orderByValueExpressionEClass, ORDER_BY_VALUE_EXPRESSION__VALUE_EXPR);
+
+        queryCombinedEClass = createEClass(QUERY_COMBINED);
+        createEAttribute(queryCombinedEClass, QUERY_COMBINED__COMBINED_OPERATOR);
+        createEReference(queryCombinedEClass, QUERY_COMBINED__LEFT_QUERY);
+        createEReference(queryCombinedEClass, QUERY_COMBINED__RIGHT_QUERY);
+
+        querySelectEClass = createEClass(QUERY_SELECT);
+        createEAttribute(querySelectEClass, QUERY_SELECT__DISTINCT);
+        createEReference(querySelectEClass, QUERY_SELECT__HAVING_CLAUSE);
+        createEReference(querySelectEClass, QUERY_SELECT__WHERE_CLAUSE);
+        createEReference(querySelectEClass, QUERY_SELECT__GROUP_BY_CLAUSE);
+        createEReference(querySelectEClass, QUERY_SELECT__SELECT_CLAUSE);
+        createEReference(querySelectEClass, QUERY_SELECT__FROM_CLAUSE);
+        createEReference(querySelectEClass, QUERY_SELECT__INTO_CLAUSE);
+
+        groupingSpecificationEClass = createEClass(GROUPING_SPECIFICATION);
+        createEReference(groupingSpecificationEClass, GROUPING_SPECIFICATION__QUERY_SELECT);
+
+        queryResultSpecificationEClass = createEClass(QUERY_RESULT_SPECIFICATION);
+        createEReference(queryResultSpecificationEClass, QUERY_RESULT_SPECIFICATION__QUERY_SELECT);
+
+        resultTableAllColumnsEClass = createEClass(RESULT_TABLE_ALL_COLUMNS);
+        createEReference(resultTableAllColumnsEClass, RESULT_TABLE_ALL_COLUMNS__TABLE_EXPR);
+
+        resultColumnEClass = createEClass(RESULT_COLUMN);
+        createEReference(resultColumnEClass, RESULT_COLUMN__VALUE_EXPR);
+        createEReference(resultColumnEClass, RESULT_COLUMN__ORDER_BY_RESULT_COL);
+
+        predicateBasicEClass = createEClass(PREDICATE_BASIC);
+        createEAttribute(predicateBasicEClass, PREDICATE_BASIC__COMPARISON_OPERATOR);
+        createEReference(predicateBasicEClass, PREDICATE_BASIC__RIGHT_VALUE_EXPR);
+        createEReference(predicateBasicEClass, PREDICATE_BASIC__LEFT_VALUE_EXPR);
+
+        predicateQuantifiedEClass = createEClass(PREDICATE_QUANTIFIED);
+
+        predicateBetweenEClass = createEClass(PREDICATE_BETWEEN);
+        createEAttribute(predicateBetweenEClass, PREDICATE_BETWEEN__NOT_BETWEEN);
+        createEReference(predicateBetweenEClass, PREDICATE_BETWEEN__LEFT_VALUE_EXPR);
+        createEReference(predicateBetweenEClass, PREDICATE_BETWEEN__RIGHT_VALUE_EXPR1);
+        createEReference(predicateBetweenEClass, PREDICATE_BETWEEN__RIGHT_VALUE_EXPR2);
+
+        predicateExistsEClass = createEClass(PREDICATE_EXISTS);
+        createEReference(predicateExistsEClass, PREDICATE_EXISTS__QUERY_EXPR);
+
+        predicateInEClass = createEClass(PREDICATE_IN);
+        createEAttribute(predicateInEClass, PREDICATE_IN__NOT_IN);
+
+        predicateLikeEClass = createEClass(PREDICATE_LIKE);
+        createEAttribute(predicateLikeEClass, PREDICATE_LIKE__NOT_LIKE);
+        createEReference(predicateLikeEClass, PREDICATE_LIKE__PATTERN_VALUE_EXPR);
+        createEReference(predicateLikeEClass, PREDICATE_LIKE__MATCHING_VALUE_EXPR);
+        createEReference(predicateLikeEClass, PREDICATE_LIKE__ESCAPE_VALUE_EXPR);
+
+        predicateIsNullEClass = createEClass(PREDICATE_IS_NULL);
+        createEAttribute(predicateIsNullEClass, PREDICATE_IS_NULL__NOT_NULL);
+        createEReference(predicateIsNullEClass, PREDICATE_IS_NULL__VALUE_EXPR);
+
+        predicateQuantifiedValueSelectEClass = createEClass(PREDICATE_QUANTIFIED_VALUE_SELECT);
+        createEAttribute(predicateQuantifiedValueSelectEClass, PREDICATE_QUANTIFIED_VALUE_SELECT__QUANTIFIED_TYPE);
+        createEAttribute(predicateQuantifiedValueSelectEClass, PREDICATE_QUANTIFIED_VALUE_SELECT__COMPARISON_OPERATOR);
+        createEReference(predicateQuantifiedValueSelectEClass, PREDICATE_QUANTIFIED_VALUE_SELECT__QUERY_EXPR);
+        createEReference(predicateQuantifiedValueSelectEClass, PREDICATE_QUANTIFIED_VALUE_SELECT__VALUE_EXPR);
+
+        predicateQuantifiedRowSelectEClass = createEClass(PREDICATE_QUANTIFIED_ROW_SELECT);
+        createEAttribute(predicateQuantifiedRowSelectEClass, PREDICATE_QUANTIFIED_ROW_SELECT__QUANTIFIED_TYPE);
+        createEReference(predicateQuantifiedRowSelectEClass, PREDICATE_QUANTIFIED_ROW_SELECT__QUERY_EXPR);
+        createEReference(predicateQuantifiedRowSelectEClass, PREDICATE_QUANTIFIED_ROW_SELECT__VALUE_EXPR_LIST);
+
+        predicateInValueSelectEClass = createEClass(PREDICATE_IN_VALUE_SELECT);
+        createEReference(predicateInValueSelectEClass, PREDICATE_IN_VALUE_SELECT__QUERY_EXPR);
+        createEReference(predicateInValueSelectEClass, PREDICATE_IN_VALUE_SELECT__VALUE_EXPR);
+
+        predicateInValueListEClass = createEClass(PREDICATE_IN_VALUE_LIST);
+        createEReference(predicateInValueListEClass, PREDICATE_IN_VALUE_LIST__VALUE_EXPR_LIST);
+        createEReference(predicateInValueListEClass, PREDICATE_IN_VALUE_LIST__VALUE_EXPR);
+
+        predicateInValueRowSelectEClass = createEClass(PREDICATE_IN_VALUE_ROW_SELECT);
+        createEReference(predicateInValueRowSelectEClass, PREDICATE_IN_VALUE_ROW_SELECT__VALUE_EXPR_LIST);
+        createEReference(predicateInValueRowSelectEClass, PREDICATE_IN_VALUE_ROW_SELECT__QUERY_EXPR);
+
+        valueExpressionSimpleEClass = createEClass(VALUE_EXPRESSION_SIMPLE);
+        createEAttribute(valueExpressionSimpleEClass, VALUE_EXPRESSION_SIMPLE__VALUE);
+
+        valueExpressionColumnEClass = createEClass(VALUE_EXPRESSION_COLUMN);
+        createEReference(valueExpressionColumnEClass, VALUE_EXPRESSION_COLUMN__ASSIGNMENT_EXPR_TARGET);
+        createEReference(valueExpressionColumnEClass, VALUE_EXPRESSION_COLUMN__PARENT_TABLE_EXPR);
+        createEReference(valueExpressionColumnEClass, VALUE_EXPRESSION_COLUMN__INSERT_STATEMENT);
+        createEReference(valueExpressionColumnEClass, VALUE_EXPRESSION_COLUMN__TABLE_EXPR);
+        createEReference(valueExpressionColumnEClass, VALUE_EXPRESSION_COLUMN__TABLE_IN_DATABASE);
+        createEReference(valueExpressionColumnEClass, VALUE_EXPRESSION_COLUMN__MERGE_INSERT_SPEC);
+
+        valueExpressionVariableEClass = createEClass(VALUE_EXPRESSION_VARIABLE);
+        createEReference(valueExpressionVariableEClass, VALUE_EXPRESSION_VARIABLE__QUERY_SELECT);
+
+        valueExpressionScalarSelectEClass = createEClass(VALUE_EXPRESSION_SCALAR_SELECT);
+        createEReference(valueExpressionScalarSelectEClass, VALUE_EXPRESSION_SCALAR_SELECT__QUERY_EXPR);
+
+        valueExpressionLabeledDurationEClass = createEClass(VALUE_EXPRESSION_LABELED_DURATION);
+        createEAttribute(valueExpressionLabeledDurationEClass, VALUE_EXPRESSION_LABELED_DURATION__LABELED_DURATION_TYPE);
+        createEReference(valueExpressionLabeledDurationEClass, VALUE_EXPRESSION_LABELED_DURATION__VALUE_EXPR);
+
+        valueExpressionCaseEClass = createEClass(VALUE_EXPRESSION_CASE);
+        createEReference(valueExpressionCaseEClass, VALUE_EXPRESSION_CASE__CASE_ELSE);
+
+        valueExpressionCastEClass = createEClass(VALUE_EXPRESSION_CAST);
+        createEReference(valueExpressionCastEClass, VALUE_EXPRESSION_CAST__VALUE_EXPR);
+
+        valueExpressionNullValueEClass = createEClass(VALUE_EXPRESSION_NULL_VALUE);
+
+        valueExpressionDefaultValueEClass = createEClass(VALUE_EXPRESSION_DEFAULT_VALUE);
+
+        valueExpressionFunctionEClass = createEClass(VALUE_EXPRESSION_FUNCTION);
+        createEAttribute(valueExpressionFunctionEClass, VALUE_EXPRESSION_FUNCTION__SPECIAL_REGISTER);
+        createEAttribute(valueExpressionFunctionEClass, VALUE_EXPRESSION_FUNCTION__DISTINCT);
+        createEAttribute(valueExpressionFunctionEClass, VALUE_EXPRESSION_FUNCTION__COLUMN_FUNCTION);
+        createEReference(valueExpressionFunctionEClass, VALUE_EXPRESSION_FUNCTION__PARAMETER_LIST);
+        createEReference(valueExpressionFunctionEClass, VALUE_EXPRESSION_FUNCTION__FUNCTION);
+
+        valueExpressionCombinedEClass = createEClass(VALUE_EXPRESSION_COMBINED);
+        createEAttribute(valueExpressionCombinedEClass, VALUE_EXPRESSION_COMBINED__COMBINED_OPERATOR);
+        createEReference(valueExpressionCombinedEClass, VALUE_EXPRESSION_COMBINED__LEFT_VALUE_EXPR);
+        createEReference(valueExpressionCombinedEClass, VALUE_EXPRESSION_COMBINED__RIGHT_VALUE_EXPR);
+
+        groupingSetsEClass = createEClass(GROUPING_SETS);
+        createEReference(groupingSetsEClass, GROUPING_SETS__GROUPING_SETS_ELEMENT_LIST);
+
+        groupingEClass = createEClass(GROUPING);
+        createEReference(groupingEClass, GROUPING__GROUPING_SETS_ELEMENT_EXPR);
+
+        groupingSetsElementEClass = createEClass(GROUPING_SETS_ELEMENT);
+        createEReference(groupingSetsElementEClass, GROUPING_SETS_ELEMENT__GROUPING_SETS);
+
+        groupingSetsElementSublistEClass = createEClass(GROUPING_SETS_ELEMENT_SUBLIST);
+        createEReference(groupingSetsElementSublistEClass, GROUPING_SETS_ELEMENT_SUBLIST__GROUPING_SETS_ELEMENT_EXPR_LIST);
+
+        groupingSetsElementExpressionEClass = createEClass(GROUPING_SETS_ELEMENT_EXPRESSION);
+        createEReference(groupingSetsElementExpressionEClass, GROUPING_SETS_ELEMENT_EXPRESSION__GROUPING_SETS_ELEMENT_SUBLIST);
+        createEReference(groupingSetsElementExpressionEClass, GROUPING_SETS_ELEMENT_EXPRESSION__GROUPING);
+
+        superGroupEClass = createEClass(SUPER_GROUP);
+        createEAttribute(superGroupEClass, SUPER_GROUP__SUPER_GROUP_TYPE);
+        createEReference(superGroupEClass, SUPER_GROUP__SUPER_GROUP_ELEMENT_LIST);
+
+        groupingExpressionEClass = createEClass(GROUPING_EXPRESSION);
+        createEReference(groupingExpressionEClass, GROUPING_EXPRESSION__VALUE_EXPR);
+        createEReference(groupingExpressionEClass, GROUPING_EXPRESSION__SUPER_GROUP_ELEMENT_EXPR);
+
+        superGroupElementEClass = createEClass(SUPER_GROUP_ELEMENT);
+        createEReference(superGroupElementEClass, SUPER_GROUP_ELEMENT__SUPER_GROUP);
+
+        superGroupElementSublistEClass = createEClass(SUPER_GROUP_ELEMENT_SUBLIST);
+        createEReference(superGroupElementSublistEClass, SUPER_GROUP_ELEMENT_SUBLIST__SUPER_GROUP_ELEMENT_EXPR_LIST);
+
+        superGroupElementExpressionEClass = createEClass(SUPER_GROUP_ELEMENT_EXPRESSION);
+        createEReference(superGroupElementExpressionEClass, SUPER_GROUP_ELEMENT_EXPRESSION__SUPER_GROUP_ELEMENT_SUBLIST);
+        createEReference(superGroupElementExpressionEClass, SUPER_GROUP_ELEMENT_EXPRESSION__GROUPING_EXPR);
+
+        valueExpressionCaseSearchEClass = createEClass(VALUE_EXPRESSION_CASE_SEARCH);
+        createEReference(valueExpressionCaseSearchEClass, VALUE_EXPRESSION_CASE_SEARCH__SEARCH_CONTENT_LIST);
+
+        valueExpressionCaseSimpleEClass = createEClass(VALUE_EXPRESSION_CASE_SIMPLE);
+        createEReference(valueExpressionCaseSimpleEClass, VALUE_EXPRESSION_CASE_SIMPLE__CONTENT_LIST);
+        createEReference(valueExpressionCaseSimpleEClass, VALUE_EXPRESSION_CASE_SIMPLE__VALUE_EXPR);
+
+        valueExpressionCaseElseEClass = createEClass(VALUE_EXPRESSION_CASE_ELSE);
+        createEReference(valueExpressionCaseElseEClass, VALUE_EXPRESSION_CASE_ELSE__VALUE_EXPR_CASE);
+        createEReference(valueExpressionCaseElseEClass, VALUE_EXPRESSION_CASE_ELSE__VALUE_EXPR);
+
+        valueExpressionCaseSearchContentEClass = createEClass(VALUE_EXPRESSION_CASE_SEARCH_CONTENT);
+        createEReference(valueExpressionCaseSearchContentEClass, VALUE_EXPRESSION_CASE_SEARCH_CONTENT__VALUE_EXPR);
+        createEReference(valueExpressionCaseSearchContentEClass, VALUE_EXPRESSION_CASE_SEARCH_CONTENT__SEARCH_CONDITION);
+        createEReference(valueExpressionCaseSearchContentEClass, VALUE_EXPRESSION_CASE_SEARCH_CONTENT__VALUE_EXPR_CASE_SEARCH);
+
+        valueExpressionCaseSimpleContentEClass = createEClass(VALUE_EXPRESSION_CASE_SIMPLE_CONTENT);
+        createEReference(valueExpressionCaseSimpleContentEClass, VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__VALUE_EXPR_CASE_SIMPLE);
+        createEReference(valueExpressionCaseSimpleContentEClass, VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__WHEN_VALUE_EXPR);
+        createEReference(valueExpressionCaseSimpleContentEClass, VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__RESULT_VALUE_EXPR);
+
+        tableInDatabaseEClass = createEClass(TABLE_IN_DATABASE);
+        createEReference(tableInDatabaseEClass, TABLE_IN_DATABASE__UPDATE_STATEMENT);
+        createEReference(tableInDatabaseEClass, TABLE_IN_DATABASE__DELETE_STATEMENT);
+        createEReference(tableInDatabaseEClass, TABLE_IN_DATABASE__INSERT_STATEMENT);
+        createEReference(tableInDatabaseEClass, TABLE_IN_DATABASE__DATABASE_TABLE);
+        createEReference(tableInDatabaseEClass, TABLE_IN_DATABASE__DERIVED_COLUMN_LIST);
+
+        tableFunctionEClass = createEClass(TABLE_FUNCTION);
+        createEReference(tableFunctionEClass, TABLE_FUNCTION__FUNCTION);
+        createEReference(tableFunctionEClass, TABLE_FUNCTION__PARAMETER_LIST);
+
+        sqlQueryObjectEClass = createEClass(SQL_QUERY_OBJECT);
+
+        queryChangeStatementEClass = createEClass(QUERY_CHANGE_STATEMENT);
+
+        columnNameEClass = createEClass(COLUMN_NAME);
+        createEReference(columnNameEClass, COLUMN_NAME__TABLE_CORRELATION);
+        createEReference(columnNameEClass, COLUMN_NAME__WITH_TABLE_SPECIFICATION);
+
+        tableNestedEClass = createEClass(TABLE_NESTED);
+        createEReference(tableNestedEClass, TABLE_NESTED__NESTED_TABLE_REF);
+
+        queryMergeStatementEClass = createEClass(QUERY_MERGE_STATEMENT);
+        createEReference(queryMergeStatementEClass, QUERY_MERGE_STATEMENT__TARGET_TABLE);
+        createEReference(queryMergeStatementEClass, QUERY_MERGE_STATEMENT__SOURCE_TABLE);
+        createEReference(queryMergeStatementEClass, QUERY_MERGE_STATEMENT__ON_CONDITION);
+        createEReference(queryMergeStatementEClass, QUERY_MERGE_STATEMENT__OPERATION_SPEC_LIST);
+
+        searchConditionNestedEClass = createEClass(SEARCH_CONDITION_NESTED);
+        createEReference(searchConditionNestedEClass, SEARCH_CONDITION_NESTED__NESTED_CONDITION);
+
+        valueExpressionNestedEClass = createEClass(VALUE_EXPRESSION_NESTED);
+        createEReference(valueExpressionNestedEClass, VALUE_EXPRESSION_NESTED__NESTED_VALUE_EXPR);
+
+        valueExpressionAtomicEClass = createEClass(VALUE_EXPRESSION_ATOMIC);
+
+        orderBySpecificationEClass = createEClass(ORDER_BY_SPECIFICATION);
+        createEAttribute(orderBySpecificationEClass, ORDER_BY_SPECIFICATION__DESCENDING);
+        createEAttribute(orderBySpecificationEClass, ORDER_BY_SPECIFICATION__ORDERING_SPEC_OPTION);
+        createEAttribute(orderBySpecificationEClass, ORDER_BY_SPECIFICATION__NULL_ORDERING_OPTION);
+        createEReference(orderBySpecificationEClass, ORDER_BY_SPECIFICATION__SELECT_STATEMENT);
+        createEReference(orderBySpecificationEClass, ORDER_BY_SPECIFICATION__QUERY);
+
+        orderByOrdinalEClass = createEClass(ORDER_BY_ORDINAL);
+        createEAttribute(orderByOrdinalEClass, ORDER_BY_ORDINAL__ORDINAL_VALUE);
+
+        tableCorrelationEClass = createEClass(TABLE_CORRELATION);
+        createEReference(tableCorrelationEClass, TABLE_CORRELATION__TABLE_EXPR);
+        createEReference(tableCorrelationEClass, TABLE_CORRELATION__COLUMN_NAME_LIST);
+
+        updateSourceEClass = createEClass(UPDATE_SOURCE);
+        createEReference(updateSourceEClass, UPDATE_SOURCE__UPDATE_ASSIGNMENT_EXPR);
+
+        updateSourceExprListEClass = createEClass(UPDATE_SOURCE_EXPR_LIST);
+        createEReference(updateSourceExprListEClass, UPDATE_SOURCE_EXPR_LIST__VALUE_EXPR_LIST);
+
+        updateSourceQueryEClass = createEClass(UPDATE_SOURCE_QUERY);
+        createEReference(updateSourceQueryEClass, UPDATE_SOURCE_QUERY__QUERY_EXPR);
+
+        orderByResultColumnEClass = createEClass(ORDER_BY_RESULT_COLUMN);
+        createEReference(orderByResultColumnEClass, ORDER_BY_RESULT_COLUMN__RESULT_COL);
+
+        withTableReferenceEClass = createEClass(WITH_TABLE_REFERENCE);
+        createEReference(withTableReferenceEClass, WITH_TABLE_REFERENCE__WITH_TABLE_SPECIFICATION);
+
+        queryNestedEClass = createEClass(QUERY_NESTED);
+        createEReference(queryNestedEClass, QUERY_NESTED__NESTED_QUERY);
+
+        valueExpressionRowEClass = createEClass(VALUE_EXPRESSION_ROW);
+        createEReference(valueExpressionRowEClass, VALUE_EXPRESSION_ROW__VALUE_EXPR_LIST);
+
+        mergeTargetTableEClass = createEClass(MERGE_TARGET_TABLE);
+        createEReference(mergeTargetTableEClass, MERGE_TARGET_TABLE__MERGE_STATEMENT);
+        createEReference(mergeTargetTableEClass, MERGE_TARGET_TABLE__TABLE_EXPR);
+
+        mergeSourceTableEClass = createEClass(MERGE_SOURCE_TABLE);
+        createEReference(mergeSourceTableEClass, MERGE_SOURCE_TABLE__QUERY_MERGE_STATEMENT);
+        createEReference(mergeSourceTableEClass, MERGE_SOURCE_TABLE__MERGE_STATEMENT);
+        createEReference(mergeSourceTableEClass, MERGE_SOURCE_TABLE__TABLE_REF);
+
+        mergeOnConditionEClass = createEClass(MERGE_ON_CONDITION);
+        createEReference(mergeOnConditionEClass, MERGE_ON_CONDITION__MERGE_STATEMENT);
+        createEReference(mergeOnConditionEClass, MERGE_ON_CONDITION__SEARCH_CONDITION);
+
+        mergeUpdateSpecificationEClass = createEClass(MERGE_UPDATE_SPECIFICATION);
+        createEReference(mergeUpdateSpecificationEClass, MERGE_UPDATE_SPECIFICATION__ASSIGNEMENT_EXPR_LIST);
+
+        mergeInsertSpecificationEClass = createEClass(MERGE_INSERT_SPECIFICATION);
+        createEReference(mergeInsertSpecificationEClass, MERGE_INSERT_SPECIFICATION__TARGET_COLUMN_LIST);
+        createEReference(mergeInsertSpecificationEClass, MERGE_INSERT_SPECIFICATION__SOURCE_VALUES_ROW);
+
+        mergeOperationSpecificationEClass = createEClass(MERGE_OPERATION_SPECIFICATION);
+        createEReference(mergeOperationSpecificationEClass, MERGE_OPERATION_SPECIFICATION__MERGE_STATEMENT);
+
+        updateOfColumnEClass = createEClass(UPDATE_OF_COLUMN);
+        createEReference(updateOfColumnEClass, UPDATE_OF_COLUMN__UPDATABILITY_EXPR);
+
+        updatabilityExpressionEClass = createEClass(UPDATABILITY_EXPRESSION);
+        createEAttribute(updatabilityExpressionEClass, UPDATABILITY_EXPRESSION__UPDATABILITY_TYPE);
+        createEReference(updatabilityExpressionEClass, UPDATABILITY_EXPRESSION__UPDATE_OF_COLUMN_LIST);
+        createEReference(updatabilityExpressionEClass, UPDATABILITY_EXPRESSION__SELECT_STATEMENT);
+
+        callStatementEClass = createEClass(CALL_STATEMENT);
+        createEReference(callStatementEClass, CALL_STATEMENT__ARGUMENT_LIST);
+        createEReference(callStatementEClass, CALL_STATEMENT__PROCEDURE_REF);
+
+        procedureReferenceEClass = createEClass(PROCEDURE_REFERENCE);
+        createEReference(procedureReferenceEClass, PROCEDURE_REFERENCE__CALL_STATEMENT);
+        createEReference(procedureReferenceEClass, PROCEDURE_REFERENCE__PROCEDURE);
+
+        tableQueryLateralEClass = createEClass(TABLE_QUERY_LATERAL);
+        createEReference(tableQueryLateralEClass, TABLE_QUERY_LATERAL__QUERY);
+
+        // Create enums
+        superGroupTypeEEnum = createEEnum(SUPER_GROUP_TYPE);
+        predicateQuantifiedTypeEEnum = createEEnum(PREDICATE_QUANTIFIED_TYPE);
+        predicateComparisonOperatorEEnum = createEEnum(PREDICATE_COMPARISON_OPERATOR);
+        searchConditionCombinedOperatorEEnum = createEEnum(SEARCH_CONDITION_COMBINED_OPERATOR);
+        tableJoinedOperatorEEnum = createEEnum(TABLE_JOINED_OPERATOR);
+        queryCombinedOperatorEEnum = createEEnum(QUERY_COMBINED_OPERATOR);
+        valueExpressionUnaryOperatorEEnum = createEEnum(VALUE_EXPRESSION_UNARY_OPERATOR);
+        valueExpressionCombinedOperatorEEnum = createEEnum(VALUE_EXPRESSION_COMBINED_OPERATOR);
+        valueExpressionLabeledDurationTypeEEnum = createEEnum(VALUE_EXPRESSION_LABELED_DURATION_TYPE);
+        nullOrderingTypeEEnum = createEEnum(NULL_ORDERING_TYPE);
+        orderingSpecTypeEEnum = createEEnum(ORDERING_SPEC_TYPE);
+        updatabilityTypeEEnum = createEEnum(UPDATABILITY_TYPE);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private boolean isInitialized = false;
+
+	/**
+     * Complete the initialization of the package and its meta-model.  This
+     * method is guarded to have no affect on any invocation but its first.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void initializePackageContents() {
+        if (isInitialized) return;
+        isInitialized = true;
+
+        // Initialize package
+        setName(eNAME);
+        setNsPrefix(eNS_PREFIX);
+        setNsURI(eNS_URI);
+
+        // Obtain other dependent packages
+        SQLStatementsPackage theSQLStatementsPackage = (SQLStatementsPackage)EPackage.Registry.INSTANCE.getEPackage(SQLStatementsPackage.eNS_URI);
+        SQLExpressionsPackage theSQLExpressionsPackage = (SQLExpressionsPackage)EPackage.Registry.INSTANCE.getEPackage(SQLExpressionsPackage.eNS_URI);
+        SQLDataTypesPackage theSQLDataTypesPackage = (SQLDataTypesPackage)EPackage.Registry.INSTANCE.getEPackage(SQLDataTypesPackage.eNS_URI);
+        SQLRoutinesPackage theSQLRoutinesPackage = (SQLRoutinesPackage)EPackage.Registry.INSTANCE.getEPackage(SQLRoutinesPackage.eNS_URI);
+        SQLTablesPackage theSQLTablesPackage = (SQLTablesPackage)EPackage.Registry.INSTANCE.getEPackage(SQLTablesPackage.eNS_URI);
+        SQLSchemaPackage theSQLSchemaPackage = (SQLSchemaPackage)EPackage.Registry.INSTANCE.getEPackage(SQLSchemaPackage.eNS_URI);
+
+        // Add supertypes to classes
+        queryStatementEClass.getESuperTypes().add(this.getSQLQueryObject());
+        queryStatementEClass.getESuperTypes().add(theSQLStatementsPackage.getSQLDataStatement());
+        queryDeleteStatementEClass.getESuperTypes().add(this.getQueryChangeStatement());
+        queryInsertStatementEClass.getESuperTypes().add(this.getQueryChangeStatement());
+        querySelectStatementEClass.getESuperTypes().add(this.getQueryStatement());
+        queryUpdateStatementEClass.getESuperTypes().add(this.getQueryChangeStatement());
+        updateAssignmentExpressionEClass.getESuperTypes().add(this.getSQLQueryObject());
+        cursorReferenceEClass.getESuperTypes().add(this.getSQLQueryObject());
+        querySearchConditionEClass.getESuperTypes().add(this.getSQLQueryObject());
+        querySearchConditionEClass.getESuperTypes().add(theSQLExpressionsPackage.getSearchCondition());
+        queryExpressionBodyEClass.getESuperTypes().add(this.getTableExpression());
+        queryValueExpressionEClass.getESuperTypes().add(this.getSQLQueryObject());
+        queryValueExpressionEClass.getESuperTypes().add(theSQLExpressionsPackage.getValueExpression());
+        queryExpressionRootEClass.getESuperTypes().add(this.getSQLQueryObject());
+        queryExpressionRootEClass.getESuperTypes().add(theSQLExpressionsPackage.getQueryExpression());
+        valuesRowEClass.getESuperTypes().add(this.getSQLQueryObject());
+        queryValuesEClass.getESuperTypes().add(this.getQueryExpressionBody());
+        tableReferenceEClass.getESuperTypes().add(this.getSQLQueryObject());
+        tableExpressionEClass.getESuperTypes().add(this.getTableReference());
+        tableJoinedEClass.getESuperTypes().add(this.getTableReference());
+        withTableSpecificationEClass.getESuperTypes().add(this.getSQLQueryObject());
+        predicateEClass.getESuperTypes().add(this.getQuerySearchCondition());
+        searchConditionCombinedEClass.getESuperTypes().add(this.getQuerySearchCondition());
+        orderByValueExpressionEClass.getESuperTypes().add(this.getOrderBySpecification());
+        queryCombinedEClass.getESuperTypes().add(this.getQueryExpressionBody());
+        querySelectEClass.getESuperTypes().add(this.getQueryExpressionBody());
+        groupingSpecificationEClass.getESuperTypes().add(this.getSQLQueryObject());
+        queryResultSpecificationEClass.getESuperTypes().add(this.getSQLQueryObject());
+        resultTableAllColumnsEClass.getESuperTypes().add(this.getQueryResultSpecification());
+        resultColumnEClass.getESuperTypes().add(this.getQueryResultSpecification());
+        predicateBasicEClass.getESuperTypes().add(this.getPredicate());
+        predicateQuantifiedEClass.getESuperTypes().add(this.getPredicate());
+        predicateBetweenEClass.getESuperTypes().add(this.getPredicate());
+        predicateExistsEClass.getESuperTypes().add(this.getPredicate());
+        predicateInEClass.getESuperTypes().add(this.getPredicate());
+        predicateLikeEClass.getESuperTypes().add(this.getPredicate());
+        predicateIsNullEClass.getESuperTypes().add(this.getPredicate());
+        predicateQuantifiedValueSelectEClass.getESuperTypes().add(this.getPredicateQuantified());
+        predicateQuantifiedRowSelectEClass.getESuperTypes().add(this.getPredicateQuantified());
+        predicateInValueSelectEClass.getESuperTypes().add(this.getPredicateIn());
+        predicateInValueListEClass.getESuperTypes().add(this.getPredicateIn());
+        predicateInValueRowSelectEClass.getESuperTypes().add(this.getPredicateIn());
+        valueExpressionSimpleEClass.getESuperTypes().add(this.getValueExpressionAtomic());
+        valueExpressionColumnEClass.getESuperTypes().add(this.getValueExpressionAtomic());
+        valueExpressionVariableEClass.getESuperTypes().add(this.getValueExpressionAtomic());
+        valueExpressionScalarSelectEClass.getESuperTypes().add(this.getValueExpressionAtomic());
+        valueExpressionLabeledDurationEClass.getESuperTypes().add(this.getValueExpressionAtomic());
+        valueExpressionCaseEClass.getESuperTypes().add(this.getValueExpressionAtomic());
+        valueExpressionCastEClass.getESuperTypes().add(this.getValueExpressionAtomic());
+        valueExpressionNullValueEClass.getESuperTypes().add(this.getValueExpressionAtomic());
+        valueExpressionDefaultValueEClass.getESuperTypes().add(this.getValueExpressionAtomic());
+        valueExpressionFunctionEClass.getESuperTypes().add(this.getValueExpressionAtomic());
+        valueExpressionCombinedEClass.getESuperTypes().add(this.getQueryValueExpression());
+        groupingSetsEClass.getESuperTypes().add(this.getGroupingSpecification());
+        groupingEClass.getESuperTypes().add(this.getGroupingSpecification());
+        groupingSetsElementEClass.getESuperTypes().add(this.getSQLQueryObject());
+        groupingSetsElementSublistEClass.getESuperTypes().add(this.getGroupingSetsElement());
+        groupingSetsElementExpressionEClass.getESuperTypes().add(this.getGroupingSetsElement());
+        superGroupEClass.getESuperTypes().add(this.getGrouping());
+        groupingExpressionEClass.getESuperTypes().add(this.getGrouping());
+        superGroupElementEClass.getESuperTypes().add(this.getSQLQueryObject());
+        superGroupElementSublistEClass.getESuperTypes().add(this.getSuperGroupElement());
+        superGroupElementExpressionEClass.getESuperTypes().add(this.getSuperGroupElement());
+        valueExpressionCaseSearchEClass.getESuperTypes().add(this.getValueExpressionCase());
+        valueExpressionCaseSimpleEClass.getESuperTypes().add(this.getValueExpressionCase());
+        valueExpressionCaseElseEClass.getESuperTypes().add(this.getSQLQueryObject());
+        valueExpressionCaseSearchContentEClass.getESuperTypes().add(this.getSQLQueryObject());
+        valueExpressionCaseSimpleContentEClass.getESuperTypes().add(this.getSQLQueryObject());
+        tableInDatabaseEClass.getESuperTypes().add(this.getTableExpression());
+        tableFunctionEClass.getESuperTypes().add(this.getTableExpression());
+        sqlQueryObjectEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+        queryChangeStatementEClass.getESuperTypes().add(this.getQueryStatement());
+        queryChangeStatementEClass.getESuperTypes().add(theSQLStatementsPackage.getSQLDataChangeStatement());
+        columnNameEClass.getESuperTypes().add(this.getSQLQueryObject());
+        tableNestedEClass.getESuperTypes().add(this.getTableReference());
+        queryMergeStatementEClass.getESuperTypes().add(this.getQueryChangeStatement());
+        searchConditionNestedEClass.getESuperTypes().add(this.getQuerySearchCondition());
+        valueExpressionNestedEClass.getESuperTypes().add(this.getQueryValueExpression());
+        valueExpressionAtomicEClass.getESuperTypes().add(this.getQueryValueExpression());
+        orderBySpecificationEClass.getESuperTypes().add(this.getSQLQueryObject());
+        orderByOrdinalEClass.getESuperTypes().add(this.getOrderBySpecification());
+        tableCorrelationEClass.getESuperTypes().add(this.getSQLQueryObject());
+        updateSourceEClass.getESuperTypes().add(this.getSQLQueryObject());
+        updateSourceExprListEClass.getESuperTypes().add(this.getUpdateSource());
+        updateSourceQueryEClass.getESuperTypes().add(this.getUpdateSource());
+        orderByResultColumnEClass.getESuperTypes().add(this.getOrderBySpecification());
+        withTableReferenceEClass.getESuperTypes().add(this.getTableExpression());
+        queryNestedEClass.getESuperTypes().add(this.getQueryExpressionBody());
+        valueExpressionRowEClass.getESuperTypes().add(this.getQueryValueExpression());
+        mergeTargetTableEClass.getESuperTypes().add(this.getSQLQueryObject());
+        mergeSourceTableEClass.getESuperTypes().add(this.getSQLQueryObject());
+        mergeOnConditionEClass.getESuperTypes().add(this.getSQLQueryObject());
+        mergeUpdateSpecificationEClass.getESuperTypes().add(this.getMergeOperationSpecification());
+        mergeInsertSpecificationEClass.getESuperTypes().add(this.getMergeOperationSpecification());
+        mergeOperationSpecificationEClass.getESuperTypes().add(this.getSQLQueryObject());
+        updateOfColumnEClass.getESuperTypes().add(this.getSQLQueryObject());
+        updatabilityExpressionEClass.getESuperTypes().add(this.getSQLQueryObject());
+        callStatementEClass.getESuperTypes().add(this.getSQLQueryObject());
+        callStatementEClass.getESuperTypes().add(theSQLStatementsPackage.getSQLControlStatement());
+        procedureReferenceEClass.getESuperTypes().add(this.getSQLQueryObject());
+        tableQueryLateralEClass.getESuperTypes().add(this.getTableExpression());
+
+        // Initialize classes and features; add operations and parameters
+        initEClass(queryStatementEClass, QueryStatement.class, "QueryStatement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+        initEClass(queryDeleteStatementEClass, QueryDeleteStatement.class, "QueryDeleteStatement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getQueryDeleteStatement_WhereCurrentOfClause(), this.getCursorReference(), this.getCursorReference_DeleteStatement(), "whereCurrentOfClause", null, 0, 1, QueryDeleteStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryDeleteStatement_WhereClause(), this.getQuerySearchCondition(), this.getQuerySearchCondition_DeleteStatement(), "whereClause", null, 0, 1, QueryDeleteStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryDeleteStatement_TargetTable(), this.getTableInDatabase(), this.getTableInDatabase_DeleteStatement(), "targetTable", null, 1, 1, QueryDeleteStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(queryInsertStatementEClass, QueryInsertStatement.class, "QueryInsertStatement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getQueryInsertStatement_SourceQuery(), this.getQueryExpressionRoot(), this.getQueryExpressionRoot_InsertStatement(), "sourceQuery", null, 0, 1, QueryInsertStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryInsertStatement_SourceValuesRowList(), this.getValuesRow(), this.getValuesRow_InsertStatement(), "sourceValuesRowList", null, 0, -1, QueryInsertStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryInsertStatement_TargetTable(), this.getTableInDatabase(), this.getTableInDatabase_InsertStatement(), "targetTable", null, 1, 1, QueryInsertStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryInsertStatement_TargetColumnList(), this.getValueExpressionColumn(), this.getValueExpressionColumn_InsertStatement(), "targetColumnList", null, 0, -1, QueryInsertStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(querySelectStatementEClass, QuerySelectStatement.class, "QuerySelectStatement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getQuerySelectStatement_QueryExpr(), this.getQueryExpressionRoot(), this.getQueryExpressionRoot_SelectStatement(), "queryExpr", null, 1, 1, QuerySelectStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQuerySelectStatement_OrderByClause(), this.getOrderBySpecification(), this.getOrderBySpecification_SelectStatement(), "orderByClause", null, 0, -1, QuerySelectStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQuerySelectStatement_UpdatabilityExpr(), this.getUpdatabilityExpression(), this.getUpdatabilityExpression_SelectStatement(), "updatabilityExpr", null, 0, 1, QuerySelectStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(queryUpdateStatementEClass, QueryUpdateStatement.class, "QueryUpdateStatement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getQueryUpdateStatement_AssignmentClause(), this.getUpdateAssignmentExpression(), this.getUpdateAssignmentExpression_UpdateStatement(), "assignmentClause", null, 1, -1, QueryUpdateStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryUpdateStatement_WhereCurrentOfClause(), this.getCursorReference(), this.getCursorReference_UpdateStatement(), "whereCurrentOfClause", null, 0, 1, QueryUpdateStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryUpdateStatement_WhereClause(), this.getQuerySearchCondition(), this.getQuerySearchCondition_UpdateStatement(), "whereClause", null, 0, 1, QueryUpdateStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryUpdateStatement_TargetTable(), this.getTableInDatabase(), this.getTableInDatabase_UpdateStatement(), "targetTable", null, 1, 1, QueryUpdateStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(updateAssignmentExpressionEClass, UpdateAssignmentExpression.class, "UpdateAssignmentExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getUpdateAssignmentExpression_UpdateStatement(), this.getQueryUpdateStatement(), this.getQueryUpdateStatement_AssignmentClause(), "updateStatement", null, 0, 1, UpdateAssignmentExpression.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getUpdateAssignmentExpression_TargetColumnList(), this.getValueExpressionColumn(), this.getValueExpressionColumn_AssignmentExprTarget(), "targetColumnList", null, 1, -1, UpdateAssignmentExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getUpdateAssignmentExpression_UpdateSource(), this.getUpdateSource(), this.getUpdateSource_UpdateAssignmentExpr(), "updateSource", null, 1, 1, UpdateAssignmentExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getUpdateAssignmentExpression_MergeUpdateSpec(), this.getMergeUpdateSpecification(), this.getMergeUpdateSpecification_AssignementExprList(), "mergeUpdateSpec", null, 0, 1, UpdateAssignmentExpression.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(cursorReferenceEClass, CursorReference.class, "CursorReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getCursorReference_UpdateStatement(), this.getQueryUpdateStatement(), this.getQueryUpdateStatement_WhereCurrentOfClause(), "updateStatement", null, 0, 1, CursorReference.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getCursorReference_DeleteStatement(), this.getQueryDeleteStatement(), this.getQueryDeleteStatement_WhereCurrentOfClause(), "deleteStatement", null, 0, 1, CursorReference.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(querySearchConditionEClass, QuerySearchCondition.class, "QuerySearchCondition", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getQuerySearchCondition_NegatedCondition(), ecorePackage.getEBoolean(), "negatedCondition", null, 0, 1, QuerySearchCondition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQuerySearchCondition_UpdateStatement(), this.getQueryUpdateStatement(), this.getQueryUpdateStatement_WhereClause(), "updateStatement", null, 0, 1, QuerySearchCondition.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQuerySearchCondition_DeleteStatement(), this.getQueryDeleteStatement(), this.getQueryDeleteStatement_WhereClause(), "deleteStatement", null, 0, 1, QuerySearchCondition.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQuerySearchCondition_TableJoined(), this.getTableJoined(), this.getTableJoined_JoinCondition(), "tableJoined", null, 0, 1, QuerySearchCondition.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQuerySearchCondition_CombinedLeft(), this.getSearchConditionCombined(), this.getSearchConditionCombined_LeftCondition(), "combinedLeft", null, 0, 1, QuerySearchCondition.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQuerySearchCondition_CombinedRight(), this.getSearchConditionCombined(), this.getSearchConditionCombined_RightCondition(), "combinedRight", null, 0, 1, QuerySearchCondition.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQuerySearchCondition_QuerySelectHaving(), this.getQuerySelect(), this.getQuerySelect_HavingClause(), "querySelectHaving", null, 0, 1, QuerySearchCondition.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQuerySearchCondition_QuerySelectWhere(), this.getQuerySelect(), this.getQuerySelect_WhereClause(), "querySelectWhere", null, 0, 1, QuerySearchCondition.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQuerySearchCondition_ValueExprCaseSearchContent(), this.getValueExpressionCaseSearchContent(), this.getValueExpressionCaseSearchContent_SearchCondition(), "valueExprCaseSearchContent", null, 0, 1, QuerySearchCondition.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQuerySearchCondition_Nest(), this.getSearchConditionNested(), this.getSearchConditionNested_NestedCondition(), "nest", null, 0, 1, QuerySearchCondition.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQuerySearchCondition_MergeOnCondition(), this.getMergeOnCondition(), this.getMergeOnCondition_SearchCondition(), "mergeOnCondition", null, 0, 1, QuerySearchCondition.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(queryExpressionBodyEClass, QueryExpressionBody.class, "QueryExpressionBody", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getQueryExpressionBody_RowFetchLimit(), ecorePackage.getEInt(), "rowFetchLimit", null, 0, 1, QueryExpressionBody.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryExpressionBody_QueryExpression(), this.getQueryExpressionRoot(), this.getQueryExpressionRoot_Query(), "queryExpression", null, 0, 1, QueryExpressionBody.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryExpressionBody_CombinedLeft(), this.getQueryCombined(), this.getQueryCombined_LeftQuery(), "combinedLeft", null, 0, 1, QueryExpressionBody.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryExpressionBody_CombinedRight(), this.getQueryCombined(), this.getQueryCombined_RightQuery(), "combinedRight", null, 0, 1, QueryExpressionBody.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryExpressionBody_PredicateExists(), this.getPredicateExists(), this.getPredicateExists_QueryExpr(), "predicateExists", null, 0, 1, QueryExpressionBody.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryExpressionBody_UpdateSourceQuery(), this.getUpdateSourceQuery(), this.getUpdateSourceQuery_QueryExpr(), "updateSourceQuery", null, 1, 1, QueryExpressionBody.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryExpressionBody_WithTableSpecification(), this.getWithTableSpecification(), this.getWithTableSpecification_WithTableQueryExpr(), "withTableSpecification", null, 1, 1, QueryExpressionBody.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryExpressionBody_QueryNest(), this.getQueryNested(), this.getQueryNested_NestedQuery(), "queryNest", null, 0, 1, QueryExpressionBody.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryExpressionBody_SortSpecList(), this.getOrderBySpecification(), this.getOrderBySpecification_Query(), "sortSpecList", null, 0, -1, QueryExpressionBody.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(queryValueExpressionEClass, QueryValueExpression.class, "QueryValueExpression", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getQueryValueExpression_UnaryOperator(), this.getValueExpressionUnaryOperator(), "unaryOperator", null, 0, 1, QueryValueExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryValueExpression_DataType(), theSQLDataTypesPackage.getDataType(), null, "dataType", null, 0, 1, QueryValueExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryValueExpression_ValuesRow(), this.getValuesRow(), this.getValuesRow_ExprList(), "valuesRow", null, 0, 1, QueryValueExpression.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryValueExpression_OrderByValueExpr(), this.getOrderByValueExpression(), this.getOrderByValueExpression_ValueExpr(), "orderByValueExpr", null, 0, 1, QueryValueExpression.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryValueExpression_ResultColumn(), this.getResultColumn(), this.getResultColumn_ValueExpr(), "resultColumn", null, 0, 1, QueryValueExpression.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryValueExpression_BasicRight(), this.getPredicateBasic(), this.getPredicateBasic_RightValueExpr(), "basicRight", null, 0, 1, QueryValueExpression.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryValueExpression_BasicLeft(), this.getPredicateBasic(), this.getPredicateBasic_LeftValueExpr(), "basicLeft", null, 0, 1, QueryValueExpression.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryValueExpression_LikePattern(), this.getPredicateLike(), this.getPredicateLike_PatternValueExpr(), "likePattern", null, 0, 1, QueryValueExpression.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryValueExpression_LikeMatching(), this.getPredicateLike(), this.getPredicateLike_MatchingValueExpr(), "likeMatching", null, 0, 1, QueryValueExpression.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryValueExpression_PredicateNull(), this.getPredicateIsNull(), this.getPredicateIsNull_ValueExpr(), "predicateNull", null, 0, 1, QueryValueExpression.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryValueExpression_InValueListRight(), this.getPredicateInValueList(), this.getPredicateInValueList_ValueExprList(), "inValueListRight", null, 0, 1, QueryValueExpression.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryValueExpression_InValueListLeft(), this.getPredicateInValueList(), this.getPredicateInValueList_ValueExpr(), "inValueListLeft", null, 0, 1, QueryValueExpression.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryValueExpression_InValueRowSelectLeft(), this.getPredicateInValueRowSelect(), this.getPredicateInValueRowSelect_ValueExprList(), "inValueRowSelectLeft", null, 0, 1, QueryValueExpression.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryValueExpression_InValueSelectLeft(), this.getPredicateInValueSelect(), this.getPredicateInValueSelect_ValueExpr(), "inValueSelectLeft", null, 0, 1, QueryValueExpression.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryValueExpression_QuantifiedRowSelectLeft(), this.getPredicateQuantifiedRowSelect(), this.getPredicateQuantifiedRowSelect_ValueExprList(), "quantifiedRowSelectLeft", null, 0, 1, QueryValueExpression.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryValueExpression_QuantifiedValueSelectLeft(), this.getPredicateQuantifiedValueSelect(), this.getPredicateQuantifiedValueSelect_ValueExpr(), "quantifiedValueSelectLeft", null, 0, 1, QueryValueExpression.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryValueExpression_BetweenLeft(), this.getPredicateBetween(), this.getPredicateBetween_LeftValueExpr(), "betweenLeft", null, 0, 1, QueryValueExpression.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryValueExpression_BetweenRight1(), this.getPredicateBetween(), this.getPredicateBetween_RightValueExpr1(), "betweenRight1", null, 0, 1, QueryValueExpression.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryValueExpression_BetweenRight2(), this.getPredicateBetween(), this.getPredicateBetween_RightValueExpr2(), "betweenRight2", null, 0, 1, QueryValueExpression.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryValueExpression_ValueExprCast(), this.getValueExpressionCast(), this.getValueExpressionCast_ValueExpr(), "valueExprCast", null, 0, 1, QueryValueExpression.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryValueExpression_ValueExprFunction(), this.getValueExpressionFunction(), this.getValueExpressionFunction_ParameterList(), "valueExprFunction", null, 0, 1, QueryValueExpression.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryValueExpression_ValueExprCombinedLeft(), this.getValueExpressionCombined(), this.getValueExpressionCombined_LeftValueExpr(), "valueExprCombinedLeft", null, 0, 1, QueryValueExpression.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryValueExpression_ValueExprCombinedRight(), this.getValueExpressionCombined(), this.getValueExpressionCombined_RightValueExpr(), "valueExprCombinedRight", null, 0, 1, QueryValueExpression.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryValueExpression_GroupingExpr(), this.getGroupingExpression(), this.getGroupingExpression_ValueExpr(), "groupingExpr", null, 0, 1, QueryValueExpression.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryValueExpression_ValueExprCaseElse(), this.getValueExpressionCaseElse(), this.getValueExpressionCaseElse_ValueExpr(), "valueExprCaseElse", null, 0, 1, QueryValueExpression.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryValueExpression_ValueExprCaseSimple(), this.getValueExpressionCaseSimple(), this.getValueExpressionCaseSimple_ValueExpr(), "valueExprCaseSimple", null, 0, 1, QueryValueExpression.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryValueExpression_ValueExprCaseSimpleContentWhen(), this.getValueExpressionCaseSimpleContent(), this.getValueExpressionCaseSimpleContent_WhenValueExpr(), "valueExprCaseSimpleContentWhen", null, 0, 1, QueryValueExpression.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryValueExpression_ValueExprCaseSimpleContentResult(), this.getValueExpressionCaseSimpleContent(), this.getValueExpressionCaseSimpleContent_ResultValueExpr(), "valueExprCaseSimpleContentResult", null, 0, 1, QueryValueExpression.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryValueExpression_ValueExprCaseSearchContent(), this.getValueExpressionCaseSearchContent(), this.getValueExpressionCaseSearchContent_ValueExpr(), "valueExprCaseSearchContent", null, 0, 1, QueryValueExpression.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryValueExpression_LikeEscape(), this.getPredicateLike(), this.getPredicateLike_EscapeValueExpr(), "likeEscape", null, 0, 1, QueryValueExpression.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryValueExpression_ValueExprLabeledDuration(), this.getValueExpressionLabeledDuration(), this.getValueExpressionLabeledDuration_ValueExpr(), "valueExprLabeledDuration", null, 0, 1, QueryValueExpression.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryValueExpression_Nest(), this.getValueExpressionNested(), this.getValueExpressionNested_NestedValueExpr(), "nest", null, 0, 1, QueryValueExpression.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryValueExpression_UpdateSourceExprList(), this.getUpdateSourceExprList(), this.getUpdateSourceExprList_ValueExprList(), "updateSourceExprList", null, 0, 1, QueryValueExpression.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryValueExpression_TableFunction(), this.getTableFunction(), this.getTableFunction_ParameterList(), "tableFunction", null, 1, 1, QueryValueExpression.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryValueExpression_ValueExprRow(), this.getValueExpressionRow(), this.getValueExpressionRow_ValueExprList(), "valueExprRow", null, 1, 1, QueryValueExpression.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryValueExpression_CallStatement(), this.getCallStatement(), this.getCallStatement_ArgumentList(), "callStatement", null, 1, 1, QueryValueExpression.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(queryExpressionRootEClass, QueryExpressionRoot.class, "QueryExpressionRoot", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getQueryExpressionRoot_InsertStatement(), this.getQueryInsertStatement(), this.getQueryInsertStatement_SourceQuery(), "insertStatement", null, 0, 1, QueryExpressionRoot.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryExpressionRoot_SelectStatement(), this.getQuerySelectStatement(), this.getQuerySelectStatement_QueryExpr(), "selectStatement", null, 0, 1, QueryExpressionRoot.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryExpressionRoot_WithClause(), this.getWithTableSpecification(), this.getWithTableSpecification_QueryExpressionRoot(), "withClause", null, 0, -1, QueryExpressionRoot.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryExpressionRoot_Query(), this.getQueryExpressionBody(), this.getQueryExpressionBody_QueryExpression(), "query", null, 1, 1, QueryExpressionRoot.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryExpressionRoot_InValueRowSelectRight(), this.getPredicateInValueRowSelect(), this.getPredicateInValueRowSelect_QueryExpr(), "inValueRowSelectRight", null, 0, 1, QueryExpressionRoot.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryExpressionRoot_InValueSelectRight(), this.getPredicateInValueSelect(), this.getPredicateInValueSelect_QueryExpr(), "inValueSelectRight", null, 0, 1, QueryExpressionRoot.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryExpressionRoot_QuantifiedRowSelectRight(), this.getPredicateQuantifiedRowSelect(), this.getPredicateQuantifiedRowSelect_QueryExpr(), "quantifiedRowSelectRight", null, 0, 1, QueryExpressionRoot.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryExpressionRoot_QuantifiedValueSelectRight(), this.getPredicateQuantifiedValueSelect(), this.getPredicateQuantifiedValueSelect_QueryExpr(), "quantifiedValueSelectRight", null, 0, 1, QueryExpressionRoot.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryExpressionRoot_ValExprScalarSelect(), this.getValueExpressionScalarSelect(), this.getValueExpressionScalarSelect_QueryExpr(), "valExprScalarSelect", null, 0, 1, QueryExpressionRoot.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(valuesRowEClass, ValuesRow.class, "ValuesRow", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getValuesRow_InsertStatement(), this.getQueryInsertStatement(), this.getQueryInsertStatement_SourceValuesRowList(), "insertStatement", null, 0, 1, ValuesRow.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getValuesRow_ExprList(), this.getQueryValueExpression(), this.getQueryValueExpression_ValuesRow(), "exprList", null, 1, -1, ValuesRow.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getValuesRow_QueryValues(), this.getQueryValues(), this.getQueryValues_ValuesRowList(), "queryValues", null, 1, 1, ValuesRow.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(queryValuesEClass, QueryValues.class, "QueryValues", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getQueryValues_ValuesRowList(), this.getValuesRow(), this.getValuesRow_QueryValues(), "valuesRowList", null, 1, -1, QueryValues.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(tableReferenceEClass, TableReference.class, "TableReference", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getTableReference_TableJoinedRight(), this.getTableJoined(), this.getTableJoined_TableRefRight(), "tableJoinedRight", null, 1, 1, TableReference.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getTableReference_TableJoinedLeft(), this.getTableJoined(), this.getTableJoined_TableRefLeft(), "tableJoinedLeft", null, 1, 1, TableReference.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getTableReference_QuerySelect(), this.getQuerySelect(), this.getQuerySelect_FromClause(), "querySelect", null, 0, 1, TableReference.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getTableReference_Nest(), this.getTableNested(), this.getTableNested_NestedTableRef(), "nest", null, 0, 1, TableReference.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getTableReference_MergeSourceTable(), this.getMergeSourceTable(), this.getMergeSourceTable_TableRef(), "mergeSourceTable", null, 0, 1, TableReference.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(tableExpressionEClass, TableExpression.class, "TableExpression", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getTableExpression_ColumnList(), this.getValueExpressionColumn(), this.getValueExpressionColumn_ParentTableExpr(), "columnList", null, 0, -1, TableExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getTableExpression_TableCorrelation(), this.getTableCorrelation(), this.getTableCorrelation_TableExpr(), "tableCorrelation", null, 0, 1, TableExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getTableExpression_ResultTableAllColumns(), this.getResultTableAllColumns(), this.getResultTableAllColumns_TableExpr(), "resultTableAllColumns", null, 0, -1, TableExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getTableExpression_ValueExprColumns(), this.getValueExpressionColumn(), this.getValueExpressionColumn_TableExpr(), "valueExprColumns", null, 0, -1, TableExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getTableExpression_MergeTargetTable(), this.getMergeTargetTable(), this.getMergeTargetTable_TableExpr(), "mergeTargetTable", null, 0, 1, TableExpression.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(tableJoinedEClass, TableJoined.class, "TableJoined", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getTableJoined_JoinOperator(), this.getTableJoinedOperator(), "joinOperator", null, 0, 1, TableJoined.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getTableJoined_JoinCondition(), this.getQuerySearchCondition(), this.getQuerySearchCondition_TableJoined(), "joinCondition", null, 0, 1, TableJoined.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getTableJoined_TableRefRight(), this.getTableReference(), this.getTableReference_TableJoinedRight(), "tableRefRight", null, 1, 1, TableJoined.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getTableJoined_TableRefLeft(), this.getTableReference(), this.getTableReference_TableJoinedLeft(), "tableRefLeft", null, 1, 1, TableJoined.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(withTableSpecificationEClass, WithTableSpecification.class, "WithTableSpecification", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getWithTableSpecification_QueryExpressionRoot(), this.getQueryExpressionRoot(), this.getQueryExpressionRoot_WithClause(), "queryExpressionRoot", null, 0, 1, WithTableSpecification.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getWithTableSpecification_WithTableQueryExpr(), this.getQueryExpressionBody(), this.getQueryExpressionBody_WithTableSpecification(), "withTableQueryExpr", null, 1, 1, WithTableSpecification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getWithTableSpecification_WithTableReferences(), this.getWithTableReference(), this.getWithTableReference_WithTableSpecification(), "withTableReferences", null, 0, -1, WithTableSpecification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getWithTableSpecification_ColumnNameList(), this.getColumnName(), this.getColumnName_WithTableSpecification(), "columnNameList", null, 0, -1, WithTableSpecification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(predicateEClass, Predicate.class, "Predicate", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getPredicate_NegatedPredicate(), ecorePackage.getEBoolean(), "negatedPredicate", null, 0, 1, Predicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEAttribute(getPredicate_HasSelectivity(), ecorePackage.getEBoolean(), "hasSelectivity", null, 0, 1, Predicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEAttribute(getPredicate_SelectivityValue(), ecorePackage.getEIntegerObject(), "selectivityValue", null, 0, 1, Predicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(searchConditionCombinedEClass, SearchConditionCombined.class, "SearchConditionCombined", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getSearchConditionCombined_CombinedOperator(), this.getSearchConditionCombinedOperator(), "combinedOperator", null, 0, 1, SearchConditionCombined.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getSearchConditionCombined_LeftCondition(), this.getQuerySearchCondition(), this.getQuerySearchCondition_CombinedLeft(), "leftCondition", null, 1, 1, SearchConditionCombined.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getSearchConditionCombined_RightCondition(), this.getQuerySearchCondition(), this.getQuerySearchCondition_CombinedRight(), "rightCondition", null, 1, 1, SearchConditionCombined.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(orderByValueExpressionEClass, OrderByValueExpression.class, "OrderByValueExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getOrderByValueExpression_ValueExpr(), this.getQueryValueExpression(), this.getQueryValueExpression_OrderByValueExpr(), "valueExpr", null, 1, 1, OrderByValueExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(queryCombinedEClass, QueryCombined.class, "QueryCombined", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getQueryCombined_CombinedOperator(), this.getQueryCombinedOperator(), "combinedOperator", null, 0, 1, QueryCombined.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryCombined_LeftQuery(), this.getQueryExpressionBody(), this.getQueryExpressionBody_CombinedLeft(), "leftQuery", null, 1, 1, QueryCombined.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryCombined_RightQuery(), this.getQueryExpressionBody(), this.getQueryExpressionBody_CombinedRight(), "rightQuery", null, 1, 1, QueryCombined.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(querySelectEClass, QuerySelect.class, "QuerySelect", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getQuerySelect_Distinct(), ecorePackage.getEBoolean(), "distinct", null, 0, 1, QuerySelect.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQuerySelect_HavingClause(), this.getQuerySearchCondition(), this.getQuerySearchCondition_QuerySelectHaving(), "havingClause", null, 0, 1, QuerySelect.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQuerySelect_WhereClause(), this.getQuerySearchCondition(), this.getQuerySearchCondition_QuerySelectWhere(), "whereClause", null, 0, 1, QuerySelect.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQuerySelect_GroupByClause(), this.getGroupingSpecification(), this.getGroupingSpecification_QuerySelect(), "groupByClause", null, 0, -1, QuerySelect.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQuerySelect_SelectClause(), this.getQueryResultSpecification(), this.getQueryResultSpecification_QuerySelect(), "selectClause", null, 0, -1, QuerySelect.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQuerySelect_FromClause(), this.getTableReference(), this.getTableReference_QuerySelect(), "fromClause", null, 1, -1, QuerySelect.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQuerySelect_IntoClause(), this.getValueExpressionVariable(), this.getValueExpressionVariable_QuerySelect(), "intoClause", null, 0, -1, QuerySelect.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(groupingSpecificationEClass, GroupingSpecification.class, "GroupingSpecification", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getGroupingSpecification_QuerySelect(), this.getQuerySelect(), this.getQuerySelect_GroupByClause(), "querySelect", null, 0, 1, GroupingSpecification.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(queryResultSpecificationEClass, QueryResultSpecification.class, "QueryResultSpecification", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getQueryResultSpecification_QuerySelect(), this.getQuerySelect(), this.getQuerySelect_SelectClause(), "querySelect", null, 0, 1, QueryResultSpecification.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(resultTableAllColumnsEClass, ResultTableAllColumns.class, "ResultTableAllColumns", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getResultTableAllColumns_TableExpr(), this.getTableExpression(), this.getTableExpression_ResultTableAllColumns(), "tableExpr", null, 1, 1, ResultTableAllColumns.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(resultColumnEClass, ResultColumn.class, "ResultColumn", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getResultColumn_ValueExpr(), this.getQueryValueExpression(), this.getQueryValueExpression_ResultColumn(), "valueExpr", null, 1, 1, ResultColumn.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getResultColumn_OrderByResultCol(), this.getOrderByResultColumn(), this.getOrderByResultColumn_ResultCol(), "orderByResultCol", null, 0, -1, ResultColumn.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(predicateBasicEClass, PredicateBasic.class, "PredicateBasic", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getPredicateBasic_ComparisonOperator(), this.getPredicateComparisonOperator(), "comparisonOperator", null, 0, 1, PredicateBasic.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getPredicateBasic_RightValueExpr(), this.getQueryValueExpression(), this.getQueryValueExpression_BasicRight(), "rightValueExpr", null, 1, 1, PredicateBasic.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getPredicateBasic_LeftValueExpr(), this.getQueryValueExpression(), this.getQueryValueExpression_BasicLeft(), "leftValueExpr", null, 1, 1, PredicateBasic.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(predicateQuantifiedEClass, PredicateQuantified.class, "PredicateQuantified", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+        initEClass(predicateBetweenEClass, PredicateBetween.class, "PredicateBetween", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getPredicateBetween_NotBetween(), ecorePackage.getEBoolean(), "notBetween", null, 0, 1, PredicateBetween.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getPredicateBetween_LeftValueExpr(), this.getQueryValueExpression(), this.getQueryValueExpression_BetweenLeft(), "leftValueExpr", null, 1, 1, PredicateBetween.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getPredicateBetween_RightValueExpr1(), this.getQueryValueExpression(), this.getQueryValueExpression_BetweenRight1(), "rightValueExpr1", null, 1, 1, PredicateBetween.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getPredicateBetween_RightValueExpr2(), this.getQueryValueExpression(), this.getQueryValueExpression_BetweenRight2(), "rightValueExpr2", null, 1, 1, PredicateBetween.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(predicateExistsEClass, PredicateExists.class, "PredicateExists", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getPredicateExists_QueryExpr(), this.getQueryExpressionBody(), this.getQueryExpressionBody_PredicateExists(), "queryExpr", null, 1, 1, PredicateExists.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(predicateInEClass, PredicateIn.class, "PredicateIn", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getPredicateIn_NotIn(), ecorePackage.getEBoolean(), "notIn", null, 0, 1, PredicateIn.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(predicateLikeEClass, PredicateLike.class, "PredicateLike", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getPredicateLike_NotLike(), ecorePackage.getEBoolean(), "notLike", null, 0, 1, PredicateLike.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getPredicateLike_PatternValueExpr(), this.getQueryValueExpression(), this.getQueryValueExpression_LikePattern(), "patternValueExpr", null, 1, 1, PredicateLike.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getPredicateLike_MatchingValueExpr(), this.getQueryValueExpression(), this.getQueryValueExpression_LikeMatching(), "matchingValueExpr", null, 1, 1, PredicateLike.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getPredicateLike_EscapeValueExpr(), this.getQueryValueExpression(), this.getQueryValueExpression_LikeEscape(), "escapeValueExpr", null, 0, 1, PredicateLike.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(predicateIsNullEClass, PredicateIsNull.class, "PredicateIsNull", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getPredicateIsNull_NotNull(), ecorePackage.getEBoolean(), "notNull", null, 0, 1, PredicateIsNull.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getPredicateIsNull_ValueExpr(), this.getQueryValueExpression(), this.getQueryValueExpression_PredicateNull(), "valueExpr", null, 1, 1, PredicateIsNull.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(predicateQuantifiedValueSelectEClass, PredicateQuantifiedValueSelect.class, "PredicateQuantifiedValueSelect", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getPredicateQuantifiedValueSelect_QuantifiedType(), this.getPredicateQuantifiedType(), "quantifiedType", null, 0, 1, PredicateQuantifiedValueSelect.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEAttribute(getPredicateQuantifiedValueSelect_ComparisonOperator(), this.getPredicateComparisonOperator(), "comparisonOperator", null, 0, 1, PredicateQuantifiedValueSelect.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getPredicateQuantifiedValueSelect_QueryExpr(), this.getQueryExpressionRoot(), this.getQueryExpressionRoot_QuantifiedValueSelectRight(), "queryExpr", null, 1, 1, PredicateQuantifiedValueSelect.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getPredicateQuantifiedValueSelect_ValueExpr(), this.getQueryValueExpression(), this.getQueryValueExpression_QuantifiedValueSelectLeft(), "valueExpr", null, 1, 1, PredicateQuantifiedValueSelect.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(predicateQuantifiedRowSelectEClass, PredicateQuantifiedRowSelect.class, "PredicateQuantifiedRowSelect", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getPredicateQuantifiedRowSelect_QuantifiedType(), this.getPredicateQuantifiedType(), "quantifiedType", null, 0, 1, PredicateQuantifiedRowSelect.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getPredicateQuantifiedRowSelect_QueryExpr(), this.getQueryExpressionRoot(), this.getQueryExpressionRoot_QuantifiedRowSelectRight(), "queryExpr", null, 1, 1, PredicateQuantifiedRowSelect.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getPredicateQuantifiedRowSelect_ValueExprList(), this.getQueryValueExpression(), this.getQueryValueExpression_QuantifiedRowSelectLeft(), "valueExprList", null, 1, -1, PredicateQuantifiedRowSelect.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(predicateInValueSelectEClass, PredicateInValueSelect.class, "PredicateInValueSelect", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getPredicateInValueSelect_QueryExpr(), this.getQueryExpressionRoot(), this.getQueryExpressionRoot_InValueSelectRight(), "queryExpr", null, 1, 1, PredicateInValueSelect.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getPredicateInValueSelect_ValueExpr(), this.getQueryValueExpression(), this.getQueryValueExpression_InValueSelectLeft(), "valueExpr", null, 1, 1, PredicateInValueSelect.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(predicateInValueListEClass, PredicateInValueList.class, "PredicateInValueList", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getPredicateInValueList_ValueExprList(), this.getQueryValueExpression(), this.getQueryValueExpression_InValueListRight(), "valueExprList", null, 1, -1, PredicateInValueList.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getPredicateInValueList_ValueExpr(), this.getQueryValueExpression(), this.getQueryValueExpression_InValueListLeft(), "valueExpr", null, 1, 1, PredicateInValueList.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(predicateInValueRowSelectEClass, PredicateInValueRowSelect.class, "PredicateInValueRowSelect", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getPredicateInValueRowSelect_ValueExprList(), this.getQueryValueExpression(), this.getQueryValueExpression_InValueRowSelectLeft(), "valueExprList", null, 1, -1, PredicateInValueRowSelect.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getPredicateInValueRowSelect_QueryExpr(), this.getQueryExpressionRoot(), this.getQueryExpressionRoot_InValueRowSelectRight(), "queryExpr", null, 1, 1, PredicateInValueRowSelect.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(valueExpressionSimpleEClass, ValueExpressionSimple.class, "ValueExpressionSimple", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getValueExpressionSimple_Value(), ecorePackage.getEString(), "value", null, 0, 1, ValueExpressionSimple.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(valueExpressionColumnEClass, ValueExpressionColumn.class, "ValueExpressionColumn", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getValueExpressionColumn_AssignmentExprTarget(), this.getUpdateAssignmentExpression(), this.getUpdateAssignmentExpression_TargetColumnList(), "assignmentExprTarget", null, 0, -1, ValueExpressionColumn.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getValueExpressionColumn_ParentTableExpr(), this.getTableExpression(), this.getTableExpression_ColumnList(), "parentTableExpr", null, 1, 1, ValueExpressionColumn.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getValueExpressionColumn_InsertStatement(), this.getQueryInsertStatement(), this.getQueryInsertStatement_TargetColumnList(), "insertStatement", null, 0, -1, ValueExpressionColumn.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getValueExpressionColumn_TableExpr(), this.getTableExpression(), this.getTableExpression_ValueExprColumns(), "tableExpr", null, 1, 1, ValueExpressionColumn.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getValueExpressionColumn_TableInDatabase(), this.getTableInDatabase(), this.getTableInDatabase_DerivedColumnList(), "tableInDatabase", null, 0, 1, ValueExpressionColumn.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getValueExpressionColumn_MergeInsertSpec(), this.getMergeInsertSpecification(), this.getMergeInsertSpecification_TargetColumnList(), "mergeInsertSpec", null, 0, -1, ValueExpressionColumn.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(valueExpressionVariableEClass, ValueExpressionVariable.class, "ValueExpressionVariable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getValueExpressionVariable_QuerySelect(), this.getQuerySelect(), this.getQuerySelect_IntoClause(), "querySelect", null, 0, 1, ValueExpressionVariable.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(valueExpressionScalarSelectEClass, ValueExpressionScalarSelect.class, "ValueExpressionScalarSelect", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getValueExpressionScalarSelect_QueryExpr(), this.getQueryExpressionRoot(), this.getQueryExpressionRoot_ValExprScalarSelect(), "queryExpr", null, 1, 1, ValueExpressionScalarSelect.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(valueExpressionLabeledDurationEClass, ValueExpressionLabeledDuration.class, "ValueExpressionLabeledDuration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getValueExpressionLabeledDuration_LabeledDurationType(), this.getValueExpressionLabeledDurationType(), "labeledDurationType", null, 0, 1, ValueExpressionLabeledDuration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getValueExpressionLabeledDuration_ValueExpr(), this.getQueryValueExpression(), this.getQueryValueExpression_ValueExprLabeledDuration(), "valueExpr", null, 1, 1, ValueExpressionLabeledDuration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(valueExpressionCaseEClass, ValueExpressionCase.class, "ValueExpressionCase", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getValueExpressionCase_CaseElse(), this.getValueExpressionCaseElse(), this.getValueExpressionCaseElse_ValueExprCase(), "caseElse", null, 0, 1, ValueExpressionCase.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(valueExpressionCastEClass, ValueExpressionCast.class, "ValueExpressionCast", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getValueExpressionCast_ValueExpr(), this.getQueryValueExpression(), this.getQueryValueExpression_ValueExprCast(), "valueExpr", null, 1, 1, ValueExpressionCast.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(valueExpressionNullValueEClass, ValueExpressionNullValue.class, "ValueExpressionNullValue", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+        initEClass(valueExpressionDefaultValueEClass, ValueExpressionDefaultValue.class, "ValueExpressionDefaultValue", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+        initEClass(valueExpressionFunctionEClass, ValueExpressionFunction.class, "ValueExpressionFunction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getValueExpressionFunction_SpecialRegister(), ecorePackage.getEBoolean(), "specialRegister", null, 0, 1, ValueExpressionFunction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEAttribute(getValueExpressionFunction_Distinct(), ecorePackage.getEBoolean(), "distinct", null, 0, 1, ValueExpressionFunction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEAttribute(getValueExpressionFunction_ColumnFunction(), ecorePackage.getEBoolean(), "columnFunction", null, 0, 1, ValueExpressionFunction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getValueExpressionFunction_ParameterList(), this.getQueryValueExpression(), this.getQueryValueExpression_ValueExprFunction(), "parameterList", null, 0, -1, ValueExpressionFunction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getValueExpressionFunction_Function(), theSQLRoutinesPackage.getFunction(), null, "function", null, 1, 1, ValueExpressionFunction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(valueExpressionCombinedEClass, ValueExpressionCombined.class, "ValueExpressionCombined", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getValueExpressionCombined_CombinedOperator(), this.getValueExpressionCombinedOperator(), "combinedOperator", null, 0, 1, ValueExpressionCombined.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getValueExpressionCombined_LeftValueExpr(), this.getQueryValueExpression(), this.getQueryValueExpression_ValueExprCombinedLeft(), "leftValueExpr", null, 1, 1, ValueExpressionCombined.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getValueExpressionCombined_RightValueExpr(), this.getQueryValueExpression(), this.getQueryValueExpression_ValueExprCombinedRight(), "rightValueExpr", null, 1, 1, ValueExpressionCombined.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(groupingSetsEClass, GroupingSets.class, "GroupingSets", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getGroupingSets_GroupingSetsElementList(), this.getGroupingSetsElement(), this.getGroupingSetsElement_GroupingSets(), "groupingSetsElementList", null, 1, -1, GroupingSets.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(groupingEClass, Grouping.class, "Grouping", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getGrouping_GroupingSetsElementExpr(), this.getGroupingSetsElementExpression(), this.getGroupingSetsElementExpression_Grouping(), "groupingSetsElementExpr", null, 0, 1, Grouping.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(groupingSetsElementEClass, GroupingSetsElement.class, "GroupingSetsElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getGroupingSetsElement_GroupingSets(), this.getGroupingSets(), this.getGroupingSets_GroupingSetsElementList(), "groupingSets", null, 0, 1, GroupingSetsElement.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(groupingSetsElementSublistEClass, GroupingSetsElementSublist.class, "GroupingSetsElementSublist", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getGroupingSetsElementSublist_GroupingSetsElementExprList(), this.getGroupingSetsElementExpression(), this.getGroupingSetsElementExpression_GroupingSetsElementSublist(), "groupingSetsElementExprList", null, 1, -1, GroupingSetsElementSublist.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(groupingSetsElementExpressionEClass, GroupingSetsElementExpression.class, "GroupingSetsElementExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getGroupingSetsElementExpression_GroupingSetsElementSublist(), this.getGroupingSetsElementSublist(), this.getGroupingSetsElementSublist_GroupingSetsElementExprList(), "groupingSetsElementSublist", null, 0, 1, GroupingSetsElementExpression.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getGroupingSetsElementExpression_Grouping(), this.getGrouping(), this.getGrouping_GroupingSetsElementExpr(), "grouping", null, 1, 1, GroupingSetsElementExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(superGroupEClass, SuperGroup.class, "SuperGroup", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getSuperGroup_SuperGroupType(), this.getSuperGroupType(), "superGroupType", null, 0, 1, SuperGroup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getSuperGroup_SuperGroupElementList(), this.getSuperGroupElement(), this.getSuperGroupElement_SuperGroup(), "superGroupElementList", null, 0, -1, SuperGroup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(groupingExpressionEClass, GroupingExpression.class, "GroupingExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getGroupingExpression_ValueExpr(), this.getQueryValueExpression(), this.getQueryValueExpression_GroupingExpr(), "valueExpr", null, 1, 1, GroupingExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getGroupingExpression_SuperGroupElementExpr(), this.getSuperGroupElementExpression(), this.getSuperGroupElementExpression_GroupingExpr(), "superGroupElementExpr", null, 0, 1, GroupingExpression.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(superGroupElementEClass, SuperGroupElement.class, "SuperGroupElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getSuperGroupElement_SuperGroup(), this.getSuperGroup(), this.getSuperGroup_SuperGroupElementList(), "superGroup", null, 0, 1, SuperGroupElement.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(superGroupElementSublistEClass, SuperGroupElementSublist.class, "SuperGroupElementSublist", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getSuperGroupElementSublist_SuperGroupElementExprList(), this.getSuperGroupElementExpression(), this.getSuperGroupElementExpression_SuperGroupElementSublist(), "superGroupElementExprList", null, 1, -1, SuperGroupElementSublist.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(superGroupElementExpressionEClass, SuperGroupElementExpression.class, "SuperGroupElementExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getSuperGroupElementExpression_SuperGroupElementSublist(), this.getSuperGroupElementSublist(), this.getSuperGroupElementSublist_SuperGroupElementExprList(), "superGroupElementSublist", null, 0, 1, SuperGroupElementExpression.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getSuperGroupElementExpression_GroupingExpr(), this.getGroupingExpression(), this.getGroupingExpression_SuperGroupElementExpr(), "groupingExpr", null, 1, 1, SuperGroupElementExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(valueExpressionCaseSearchEClass, ValueExpressionCaseSearch.class, "ValueExpressionCaseSearch", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getValueExpressionCaseSearch_SearchContentList(), this.getValueExpressionCaseSearchContent(), this.getValueExpressionCaseSearchContent_ValueExprCaseSearch(), "searchContentList", null, 1, -1, ValueExpressionCaseSearch.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(valueExpressionCaseSimpleEClass, ValueExpressionCaseSimple.class, "ValueExpressionCaseSimple", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getValueExpressionCaseSimple_ContentList(), this.getValueExpressionCaseSimpleContent(), this.getValueExpressionCaseSimpleContent_ValueExprCaseSimple(), "contentList", null, 1, -1, ValueExpressionCaseSimple.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getValueExpressionCaseSimple_ValueExpr(), this.getQueryValueExpression(), this.getQueryValueExpression_ValueExprCaseSimple(), "valueExpr", null, 1, 1, ValueExpressionCaseSimple.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(valueExpressionCaseElseEClass, ValueExpressionCaseElse.class, "ValueExpressionCaseElse", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getValueExpressionCaseElse_ValueExprCase(), this.getValueExpressionCase(), this.getValueExpressionCase_CaseElse(), "valueExprCase", null, 0, 1, ValueExpressionCaseElse.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getValueExpressionCaseElse_ValueExpr(), this.getQueryValueExpression(), this.getQueryValueExpression_ValueExprCaseElse(), "valueExpr", null, 0, 1, ValueExpressionCaseElse.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(valueExpressionCaseSearchContentEClass, ValueExpressionCaseSearchContent.class, "ValueExpressionCaseSearchContent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getValueExpressionCaseSearchContent_ValueExpr(), this.getQueryValueExpression(), this.getQueryValueExpression_ValueExprCaseSearchContent(), "valueExpr", null, 1, 1, ValueExpressionCaseSearchContent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getValueExpressionCaseSearchContent_SearchCondition(), this.getQuerySearchCondition(), this.getQuerySearchCondition_ValueExprCaseSearchContent(), "searchCondition", null, 1, 1, ValueExpressionCaseSearchContent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getValueExpressionCaseSearchContent_ValueExprCaseSearch(), this.getValueExpressionCaseSearch(), this.getValueExpressionCaseSearch_SearchContentList(), "valueExprCaseSearch", null, 0, 1, ValueExpressionCaseSearchContent.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(valueExpressionCaseSimpleContentEClass, ValueExpressionCaseSimpleContent.class, "ValueExpressionCaseSimpleContent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getValueExpressionCaseSimpleContent_ValueExprCaseSimple(), this.getValueExpressionCaseSimple(), this.getValueExpressionCaseSimple_ContentList(), "valueExprCaseSimple", null, 0, 1, ValueExpressionCaseSimpleContent.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getValueExpressionCaseSimpleContent_WhenValueExpr(), this.getQueryValueExpression(), this.getQueryValueExpression_ValueExprCaseSimpleContentWhen(), "whenValueExpr", null, 1, 1, ValueExpressionCaseSimpleContent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getValueExpressionCaseSimpleContent_ResultValueExpr(), this.getQueryValueExpression(), this.getQueryValueExpression_ValueExprCaseSimpleContentResult(), "resultValueExpr", null, 1, 1, ValueExpressionCaseSimpleContent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(tableInDatabaseEClass, TableInDatabase.class, "TableInDatabase", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getTableInDatabase_UpdateStatement(), this.getQueryUpdateStatement(), this.getQueryUpdateStatement_TargetTable(), "updateStatement", null, 0, 1, TableInDatabase.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getTableInDatabase_DeleteStatement(), this.getQueryDeleteStatement(), this.getQueryDeleteStatement_TargetTable(), "deleteStatement", null, 0, 1, TableInDatabase.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getTableInDatabase_InsertStatement(), this.getQueryInsertStatement(), this.getQueryInsertStatement_TargetTable(), "insertStatement", null, 0, 1, TableInDatabase.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getTableInDatabase_DatabaseTable(), theSQLTablesPackage.getTable(), null, "databaseTable", null, 1, 1, TableInDatabase.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getTableInDatabase_DerivedColumnList(), this.getValueExpressionColumn(), this.getValueExpressionColumn_TableInDatabase(), "derivedColumnList", null, 0, -1, TableInDatabase.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(tableFunctionEClass, TableFunction.class, "TableFunction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getTableFunction_Function(), theSQLRoutinesPackage.getFunction(), null, "function", null, 1, 1, TableFunction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getTableFunction_ParameterList(), this.getQueryValueExpression(), this.getQueryValueExpression_TableFunction(), "parameterList", null, 0, -1, TableFunction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(sqlQueryObjectEClass, SQLQueryObject.class, "SQLQueryObject", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+        addEOperation(sqlQueryObjectEClass, ecorePackage.getEString(), "getSQL", 0, 1);
+
+        EOperation op = addEOperation(sqlQueryObjectEClass, null, "setSQL");
+        addEParameter(op, ecorePackage.getEString(), "sqlText", 0, 1);
+
+        initEClass(queryChangeStatementEClass, QueryChangeStatement.class, "QueryChangeStatement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+        initEClass(columnNameEClass, ColumnName.class, "ColumnName", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getColumnName_TableCorrelation(), this.getTableCorrelation(), this.getTableCorrelation_ColumnNameList(), "tableCorrelation", null, 0, 1, ColumnName.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getColumnName_WithTableSpecification(), this.getWithTableSpecification(), this.getWithTableSpecification_ColumnNameList(), "withTableSpecification", null, 1, 1, ColumnName.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(tableNestedEClass, TableNested.class, "TableNested", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getTableNested_NestedTableRef(), this.getTableReference(), this.getTableReference_Nest(), "nestedTableRef", null, 1, 1, TableNested.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(queryMergeStatementEClass, QueryMergeStatement.class, "QueryMergeStatement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getQueryMergeStatement_TargetTable(), this.getMergeTargetTable(), this.getMergeTargetTable_MergeStatement(), "targetTable", null, 1, 1, QueryMergeStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryMergeStatement_SourceTable(), this.getMergeSourceTable(), this.getMergeSourceTable_MergeStatement(), "sourceTable", null, 1, 1, QueryMergeStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryMergeStatement_OnCondition(), this.getMergeOnCondition(), this.getMergeOnCondition_MergeStatement(), "onCondition", null, 1, 1, QueryMergeStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getQueryMergeStatement_OperationSpecList(), this.getMergeOperationSpecification(), this.getMergeOperationSpecification_MergeStatement(), "operationSpecList", null, 1, -1, QueryMergeStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(searchConditionNestedEClass, SearchConditionNested.class, "SearchConditionNested", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getSearchConditionNested_NestedCondition(), this.getQuerySearchCondition(), this.getQuerySearchCondition_Nest(), "nestedCondition", null, 1, 1, SearchConditionNested.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(valueExpressionNestedEClass, ValueExpressionNested.class, "ValueExpressionNested", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getValueExpressionNested_NestedValueExpr(), this.getQueryValueExpression(), this.getQueryValueExpression_Nest(), "nestedValueExpr", null, 1, 1, ValueExpressionNested.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(valueExpressionAtomicEClass, ValueExpressionAtomic.class, "ValueExpressionAtomic", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+        initEClass(orderBySpecificationEClass, OrderBySpecification.class, "OrderBySpecification", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getOrderBySpecification_Descending(), ecorePackage.getEBoolean(), "descending", null, 0, 1, OrderBySpecification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEAttribute(getOrderBySpecification_OrderingSpecOption(), this.getOrderingSpecType(), "OrderingSpecOption", null, 0, 1, OrderBySpecification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEAttribute(getOrderBySpecification_NullOrderingOption(), this.getNullOrderingType(), "NullOrderingOption", null, 0, 1, OrderBySpecification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getOrderBySpecification_SelectStatement(), this.getQuerySelectStatement(), this.getQuerySelectStatement_OrderByClause(), "selectStatement", null, 0, 1, OrderBySpecification.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getOrderBySpecification_Query(), this.getQueryExpressionBody(), this.getQueryExpressionBody_SortSpecList(), "query", null, 0, 1, OrderBySpecification.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(orderByOrdinalEClass, OrderByOrdinal.class, "OrderByOrdinal", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getOrderByOrdinal_OrdinalValue(), ecorePackage.getEInt(), "ordinalValue", null, 0, 1, OrderByOrdinal.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(tableCorrelationEClass, TableCorrelation.class, "TableCorrelation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getTableCorrelation_TableExpr(), this.getTableExpression(), this.getTableExpression_TableCorrelation(), "tableExpr", null, 0, 1, TableCorrelation.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getTableCorrelation_ColumnNameList(), this.getColumnName(), this.getColumnName_TableCorrelation(), "columnNameList", null, 0, -1, TableCorrelation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(updateSourceEClass, UpdateSource.class, "UpdateSource", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getUpdateSource_UpdateAssignmentExpr(), this.getUpdateAssignmentExpression(), this.getUpdateAssignmentExpression_UpdateSource(), "updateAssignmentExpr", null, 0, 1, UpdateSource.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(updateSourceExprListEClass, UpdateSourceExprList.class, "UpdateSourceExprList", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getUpdateSourceExprList_ValueExprList(), this.getQueryValueExpression(), this.getQueryValueExpression_UpdateSourceExprList(), "valueExprList", null, 1, -1, UpdateSourceExprList.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(updateSourceQueryEClass, UpdateSourceQuery.class, "UpdateSourceQuery", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getUpdateSourceQuery_QueryExpr(), this.getQueryExpressionBody(), this.getQueryExpressionBody_UpdateSourceQuery(), "queryExpr", null, 1, 1, UpdateSourceQuery.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(orderByResultColumnEClass, OrderByResultColumn.class, "OrderByResultColumn", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getOrderByResultColumn_ResultCol(), this.getResultColumn(), this.getResultColumn_OrderByResultCol(), "resultCol", null, 1, 1, OrderByResultColumn.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(withTableReferenceEClass, WithTableReference.class, "WithTableReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getWithTableReference_WithTableSpecification(), this.getWithTableSpecification(), this.getWithTableSpecification_WithTableReferences(), "withTableSpecification", null, 1, 1, WithTableReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(queryNestedEClass, QueryNested.class, "QueryNested", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getQueryNested_NestedQuery(), this.getQueryExpressionBody(), this.getQueryExpressionBody_QueryNest(), "nestedQuery", null, 1, 1, QueryNested.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(valueExpressionRowEClass, ValueExpressionRow.class, "ValueExpressionRow", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getValueExpressionRow_ValueExprList(), this.getQueryValueExpression(), this.getQueryValueExpression_ValueExprRow(), "valueExprList", null, 0, -1, ValueExpressionRow.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(mergeTargetTableEClass, MergeTargetTable.class, "MergeTargetTable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getMergeTargetTable_MergeStatement(), this.getQueryMergeStatement(), this.getQueryMergeStatement_TargetTable(), "mergeStatement", null, 0, 1, MergeTargetTable.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getMergeTargetTable_TableExpr(), this.getTableExpression(), this.getTableExpression_MergeTargetTable(), "tableExpr", null, 1, 1, MergeTargetTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(mergeSourceTableEClass, MergeSourceTable.class, "MergeSourceTable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getMergeSourceTable_QueryMergeStatement(), this.getQueryMergeStatement(), null, "QueryMergeStatement", null, 0, -1, MergeSourceTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getMergeSourceTable_MergeStatement(), this.getQueryMergeStatement(), this.getQueryMergeStatement_SourceTable(), "mergeStatement", null, 0, 1, MergeSourceTable.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getMergeSourceTable_TableRef(), this.getTableReference(), this.getTableReference_MergeSourceTable(), "tableRef", null, 1, 1, MergeSourceTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(mergeOnConditionEClass, MergeOnCondition.class, "MergeOnCondition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getMergeOnCondition_MergeStatement(), this.getQueryMergeStatement(), this.getQueryMergeStatement_OnCondition(), "mergeStatement", null, 0, 1, MergeOnCondition.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getMergeOnCondition_SearchCondition(), this.getQuerySearchCondition(), this.getQuerySearchCondition_MergeOnCondition(), "searchCondition", null, 1, 1, MergeOnCondition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(mergeUpdateSpecificationEClass, MergeUpdateSpecification.class, "MergeUpdateSpecification", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getMergeUpdateSpecification_AssignementExprList(), this.getUpdateAssignmentExpression(), this.getUpdateAssignmentExpression_MergeUpdateSpec(), "assignementExprList", null, 1, -1, MergeUpdateSpecification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(mergeInsertSpecificationEClass, MergeInsertSpecification.class, "MergeInsertSpecification", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getMergeInsertSpecification_TargetColumnList(), this.getValueExpressionColumn(), this.getValueExpressionColumn_MergeInsertSpec(), "targetColumnList", null, 0, -1, MergeInsertSpecification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getMergeInsertSpecification_SourceValuesRow(), this.getValuesRow(), null, "sourceValuesRow", null, 1, 1, MergeInsertSpecification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(mergeOperationSpecificationEClass, MergeOperationSpecification.class, "MergeOperationSpecification", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getMergeOperationSpecification_MergeStatement(), this.getQueryMergeStatement(), this.getQueryMergeStatement_OperationSpecList(), "mergeStatement", null, 0, 1, MergeOperationSpecification.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(updateOfColumnEClass, UpdateOfColumn.class, "UpdateOfColumn", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getUpdateOfColumn_UpdatabilityExpr(), this.getUpdatabilityExpression(), this.getUpdatabilityExpression_UpdateOfColumnList(), "updatabilityExpr", null, 0, 1, UpdateOfColumn.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(updatabilityExpressionEClass, UpdatabilityExpression.class, "UpdatabilityExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getUpdatabilityExpression_UpdatabilityType(), this.getUpdatabilityType(), "updatabilityType", null, 0, 1, UpdatabilityExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getUpdatabilityExpression_UpdateOfColumnList(), this.getUpdateOfColumn(), this.getUpdateOfColumn_UpdatabilityExpr(), "updateOfColumnList", null, 0, -1, UpdatabilityExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getUpdatabilityExpression_SelectStatement(), this.getQuerySelectStatement(), this.getQuerySelectStatement_UpdatabilityExpr(), "selectStatement", null, 0, 1, UpdatabilityExpression.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(callStatementEClass, CallStatement.class, "CallStatement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getCallStatement_ArgumentList(), this.getQueryValueExpression(), this.getQueryValueExpression_CallStatement(), "argumentList", null, 0, -1, CallStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getCallStatement_ProcedureRef(), this.getProcedureReference(), this.getProcedureReference_CallStatement(), "procedureRef", null, 1, 1, CallStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(procedureReferenceEClass, ProcedureReference.class, "ProcedureReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getProcedureReference_CallStatement(), this.getCallStatement(), this.getCallStatement_ProcedureRef(), "callStatement", null, 1, 1, ProcedureReference.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getProcedureReference_Procedure(), theSQLRoutinesPackage.getProcedure(), null, "procedure", null, 1, 1, ProcedureReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(tableQueryLateralEClass, TableQueryLateral.class, "TableQueryLateral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getTableQueryLateral_Query(), this.getQueryExpressionBody(), null, "query", null, 1, 1, TableQueryLateral.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        // Initialize enums and add enum literals
+        initEEnum(superGroupTypeEEnum, SuperGroupType.class, "SuperGroupType");
+        addEEnumLiteral(superGroupTypeEEnum, SuperGroupType.CUBE_LITERAL);
+        addEEnumLiteral(superGroupTypeEEnum, SuperGroupType.GRANDTOTAL_LITERAL);
+        addEEnumLiteral(superGroupTypeEEnum, SuperGroupType.ROLLUP_LITERAL);
+
+        initEEnum(predicateQuantifiedTypeEEnum, PredicateQuantifiedType.class, "PredicateQuantifiedType");
+        addEEnumLiteral(predicateQuantifiedTypeEEnum, PredicateQuantifiedType.SOME_LITERAL);
+        addEEnumLiteral(predicateQuantifiedTypeEEnum, PredicateQuantifiedType.ANY_LITERAL);
+        addEEnumLiteral(predicateQuantifiedTypeEEnum, PredicateQuantifiedType.ALL_LITERAL);
+
+        initEEnum(predicateComparisonOperatorEEnum, PredicateComparisonOperator.class, "PredicateComparisonOperator");
+        addEEnumLiteral(predicateComparisonOperatorEEnum, PredicateComparisonOperator.EQUAL_LITERAL);
+        addEEnumLiteral(predicateComparisonOperatorEEnum, PredicateComparisonOperator.NOT_EQUAL_LITERAL);
+        addEEnumLiteral(predicateComparisonOperatorEEnum, PredicateComparisonOperator.LESS_THAN_LITERAL);
+        addEEnumLiteral(predicateComparisonOperatorEEnum, PredicateComparisonOperator.GREATER_THAN_LITERAL);
+        addEEnumLiteral(predicateComparisonOperatorEEnum, PredicateComparisonOperator.LESS_THAN_OR_EQUAL_LITERAL);
+        addEEnumLiteral(predicateComparisonOperatorEEnum, PredicateComparisonOperator.GREATER_THAN_OR_EQUAL_LITERAL);
+
+        initEEnum(searchConditionCombinedOperatorEEnum, SearchConditionCombinedOperator.class, "SearchConditionCombinedOperator");
+        addEEnumLiteral(searchConditionCombinedOperatorEEnum, SearchConditionCombinedOperator.AND_LITERAL);
+        addEEnumLiteral(searchConditionCombinedOperatorEEnum, SearchConditionCombinedOperator.OR_LITERAL);
+
+        initEEnum(tableJoinedOperatorEEnum, TableJoinedOperator.class, "TableJoinedOperator");
+        addEEnumLiteral(tableJoinedOperatorEEnum, TableJoinedOperator.DEFAULT_INNER_LITERAL);
+        addEEnumLiteral(tableJoinedOperatorEEnum, TableJoinedOperator.EXPLICIT_INNER_LITERAL);
+        addEEnumLiteral(tableJoinedOperatorEEnum, TableJoinedOperator.LEFT_OUTER_LITERAL);
+        addEEnumLiteral(tableJoinedOperatorEEnum, TableJoinedOperator.RIGHT_OUTER_LITERAL);
+        addEEnumLiteral(tableJoinedOperatorEEnum, TableJoinedOperator.FULL_OUTER_LITERAL);
+
+        initEEnum(queryCombinedOperatorEEnum, QueryCombinedOperator.class, "QueryCombinedOperator");
+        addEEnumLiteral(queryCombinedOperatorEEnum, QueryCombinedOperator.UNION_LITERAL);
+        addEEnumLiteral(queryCombinedOperatorEEnum, QueryCombinedOperator.UNION_ALL_LITERAL);
+        addEEnumLiteral(queryCombinedOperatorEEnum, QueryCombinedOperator.INTERSECT_LITERAL);
+        addEEnumLiteral(queryCombinedOperatorEEnum, QueryCombinedOperator.INTERSECT_ALL_LITERAL);
+        addEEnumLiteral(queryCombinedOperatorEEnum, QueryCombinedOperator.EXCEPT_LITERAL);
+        addEEnumLiteral(queryCombinedOperatorEEnum, QueryCombinedOperator.EXCEPT_ALL_LITERAL);
+
+        initEEnum(valueExpressionUnaryOperatorEEnum, ValueExpressionUnaryOperator.class, "ValueExpressionUnaryOperator");
+        addEEnumLiteral(valueExpressionUnaryOperatorEEnum, ValueExpressionUnaryOperator.NONE_LITERAL);
+        addEEnumLiteral(valueExpressionUnaryOperatorEEnum, ValueExpressionUnaryOperator.PLUS_LITERAL);
+        addEEnumLiteral(valueExpressionUnaryOperatorEEnum, ValueExpressionUnaryOperator.MINUS_LITERAL);
+
+        initEEnum(valueExpressionCombinedOperatorEEnum, ValueExpressionCombinedOperator.class, "ValueExpressionCombinedOperator");
+        addEEnumLiteral(valueExpressionCombinedOperatorEEnum, ValueExpressionCombinedOperator.ADD_LITERAL);
+        addEEnumLiteral(valueExpressionCombinedOperatorEEnum, ValueExpressionCombinedOperator.SUBTRACT_LITERAL);
+        addEEnumLiteral(valueExpressionCombinedOperatorEEnum, ValueExpressionCombinedOperator.MULTIPLY_LITERAL);
+        addEEnumLiteral(valueExpressionCombinedOperatorEEnum, ValueExpressionCombinedOperator.DIVIDE_LITERAL);
+        addEEnumLiteral(valueExpressionCombinedOperatorEEnum, ValueExpressionCombinedOperator.CONCATENATE_LITERAL);
+
+        initEEnum(valueExpressionLabeledDurationTypeEEnum, ValueExpressionLabeledDurationType.class, "ValueExpressionLabeledDurationType");
+        addEEnumLiteral(valueExpressionLabeledDurationTypeEEnum, ValueExpressionLabeledDurationType.YEARS_LITERAL);
+        addEEnumLiteral(valueExpressionLabeledDurationTypeEEnum, ValueExpressionLabeledDurationType.MONTHS_LITERAL);
+        addEEnumLiteral(valueExpressionLabeledDurationTypeEEnum, ValueExpressionLabeledDurationType.DAYS_LITERAL);
+        addEEnumLiteral(valueExpressionLabeledDurationTypeEEnum, ValueExpressionLabeledDurationType.HOURS_LITERAL);
+        addEEnumLiteral(valueExpressionLabeledDurationTypeEEnum, ValueExpressionLabeledDurationType.MINUTES_LITERAL);
+        addEEnumLiteral(valueExpressionLabeledDurationTypeEEnum, ValueExpressionLabeledDurationType.SECONDS_LITERAL);
+        addEEnumLiteral(valueExpressionLabeledDurationTypeEEnum, ValueExpressionLabeledDurationType.MICROSECONDS_LITERAL);
+
+        initEEnum(nullOrderingTypeEEnum, NullOrderingType.class, "NullOrderingType");
+        addEEnumLiteral(nullOrderingTypeEEnum, NullOrderingType.NONE_LITERAL);
+        addEEnumLiteral(nullOrderingTypeEEnum, NullOrderingType.NULLS_FIRST_LITERAL);
+        addEEnumLiteral(nullOrderingTypeEEnum, NullOrderingType.NULLS_LAST_LITERAL);
+
+        initEEnum(orderingSpecTypeEEnum, OrderingSpecType.class, "OrderingSpecType");
+        addEEnumLiteral(orderingSpecTypeEEnum, OrderingSpecType.NONE_LITERAL);
+        addEEnumLiteral(orderingSpecTypeEEnum, OrderingSpecType.ASC_LITERAL);
+        addEEnumLiteral(orderingSpecTypeEEnum, OrderingSpecType.DESC_LITERAL);
+
+        initEEnum(updatabilityTypeEEnum, UpdatabilityType.class, "UpdatabilityType");
+        addEEnumLiteral(updatabilityTypeEEnum, UpdatabilityType.READ_ONLY_LITERAL);
+        addEEnumLiteral(updatabilityTypeEEnum, UpdatabilityType.UPDATE_LITERAL);
+
+        // Create resource
+        createResource(eNS_URI);
+    }
+
+} //SQLQueryModelPackageImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/SQLQueryObjectImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/SQLQueryObjectImpl.java
new file mode 100644
index 0000000..2be8a54
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/SQLQueryObjectImpl.java
@@ -0,0 +1,108 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SQLQueryObjectImpl.java,v 1.5 2007/02/08 17:00:30 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryObject;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.util.SQLQuerySourceInfo;
+import org.eclipse.datatools.modelbase.sql.query.util.SQLQuerySourceWriter;
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Object</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class SQLQueryObjectImpl extends SQLObjectImpl implements SQLQueryObject {
+    private SQLQuerySourceInfo sourceInfo = null;
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected SQLQueryObjectImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.SQL_QUERY_OBJECT;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated NOT
+     */
+    public String getSQL() {
+        SQLQuerySourceWriter sw = new SQLQuerySourceWriter();
+        return sw.getSQL(this);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void setSQL(String sqlText) {
+        // TODO: implement this method
+        // Ensure that you remove @generated or mark it @generated NOT
+        throw new UnsupportedOperationException();
+    }
+
+    /**
+     * @inheritDoc org.eclipse.datatools.modelbase.sql.query.SQLQueryObject#getSourceInfo()
+     * @generated NOT
+     */
+    public SQLQuerySourceInfo getSourceInfo()
+    {
+        if (this.sourceInfo == null)
+        {
+            this.sourceInfo = new SQLQuerySourceInfo(this);
+        } 
+        else if (this.sourceInfo.getQueryObjectBackReference() != this)
+        {
+            // the weak reference might have been garbage collected, but it might be needed
+            this.sourceInfo.setQueryObjectBackReference(this);
+        }
+        
+        return this.sourceInfo;
+    }
+
+
+    /**
+     * @param sourceInfo The sourceInfo to set.
+     * @generated NOT
+     */
+    public void setSourceInfo(SQLQuerySourceInfo sourceInfo)
+    {
+        this.sourceInfo = sourceInfo;
+        if (sourceInfo != null)
+        {
+            this.sourceInfo.setQueryObjectBackReference(this);
+        }
+    }
+    
+} //SQLQueryObjectImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/SearchConditionCombinedImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/SearchConditionCombinedImpl.java
new file mode 100644
index 0000000..43e2a87
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/SearchConditionCombinedImpl.java
@@ -0,0 +1,334 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SearchConditionCombinedImpl.java,v 1.5 2007/02/08 17:00:29 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement;
+import org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionCombinedOperator;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionNested;
+import org.eclipse.datatools.modelbase.sql.query.TableJoined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Search Condition Combined</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.SearchConditionCombinedImpl#getCombinedOperator <em>Combined Operator</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.SearchConditionCombinedImpl#getLeftCondition <em>Left Condition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.SearchConditionCombinedImpl#getRightCondition <em>Right Condition</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SearchConditionCombinedImpl extends QuerySearchConditionImpl implements SearchConditionCombined {
+	/**
+     * The default value of the '{@link #getCombinedOperator() <em>Combined Operator</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getCombinedOperator()
+     * @generated
+     * @ordered
+     */
+    protected static final SearchConditionCombinedOperator COMBINED_OPERATOR_EDEFAULT = SearchConditionCombinedOperator.AND_LITERAL;
+
+	/**
+     * The cached value of the '{@link #getCombinedOperator() <em>Combined Operator</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getCombinedOperator()
+     * @generated
+     * @ordered
+     */
+    protected SearchConditionCombinedOperator combinedOperator = COMBINED_OPERATOR_EDEFAULT;
+
+	/**
+     * The cached value of the '{@link #getLeftCondition() <em>Left Condition</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getLeftCondition()
+     * @generated
+     * @ordered
+     */
+    protected QuerySearchCondition leftCondition;
+
+	/**
+     * The cached value of the '{@link #getRightCondition() <em>Right Condition</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getRightCondition()
+     * @generated
+     * @ordered
+     */
+    protected QuerySearchCondition rightCondition;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected SearchConditionCombinedImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.SEARCH_CONDITION_COMBINED;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public SearchConditionCombinedOperator getCombinedOperator() {
+        return combinedOperator;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setCombinedOperator(SearchConditionCombinedOperator newCombinedOperator) {
+        SearchConditionCombinedOperator oldCombinedOperator = combinedOperator;
+        combinedOperator = newCombinedOperator == null ? COMBINED_OPERATOR_EDEFAULT : newCombinedOperator;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.SEARCH_CONDITION_COMBINED__COMBINED_OPERATOR, oldCombinedOperator, combinedOperator));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QuerySearchCondition getLeftCondition() {
+        return leftCondition;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetLeftCondition(QuerySearchCondition newLeftCondition, NotificationChain msgs) {
+        QuerySearchCondition oldLeftCondition = leftCondition;
+        leftCondition = newLeftCondition;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.SEARCH_CONDITION_COMBINED__LEFT_CONDITION, oldLeftCondition, newLeftCondition);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setLeftCondition(QuerySearchCondition newLeftCondition) {
+        if (newLeftCondition != leftCondition) {
+            NotificationChain msgs = null;
+            if (leftCondition != null)
+                msgs = ((InternalEObject)leftCondition).eInverseRemove(this, SQLQueryModelPackage.QUERY_SEARCH_CONDITION__COMBINED_LEFT, QuerySearchCondition.class, msgs);
+            if (newLeftCondition != null)
+                msgs = ((InternalEObject)newLeftCondition).eInverseAdd(this, SQLQueryModelPackage.QUERY_SEARCH_CONDITION__COMBINED_LEFT, QuerySearchCondition.class, msgs);
+            msgs = basicSetLeftCondition(newLeftCondition, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.SEARCH_CONDITION_COMBINED__LEFT_CONDITION, newLeftCondition, newLeftCondition));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QuerySearchCondition getRightCondition() {
+        return rightCondition;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetRightCondition(QuerySearchCondition newRightCondition, NotificationChain msgs) {
+        QuerySearchCondition oldRightCondition = rightCondition;
+        rightCondition = newRightCondition;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.SEARCH_CONDITION_COMBINED__RIGHT_CONDITION, oldRightCondition, newRightCondition);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setRightCondition(QuerySearchCondition newRightCondition) {
+        if (newRightCondition != rightCondition) {
+            NotificationChain msgs = null;
+            if (rightCondition != null)
+                msgs = ((InternalEObject)rightCondition).eInverseRemove(this, SQLQueryModelPackage.QUERY_SEARCH_CONDITION__COMBINED_RIGHT, QuerySearchCondition.class, msgs);
+            if (newRightCondition != null)
+                msgs = ((InternalEObject)newRightCondition).eInverseAdd(this, SQLQueryModelPackage.QUERY_SEARCH_CONDITION__COMBINED_RIGHT, QuerySearchCondition.class, msgs);
+            msgs = basicSetRightCondition(newRightCondition, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.SEARCH_CONDITION_COMBINED__RIGHT_CONDITION, newRightCondition, newRightCondition));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.SEARCH_CONDITION_COMBINED__LEFT_CONDITION:
+                if (leftCondition != null)
+                    msgs = ((InternalEObject)leftCondition).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.SEARCH_CONDITION_COMBINED__LEFT_CONDITION, null, msgs);
+                return basicSetLeftCondition((QuerySearchCondition)otherEnd, msgs);
+            case SQLQueryModelPackage.SEARCH_CONDITION_COMBINED__RIGHT_CONDITION:
+                if (rightCondition != null)
+                    msgs = ((InternalEObject)rightCondition).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.SEARCH_CONDITION_COMBINED__RIGHT_CONDITION, null, msgs);
+                return basicSetRightCondition((QuerySearchCondition)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.SEARCH_CONDITION_COMBINED__LEFT_CONDITION:
+                return basicSetLeftCondition(null, msgs);
+            case SQLQueryModelPackage.SEARCH_CONDITION_COMBINED__RIGHT_CONDITION:
+                return basicSetRightCondition(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.SEARCH_CONDITION_COMBINED__COMBINED_OPERATOR:
+                return getCombinedOperator();
+            case SQLQueryModelPackage.SEARCH_CONDITION_COMBINED__LEFT_CONDITION:
+                return getLeftCondition();
+            case SQLQueryModelPackage.SEARCH_CONDITION_COMBINED__RIGHT_CONDITION:
+                return getRightCondition();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.SEARCH_CONDITION_COMBINED__COMBINED_OPERATOR:
+                setCombinedOperator((SearchConditionCombinedOperator)newValue);
+                return;
+            case SQLQueryModelPackage.SEARCH_CONDITION_COMBINED__LEFT_CONDITION:
+                setLeftCondition((QuerySearchCondition)newValue);
+                return;
+            case SQLQueryModelPackage.SEARCH_CONDITION_COMBINED__RIGHT_CONDITION:
+                setRightCondition((QuerySearchCondition)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.SEARCH_CONDITION_COMBINED__COMBINED_OPERATOR:
+                setCombinedOperator(COMBINED_OPERATOR_EDEFAULT);
+                return;
+            case SQLQueryModelPackage.SEARCH_CONDITION_COMBINED__LEFT_CONDITION:
+                setLeftCondition((QuerySearchCondition)null);
+                return;
+            case SQLQueryModelPackage.SEARCH_CONDITION_COMBINED__RIGHT_CONDITION:
+                setRightCondition((QuerySearchCondition)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.SEARCH_CONDITION_COMBINED__COMBINED_OPERATOR:
+                return combinedOperator != COMBINED_OPERATOR_EDEFAULT;
+            case SQLQueryModelPackage.SEARCH_CONDITION_COMBINED__LEFT_CONDITION:
+                return leftCondition != null;
+            case SQLQueryModelPackage.SEARCH_CONDITION_COMBINED__RIGHT_CONDITION:
+                return rightCondition != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (combinedOperator: ");
+        result.append(combinedOperator);
+        result.append(')');
+        return result.toString();
+    }
+
+} //SQLSearchConditionCombinedImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/SearchConditionNestedImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/SearchConditionNestedImpl.java
new file mode 100644
index 0000000..e42f1e9
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/SearchConditionNestedImpl.java
@@ -0,0 +1,196 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SearchConditionNestedImpl.java,v 1.5 2007/02/08 17:00:32 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement;
+import org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionNested;
+import org.eclipse.datatools.modelbase.sql.query.TableJoined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Search Condition Nested</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.SearchConditionNestedImpl#getNestedCondition <em>Nested Condition</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SearchConditionNestedImpl extends QuerySearchConditionImpl implements SearchConditionNested {
+	/**
+     * The cached value of the '{@link #getNestedCondition() <em>Nested Condition</em>}' containment reference.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @see #getNestedCondition()
+     * @generated
+     * @ordered
+     */
+  protected QuerySearchCondition nestedCondition;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected SearchConditionNestedImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.SEARCH_CONDITION_NESTED;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public QuerySearchCondition getNestedCondition() {
+        return nestedCondition;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public NotificationChain basicSetNestedCondition(QuerySearchCondition newNestedCondition, NotificationChain msgs) {
+        QuerySearchCondition oldNestedCondition = nestedCondition;
+        nestedCondition = newNestedCondition;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.SEARCH_CONDITION_NESTED__NESTED_CONDITION, oldNestedCondition, newNestedCondition);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void setNestedCondition(QuerySearchCondition newNestedCondition) {
+        if (newNestedCondition != nestedCondition) {
+            NotificationChain msgs = null;
+            if (nestedCondition != null)
+                msgs = ((InternalEObject)nestedCondition).eInverseRemove(this, SQLQueryModelPackage.QUERY_SEARCH_CONDITION__NEST, QuerySearchCondition.class, msgs);
+            if (newNestedCondition != null)
+                msgs = ((InternalEObject)newNestedCondition).eInverseAdd(this, SQLQueryModelPackage.QUERY_SEARCH_CONDITION__NEST, QuerySearchCondition.class, msgs);
+            msgs = basicSetNestedCondition(newNestedCondition, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.SEARCH_CONDITION_NESTED__NESTED_CONDITION, newNestedCondition, newNestedCondition));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.SEARCH_CONDITION_NESTED__NESTED_CONDITION:
+                if (nestedCondition != null)
+                    msgs = ((InternalEObject)nestedCondition).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.SEARCH_CONDITION_NESTED__NESTED_CONDITION, null, msgs);
+                return basicSetNestedCondition((QuerySearchCondition)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.SEARCH_CONDITION_NESTED__NESTED_CONDITION:
+                return basicSetNestedCondition(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.SEARCH_CONDITION_NESTED__NESTED_CONDITION:
+                return getNestedCondition();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.SEARCH_CONDITION_NESTED__NESTED_CONDITION:
+                setNestedCondition((QuerySearchCondition)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.SEARCH_CONDITION_NESTED__NESTED_CONDITION:
+                setNestedCondition((QuerySearchCondition)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.SEARCH_CONDITION_NESTED__NESTED_CONDITION:
+                return nestedCondition != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //SQLSearchConditionNestedImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/SuperGroupElementExpressionImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/SuperGroupElementExpressionImpl.java
new file mode 100644
index 0000000..7da4af2
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/SuperGroupElementExpressionImpl.java
@@ -0,0 +1,264 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SuperGroupElementExpressionImpl.java,v 1.5 2008/01/31 02:57:15 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.SuperGroup;
+import org.eclipse.datatools.modelbase.sql.query.SuperGroupElementExpression;
+import org.eclipse.datatools.modelbase.sql.query.SuperGroupElementSublist;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Super Group Element Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.SuperGroupElementExpressionImpl#getSuperGroupElementSublist <em>Super Group Element Sublist</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.SuperGroupElementExpressionImpl#getGroupingExpr <em>Grouping Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SuperGroupElementExpressionImpl extends SuperGroupElementImpl implements SuperGroupElementExpression {
+	/**
+     * The cached value of the '{@link #getGroupingExpr() <em>Grouping Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getGroupingExpr()
+     * @generated
+     * @ordered
+     */
+    protected GroupingExpression groupingExpr;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected SuperGroupElementExpressionImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.SUPER_GROUP_ELEMENT_EXPRESSION;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public SuperGroupElementSublist getSuperGroupElementSublist() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.SUPER_GROUP_ELEMENT_EXPRESSION__SUPER_GROUP_ELEMENT_SUBLIST) return null;
+        return (SuperGroupElementSublist)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetSuperGroupElementSublist(SuperGroupElementSublist newSuperGroupElementSublist, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newSuperGroupElementSublist, SQLQueryModelPackage.SUPER_GROUP_ELEMENT_EXPRESSION__SUPER_GROUP_ELEMENT_SUBLIST, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setSuperGroupElementSublist(SuperGroupElementSublist newSuperGroupElementSublist) {
+        if (newSuperGroupElementSublist != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.SUPER_GROUP_ELEMENT_EXPRESSION__SUPER_GROUP_ELEMENT_SUBLIST && newSuperGroupElementSublist != null)) {
+            if (EcoreUtil.isAncestor(this, newSuperGroupElementSublist))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newSuperGroupElementSublist != null)
+                msgs = ((InternalEObject)newSuperGroupElementSublist).eInverseAdd(this, SQLQueryModelPackage.SUPER_GROUP_ELEMENT_SUBLIST__SUPER_GROUP_ELEMENT_EXPR_LIST, SuperGroupElementSublist.class, msgs);
+            msgs = basicSetSuperGroupElementSublist(newSuperGroupElementSublist, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.SUPER_GROUP_ELEMENT_EXPRESSION__SUPER_GROUP_ELEMENT_SUBLIST, newSuperGroupElementSublist, newSuperGroupElementSublist));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public GroupingExpression getGroupingExpr() {
+        return groupingExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetGroupingExpr(GroupingExpression newGroupingExpr, NotificationChain msgs) {
+        GroupingExpression oldGroupingExpr = groupingExpr;
+        groupingExpr = newGroupingExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.SUPER_GROUP_ELEMENT_EXPRESSION__GROUPING_EXPR, oldGroupingExpr, newGroupingExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setGroupingExpr(GroupingExpression newGroupingExpr) {
+        if (newGroupingExpr != groupingExpr) {
+            NotificationChain msgs = null;
+            if (groupingExpr != null)
+                msgs = ((InternalEObject)groupingExpr).eInverseRemove(this, SQLQueryModelPackage.GROUPING_EXPRESSION__SUPER_GROUP_ELEMENT_EXPR, GroupingExpression.class, msgs);
+            if (newGroupingExpr != null)
+                msgs = ((InternalEObject)newGroupingExpr).eInverseAdd(this, SQLQueryModelPackage.GROUPING_EXPRESSION__SUPER_GROUP_ELEMENT_EXPR, GroupingExpression.class, msgs);
+            msgs = basicSetGroupingExpr(newGroupingExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.SUPER_GROUP_ELEMENT_EXPRESSION__GROUPING_EXPR, newGroupingExpr, newGroupingExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.SUPER_GROUP_ELEMENT_EXPRESSION__SUPER_GROUP_ELEMENT_SUBLIST:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetSuperGroupElementSublist((SuperGroupElementSublist)otherEnd, msgs);
+            case SQLQueryModelPackage.SUPER_GROUP_ELEMENT_EXPRESSION__GROUPING_EXPR:
+                if (groupingExpr != null)
+                    msgs = ((InternalEObject)groupingExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.SUPER_GROUP_ELEMENT_EXPRESSION__GROUPING_EXPR, null, msgs);
+                return basicSetGroupingExpr((GroupingExpression)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.SUPER_GROUP_ELEMENT_EXPRESSION__SUPER_GROUP_ELEMENT_SUBLIST:
+                return basicSetSuperGroupElementSublist(null, msgs);
+            case SQLQueryModelPackage.SUPER_GROUP_ELEMENT_EXPRESSION__GROUPING_EXPR:
+                return basicSetGroupingExpr(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLQueryModelPackage.SUPER_GROUP_ELEMENT_EXPRESSION__SUPER_GROUP_ELEMENT_SUBLIST:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.SUPER_GROUP_ELEMENT_SUBLIST__SUPER_GROUP_ELEMENT_EXPR_LIST, SuperGroupElementSublist.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.SUPER_GROUP_ELEMENT_EXPRESSION__SUPER_GROUP_ELEMENT_SUBLIST:
+                return getSuperGroupElementSublist();
+            case SQLQueryModelPackage.SUPER_GROUP_ELEMENT_EXPRESSION__GROUPING_EXPR:
+                return getGroupingExpr();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.SUPER_GROUP_ELEMENT_EXPRESSION__SUPER_GROUP_ELEMENT_SUBLIST:
+                setSuperGroupElementSublist((SuperGroupElementSublist)newValue);
+                return;
+            case SQLQueryModelPackage.SUPER_GROUP_ELEMENT_EXPRESSION__GROUPING_EXPR:
+                setGroupingExpr((GroupingExpression)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.SUPER_GROUP_ELEMENT_EXPRESSION__SUPER_GROUP_ELEMENT_SUBLIST:
+                setSuperGroupElementSublist((SuperGroupElementSublist)null);
+                return;
+            case SQLQueryModelPackage.SUPER_GROUP_ELEMENT_EXPRESSION__GROUPING_EXPR:
+                setGroupingExpr((GroupingExpression)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.SUPER_GROUP_ELEMENT_EXPRESSION__SUPER_GROUP_ELEMENT_SUBLIST:
+                return getSuperGroupElementSublist() != null;
+            case SQLQueryModelPackage.SUPER_GROUP_ELEMENT_EXPRESSION__GROUPING_EXPR:
+                return groupingExpr != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //SQLSuperGroupElementExpressionImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/SuperGroupElementImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/SuperGroupElementImpl.java
new file mode 100644
index 0000000..2bf2864
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/SuperGroupElementImpl.java
@@ -0,0 +1,192 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SuperGroupElementImpl.java,v 1.5 2008/01/31 02:57:15 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.SuperGroup;
+import org.eclipse.datatools.modelbase.sql.query.SuperGroupElement;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Super Group Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.SuperGroupElementImpl#getSuperGroup <em>Super Group</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class SuperGroupElementImpl extends SQLQueryObjectImpl implements SuperGroupElement {
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected SuperGroupElementImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.SUPER_GROUP_ELEMENT;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public SuperGroup getSuperGroup() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.SUPER_GROUP_ELEMENT__SUPER_GROUP) return null;
+        return (SuperGroup)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetSuperGroup(SuperGroup newSuperGroup, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newSuperGroup, SQLQueryModelPackage.SUPER_GROUP_ELEMENT__SUPER_GROUP, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setSuperGroup(SuperGroup newSuperGroup) {
+        if (newSuperGroup != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.SUPER_GROUP_ELEMENT__SUPER_GROUP && newSuperGroup != null)) {
+            if (EcoreUtil.isAncestor(this, newSuperGroup))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newSuperGroup != null)
+                msgs = ((InternalEObject)newSuperGroup).eInverseAdd(this, SQLQueryModelPackage.SUPER_GROUP__SUPER_GROUP_ELEMENT_LIST, SuperGroup.class, msgs);
+            msgs = basicSetSuperGroup(newSuperGroup, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.SUPER_GROUP_ELEMENT__SUPER_GROUP, newSuperGroup, newSuperGroup));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.SUPER_GROUP_ELEMENT__SUPER_GROUP:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetSuperGroup((SuperGroup)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.SUPER_GROUP_ELEMENT__SUPER_GROUP:
+                return basicSetSuperGroup(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLQueryModelPackage.SUPER_GROUP_ELEMENT__SUPER_GROUP:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.SUPER_GROUP__SUPER_GROUP_ELEMENT_LIST, SuperGroup.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.SUPER_GROUP_ELEMENT__SUPER_GROUP:
+                return getSuperGroup();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.SUPER_GROUP_ELEMENT__SUPER_GROUP:
+                setSuperGroup((SuperGroup)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.SUPER_GROUP_ELEMENT__SUPER_GROUP:
+                setSuperGroup((SuperGroup)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.SUPER_GROUP_ELEMENT__SUPER_GROUP:
+                return getSuperGroup() != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //SQLSuperGroupElementImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/SuperGroupElementSublistImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/SuperGroupElementSublistImpl.java
new file mode 100644
index 0000000..744cab6
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/SuperGroupElementSublistImpl.java
@@ -0,0 +1,159 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SuperGroupElementSublistImpl.java,v 1.5 2007/02/08 17:00:31 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.SuperGroup;
+import org.eclipse.datatools.modelbase.sql.query.SuperGroupElementExpression;
+import org.eclipse.datatools.modelbase.sql.query.SuperGroupElementSublist;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Super Group Element Sublist</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.SuperGroupElementSublistImpl#getSuperGroupElementExprList <em>Super Group Element Expr List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SuperGroupElementSublistImpl extends SuperGroupElementImpl implements SuperGroupElementSublist {
+	/**
+     * The cached value of the '{@link #getSuperGroupElementExprList() <em>Super Group Element Expr List</em>}' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getSuperGroupElementExprList()
+     * @generated
+     * @ordered
+     */
+    protected EList superGroupElementExprList;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected SuperGroupElementSublistImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.SUPER_GROUP_ELEMENT_SUBLIST;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getSuperGroupElementExprList() {
+        if (superGroupElementExprList == null) {
+            superGroupElementExprList = new EObjectContainmentWithInverseEList(SuperGroupElementExpression.class, this, SQLQueryModelPackage.SUPER_GROUP_ELEMENT_SUBLIST__SUPER_GROUP_ELEMENT_EXPR_LIST, SQLQueryModelPackage.SUPER_GROUP_ELEMENT_EXPRESSION__SUPER_GROUP_ELEMENT_SUBLIST);
+        }
+        return superGroupElementExprList;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.SUPER_GROUP_ELEMENT_SUBLIST__SUPER_GROUP_ELEMENT_EXPR_LIST:
+                return ((InternalEList)getSuperGroupElementExprList()).basicAdd(otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.SUPER_GROUP_ELEMENT_SUBLIST__SUPER_GROUP_ELEMENT_EXPR_LIST:
+                return ((InternalEList)getSuperGroupElementExprList()).basicRemove(otherEnd, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.SUPER_GROUP_ELEMENT_SUBLIST__SUPER_GROUP_ELEMENT_EXPR_LIST:
+                return getSuperGroupElementExprList();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.SUPER_GROUP_ELEMENT_SUBLIST__SUPER_GROUP_ELEMENT_EXPR_LIST:
+                getSuperGroupElementExprList().clear();
+                getSuperGroupElementExprList().addAll((Collection)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.SUPER_GROUP_ELEMENT_SUBLIST__SUPER_GROUP_ELEMENT_EXPR_LIST:
+                getSuperGroupElementExprList().clear();
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.SUPER_GROUP_ELEMENT_SUBLIST__SUPER_GROUP_ELEMENT_EXPR_LIST:
+                return superGroupElementExprList != null && !superGroupElementExprList.isEmpty();
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //SQLSuperGroupElementSublistImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/SuperGroupImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/SuperGroupImpl.java
new file mode 100644
index 0000000..e1e6ec2
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/SuperGroupImpl.java
@@ -0,0 +1,230 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SuperGroupImpl.java,v 1.5 2007/02/08 17:00:24 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementExpression;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.SuperGroup;
+import org.eclipse.datatools.modelbase.sql.query.SuperGroupElement;
+import org.eclipse.datatools.modelbase.sql.query.SuperGroupType;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Super Group</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.SuperGroupImpl#getSuperGroupType <em>Super Group Type</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.SuperGroupImpl#getSuperGroupElementList <em>Super Group Element List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SuperGroupImpl extends GroupingImpl implements SuperGroup {
+	/**
+     * The default value of the '{@link #getSuperGroupType() <em>Super Group Type</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getSuperGroupType()
+     * @generated
+     * @ordered
+     */
+    protected static final SuperGroupType SUPER_GROUP_TYPE_EDEFAULT = SuperGroupType.CUBE_LITERAL;
+
+	/**
+     * The cached value of the '{@link #getSuperGroupType() <em>Super Group Type</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getSuperGroupType()
+     * @generated
+     * @ordered
+     */
+    protected SuperGroupType superGroupType = SUPER_GROUP_TYPE_EDEFAULT;
+
+	/**
+     * The cached value of the '{@link #getSuperGroupElementList() <em>Super Group Element List</em>}' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getSuperGroupElementList()
+     * @generated
+     * @ordered
+     */
+    protected EList superGroupElementList;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected SuperGroupImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.SUPER_GROUP;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public SuperGroupType getSuperGroupType() {
+        return superGroupType;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setSuperGroupType(SuperGroupType newSuperGroupType) {
+        SuperGroupType oldSuperGroupType = superGroupType;
+        superGroupType = newSuperGroupType == null ? SUPER_GROUP_TYPE_EDEFAULT : newSuperGroupType;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.SUPER_GROUP__SUPER_GROUP_TYPE, oldSuperGroupType, superGroupType));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getSuperGroupElementList() {
+        if (superGroupElementList == null) {
+            superGroupElementList = new EObjectContainmentWithInverseEList(SuperGroupElement.class, this, SQLQueryModelPackage.SUPER_GROUP__SUPER_GROUP_ELEMENT_LIST, SQLQueryModelPackage.SUPER_GROUP_ELEMENT__SUPER_GROUP);
+        }
+        return superGroupElementList;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.SUPER_GROUP__SUPER_GROUP_ELEMENT_LIST:
+                return ((InternalEList)getSuperGroupElementList()).basicAdd(otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.SUPER_GROUP__SUPER_GROUP_ELEMENT_LIST:
+                return ((InternalEList)getSuperGroupElementList()).basicRemove(otherEnd, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.SUPER_GROUP__SUPER_GROUP_TYPE:
+                return getSuperGroupType();
+            case SQLQueryModelPackage.SUPER_GROUP__SUPER_GROUP_ELEMENT_LIST:
+                return getSuperGroupElementList();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.SUPER_GROUP__SUPER_GROUP_TYPE:
+                setSuperGroupType((SuperGroupType)newValue);
+                return;
+            case SQLQueryModelPackage.SUPER_GROUP__SUPER_GROUP_ELEMENT_LIST:
+                getSuperGroupElementList().clear();
+                getSuperGroupElementList().addAll((Collection)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.SUPER_GROUP__SUPER_GROUP_TYPE:
+                setSuperGroupType(SUPER_GROUP_TYPE_EDEFAULT);
+                return;
+            case SQLQueryModelPackage.SUPER_GROUP__SUPER_GROUP_ELEMENT_LIST:
+                getSuperGroupElementList().clear();
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.SUPER_GROUP__SUPER_GROUP_TYPE:
+                return superGroupType != SUPER_GROUP_TYPE_EDEFAULT;
+            case SQLQueryModelPackage.SUPER_GROUP__SUPER_GROUP_ELEMENT_LIST:
+                return superGroupElementList != null && !superGroupElementList.isEmpty();
+        }
+        return super.eIsSet(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (superGroupType: ");
+        result.append(superGroupType);
+        result.append(')');
+        return result.toString();
+    }
+
+} //SQLSuperGroupImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/TableCorrelationImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/TableCorrelationImpl.java
new file mode 100644
index 0000000..5dcad75
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/TableCorrelationImpl.java
@@ -0,0 +1,233 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: TableCorrelationImpl.java,v 1.5 2008/01/31 02:57:15 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.ColumnName;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.TableCorrelation;
+import org.eclipse.datatools.modelbase.sql.query.TableExpression;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Table Correlation</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.TableCorrelationImpl#getTableExpr <em>Table Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.TableCorrelationImpl#getColumnNameList <em>Column Name List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TableCorrelationImpl extends SQLQueryObjectImpl implements TableCorrelation {
+	/**
+     * The cached value of the '{@link #getColumnNameList() <em>Column Name List</em>}' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getColumnNameList()
+     * @generated
+     * @ordered
+     */
+    protected EList columnNameList;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected TableCorrelationImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.TABLE_CORRELATION;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public TableExpression getTableExpr() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.TABLE_CORRELATION__TABLE_EXPR) return null;
+        return (TableExpression)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetTableExpr(TableExpression newTableExpr, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newTableExpr, SQLQueryModelPackage.TABLE_CORRELATION__TABLE_EXPR, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setTableExpr(TableExpression newTableExpr) {
+        if (newTableExpr != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.TABLE_CORRELATION__TABLE_EXPR && newTableExpr != null)) {
+            if (EcoreUtil.isAncestor(this, newTableExpr))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newTableExpr != null)
+                msgs = ((InternalEObject)newTableExpr).eInverseAdd(this, SQLQueryModelPackage.TABLE_EXPRESSION__TABLE_CORRELATION, TableExpression.class, msgs);
+            msgs = basicSetTableExpr(newTableExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.TABLE_CORRELATION__TABLE_EXPR, newTableExpr, newTableExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getColumnNameList() {
+        if (columnNameList == null) {
+            columnNameList = new EObjectContainmentWithInverseEList(ColumnName.class, this, SQLQueryModelPackage.TABLE_CORRELATION__COLUMN_NAME_LIST, SQLQueryModelPackage.COLUMN_NAME__TABLE_CORRELATION);
+        }
+        return columnNameList;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.TABLE_CORRELATION__TABLE_EXPR:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetTableExpr((TableExpression)otherEnd, msgs);
+            case SQLQueryModelPackage.TABLE_CORRELATION__COLUMN_NAME_LIST:
+                return ((InternalEList)getColumnNameList()).basicAdd(otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.TABLE_CORRELATION__TABLE_EXPR:
+                return basicSetTableExpr(null, msgs);
+            case SQLQueryModelPackage.TABLE_CORRELATION__COLUMN_NAME_LIST:
+                return ((InternalEList)getColumnNameList()).basicRemove(otherEnd, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLQueryModelPackage.TABLE_CORRELATION__TABLE_EXPR:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.TABLE_EXPRESSION__TABLE_CORRELATION, TableExpression.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.TABLE_CORRELATION__TABLE_EXPR:
+                return getTableExpr();
+            case SQLQueryModelPackage.TABLE_CORRELATION__COLUMN_NAME_LIST:
+                return getColumnNameList();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.TABLE_CORRELATION__TABLE_EXPR:
+                setTableExpr((TableExpression)newValue);
+                return;
+            case SQLQueryModelPackage.TABLE_CORRELATION__COLUMN_NAME_LIST:
+                getColumnNameList().clear();
+                getColumnNameList().addAll((Collection)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.TABLE_CORRELATION__TABLE_EXPR:
+                setTableExpr((TableExpression)null);
+                return;
+            case SQLQueryModelPackage.TABLE_CORRELATION__COLUMN_NAME_LIST:
+                getColumnNameList().clear();
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.TABLE_CORRELATION__TABLE_EXPR:
+                return getTableExpr() != null;
+            case SQLQueryModelPackage.TABLE_CORRELATION__COLUMN_NAME_LIST:
+                return columnNameList != null && !columnNameList.isEmpty();
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //SQLTableCorrelationImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/TableExpressionImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/TableExpressionImpl.java
new file mode 100644
index 0000000..3101957
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/TableExpressionImpl.java
@@ -0,0 +1,385 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: TableExpressionImpl.java,v 1.6 2008/01/31 02:57:15 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.MergeTargetTable;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.ResultTableAllColumns;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.TableCorrelation;
+import org.eclipse.datatools.modelbase.sql.query.TableExpression;
+import org.eclipse.datatools.modelbase.sql.query.TableJoined;
+import org.eclipse.datatools.modelbase.sql.query.TableNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Table Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.TableExpressionImpl#getColumnList <em>Column List</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.TableExpressionImpl#getTableCorrelation <em>Table Correlation</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.TableExpressionImpl#getResultTableAllColumns <em>Result Table All Columns</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.TableExpressionImpl#getValueExprColumns <em>Value Expr Columns</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.TableExpressionImpl#getMergeTargetTable <em>Merge Target Table</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class TableExpressionImpl extends TableReferenceImpl implements TableExpression {
+	/**
+     * The cached value of the '{@link #getColumnList() <em>Column List</em>}' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getColumnList()
+     * @generated
+     * @ordered
+     */
+    protected EList columnList;
+
+	/**
+     * The cached value of the '{@link #getTableCorrelation() <em>Table Correlation</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getTableCorrelation()
+     * @generated
+     * @ordered
+     */
+    protected TableCorrelation tableCorrelation;
+
+	/**
+     * The cached value of the '{@link #getResultTableAllColumns() <em>Result Table All Columns</em>}' reference list.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @see #getResultTableAllColumns()
+     * @generated
+     * @ordered
+     */
+  protected EList resultTableAllColumns;
+
+	/**
+     * The cached value of the '{@link #getValueExprColumns() <em>Value Expr Columns</em>}' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getValueExprColumns()
+     * @generated
+     * @ordered
+     */
+    protected EList valueExprColumns;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected TableExpressionImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.TABLE_EXPRESSION;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getColumnList() {
+        if (columnList == null) {
+            columnList = new EObjectContainmentWithInverseEList(ValueExpressionColumn.class, this, SQLQueryModelPackage.TABLE_EXPRESSION__COLUMN_LIST, SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__PARENT_TABLE_EXPR);
+        }
+        return columnList;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public TableCorrelation getTableCorrelation() {
+        return tableCorrelation;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetTableCorrelation(TableCorrelation newTableCorrelation, NotificationChain msgs) {
+        TableCorrelation oldTableCorrelation = tableCorrelation;
+        tableCorrelation = newTableCorrelation;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.TABLE_EXPRESSION__TABLE_CORRELATION, oldTableCorrelation, newTableCorrelation);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setTableCorrelation(TableCorrelation newTableCorrelation) {
+        if (newTableCorrelation != tableCorrelation) {
+            NotificationChain msgs = null;
+            if (tableCorrelation != null)
+                msgs = ((InternalEObject)tableCorrelation).eInverseRemove(this, SQLQueryModelPackage.TABLE_CORRELATION__TABLE_EXPR, TableCorrelation.class, msgs);
+            if (newTableCorrelation != null)
+                msgs = ((InternalEObject)newTableCorrelation).eInverseAdd(this, SQLQueryModelPackage.TABLE_CORRELATION__TABLE_EXPR, TableCorrelation.class, msgs);
+            msgs = basicSetTableCorrelation(newTableCorrelation, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.TABLE_EXPRESSION__TABLE_CORRELATION, newTableCorrelation, newTableCorrelation));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public EList getResultTableAllColumns() {
+        if (resultTableAllColumns == null) {
+            resultTableAllColumns = new EObjectWithInverseResolvingEList(ResultTableAllColumns.class, this, SQLQueryModelPackage.TABLE_EXPRESSION__RESULT_TABLE_ALL_COLUMNS, SQLQueryModelPackage.RESULT_TABLE_ALL_COLUMNS__TABLE_EXPR);
+        }
+        return resultTableAllColumns;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getValueExprColumns() {
+        if (valueExprColumns == null) {
+            valueExprColumns = new EObjectWithInverseResolvingEList(ValueExpressionColumn.class, this, SQLQueryModelPackage.TABLE_EXPRESSION__VALUE_EXPR_COLUMNS, SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__TABLE_EXPR);
+        }
+        return valueExprColumns;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public MergeTargetTable getMergeTargetTable() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.TABLE_EXPRESSION__MERGE_TARGET_TABLE) return null;
+        return (MergeTargetTable)eContainer();
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetMergeTargetTable(MergeTargetTable newMergeTargetTable, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newMergeTargetTable, SQLQueryModelPackage.TABLE_EXPRESSION__MERGE_TARGET_TABLE, msgs);
+        return msgs;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setMergeTargetTable(MergeTargetTable newMergeTargetTable) {
+        if (newMergeTargetTable != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.TABLE_EXPRESSION__MERGE_TARGET_TABLE && newMergeTargetTable != null)) {
+            if (EcoreUtil.isAncestor(this, newMergeTargetTable))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newMergeTargetTable != null)
+                msgs = ((InternalEObject)newMergeTargetTable).eInverseAdd(this, SQLQueryModelPackage.MERGE_TARGET_TABLE__TABLE_EXPR, MergeTargetTable.class, msgs);
+            msgs = basicSetMergeTargetTable(newMergeTargetTable, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.TABLE_EXPRESSION__MERGE_TARGET_TABLE, newMergeTargetTable, newMergeTargetTable));
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.TABLE_EXPRESSION__COLUMN_LIST:
+                return ((InternalEList)getColumnList()).basicAdd(otherEnd, msgs);
+            case SQLQueryModelPackage.TABLE_EXPRESSION__TABLE_CORRELATION:
+                if (tableCorrelation != null)
+                    msgs = ((InternalEObject)tableCorrelation).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.TABLE_EXPRESSION__TABLE_CORRELATION, null, msgs);
+                return basicSetTableCorrelation((TableCorrelation)otherEnd, msgs);
+            case SQLQueryModelPackage.TABLE_EXPRESSION__RESULT_TABLE_ALL_COLUMNS:
+                return ((InternalEList)getResultTableAllColumns()).basicAdd(otherEnd, msgs);
+            case SQLQueryModelPackage.TABLE_EXPRESSION__VALUE_EXPR_COLUMNS:
+                return ((InternalEList)getValueExprColumns()).basicAdd(otherEnd, msgs);
+            case SQLQueryModelPackage.TABLE_EXPRESSION__MERGE_TARGET_TABLE:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetMergeTargetTable((MergeTargetTable)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.TABLE_EXPRESSION__COLUMN_LIST:
+                return ((InternalEList)getColumnList()).basicRemove(otherEnd, msgs);
+            case SQLQueryModelPackage.TABLE_EXPRESSION__TABLE_CORRELATION:
+                return basicSetTableCorrelation(null, msgs);
+            case SQLQueryModelPackage.TABLE_EXPRESSION__RESULT_TABLE_ALL_COLUMNS:
+                return ((InternalEList)getResultTableAllColumns()).basicRemove(otherEnd, msgs);
+            case SQLQueryModelPackage.TABLE_EXPRESSION__VALUE_EXPR_COLUMNS:
+                return ((InternalEList)getValueExprColumns()).basicRemove(otherEnd, msgs);
+            case SQLQueryModelPackage.TABLE_EXPRESSION__MERGE_TARGET_TABLE:
+                return basicSetMergeTargetTable(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLQueryModelPackage.TABLE_EXPRESSION__MERGE_TARGET_TABLE:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.MERGE_TARGET_TABLE__TABLE_EXPR, MergeTargetTable.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.TABLE_EXPRESSION__COLUMN_LIST:
+                return getColumnList();
+            case SQLQueryModelPackage.TABLE_EXPRESSION__TABLE_CORRELATION:
+                return getTableCorrelation();
+            case SQLQueryModelPackage.TABLE_EXPRESSION__RESULT_TABLE_ALL_COLUMNS:
+                return getResultTableAllColumns();
+            case SQLQueryModelPackage.TABLE_EXPRESSION__VALUE_EXPR_COLUMNS:
+                return getValueExprColumns();
+            case SQLQueryModelPackage.TABLE_EXPRESSION__MERGE_TARGET_TABLE:
+                return getMergeTargetTable();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.TABLE_EXPRESSION__COLUMN_LIST:
+                getColumnList().clear();
+                getColumnList().addAll((Collection)newValue);
+                return;
+            case SQLQueryModelPackage.TABLE_EXPRESSION__TABLE_CORRELATION:
+                setTableCorrelation((TableCorrelation)newValue);
+                return;
+            case SQLQueryModelPackage.TABLE_EXPRESSION__RESULT_TABLE_ALL_COLUMNS:
+                getResultTableAllColumns().clear();
+                getResultTableAllColumns().addAll((Collection)newValue);
+                return;
+            case SQLQueryModelPackage.TABLE_EXPRESSION__VALUE_EXPR_COLUMNS:
+                getValueExprColumns().clear();
+                getValueExprColumns().addAll((Collection)newValue);
+                return;
+            case SQLQueryModelPackage.TABLE_EXPRESSION__MERGE_TARGET_TABLE:
+                setMergeTargetTable((MergeTargetTable)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.TABLE_EXPRESSION__COLUMN_LIST:
+                getColumnList().clear();
+                return;
+            case SQLQueryModelPackage.TABLE_EXPRESSION__TABLE_CORRELATION:
+                setTableCorrelation((TableCorrelation)null);
+                return;
+            case SQLQueryModelPackage.TABLE_EXPRESSION__RESULT_TABLE_ALL_COLUMNS:
+                getResultTableAllColumns().clear();
+                return;
+            case SQLQueryModelPackage.TABLE_EXPRESSION__VALUE_EXPR_COLUMNS:
+                getValueExprColumns().clear();
+                return;
+            case SQLQueryModelPackage.TABLE_EXPRESSION__MERGE_TARGET_TABLE:
+                setMergeTargetTable((MergeTargetTable)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.TABLE_EXPRESSION__COLUMN_LIST:
+                return columnList != null && !columnList.isEmpty();
+            case SQLQueryModelPackage.TABLE_EXPRESSION__TABLE_CORRELATION:
+                return tableCorrelation != null;
+            case SQLQueryModelPackage.TABLE_EXPRESSION__RESULT_TABLE_ALL_COLUMNS:
+                return resultTableAllColumns != null && !resultTableAllColumns.isEmpty();
+            case SQLQueryModelPackage.TABLE_EXPRESSION__VALUE_EXPR_COLUMNS:
+                return valueExprColumns != null && !valueExprColumns.isEmpty();
+            case SQLQueryModelPackage.TABLE_EXPRESSION__MERGE_TARGET_TABLE:
+                return getMergeTargetTable() != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //SQLTableExpressionImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/TableFunctionImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/TableFunctionImpl.java
new file mode 100644
index 0000000..18ce0e7
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/TableFunctionImpl.java
@@ -0,0 +1,228 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: TableFunctionImpl.java,v 1.6 2008/01/31 02:57:15 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.TableCorrelation;
+import org.eclipse.datatools.modelbase.sql.query.TableFunction;
+import org.eclipse.datatools.modelbase.sql.routines.Function;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.datatools.modelbase.sql.query.TableJoined;
+import org.eclipse.datatools.modelbase.sql.query.TableNested;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Table Function</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.TableFunctionImpl#getFunction <em>Function</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.TableFunctionImpl#getParameterList <em>Parameter List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TableFunctionImpl extends TableExpressionImpl implements TableFunction {
+	/**
+     * The cached value of the '{@link #getFunction() <em>Function</em>}' reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getFunction()
+     * @generated
+     * @ordered
+     */
+    protected Function function;
+    /**
+     * The cached value of the '{@link #getParameterList() <em>Parameter List</em>}' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getParameterList()
+     * @generated
+     * @ordered
+     */
+    protected EList parameterList;
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected TableFunctionImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.TABLE_FUNCTION;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public Function getFunction() {
+        if (function != null && function.eIsProxy()) {
+            InternalEObject oldFunction = (InternalEObject)function;
+            function = (Function)eResolveProxy(oldFunction);
+            if (function != oldFunction) {
+                if (eNotificationRequired())
+                    eNotify(new ENotificationImpl(this, Notification.RESOLVE, SQLQueryModelPackage.TABLE_FUNCTION__FUNCTION, oldFunction, function));
+            }
+        }
+        return function;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public Function basicGetFunction() {
+        return function;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setFunction(Function newFunction) {
+        Function oldFunction = function;
+        function = newFunction;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.TABLE_FUNCTION__FUNCTION, oldFunction, function));
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getParameterList() {
+        if (parameterList == null) {
+            parameterList = new EObjectContainmentWithInverseEList(QueryValueExpression.class, this, SQLQueryModelPackage.TABLE_FUNCTION__PARAMETER_LIST, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__TABLE_FUNCTION);
+        }
+        return parameterList;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.TABLE_FUNCTION__PARAMETER_LIST:
+                return ((InternalEList)getParameterList()).basicAdd(otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.TABLE_FUNCTION__PARAMETER_LIST:
+                return ((InternalEList)getParameterList()).basicRemove(otherEnd, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.TABLE_FUNCTION__FUNCTION:
+                if (resolve) return getFunction();
+                return basicGetFunction();
+            case SQLQueryModelPackage.TABLE_FUNCTION__PARAMETER_LIST:
+                return getParameterList();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.TABLE_FUNCTION__FUNCTION:
+                setFunction((Function)newValue);
+                return;
+            case SQLQueryModelPackage.TABLE_FUNCTION__PARAMETER_LIST:
+                getParameterList().clear();
+                getParameterList().addAll((Collection)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.TABLE_FUNCTION__FUNCTION:
+                setFunction((Function)null);
+                return;
+            case SQLQueryModelPackage.TABLE_FUNCTION__PARAMETER_LIST:
+                getParameterList().clear();
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.TABLE_FUNCTION__FUNCTION:
+                return function != null;
+            case SQLQueryModelPackage.TABLE_FUNCTION__PARAMETER_LIST:
+                return parameterList != null && !parameterList.isEmpty();
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //SQLTableFunctionImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/TableInDatabaseImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/TableInDatabaseImpl.java
new file mode 100644
index 0000000..bd0d69e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/TableInDatabaseImpl.java
@@ -0,0 +1,421 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: TableInDatabaseImpl.java,v 1.5 2008/01/31 02:57:15 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement;
+import org.eclipse.datatools.modelbase.sql.query.QueryInsertStatement;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.TableCorrelation;
+import org.eclipse.datatools.modelbase.sql.query.TableInDatabase;
+import org.eclipse.datatools.modelbase.sql.query.TableJoined;
+import org.eclipse.datatools.modelbase.sql.query.TableNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQLRDB Table</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.TableInDatabaseImpl#getUpdateStatement <em>Update Statement</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.TableInDatabaseImpl#getDeleteStatement <em>Delete Statement</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.TableInDatabaseImpl#getInsertStatement <em>Insert Statement</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.TableInDatabaseImpl#getDatabaseTable <em>Database Table</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.TableInDatabaseImpl#getDerivedColumnList <em>Derived Column List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TableInDatabaseImpl extends TableExpressionImpl implements TableInDatabase {
+	/**
+     * The cached value of the '{@link #getDatabaseTable() <em>Database Table</em>}' reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getDatabaseTable()
+     * @generated
+     * @ordered
+     */
+    protected Table databaseTable;
+
+	/**
+     * The cached value of the '{@link #getDerivedColumnList() <em>Derived Column List</em>}' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getDerivedColumnList()
+     * @generated
+     * @ordered
+     */
+    protected EList derivedColumnList;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected TableInDatabaseImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.TABLE_IN_DATABASE;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public QueryUpdateStatement getUpdateStatement() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.TABLE_IN_DATABASE__UPDATE_STATEMENT) return null;
+        return (QueryUpdateStatement)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetUpdateStatement(QueryUpdateStatement newUpdateStatement, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newUpdateStatement, SQLQueryModelPackage.TABLE_IN_DATABASE__UPDATE_STATEMENT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void setUpdateStatement(QueryUpdateStatement newUpdateStatement) {
+        if (newUpdateStatement != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.TABLE_IN_DATABASE__UPDATE_STATEMENT && newUpdateStatement != null)) {
+            if (EcoreUtil.isAncestor(this, newUpdateStatement))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newUpdateStatement != null)
+                msgs = ((InternalEObject)newUpdateStatement).eInverseAdd(this, SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__TARGET_TABLE, QueryUpdateStatement.class, msgs);
+            msgs = basicSetUpdateStatement(newUpdateStatement, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.TABLE_IN_DATABASE__UPDATE_STATEMENT, newUpdateStatement, newUpdateStatement));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public QueryDeleteStatement getDeleteStatement() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.TABLE_IN_DATABASE__DELETE_STATEMENT) return null;
+        return (QueryDeleteStatement)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetDeleteStatement(QueryDeleteStatement newDeleteStatement, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newDeleteStatement, SQLQueryModelPackage.TABLE_IN_DATABASE__DELETE_STATEMENT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void setDeleteStatement(QueryDeleteStatement newDeleteStatement) {
+        if (newDeleteStatement != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.TABLE_IN_DATABASE__DELETE_STATEMENT && newDeleteStatement != null)) {
+            if (EcoreUtil.isAncestor(this, newDeleteStatement))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newDeleteStatement != null)
+                msgs = ((InternalEObject)newDeleteStatement).eInverseAdd(this, SQLQueryModelPackage.QUERY_DELETE_STATEMENT__TARGET_TABLE, QueryDeleteStatement.class, msgs);
+            msgs = basicSetDeleteStatement(newDeleteStatement, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.TABLE_IN_DATABASE__DELETE_STATEMENT, newDeleteStatement, newDeleteStatement));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public QueryInsertStatement getInsertStatement() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.TABLE_IN_DATABASE__INSERT_STATEMENT) return null;
+        return (QueryInsertStatement)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetInsertStatement(QueryInsertStatement newInsertStatement, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newInsertStatement, SQLQueryModelPackage.TABLE_IN_DATABASE__INSERT_STATEMENT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void setInsertStatement(QueryInsertStatement newInsertStatement) {
+        if (newInsertStatement != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.TABLE_IN_DATABASE__INSERT_STATEMENT && newInsertStatement != null)) {
+            if (EcoreUtil.isAncestor(this, newInsertStatement))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newInsertStatement != null)
+                msgs = ((InternalEObject)newInsertStatement).eInverseAdd(this, SQLQueryModelPackage.QUERY_INSERT_STATEMENT__TARGET_TABLE, QueryInsertStatement.class, msgs);
+            msgs = basicSetInsertStatement(newInsertStatement, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.TABLE_IN_DATABASE__INSERT_STATEMENT, newInsertStatement, newInsertStatement));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public Table getDatabaseTable() {
+        if (databaseTable != null && databaseTable.eIsProxy()) {
+            InternalEObject oldDatabaseTable = (InternalEObject)databaseTable;
+            databaseTable = (Table)eResolveProxy(oldDatabaseTable);
+            if (databaseTable != oldDatabaseTable) {
+                if (eNotificationRequired())
+                    eNotify(new ENotificationImpl(this, Notification.RESOLVE, SQLQueryModelPackage.TABLE_IN_DATABASE__DATABASE_TABLE, oldDatabaseTable, databaseTable));
+            }
+        }
+        return databaseTable;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public Table basicGetDatabaseTable() {
+        return databaseTable;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setDatabaseTable(Table newDatabaseTable) {
+        Table oldDatabaseTable = databaseTable;
+        databaseTable = newDatabaseTable;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.TABLE_IN_DATABASE__DATABASE_TABLE, oldDatabaseTable, databaseTable));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getDerivedColumnList() {
+        if (derivedColumnList == null) {
+            derivedColumnList = new EObjectWithInverseResolvingEList(ValueExpressionColumn.class, this, SQLQueryModelPackage.TABLE_IN_DATABASE__DERIVED_COLUMN_LIST, SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__TABLE_IN_DATABASE);
+        }
+        return derivedColumnList;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.TABLE_IN_DATABASE__UPDATE_STATEMENT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetUpdateStatement((QueryUpdateStatement)otherEnd, msgs);
+            case SQLQueryModelPackage.TABLE_IN_DATABASE__DELETE_STATEMENT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetDeleteStatement((QueryDeleteStatement)otherEnd, msgs);
+            case SQLQueryModelPackage.TABLE_IN_DATABASE__INSERT_STATEMENT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetInsertStatement((QueryInsertStatement)otherEnd, msgs);
+            case SQLQueryModelPackage.TABLE_IN_DATABASE__DERIVED_COLUMN_LIST:
+                return ((InternalEList)getDerivedColumnList()).basicAdd(otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.TABLE_IN_DATABASE__UPDATE_STATEMENT:
+                return basicSetUpdateStatement(null, msgs);
+            case SQLQueryModelPackage.TABLE_IN_DATABASE__DELETE_STATEMENT:
+                return basicSetDeleteStatement(null, msgs);
+            case SQLQueryModelPackage.TABLE_IN_DATABASE__INSERT_STATEMENT:
+                return basicSetInsertStatement(null, msgs);
+            case SQLQueryModelPackage.TABLE_IN_DATABASE__DERIVED_COLUMN_LIST:
+                return ((InternalEList)getDerivedColumnList()).basicRemove(otherEnd, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLQueryModelPackage.TABLE_IN_DATABASE__UPDATE_STATEMENT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__TARGET_TABLE, QueryUpdateStatement.class, msgs);
+            case SQLQueryModelPackage.TABLE_IN_DATABASE__DELETE_STATEMENT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.QUERY_DELETE_STATEMENT__TARGET_TABLE, QueryDeleteStatement.class, msgs);
+            case SQLQueryModelPackage.TABLE_IN_DATABASE__INSERT_STATEMENT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.QUERY_INSERT_STATEMENT__TARGET_TABLE, QueryInsertStatement.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.TABLE_IN_DATABASE__UPDATE_STATEMENT:
+                return getUpdateStatement();
+            case SQLQueryModelPackage.TABLE_IN_DATABASE__DELETE_STATEMENT:
+                return getDeleteStatement();
+            case SQLQueryModelPackage.TABLE_IN_DATABASE__INSERT_STATEMENT:
+                return getInsertStatement();
+            case SQLQueryModelPackage.TABLE_IN_DATABASE__DATABASE_TABLE:
+                if (resolve) return getDatabaseTable();
+                return basicGetDatabaseTable();
+            case SQLQueryModelPackage.TABLE_IN_DATABASE__DERIVED_COLUMN_LIST:
+                return getDerivedColumnList();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.TABLE_IN_DATABASE__UPDATE_STATEMENT:
+                setUpdateStatement((QueryUpdateStatement)newValue);
+                return;
+            case SQLQueryModelPackage.TABLE_IN_DATABASE__DELETE_STATEMENT:
+                setDeleteStatement((QueryDeleteStatement)newValue);
+                return;
+            case SQLQueryModelPackage.TABLE_IN_DATABASE__INSERT_STATEMENT:
+                setInsertStatement((QueryInsertStatement)newValue);
+                return;
+            case SQLQueryModelPackage.TABLE_IN_DATABASE__DATABASE_TABLE:
+                setDatabaseTable((Table)newValue);
+                return;
+            case SQLQueryModelPackage.TABLE_IN_DATABASE__DERIVED_COLUMN_LIST:
+                getDerivedColumnList().clear();
+                getDerivedColumnList().addAll((Collection)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.TABLE_IN_DATABASE__UPDATE_STATEMENT:
+                setUpdateStatement((QueryUpdateStatement)null);
+                return;
+            case SQLQueryModelPackage.TABLE_IN_DATABASE__DELETE_STATEMENT:
+                setDeleteStatement((QueryDeleteStatement)null);
+                return;
+            case SQLQueryModelPackage.TABLE_IN_DATABASE__INSERT_STATEMENT:
+                setInsertStatement((QueryInsertStatement)null);
+                return;
+            case SQLQueryModelPackage.TABLE_IN_DATABASE__DATABASE_TABLE:
+                setDatabaseTable((Table)null);
+                return;
+            case SQLQueryModelPackage.TABLE_IN_DATABASE__DERIVED_COLUMN_LIST:
+                getDerivedColumnList().clear();
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.TABLE_IN_DATABASE__UPDATE_STATEMENT:
+                return getUpdateStatement() != null;
+            case SQLQueryModelPackage.TABLE_IN_DATABASE__DELETE_STATEMENT:
+                return getDeleteStatement() != null;
+            case SQLQueryModelPackage.TABLE_IN_DATABASE__INSERT_STATEMENT:
+                return getInsertStatement() != null;
+            case SQLQueryModelPackage.TABLE_IN_DATABASE__DATABASE_TABLE:
+                return databaseTable != null;
+            case SQLQueryModelPackage.TABLE_IN_DATABASE__DERIVED_COLUMN_LIST:
+                return derivedColumnList != null && !derivedColumnList.isEmpty();
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //SQLRDBTableImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/TableJoinedImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/TableJoinedImpl.java
new file mode 100644
index 0000000..15d4370
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/TableJoinedImpl.java
@@ -0,0 +1,401 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: TableJoinedImpl.java,v 1.5 2007/02/08 17:00:31 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.TableJoined;
+import org.eclipse.datatools.modelbase.sql.query.TableJoinedOperator;
+import org.eclipse.datatools.modelbase.sql.query.TableNested;
+import org.eclipse.datatools.modelbase.sql.query.TableReference;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Table Joined</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.TableJoinedImpl#getJoinOperator <em>Join Operator</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.TableJoinedImpl#getJoinCondition <em>Join Condition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.TableJoinedImpl#getTableRefRight <em>Table Ref Right</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.TableJoinedImpl#getTableRefLeft <em>Table Ref Left</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TableJoinedImpl extends TableReferenceImpl implements TableJoined {
+	/**
+     * The default value of the '{@link #getJoinOperator() <em>Join Operator</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getJoinOperator()
+     * @generated
+     * @ordered
+     */
+    protected static final TableJoinedOperator JOIN_OPERATOR_EDEFAULT = TableJoinedOperator.DEFAULT_INNER_LITERAL;
+
+	/**
+     * The cached value of the '{@link #getJoinOperator() <em>Join Operator</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getJoinOperator()
+     * @generated
+     * @ordered
+     */
+    protected TableJoinedOperator joinOperator = JOIN_OPERATOR_EDEFAULT;
+
+	/**
+     * The cached value of the '{@link #getJoinCondition() <em>Join Condition</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getJoinCondition()
+     * @generated
+     * @ordered
+     */
+    protected QuerySearchCondition joinCondition;
+
+	/**
+     * The cached value of the '{@link #getTableRefRight() <em>Table Ref Right</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getTableRefRight()
+     * @generated
+     * @ordered
+     */
+    protected TableReference tableRefRight;
+
+	/**
+     * The cached value of the '{@link #getTableRefLeft() <em>Table Ref Left</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getTableRefLeft()
+     * @generated
+     * @ordered
+     */
+    protected TableReference tableRefLeft;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected TableJoinedImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.TABLE_JOINED;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public TableJoinedOperator getJoinOperator() {
+        return joinOperator;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setJoinOperator(TableJoinedOperator newJoinOperator) {
+        TableJoinedOperator oldJoinOperator = joinOperator;
+        joinOperator = newJoinOperator == null ? JOIN_OPERATOR_EDEFAULT : newJoinOperator;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.TABLE_JOINED__JOIN_OPERATOR, oldJoinOperator, joinOperator));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QuerySearchCondition getJoinCondition() {
+        return joinCondition;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetJoinCondition(QuerySearchCondition newJoinCondition, NotificationChain msgs) {
+        QuerySearchCondition oldJoinCondition = joinCondition;
+        joinCondition = newJoinCondition;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.TABLE_JOINED__JOIN_CONDITION, oldJoinCondition, newJoinCondition);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setJoinCondition(QuerySearchCondition newJoinCondition) {
+        if (newJoinCondition != joinCondition) {
+            NotificationChain msgs = null;
+            if (joinCondition != null)
+                msgs = ((InternalEObject)joinCondition).eInverseRemove(this, SQLQueryModelPackage.QUERY_SEARCH_CONDITION__TABLE_JOINED, QuerySearchCondition.class, msgs);
+            if (newJoinCondition != null)
+                msgs = ((InternalEObject)newJoinCondition).eInverseAdd(this, SQLQueryModelPackage.QUERY_SEARCH_CONDITION__TABLE_JOINED, QuerySearchCondition.class, msgs);
+            msgs = basicSetJoinCondition(newJoinCondition, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.TABLE_JOINED__JOIN_CONDITION, newJoinCondition, newJoinCondition));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public TableReference getTableRefRight() {
+        return tableRefRight;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetTableRefRight(TableReference newTableRefRight, NotificationChain msgs) {
+        TableReference oldTableRefRight = tableRefRight;
+        tableRefRight = newTableRefRight;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.TABLE_JOINED__TABLE_REF_RIGHT, oldTableRefRight, newTableRefRight);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setTableRefRight(TableReference newTableRefRight) {
+        if (newTableRefRight != tableRefRight) {
+            NotificationChain msgs = null;
+            if (tableRefRight != null)
+                msgs = ((InternalEObject)tableRefRight).eInverseRemove(this, SQLQueryModelPackage.TABLE_REFERENCE__TABLE_JOINED_RIGHT, TableReference.class, msgs);
+            if (newTableRefRight != null)
+                msgs = ((InternalEObject)newTableRefRight).eInverseAdd(this, SQLQueryModelPackage.TABLE_REFERENCE__TABLE_JOINED_RIGHT, TableReference.class, msgs);
+            msgs = basicSetTableRefRight(newTableRefRight, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.TABLE_JOINED__TABLE_REF_RIGHT, newTableRefRight, newTableRefRight));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public TableReference getTableRefLeft() {
+        return tableRefLeft;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetTableRefLeft(TableReference newTableRefLeft, NotificationChain msgs) {
+        TableReference oldTableRefLeft = tableRefLeft;
+        tableRefLeft = newTableRefLeft;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.TABLE_JOINED__TABLE_REF_LEFT, oldTableRefLeft, newTableRefLeft);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setTableRefLeft(TableReference newTableRefLeft) {
+        if (newTableRefLeft != tableRefLeft) {
+            NotificationChain msgs = null;
+            if (tableRefLeft != null)
+                msgs = ((InternalEObject)tableRefLeft).eInverseRemove(this, SQLQueryModelPackage.TABLE_REFERENCE__TABLE_JOINED_LEFT, TableReference.class, msgs);
+            if (newTableRefLeft != null)
+                msgs = ((InternalEObject)newTableRefLeft).eInverseAdd(this, SQLQueryModelPackage.TABLE_REFERENCE__TABLE_JOINED_LEFT, TableReference.class, msgs);
+            msgs = basicSetTableRefLeft(newTableRefLeft, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.TABLE_JOINED__TABLE_REF_LEFT, newTableRefLeft, newTableRefLeft));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.TABLE_JOINED__JOIN_CONDITION:
+                if (joinCondition != null)
+                    msgs = ((InternalEObject)joinCondition).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.TABLE_JOINED__JOIN_CONDITION, null, msgs);
+                return basicSetJoinCondition((QuerySearchCondition)otherEnd, msgs);
+            case SQLQueryModelPackage.TABLE_JOINED__TABLE_REF_RIGHT:
+                if (tableRefRight != null)
+                    msgs = ((InternalEObject)tableRefRight).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.TABLE_JOINED__TABLE_REF_RIGHT, null, msgs);
+                return basicSetTableRefRight((TableReference)otherEnd, msgs);
+            case SQLQueryModelPackage.TABLE_JOINED__TABLE_REF_LEFT:
+                if (tableRefLeft != null)
+                    msgs = ((InternalEObject)tableRefLeft).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.TABLE_JOINED__TABLE_REF_LEFT, null, msgs);
+                return basicSetTableRefLeft((TableReference)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.TABLE_JOINED__JOIN_CONDITION:
+                return basicSetJoinCondition(null, msgs);
+            case SQLQueryModelPackage.TABLE_JOINED__TABLE_REF_RIGHT:
+                return basicSetTableRefRight(null, msgs);
+            case SQLQueryModelPackage.TABLE_JOINED__TABLE_REF_LEFT:
+                return basicSetTableRefLeft(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.TABLE_JOINED__JOIN_OPERATOR:
+                return getJoinOperator();
+            case SQLQueryModelPackage.TABLE_JOINED__JOIN_CONDITION:
+                return getJoinCondition();
+            case SQLQueryModelPackage.TABLE_JOINED__TABLE_REF_RIGHT:
+                return getTableRefRight();
+            case SQLQueryModelPackage.TABLE_JOINED__TABLE_REF_LEFT:
+                return getTableRefLeft();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.TABLE_JOINED__JOIN_OPERATOR:
+                setJoinOperator((TableJoinedOperator)newValue);
+                return;
+            case SQLQueryModelPackage.TABLE_JOINED__JOIN_CONDITION:
+                setJoinCondition((QuerySearchCondition)newValue);
+                return;
+            case SQLQueryModelPackage.TABLE_JOINED__TABLE_REF_RIGHT:
+                setTableRefRight((TableReference)newValue);
+                return;
+            case SQLQueryModelPackage.TABLE_JOINED__TABLE_REF_LEFT:
+                setTableRefLeft((TableReference)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.TABLE_JOINED__JOIN_OPERATOR:
+                setJoinOperator(JOIN_OPERATOR_EDEFAULT);
+                return;
+            case SQLQueryModelPackage.TABLE_JOINED__JOIN_CONDITION:
+                setJoinCondition((QuerySearchCondition)null);
+                return;
+            case SQLQueryModelPackage.TABLE_JOINED__TABLE_REF_RIGHT:
+                setTableRefRight((TableReference)null);
+                return;
+            case SQLQueryModelPackage.TABLE_JOINED__TABLE_REF_LEFT:
+                setTableRefLeft((TableReference)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.TABLE_JOINED__JOIN_OPERATOR:
+                return joinOperator != JOIN_OPERATOR_EDEFAULT;
+            case SQLQueryModelPackage.TABLE_JOINED__JOIN_CONDITION:
+                return joinCondition != null;
+            case SQLQueryModelPackage.TABLE_JOINED__TABLE_REF_RIGHT:
+                return tableRefRight != null;
+            case SQLQueryModelPackage.TABLE_JOINED__TABLE_REF_LEFT:
+                return tableRefLeft != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (joinOperator: ");
+        result.append(joinOperator);
+        result.append(')');
+        return result.toString();
+    }
+
+} //SQLTableJoinedImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/TableNestedImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/TableNestedImpl.java
new file mode 100644
index 0000000..bd2ac29
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/TableNestedImpl.java
@@ -0,0 +1,192 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: TableNestedImpl.java,v 1.5 2007/02/08 17:00:27 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.TableJoined;
+import org.eclipse.datatools.modelbase.sql.query.TableNested;
+import org.eclipse.datatools.modelbase.sql.query.TableReference;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Table Nested</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.TableNestedImpl#getNestedTableRef <em>Nested Table Ref</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TableNestedImpl extends TableReferenceImpl implements TableNested {
+	/**
+     * The cached value of the '{@link #getNestedTableRef() <em>Nested Table Ref</em>}' containment reference.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @see #getNestedTableRef()
+     * @generated
+     * @ordered
+     */
+  protected TableReference nestedTableRef;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected TableNestedImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.TABLE_NESTED;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public TableReference getNestedTableRef() {
+        return nestedTableRef;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public NotificationChain basicSetNestedTableRef(TableReference newNestedTableRef, NotificationChain msgs) {
+        TableReference oldNestedTableRef = nestedTableRef;
+        nestedTableRef = newNestedTableRef;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.TABLE_NESTED__NESTED_TABLE_REF, oldNestedTableRef, newNestedTableRef);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void setNestedTableRef(TableReference newNestedTableRef) {
+        if (newNestedTableRef != nestedTableRef) {
+            NotificationChain msgs = null;
+            if (nestedTableRef != null)
+                msgs = ((InternalEObject)nestedTableRef).eInverseRemove(this, SQLQueryModelPackage.TABLE_REFERENCE__NEST, TableReference.class, msgs);
+            if (newNestedTableRef != null)
+                msgs = ((InternalEObject)newNestedTableRef).eInverseAdd(this, SQLQueryModelPackage.TABLE_REFERENCE__NEST, TableReference.class, msgs);
+            msgs = basicSetNestedTableRef(newNestedTableRef, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.TABLE_NESTED__NESTED_TABLE_REF, newNestedTableRef, newNestedTableRef));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.TABLE_NESTED__NESTED_TABLE_REF:
+                if (nestedTableRef != null)
+                    msgs = ((InternalEObject)nestedTableRef).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.TABLE_NESTED__NESTED_TABLE_REF, null, msgs);
+                return basicSetNestedTableRef((TableReference)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.TABLE_NESTED__NESTED_TABLE_REF:
+                return basicSetNestedTableRef(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.TABLE_NESTED__NESTED_TABLE_REF:
+                return getNestedTableRef();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.TABLE_NESTED__NESTED_TABLE_REF:
+                setNestedTableRef((TableReference)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.TABLE_NESTED__NESTED_TABLE_REF:
+                setNestedTableRef((TableReference)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.TABLE_NESTED__NESTED_TABLE_REF:
+                return nestedTableRef != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //SQLTableNestedImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/TableQueryLateralImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/TableQueryLateralImpl.java
new file mode 100644
index 0000000..2def106
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/TableQueryLateralImpl.java
@@ -0,0 +1,173 @@
+/**

+ * <copyright>

+ * </copyright>

+ *

+ * $Id$

+ */

+package org.eclipse.datatools.modelbase.sql.query.impl;

+

+import org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody;

+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;

+import org.eclipse.datatools.modelbase.sql.query.TableQueryLateral;

+

+import org.eclipse.emf.common.notify.Notification;

+import org.eclipse.emf.common.notify.NotificationChain;

+

+import org.eclipse.emf.ecore.EClass;

+import org.eclipse.emf.ecore.InternalEObject;

+

+import org.eclipse.emf.ecore.impl.ENotificationImpl;

+

+/**

+ * <!-- begin-user-doc -->

+ * An implementation of the model object '<em><b>Table Query Lateral</b></em>'.

+ * <!-- end-user-doc -->

+ * <p>

+ * The following features are implemented:

+ * <ul>

+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.TableQueryLateralImpl#getQuery <em>Query</em>}</li>

+ * </ul>

+ * </p>

+ *

+ * @generated

+ */

+public class TableQueryLateralImpl extends TableExpressionImpl implements TableQueryLateral {

+    /**

+     * The cached value of the '{@link #getQuery() <em>Query</em>}' containment reference.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @see #getQuery()

+     * @generated

+     * @ordered

+     */

+    protected QueryExpressionBody query;

+

+    /**

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    protected TableQueryLateralImpl() {

+        super();

+    }

+

+    /**

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    protected EClass eStaticClass() {

+        return SQLQueryModelPackage.Literals.TABLE_QUERY_LATERAL;

+    }

+

+    /**

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public QueryExpressionBody getQuery() {

+        return query;

+    }

+

+    /**

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public NotificationChain basicSetQuery(QueryExpressionBody newQuery, NotificationChain msgs) {

+        QueryExpressionBody oldQuery = query;

+        query = newQuery;

+        if (eNotificationRequired()) {

+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.TABLE_QUERY_LATERAL__QUERY, oldQuery, newQuery);

+            if (msgs == null) msgs = notification; else msgs.add(notification);

+        }

+        return msgs;

+    }

+

+    /**

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public void setQuery(QueryExpressionBody newQuery) {

+        if (newQuery != query) {

+            NotificationChain msgs = null;

+            if (query != null)

+                msgs = ((InternalEObject)query).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.TABLE_QUERY_LATERAL__QUERY, null, msgs);

+            if (newQuery != null)

+                msgs = ((InternalEObject)newQuery).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.TABLE_QUERY_LATERAL__QUERY, null, msgs);

+            msgs = basicSetQuery(newQuery, msgs);

+            if (msgs != null) msgs.dispatch();

+        }

+        else if (eNotificationRequired())

+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.TABLE_QUERY_LATERAL__QUERY, newQuery, newQuery));

+    }

+

+    /**

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {

+        switch (featureID) {

+            case SQLQueryModelPackage.TABLE_QUERY_LATERAL__QUERY:

+                return basicSetQuery(null, msgs);

+        }

+        return super.eInverseRemove(otherEnd, featureID, msgs);

+    }

+

+    /**

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public Object eGet(int featureID, boolean resolve, boolean coreType) {

+        switch (featureID) {

+            case SQLQueryModelPackage.TABLE_QUERY_LATERAL__QUERY:

+                return getQuery();

+        }

+        return super.eGet(featureID, resolve, coreType);

+    }

+

+    /**

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public void eSet(int featureID, Object newValue) {

+        switch (featureID) {

+            case SQLQueryModelPackage.TABLE_QUERY_LATERAL__QUERY:

+                setQuery((QueryExpressionBody)newValue);

+                return;

+        }

+        super.eSet(featureID, newValue);

+    }

+

+    /**

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public void eUnset(int featureID) {

+        switch (featureID) {

+            case SQLQueryModelPackage.TABLE_QUERY_LATERAL__QUERY:

+                setQuery((QueryExpressionBody)null);

+                return;

+        }

+        super.eUnset(featureID);

+    }

+

+    /**

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    public boolean eIsSet(int featureID) {

+        switch (featureID) {

+            case SQLQueryModelPackage.TABLE_QUERY_LATERAL__QUERY:

+                return query != null;

+        }

+        return super.eIsSet(featureID);

+    }

+

+} //TableQueryLateralImpl

diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/TableReferenceImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/TableReferenceImpl.java
new file mode 100644
index 0000000..810f5f1
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/TableReferenceImpl.java
@@ -0,0 +1,435 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: TableReferenceImpl.java,v 1.5 2008/01/31 02:57:15 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import org.eclipse.datatools.modelbase.sql.query.MergeSourceTable;
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.TableJoined;
+import org.eclipse.datatools.modelbase.sql.query.TableNested;
+import org.eclipse.datatools.modelbase.sql.query.TableReference;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Table Reference</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.TableReferenceImpl#getTableJoinedRight <em>Table Joined Right</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.TableReferenceImpl#getTableJoinedLeft <em>Table Joined Left</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.TableReferenceImpl#getQuerySelect <em>Query Select</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.TableReferenceImpl#getNest <em>Nest</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.TableReferenceImpl#getMergeSourceTable <em>Merge Source Table</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class TableReferenceImpl extends SQLQueryObjectImpl implements TableReference {
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected TableReferenceImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.TABLE_REFERENCE;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public TableJoined getTableJoinedRight() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.TABLE_REFERENCE__TABLE_JOINED_RIGHT) return null;
+        return (TableJoined)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetTableJoinedRight(TableJoined newTableJoinedRight, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newTableJoinedRight, SQLQueryModelPackage.TABLE_REFERENCE__TABLE_JOINED_RIGHT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setTableJoinedRight(TableJoined newTableJoinedRight) {
+        if (newTableJoinedRight != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.TABLE_REFERENCE__TABLE_JOINED_RIGHT && newTableJoinedRight != null)) {
+            if (EcoreUtil.isAncestor(this, newTableJoinedRight))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newTableJoinedRight != null)
+                msgs = ((InternalEObject)newTableJoinedRight).eInverseAdd(this, SQLQueryModelPackage.TABLE_JOINED__TABLE_REF_RIGHT, TableJoined.class, msgs);
+            msgs = basicSetTableJoinedRight(newTableJoinedRight, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.TABLE_REFERENCE__TABLE_JOINED_RIGHT, newTableJoinedRight, newTableJoinedRight));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public TableJoined getTableJoinedLeft() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.TABLE_REFERENCE__TABLE_JOINED_LEFT) return null;
+        return (TableJoined)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetTableJoinedLeft(TableJoined newTableJoinedLeft, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newTableJoinedLeft, SQLQueryModelPackage.TABLE_REFERENCE__TABLE_JOINED_LEFT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setTableJoinedLeft(TableJoined newTableJoinedLeft) {
+        if (newTableJoinedLeft != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.TABLE_REFERENCE__TABLE_JOINED_LEFT && newTableJoinedLeft != null)) {
+            if (EcoreUtil.isAncestor(this, newTableJoinedLeft))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newTableJoinedLeft != null)
+                msgs = ((InternalEObject)newTableJoinedLeft).eInverseAdd(this, SQLQueryModelPackage.TABLE_JOINED__TABLE_REF_LEFT, TableJoined.class, msgs);
+            msgs = basicSetTableJoinedLeft(newTableJoinedLeft, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.TABLE_REFERENCE__TABLE_JOINED_LEFT, newTableJoinedLeft, newTableJoinedLeft));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QuerySelect getQuerySelect() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.TABLE_REFERENCE__QUERY_SELECT) return null;
+        return (QuerySelect)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetQuerySelect(QuerySelect newQuerySelect, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newQuerySelect, SQLQueryModelPackage.TABLE_REFERENCE__QUERY_SELECT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setQuerySelect(QuerySelect newQuerySelect) {
+        if (newQuerySelect != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.TABLE_REFERENCE__QUERY_SELECT && newQuerySelect != null)) {
+            if (EcoreUtil.isAncestor(this, newQuerySelect))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newQuerySelect != null)
+                msgs = ((InternalEObject)newQuerySelect).eInverseAdd(this, SQLQueryModelPackage.QUERY_SELECT__FROM_CLAUSE, QuerySelect.class, msgs);
+            msgs = basicSetQuerySelect(newQuerySelect, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.TABLE_REFERENCE__QUERY_SELECT, newQuerySelect, newQuerySelect));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public TableNested getNest() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.TABLE_REFERENCE__NEST) return null;
+        return (TableNested)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetNest(TableNested newNest, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newNest, SQLQueryModelPackage.TABLE_REFERENCE__NEST, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void setNest(TableNested newNest) {
+        if (newNest != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.TABLE_REFERENCE__NEST && newNest != null)) {
+            if (EcoreUtil.isAncestor(this, newNest))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newNest != null)
+                msgs = ((InternalEObject)newNest).eInverseAdd(this, SQLQueryModelPackage.TABLE_NESTED__NESTED_TABLE_REF, TableNested.class, msgs);
+            msgs = basicSetNest(newNest, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.TABLE_REFERENCE__NEST, newNest, newNest));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public MergeSourceTable getMergeSourceTable() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.TABLE_REFERENCE__MERGE_SOURCE_TABLE) return null;
+        return (MergeSourceTable)eContainer();
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetMergeSourceTable(MergeSourceTable newMergeSourceTable, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newMergeSourceTable, SQLQueryModelPackage.TABLE_REFERENCE__MERGE_SOURCE_TABLE, msgs);
+        return msgs;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setMergeSourceTable(MergeSourceTable newMergeSourceTable) {
+        if (newMergeSourceTable != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.TABLE_REFERENCE__MERGE_SOURCE_TABLE && newMergeSourceTable != null)) {
+            if (EcoreUtil.isAncestor(this, newMergeSourceTable))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newMergeSourceTable != null)
+                msgs = ((InternalEObject)newMergeSourceTable).eInverseAdd(this, SQLQueryModelPackage.MERGE_SOURCE_TABLE__TABLE_REF, MergeSourceTable.class, msgs);
+            msgs = basicSetMergeSourceTable(newMergeSourceTable, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.TABLE_REFERENCE__MERGE_SOURCE_TABLE, newMergeSourceTable, newMergeSourceTable));
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.TABLE_REFERENCE__TABLE_JOINED_RIGHT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetTableJoinedRight((TableJoined)otherEnd, msgs);
+            case SQLQueryModelPackage.TABLE_REFERENCE__TABLE_JOINED_LEFT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetTableJoinedLeft((TableJoined)otherEnd, msgs);
+            case SQLQueryModelPackage.TABLE_REFERENCE__QUERY_SELECT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetQuerySelect((QuerySelect)otherEnd, msgs);
+            case SQLQueryModelPackage.TABLE_REFERENCE__NEST:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetNest((TableNested)otherEnd, msgs);
+            case SQLQueryModelPackage.TABLE_REFERENCE__MERGE_SOURCE_TABLE:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetMergeSourceTable((MergeSourceTable)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.TABLE_REFERENCE__TABLE_JOINED_RIGHT:
+                return basicSetTableJoinedRight(null, msgs);
+            case SQLQueryModelPackage.TABLE_REFERENCE__TABLE_JOINED_LEFT:
+                return basicSetTableJoinedLeft(null, msgs);
+            case SQLQueryModelPackage.TABLE_REFERENCE__QUERY_SELECT:
+                return basicSetQuerySelect(null, msgs);
+            case SQLQueryModelPackage.TABLE_REFERENCE__NEST:
+                return basicSetNest(null, msgs);
+            case SQLQueryModelPackage.TABLE_REFERENCE__MERGE_SOURCE_TABLE:
+                return basicSetMergeSourceTable(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLQueryModelPackage.TABLE_REFERENCE__TABLE_JOINED_RIGHT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.TABLE_JOINED__TABLE_REF_RIGHT, TableJoined.class, msgs);
+            case SQLQueryModelPackage.TABLE_REFERENCE__TABLE_JOINED_LEFT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.TABLE_JOINED__TABLE_REF_LEFT, TableJoined.class, msgs);
+            case SQLQueryModelPackage.TABLE_REFERENCE__QUERY_SELECT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.QUERY_SELECT__FROM_CLAUSE, QuerySelect.class, msgs);
+            case SQLQueryModelPackage.TABLE_REFERENCE__NEST:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.TABLE_NESTED__NESTED_TABLE_REF, TableNested.class, msgs);
+            case SQLQueryModelPackage.TABLE_REFERENCE__MERGE_SOURCE_TABLE:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.MERGE_SOURCE_TABLE__TABLE_REF, MergeSourceTable.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.TABLE_REFERENCE__TABLE_JOINED_RIGHT:
+                return getTableJoinedRight();
+            case SQLQueryModelPackage.TABLE_REFERENCE__TABLE_JOINED_LEFT:
+                return getTableJoinedLeft();
+            case SQLQueryModelPackage.TABLE_REFERENCE__QUERY_SELECT:
+                return getQuerySelect();
+            case SQLQueryModelPackage.TABLE_REFERENCE__NEST:
+                return getNest();
+            case SQLQueryModelPackage.TABLE_REFERENCE__MERGE_SOURCE_TABLE:
+                return getMergeSourceTable();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.TABLE_REFERENCE__TABLE_JOINED_RIGHT:
+                setTableJoinedRight((TableJoined)newValue);
+                return;
+            case SQLQueryModelPackage.TABLE_REFERENCE__TABLE_JOINED_LEFT:
+                setTableJoinedLeft((TableJoined)newValue);
+                return;
+            case SQLQueryModelPackage.TABLE_REFERENCE__QUERY_SELECT:
+                setQuerySelect((QuerySelect)newValue);
+                return;
+            case SQLQueryModelPackage.TABLE_REFERENCE__NEST:
+                setNest((TableNested)newValue);
+                return;
+            case SQLQueryModelPackage.TABLE_REFERENCE__MERGE_SOURCE_TABLE:
+                setMergeSourceTable((MergeSourceTable)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.TABLE_REFERENCE__TABLE_JOINED_RIGHT:
+                setTableJoinedRight((TableJoined)null);
+                return;
+            case SQLQueryModelPackage.TABLE_REFERENCE__TABLE_JOINED_LEFT:
+                setTableJoinedLeft((TableJoined)null);
+                return;
+            case SQLQueryModelPackage.TABLE_REFERENCE__QUERY_SELECT:
+                setQuerySelect((QuerySelect)null);
+                return;
+            case SQLQueryModelPackage.TABLE_REFERENCE__NEST:
+                setNest((TableNested)null);
+                return;
+            case SQLQueryModelPackage.TABLE_REFERENCE__MERGE_SOURCE_TABLE:
+                setMergeSourceTable((MergeSourceTable)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.TABLE_REFERENCE__TABLE_JOINED_RIGHT:
+                return getTableJoinedRight() != null;
+            case SQLQueryModelPackage.TABLE_REFERENCE__TABLE_JOINED_LEFT:
+                return getTableJoinedLeft() != null;
+            case SQLQueryModelPackage.TABLE_REFERENCE__QUERY_SELECT:
+                return getQuerySelect() != null;
+            case SQLQueryModelPackage.TABLE_REFERENCE__NEST:
+                return getNest() != null;
+            case SQLQueryModelPackage.TABLE_REFERENCE__MERGE_SOURCE_TABLE:
+                return getMergeSourceTable() != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //SQLTableReferenceImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/UpdatabilityExpressionImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/UpdatabilityExpressionImpl.java
new file mode 100644
index 0000000..6b58a46
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/UpdatabilityExpressionImpl.java
@@ -0,0 +1,304 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.QuerySelectStatement;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdatabilityExpression;
+import org.eclipse.datatools.modelbase.sql.query.UpdatabilityType;
+import org.eclipse.datatools.modelbase.sql.query.UpdateOfColumn;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Updatability Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.UpdatabilityExpressionImpl#getUpdatabilityType <em>Updatability Type</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.UpdatabilityExpressionImpl#getUpdateOfColumnList <em>Update Of Column List</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.UpdatabilityExpressionImpl#getSelectStatement <em>Select Statement</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class UpdatabilityExpressionImpl extends SQLQueryObjectImpl implements UpdatabilityExpression {
+    /**
+     * The default value of the '{@link #getUpdatabilityType() <em>Updatability Type</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getUpdatabilityType()
+     * @generated
+     * @ordered
+     */
+    protected static final UpdatabilityType UPDATABILITY_TYPE_EDEFAULT = UpdatabilityType.READ_ONLY_LITERAL;
+
+    /**
+     * The cached value of the '{@link #getUpdatabilityType() <em>Updatability Type</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getUpdatabilityType()
+     * @generated
+     * @ordered
+     */
+    protected UpdatabilityType updatabilityType = UPDATABILITY_TYPE_EDEFAULT;
+
+    /**
+     * The cached value of the '{@link #getUpdateOfColumnList() <em>Update Of Column List</em>}' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getUpdateOfColumnList()
+     * @generated
+     * @ordered
+     */
+    protected EList updateOfColumnList;
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected UpdatabilityExpressionImpl() {
+        super();
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.UPDATABILITY_EXPRESSION;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public UpdatabilityType getUpdatabilityType() {
+        return updatabilityType;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setUpdatabilityType(UpdatabilityType newUpdatabilityType) {
+        UpdatabilityType oldUpdatabilityType = updatabilityType;
+        updatabilityType = newUpdatabilityType == null ? UPDATABILITY_TYPE_EDEFAULT : newUpdatabilityType;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.UPDATABILITY_EXPRESSION__UPDATABILITY_TYPE, oldUpdatabilityType, updatabilityType));
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getUpdateOfColumnList() {
+        if (updateOfColumnList == null) {
+            updateOfColumnList = new EObjectContainmentWithInverseEList(UpdateOfColumn.class, this, SQLQueryModelPackage.UPDATABILITY_EXPRESSION__UPDATE_OF_COLUMN_LIST, SQLQueryModelPackage.UPDATE_OF_COLUMN__UPDATABILITY_EXPR);
+        }
+        return updateOfColumnList;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QuerySelectStatement getSelectStatement() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.UPDATABILITY_EXPRESSION__SELECT_STATEMENT) return null;
+        return (QuerySelectStatement)eContainer();
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetSelectStatement(QuerySelectStatement newSelectStatement, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newSelectStatement, SQLQueryModelPackage.UPDATABILITY_EXPRESSION__SELECT_STATEMENT, msgs);
+        return msgs;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setSelectStatement(QuerySelectStatement newSelectStatement) {
+        if (newSelectStatement != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.UPDATABILITY_EXPRESSION__SELECT_STATEMENT && newSelectStatement != null)) {
+            if (EcoreUtil.isAncestor(this, newSelectStatement))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newSelectStatement != null)
+                msgs = ((InternalEObject)newSelectStatement).eInverseAdd(this, SQLQueryModelPackage.QUERY_SELECT_STATEMENT__UPDATABILITY_EXPR, QuerySelectStatement.class, msgs);
+            msgs = basicSetSelectStatement(newSelectStatement, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.UPDATABILITY_EXPRESSION__SELECT_STATEMENT, newSelectStatement, newSelectStatement));
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.UPDATABILITY_EXPRESSION__UPDATE_OF_COLUMN_LIST:
+                return ((InternalEList)getUpdateOfColumnList()).basicAdd(otherEnd, msgs);
+            case SQLQueryModelPackage.UPDATABILITY_EXPRESSION__SELECT_STATEMENT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetSelectStatement((QuerySelectStatement)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.UPDATABILITY_EXPRESSION__UPDATE_OF_COLUMN_LIST:
+                return ((InternalEList)getUpdateOfColumnList()).basicRemove(otherEnd, msgs);
+            case SQLQueryModelPackage.UPDATABILITY_EXPRESSION__SELECT_STATEMENT:
+                return basicSetSelectStatement(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLQueryModelPackage.UPDATABILITY_EXPRESSION__SELECT_STATEMENT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.QUERY_SELECT_STATEMENT__UPDATABILITY_EXPR, QuerySelectStatement.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.UPDATABILITY_EXPRESSION__UPDATABILITY_TYPE:
+                return getUpdatabilityType();
+            case SQLQueryModelPackage.UPDATABILITY_EXPRESSION__UPDATE_OF_COLUMN_LIST:
+                return getUpdateOfColumnList();
+            case SQLQueryModelPackage.UPDATABILITY_EXPRESSION__SELECT_STATEMENT:
+                return getSelectStatement();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.UPDATABILITY_EXPRESSION__UPDATABILITY_TYPE:
+                setUpdatabilityType((UpdatabilityType)newValue);
+                return;
+            case SQLQueryModelPackage.UPDATABILITY_EXPRESSION__UPDATE_OF_COLUMN_LIST:
+                getUpdateOfColumnList().clear();
+                getUpdateOfColumnList().addAll((Collection)newValue);
+                return;
+            case SQLQueryModelPackage.UPDATABILITY_EXPRESSION__SELECT_STATEMENT:
+                setSelectStatement((QuerySelectStatement)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.UPDATABILITY_EXPRESSION__UPDATABILITY_TYPE:
+                setUpdatabilityType(UPDATABILITY_TYPE_EDEFAULT);
+                return;
+            case SQLQueryModelPackage.UPDATABILITY_EXPRESSION__UPDATE_OF_COLUMN_LIST:
+                getUpdateOfColumnList().clear();
+                return;
+            case SQLQueryModelPackage.UPDATABILITY_EXPRESSION__SELECT_STATEMENT:
+                setSelectStatement((QuerySelectStatement)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.UPDATABILITY_EXPRESSION__UPDATABILITY_TYPE:
+                return updatabilityType != UPDATABILITY_TYPE_EDEFAULT;
+            case SQLQueryModelPackage.UPDATABILITY_EXPRESSION__UPDATE_OF_COLUMN_LIST:
+                return updateOfColumnList != null && !updateOfColumnList.isEmpty();
+            case SQLQueryModelPackage.UPDATABILITY_EXPRESSION__SELECT_STATEMENT:
+                return getSelectStatement() != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (updatabilityType: ");
+        result.append(updatabilityType);
+        result.append(')');
+        return result.toString();
+    }
+
+} //UpdatabilityExpressionImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/UpdateAssignmentExpressionImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/UpdateAssignmentExpressionImpl.java
new file mode 100644
index 0000000..da00944
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/UpdateAssignmentExpressionImpl.java
@@ -0,0 +1,365 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: UpdateAssignmentExpressionImpl.java,v 1.5 2008/01/31 02:57:15 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.MergeUpdateSpecification;
+import org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSource;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Update Assignment Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.UpdateAssignmentExpressionImpl#getUpdateStatement <em>Update Statement</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.UpdateAssignmentExpressionImpl#getTargetColumnList <em>Target Column List</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.UpdateAssignmentExpressionImpl#getUpdateSource <em>Update Source</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.UpdateAssignmentExpressionImpl#getMergeUpdateSpec <em>Merge Update Spec</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class UpdateAssignmentExpressionImpl extends SQLQueryObjectImpl implements UpdateAssignmentExpression {
+	/**
+     * The cached value of the '{@link #getTargetColumnList() <em>Target Column List</em>}' reference list.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @see #getTargetColumnList()
+     * @generated
+     * @ordered
+     */
+  protected EList targetColumnList;
+
+	/**
+     * The cached value of the '{@link #getUpdateSource() <em>Update Source</em>}' containment reference.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @see #getUpdateSource()
+     * @generated
+     * @ordered
+     */
+  protected UpdateSource updateSource;
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected UpdateAssignmentExpressionImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.UPDATE_ASSIGNMENT_EXPRESSION;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public QueryUpdateStatement getUpdateStatement() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.UPDATE_ASSIGNMENT_EXPRESSION__UPDATE_STATEMENT) return null;
+        return (QueryUpdateStatement)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetUpdateStatement(QueryUpdateStatement newUpdateStatement, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newUpdateStatement, SQLQueryModelPackage.UPDATE_ASSIGNMENT_EXPRESSION__UPDATE_STATEMENT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void setUpdateStatement(QueryUpdateStatement newUpdateStatement) {
+        if (newUpdateStatement != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.UPDATE_ASSIGNMENT_EXPRESSION__UPDATE_STATEMENT && newUpdateStatement != null)) {
+            if (EcoreUtil.isAncestor(this, newUpdateStatement))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newUpdateStatement != null)
+                msgs = ((InternalEObject)newUpdateStatement).eInverseAdd(this, SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__ASSIGNMENT_CLAUSE, QueryUpdateStatement.class, msgs);
+            msgs = basicSetUpdateStatement(newUpdateStatement, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.UPDATE_ASSIGNMENT_EXPRESSION__UPDATE_STATEMENT, newUpdateStatement, newUpdateStatement));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public EList getTargetColumnList() {
+        if (targetColumnList == null) {
+            targetColumnList = new EObjectWithInverseResolvingEList.ManyInverse(ValueExpressionColumn.class, this, SQLQueryModelPackage.UPDATE_ASSIGNMENT_EXPRESSION__TARGET_COLUMN_LIST, SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__ASSIGNMENT_EXPR_TARGET);
+        }
+        return targetColumnList;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public UpdateSource getUpdateSource() {
+        return updateSource;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public NotificationChain basicSetUpdateSource(UpdateSource newUpdateSource, NotificationChain msgs) {
+        UpdateSource oldUpdateSource = updateSource;
+        updateSource = newUpdateSource;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.UPDATE_ASSIGNMENT_EXPRESSION__UPDATE_SOURCE, oldUpdateSource, newUpdateSource);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void setUpdateSource(UpdateSource newUpdateSource) {
+        if (newUpdateSource != updateSource) {
+            NotificationChain msgs = null;
+            if (updateSource != null)
+                msgs = ((InternalEObject)updateSource).eInverseRemove(this, SQLQueryModelPackage.UPDATE_SOURCE__UPDATE_ASSIGNMENT_EXPR, UpdateSource.class, msgs);
+            if (newUpdateSource != null)
+                msgs = ((InternalEObject)newUpdateSource).eInverseAdd(this, SQLQueryModelPackage.UPDATE_SOURCE__UPDATE_ASSIGNMENT_EXPR, UpdateSource.class, msgs);
+            msgs = basicSetUpdateSource(newUpdateSource, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.UPDATE_ASSIGNMENT_EXPRESSION__UPDATE_SOURCE, newUpdateSource, newUpdateSource));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public MergeUpdateSpecification getMergeUpdateSpec() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.UPDATE_ASSIGNMENT_EXPRESSION__MERGE_UPDATE_SPEC) return null;
+        return (MergeUpdateSpecification)eContainer();
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetMergeUpdateSpec(MergeUpdateSpecification newMergeUpdateSpec, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newMergeUpdateSpec, SQLQueryModelPackage.UPDATE_ASSIGNMENT_EXPRESSION__MERGE_UPDATE_SPEC, msgs);
+        return msgs;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setMergeUpdateSpec(MergeUpdateSpecification newMergeUpdateSpec) {
+        if (newMergeUpdateSpec != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.UPDATE_ASSIGNMENT_EXPRESSION__MERGE_UPDATE_SPEC && newMergeUpdateSpec != null)) {
+            if (EcoreUtil.isAncestor(this, newMergeUpdateSpec))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newMergeUpdateSpec != null)
+                msgs = ((InternalEObject)newMergeUpdateSpec).eInverseAdd(this, SQLQueryModelPackage.MERGE_UPDATE_SPECIFICATION__ASSIGNEMENT_EXPR_LIST, MergeUpdateSpecification.class, msgs);
+            msgs = basicSetMergeUpdateSpec(newMergeUpdateSpec, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.UPDATE_ASSIGNMENT_EXPRESSION__MERGE_UPDATE_SPEC, newMergeUpdateSpec, newMergeUpdateSpec));
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.UPDATE_ASSIGNMENT_EXPRESSION__UPDATE_STATEMENT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetUpdateStatement((QueryUpdateStatement)otherEnd, msgs);
+            case SQLQueryModelPackage.UPDATE_ASSIGNMENT_EXPRESSION__TARGET_COLUMN_LIST:
+                return ((InternalEList)getTargetColumnList()).basicAdd(otherEnd, msgs);
+            case SQLQueryModelPackage.UPDATE_ASSIGNMENT_EXPRESSION__UPDATE_SOURCE:
+                if (updateSource != null)
+                    msgs = ((InternalEObject)updateSource).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.UPDATE_ASSIGNMENT_EXPRESSION__UPDATE_SOURCE, null, msgs);
+                return basicSetUpdateSource((UpdateSource)otherEnd, msgs);
+            case SQLQueryModelPackage.UPDATE_ASSIGNMENT_EXPRESSION__MERGE_UPDATE_SPEC:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetMergeUpdateSpec((MergeUpdateSpecification)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.UPDATE_ASSIGNMENT_EXPRESSION__UPDATE_STATEMENT:
+                return basicSetUpdateStatement(null, msgs);
+            case SQLQueryModelPackage.UPDATE_ASSIGNMENT_EXPRESSION__TARGET_COLUMN_LIST:
+                return ((InternalEList)getTargetColumnList()).basicRemove(otherEnd, msgs);
+            case SQLQueryModelPackage.UPDATE_ASSIGNMENT_EXPRESSION__UPDATE_SOURCE:
+                return basicSetUpdateSource(null, msgs);
+            case SQLQueryModelPackage.UPDATE_ASSIGNMENT_EXPRESSION__MERGE_UPDATE_SPEC:
+                return basicSetMergeUpdateSpec(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLQueryModelPackage.UPDATE_ASSIGNMENT_EXPRESSION__UPDATE_STATEMENT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.QUERY_UPDATE_STATEMENT__ASSIGNMENT_CLAUSE, QueryUpdateStatement.class, msgs);
+            case SQLQueryModelPackage.UPDATE_ASSIGNMENT_EXPRESSION__MERGE_UPDATE_SPEC:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.MERGE_UPDATE_SPECIFICATION__ASSIGNEMENT_EXPR_LIST, MergeUpdateSpecification.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.UPDATE_ASSIGNMENT_EXPRESSION__UPDATE_STATEMENT:
+                return getUpdateStatement();
+            case SQLQueryModelPackage.UPDATE_ASSIGNMENT_EXPRESSION__TARGET_COLUMN_LIST:
+                return getTargetColumnList();
+            case SQLQueryModelPackage.UPDATE_ASSIGNMENT_EXPRESSION__UPDATE_SOURCE:
+                return getUpdateSource();
+            case SQLQueryModelPackage.UPDATE_ASSIGNMENT_EXPRESSION__MERGE_UPDATE_SPEC:
+                return getMergeUpdateSpec();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.UPDATE_ASSIGNMENT_EXPRESSION__UPDATE_STATEMENT:
+                setUpdateStatement((QueryUpdateStatement)newValue);
+                return;
+            case SQLQueryModelPackage.UPDATE_ASSIGNMENT_EXPRESSION__TARGET_COLUMN_LIST:
+                getTargetColumnList().clear();
+                getTargetColumnList().addAll((Collection)newValue);
+                return;
+            case SQLQueryModelPackage.UPDATE_ASSIGNMENT_EXPRESSION__UPDATE_SOURCE:
+                setUpdateSource((UpdateSource)newValue);
+                return;
+            case SQLQueryModelPackage.UPDATE_ASSIGNMENT_EXPRESSION__MERGE_UPDATE_SPEC:
+                setMergeUpdateSpec((MergeUpdateSpecification)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.UPDATE_ASSIGNMENT_EXPRESSION__UPDATE_STATEMENT:
+                setUpdateStatement((QueryUpdateStatement)null);
+                return;
+            case SQLQueryModelPackage.UPDATE_ASSIGNMENT_EXPRESSION__TARGET_COLUMN_LIST:
+                getTargetColumnList().clear();
+                return;
+            case SQLQueryModelPackage.UPDATE_ASSIGNMENT_EXPRESSION__UPDATE_SOURCE:
+                setUpdateSource((UpdateSource)null);
+                return;
+            case SQLQueryModelPackage.UPDATE_ASSIGNMENT_EXPRESSION__MERGE_UPDATE_SPEC:
+                setMergeUpdateSpec((MergeUpdateSpecification)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.UPDATE_ASSIGNMENT_EXPRESSION__UPDATE_STATEMENT:
+                return getUpdateStatement() != null;
+            case SQLQueryModelPackage.UPDATE_ASSIGNMENT_EXPRESSION__TARGET_COLUMN_LIST:
+                return targetColumnList != null && !targetColumnList.isEmpty();
+            case SQLQueryModelPackage.UPDATE_ASSIGNMENT_EXPRESSION__UPDATE_SOURCE:
+                return updateSource != null;
+            case SQLQueryModelPackage.UPDATE_ASSIGNMENT_EXPRESSION__MERGE_UPDATE_SPEC:
+                return getMergeUpdateSpec() != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //UpdateAssignmentExpressionImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/UpdateOfColumnImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/UpdateOfColumnImpl.java
new file mode 100644
index 0000000..859ceff
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/UpdateOfColumnImpl.java
@@ -0,0 +1,191 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdatabilityExpression;
+import org.eclipse.datatools.modelbase.sql.query.UpdateOfColumn;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Update Of Column</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.UpdateOfColumnImpl#getUpdatabilityExpr <em>Updatability Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class UpdateOfColumnImpl extends SQLQueryObjectImpl implements UpdateOfColumn {
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected UpdateOfColumnImpl() {
+        super();
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.UPDATE_OF_COLUMN;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public UpdatabilityExpression getUpdatabilityExpr() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.UPDATE_OF_COLUMN__UPDATABILITY_EXPR) return null;
+        return (UpdatabilityExpression)eContainer();
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetUpdatabilityExpr(UpdatabilityExpression newUpdatabilityExpr, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newUpdatabilityExpr, SQLQueryModelPackage.UPDATE_OF_COLUMN__UPDATABILITY_EXPR, msgs);
+        return msgs;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setUpdatabilityExpr(UpdatabilityExpression newUpdatabilityExpr) {
+        if (newUpdatabilityExpr != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.UPDATE_OF_COLUMN__UPDATABILITY_EXPR && newUpdatabilityExpr != null)) {
+            if (EcoreUtil.isAncestor(this, newUpdatabilityExpr))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newUpdatabilityExpr != null)
+                msgs = ((InternalEObject)newUpdatabilityExpr).eInverseAdd(this, SQLQueryModelPackage.UPDATABILITY_EXPRESSION__UPDATE_OF_COLUMN_LIST, UpdatabilityExpression.class, msgs);
+            msgs = basicSetUpdatabilityExpr(newUpdatabilityExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.UPDATE_OF_COLUMN__UPDATABILITY_EXPR, newUpdatabilityExpr, newUpdatabilityExpr));
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.UPDATE_OF_COLUMN__UPDATABILITY_EXPR:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetUpdatabilityExpr((UpdatabilityExpression)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.UPDATE_OF_COLUMN__UPDATABILITY_EXPR:
+                return basicSetUpdatabilityExpr(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLQueryModelPackage.UPDATE_OF_COLUMN__UPDATABILITY_EXPR:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.UPDATABILITY_EXPRESSION__UPDATE_OF_COLUMN_LIST, UpdatabilityExpression.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.UPDATE_OF_COLUMN__UPDATABILITY_EXPR:
+                return getUpdatabilityExpr();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.UPDATE_OF_COLUMN__UPDATABILITY_EXPR:
+                setUpdatabilityExpr((UpdatabilityExpression)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.UPDATE_OF_COLUMN__UPDATABILITY_EXPR:
+                setUpdatabilityExpr((UpdatabilityExpression)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.UPDATE_OF_COLUMN__UPDATABILITY_EXPR:
+                return getUpdatabilityExpr() != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //UpdateOfColumnImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/UpdateSourceExprListImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/UpdateSourceExprListImpl.java
new file mode 100644
index 0000000..ca5a3e5
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/UpdateSourceExprListImpl.java
@@ -0,0 +1,159 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: UpdateSourceExprListImpl.java,v 1.5 2007/02/08 17:00:28 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Update Source Expr List</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.UpdateSourceExprListImpl#getValueExprList <em>Value Expr List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class UpdateSourceExprListImpl extends UpdateSourceImpl implements UpdateSourceExprList {
+	/**
+     * The cached value of the '{@link #getValueExprList() <em>Value Expr List</em>}' containment reference list.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @see #getValueExprList()
+     * @generated
+     * @ordered
+     */
+  protected EList valueExprList;
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected UpdateSourceExprListImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.UPDATE_SOURCE_EXPR_LIST;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public EList getValueExprList() {
+        if (valueExprList == null) {
+            valueExprList = new EObjectContainmentWithInverseEList(QueryValueExpression.class, this, SQLQueryModelPackage.UPDATE_SOURCE_EXPR_LIST__VALUE_EXPR_LIST, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__UPDATE_SOURCE_EXPR_LIST);
+        }
+        return valueExprList;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.UPDATE_SOURCE_EXPR_LIST__VALUE_EXPR_LIST:
+                return ((InternalEList)getValueExprList()).basicAdd(otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.UPDATE_SOURCE_EXPR_LIST__VALUE_EXPR_LIST:
+                return ((InternalEList)getValueExprList()).basicRemove(otherEnd, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.UPDATE_SOURCE_EXPR_LIST__VALUE_EXPR_LIST:
+                return getValueExprList();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.UPDATE_SOURCE_EXPR_LIST__VALUE_EXPR_LIST:
+                getValueExprList().clear();
+                getValueExprList().addAll((Collection)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.UPDATE_SOURCE_EXPR_LIST__VALUE_EXPR_LIST:
+                getValueExprList().clear();
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.UPDATE_SOURCE_EXPR_LIST__VALUE_EXPR_LIST:
+                return valueExprList != null && !valueExprList.isEmpty();
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //UpdateSourceExprListImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/UpdateSourceImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/UpdateSourceImpl.java
new file mode 100644
index 0000000..cd290aa
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/UpdateSourceImpl.java
@@ -0,0 +1,192 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: UpdateSourceImpl.java,v 1.5 2008/01/31 02:57:15 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSource;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Update Source</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.UpdateSourceImpl#getUpdateAssignmentExpr <em>Update Assignment Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class UpdateSourceImpl extends SQLQueryObjectImpl implements UpdateSource {
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected UpdateSourceImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.UPDATE_SOURCE;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public UpdateAssignmentExpression getUpdateAssignmentExpr() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.UPDATE_SOURCE__UPDATE_ASSIGNMENT_EXPR) return null;
+        return (UpdateAssignmentExpression)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetUpdateAssignmentExpr(UpdateAssignmentExpression newUpdateAssignmentExpr, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newUpdateAssignmentExpr, SQLQueryModelPackage.UPDATE_SOURCE__UPDATE_ASSIGNMENT_EXPR, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void setUpdateAssignmentExpr(UpdateAssignmentExpression newUpdateAssignmentExpr) {
+        if (newUpdateAssignmentExpr != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.UPDATE_SOURCE__UPDATE_ASSIGNMENT_EXPR && newUpdateAssignmentExpr != null)) {
+            if (EcoreUtil.isAncestor(this, newUpdateAssignmentExpr))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newUpdateAssignmentExpr != null)
+                msgs = ((InternalEObject)newUpdateAssignmentExpr).eInverseAdd(this, SQLQueryModelPackage.UPDATE_ASSIGNMENT_EXPRESSION__UPDATE_SOURCE, UpdateAssignmentExpression.class, msgs);
+            msgs = basicSetUpdateAssignmentExpr(newUpdateAssignmentExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.UPDATE_SOURCE__UPDATE_ASSIGNMENT_EXPR, newUpdateAssignmentExpr, newUpdateAssignmentExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.UPDATE_SOURCE__UPDATE_ASSIGNMENT_EXPR:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetUpdateAssignmentExpr((UpdateAssignmentExpression)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.UPDATE_SOURCE__UPDATE_ASSIGNMENT_EXPR:
+                return basicSetUpdateAssignmentExpr(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLQueryModelPackage.UPDATE_SOURCE__UPDATE_ASSIGNMENT_EXPR:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.UPDATE_ASSIGNMENT_EXPRESSION__UPDATE_SOURCE, UpdateAssignmentExpression.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.UPDATE_SOURCE__UPDATE_ASSIGNMENT_EXPR:
+                return getUpdateAssignmentExpr();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.UPDATE_SOURCE__UPDATE_ASSIGNMENT_EXPR:
+                setUpdateAssignmentExpr((UpdateAssignmentExpression)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.UPDATE_SOURCE__UPDATE_ASSIGNMENT_EXPR:
+                setUpdateAssignmentExpr((UpdateAssignmentExpression)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.UPDATE_SOURCE__UPDATE_ASSIGNMENT_EXPR:
+                return getUpdateAssignmentExpr() != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //UpdateSourceImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/UpdateSourceQueryImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/UpdateSourceQueryImpl.java
new file mode 100644
index 0000000..5133b04
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/UpdateSourceQueryImpl.java
@@ -0,0 +1,191 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: UpdateSourceQueryImpl.java,v 1.5 2007/02/08 17:00:30 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceQuery;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Update Source Query</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.UpdateSourceQueryImpl#getQueryExpr <em>Query Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class UpdateSourceQueryImpl extends UpdateSourceImpl implements UpdateSourceQuery {
+	/**
+     * The cached value of the '{@link #getQueryExpr() <em>Query Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @see #getQueryExpr()
+     * @generated
+     * @ordered
+     */
+  protected QueryExpressionBody queryExpr;
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected UpdateSourceQueryImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.UPDATE_SOURCE_QUERY;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public QueryExpressionBody getQueryExpr() {
+        return queryExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public NotificationChain basicSetQueryExpr(QueryExpressionBody newQueryExpr, NotificationChain msgs) {
+        QueryExpressionBody oldQueryExpr = queryExpr;
+        queryExpr = newQueryExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.UPDATE_SOURCE_QUERY__QUERY_EXPR, oldQueryExpr, newQueryExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void setQueryExpr(QueryExpressionBody newQueryExpr) {
+        if (newQueryExpr != queryExpr) {
+            NotificationChain msgs = null;
+            if (queryExpr != null)
+                msgs = ((InternalEObject)queryExpr).eInverseRemove(this, SQLQueryModelPackage.QUERY_EXPRESSION_BODY__UPDATE_SOURCE_QUERY, QueryExpressionBody.class, msgs);
+            if (newQueryExpr != null)
+                msgs = ((InternalEObject)newQueryExpr).eInverseAdd(this, SQLQueryModelPackage.QUERY_EXPRESSION_BODY__UPDATE_SOURCE_QUERY, QueryExpressionBody.class, msgs);
+            msgs = basicSetQueryExpr(newQueryExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.UPDATE_SOURCE_QUERY__QUERY_EXPR, newQueryExpr, newQueryExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.UPDATE_SOURCE_QUERY__QUERY_EXPR:
+                if (queryExpr != null)
+                    msgs = ((InternalEObject)queryExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.UPDATE_SOURCE_QUERY__QUERY_EXPR, null, msgs);
+                return basicSetQueryExpr((QueryExpressionBody)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.UPDATE_SOURCE_QUERY__QUERY_EXPR:
+                return basicSetQueryExpr(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.UPDATE_SOURCE_QUERY__QUERY_EXPR:
+                return getQueryExpr();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.UPDATE_SOURCE_QUERY__QUERY_EXPR:
+                setQueryExpr((QueryExpressionBody)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.UPDATE_SOURCE_QUERY__QUERY_EXPR:
+                setQueryExpr((QueryExpressionBody)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.UPDATE_SOURCE_QUERY__QUERY_EXPR:
+                return queryExpr != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //UpdateSourceQueryImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionAtomicImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionAtomicImpl.java
new file mode 100644
index 0000000..4b82412
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionAtomicImpl.java
@@ -0,0 +1,78 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionAtomicImpl.java,v 1.5 2007/02/08 17:00:27 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionAtomic;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Value Expression Atomic</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class ValueExpressionAtomicImpl extends QueryValueExpressionImpl implements ValueExpressionAtomic {
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected ValueExpressionAtomicImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.VALUE_EXPRESSION_ATOMIC;
+    }
+
+} //SQLValueExpressionAtomicImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionCaseElseImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionCaseElseImpl.java
new file mode 100644
index 0000000..08195d8
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionCaseElseImpl.java
@@ -0,0 +1,263 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionCaseElseImpl.java,v 1.5 2008/01/31 02:57:15 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCase;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Value Expression Case Else</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCaseElseImpl#getValueExprCase <em>Value Expr Case</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCaseElseImpl#getValueExpr <em>Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ValueExpressionCaseElseImpl extends SQLQueryObjectImpl implements ValueExpressionCaseElse {
+	/**
+     * The cached value of the '{@link #getValueExpr() <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getValueExpr()
+     * @generated
+     * @ordered
+     */
+    protected QueryValueExpression valueExpr;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected ValueExpressionCaseElseImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.VALUE_EXPRESSION_CASE_ELSE;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public ValueExpressionCase getValueExprCase() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.VALUE_EXPRESSION_CASE_ELSE__VALUE_EXPR_CASE) return null;
+        return (ValueExpressionCase)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetValueExprCase(ValueExpressionCase newValueExprCase, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newValueExprCase, SQLQueryModelPackage.VALUE_EXPRESSION_CASE_ELSE__VALUE_EXPR_CASE, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueExprCase(ValueExpressionCase newValueExprCase) {
+        if (newValueExprCase != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.VALUE_EXPRESSION_CASE_ELSE__VALUE_EXPR_CASE && newValueExprCase != null)) {
+            if (EcoreUtil.isAncestor(this, newValueExprCase))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newValueExprCase != null)
+                msgs = ((InternalEObject)newValueExprCase).eInverseAdd(this, SQLQueryModelPackage.VALUE_EXPRESSION_CASE__CASE_ELSE, ValueExpressionCase.class, msgs);
+            msgs = basicSetValueExprCase(newValueExprCase, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.VALUE_EXPRESSION_CASE_ELSE__VALUE_EXPR_CASE, newValueExprCase, newValueExprCase));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryValueExpression getValueExpr() {
+        return valueExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetValueExpr(QueryValueExpression newValueExpr, NotificationChain msgs) {
+        QueryValueExpression oldValueExpr = valueExpr;
+        valueExpr = newValueExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.VALUE_EXPRESSION_CASE_ELSE__VALUE_EXPR, oldValueExpr, newValueExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueExpr(QueryValueExpression newValueExpr) {
+        if (newValueExpr != valueExpr) {
+            NotificationChain msgs = null;
+            if (valueExpr != null)
+                msgs = ((InternalEObject)valueExpr).eInverseRemove(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_ELSE, QueryValueExpression.class, msgs);
+            if (newValueExpr != null)
+                msgs = ((InternalEObject)newValueExpr).eInverseAdd(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_ELSE, QueryValueExpression.class, msgs);
+            msgs = basicSetValueExpr(newValueExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.VALUE_EXPRESSION_CASE_ELSE__VALUE_EXPR, newValueExpr, newValueExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_ELSE__VALUE_EXPR_CASE:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetValueExprCase((ValueExpressionCase)otherEnd, msgs);
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_ELSE__VALUE_EXPR:
+                if (valueExpr != null)
+                    msgs = ((InternalEObject)valueExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.VALUE_EXPRESSION_CASE_ELSE__VALUE_EXPR, null, msgs);
+                return basicSetValueExpr((QueryValueExpression)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_ELSE__VALUE_EXPR_CASE:
+                return basicSetValueExprCase(null, msgs);
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_ELSE__VALUE_EXPR:
+                return basicSetValueExpr(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_ELSE__VALUE_EXPR_CASE:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.VALUE_EXPRESSION_CASE__CASE_ELSE, ValueExpressionCase.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_ELSE__VALUE_EXPR_CASE:
+                return getValueExprCase();
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_ELSE__VALUE_EXPR:
+                return getValueExpr();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_ELSE__VALUE_EXPR_CASE:
+                setValueExprCase((ValueExpressionCase)newValue);
+                return;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_ELSE__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_ELSE__VALUE_EXPR_CASE:
+                setValueExprCase((ValueExpressionCase)null);
+                return;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_ELSE__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_ELSE__VALUE_EXPR_CASE:
+                return getValueExprCase() != null;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_ELSE__VALUE_EXPR:
+                return valueExpr != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //SQLValueExpressionCaseElseImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionCaseImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionCaseImpl.java
new file mode 100644
index 0000000..26e8904
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionCaseImpl.java
@@ -0,0 +1,214 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionCaseImpl.java,v 1.5 2007/02/08 17:00:32 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCase;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Value Expression Case</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCaseImpl#getCaseElse <em>Case Else</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class ValueExpressionCaseImpl extends ValueExpressionAtomicImpl implements ValueExpressionCase {
+	/**
+     * The cached value of the '{@link #getCaseElse() <em>Case Else</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getCaseElse()
+     * @generated
+     * @ordered
+     */
+    protected ValueExpressionCaseElse caseElse;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected ValueExpressionCaseImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.VALUE_EXPRESSION_CASE;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public ValueExpressionCaseElse getCaseElse() {
+        return caseElse;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetCaseElse(ValueExpressionCaseElse newCaseElse, NotificationChain msgs) {
+        ValueExpressionCaseElse oldCaseElse = caseElse;
+        caseElse = newCaseElse;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.VALUE_EXPRESSION_CASE__CASE_ELSE, oldCaseElse, newCaseElse);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setCaseElse(ValueExpressionCaseElse newCaseElse) {
+        if (newCaseElse != caseElse) {
+            NotificationChain msgs = null;
+            if (caseElse != null)
+                msgs = ((InternalEObject)caseElse).eInverseRemove(this, SQLQueryModelPackage.VALUE_EXPRESSION_CASE_ELSE__VALUE_EXPR_CASE, ValueExpressionCaseElse.class, msgs);
+            if (newCaseElse != null)
+                msgs = ((InternalEObject)newCaseElse).eInverseAdd(this, SQLQueryModelPackage.VALUE_EXPRESSION_CASE_ELSE__VALUE_EXPR_CASE, ValueExpressionCaseElse.class, msgs);
+            msgs = basicSetCaseElse(newCaseElse, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.VALUE_EXPRESSION_CASE__CASE_ELSE, newCaseElse, newCaseElse));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE__CASE_ELSE:
+                if (caseElse != null)
+                    msgs = ((InternalEObject)caseElse).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.VALUE_EXPRESSION_CASE__CASE_ELSE, null, msgs);
+                return basicSetCaseElse((ValueExpressionCaseElse)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE__CASE_ELSE:
+                return basicSetCaseElse(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE__CASE_ELSE:
+                return getCaseElse();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE__CASE_ELSE:
+                setCaseElse((ValueExpressionCaseElse)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE__CASE_ELSE:
+                setCaseElse((ValueExpressionCaseElse)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE__CASE_ELSE:
+                return caseElse != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //SQLValueExpressionCaseImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionCaseSearchContentImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionCaseSearchContentImpl.java
new file mode 100644
index 0000000..8498103
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionCaseSearchContentImpl.java
@@ -0,0 +1,334 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionCaseSearchContentImpl.java,v 1.5 2008/01/31 02:57:15 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition;
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearch;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Value Expression Case Search Content</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCaseSearchContentImpl#getValueExpr <em>Value Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCaseSearchContentImpl#getSearchCondition <em>Search Condition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCaseSearchContentImpl#getValueExprCaseSearch <em>Value Expr Case Search</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ValueExpressionCaseSearchContentImpl extends SQLQueryObjectImpl implements ValueExpressionCaseSearchContent {
+	/**
+     * The cached value of the '{@link #getValueExpr() <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getValueExpr()
+     * @generated
+     * @ordered
+     */
+    protected QueryValueExpression valueExpr;
+
+	/**
+     * The cached value of the '{@link #getSearchCondition() <em>Search Condition</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getSearchCondition()
+     * @generated
+     * @ordered
+     */
+    protected QuerySearchCondition searchCondition;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected ValueExpressionCaseSearchContentImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.VALUE_EXPRESSION_CASE_SEARCH_CONTENT;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryValueExpression getValueExpr() {
+        return valueExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetValueExpr(QueryValueExpression newValueExpr, NotificationChain msgs) {
+        QueryValueExpression oldValueExpr = valueExpr;
+        valueExpr = newValueExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH_CONTENT__VALUE_EXPR, oldValueExpr, newValueExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueExpr(QueryValueExpression newValueExpr) {
+        if (newValueExpr != valueExpr) {
+            NotificationChain msgs = null;
+            if (valueExpr != null)
+                msgs = ((InternalEObject)valueExpr).eInverseRemove(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SEARCH_CONTENT, QueryValueExpression.class, msgs);
+            if (newValueExpr != null)
+                msgs = ((InternalEObject)newValueExpr).eInverseAdd(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SEARCH_CONTENT, QueryValueExpression.class, msgs);
+            msgs = basicSetValueExpr(newValueExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH_CONTENT__VALUE_EXPR, newValueExpr, newValueExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QuerySearchCondition getSearchCondition() {
+        return searchCondition;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetSearchCondition(QuerySearchCondition newSearchCondition, NotificationChain msgs) {
+        QuerySearchCondition oldSearchCondition = searchCondition;
+        searchCondition = newSearchCondition;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH_CONTENT__SEARCH_CONDITION, oldSearchCondition, newSearchCondition);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setSearchCondition(QuerySearchCondition newSearchCondition) {
+        if (newSearchCondition != searchCondition) {
+            NotificationChain msgs = null;
+            if (searchCondition != null)
+                msgs = ((InternalEObject)searchCondition).eInverseRemove(this, SQLQueryModelPackage.QUERY_SEARCH_CONDITION__VALUE_EXPR_CASE_SEARCH_CONTENT, QuerySearchCondition.class, msgs);
+            if (newSearchCondition != null)
+                msgs = ((InternalEObject)newSearchCondition).eInverseAdd(this, SQLQueryModelPackage.QUERY_SEARCH_CONDITION__VALUE_EXPR_CASE_SEARCH_CONTENT, QuerySearchCondition.class, msgs);
+            msgs = basicSetSearchCondition(newSearchCondition, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH_CONTENT__SEARCH_CONDITION, newSearchCondition, newSearchCondition));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public ValueExpressionCaseSearch getValueExprCaseSearch() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH_CONTENT__VALUE_EXPR_CASE_SEARCH) return null;
+        return (ValueExpressionCaseSearch)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetValueExprCaseSearch(ValueExpressionCaseSearch newValueExprCaseSearch, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newValueExprCaseSearch, SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH_CONTENT__VALUE_EXPR_CASE_SEARCH, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueExprCaseSearch(ValueExpressionCaseSearch newValueExprCaseSearch) {
+        if (newValueExprCaseSearch != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH_CONTENT__VALUE_EXPR_CASE_SEARCH && newValueExprCaseSearch != null)) {
+            if (EcoreUtil.isAncestor(this, newValueExprCaseSearch))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newValueExprCaseSearch != null)
+                msgs = ((InternalEObject)newValueExprCaseSearch).eInverseAdd(this, SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH__SEARCH_CONTENT_LIST, ValueExpressionCaseSearch.class, msgs);
+            msgs = basicSetValueExprCaseSearch(newValueExprCaseSearch, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH_CONTENT__VALUE_EXPR_CASE_SEARCH, newValueExprCaseSearch, newValueExprCaseSearch));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH_CONTENT__VALUE_EXPR:
+                if (valueExpr != null)
+                    msgs = ((InternalEObject)valueExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH_CONTENT__VALUE_EXPR, null, msgs);
+                return basicSetValueExpr((QueryValueExpression)otherEnd, msgs);
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH_CONTENT__SEARCH_CONDITION:
+                if (searchCondition != null)
+                    msgs = ((InternalEObject)searchCondition).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH_CONTENT__SEARCH_CONDITION, null, msgs);
+                return basicSetSearchCondition((QuerySearchCondition)otherEnd, msgs);
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH_CONTENT__VALUE_EXPR_CASE_SEARCH:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetValueExprCaseSearch((ValueExpressionCaseSearch)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH_CONTENT__VALUE_EXPR:
+                return basicSetValueExpr(null, msgs);
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH_CONTENT__SEARCH_CONDITION:
+                return basicSetSearchCondition(null, msgs);
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH_CONTENT__VALUE_EXPR_CASE_SEARCH:
+                return basicSetValueExprCaseSearch(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH_CONTENT__VALUE_EXPR_CASE_SEARCH:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH__SEARCH_CONTENT_LIST, ValueExpressionCaseSearch.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH_CONTENT__VALUE_EXPR:
+                return getValueExpr();
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH_CONTENT__SEARCH_CONDITION:
+                return getSearchCondition();
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH_CONTENT__VALUE_EXPR_CASE_SEARCH:
+                return getValueExprCaseSearch();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH_CONTENT__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)newValue);
+                return;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH_CONTENT__SEARCH_CONDITION:
+                setSearchCondition((QuerySearchCondition)newValue);
+                return;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH_CONTENT__VALUE_EXPR_CASE_SEARCH:
+                setValueExprCaseSearch((ValueExpressionCaseSearch)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH_CONTENT__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)null);
+                return;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH_CONTENT__SEARCH_CONDITION:
+                setSearchCondition((QuerySearchCondition)null);
+                return;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH_CONTENT__VALUE_EXPR_CASE_SEARCH:
+                setValueExprCaseSearch((ValueExpressionCaseSearch)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH_CONTENT__VALUE_EXPR:
+                return valueExpr != null;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH_CONTENT__SEARCH_CONDITION:
+                return searchCondition != null;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH_CONTENT__VALUE_EXPR_CASE_SEARCH:
+                return getValueExprCaseSearch() != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //SQLValueExpressionCaseSearchContentImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionCaseSearchImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionCaseSearchImpl.java
new file mode 100644
index 0000000..0912edf
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionCaseSearchImpl.java
@@ -0,0 +1,182 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionCaseSearchImpl.java,v 1.5 2007/02/08 17:00:30 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearch;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Value Expression Case Search</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCaseSearchImpl#getSearchContentList <em>Search Content List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ValueExpressionCaseSearchImpl extends ValueExpressionCaseImpl implements ValueExpressionCaseSearch {
+	/**
+     * The cached value of the '{@link #getSearchContentList() <em>Search Content List</em>}' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getSearchContentList()
+     * @generated
+     * @ordered
+     */
+    protected EList searchContentList;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected ValueExpressionCaseSearchImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.VALUE_EXPRESSION_CASE_SEARCH;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getSearchContentList() {
+        if (searchContentList == null) {
+            searchContentList = new EObjectContainmentWithInverseEList(ValueExpressionCaseSearchContent.class, this, SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH__SEARCH_CONTENT_LIST, SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH_CONTENT__VALUE_EXPR_CASE_SEARCH);
+        }
+        return searchContentList;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH__SEARCH_CONTENT_LIST:
+                return ((InternalEList)getSearchContentList()).basicAdd(otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH__SEARCH_CONTENT_LIST:
+                return ((InternalEList)getSearchContentList()).basicRemove(otherEnd, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH__SEARCH_CONTENT_LIST:
+                return getSearchContentList();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH__SEARCH_CONTENT_LIST:
+                getSearchContentList().clear();
+                getSearchContentList().addAll((Collection)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH__SEARCH_CONTENT_LIST:
+                getSearchContentList().clear();
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH__SEARCH_CONTENT_LIST:
+                return searchContentList != null && !searchContentList.isEmpty();
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //SQLValueExpressionCaseSearchImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionCaseSimpleContentImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionCaseSimpleContentImpl.java
new file mode 100644
index 0000000..187b068
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionCaseSimpleContentImpl.java
@@ -0,0 +1,333 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionCaseSimpleContentImpl.java,v 1.5 2008/01/31 02:57:15 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Value Expression Case Simple Content</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCaseSimpleContentImpl#getValueExprCaseSimple <em>Value Expr Case Simple</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCaseSimpleContentImpl#getWhenValueExpr <em>When Value Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCaseSimpleContentImpl#getResultValueExpr <em>Result Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ValueExpressionCaseSimpleContentImpl extends SQLQueryObjectImpl implements ValueExpressionCaseSimpleContent {
+	/**
+     * The cached value of the '{@link #getWhenValueExpr() <em>When Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getWhenValueExpr()
+     * @generated
+     * @ordered
+     */
+    protected QueryValueExpression whenValueExpr;
+
+	/**
+     * The cached value of the '{@link #getResultValueExpr() <em>Result Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getResultValueExpr()
+     * @generated
+     * @ordered
+     */
+    protected QueryValueExpression resultValueExpr;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected ValueExpressionCaseSimpleContentImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.VALUE_EXPRESSION_CASE_SIMPLE_CONTENT;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public ValueExpressionCaseSimple getValueExprCaseSimple() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__VALUE_EXPR_CASE_SIMPLE) return null;
+        return (ValueExpressionCaseSimple)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetValueExprCaseSimple(ValueExpressionCaseSimple newValueExprCaseSimple, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newValueExprCaseSimple, SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__VALUE_EXPR_CASE_SIMPLE, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueExprCaseSimple(ValueExpressionCaseSimple newValueExprCaseSimple) {
+        if (newValueExprCaseSimple != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__VALUE_EXPR_CASE_SIMPLE && newValueExprCaseSimple != null)) {
+            if (EcoreUtil.isAncestor(this, newValueExprCaseSimple))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newValueExprCaseSimple != null)
+                msgs = ((InternalEObject)newValueExprCaseSimple).eInverseAdd(this, SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE__CONTENT_LIST, ValueExpressionCaseSimple.class, msgs);
+            msgs = basicSetValueExprCaseSimple(newValueExprCaseSimple, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__VALUE_EXPR_CASE_SIMPLE, newValueExprCaseSimple, newValueExprCaseSimple));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryValueExpression getWhenValueExpr() {
+        return whenValueExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetWhenValueExpr(QueryValueExpression newWhenValueExpr, NotificationChain msgs) {
+        QueryValueExpression oldWhenValueExpr = whenValueExpr;
+        whenValueExpr = newWhenValueExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__WHEN_VALUE_EXPR, oldWhenValueExpr, newWhenValueExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setWhenValueExpr(QueryValueExpression newWhenValueExpr) {
+        if (newWhenValueExpr != whenValueExpr) {
+            NotificationChain msgs = null;
+            if (whenValueExpr != null)
+                msgs = ((InternalEObject)whenValueExpr).eInverseRemove(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN, QueryValueExpression.class, msgs);
+            if (newWhenValueExpr != null)
+                msgs = ((InternalEObject)newWhenValueExpr).eInverseAdd(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN, QueryValueExpression.class, msgs);
+            msgs = basicSetWhenValueExpr(newWhenValueExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__WHEN_VALUE_EXPR, newWhenValueExpr, newWhenValueExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryValueExpression getResultValueExpr() {
+        return resultValueExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetResultValueExpr(QueryValueExpression newResultValueExpr, NotificationChain msgs) {
+        QueryValueExpression oldResultValueExpr = resultValueExpr;
+        resultValueExpr = newResultValueExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__RESULT_VALUE_EXPR, oldResultValueExpr, newResultValueExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setResultValueExpr(QueryValueExpression newResultValueExpr) {
+        if (newResultValueExpr != resultValueExpr) {
+            NotificationChain msgs = null;
+            if (resultValueExpr != null)
+                msgs = ((InternalEObject)resultValueExpr).eInverseRemove(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT, QueryValueExpression.class, msgs);
+            if (newResultValueExpr != null)
+                msgs = ((InternalEObject)newResultValueExpr).eInverseAdd(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT, QueryValueExpression.class, msgs);
+            msgs = basicSetResultValueExpr(newResultValueExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__RESULT_VALUE_EXPR, newResultValueExpr, newResultValueExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__VALUE_EXPR_CASE_SIMPLE:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetValueExprCaseSimple((ValueExpressionCaseSimple)otherEnd, msgs);
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__WHEN_VALUE_EXPR:
+                if (whenValueExpr != null)
+                    msgs = ((InternalEObject)whenValueExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__WHEN_VALUE_EXPR, null, msgs);
+                return basicSetWhenValueExpr((QueryValueExpression)otherEnd, msgs);
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__RESULT_VALUE_EXPR:
+                if (resultValueExpr != null)
+                    msgs = ((InternalEObject)resultValueExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__RESULT_VALUE_EXPR, null, msgs);
+                return basicSetResultValueExpr((QueryValueExpression)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__VALUE_EXPR_CASE_SIMPLE:
+                return basicSetValueExprCaseSimple(null, msgs);
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__WHEN_VALUE_EXPR:
+                return basicSetWhenValueExpr(null, msgs);
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__RESULT_VALUE_EXPR:
+                return basicSetResultValueExpr(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__VALUE_EXPR_CASE_SIMPLE:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE__CONTENT_LIST, ValueExpressionCaseSimple.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__VALUE_EXPR_CASE_SIMPLE:
+                return getValueExprCaseSimple();
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__WHEN_VALUE_EXPR:
+                return getWhenValueExpr();
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__RESULT_VALUE_EXPR:
+                return getResultValueExpr();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__VALUE_EXPR_CASE_SIMPLE:
+                setValueExprCaseSimple((ValueExpressionCaseSimple)newValue);
+                return;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__WHEN_VALUE_EXPR:
+                setWhenValueExpr((QueryValueExpression)newValue);
+                return;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__RESULT_VALUE_EXPR:
+                setResultValueExpr((QueryValueExpression)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__VALUE_EXPR_CASE_SIMPLE:
+                setValueExprCaseSimple((ValueExpressionCaseSimple)null);
+                return;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__WHEN_VALUE_EXPR:
+                setWhenValueExpr((QueryValueExpression)null);
+                return;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__RESULT_VALUE_EXPR:
+                setResultValueExpr((QueryValueExpression)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__VALUE_EXPR_CASE_SIMPLE:
+                return getValueExprCaseSimple() != null;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__WHEN_VALUE_EXPR:
+                return whenValueExpr != null;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__RESULT_VALUE_EXPR:
+                return resultValueExpr != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //SQLValueExpressionCaseSimpleContentImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionCaseSimpleImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionCaseSimpleImpl.java
new file mode 100644
index 0000000..178db44
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionCaseSimpleImpl.java
@@ -0,0 +1,254 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionCaseSimpleImpl.java,v 1.5 2007/02/08 17:00:30 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Value Expression Case Simple</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCaseSimpleImpl#getContentList <em>Content List</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCaseSimpleImpl#getValueExpr <em>Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ValueExpressionCaseSimpleImpl extends ValueExpressionCaseImpl implements ValueExpressionCaseSimple {
+	/**
+     * The cached value of the '{@link #getContentList() <em>Content List</em>}' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getContentList()
+     * @generated
+     * @ordered
+     */
+    protected EList contentList;
+
+	/**
+     * The cached value of the '{@link #getValueExpr() <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getValueExpr()
+     * @generated
+     * @ordered
+     */
+    protected QueryValueExpression valueExpr;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected ValueExpressionCaseSimpleImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.VALUE_EXPRESSION_CASE_SIMPLE;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getContentList() {
+        if (contentList == null) {
+            contentList = new EObjectContainmentWithInverseEList(ValueExpressionCaseSimpleContent.class, this, SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE__CONTENT_LIST, SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE_CONTENT__VALUE_EXPR_CASE_SIMPLE);
+        }
+        return contentList;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryValueExpression getValueExpr() {
+        return valueExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetValueExpr(QueryValueExpression newValueExpr, NotificationChain msgs) {
+        QueryValueExpression oldValueExpr = valueExpr;
+        valueExpr = newValueExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE__VALUE_EXPR, oldValueExpr, newValueExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueExpr(QueryValueExpression newValueExpr) {
+        if (newValueExpr != valueExpr) {
+            NotificationChain msgs = null;
+            if (valueExpr != null)
+                msgs = ((InternalEObject)valueExpr).eInverseRemove(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE, QueryValueExpression.class, msgs);
+            if (newValueExpr != null)
+                msgs = ((InternalEObject)newValueExpr).eInverseAdd(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE, QueryValueExpression.class, msgs);
+            msgs = basicSetValueExpr(newValueExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE__VALUE_EXPR, newValueExpr, newValueExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE__CONTENT_LIST:
+                return ((InternalEList)getContentList()).basicAdd(otherEnd, msgs);
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE__VALUE_EXPR:
+                if (valueExpr != null)
+                    msgs = ((InternalEObject)valueExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE__VALUE_EXPR, null, msgs);
+                return basicSetValueExpr((QueryValueExpression)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE__CONTENT_LIST:
+                return ((InternalEList)getContentList()).basicRemove(otherEnd, msgs);
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE__VALUE_EXPR:
+                return basicSetValueExpr(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE__CONTENT_LIST:
+                return getContentList();
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE__VALUE_EXPR:
+                return getValueExpr();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE__CONTENT_LIST:
+                getContentList().clear();
+                getContentList().addAll((Collection)newValue);
+                return;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE__CONTENT_LIST:
+                getContentList().clear();
+                return;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE__CONTENT_LIST:
+                return contentList != null && !contentList.isEmpty();
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE__VALUE_EXPR:
+                return valueExpr != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //SQLValueExpressionCaseSimpleImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionCastImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionCastImpl.java
new file mode 100644
index 0000000..c6272c5
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionCastImpl.java
@@ -0,0 +1,214 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionCastImpl.java,v 1.5 2007/02/08 17:00:26 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Value Expression Cast</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCastImpl#getValueExpr <em>Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ValueExpressionCastImpl extends ValueExpressionAtomicImpl implements ValueExpressionCast {
+	/**
+     * The cached value of the '{@link #getValueExpr() <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getValueExpr()
+     * @generated
+     * @ordered
+     */
+    protected QueryValueExpression valueExpr;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected ValueExpressionCastImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.VALUE_EXPRESSION_CAST;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryValueExpression getValueExpr() {
+        return valueExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetValueExpr(QueryValueExpression newValueExpr, NotificationChain msgs) {
+        QueryValueExpression oldValueExpr = valueExpr;
+        valueExpr = newValueExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.VALUE_EXPRESSION_CAST__VALUE_EXPR, oldValueExpr, newValueExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueExpr(QueryValueExpression newValueExpr) {
+        if (newValueExpr != valueExpr) {
+            NotificationChain msgs = null;
+            if (valueExpr != null)
+                msgs = ((InternalEObject)valueExpr).eInverseRemove(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CAST, QueryValueExpression.class, msgs);
+            if (newValueExpr != null)
+                msgs = ((InternalEObject)newValueExpr).eInverseAdd(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CAST, QueryValueExpression.class, msgs);
+            msgs = basicSetValueExpr(newValueExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.VALUE_EXPRESSION_CAST__VALUE_EXPR, newValueExpr, newValueExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CAST__VALUE_EXPR:
+                if (valueExpr != null)
+                    msgs = ((InternalEObject)valueExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.VALUE_EXPRESSION_CAST__VALUE_EXPR, null, msgs);
+                return basicSetValueExpr((QueryValueExpression)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CAST__VALUE_EXPR:
+                return basicSetValueExpr(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CAST__VALUE_EXPR:
+                return getValueExpr();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CAST__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CAST__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CAST__VALUE_EXPR:
+                return valueExpr != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //SQLValueExpressionCastImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionColumnImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionColumnImpl.java
new file mode 100644
index 0000000..21bfc1b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionColumnImpl.java
@@ -0,0 +1,512 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionColumnImpl.java,v 1.5 2008/01/31 02:57:15 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.MergeInsertSpecification;
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryInsertStatement;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.TableExpression;
+import org.eclipse.datatools.modelbase.sql.query.TableInDatabase;
+import org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Value Expression Column</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionColumnImpl#getAssignmentExprTarget <em>Assignment Expr Target</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionColumnImpl#getParentTableExpr <em>Parent Table Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionColumnImpl#getInsertStatement <em>Insert Statement</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionColumnImpl#getTableExpr <em>Table Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionColumnImpl#getTableInDatabase <em>Table In Database</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionColumnImpl#getMergeInsertSpec <em>Merge Insert Spec</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ValueExpressionColumnImpl extends ValueExpressionAtomicImpl implements ValueExpressionColumn {
+	/**
+     * The cached value of the '{@link #getAssignmentExprTarget() <em>Assignment Expr Target</em>}' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getAssignmentExprTarget()
+     * @generated
+     * @ordered
+     */
+    protected EList assignmentExprTarget;
+
+	/**
+     * The cached value of the '{@link #getInsertStatement() <em>Insert Statement</em>}' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getInsertStatement()
+     * @generated
+     * @ordered
+     */
+    protected EList insertStatement;
+
+	/**
+     * The cached value of the '{@link #getTableExpr() <em>Table Expr</em>}' reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getTableExpr()
+     * @generated
+     * @ordered
+     */
+    protected TableExpression tableExpr;
+
+	/**
+     * The cached value of the '{@link #getTableInDatabase() <em>Table In Database</em>}' reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getTableInDatabase()
+     * @generated
+     * @ordered
+     */
+    protected TableInDatabase tableInDatabase;
+
+	/**
+     * The cached value of the '{@link #getMergeInsertSpec() <em>Merge Insert Spec</em>}' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getMergeInsertSpec()
+     * @generated
+     * @ordered
+     */
+    protected EList mergeInsertSpec;
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected ValueExpressionColumnImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.VALUE_EXPRESSION_COLUMN;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getAssignmentExprTarget() {
+        if (assignmentExprTarget == null) {
+            assignmentExprTarget = new EObjectWithInverseResolvingEList.ManyInverse(UpdateAssignmentExpression.class, this, SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__ASSIGNMENT_EXPR_TARGET, SQLQueryModelPackage.UPDATE_ASSIGNMENT_EXPRESSION__TARGET_COLUMN_LIST);
+        }
+        return assignmentExprTarget;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public TableExpression getParentTableExpr() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__PARENT_TABLE_EXPR) return null;
+        return (TableExpression)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetParentTableExpr(TableExpression newParentTableExpr, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newParentTableExpr, SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__PARENT_TABLE_EXPR, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setParentTableExpr(TableExpression newParentTableExpr) {
+        if (newParentTableExpr != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__PARENT_TABLE_EXPR && newParentTableExpr != null)) {
+            if (EcoreUtil.isAncestor(this, newParentTableExpr))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newParentTableExpr != null)
+                msgs = ((InternalEObject)newParentTableExpr).eInverseAdd(this, SQLQueryModelPackage.TABLE_EXPRESSION__COLUMN_LIST, TableExpression.class, msgs);
+            msgs = basicSetParentTableExpr(newParentTableExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__PARENT_TABLE_EXPR, newParentTableExpr, newParentTableExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public TableExpression getTableExpr() {
+        if (tableExpr != null && tableExpr.eIsProxy()) {
+            InternalEObject oldTableExpr = (InternalEObject)tableExpr;
+            tableExpr = (TableExpression)eResolveProxy(oldTableExpr);
+            if (tableExpr != oldTableExpr) {
+                if (eNotificationRequired())
+                    eNotify(new ENotificationImpl(this, Notification.RESOLVE, SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__TABLE_EXPR, oldTableExpr, tableExpr));
+            }
+        }
+        return tableExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public TableExpression basicGetTableExpr() {
+        return tableExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetTableExpr(TableExpression newTableExpr, NotificationChain msgs) {
+        TableExpression oldTableExpr = tableExpr;
+        tableExpr = newTableExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__TABLE_EXPR, oldTableExpr, newTableExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setTableExpr(TableExpression newTableExpr) {
+        if (newTableExpr != tableExpr) {
+            NotificationChain msgs = null;
+            if (tableExpr != null)
+                msgs = ((InternalEObject)tableExpr).eInverseRemove(this, SQLQueryModelPackage.TABLE_EXPRESSION__VALUE_EXPR_COLUMNS, TableExpression.class, msgs);
+            if (newTableExpr != null)
+                msgs = ((InternalEObject)newTableExpr).eInverseAdd(this, SQLQueryModelPackage.TABLE_EXPRESSION__VALUE_EXPR_COLUMNS, TableExpression.class, msgs);
+            msgs = basicSetTableExpr(newTableExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__TABLE_EXPR, newTableExpr, newTableExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public TableInDatabase getTableInDatabase() {
+        if (tableInDatabase != null && tableInDatabase.eIsProxy()) {
+            InternalEObject oldTableInDatabase = (InternalEObject)tableInDatabase;
+            tableInDatabase = (TableInDatabase)eResolveProxy(oldTableInDatabase);
+            if (tableInDatabase != oldTableInDatabase) {
+                if (eNotificationRequired())
+                    eNotify(new ENotificationImpl(this, Notification.RESOLVE, SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__TABLE_IN_DATABASE, oldTableInDatabase, tableInDatabase));
+            }
+        }
+        return tableInDatabase;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public TableInDatabase basicGetTableInDatabase() {
+        return tableInDatabase;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetTableInDatabase(TableInDatabase newTableInDatabase, NotificationChain msgs) {
+        TableInDatabase oldTableInDatabase = tableInDatabase;
+        tableInDatabase = newTableInDatabase;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__TABLE_IN_DATABASE, oldTableInDatabase, newTableInDatabase);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setTableInDatabase(TableInDatabase newTableInDatabase) {
+        if (newTableInDatabase != tableInDatabase) {
+            NotificationChain msgs = null;
+            if (tableInDatabase != null)
+                msgs = ((InternalEObject)tableInDatabase).eInverseRemove(this, SQLQueryModelPackage.TABLE_IN_DATABASE__DERIVED_COLUMN_LIST, TableInDatabase.class, msgs);
+            if (newTableInDatabase != null)
+                msgs = ((InternalEObject)newTableInDatabase).eInverseAdd(this, SQLQueryModelPackage.TABLE_IN_DATABASE__DERIVED_COLUMN_LIST, TableInDatabase.class, msgs);
+            msgs = basicSetTableInDatabase(newTableInDatabase, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__TABLE_IN_DATABASE, newTableInDatabase, newTableInDatabase));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getMergeInsertSpec() {
+        if (mergeInsertSpec == null) {
+            mergeInsertSpec = new EObjectWithInverseResolvingEList.ManyInverse(MergeInsertSpecification.class, this, SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__MERGE_INSERT_SPEC, SQLQueryModelPackage.MERGE_INSERT_SPECIFICATION__TARGET_COLUMN_LIST);
+        }
+        return mergeInsertSpec;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__ASSIGNMENT_EXPR_TARGET:
+                return ((InternalEList)getAssignmentExprTarget()).basicAdd(otherEnd, msgs);
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__PARENT_TABLE_EXPR:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetParentTableExpr((TableExpression)otherEnd, msgs);
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__INSERT_STATEMENT:
+                return ((InternalEList)getInsertStatement()).basicAdd(otherEnd, msgs);
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__TABLE_EXPR:
+                if (tableExpr != null)
+                    msgs = ((InternalEObject)tableExpr).eInverseRemove(this, SQLQueryModelPackage.TABLE_EXPRESSION__VALUE_EXPR_COLUMNS, TableExpression.class, msgs);
+                return basicSetTableExpr((TableExpression)otherEnd, msgs);
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__TABLE_IN_DATABASE:
+                if (tableInDatabase != null)
+                    msgs = ((InternalEObject)tableInDatabase).eInverseRemove(this, SQLQueryModelPackage.TABLE_IN_DATABASE__DERIVED_COLUMN_LIST, TableInDatabase.class, msgs);
+                return basicSetTableInDatabase((TableInDatabase)otherEnd, msgs);
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__MERGE_INSERT_SPEC:
+                return ((InternalEList)getMergeInsertSpec()).basicAdd(otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__ASSIGNMENT_EXPR_TARGET:
+                return ((InternalEList)getAssignmentExprTarget()).basicRemove(otherEnd, msgs);
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__PARENT_TABLE_EXPR:
+                return basicSetParentTableExpr(null, msgs);
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__INSERT_STATEMENT:
+                return ((InternalEList)getInsertStatement()).basicRemove(otherEnd, msgs);
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__TABLE_EXPR:
+                return basicSetTableExpr(null, msgs);
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__TABLE_IN_DATABASE:
+                return basicSetTableInDatabase(null, msgs);
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__MERGE_INSERT_SPEC:
+                return ((InternalEList)getMergeInsertSpec()).basicRemove(otherEnd, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__PARENT_TABLE_EXPR:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.TABLE_EXPRESSION__COLUMN_LIST, TableExpression.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__ASSIGNMENT_EXPR_TARGET:
+                return getAssignmentExprTarget();
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__PARENT_TABLE_EXPR:
+                return getParentTableExpr();
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__INSERT_STATEMENT:
+                return getInsertStatement();
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__TABLE_EXPR:
+                if (resolve) return getTableExpr();
+                return basicGetTableExpr();
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__TABLE_IN_DATABASE:
+                if (resolve) return getTableInDatabase();
+                return basicGetTableInDatabase();
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__MERGE_INSERT_SPEC:
+                return getMergeInsertSpec();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__ASSIGNMENT_EXPR_TARGET:
+                getAssignmentExprTarget().clear();
+                getAssignmentExprTarget().addAll((Collection)newValue);
+                return;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__PARENT_TABLE_EXPR:
+                setParentTableExpr((TableExpression)newValue);
+                return;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__INSERT_STATEMENT:
+                getInsertStatement().clear();
+                getInsertStatement().addAll((Collection)newValue);
+                return;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__TABLE_EXPR:
+                setTableExpr((TableExpression)newValue);
+                return;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__TABLE_IN_DATABASE:
+                setTableInDatabase((TableInDatabase)newValue);
+                return;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__MERGE_INSERT_SPEC:
+                getMergeInsertSpec().clear();
+                getMergeInsertSpec().addAll((Collection)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__ASSIGNMENT_EXPR_TARGET:
+                getAssignmentExprTarget().clear();
+                return;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__PARENT_TABLE_EXPR:
+                setParentTableExpr((TableExpression)null);
+                return;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__INSERT_STATEMENT:
+                getInsertStatement().clear();
+                return;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__TABLE_EXPR:
+                setTableExpr((TableExpression)null);
+                return;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__TABLE_IN_DATABASE:
+                setTableInDatabase((TableInDatabase)null);
+                return;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__MERGE_INSERT_SPEC:
+                getMergeInsertSpec().clear();
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__ASSIGNMENT_EXPR_TARGET:
+                return assignmentExprTarget != null && !assignmentExprTarget.isEmpty();
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__PARENT_TABLE_EXPR:
+                return getParentTableExpr() != null;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__INSERT_STATEMENT:
+                return insertStatement != null && !insertStatement.isEmpty();
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__TABLE_EXPR:
+                return tableExpr != null;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__TABLE_IN_DATABASE:
+                return tableInDatabase != null;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__MERGE_INSERT_SPEC:
+                return mergeInsertSpec != null && !mergeInsertSpec.isEmpty();
+        }
+        return super.eIsSet(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getInsertStatement() {
+        if (insertStatement == null) {
+            insertStatement = new EObjectWithInverseResolvingEList.ManyInverse(QueryInsertStatement.class, this, SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN__INSERT_STATEMENT, SQLQueryModelPackage.QUERY_INSERT_STATEMENT__TARGET_COLUMN_LIST);
+        }
+        return insertStatement;
+    }
+
+} //SQLValueExpressionColumnImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionCombinedImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionCombinedImpl.java
new file mode 100644
index 0000000..f526acf
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionCombinedImpl.java
@@ -0,0 +1,352 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionCombinedImpl.java,v 1.5 2007/02/08 17:00:26 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombinedOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Value Expression Combined</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCombinedImpl#getCombinedOperator <em>Combined Operator</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCombinedImpl#getLeftValueExpr <em>Left Value Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCombinedImpl#getRightValueExpr <em>Right Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ValueExpressionCombinedImpl extends QueryValueExpressionImpl implements ValueExpressionCombined {
+	/**
+     * The default value of the '{@link #getCombinedOperator() <em>Combined Operator</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getCombinedOperator()
+     * @generated
+     * @ordered
+     */
+    protected static final ValueExpressionCombinedOperator COMBINED_OPERATOR_EDEFAULT = ValueExpressionCombinedOperator.ADD_LITERAL;
+
+	/**
+     * The cached value of the '{@link #getCombinedOperator() <em>Combined Operator</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getCombinedOperator()
+     * @generated
+     * @ordered
+     */
+    protected ValueExpressionCombinedOperator combinedOperator = COMBINED_OPERATOR_EDEFAULT;
+
+	/**
+     * The cached value of the '{@link #getLeftValueExpr() <em>Left Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getLeftValueExpr()
+     * @generated
+     * @ordered
+     */
+    protected QueryValueExpression leftValueExpr;
+
+	/**
+     * The cached value of the '{@link #getRightValueExpr() <em>Right Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getRightValueExpr()
+     * @generated
+     * @ordered
+     */
+    protected QueryValueExpression rightValueExpr;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected ValueExpressionCombinedImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.VALUE_EXPRESSION_COMBINED;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public ValueExpressionCombinedOperator getCombinedOperator() {
+        return combinedOperator;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setCombinedOperator(ValueExpressionCombinedOperator newCombinedOperator) {
+        ValueExpressionCombinedOperator oldCombinedOperator = combinedOperator;
+        combinedOperator = newCombinedOperator == null ? COMBINED_OPERATOR_EDEFAULT : newCombinedOperator;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.VALUE_EXPRESSION_COMBINED__COMBINED_OPERATOR, oldCombinedOperator, combinedOperator));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryValueExpression getLeftValueExpr() {
+        return leftValueExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetLeftValueExpr(QueryValueExpression newLeftValueExpr, NotificationChain msgs) {
+        QueryValueExpression oldLeftValueExpr = leftValueExpr;
+        leftValueExpr = newLeftValueExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.VALUE_EXPRESSION_COMBINED__LEFT_VALUE_EXPR, oldLeftValueExpr, newLeftValueExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setLeftValueExpr(QueryValueExpression newLeftValueExpr) {
+        if (newLeftValueExpr != leftValueExpr) {
+            NotificationChain msgs = null;
+            if (leftValueExpr != null)
+                msgs = ((InternalEObject)leftValueExpr).eInverseRemove(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_LEFT, QueryValueExpression.class, msgs);
+            if (newLeftValueExpr != null)
+                msgs = ((InternalEObject)newLeftValueExpr).eInverseAdd(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_LEFT, QueryValueExpression.class, msgs);
+            msgs = basicSetLeftValueExpr(newLeftValueExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.VALUE_EXPRESSION_COMBINED__LEFT_VALUE_EXPR, newLeftValueExpr, newLeftValueExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryValueExpression getRightValueExpr() {
+        return rightValueExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetRightValueExpr(QueryValueExpression newRightValueExpr, NotificationChain msgs) {
+        QueryValueExpression oldRightValueExpr = rightValueExpr;
+        rightValueExpr = newRightValueExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.VALUE_EXPRESSION_COMBINED__RIGHT_VALUE_EXPR, oldRightValueExpr, newRightValueExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setRightValueExpr(QueryValueExpression newRightValueExpr) {
+        if (newRightValueExpr != rightValueExpr) {
+            NotificationChain msgs = null;
+            if (rightValueExpr != null)
+                msgs = ((InternalEObject)rightValueExpr).eInverseRemove(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_RIGHT, QueryValueExpression.class, msgs);
+            if (newRightValueExpr != null)
+                msgs = ((InternalEObject)newRightValueExpr).eInverseAdd(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_RIGHT, QueryValueExpression.class, msgs);
+            msgs = basicSetRightValueExpr(newRightValueExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.VALUE_EXPRESSION_COMBINED__RIGHT_VALUE_EXPR, newRightValueExpr, newRightValueExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COMBINED__LEFT_VALUE_EXPR:
+                if (leftValueExpr != null)
+                    msgs = ((InternalEObject)leftValueExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.VALUE_EXPRESSION_COMBINED__LEFT_VALUE_EXPR, null, msgs);
+                return basicSetLeftValueExpr((QueryValueExpression)otherEnd, msgs);
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COMBINED__RIGHT_VALUE_EXPR:
+                if (rightValueExpr != null)
+                    msgs = ((InternalEObject)rightValueExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.VALUE_EXPRESSION_COMBINED__RIGHT_VALUE_EXPR, null, msgs);
+                return basicSetRightValueExpr((QueryValueExpression)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COMBINED__LEFT_VALUE_EXPR:
+                return basicSetLeftValueExpr(null, msgs);
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COMBINED__RIGHT_VALUE_EXPR:
+                return basicSetRightValueExpr(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COMBINED__COMBINED_OPERATOR:
+                return getCombinedOperator();
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COMBINED__LEFT_VALUE_EXPR:
+                return getLeftValueExpr();
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COMBINED__RIGHT_VALUE_EXPR:
+                return getRightValueExpr();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COMBINED__COMBINED_OPERATOR:
+                setCombinedOperator((ValueExpressionCombinedOperator)newValue);
+                return;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COMBINED__LEFT_VALUE_EXPR:
+                setLeftValueExpr((QueryValueExpression)newValue);
+                return;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COMBINED__RIGHT_VALUE_EXPR:
+                setRightValueExpr((QueryValueExpression)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COMBINED__COMBINED_OPERATOR:
+                setCombinedOperator(COMBINED_OPERATOR_EDEFAULT);
+                return;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COMBINED__LEFT_VALUE_EXPR:
+                setLeftValueExpr((QueryValueExpression)null);
+                return;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COMBINED__RIGHT_VALUE_EXPR:
+                setRightValueExpr((QueryValueExpression)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COMBINED__COMBINED_OPERATOR:
+                return combinedOperator != COMBINED_OPERATOR_EDEFAULT;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COMBINED__LEFT_VALUE_EXPR:
+                return leftValueExpr != null;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COMBINED__RIGHT_VALUE_EXPR:
+                return rightValueExpr != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (combinedOperator: ");
+        result.append(combinedOperator);
+        result.append(')');
+        return result.toString();
+    }
+
+} //SQLValueExpressionCombinedImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionDefaultValueImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionDefaultValueImpl.java
new file mode 100644
index 0000000..fd98fe1
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionDefaultValueImpl.java
@@ -0,0 +1,78 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionDefaultValueImpl.java,v 1.5 2007/02/08 17:00:26 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionDefaultValue;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Value Expression Default</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class ValueExpressionDefaultValueImpl extends ValueExpressionAtomicImpl implements ValueExpressionDefaultValue {
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected ValueExpressionDefaultValueImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.VALUE_EXPRESSION_DEFAULT_VALUE;
+    }
+
+} //SQLValueExpressionDefaultImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionFunctionImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionFunctionImpl.java
new file mode 100644
index 0000000..9acd22d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionFunctionImpl.java
@@ -0,0 +1,420 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionFunctionImpl.java,v 1.5 2007/02/08 17:00:27 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+import org.eclipse.datatools.modelbase.sql.routines.Function;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Value Expression Function</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionFunctionImpl#isSpecialRegister <em>Special Register</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionFunctionImpl#isDistinct <em>Distinct</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionFunctionImpl#isColumnFunction <em>Column Function</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionFunctionImpl#getParameterList <em>Parameter List</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionFunctionImpl#getFunction <em>Function</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ValueExpressionFunctionImpl extends ValueExpressionAtomicImpl implements ValueExpressionFunction {
+	/**
+     * The default value of the '{@link #isSpecialRegister() <em>Special Register</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #isSpecialRegister()
+     * @generated
+     * @ordered
+     */
+    protected static final boolean SPECIAL_REGISTER_EDEFAULT = false;
+
+	/**
+     * The cached value of the '{@link #isSpecialRegister() <em>Special Register</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #isSpecialRegister()
+     * @generated
+     * @ordered
+     */
+    protected boolean specialRegister = SPECIAL_REGISTER_EDEFAULT;
+
+	/**
+     * The default value of the '{@link #isDistinct() <em>Distinct</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #isDistinct()
+     * @generated
+     * @ordered
+     */
+    protected static final boolean DISTINCT_EDEFAULT = false;
+
+	/**
+     * The cached value of the '{@link #isDistinct() <em>Distinct</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #isDistinct()
+     * @generated
+     * @ordered
+     */
+    protected boolean distinct = DISTINCT_EDEFAULT;
+
+	/**
+     * The default value of the '{@link #isColumnFunction() <em>Column Function</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #isColumnFunction()
+     * @generated
+     * @ordered
+     */
+    protected static final boolean COLUMN_FUNCTION_EDEFAULT = false;
+
+	/**
+     * The cached value of the '{@link #isColumnFunction() <em>Column Function</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #isColumnFunction()
+     * @generated
+     * @ordered
+     */
+    protected boolean columnFunction = COLUMN_FUNCTION_EDEFAULT;
+
+	/**
+     * The cached value of the '{@link #getParameterList() <em>Parameter List</em>}' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getParameterList()
+     * @generated
+     * @ordered
+     */
+    protected EList parameterList;
+
+	/**
+     * The cached value of the '{@link #getFunction() <em>Function</em>}' reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getFunction()
+     * @generated
+     * @ordered
+     */
+    protected Function function;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected ValueExpressionFunctionImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.VALUE_EXPRESSION_FUNCTION;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public boolean isSpecialRegister() {
+        return specialRegister;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setSpecialRegister(boolean newSpecialRegister) {
+        boolean oldSpecialRegister = specialRegister;
+        specialRegister = newSpecialRegister;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__SPECIAL_REGISTER, oldSpecialRegister, specialRegister));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public boolean isDistinct() {
+        return distinct;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setDistinct(boolean newDistinct) {
+        boolean oldDistinct = distinct;
+        distinct = newDistinct;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__DISTINCT, oldDistinct, distinct));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public boolean isColumnFunction() {
+        return columnFunction;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setColumnFunction(boolean newColumnFunction) {
+        boolean oldColumnFunction = columnFunction;
+        columnFunction = newColumnFunction;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__COLUMN_FUNCTION, oldColumnFunction, columnFunction));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getParameterList() {
+        if (parameterList == null) {
+            parameterList = new EObjectContainmentWithInverseEList(QueryValueExpression.class, this, SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__PARAMETER_LIST, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_FUNCTION);
+        }
+        return parameterList;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public Function getFunction() {
+        if (function != null && function.eIsProxy()) {
+            InternalEObject oldFunction = (InternalEObject)function;
+            function = (Function)eResolveProxy(oldFunction);
+            if (function != oldFunction) {
+                if (eNotificationRequired())
+                    eNotify(new ENotificationImpl(this, Notification.RESOLVE, SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__FUNCTION, oldFunction, function));
+            }
+        }
+        return function;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public Function basicGetFunction() {
+        return function;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setFunction(Function newFunction) {
+        Function oldFunction = function;
+        function = newFunction;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__FUNCTION, oldFunction, function));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__PARAMETER_LIST:
+                return ((InternalEList)getParameterList()).basicAdd(otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__PARAMETER_LIST:
+                return ((InternalEList)getParameterList()).basicRemove(otherEnd, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__SPECIAL_REGISTER:
+                return isSpecialRegister() ? Boolean.TRUE : Boolean.FALSE;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__DISTINCT:
+                return isDistinct() ? Boolean.TRUE : Boolean.FALSE;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__COLUMN_FUNCTION:
+                return isColumnFunction() ? Boolean.TRUE : Boolean.FALSE;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__PARAMETER_LIST:
+                return getParameterList();
+            case SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__FUNCTION:
+                if (resolve) return getFunction();
+                return basicGetFunction();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__SPECIAL_REGISTER:
+                setSpecialRegister(((Boolean)newValue).booleanValue());
+                return;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__DISTINCT:
+                setDistinct(((Boolean)newValue).booleanValue());
+                return;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__COLUMN_FUNCTION:
+                setColumnFunction(((Boolean)newValue).booleanValue());
+                return;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__PARAMETER_LIST:
+                getParameterList().clear();
+                getParameterList().addAll((Collection)newValue);
+                return;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__FUNCTION:
+                setFunction((Function)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__SPECIAL_REGISTER:
+                setSpecialRegister(SPECIAL_REGISTER_EDEFAULT);
+                return;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__DISTINCT:
+                setDistinct(DISTINCT_EDEFAULT);
+                return;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__COLUMN_FUNCTION:
+                setColumnFunction(COLUMN_FUNCTION_EDEFAULT);
+                return;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__PARAMETER_LIST:
+                getParameterList().clear();
+                return;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__FUNCTION:
+                setFunction((Function)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__SPECIAL_REGISTER:
+                return specialRegister != SPECIAL_REGISTER_EDEFAULT;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__DISTINCT:
+                return distinct != DISTINCT_EDEFAULT;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__COLUMN_FUNCTION:
+                return columnFunction != COLUMN_FUNCTION_EDEFAULT;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__PARAMETER_LIST:
+                return parameterList != null && !parameterList.isEmpty();
+            case SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__FUNCTION:
+                return function != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (specialRegister: ");
+        result.append(specialRegister);
+        result.append(", distinct: ");
+        result.append(distinct);
+        result.append(", columnFunction: ");
+        result.append(columnFunction);
+        result.append(')');
+        return result.toString();
+    }
+
+} //SQLValueExpressionFunctionImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionLabeledDurationImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionLabeledDurationImpl.java
new file mode 100644
index 0000000..08c61ce
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionLabeledDurationImpl.java
@@ -0,0 +1,282 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionLabeledDurationImpl.java,v 1.5 2007/02/08 17:00:25 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDurationType;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Value Expression Labeled Duration</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionLabeledDurationImpl#getLabeledDurationType <em>Labeled Duration Type</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionLabeledDurationImpl#getValueExpr <em>Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ValueExpressionLabeledDurationImpl extends ValueExpressionAtomicImpl implements ValueExpressionLabeledDuration {
+	/**
+     * The default value of the '{@link #getLabeledDurationType() <em>Labeled Duration Type</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getLabeledDurationType()
+     * @generated
+     * @ordered
+     */
+    protected static final ValueExpressionLabeledDurationType LABELED_DURATION_TYPE_EDEFAULT = ValueExpressionLabeledDurationType.YEARS_LITERAL;
+
+	/**
+     * The cached value of the '{@link #getLabeledDurationType() <em>Labeled Duration Type</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getLabeledDurationType()
+     * @generated
+     * @ordered
+     */
+    protected ValueExpressionLabeledDurationType labeledDurationType = LABELED_DURATION_TYPE_EDEFAULT;
+
+	/**
+     * The cached value of the '{@link #getValueExpr() <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getValueExpr()
+     * @generated
+     * @ordered
+     */
+    protected QueryValueExpression valueExpr;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected ValueExpressionLabeledDurationImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.VALUE_EXPRESSION_LABELED_DURATION;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public ValueExpressionLabeledDurationType getLabeledDurationType() {
+        return labeledDurationType;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setLabeledDurationType(ValueExpressionLabeledDurationType newLabeledDurationType) {
+        ValueExpressionLabeledDurationType oldLabeledDurationType = labeledDurationType;
+        labeledDurationType = newLabeledDurationType == null ? LABELED_DURATION_TYPE_EDEFAULT : newLabeledDurationType;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.VALUE_EXPRESSION_LABELED_DURATION__LABELED_DURATION_TYPE, oldLabeledDurationType, labeledDurationType));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryValueExpression getValueExpr() {
+        return valueExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetValueExpr(QueryValueExpression newValueExpr, NotificationChain msgs) {
+        QueryValueExpression oldValueExpr = valueExpr;
+        valueExpr = newValueExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.VALUE_EXPRESSION_LABELED_DURATION__VALUE_EXPR, oldValueExpr, newValueExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueExpr(QueryValueExpression newValueExpr) {
+        if (newValueExpr != valueExpr) {
+            NotificationChain msgs = null;
+            if (valueExpr != null)
+                msgs = ((InternalEObject)valueExpr).eInverseRemove(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_LABELED_DURATION, QueryValueExpression.class, msgs);
+            if (newValueExpr != null)
+                msgs = ((InternalEObject)newValueExpr).eInverseAdd(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_LABELED_DURATION, QueryValueExpression.class, msgs);
+            msgs = basicSetValueExpr(newValueExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.VALUE_EXPRESSION_LABELED_DURATION__VALUE_EXPR, newValueExpr, newValueExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_LABELED_DURATION__VALUE_EXPR:
+                if (valueExpr != null)
+                    msgs = ((InternalEObject)valueExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.VALUE_EXPRESSION_LABELED_DURATION__VALUE_EXPR, null, msgs);
+                return basicSetValueExpr((QueryValueExpression)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_LABELED_DURATION__VALUE_EXPR:
+                return basicSetValueExpr(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_LABELED_DURATION__LABELED_DURATION_TYPE:
+                return getLabeledDurationType();
+            case SQLQueryModelPackage.VALUE_EXPRESSION_LABELED_DURATION__VALUE_EXPR:
+                return getValueExpr();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_LABELED_DURATION__LABELED_DURATION_TYPE:
+                setLabeledDurationType((ValueExpressionLabeledDurationType)newValue);
+                return;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_LABELED_DURATION__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_LABELED_DURATION__LABELED_DURATION_TYPE:
+                setLabeledDurationType(LABELED_DURATION_TYPE_EDEFAULT);
+                return;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_LABELED_DURATION__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_LABELED_DURATION__LABELED_DURATION_TYPE:
+                return labeledDurationType != LABELED_DURATION_TYPE_EDEFAULT;
+            case SQLQueryModelPackage.VALUE_EXPRESSION_LABELED_DURATION__VALUE_EXPR:
+                return valueExpr != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (labeledDurationType: ");
+        result.append(labeledDurationType);
+        result.append(')');
+        return result.toString();
+    }
+
+} //SQLValueExpressionLabeledDurationImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionNestedImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionNestedImpl.java
new file mode 100644
index 0000000..e74a090
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionNestedImpl.java
@@ -0,0 +1,214 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionNestedImpl.java,v 1.5 2007/02/08 17:00:25 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Value Expression Nested</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionNestedImpl#getNestedValueExpr <em>Nested Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ValueExpressionNestedImpl extends QueryValueExpressionImpl implements ValueExpressionNested {
+	/**
+     * The cached value of the '{@link #getNestedValueExpr() <em>Nested Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @see #getNestedValueExpr()
+     * @generated
+     * @ordered
+     */
+  protected QueryValueExpression nestedValueExpr;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected ValueExpressionNestedImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.VALUE_EXPRESSION_NESTED;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public QueryValueExpression getNestedValueExpr() {
+        return nestedValueExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public NotificationChain basicSetNestedValueExpr(QueryValueExpression newNestedValueExpr, NotificationChain msgs) {
+        QueryValueExpression oldNestedValueExpr = nestedValueExpr;
+        nestedValueExpr = newNestedValueExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.VALUE_EXPRESSION_NESTED__NESTED_VALUE_EXPR, oldNestedValueExpr, newNestedValueExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void setNestedValueExpr(QueryValueExpression newNestedValueExpr) {
+        if (newNestedValueExpr != nestedValueExpr) {
+            NotificationChain msgs = null;
+            if (nestedValueExpr != null)
+                msgs = ((InternalEObject)nestedValueExpr).eInverseRemove(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__NEST, QueryValueExpression.class, msgs);
+            if (newNestedValueExpr != null)
+                msgs = ((InternalEObject)newNestedValueExpr).eInverseAdd(this, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__NEST, QueryValueExpression.class, msgs);
+            msgs = basicSetNestedValueExpr(newNestedValueExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.VALUE_EXPRESSION_NESTED__NESTED_VALUE_EXPR, newNestedValueExpr, newNestedValueExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_NESTED__NESTED_VALUE_EXPR:
+                if (nestedValueExpr != null)
+                    msgs = ((InternalEObject)nestedValueExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.VALUE_EXPRESSION_NESTED__NESTED_VALUE_EXPR, null, msgs);
+                return basicSetNestedValueExpr((QueryValueExpression)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_NESTED__NESTED_VALUE_EXPR:
+                return basicSetNestedValueExpr(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_NESTED__NESTED_VALUE_EXPR:
+                return getNestedValueExpr();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_NESTED__NESTED_VALUE_EXPR:
+                setNestedValueExpr((QueryValueExpression)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_NESTED__NESTED_VALUE_EXPR:
+                setNestedValueExpr((QueryValueExpression)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_NESTED__NESTED_VALUE_EXPR:
+                return nestedValueExpr != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //SQLValueExpressionNestedImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionNullValueImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionNullValueImpl.java
new file mode 100644
index 0000000..ab21b89
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionNullValueImpl.java
@@ -0,0 +1,78 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionNullValueImpl.java,v 1.5 2007/02/08 17:00:25 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNullValue;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Value Expression Null</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class ValueExpressionNullValueImpl extends ValueExpressionAtomicImpl implements ValueExpressionNullValue {
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected ValueExpressionNullValueImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.VALUE_EXPRESSION_NULL_VALUE;
+    }
+
+} //SQLValueExpressionNullImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionRowImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionRowImpl.java
new file mode 100644
index 0000000..f45d971
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionRowImpl.java
@@ -0,0 +1,160 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionRow;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Value Expression Row</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionRowImpl#getValueExprList <em>Value Expr List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ValueExpressionRowImpl extends QueryValueExpressionImpl implements ValueExpressionRow {
+    /**
+     * The cached value of the '{@link #getValueExprList() <em>Value Expr List</em>}' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getValueExprList()
+     * @generated
+     * @ordered
+     */
+    protected EList valueExprList;
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected ValueExpressionRowImpl() {
+        super();
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.VALUE_EXPRESSION_ROW;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getValueExprList() {
+        if (valueExprList == null) {
+            valueExprList = new EObjectContainmentWithInverseEList(QueryValueExpression.class, this, SQLQueryModelPackage.VALUE_EXPRESSION_ROW__VALUE_EXPR_LIST, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_ROW);
+        }
+        return valueExprList;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_ROW__VALUE_EXPR_LIST:
+                return ((InternalEList)getValueExprList()).basicAdd(otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_ROW__VALUE_EXPR_LIST:
+                return ((InternalEList)getValueExprList()).basicRemove(otherEnd, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_ROW__VALUE_EXPR_LIST:
+                return getValueExprList();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_ROW__VALUE_EXPR_LIST:
+                getValueExprList().clear();
+                getValueExprList().addAll((Collection)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_ROW__VALUE_EXPR_LIST:
+                getValueExprList().clear();
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_ROW__VALUE_EXPR_LIST:
+                return valueExprList != null && !valueExprList.isEmpty();
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //ValueExpressionRowImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionScalarSelectImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionScalarSelectImpl.java
new file mode 100644
index 0000000..b700ab3
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionScalarSelectImpl.java
@@ -0,0 +1,215 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionScalarSelectImpl.java,v 1.5 2007/02/08 17:00:26 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionScalarSelect;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Value Expression Scalar Select</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionScalarSelectImpl#getQueryExpr <em>Query Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ValueExpressionScalarSelectImpl extends ValueExpressionAtomicImpl implements ValueExpressionScalarSelect {
+	/**
+     * The cached value of the '{@link #getQueryExpr() <em>Query Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getQueryExpr()
+     * @generated
+     * @ordered
+     */
+    protected QueryExpressionRoot queryExpr;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected ValueExpressionScalarSelectImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.VALUE_EXPRESSION_SCALAR_SELECT;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryExpressionRoot getQueryExpr() {
+        return queryExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public NotificationChain basicSetQueryExpr(QueryExpressionRoot newQueryExpr, NotificationChain msgs) {
+        QueryExpressionRoot oldQueryExpr = queryExpr;
+        queryExpr = newQueryExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.VALUE_EXPRESSION_SCALAR_SELECT__QUERY_EXPR, oldQueryExpr, newQueryExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+     * @generated
+     */
+  public void setQueryExpr(QueryExpressionRoot newQueryExpr) {
+        if (newQueryExpr != queryExpr) {
+            NotificationChain msgs = null;
+            if (queryExpr != null)
+                msgs = ((InternalEObject)queryExpr).eInverseRemove(this, SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__VAL_EXPR_SCALAR_SELECT, QueryExpressionRoot.class, msgs);
+            if (newQueryExpr != null)
+                msgs = ((InternalEObject)newQueryExpr).eInverseAdd(this, SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__VAL_EXPR_SCALAR_SELECT, QueryExpressionRoot.class, msgs);
+            msgs = basicSetQueryExpr(newQueryExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.VALUE_EXPRESSION_SCALAR_SELECT__QUERY_EXPR, newQueryExpr, newQueryExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_SCALAR_SELECT__QUERY_EXPR:
+                if (queryExpr != null)
+                    msgs = ((InternalEObject)queryExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.VALUE_EXPRESSION_SCALAR_SELECT__QUERY_EXPR, null, msgs);
+                return basicSetQueryExpr((QueryExpressionRoot)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_SCALAR_SELECT__QUERY_EXPR:
+                return basicSetQueryExpr(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_SCALAR_SELECT__QUERY_EXPR:
+                return getQueryExpr();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_SCALAR_SELECT__QUERY_EXPR:
+                setQueryExpr((QueryExpressionRoot)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_SCALAR_SELECT__QUERY_EXPR:
+                setQueryExpr((QueryExpressionRoot)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_SCALAR_SELECT__QUERY_EXPR:
+                return queryExpr != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //SQLValueExpressionScalarSelectImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionSimpleImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionSimpleImpl.java
new file mode 100644
index 0000000..142ca3f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionSimpleImpl.java
@@ -0,0 +1,192 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionSimpleImpl.java,v 1.5 2007/02/08 17:00:27 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Value Expression Simple</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionSimpleImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ValueExpressionSimpleImpl extends ValueExpressionAtomicImpl implements ValueExpressionSimple {
+	/**
+     * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getValue()
+     * @generated
+     * @ordered
+     */
+    protected static final String VALUE_EDEFAULT = null;
+
+	/**
+     * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getValue()
+     * @generated
+     * @ordered
+     */
+    protected String value = VALUE_EDEFAULT;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected ValueExpressionSimpleImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.VALUE_EXPRESSION_SIMPLE;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String getValue() {
+        return value;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValue(String newValue) {
+        String oldValue = value;
+        value = newValue;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.VALUE_EXPRESSION_SIMPLE__VALUE, oldValue, value));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_SIMPLE__VALUE:
+                return getValue();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_SIMPLE__VALUE:
+                setValue((String)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_SIMPLE__VALUE:
+                setValue(VALUE_EDEFAULT);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_SIMPLE__VALUE:
+                return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+        }
+        return super.eIsSet(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (value: ");
+        result.append(value);
+        result.append(')');
+        return result.toString();
+    }
+
+} //SQLValueExpressionSimpleImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionVariableImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionVariableImpl.java
new file mode 100644
index 0000000..baee2ea
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValueExpressionVariableImpl.java
@@ -0,0 +1,217 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValueExpressionVariableImpl.java,v 1.5 2008/01/31 02:57:15 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionVariable;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Value Expression Variable</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionVariableImpl#getQuerySelect <em>Query Select</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ValueExpressionVariableImpl extends ValueExpressionAtomicImpl implements ValueExpressionVariable {
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected ValueExpressionVariableImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.VALUE_EXPRESSION_VARIABLE;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QuerySelect getQuerySelect() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.VALUE_EXPRESSION_VARIABLE__QUERY_SELECT) return null;
+        return (QuerySelect)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetQuerySelect(QuerySelect newQuerySelect, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newQuerySelect, SQLQueryModelPackage.VALUE_EXPRESSION_VARIABLE__QUERY_SELECT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setQuerySelect(QuerySelect newQuerySelect) {
+        if (newQuerySelect != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.VALUE_EXPRESSION_VARIABLE__QUERY_SELECT && newQuerySelect != null)) {
+            if (EcoreUtil.isAncestor(this, newQuerySelect))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newQuerySelect != null)
+                msgs = ((InternalEObject)newQuerySelect).eInverseAdd(this, SQLQueryModelPackage.QUERY_SELECT__INTO_CLAUSE, QuerySelect.class, msgs);
+            msgs = basicSetQuerySelect(newQuerySelect, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.VALUE_EXPRESSION_VARIABLE__QUERY_SELECT, newQuerySelect, newQuerySelect));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_VARIABLE__QUERY_SELECT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetQuerySelect((QuerySelect)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_VARIABLE__QUERY_SELECT:
+                return basicSetQuerySelect(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_VARIABLE__QUERY_SELECT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.QUERY_SELECT__INTO_CLAUSE, QuerySelect.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_VARIABLE__QUERY_SELECT:
+                return getQuerySelect();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_VARIABLE__QUERY_SELECT:
+                setQuerySelect((QuerySelect)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_VARIABLE__QUERY_SELECT:
+                setQuerySelect((QuerySelect)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUE_EXPRESSION_VARIABLE__QUERY_SELECT:
+                return getQuerySelect() != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //SQLValueExpressionVariableImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValuesRowImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValuesRowImpl.java
new file mode 100644
index 0000000..ab98c86
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/ValuesRowImpl.java
@@ -0,0 +1,294 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ValuesRowImpl.java,v 1.5 2008/01/31 02:57:15 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryInsertStatement;
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.QueryValues;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Values Row</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.ValuesRowImpl#getInsertStatement <em>Insert Statement</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.ValuesRowImpl#getExprList <em>Expr List</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.ValuesRowImpl#getQueryValues <em>Query Values</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ValuesRowImpl extends SQLQueryObjectImpl implements ValuesRow {
+	/**
+     * The cached value of the '{@link #getExprList() <em>Expr List</em>}' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getExprList()
+     * @generated
+     * @ordered
+     */
+    protected EList exprList;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected ValuesRowImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.VALUES_ROW;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryInsertStatement getInsertStatement() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.VALUES_ROW__INSERT_STATEMENT) return null;
+        return (QueryInsertStatement)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetInsertStatement(QueryInsertStatement newInsertStatement, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newInsertStatement, SQLQueryModelPackage.VALUES_ROW__INSERT_STATEMENT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setInsertStatement(QueryInsertStatement newInsertStatement) {
+        if (newInsertStatement != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.VALUES_ROW__INSERT_STATEMENT && newInsertStatement != null)) {
+            if (EcoreUtil.isAncestor(this, newInsertStatement))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newInsertStatement != null)
+                msgs = ((InternalEObject)newInsertStatement).eInverseAdd(this, SQLQueryModelPackage.QUERY_INSERT_STATEMENT__SOURCE_VALUES_ROW_LIST, QueryInsertStatement.class, msgs);
+            msgs = basicSetInsertStatement(newInsertStatement, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.VALUES_ROW__INSERT_STATEMENT, newInsertStatement, newInsertStatement));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getExprList() {
+        if (exprList == null) {
+            exprList = new EObjectContainmentWithInverseEList(QueryValueExpression.class, this, SQLQueryModelPackage.VALUES_ROW__EXPR_LIST, SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUES_ROW);
+        }
+        return exprList;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryValues getQueryValues() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.VALUES_ROW__QUERY_VALUES) return null;
+        return (QueryValues)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetQueryValues(QueryValues newQueryValues, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newQueryValues, SQLQueryModelPackage.VALUES_ROW__QUERY_VALUES, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setQueryValues(QueryValues newQueryValues) {
+        if (newQueryValues != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.VALUES_ROW__QUERY_VALUES && newQueryValues != null)) {
+            if (EcoreUtil.isAncestor(this, newQueryValues))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newQueryValues != null)
+                msgs = ((InternalEObject)newQueryValues).eInverseAdd(this, SQLQueryModelPackage.QUERY_VALUES__VALUES_ROW_LIST, QueryValues.class, msgs);
+            msgs = basicSetQueryValues(newQueryValues, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.VALUES_ROW__QUERY_VALUES, newQueryValues, newQueryValues));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUES_ROW__INSERT_STATEMENT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetInsertStatement((QueryInsertStatement)otherEnd, msgs);
+            case SQLQueryModelPackage.VALUES_ROW__EXPR_LIST:
+                return ((InternalEList)getExprList()).basicAdd(otherEnd, msgs);
+            case SQLQueryModelPackage.VALUES_ROW__QUERY_VALUES:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetQueryValues((QueryValues)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUES_ROW__INSERT_STATEMENT:
+                return basicSetInsertStatement(null, msgs);
+            case SQLQueryModelPackage.VALUES_ROW__EXPR_LIST:
+                return ((InternalEList)getExprList()).basicRemove(otherEnd, msgs);
+            case SQLQueryModelPackage.VALUES_ROW__QUERY_VALUES:
+                return basicSetQueryValues(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLQueryModelPackage.VALUES_ROW__INSERT_STATEMENT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.QUERY_INSERT_STATEMENT__SOURCE_VALUES_ROW_LIST, QueryInsertStatement.class, msgs);
+            case SQLQueryModelPackage.VALUES_ROW__QUERY_VALUES:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.QUERY_VALUES__VALUES_ROW_LIST, QueryValues.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUES_ROW__INSERT_STATEMENT:
+                return getInsertStatement();
+            case SQLQueryModelPackage.VALUES_ROW__EXPR_LIST:
+                return getExprList();
+            case SQLQueryModelPackage.VALUES_ROW__QUERY_VALUES:
+                return getQueryValues();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUES_ROW__INSERT_STATEMENT:
+                setInsertStatement((QueryInsertStatement)newValue);
+                return;
+            case SQLQueryModelPackage.VALUES_ROW__EXPR_LIST:
+                getExprList().clear();
+                getExprList().addAll((Collection)newValue);
+                return;
+            case SQLQueryModelPackage.VALUES_ROW__QUERY_VALUES:
+                setQueryValues((QueryValues)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUES_ROW__INSERT_STATEMENT:
+                setInsertStatement((QueryInsertStatement)null);
+                return;
+            case SQLQueryModelPackage.VALUES_ROW__EXPR_LIST:
+                getExprList().clear();
+                return;
+            case SQLQueryModelPackage.VALUES_ROW__QUERY_VALUES:
+                setQueryValues((QueryValues)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.VALUES_ROW__INSERT_STATEMENT:
+                return getInsertStatement() != null;
+            case SQLQueryModelPackage.VALUES_ROW__EXPR_LIST:
+                return exprList != null && !exprList.isEmpty();
+            case SQLQueryModelPackage.VALUES_ROW__QUERY_VALUES:
+                return getQueryValues() != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //SQLValuesRowImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/WithTableReferenceImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/WithTableReferenceImpl.java
new file mode 100644
index 0000000..73c01b6
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/WithTableReferenceImpl.java
@@ -0,0 +1,212 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: WithTableReferenceImpl.java,v 1.5 2007/02/08 17:00:27 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.TableCorrelation;
+import org.eclipse.datatools.modelbase.sql.query.TableJoined;
+import org.eclipse.datatools.modelbase.sql.query.TableNested;
+import org.eclipse.datatools.modelbase.sql.query.WithTableReference;
+import org.eclipse.datatools.modelbase.sql.query.WithTableSpecification;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>With Table Reference</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.WithTableReferenceImpl#getWithTableSpecification <em>With Table Specification</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class WithTableReferenceImpl extends TableExpressionImpl implements WithTableReference {
+	/**
+     * The cached value of the '{@link #getWithTableSpecification() <em>With Table Specification</em>}' reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getWithTableSpecification()
+     * @generated
+     * @ordered
+     */
+    protected WithTableSpecification withTableSpecification;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected WithTableReferenceImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.WITH_TABLE_REFERENCE;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public WithTableSpecification getWithTableSpecification() {
+        if (withTableSpecification != null && withTableSpecification.eIsProxy()) {
+            InternalEObject oldWithTableSpecification = (InternalEObject)withTableSpecification;
+            withTableSpecification = (WithTableSpecification)eResolveProxy(oldWithTableSpecification);
+            if (withTableSpecification != oldWithTableSpecification) {
+                if (eNotificationRequired())
+                    eNotify(new ENotificationImpl(this, Notification.RESOLVE, SQLQueryModelPackage.WITH_TABLE_REFERENCE__WITH_TABLE_SPECIFICATION, oldWithTableSpecification, withTableSpecification));
+            }
+        }
+        return withTableSpecification;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public WithTableSpecification basicGetWithTableSpecification() {
+        return withTableSpecification;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetWithTableSpecification(WithTableSpecification newWithTableSpecification, NotificationChain msgs) {
+        WithTableSpecification oldWithTableSpecification = withTableSpecification;
+        withTableSpecification = newWithTableSpecification;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.WITH_TABLE_REFERENCE__WITH_TABLE_SPECIFICATION, oldWithTableSpecification, newWithTableSpecification);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setWithTableSpecification(WithTableSpecification newWithTableSpecification) {
+        if (newWithTableSpecification != withTableSpecification) {
+            NotificationChain msgs = null;
+            if (withTableSpecification != null)
+                msgs = ((InternalEObject)withTableSpecification).eInverseRemove(this, SQLQueryModelPackage.WITH_TABLE_SPECIFICATION__WITH_TABLE_REFERENCES, WithTableSpecification.class, msgs);
+            if (newWithTableSpecification != null)
+                msgs = ((InternalEObject)newWithTableSpecification).eInverseAdd(this, SQLQueryModelPackage.WITH_TABLE_SPECIFICATION__WITH_TABLE_REFERENCES, WithTableSpecification.class, msgs);
+            msgs = basicSetWithTableSpecification(newWithTableSpecification, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.WITH_TABLE_REFERENCE__WITH_TABLE_SPECIFICATION, newWithTableSpecification, newWithTableSpecification));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.WITH_TABLE_REFERENCE__WITH_TABLE_SPECIFICATION:
+                if (withTableSpecification != null)
+                    msgs = ((InternalEObject)withTableSpecification).eInverseRemove(this, SQLQueryModelPackage.WITH_TABLE_SPECIFICATION__WITH_TABLE_REFERENCES, WithTableSpecification.class, msgs);
+                return basicSetWithTableSpecification((WithTableSpecification)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.WITH_TABLE_REFERENCE__WITH_TABLE_SPECIFICATION:
+                return basicSetWithTableSpecification(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.WITH_TABLE_REFERENCE__WITH_TABLE_SPECIFICATION:
+                if (resolve) return getWithTableSpecification();
+                return basicGetWithTableSpecification();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.WITH_TABLE_REFERENCE__WITH_TABLE_SPECIFICATION:
+                setWithTableSpecification((WithTableSpecification)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.WITH_TABLE_REFERENCE__WITH_TABLE_SPECIFICATION:
+                setWithTableSpecification((WithTableSpecification)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.WITH_TABLE_REFERENCE__WITH_TABLE_SPECIFICATION:
+                return withTableSpecification != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //WithTableReferenceImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/WithTableSpecificationImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/WithTableSpecificationImpl.java
new file mode 100644
index 0000000..17e119a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/impl/WithTableSpecificationImpl.java
@@ -0,0 +1,344 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: WithTableSpecificationImpl.java,v 1.5 2008/01/31 02:57:15 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.ColumnName;
+import org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody;
+import org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.WithTableReference;
+import org.eclipse.datatools.modelbase.sql.query.WithTableSpecification;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>With Table Specification</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.WithTableSpecificationImpl#getQueryExpressionRoot <em>Query Expression Root</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.WithTableSpecificationImpl#getWithTableQueryExpr <em>With Table Query Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.WithTableSpecificationImpl#getWithTableReferences <em>With Table References</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.query.impl.WithTableSpecificationImpl#getColumnNameList <em>Column Name List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class WithTableSpecificationImpl extends SQLQueryObjectImpl implements WithTableSpecification {
+	/**
+     * The cached value of the '{@link #getWithTableQueryExpr() <em>With Table Query Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getWithTableQueryExpr()
+     * @generated
+     * @ordered
+     */
+    protected QueryExpressionBody withTableQueryExpr;
+
+	/**
+     * The cached value of the '{@link #getWithTableReferences() <em>With Table References</em>}' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getWithTableReferences()
+     * @generated
+     * @ordered
+     */
+    protected EList withTableReferences;
+
+	/**
+     * The cached value of the '{@link #getColumnNameList() <em>Column Name List</em>}' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getColumnNameList()
+     * @generated
+     * @ordered
+     */
+    protected EList columnNameList;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected WithTableSpecificationImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLQueryModelPackage.Literals.WITH_TABLE_SPECIFICATION;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryExpressionRoot getQueryExpressionRoot() {
+        if (eContainerFeatureID() != SQLQueryModelPackage.WITH_TABLE_SPECIFICATION__QUERY_EXPRESSION_ROOT) return null;
+        return (QueryExpressionRoot)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetQueryExpressionRoot(QueryExpressionRoot newQueryExpressionRoot, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newQueryExpressionRoot, SQLQueryModelPackage.WITH_TABLE_SPECIFICATION__QUERY_EXPRESSION_ROOT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setQueryExpressionRoot(QueryExpressionRoot newQueryExpressionRoot) {
+        if (newQueryExpressionRoot != eInternalContainer() || (eContainerFeatureID() != SQLQueryModelPackage.WITH_TABLE_SPECIFICATION__QUERY_EXPRESSION_ROOT && newQueryExpressionRoot != null)) {
+            if (EcoreUtil.isAncestor(this, newQueryExpressionRoot))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newQueryExpressionRoot != null)
+                msgs = ((InternalEObject)newQueryExpressionRoot).eInverseAdd(this, SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__WITH_CLAUSE, QueryExpressionRoot.class, msgs);
+            msgs = basicSetQueryExpressionRoot(newQueryExpressionRoot, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.WITH_TABLE_SPECIFICATION__QUERY_EXPRESSION_ROOT, newQueryExpressionRoot, newQueryExpressionRoot));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryExpressionBody getWithTableQueryExpr() {
+        return withTableQueryExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetWithTableQueryExpr(QueryExpressionBody newWithTableQueryExpr, NotificationChain msgs) {
+        QueryExpressionBody oldWithTableQueryExpr = withTableQueryExpr;
+        withTableQueryExpr = newWithTableQueryExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.WITH_TABLE_SPECIFICATION__WITH_TABLE_QUERY_EXPR, oldWithTableQueryExpr, newWithTableQueryExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setWithTableQueryExpr(QueryExpressionBody newWithTableQueryExpr) {
+        if (newWithTableQueryExpr != withTableQueryExpr) {
+            NotificationChain msgs = null;
+            if (withTableQueryExpr != null)
+                msgs = ((InternalEObject)withTableQueryExpr).eInverseRemove(this, SQLQueryModelPackage.QUERY_EXPRESSION_BODY__WITH_TABLE_SPECIFICATION, QueryExpressionBody.class, msgs);
+            if (newWithTableQueryExpr != null)
+                msgs = ((InternalEObject)newWithTableQueryExpr).eInverseAdd(this, SQLQueryModelPackage.QUERY_EXPRESSION_BODY__WITH_TABLE_SPECIFICATION, QueryExpressionBody.class, msgs);
+            msgs = basicSetWithTableQueryExpr(newWithTableQueryExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLQueryModelPackage.WITH_TABLE_SPECIFICATION__WITH_TABLE_QUERY_EXPR, newWithTableQueryExpr, newWithTableQueryExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getWithTableReferences() {
+        if (withTableReferences == null) {
+            withTableReferences = new EObjectWithInverseResolvingEList(WithTableReference.class, this, SQLQueryModelPackage.WITH_TABLE_SPECIFICATION__WITH_TABLE_REFERENCES, SQLQueryModelPackage.WITH_TABLE_REFERENCE__WITH_TABLE_SPECIFICATION);
+        }
+        return withTableReferences;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getColumnNameList() {
+        if (columnNameList == null) {
+            columnNameList = new EObjectContainmentWithInverseEList(ColumnName.class, this, SQLQueryModelPackage.WITH_TABLE_SPECIFICATION__COLUMN_NAME_LIST, SQLQueryModelPackage.COLUMN_NAME__WITH_TABLE_SPECIFICATION);
+        }
+        return columnNameList;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.WITH_TABLE_SPECIFICATION__QUERY_EXPRESSION_ROOT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetQueryExpressionRoot((QueryExpressionRoot)otherEnd, msgs);
+            case SQLQueryModelPackage.WITH_TABLE_SPECIFICATION__WITH_TABLE_QUERY_EXPR:
+                if (withTableQueryExpr != null)
+                    msgs = ((InternalEObject)withTableQueryExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLQueryModelPackage.WITH_TABLE_SPECIFICATION__WITH_TABLE_QUERY_EXPR, null, msgs);
+                return basicSetWithTableQueryExpr((QueryExpressionBody)otherEnd, msgs);
+            case SQLQueryModelPackage.WITH_TABLE_SPECIFICATION__WITH_TABLE_REFERENCES:
+                return ((InternalEList)getWithTableReferences()).basicAdd(otherEnd, msgs);
+            case SQLQueryModelPackage.WITH_TABLE_SPECIFICATION__COLUMN_NAME_LIST:
+                return ((InternalEList)getColumnNameList()).basicAdd(otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLQueryModelPackage.WITH_TABLE_SPECIFICATION__QUERY_EXPRESSION_ROOT:
+                return basicSetQueryExpressionRoot(null, msgs);
+            case SQLQueryModelPackage.WITH_TABLE_SPECIFICATION__WITH_TABLE_QUERY_EXPR:
+                return basicSetWithTableQueryExpr(null, msgs);
+            case SQLQueryModelPackage.WITH_TABLE_SPECIFICATION__WITH_TABLE_REFERENCES:
+                return ((InternalEList)getWithTableReferences()).basicRemove(otherEnd, msgs);
+            case SQLQueryModelPackage.WITH_TABLE_SPECIFICATION__COLUMN_NAME_LIST:
+                return ((InternalEList)getColumnNameList()).basicRemove(otherEnd, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLQueryModelPackage.WITH_TABLE_SPECIFICATION__QUERY_EXPRESSION_ROOT:
+                return eInternalContainer().eInverseRemove(this, SQLQueryModelPackage.QUERY_EXPRESSION_ROOT__WITH_CLAUSE, QueryExpressionRoot.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLQueryModelPackage.WITH_TABLE_SPECIFICATION__QUERY_EXPRESSION_ROOT:
+                return getQueryExpressionRoot();
+            case SQLQueryModelPackage.WITH_TABLE_SPECIFICATION__WITH_TABLE_QUERY_EXPR:
+                return getWithTableQueryExpr();
+            case SQLQueryModelPackage.WITH_TABLE_SPECIFICATION__WITH_TABLE_REFERENCES:
+                return getWithTableReferences();
+            case SQLQueryModelPackage.WITH_TABLE_SPECIFICATION__COLUMN_NAME_LIST:
+                return getColumnNameList();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLQueryModelPackage.WITH_TABLE_SPECIFICATION__QUERY_EXPRESSION_ROOT:
+                setQueryExpressionRoot((QueryExpressionRoot)newValue);
+                return;
+            case SQLQueryModelPackage.WITH_TABLE_SPECIFICATION__WITH_TABLE_QUERY_EXPR:
+                setWithTableQueryExpr((QueryExpressionBody)newValue);
+                return;
+            case SQLQueryModelPackage.WITH_TABLE_SPECIFICATION__WITH_TABLE_REFERENCES:
+                getWithTableReferences().clear();
+                getWithTableReferences().addAll((Collection)newValue);
+                return;
+            case SQLQueryModelPackage.WITH_TABLE_SPECIFICATION__COLUMN_NAME_LIST:
+                getColumnNameList().clear();
+                getColumnNameList().addAll((Collection)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.WITH_TABLE_SPECIFICATION__QUERY_EXPRESSION_ROOT:
+                setQueryExpressionRoot((QueryExpressionRoot)null);
+                return;
+            case SQLQueryModelPackage.WITH_TABLE_SPECIFICATION__WITH_TABLE_QUERY_EXPR:
+                setWithTableQueryExpr((QueryExpressionBody)null);
+                return;
+            case SQLQueryModelPackage.WITH_TABLE_SPECIFICATION__WITH_TABLE_REFERENCES:
+                getWithTableReferences().clear();
+                return;
+            case SQLQueryModelPackage.WITH_TABLE_SPECIFICATION__COLUMN_NAME_LIST:
+                getColumnNameList().clear();
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLQueryModelPackage.WITH_TABLE_SPECIFICATION__QUERY_EXPRESSION_ROOT:
+                return getQueryExpressionRoot() != null;
+            case SQLQueryModelPackage.WITH_TABLE_SPECIFICATION__WITH_TABLE_QUERY_EXPR:
+                return withTableQueryExpr != null;
+            case SQLQueryModelPackage.WITH_TABLE_SPECIFICATION__WITH_TABLE_REFERENCES:
+                return withTableReferences != null && !withTableReferences.isEmpty();
+            case SQLQueryModelPackage.WITH_TABLE_SPECIFICATION__COLUMN_NAME_LIST:
+                return columnNameList != null && !columnNameList.isEmpty();
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //WithTableSpecificationImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLComment.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLComment.java
new file mode 100644
index 0000000..e3ea32c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLComment.java
@@ -0,0 +1,119 @@
+/*******************************************************************************
+ * Copyright (c) 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.query.util;
+
+/**
+ * @author ckadner
+ *
+ * TODO To change the template for this generated type comment go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+public class SQLComment
+{
+    public static final int COMMENT_POSITION_LINE_END = 0;
+    public static final int COMMENT_POSITION_PREV_LINE = 1;
+    public static final int COMMENT_POSITION_NEXT_LINE = 2;
+    
+    
+    private boolean isMultiLineComment = false;
+    
+    private String text = null;
+    
+    private int relativePosition = COMMENT_POSITION_LINE_END;
+    
+    private SQLQuerySourceInfo sourceInfo = null;
+    
+    
+    /**
+     * Empty constructor.
+     */
+    public SQLComment()
+    {
+    }
+
+    
+    /**
+     * @param text
+     * @param relativePosition default is {@link #COMMENT_POSITION_LINE_END}
+     * @param isMultiLineComment
+     */
+    public SQLComment(String text, int relativePosition, boolean isMultiLineComment)
+    {
+        this.text = text;
+        this.relativePosition = relativePosition;
+        this.isMultiLineComment = isMultiLineComment;
+    }
+    
+    
+    /**
+     * @return Returns the isMultiLineComment.
+     */
+    public boolean isMultiLineComment()
+    {
+        return isMultiLineComment;
+    }
+    
+    /**
+     * @param isMultiLineComment The isMultiLineComment to set.
+     */
+    public void setMultiLineComment(boolean isMultiLineComment)
+    {
+        this.isMultiLineComment = isMultiLineComment;
+    }
+    
+    /**
+     * @return Returns the text.
+     */
+    public String getText()
+    {
+        return text;
+    }
+    
+    /**
+     * @param text The text to set.
+     */
+    public void setText(String text)
+    {
+        this.text = text;
+    }
+    
+    /**
+     * @return Returns the relativePosition.
+     */
+    public int getRelativePosition()
+    {
+        return relativePosition;
+    }
+    
+    /**
+     * @param relativePosition The relativePosition to set.
+     */
+    public void setRelativePosition(int relativePosition)
+    {
+        this.relativePosition = relativePosition;
+    }
+    
+    /**
+     * @return Returns the sourceInfo.
+     */
+    public SQLQuerySourceInfo getSourceInfo()
+    {
+        return sourceInfo;
+    }
+    
+    /**
+     * @param sourceInfo The sourceInfo to set.
+     */
+    public void setSourceInfo(SQLQuerySourceInfo sourceInfo)
+    {
+        this.sourceInfo = sourceInfo;
+    }
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLLogUtil.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLLogUtil.java
new file mode 100644
index 0000000..dca1b5d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLLogUtil.java
@@ -0,0 +1,343 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.query.util;
+
+import org.eclipse.core.runtime.Plugin;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryObject;
+import org.eclipse.datatools.modelbase.sql.query.helper.StatementHelper;
+
+
+/**
+ * This class provides the logging and tracing facility using Eclipse 
+ * standard logging machanism.
+ */
+public class SQLLogUtil {
+
+    private static int MAX_TRACELINE_LEN = 200;
+    //protected boolean isDebugOn;
+    private Plugin currentPlugin;
+
+    public SQLLogUtil(Plugin plugin) {
+        // check if plugin is null if SQLLogUtils are used outside eclipse container
+        if (plugin != null) {
+            //	isDebugOn = plugin.isDebugging() ;
+            this.setCurrentPlugin(plugin);
+        }
+    }
+
+    /**
+     * @return Returns the currentPlugin.
+     */
+    public Plugin getCurrentPlugin() {
+        return currentPlugin;
+    }
+
+    /**
+     * @param currentPlugin The currentPlugin to set.
+     */
+    public void setCurrentPlugin(Plugin currentPlugin) {
+        this.currentPlugin = currentPlugin;
+    }
+
+    /**
+     * Gets whether or not tracing is active.  This method can be used to improve
+     * performance by "guarding" trace calls that do something expensive, such as
+     * creating objects.  For example:
+     *   if (getPlugin().getLogUtil().isTracing()) {
+     *     getPlugin().getLogUtil().writeTraceEntry( new Object[] {new Integer( intval )} ); 
+     *   } 
+     * @return true when tracing is active, otherwise false
+     */
+    public boolean isTracing() {
+        boolean tracing = false;
+
+        if (getCurrentPlugin() != null && getCurrentPlugin().isDebugging()) {
+            tracing = true;
+        }
+
+        return tracing;
+    }
+
+    /**
+     * Logs an error described by a throwable.
+     * 
+     * <p>This method should be used whenever a class in this plugin
+     * has to log an error since it adheres to the global logging
+     * strategy.
+     * 
+     * @param throwable
+     */
+    public void write(Throwable throwable) {
+        if (getCurrentPlugin() != null && getCurrentPlugin().isDebugging()) {
+            Status status = new Status(1, getCurrentPlugin().getBundle().getSymbolicName(), 0, throwable.toString(), throwable);
+            getCurrentPlugin().getLog().log(status);
+        }
+    }
+
+    /**
+     * Logs an error described by a text.
+     * 
+     * <p>This method should be whenever a class in this plugin
+     * has to log an error since it adheres to the global logging
+     * strategy.
+     * 
+     * @param text
+     */
+    public void write(String text) {
+        write(new Throwable(text));
+    }
+
+    /**
+     * Logs an error described by an object.
+     * 
+     * <p>This method should be whenever a class in this plugin
+     * has to log an error since it adheres to the global logging
+     * strategy.
+     * 
+     * @param obj 
+     */
+    public void write(Object obj) {
+        write(obj.toString());
+    }
+
+    /**
+     * Logs an information described by a text.
+     * 
+     * <p>This method should be whenever a class in this plugin
+     * has to log an information since it adheres to the global logging
+     * strategy.
+     * 
+     * @param text
+     */
+    public void writeInfo(String text) {
+        if (getCurrentPlugin() != null && getCurrentPlugin().isDebugging()) {
+            Status status = new Status(Status.INFO, getCurrentPlugin().getBundle().getSymbolicName(), 0, text, new Throwable(text));
+            getCurrentPlugin().getLog().log(status);
+        }
+    }
+
+    /**
+     * Logs an error described by a throwable.
+     * 
+     * <p>This method should be used whenever a class in this plugin
+     * has to log an error since it adheres to the global logging
+     * strategy.
+     * 
+     * @param throwable
+     */
+    public void writeLog(Throwable throwable) {
+        if (getCurrentPlugin() != null) {
+            Status status = new Status(Status.ERROR, getCurrentPlugin().getBundle().getSymbolicName(), 0, throwable.toString(), throwable);
+            getCurrentPlugin().getLog().log(status);
+        }
+    }
+
+    /**
+     * Logs an error described by a text.
+     * 
+     * <p>This method should be whenever a class in this plugin
+     * has to log an error since it adheres to the global logging
+     * strategy.
+     * 
+     * @param text
+     */
+    public void writeLog(String text) {
+        writeLog(new Throwable(text));
+    }
+
+    /**
+     * Logs an error described by an object.
+     * 
+     * <p>This method should be whenever a class in this plugin
+     * has to log an error since it adheres to the global logging
+     * strategy.
+     * 
+     * @param text
+     */
+    public void writeLog(Object obj) {
+        writeLog(obj.toString());
+    }
+
+    /**
+     * Traces the given string.
+     * <p>
+     * This method is used to trace intermediate results in a method.  The calls
+     * writeTraceEntry and writeTraceExit can be used to provide context for this
+     * trace entry.
+     * 
+     * @param text the text to write to the trace log
+     */
+    public void writeTrace(String text) {
+        if (getCurrentPlugin() != null && getCurrentPlugin().isDebugging()) {
+            Status status = new Status(Status.INFO, getCurrentPlugin().getBundle().getSymbolicName(), 0, "Trace: " + text, null); //$NON-NLS-1$
+            getCurrentPlugin().getLog().log(status);
+        }
+    }
+
+    /**
+     * Traces a method entry and optionally the method's arguments.
+     * 
+     * <p>
+     * This method should be used to log the control flow in this plugin since
+     * it adheres to the global logging strategy.
+     * 
+     * @param args optional <code>Object[]</code> the arguments for the method
+     *        invokation, <b>Note: </b> <code>args[i].toString()</code>
+     *        will be called to create the trace message
+     */
+    public void writeTraceEntry(Object[] args) {
+        if (getCurrentPlugin() != null && getCurrentPlugin().isDebugging()) {
+            Throwable t = new Throwable();
+            StackTraceElement caller = t.getStackTrace()[1];
+            String className = caller.getClassName();
+            String methodName = caller.getMethodName();
+            int line = caller.getLineNumber();
+
+            StringBuffer msg = new StringBuffer();
+            msg.append("Trace: Entry "); //$NON-NLS-1$
+            msg.append(className);
+            msg.append("."); //$NON-NLS-1$
+            msg.append(methodName);
+            msg.append(" at line "); //$NON-NLS-1$
+            msg.append(line);
+
+            if (args != null) {
+                msg.append(" with args: "); //$NON-NLS-1$
+                for (int i = 0; i < args.length; i++) {
+                    String arg = null;
+                    boolean truncate = false;
+
+                    if (args[i] != null) {
+                        if (args[i] instanceof SQLQueryObject) {
+                            arg = StatementHelper.getSQLSourceUnformatted((SQLQueryObject) args[i]);
+                        }
+                        else {
+                            arg = args[i].toString();
+                        }
+                    }
+                    else {
+                        arg = "null"; //$NON-NLS-1$
+                    }
+
+                    // truncate toStrings that are too long to not clutter up the trace file
+                    truncate = arg.length() > MAX_TRACELINE_LEN;
+                    if (truncate) {
+                        arg = arg.substring(0, MAX_TRACELINE_LEN) + "..."; //$NON-NLS-1$
+                    }
+
+                    msg.append(arg);
+
+                    // append a separater if needed
+                    if (i < args.length - 1) {
+                        msg.append(", "); //$NON-NLS-1$                        
+                    }
+                }
+            }
+
+            Status status = new Status(Status.INFO, getCurrentPlugin().getBundle().getSymbolicName(), 0, msg.toString(), null);
+
+            getCurrentPlugin().getLog().log(status);
+        }
+    }
+
+    /**
+     * Traces a method exit and optionally the method's return value.
+     * 
+     * <p>
+     * This method should be used to log the control flow in this plugin since
+     * it adheres to the global logging strategy.
+     * 
+     * @param returnValue the return value of the method to be traced,
+     * @return the given <code>returnValue</code>
+     */
+    public boolean writeTraceExit(boolean returnValue) {
+        if (getCurrentPlugin() != null && getCurrentPlugin().isDebugging()) {
+            writeTraceExit(new Boolean(returnValue));
+        }
+        return returnValue;
+    }
+
+    /**
+     * Traces a method exit and optionally the method's return value.
+     * 
+     * <p>
+     * This method should be used to log the control flow in this plugin since
+     * it adheres to the global logging strategy.
+     * 
+     * @param returnValue the return value of the method to be traced,
+     * @return the given <code>returnValue</code>
+     */
+    public int writeTraceExit(int returnValue) {
+        if (getCurrentPlugin() != null && getCurrentPlugin().isDebugging()) {
+            writeTraceExit(new Integer(returnValue));
+        }
+        return returnValue;
+    }
+
+    /**
+     * Traces a method exit and optionally the method's return value.
+     * 
+     * <p>
+     * This method should be used to log the control flow in this plugin since
+     * it adheres to the global logging strategy.
+     * 
+     * @param returnValue optional the return value of the
+     *        method to be traced,
+     *        <b>Note:</b> <code>returnValue.toString()</code> will be called to
+     *        create the trace message
+     * @return the given <code>returnValue</code>
+     */
+    public Object writeTraceExit(Object returnValue) {
+        if (getCurrentPlugin() != null && getCurrentPlugin().isDebugging()) {
+            Throwable t = new Throwable();
+            StackTraceElement caller = t.getStackTrace()[1];
+            // Handle case where this writeTraceExit method is called from another
+            // writeTraceExit method.
+            String className = caller.getClassName();
+            String methodName = caller.getMethodName();
+            if (methodName.equals("writeTraceExit")) { //$NON-NLS-1$
+                caller = t.getStackTrace()[2];
+                className = caller.getClassName();
+                methodName = caller.getMethodName();
+            }
+            int line = caller.getLineNumber();
+
+            StringBuffer msg = new StringBuffer();
+            msg.append("Trace: Exit "); //$NON-NLS-1$
+            msg.append(className);
+            msg.append("."); //$NON-NLS-1$
+            msg.append(methodName);
+            msg.append(" at line "); //$NON-NLS-1$
+            msg.append(line);
+
+            String returnValueString = null;
+            if (returnValue != null) {
+                if (returnValue instanceof SQLQueryObject) {
+                    returnValueString = StatementHelper.getSQLSourceUnformatted((SQLQueryObject) returnValue);
+                }
+                else {
+                    returnValueString = returnValue.toString();
+                }
+                if (returnValueString != null && returnValueString.length() > MAX_TRACELINE_LEN) {
+                    returnValueString = returnValueString.substring(0, MAX_TRACELINE_LEN) + "..."; //$NON-NLS-1$
+                }
+                msg.append(" with return value: "); //$NON-NLS-1$
+                msg.append(returnValueString);
+            }
+
+            Status status = new Status(Status.INFO, getCurrentPlugin().getBundle().getSymbolicName(), 0, msg.toString(), null);
+            getCurrentPlugin().getLog().log(status);
+        }
+        return returnValue;
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLQueryArrayDataType.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLQueryArrayDataType.java
new file mode 100644
index 0000000..bc73e30
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLQueryArrayDataType.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.query.util;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.ArrayDataType;
+
+/**
+ * The SQL Model SQLDataTypesFactory class does not provide a method to create an ArrayDataType,
+ * and the constructor of ArrayDataTypeImpl is protected, so we need to provide our own interface 
+ * Impl class so that the SQL Query Parser Factor can create them and the SQL Query Source Writer
+ * can generate SQL for them.
+ * <p>
+ * This interface and Impl class can be removed if the SQL Model is changed to provide the
+ * factory method.
+ */
+public interface SQLQueryArrayDataType extends ArrayDataType {
+    // nothing needed here
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLQueryArrayDataTypeImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLQueryArrayDataTypeImpl.java
new file mode 100644
index 0000000..466c8a9
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLQueryArrayDataTypeImpl.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.query.util;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.impl.ArrayDataTypeImpl;
+
+/**
+ * The SQL Model SQLDataTypesFactory class does not provide a method to create an ArrayDataType,
+ * and the constructor of ArrayDataTypeImpl is protected, so we need to provide our own interface 
+ * Impl class so that the SQL Query Parser Factor can create them and the SQL Query Source Writer
+ * can generate SQL for them.
+ * <p>
+ * This interface and Impl class can be removed if the SQL Model is changed to provide the
+ * factory method.
+ */
+public class SQLQueryArrayDataTypeImpl extends ArrayDataTypeImpl implements SQLQueryArrayDataType {
+    public SQLQueryArrayDataTypeImpl() {
+        super();
+    }
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLQueryLogger.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLQueryLogger.java
new file mode 100644
index 0000000..c53fb6d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLQueryLogger.java
@@ -0,0 +1,49 @@
+/*******************************************************************************
+ * Copyright (c) 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.query.util;
+
+import org.eclipse.core.runtime.Plugin;
+
+
+
+/**
+ * The <code>SQLQueryLogger</code> is a slim wrapper around the eclipse
+ * logging, with the intention to be refactored in future to adopt the
+ * common logging strategy, preferably {@link java.util.logging.Logger}.
+ * 
+ * @author <a href="mailto:ckadner@us.ibm.com">ckadner</a>
+ */
+public class SQLQueryLogger extends SQLLogUtil {
+
+    private static SQLLogUtil logger = null;
+    
+
+    /**
+     * @param plugin
+     */
+    public SQLQueryLogger(Plugin plugin) {
+        super(plugin);
+    }
+
+    
+    public static SQLLogUtil getLogger() {
+        if (SQLQueryLogger.logger == null) {
+            SQLQueryLogger.logger = new SQLQueryLogger(SQLQueryModelPlugin.getDefault());
+        }
+        return SQLQueryLogger.logger;
+    }
+
+    public static void setLogger(SQLLogUtil logger) {
+        SQLQueryLogger.logger = logger;
+    }
+
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLQueryModelAdapterFactory.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLQueryModelAdapterFactory.java
new file mode 100644
index 0000000..a3fa621
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLQueryModelAdapterFactory.java
@@ -0,0 +1,1901 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SQLQueryModelAdapterFactory.java,v 1.5 2010/02/25 01:57:25 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.util;
+
+import org.eclipse.datatools.modelbase.sql.expressions.QueryExpression;
+import org.eclipse.datatools.modelbase.sql.expressions.SearchCondition;
+import org.eclipse.datatools.modelbase.sql.expressions.ValueExpression;
+
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+import org.eclipse.datatools.modelbase.sql.statements.SQLControlStatement;
+import org.eclipse.datatools.modelbase.sql.statements.SQLDataChangeStatement;
+import org.eclipse.datatools.modelbase.sql.statements.SQLDataStatement;
+import org.eclipse.datatools.modelbase.sql.statements.SQLStatement;
+
+import org.eclipse.datatools.modelbase.sql.query.*;
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EModelElement;
+import org.eclipse.emf.ecore.ENamedElement;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage
+ * @generated
+ */
+public class SQLQueryModelAdapterFactory extends AdapterFactoryImpl {
+	/**
+     * The cached model package.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected static SQLQueryModelPackage modelPackage;
+
+	/**
+     * Creates an instance of the adapter factory.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public SQLQueryModelAdapterFactory() {
+        if (modelPackage == null) {
+            modelPackage = SQLQueryModelPackage.eINSTANCE;
+        }
+    }
+
+	/**
+     * Returns whether this factory is applicable for the type of the object.
+     * <!-- begin-user-doc -->
+     * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+     * <!-- end-user-doc -->
+     * @return whether this factory is applicable for the type of the object.
+     * @generated
+     */
+    public boolean isFactoryForType(Object object) {
+        if (object == modelPackage) {
+            return true;
+        }
+        if (object instanceof EObject) {
+            return ((EObject)object).eClass().getEPackage() == modelPackage;
+        }
+        return false;
+    }
+
+	/**
+     * The switch that delegates to the <code>createXXX</code> methods.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected SQLQueryModelSwitch modelSwitch =
+		new SQLQueryModelSwitch() {
+            public Object caseQueryStatement(QueryStatement object) {
+                return createQueryStatementAdapter();
+            }
+            public Object caseQueryDeleteStatement(QueryDeleteStatement object) {
+                return createQueryDeleteStatementAdapter();
+            }
+            public Object caseQueryInsertStatement(QueryInsertStatement object) {
+                return createQueryInsertStatementAdapter();
+            }
+            public Object caseQuerySelectStatement(QuerySelectStatement object) {
+                return createQuerySelectStatementAdapter();
+            }
+            public Object caseQueryUpdateStatement(QueryUpdateStatement object) {
+                return createQueryUpdateStatementAdapter();
+            }
+            public Object caseUpdateAssignmentExpression(UpdateAssignmentExpression object) {
+                return createUpdateAssignmentExpressionAdapter();
+            }
+            public Object caseCursorReference(CursorReference object) {
+                return createCursorReferenceAdapter();
+            }
+            public Object caseQuerySearchCondition(QuerySearchCondition object) {
+                return createQuerySearchConditionAdapter();
+            }
+            public Object caseQueryExpressionBody(QueryExpressionBody object) {
+                return createQueryExpressionBodyAdapter();
+            }
+            public Object caseQueryValueExpression(QueryValueExpression object) {
+                return createQueryValueExpressionAdapter();
+            }
+            public Object caseQueryExpressionRoot(QueryExpressionRoot object) {
+                return createQueryExpressionRootAdapter();
+            }
+            public Object caseValuesRow(ValuesRow object) {
+                return createValuesRowAdapter();
+            }
+            public Object caseQueryValues(QueryValues object) {
+                return createQueryValuesAdapter();
+            }
+            public Object caseTableReference(TableReference object) {
+                return createTableReferenceAdapter();
+            }
+            public Object caseTableExpression(TableExpression object) {
+                return createTableExpressionAdapter();
+            }
+            public Object caseTableJoined(TableJoined object) {
+                return createTableJoinedAdapter();
+            }
+            public Object caseWithTableSpecification(WithTableSpecification object) {
+                return createWithTableSpecificationAdapter();
+            }
+            public Object casePredicate(Predicate object) {
+                return createPredicateAdapter();
+            }
+            public Object caseSearchConditionCombined(SearchConditionCombined object) {
+                return createSearchConditionCombinedAdapter();
+            }
+            public Object caseOrderByValueExpression(OrderByValueExpression object) {
+                return createOrderByValueExpressionAdapter();
+            }
+            public Object caseQueryCombined(QueryCombined object) {
+                return createQueryCombinedAdapter();
+            }
+            public Object caseQuerySelect(QuerySelect object) {
+                return createQuerySelectAdapter();
+            }
+            public Object caseGroupingSpecification(GroupingSpecification object) {
+                return createGroupingSpecificationAdapter();
+            }
+            public Object caseQueryResultSpecification(QueryResultSpecification object) {
+                return createQueryResultSpecificationAdapter();
+            }
+            public Object caseResultTableAllColumns(ResultTableAllColumns object) {
+                return createResultTableAllColumnsAdapter();
+            }
+            public Object caseResultColumn(ResultColumn object) {
+                return createResultColumnAdapter();
+            }
+            public Object casePredicateBasic(PredicateBasic object) {
+                return createPredicateBasicAdapter();
+            }
+            public Object casePredicateQuantified(PredicateQuantified object) {
+                return createPredicateQuantifiedAdapter();
+            }
+            public Object casePredicateBetween(PredicateBetween object) {
+                return createPredicateBetweenAdapter();
+            }
+            public Object casePredicateExists(PredicateExists object) {
+                return createPredicateExistsAdapter();
+            }
+            public Object casePredicateIn(PredicateIn object) {
+                return createPredicateInAdapter();
+            }
+            public Object casePredicateLike(PredicateLike object) {
+                return createPredicateLikeAdapter();
+            }
+            public Object casePredicateIsNull(PredicateIsNull object) {
+                return createPredicateIsNullAdapter();
+            }
+            public Object casePredicateQuantifiedValueSelect(PredicateQuantifiedValueSelect object) {
+                return createPredicateQuantifiedValueSelectAdapter();
+            }
+            public Object casePredicateQuantifiedRowSelect(PredicateQuantifiedRowSelect object) {
+                return createPredicateQuantifiedRowSelectAdapter();
+            }
+            public Object casePredicateInValueSelect(PredicateInValueSelect object) {
+                return createPredicateInValueSelectAdapter();
+            }
+            public Object casePredicateInValueList(PredicateInValueList object) {
+                return createPredicateInValueListAdapter();
+            }
+            public Object casePredicateInValueRowSelect(PredicateInValueRowSelect object) {
+                return createPredicateInValueRowSelectAdapter();
+            }
+            public Object caseValueExpressionSimple(ValueExpressionSimple object) {
+                return createValueExpressionSimpleAdapter();
+            }
+            public Object caseValueExpressionColumn(ValueExpressionColumn object) {
+                return createValueExpressionColumnAdapter();
+            }
+            public Object caseValueExpressionVariable(ValueExpressionVariable object) {
+                return createValueExpressionVariableAdapter();
+            }
+            public Object caseValueExpressionScalarSelect(ValueExpressionScalarSelect object) {
+                return createValueExpressionScalarSelectAdapter();
+            }
+            public Object caseValueExpressionLabeledDuration(ValueExpressionLabeledDuration object) {
+                return createValueExpressionLabeledDurationAdapter();
+            }
+            public Object caseValueExpressionCase(ValueExpressionCase object) {
+                return createValueExpressionCaseAdapter();
+            }
+            public Object caseValueExpressionCast(ValueExpressionCast object) {
+                return createValueExpressionCastAdapter();
+            }
+            public Object caseValueExpressionNullValue(ValueExpressionNullValue object) {
+                return createValueExpressionNullValueAdapter();
+            }
+            public Object caseValueExpressionDefaultValue(ValueExpressionDefaultValue object) {
+                return createValueExpressionDefaultValueAdapter();
+            }
+            public Object caseValueExpressionFunction(ValueExpressionFunction object) {
+                return createValueExpressionFunctionAdapter();
+            }
+            public Object caseValueExpressionCombined(ValueExpressionCombined object) {
+                return createValueExpressionCombinedAdapter();
+            }
+            public Object caseGroupingSets(GroupingSets object) {
+                return createGroupingSetsAdapter();
+            }
+            public Object caseGrouping(Grouping object) {
+                return createGroupingAdapter();
+            }
+            public Object caseGroupingSetsElement(GroupingSetsElement object) {
+                return createGroupingSetsElementAdapter();
+            }
+            public Object caseGroupingSetsElementSublist(GroupingSetsElementSublist object) {
+                return createGroupingSetsElementSublistAdapter();
+            }
+            public Object caseGroupingSetsElementExpression(GroupingSetsElementExpression object) {
+                return createGroupingSetsElementExpressionAdapter();
+            }
+            public Object caseSuperGroup(SuperGroup object) {
+                return createSuperGroupAdapter();
+            }
+            public Object caseGroupingExpression(GroupingExpression object) {
+                return createGroupingExpressionAdapter();
+            }
+            public Object caseSuperGroupElement(SuperGroupElement object) {
+                return createSuperGroupElementAdapter();
+            }
+            public Object caseSuperGroupElementSublist(SuperGroupElementSublist object) {
+                return createSuperGroupElementSublistAdapter();
+            }
+            public Object caseSuperGroupElementExpression(SuperGroupElementExpression object) {
+                return createSuperGroupElementExpressionAdapter();
+            }
+            public Object caseValueExpressionCaseSearch(ValueExpressionCaseSearch object) {
+                return createValueExpressionCaseSearchAdapter();
+            }
+            public Object caseValueExpressionCaseSimple(ValueExpressionCaseSimple object) {
+                return createValueExpressionCaseSimpleAdapter();
+            }
+            public Object caseValueExpressionCaseElse(ValueExpressionCaseElse object) {
+                return createValueExpressionCaseElseAdapter();
+            }
+            public Object caseValueExpressionCaseSearchContent(ValueExpressionCaseSearchContent object) {
+                return createValueExpressionCaseSearchContentAdapter();
+            }
+            public Object caseValueExpressionCaseSimpleContent(ValueExpressionCaseSimpleContent object) {
+                return createValueExpressionCaseSimpleContentAdapter();
+            }
+            public Object caseTableInDatabase(TableInDatabase object) {
+                return createTableInDatabaseAdapter();
+            }
+            public Object caseTableFunction(TableFunction object) {
+                return createTableFunctionAdapter();
+            }
+            public Object caseSQLQueryObject(SQLQueryObject object) {
+                return createSQLQueryObjectAdapter();
+            }
+            public Object caseQueryChangeStatement(QueryChangeStatement object) {
+                return createQueryChangeStatementAdapter();
+            }
+            public Object caseColumnName(ColumnName object) {
+                return createColumnNameAdapter();
+            }
+            public Object caseTableNested(TableNested object) {
+                return createTableNestedAdapter();
+            }
+            public Object caseQueryMergeStatement(QueryMergeStatement object) {
+                return createQueryMergeStatementAdapter();
+            }
+            public Object caseSearchConditionNested(SearchConditionNested object) {
+                return createSearchConditionNestedAdapter();
+            }
+            public Object caseValueExpressionNested(ValueExpressionNested object) {
+                return createValueExpressionNestedAdapter();
+            }
+            public Object caseValueExpressionAtomic(ValueExpressionAtomic object) {
+                return createValueExpressionAtomicAdapter();
+            }
+            public Object caseOrderBySpecification(OrderBySpecification object) {
+                return createOrderBySpecificationAdapter();
+            }
+            public Object caseOrderByOrdinal(OrderByOrdinal object) {
+                return createOrderByOrdinalAdapter();
+            }
+            public Object caseTableCorrelation(TableCorrelation object) {
+                return createTableCorrelationAdapter();
+            }
+            public Object caseUpdateSource(UpdateSource object) {
+                return createUpdateSourceAdapter();
+            }
+            public Object caseUpdateSourceExprList(UpdateSourceExprList object) {
+                return createUpdateSourceExprListAdapter();
+            }
+            public Object caseUpdateSourceQuery(UpdateSourceQuery object) {
+                return createUpdateSourceQueryAdapter();
+            }
+            public Object caseOrderByResultColumn(OrderByResultColumn object) {
+                return createOrderByResultColumnAdapter();
+            }
+            public Object caseWithTableReference(WithTableReference object) {
+                return createWithTableReferenceAdapter();
+            }
+            public Object caseQueryNested(QueryNested object) {
+                return createQueryNestedAdapter();
+            }
+            public Object caseValueExpressionRow(ValueExpressionRow object) {
+                return createValueExpressionRowAdapter();
+            }
+            public Object caseMergeTargetTable(MergeTargetTable object) {
+                return createMergeTargetTableAdapter();
+            }
+            public Object caseMergeSourceTable(MergeSourceTable object) {
+                return createMergeSourceTableAdapter();
+            }
+            public Object caseMergeOnCondition(MergeOnCondition object) {
+                return createMergeOnConditionAdapter();
+            }
+            public Object caseMergeUpdateSpecification(MergeUpdateSpecification object) {
+                return createMergeUpdateSpecificationAdapter();
+            }
+            public Object caseMergeInsertSpecification(MergeInsertSpecification object) {
+                return createMergeInsertSpecificationAdapter();
+            }
+            public Object caseMergeOperationSpecification(MergeOperationSpecification object) {
+                return createMergeOperationSpecificationAdapter();
+            }
+            public Object caseUpdateOfColumn(UpdateOfColumn object) {
+                return createUpdateOfColumnAdapter();
+            }
+            public Object caseUpdatabilityExpression(UpdatabilityExpression object) {
+                return createUpdatabilityExpressionAdapter();
+            }
+            public Object caseCallStatement(CallStatement object) {
+                return createCallStatementAdapter();
+            }
+            public Object caseProcedureReference(ProcedureReference object) {
+                return createProcedureReferenceAdapter();
+            }
+            public Object caseTableQueryLateral(TableQueryLateral object) {
+                return createTableQueryLateralAdapter();
+            }
+            public Object caseEModelElement(EModelElement object) {
+                return createEModelElementAdapter();
+            }
+            public Object caseENamedElement(ENamedElement object) {
+                return createENamedElementAdapter();
+            }
+            public Object caseSQLObject(SQLObject object) {
+                return createSQLObjectAdapter();
+            }
+            public Object caseSQLStatement(SQLStatement object) {
+                return createSQLStatementAdapter();
+            }
+            public Object caseSQLDataStatement(SQLDataStatement object) {
+                return createSQLDataStatementAdapter();
+            }
+            public Object caseSQLDataChangeStatement(SQLDataChangeStatement object) {
+                return createSQLDataChangeStatementAdapter();
+            }
+            public Object caseSearchCondition(SearchCondition object) {
+                return createSearchConditionAdapter();
+            }
+            public Object caseValueExpression(ValueExpression object) {
+                return createValueExpressionAdapter();
+            }
+            public Object caseQueryExpression(QueryExpression object) {
+                return createQueryExpressionAdapter();
+            }
+            public Object caseSQLControlStatement(SQLControlStatement object) {
+                return createSQLControlStatementAdapter();
+            }
+            public Object defaultCase(EObject object) {
+                return createEObjectAdapter();
+            }
+        };
+
+	/**
+     * Creates an adapter for the <code>target</code>.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param target the object to adapt.
+     * @return the adapter for the <code>target</code>.
+     * @generated
+     */
+    public Adapter createAdapter(Notifier target) {
+        return (Adapter)modelSwitch.doSwitch((EObject)target);
+    }
+
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.QueryStatement <em>Query Statement</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryStatement
+     * @generated
+     */
+  public Adapter createQueryStatementAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement <em>Query Delete Statement</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement
+     * @generated
+     */
+  public Adapter createQueryDeleteStatementAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.QueryInsertStatement <em>Query Insert Statement</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryInsertStatement
+     * @generated
+     */
+  public Adapter createQueryInsertStatementAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.QuerySelectStatement <em>Query Select Statement</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySelectStatement
+     * @generated
+     */
+  public Adapter createQuerySelectStatementAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement <em>Query Update Statement</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement
+     * @generated
+     */
+  public Adapter createQueryUpdateStatementAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression <em>Update Assignment Expression</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression
+     * @generated
+     */
+  public Adapter createUpdateAssignmentExpressionAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.CursorReference <em>Cursor Reference</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.CursorReference
+     * @generated
+     */
+  public Adapter createCursorReferenceAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition <em>Query Search Condition</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition
+     * @generated
+     */
+  public Adapter createQuerySearchConditionAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody <em>Query Expression Body</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody
+     * @generated
+     */
+  public Adapter createQueryExpressionBodyAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression <em>Query Value Expression</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression
+     * @generated
+     */
+  public Adapter createQueryValueExpressionAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot <em>Query Expression Root</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot
+     * @generated
+     */
+  public Adapter createQueryExpressionRootAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.ValuesRow <em>Values Row</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValuesRow
+     * @generated
+     */
+  public Adapter createValuesRowAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.QueryValues <em>Query Values</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValues
+     * @generated
+     */
+  public Adapter createQueryValuesAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.TableReference <em>Table Reference</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.TableReference
+     * @generated
+     */
+  public Adapter createTableReferenceAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.TableExpression <em>Table Expression</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.TableExpression
+     * @generated
+     */
+  public Adapter createTableExpressionAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.TableJoined <em>Table Joined</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.TableJoined
+     * @generated
+     */
+  public Adapter createTableJoinedAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.WithTableSpecification <em>With Table Specification</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.WithTableSpecification
+     * @generated
+     */
+    public Adapter createWithTableSpecificationAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.Predicate <em>Predicate</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.Predicate
+     * @generated
+     */
+  public Adapter createPredicateAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined <em>Search Condition Combined</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined
+     * @generated
+     */
+  public Adapter createSearchConditionCombinedAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression <em>Order By Value Expression</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression
+     * @generated
+     */
+  public Adapter createOrderByValueExpressionAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.QueryCombined <em>Query Combined</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryCombined
+     * @generated
+     */
+  public Adapter createQueryCombinedAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.QuerySelect <em>Query Select</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySelect
+     * @generated
+     */
+  public Adapter createQuerySelectAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.GroupingSpecification <em>Grouping Specification</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.GroupingSpecification
+     * @generated
+     */
+  public Adapter createGroupingSpecificationAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.QueryResultSpecification <em>Query Result Specification</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryResultSpecification
+     * @generated
+     */
+  public Adapter createQueryResultSpecificationAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.ResultTableAllColumns <em>Result Table All Columns</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.ResultTableAllColumns
+     * @generated
+     */
+  public Adapter createResultTableAllColumnsAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.ResultColumn <em>Result Column</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.ResultColumn
+     * @generated
+     */
+  public Adapter createResultColumnAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.PredicateBasic <em>Predicate Basic</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateBasic
+     * @generated
+     */
+  public Adapter createPredicateBasicAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.PredicateQuantified <em>Predicate Quantified</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateQuantified
+     * @generated
+     */
+  public Adapter createPredicateQuantifiedAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.PredicateBetween <em>Predicate Between</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateBetween
+     * @generated
+     */
+  public Adapter createPredicateBetweenAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.PredicateExists <em>Predicate Exists</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateExists
+     * @generated
+     */
+  public Adapter createPredicateExistsAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.PredicateIn <em>Predicate In</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateIn
+     * @generated
+     */
+  public Adapter createPredicateInAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.PredicateLike <em>Predicate Like</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateLike
+     * @generated
+     */
+  public Adapter createPredicateLikeAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.PredicateIsNull <em>Predicate Is Null</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateIsNull
+     * @generated
+     */
+  public Adapter createPredicateIsNullAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect <em>Predicate Quantified Value Select</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect
+     * @generated
+     */
+  public Adapter createPredicateQuantifiedValueSelectAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect <em>Predicate Quantified Row Select</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect
+     * @generated
+     */
+  public Adapter createPredicateQuantifiedRowSelectAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect <em>Predicate In Value Select</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect
+     * @generated
+     */
+  public Adapter createPredicateInValueSelectAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.PredicateInValueList <em>Predicate In Value List</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateInValueList
+     * @generated
+     */
+  public Adapter createPredicateInValueListAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect <em>Predicate In Value Row Select</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect
+     * @generated
+     */
+  public Adapter createPredicateInValueRowSelectAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionSimple <em>Value Expression Simple</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionSimple
+     * @generated
+     */
+  public Adapter createValueExpressionSimpleAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn <em>Value Expression Column</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn
+     * @generated
+     */
+  public Adapter createValueExpressionColumnAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionVariable <em>Value Expression Variable</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionVariable
+     * @generated
+     */
+  public Adapter createValueExpressionVariableAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionScalarSelect <em>Value Expression Scalar Select</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionScalarSelect
+     * @generated
+     */
+  public Adapter createValueExpressionScalarSelectAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration <em>Value Expression Labeled Duration</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration
+     * @generated
+     */
+  public Adapter createValueExpressionLabeledDurationAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCase <em>Value Expression Case</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCase
+     * @generated
+     */
+  public Adapter createValueExpressionCaseAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast <em>Value Expression Cast</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast
+     * @generated
+     */
+  public Adapter createValueExpressionCastAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionNullValue <em>Value Expression Null Value</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionNullValue
+     * @generated
+     */
+  public Adapter createValueExpressionNullValueAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionDefaultValue <em>Value Expression Default Value</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionDefaultValue
+     * @generated
+     */
+  public Adapter createValueExpressionDefaultValueAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction <em>Value Expression Function</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction
+     * @generated
+     */
+  public Adapter createValueExpressionFunctionAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined <em>Value Expression Combined</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined
+     * @generated
+     */
+  public Adapter createValueExpressionCombinedAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.GroupingSets <em>Grouping Sets</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.GroupingSets
+     * @generated
+     */
+  public Adapter createGroupingSetsAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.Grouping <em>Grouping</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.Grouping
+     * @generated
+     */
+  public Adapter createGroupingAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.GroupingSetsElement <em>Grouping Sets Element</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.GroupingSetsElement
+     * @generated
+     */
+  public Adapter createGroupingSetsElementAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementSublist <em>Grouping Sets Element Sublist</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementSublist
+     * @generated
+     */
+  public Adapter createGroupingSetsElementSublistAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementExpression <em>Grouping Sets Element Expression</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementExpression
+     * @generated
+     */
+  public Adapter createGroupingSetsElementExpressionAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.SuperGroup <em>Super Group</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.SuperGroup
+     * @generated
+     */
+  public Adapter createSuperGroupAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.GroupingExpression <em>Grouping Expression</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.GroupingExpression
+     * @generated
+     */
+  public Adapter createGroupingExpressionAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.SuperGroupElement <em>Super Group Element</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.SuperGroupElement
+     * @generated
+     */
+  public Adapter createSuperGroupElementAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.SuperGroupElementSublist <em>Super Group Element Sublist</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.SuperGroupElementSublist
+     * @generated
+     */
+  public Adapter createSuperGroupElementSublistAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.SuperGroupElementExpression <em>Super Group Element Expression</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.SuperGroupElementExpression
+     * @generated
+     */
+  public Adapter createSuperGroupElementExpressionAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearch <em>Value Expression Case Search</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearch
+     * @generated
+     */
+  public Adapter createValueExpressionCaseSearchAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple <em>Value Expression Case Simple</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple
+     * @generated
+     */
+  public Adapter createValueExpressionCaseSimpleAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse <em>Value Expression Case Else</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse
+     * @generated
+     */
+  public Adapter createValueExpressionCaseElseAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent <em>Value Expression Case Search Content</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent
+     * @generated
+     */
+  public Adapter createValueExpressionCaseSearchContentAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent <em>Value Expression Case Simple Content</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent
+     * @generated
+     */
+  public Adapter createValueExpressionCaseSimpleContentAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.TableInDatabase <em>Table In Database</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.TableInDatabase
+     * @generated
+     */
+  public Adapter createTableInDatabaseAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.TableFunction <em>Table Function</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.TableFunction
+     * @generated
+     */
+  public Adapter createTableFunctionAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.SQLQueryObject <em>SQL Query Object</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryObject
+     * @generated
+     */
+    public Adapter createSQLQueryObjectAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.QueryChangeStatement <em>Query Change Statement</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryChangeStatement
+     * @generated
+     */
+  public Adapter createQueryChangeStatementAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.ColumnName <em>Column Name</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.ColumnName
+     * @generated
+     */
+  public Adapter createColumnNameAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.TableNested <em>Table Nested</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.TableNested
+     * @generated
+     */
+  public Adapter createTableNestedAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.QueryMergeStatement <em>Query Merge Statement</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryMergeStatement
+     * @generated
+     */
+  public Adapter createQueryMergeStatementAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.SearchConditionNested <em>Search Condition Nested</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.SearchConditionNested
+     * @generated
+     */
+  public Adapter createSearchConditionNestedAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested <em>Value Expression Nested</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested
+     * @generated
+     */
+  public Adapter createValueExpressionNestedAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionAtomic <em>Value Expression Atomic</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionAtomic
+     * @generated
+     */
+  public Adapter createValueExpressionAtomicAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.OrderBySpecification <em>Order By Specification</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.OrderBySpecification
+     * @generated
+     */
+  public Adapter createOrderBySpecificationAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.OrderByOrdinal <em>Order By Ordinal</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.OrderByOrdinal
+     * @generated
+     */
+  public Adapter createOrderByOrdinalAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.TableCorrelation <em>Table Correlation</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.TableCorrelation
+     * @generated
+     */
+  public Adapter createTableCorrelationAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.UpdateSource <em>Update Source</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.UpdateSource
+     * @generated
+     */
+  public Adapter createUpdateSourceAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList <em>Update Source Expr List</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList
+     * @generated
+     */
+  public Adapter createUpdateSourceExprListAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.UpdateSourceQuery <em>Update Source Query</em>}'.
+     * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.UpdateSourceQuery
+     * @generated
+     */
+  public Adapter createUpdateSourceQueryAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.OrderByResultColumn <em>Order By Result Column</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.OrderByResultColumn
+     * @generated
+     */
+    public Adapter createOrderByResultColumnAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.WithTableReference <em>With Table Reference</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.WithTableReference
+     * @generated
+     */
+    public Adapter createWithTableReferenceAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.QueryNested <em>Query Nested</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryNested
+     * @generated
+     */
+    public Adapter createQueryNestedAdapter() {
+        return null;
+    }
+
+    /**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionRow <em>Value Expression Row</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionRow
+     * @generated
+     */
+    public Adapter createValueExpressionRowAdapter() {
+        return null;
+    }
+
+    /**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.MergeTargetTable <em>Merge Target Table</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.MergeTargetTable
+     * @generated
+     */
+    public Adapter createMergeTargetTableAdapter() {
+        return null;
+    }
+
+    /**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.MergeSourceTable <em>Merge Source Table</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.MergeSourceTable
+     * @generated
+     */
+    public Adapter createMergeSourceTableAdapter() {
+        return null;
+    }
+
+    /**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.MergeOnCondition <em>Merge On Condition</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.MergeOnCondition
+     * @generated
+     */
+    public Adapter createMergeOnConditionAdapter() {
+        return null;
+    }
+
+    /**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.MergeUpdateSpecification <em>Merge Update Specification</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.MergeUpdateSpecification
+     * @generated
+     */
+    public Adapter createMergeUpdateSpecificationAdapter() {
+        return null;
+    }
+
+    /**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.MergeInsertSpecification <em>Merge Insert Specification</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.MergeInsertSpecification
+     * @generated
+     */
+    public Adapter createMergeInsertSpecificationAdapter() {
+        return null;
+    }
+
+    /**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.MergeOperationSpecification <em>Merge Operation Specification</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.MergeOperationSpecification
+     * @generated
+     */
+    public Adapter createMergeOperationSpecificationAdapter() {
+        return null;
+    }
+
+    /**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.UpdateOfColumn <em>Update Of Column</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.UpdateOfColumn
+     * @generated
+     */
+    public Adapter createUpdateOfColumnAdapter() {
+        return null;
+    }
+
+    /**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.UpdatabilityExpression <em>Updatability Expression</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.UpdatabilityExpression
+     * @generated
+     */
+    public Adapter createUpdatabilityExpressionAdapter() {
+        return null;
+    }
+
+    /**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.CallStatement <em>Call Statement</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.CallStatement
+     * @generated
+     */
+    public Adapter createCallStatementAdapter() {
+        return null;
+    }
+
+    /**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.ProcedureReference <em>Procedure Reference</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.ProcedureReference
+     * @generated
+     */
+    public Adapter createProcedureReferenceAdapter() {
+        return null;
+    }
+
+    /**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.TableQueryLateral <em>Table Query Lateral</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.TableQueryLateral
+     * @generated
+     */
+    public Adapter createTableQueryLateralAdapter() {
+        return null;
+    }
+
+    /**
+     * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecore.EModelElement <em>EModel Element</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.emf.ecore.EModelElement
+     * @generated
+     */
+    public Adapter createEModelElementAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecore.ENamedElement <em>ENamed Element</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.emf.ecore.ENamedElement
+     * @generated
+     */
+    public Adapter createENamedElementAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.schema.SQLObject <em>SQL Object</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.schema.SQLObject
+     * @generated
+     */
+    public Adapter createSQLObjectAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.statements.SQLStatement <em>SQL Statement</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.statements.SQLStatement
+     * @generated
+     */
+    public Adapter createSQLStatementAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.statements.SQLDataStatement <em>SQL Data Statement</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.statements.SQLDataStatement
+     * @generated
+     */
+    public Adapter createSQLDataStatementAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.statements.SQLDataChangeStatement <em>SQL Data Change Statement</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.statements.SQLDataChangeStatement
+     * @generated
+     */
+    public Adapter createSQLDataChangeStatementAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.expressions.SearchCondition <em>Search Condition</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.expressions.SearchCondition
+     * @generated
+     */
+    public Adapter createSearchConditionAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.expressions.ValueExpression <em>Value Expression</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.expressions.ValueExpression
+     * @generated
+     */
+    public Adapter createValueExpressionAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.expressions.QueryExpression <em>Query Expression</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.expressions.QueryExpression
+     * @generated
+     */
+    public Adapter createQueryExpressionAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.statements.SQLControlStatement <em>SQL Control Statement</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.statements.SQLControlStatement
+     * @generated
+     */
+    public Adapter createSQLControlStatementAdapter() {
+        return null;
+    }
+
+    /**
+     * Creates a new adapter for the default case.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @generated
+     */
+    public Adapter createEObjectAdapter() {
+        return null;
+    }
+
+} //SQLQueryAdapterFactory
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLQueryModelPlugin.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLQueryModelPlugin.java
new file mode 100644
index 0000000..58fe90d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLQueryModelPlugin.java
@@ -0,0 +1,335 @@
+/*
+ * Created on Apr 8, 2005
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+package org.eclipse.datatools.modelbase.sql.query.util;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.IExtensionPoint;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Plugin;
+import org.eclipse.core.runtime.Status;
+import org.osgi.framework.BundleContext;
+
+
+
+/**
+ * Life cycle method {@link Plugin#start(org.osgi.framework.BundleContext)} is
+ * needed to register this plugin's <code>SQLQuerySourceWriter</code>.
+ * 
+ * @author ckadner
+ */
+public class SQLQueryModelPlugin extends Plugin
+{
+    // the tag NON-NLS-1 marks the first String in the line as non translateable
+    // non national language String
+    public static final String PLUGIN_ID = "org.eclipse.datatools.modelbase.sql.query"; //$NON-NLS-1$
+    public static final String EXTENSION_POINT_ID = "sourceWriterExtension"; //$NON-NLS-1$
+    public static final String EXTENSION_CONFIGURATION_PLUGINJAVA = "pluginJava"; //$NON-NLS-1$
+    public static final String EXTENSION_CONFIG_PLUGINJAVA_ATTRIBUTE_CLASS = "class"; //$NON-NLS-1$
+    public static final String EXTENSION_CONFIGURATION_SOURCEWRITER = "sourceWriter"; //$NON-NLS-1$
+    public static final String EXTENSION_CONFIG_SOURCEWRITER_ATTRIBUTE_PACKAGE_NAME = "packageName"; //$NON-NLS-1$
+    public static final String EXTENSION_CONFIG_SOURCEWRITER_ATTRIBUTE_IMPL_PACKAGE_NAME = "implPackageName"; //$NON-NLS-1$
+    public static final String EXTENSION_CONFIG_SOURCEWRITER_ATTRIBUTE_SOURCEWRITER_CLASS = "class"; //$NON-NLS-1$
+
+    /** The shared instance */
+    private static SQLQueryModelPlugin plugin;
+
+    
+    /**
+     * 
+     */
+    public SQLQueryModelPlugin()
+    {
+        super();
+        plugin = this;
+        registerSourceWriter();
+    }
+
+    
+    /**
+     * Returns the shared instance.
+     * @return the shared <code>SQLQueryModelPlugin</code> instance or
+     *   <code>null</code> if the plugin was not yet loaded.
+     */
+    public static SQLQueryModelPlugin getDefault() {
+        return plugin;
+    }
+
+    
+    /**
+	 * Life cycle method needed to register this plugin's
+	 * <code>SQLQuerySourceWriter</code>.
+	 * 
+     * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
+     */
+    public void start(BundleContext context) throws Exception
+    {
+        super.start(context);
+        
+        // register extensions to SQL Query model
+        registerSourceWriter();
+    }
+    
+    /**
+     * Registers plugin's <code>SQLQuerySourceWriter</code>.
+     */
+    private void registerSourceWriter()
+    {
+        SQLQuerySourceWriterProvider swProvider =
+            SQLQuerySourceWriterProvider.getInstance();
+        
+        IExtensionRegistry pluginRegistry = Platform.getExtensionRegistry();
+        IExtensionPoint extensionPoint = pluginRegistry.getExtensionPoint(
+                        PLUGIN_ID, EXTENSION_POINT_ID); //$NON-NLS-1$ //$NON-NLS-2$
+        
+        if (extensionPoint != null)
+        {
+            boolean extensionFound = false;
+	        
+	        // get all Plugins extending the sourceWriterExtension point
+	        IExtension[] extensions = extensionPoint.getExtensions();
+	        for (int i = 0; i < extensions.length; ++i)
+	        {
+	            
+	            IConfigurationElement[] configElements = extensions[i]
+	                            .getConfigurationElements();
+
+	            // flag to mark we are in the extension point of the currently
+	            // loaded plugin
+	            boolean isThisExtension = false;
+		            
+	            
+	            // TODO perf: this code goes through the whole regitry for every loaded plugin extension,
+	            // optimized to hold in Map    only make it once regardyng dynamic (un)load
+	            
+	            for (int j = 0; j < configElements.length; ++j)
+	            {
+		            // only register the plugin that this code is running in, that
+		            // is only for the plugin currently loaded! lazy loading!!!
+	                // ...check if the Plugin.java specified in extension-point
+	                // is the Plugin.java this code is running in
+		            if (configElements[j].getName().equals(EXTENSION_CONFIGURATION_PLUGINJAVA))
+		            {
+		                String pluginJava =
+		                    configElements[j].getAttribute(EXTENSION_CONFIG_PLUGINJAVA_ATTRIBUTE_CLASS);
+		                
+		                if (this.getClass().getName().equals(pluginJava))
+		                {
+			                isThisExtension = true;
+		                }
+		                break;
+		            }
+	            }
+	            
+	            if (isThisExtension)
+	            {
+		            for (int j = 0; j < configElements.length; ++j)
+		            {
+			            
+		                if (configElements[j].getName().equals(EXTENSION_CONFIGURATION_SOURCEWRITER))
+		                {
+		                    extensionFound = true;
+		                    IConfigurationElement configElement = configElements[j];
+		                    Class sourceWriterClass = null;
+
+		                    
+		                    String packageName = 
+		                        configElements[j].getAttribute(EXTENSION_CONFIG_SOURCEWRITER_ATTRIBUTE_PACKAGE_NAME); //$NON-NLS-1$
+		                    String implPackageName =
+		                        configElements[j].getAttribute(EXTENSION_CONFIG_SOURCEWRITER_ATTRIBUTE_IMPL_PACKAGE_NAME); //$NON-NLS-1$
+
+		                    try
+                            {
+                                SQLQuerySourceWriter sourceWriter = 
+                                    (SQLQuerySourceWriter) configElements[j].createExecutableExtension(EXTENSION_CONFIG_SOURCEWRITER_ATTRIBUTE_SOURCEWRITER_CLASS); //$NON-NLS-1$
+                                sourceWriterClass = sourceWriter.getClass();
+                            }
+                            catch (CoreException e)
+                            {
+                                logErrorInstanciateSourceWriter(j, configElement, e, packageName, implPackageName);
+
+                            }
+		
+		                    if (sourceWriterClass != null)
+		                    {
+			                    if (packageName != null)
+	                            {
+			                    	swProvider.registerSourceWriter(sourceWriterClass, packageName);
+			                	}
+			                    else
+			                    {
+			                        logErrorRegisterSourceWriterPackage(i, sourceWriterClass);
+			                    }
+			                    
+			                    if (implPackageName != null)
+	                            {
+			                    	swProvider.registerSourceWriter(sourceWriterClass, implPackageName);
+			                	}
+			                    else
+			                    {
+			                        logErrorRegisterSourceWriterImplPackage(i, sourceWriterClass);
+			                    }
+
+		                    }
+		                    else
+		                    {
+		                        logErrorRegisterSourceWriterClass(i);
+		                    }
+		                }
+		            }
+	            }
+	        }
+	        
+	        if (!extensionFound)
+	        {
+	            logErrorNoExtensionConfigSourceWriter();
+	        }
+        }
+        else
+        {
+            logErrorNoSourceWriterExtensionPoint();
+        }
+    }
+
+    
+    /**
+     * 
+     */
+    private void logErrorNoSourceWriterExtensionPoint()
+    {
+        getLog().log( new Status(
+                        IStatus.ERROR, 
+                        this.getBundle().getSymbolicName(), 0,
+                        "extension-point could not be found for "
+                        + PLUGIN_ID + "." + EXTENSION_POINT_ID, null));
+    }
+
+    /**
+     * @param configurationNumber
+     * @param configElement
+     * @param ce
+     * @param packageName
+     * @param implPackageName
+     */
+    private void logErrorInstanciateSourceWriter(int configurationNumber, IConfigurationElement configElement, CoreException ce, String packageName, String implPackageName)
+    {
+        String msg = "unable to instanciate SourceWriter "
+            + configElement.getAttribute(EXTENSION_CONFIG_SOURCEWRITER_ATTRIBUTE_SOURCEWRITER_CLASS)
+            + " in extension-point: "
+            + PLUGIN_ID
+            + "."
+            + EXTENSION_POINT_ID
+            + " configuration["
+            + configurationNumber
+            + "]: "
+            + EXTENSION_CONFIGURATION_SOURCEWRITER
+            + " for "
+            + EXTENSION_CONFIG_SOURCEWRITER_ATTRIBUTE_PACKAGE_NAME
+            + " " + packageName
+            + " and "
+            + EXTENSION_CONFIG_SOURCEWRITER_ATTRIBUTE_IMPL_PACKAGE_NAME
+            + " " + implPackageName;
+        getLog().log( new Status(
+            IStatus.ERROR, 
+            this.getBundle().getSymbolicName(),
+            0, msg, ce));
+    }
+
+    /**
+     * 
+     */
+    private void logErrorNoExtensionConfigSourceWriter()
+    {
+        String msg = "configuration: " +
+                        EXTENSION_CONFIGURATION_SOURCEWRITER +
+                        " in extension-point: " +
+                        PLUGIN_ID + "." + EXTENSION_POINT_ID +
+                        " could not be found.";
+        getLog().log( new Status(
+                        IStatus.ERROR, 
+                        this.getBundle().getSymbolicName(),
+                        0, msg, null));
+    }
+
+    /**
+     * @param configurationNumber
+     */
+    private void logErrorRegisterSourceWriterClass(int configurationNumber)
+    {
+        String msg = "unable to register SourceWriter "
+                        + " in extension-point: "
+                        + PLUGIN_ID + "."
+                        + EXTENSION_POINT_ID
+                        + " configuration[" + configurationNumber + "]: "
+                        + EXTENSION_CONFIGURATION_SOURCEWRITER
+                        + ", "
+                        + EXTENSION_CONFIG_SOURCEWRITER_ATTRIBUTE_SOURCEWRITER_CLASS
+                        + " is null";
+        getLog().log( new Status(
+                        IStatus.ERROR, 
+                        this.getBundle().getSymbolicName(),
+                        0, msg, null));
+    }
+
+    /**
+     * @param configurationNumber
+     * @param sourceWriterClass
+     */
+    private void logErrorRegisterSourceWriterImplPackage(int configurationNumber, Class sourceWriterClass)
+    {
+        String msg = "unable to register SourceWriter "
+                        + sourceWriterClass.getName()
+                        + " for "
+                        + EXTENSION_CONFIG_SOURCEWRITER_ATTRIBUTE_IMPL_PACKAGE_NAME
+                        + " in extension-point: "
+                        + PLUGIN_ID
+                        + "."
+                        + EXTENSION_POINT_ID
+                        + " configuration["
+                        + configurationNumber
+                        + "]: "
+                        + EXTENSION_CONFIGURATION_SOURCEWRITER
+                        + ", "
+                        + EXTENSION_CONFIG_SOURCEWRITER_ATTRIBUTE_IMPL_PACKAGE_NAME
+                        + " is null";
+        getLog().log( new Status(
+                        IStatus.ERROR, 
+                        this.getBundle().getSymbolicName(),
+                        0, msg, null));
+    }
+
+    /**
+     * @param confiurationNumber
+     * @param sourceWriterClass
+     */
+    private void logErrorRegisterSourceWriterPackage(int confiurationNumber, Class sourceWriterClass)
+    {
+        String msg = "unable to register SourceWriter "
+            			+ sourceWriterClass.getName()
+            			+ " for "
+            			+ EXTENSION_CONFIG_SOURCEWRITER_ATTRIBUTE_PACKAGE_NAME
+                        + " in extension-point: "
+                        + PLUGIN_ID + "."
+                        + EXTENSION_POINT_ID
+                        + " configuration[" + confiurationNumber + "]: "
+                        + EXTENSION_CONFIGURATION_SOURCEWRITER
+                        + ", "
+                        + EXTENSION_CONFIG_SOURCEWRITER_ATTRIBUTE_PACKAGE_NAME
+                        + " is null";
+        getLog().log( new Status(
+                        IStatus.ERROR, 
+                        this.getBundle().getSymbolicName(),
+                        0, msg, null));
+    }
+
+    
+    
+    
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLQueryModelSwitch.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLQueryModelSwitch.java
new file mode 100644
index 0000000..926d4ca
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLQueryModelSwitch.java
@@ -0,0 +1,2817 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SQLQueryModelSwitch.java,v 1.5 2010/02/25 01:57:25 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.query.util;
+
+
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.*;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EModelElement;
+import org.eclipse.emf.ecore.ENamedElement;
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.datatools.modelbase.sql.expressions.QueryExpression;
+import org.eclipse.datatools.modelbase.sql.expressions.SearchCondition;
+import org.eclipse.datatools.modelbase.sql.expressions.ValueExpression;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+import org.eclipse.datatools.modelbase.sql.statements.SQLControlStatement;
+import org.eclipse.datatools.modelbase.sql.statements.SQLDataChangeStatement;
+import org.eclipse.datatools.modelbase.sql.statements.SQLDataStatement;
+import org.eclipse.datatools.modelbase.sql.statements.SQLStatement;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage
+ * @generated
+ */
+public class SQLQueryModelSwitch {
+	/**
+     * The cached model package
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected static SQLQueryModelPackage modelPackage;
+
+	/**
+     * Creates an instance of the switch.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public SQLQueryModelSwitch() {
+        if (modelPackage == null) {
+            modelPackage = SQLQueryModelPackage.eINSTANCE;
+        }
+    }
+
+	/**
+     * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the first non-null result returned by a <code>caseXXX</code> call.
+     * @generated
+     */
+    public Object doSwitch(EObject theEObject) {
+        return doSwitch(theEObject.eClass(), theEObject);
+    }
+
+	/**
+     * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the first non-null result returned by a <code>caseXXX</code> call.
+     * @generated
+     */
+    protected Object doSwitch(EClass theEClass, EObject theEObject) {
+        if (theEClass.eContainer() == modelPackage) {
+            return doSwitch(theEClass.getClassifierID(), theEObject);
+        }
+        else {
+            List eSuperTypes = theEClass.getESuperTypes();
+            return
+                eSuperTypes.isEmpty() ?
+                    defaultCase(theEObject) :
+                    doSwitch((EClass)eSuperTypes.get(0), theEObject);
+        }
+    }
+
+	/**
+     * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the first non-null result returned by a <code>caseXXX</code> call.
+     * @generated
+     */
+    protected Object doSwitch(int classifierID, EObject theEObject) {
+        switch (classifierID) {
+            case SQLQueryModelPackage.QUERY_STATEMENT: {
+                QueryStatement queryStatement = (QueryStatement)theEObject;
+                Object result = caseQueryStatement(queryStatement);
+                if (result == null) result = caseSQLQueryObject(queryStatement);
+                if (result == null) result = caseSQLDataStatement(queryStatement);
+                if (result == null) result = caseSQLObject(queryStatement);
+                if (result == null) result = caseSQLStatement(queryStatement);
+                if (result == null) result = caseENamedElement(queryStatement);
+                if (result == null) result = caseEModelElement(queryStatement);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.QUERY_DELETE_STATEMENT: {
+                QueryDeleteStatement queryDeleteStatement = (QueryDeleteStatement)theEObject;
+                Object result = caseQueryDeleteStatement(queryDeleteStatement);
+                if (result == null) result = caseQueryChangeStatement(queryDeleteStatement);
+                if (result == null) result = caseQueryStatement(queryDeleteStatement);
+                if (result == null) result = caseSQLDataChangeStatement(queryDeleteStatement);
+                if (result == null) result = caseSQLQueryObject(queryDeleteStatement);
+                if (result == null) result = caseSQLDataStatement(queryDeleteStatement);
+                if (result == null) result = caseSQLObject(queryDeleteStatement);
+                if (result == null) result = caseSQLStatement(queryDeleteStatement);
+                if (result == null) result = caseENamedElement(queryDeleteStatement);
+                if (result == null) result = caseEModelElement(queryDeleteStatement);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.QUERY_INSERT_STATEMENT: {
+                QueryInsertStatement queryInsertStatement = (QueryInsertStatement)theEObject;
+                Object result = caseQueryInsertStatement(queryInsertStatement);
+                if (result == null) result = caseQueryChangeStatement(queryInsertStatement);
+                if (result == null) result = caseQueryStatement(queryInsertStatement);
+                if (result == null) result = caseSQLDataChangeStatement(queryInsertStatement);
+                if (result == null) result = caseSQLQueryObject(queryInsertStatement);
+                if (result == null) result = caseSQLDataStatement(queryInsertStatement);
+                if (result == null) result = caseSQLObject(queryInsertStatement);
+                if (result == null) result = caseSQLStatement(queryInsertStatement);
+                if (result == null) result = caseENamedElement(queryInsertStatement);
+                if (result == null) result = caseEModelElement(queryInsertStatement);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.QUERY_SELECT_STATEMENT: {
+                QuerySelectStatement querySelectStatement = (QuerySelectStatement)theEObject;
+                Object result = caseQuerySelectStatement(querySelectStatement);
+                if (result == null) result = caseQueryStatement(querySelectStatement);
+                if (result == null) result = caseSQLQueryObject(querySelectStatement);
+                if (result == null) result = caseSQLDataStatement(querySelectStatement);
+                if (result == null) result = caseSQLObject(querySelectStatement);
+                if (result == null) result = caseSQLStatement(querySelectStatement);
+                if (result == null) result = caseENamedElement(querySelectStatement);
+                if (result == null) result = caseEModelElement(querySelectStatement);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.QUERY_UPDATE_STATEMENT: {
+                QueryUpdateStatement queryUpdateStatement = (QueryUpdateStatement)theEObject;
+                Object result = caseQueryUpdateStatement(queryUpdateStatement);
+                if (result == null) result = caseQueryChangeStatement(queryUpdateStatement);
+                if (result == null) result = caseQueryStatement(queryUpdateStatement);
+                if (result == null) result = caseSQLDataChangeStatement(queryUpdateStatement);
+                if (result == null) result = caseSQLQueryObject(queryUpdateStatement);
+                if (result == null) result = caseSQLDataStatement(queryUpdateStatement);
+                if (result == null) result = caseSQLObject(queryUpdateStatement);
+                if (result == null) result = caseSQLStatement(queryUpdateStatement);
+                if (result == null) result = caseENamedElement(queryUpdateStatement);
+                if (result == null) result = caseEModelElement(queryUpdateStatement);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.UPDATE_ASSIGNMENT_EXPRESSION: {
+                UpdateAssignmentExpression updateAssignmentExpression = (UpdateAssignmentExpression)theEObject;
+                Object result = caseUpdateAssignmentExpression(updateAssignmentExpression);
+                if (result == null) result = caseSQLQueryObject(updateAssignmentExpression);
+                if (result == null) result = caseSQLObject(updateAssignmentExpression);
+                if (result == null) result = caseENamedElement(updateAssignmentExpression);
+                if (result == null) result = caseEModelElement(updateAssignmentExpression);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.CURSOR_REFERENCE: {
+                CursorReference cursorReference = (CursorReference)theEObject;
+                Object result = caseCursorReference(cursorReference);
+                if (result == null) result = caseSQLQueryObject(cursorReference);
+                if (result == null) result = caseSQLObject(cursorReference);
+                if (result == null) result = caseENamedElement(cursorReference);
+                if (result == null) result = caseEModelElement(cursorReference);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.QUERY_SEARCH_CONDITION: {
+                QuerySearchCondition querySearchCondition = (QuerySearchCondition)theEObject;
+                Object result = caseQuerySearchCondition(querySearchCondition);
+                if (result == null) result = caseSQLQueryObject(querySearchCondition);
+                if (result == null) result = caseSearchCondition(querySearchCondition);
+                if (result == null) result = caseSQLObject(querySearchCondition);
+                if (result == null) result = caseENamedElement(querySearchCondition);
+                if (result == null) result = caseEModelElement(querySearchCondition);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.QUERY_EXPRESSION_BODY: {
+                QueryExpressionBody queryExpressionBody = (QueryExpressionBody)theEObject;
+                Object result = caseQueryExpressionBody(queryExpressionBody);
+                if (result == null) result = caseTableExpression(queryExpressionBody);
+                if (result == null) result = caseTableReference(queryExpressionBody);
+                if (result == null) result = caseSQLQueryObject(queryExpressionBody);
+                if (result == null) result = caseSQLObject(queryExpressionBody);
+                if (result == null) result = caseENamedElement(queryExpressionBody);
+                if (result == null) result = caseEModelElement(queryExpressionBody);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.QUERY_VALUE_EXPRESSION: {
+                QueryValueExpression queryValueExpression = (QueryValueExpression)theEObject;
+                Object result = caseQueryValueExpression(queryValueExpression);
+                if (result == null) result = caseSQLQueryObject(queryValueExpression);
+                if (result == null) result = caseValueExpression(queryValueExpression);
+                if (result == null) result = caseSQLObject(queryValueExpression);
+                if (result == null) result = caseENamedElement(queryValueExpression);
+                if (result == null) result = caseEModelElement(queryValueExpression);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.QUERY_EXPRESSION_ROOT: {
+                QueryExpressionRoot queryExpressionRoot = (QueryExpressionRoot)theEObject;
+                Object result = caseQueryExpressionRoot(queryExpressionRoot);
+                if (result == null) result = caseSQLQueryObject(queryExpressionRoot);
+                if (result == null) result = caseQueryExpression(queryExpressionRoot);
+                if (result == null) result = caseSQLObject(queryExpressionRoot);
+                if (result == null) result = caseENamedElement(queryExpressionRoot);
+                if (result == null) result = caseEModelElement(queryExpressionRoot);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.VALUES_ROW: {
+                ValuesRow valuesRow = (ValuesRow)theEObject;
+                Object result = caseValuesRow(valuesRow);
+                if (result == null) result = caseSQLQueryObject(valuesRow);
+                if (result == null) result = caseSQLObject(valuesRow);
+                if (result == null) result = caseENamedElement(valuesRow);
+                if (result == null) result = caseEModelElement(valuesRow);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.QUERY_VALUES: {
+                QueryValues queryValues = (QueryValues)theEObject;
+                Object result = caseQueryValues(queryValues);
+                if (result == null) result = caseQueryExpressionBody(queryValues);
+                if (result == null) result = caseTableExpression(queryValues);
+                if (result == null) result = caseTableReference(queryValues);
+                if (result == null) result = caseSQLQueryObject(queryValues);
+                if (result == null) result = caseSQLObject(queryValues);
+                if (result == null) result = caseENamedElement(queryValues);
+                if (result == null) result = caseEModelElement(queryValues);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.TABLE_REFERENCE: {
+                TableReference tableReference = (TableReference)theEObject;
+                Object result = caseTableReference(tableReference);
+                if (result == null) result = caseSQLQueryObject(tableReference);
+                if (result == null) result = caseSQLObject(tableReference);
+                if (result == null) result = caseENamedElement(tableReference);
+                if (result == null) result = caseEModelElement(tableReference);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.TABLE_EXPRESSION: {
+                TableExpression tableExpression = (TableExpression)theEObject;
+                Object result = caseTableExpression(tableExpression);
+                if (result == null) result = caseTableReference(tableExpression);
+                if (result == null) result = caseSQLQueryObject(tableExpression);
+                if (result == null) result = caseSQLObject(tableExpression);
+                if (result == null) result = caseENamedElement(tableExpression);
+                if (result == null) result = caseEModelElement(tableExpression);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.TABLE_JOINED: {
+                TableJoined tableJoined = (TableJoined)theEObject;
+                Object result = caseTableJoined(tableJoined);
+                if (result == null) result = caseTableReference(tableJoined);
+                if (result == null) result = caseSQLQueryObject(tableJoined);
+                if (result == null) result = caseSQLObject(tableJoined);
+                if (result == null) result = caseENamedElement(tableJoined);
+                if (result == null) result = caseEModelElement(tableJoined);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.WITH_TABLE_SPECIFICATION: {
+                WithTableSpecification withTableSpecification = (WithTableSpecification)theEObject;
+                Object result = caseWithTableSpecification(withTableSpecification);
+                if (result == null) result = caseSQLQueryObject(withTableSpecification);
+                if (result == null) result = caseSQLObject(withTableSpecification);
+                if (result == null) result = caseENamedElement(withTableSpecification);
+                if (result == null) result = caseEModelElement(withTableSpecification);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.PREDICATE: {
+                Predicate predicate = (Predicate)theEObject;
+                Object result = casePredicate(predicate);
+                if (result == null) result = caseQuerySearchCondition(predicate);
+                if (result == null) result = caseSQLQueryObject(predicate);
+                if (result == null) result = caseSearchCondition(predicate);
+                if (result == null) result = caseSQLObject(predicate);
+                if (result == null) result = caseENamedElement(predicate);
+                if (result == null) result = caseEModelElement(predicate);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.SEARCH_CONDITION_COMBINED: {
+                SearchConditionCombined searchConditionCombined = (SearchConditionCombined)theEObject;
+                Object result = caseSearchConditionCombined(searchConditionCombined);
+                if (result == null) result = caseQuerySearchCondition(searchConditionCombined);
+                if (result == null) result = caseSQLQueryObject(searchConditionCombined);
+                if (result == null) result = caseSearchCondition(searchConditionCombined);
+                if (result == null) result = caseSQLObject(searchConditionCombined);
+                if (result == null) result = caseENamedElement(searchConditionCombined);
+                if (result == null) result = caseEModelElement(searchConditionCombined);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.ORDER_BY_VALUE_EXPRESSION: {
+                OrderByValueExpression orderByValueExpression = (OrderByValueExpression)theEObject;
+                Object result = caseOrderByValueExpression(orderByValueExpression);
+                if (result == null) result = caseOrderBySpecification(orderByValueExpression);
+                if (result == null) result = caseSQLQueryObject(orderByValueExpression);
+                if (result == null) result = caseSQLObject(orderByValueExpression);
+                if (result == null) result = caseENamedElement(orderByValueExpression);
+                if (result == null) result = caseEModelElement(orderByValueExpression);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.QUERY_COMBINED: {
+                QueryCombined queryCombined = (QueryCombined)theEObject;
+                Object result = caseQueryCombined(queryCombined);
+                if (result == null) result = caseQueryExpressionBody(queryCombined);
+                if (result == null) result = caseTableExpression(queryCombined);
+                if (result == null) result = caseTableReference(queryCombined);
+                if (result == null) result = caseSQLQueryObject(queryCombined);
+                if (result == null) result = caseSQLObject(queryCombined);
+                if (result == null) result = caseENamedElement(queryCombined);
+                if (result == null) result = caseEModelElement(queryCombined);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.QUERY_SELECT: {
+                QuerySelect querySelect = (QuerySelect)theEObject;
+                Object result = caseQuerySelect(querySelect);
+                if (result == null) result = caseQueryExpressionBody(querySelect);
+                if (result == null) result = caseTableExpression(querySelect);
+                if (result == null) result = caseTableReference(querySelect);
+                if (result == null) result = caseSQLQueryObject(querySelect);
+                if (result == null) result = caseSQLObject(querySelect);
+                if (result == null) result = caseENamedElement(querySelect);
+                if (result == null) result = caseEModelElement(querySelect);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.GROUPING_SPECIFICATION: {
+                GroupingSpecification groupingSpecification = (GroupingSpecification)theEObject;
+                Object result = caseGroupingSpecification(groupingSpecification);
+                if (result == null) result = caseSQLQueryObject(groupingSpecification);
+                if (result == null) result = caseSQLObject(groupingSpecification);
+                if (result == null) result = caseENamedElement(groupingSpecification);
+                if (result == null) result = caseEModelElement(groupingSpecification);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.QUERY_RESULT_SPECIFICATION: {
+                QueryResultSpecification queryResultSpecification = (QueryResultSpecification)theEObject;
+                Object result = caseQueryResultSpecification(queryResultSpecification);
+                if (result == null) result = caseSQLQueryObject(queryResultSpecification);
+                if (result == null) result = caseSQLObject(queryResultSpecification);
+                if (result == null) result = caseENamedElement(queryResultSpecification);
+                if (result == null) result = caseEModelElement(queryResultSpecification);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.RESULT_TABLE_ALL_COLUMNS: {
+                ResultTableAllColumns resultTableAllColumns = (ResultTableAllColumns)theEObject;
+                Object result = caseResultTableAllColumns(resultTableAllColumns);
+                if (result == null) result = caseQueryResultSpecification(resultTableAllColumns);
+                if (result == null) result = caseSQLQueryObject(resultTableAllColumns);
+                if (result == null) result = caseSQLObject(resultTableAllColumns);
+                if (result == null) result = caseENamedElement(resultTableAllColumns);
+                if (result == null) result = caseEModelElement(resultTableAllColumns);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.RESULT_COLUMN: {
+                ResultColumn resultColumn = (ResultColumn)theEObject;
+                Object result = caseResultColumn(resultColumn);
+                if (result == null) result = caseQueryResultSpecification(resultColumn);
+                if (result == null) result = caseSQLQueryObject(resultColumn);
+                if (result == null) result = caseSQLObject(resultColumn);
+                if (result == null) result = caseENamedElement(resultColumn);
+                if (result == null) result = caseEModelElement(resultColumn);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.PREDICATE_BASIC: {
+                PredicateBasic predicateBasic = (PredicateBasic)theEObject;
+                Object result = casePredicateBasic(predicateBasic);
+                if (result == null) result = casePredicate(predicateBasic);
+                if (result == null) result = caseQuerySearchCondition(predicateBasic);
+                if (result == null) result = caseSQLQueryObject(predicateBasic);
+                if (result == null) result = caseSearchCondition(predicateBasic);
+                if (result == null) result = caseSQLObject(predicateBasic);
+                if (result == null) result = caseENamedElement(predicateBasic);
+                if (result == null) result = caseEModelElement(predicateBasic);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED: {
+                PredicateQuantified predicateQuantified = (PredicateQuantified)theEObject;
+                Object result = casePredicateQuantified(predicateQuantified);
+                if (result == null) result = casePredicate(predicateQuantified);
+                if (result == null) result = caseQuerySearchCondition(predicateQuantified);
+                if (result == null) result = caseSQLQueryObject(predicateQuantified);
+                if (result == null) result = caseSearchCondition(predicateQuantified);
+                if (result == null) result = caseSQLObject(predicateQuantified);
+                if (result == null) result = caseENamedElement(predicateQuantified);
+                if (result == null) result = caseEModelElement(predicateQuantified);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.PREDICATE_BETWEEN: {
+                PredicateBetween predicateBetween = (PredicateBetween)theEObject;
+                Object result = casePredicateBetween(predicateBetween);
+                if (result == null) result = casePredicate(predicateBetween);
+                if (result == null) result = caseQuerySearchCondition(predicateBetween);
+                if (result == null) result = caseSQLQueryObject(predicateBetween);
+                if (result == null) result = caseSearchCondition(predicateBetween);
+                if (result == null) result = caseSQLObject(predicateBetween);
+                if (result == null) result = caseENamedElement(predicateBetween);
+                if (result == null) result = caseEModelElement(predicateBetween);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.PREDICATE_EXISTS: {
+                PredicateExists predicateExists = (PredicateExists)theEObject;
+                Object result = casePredicateExists(predicateExists);
+                if (result == null) result = casePredicate(predicateExists);
+                if (result == null) result = caseQuerySearchCondition(predicateExists);
+                if (result == null) result = caseSQLQueryObject(predicateExists);
+                if (result == null) result = caseSearchCondition(predicateExists);
+                if (result == null) result = caseSQLObject(predicateExists);
+                if (result == null) result = caseENamedElement(predicateExists);
+                if (result == null) result = caseEModelElement(predicateExists);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.PREDICATE_IN: {
+                PredicateIn predicateIn = (PredicateIn)theEObject;
+                Object result = casePredicateIn(predicateIn);
+                if (result == null) result = casePredicate(predicateIn);
+                if (result == null) result = caseQuerySearchCondition(predicateIn);
+                if (result == null) result = caseSQLQueryObject(predicateIn);
+                if (result == null) result = caseSearchCondition(predicateIn);
+                if (result == null) result = caseSQLObject(predicateIn);
+                if (result == null) result = caseENamedElement(predicateIn);
+                if (result == null) result = caseEModelElement(predicateIn);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.PREDICATE_LIKE: {
+                PredicateLike predicateLike = (PredicateLike)theEObject;
+                Object result = casePredicateLike(predicateLike);
+                if (result == null) result = casePredicate(predicateLike);
+                if (result == null) result = caseQuerySearchCondition(predicateLike);
+                if (result == null) result = caseSQLQueryObject(predicateLike);
+                if (result == null) result = caseSearchCondition(predicateLike);
+                if (result == null) result = caseSQLObject(predicateLike);
+                if (result == null) result = caseENamedElement(predicateLike);
+                if (result == null) result = caseEModelElement(predicateLike);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.PREDICATE_IS_NULL: {
+                PredicateIsNull predicateIsNull = (PredicateIsNull)theEObject;
+                Object result = casePredicateIsNull(predicateIsNull);
+                if (result == null) result = casePredicate(predicateIsNull);
+                if (result == null) result = caseQuerySearchCondition(predicateIsNull);
+                if (result == null) result = caseSQLQueryObject(predicateIsNull);
+                if (result == null) result = caseSearchCondition(predicateIsNull);
+                if (result == null) result = caseSQLObject(predicateIsNull);
+                if (result == null) result = caseENamedElement(predicateIsNull);
+                if (result == null) result = caseEModelElement(predicateIsNull);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_VALUE_SELECT: {
+                PredicateQuantifiedValueSelect predicateQuantifiedValueSelect = (PredicateQuantifiedValueSelect)theEObject;
+                Object result = casePredicateQuantifiedValueSelect(predicateQuantifiedValueSelect);
+                if (result == null) result = casePredicateQuantified(predicateQuantifiedValueSelect);
+                if (result == null) result = casePredicate(predicateQuantifiedValueSelect);
+                if (result == null) result = caseQuerySearchCondition(predicateQuantifiedValueSelect);
+                if (result == null) result = caseSQLQueryObject(predicateQuantifiedValueSelect);
+                if (result == null) result = caseSearchCondition(predicateQuantifiedValueSelect);
+                if (result == null) result = caseSQLObject(predicateQuantifiedValueSelect);
+                if (result == null) result = caseENamedElement(predicateQuantifiedValueSelect);
+                if (result == null) result = caseEModelElement(predicateQuantifiedValueSelect);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.PREDICATE_QUANTIFIED_ROW_SELECT: {
+                PredicateQuantifiedRowSelect predicateQuantifiedRowSelect = (PredicateQuantifiedRowSelect)theEObject;
+                Object result = casePredicateQuantifiedRowSelect(predicateQuantifiedRowSelect);
+                if (result == null) result = casePredicateQuantified(predicateQuantifiedRowSelect);
+                if (result == null) result = casePredicate(predicateQuantifiedRowSelect);
+                if (result == null) result = caseQuerySearchCondition(predicateQuantifiedRowSelect);
+                if (result == null) result = caseSQLQueryObject(predicateQuantifiedRowSelect);
+                if (result == null) result = caseSearchCondition(predicateQuantifiedRowSelect);
+                if (result == null) result = caseSQLObject(predicateQuantifiedRowSelect);
+                if (result == null) result = caseENamedElement(predicateQuantifiedRowSelect);
+                if (result == null) result = caseEModelElement(predicateQuantifiedRowSelect);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_SELECT: {
+                PredicateInValueSelect predicateInValueSelect = (PredicateInValueSelect)theEObject;
+                Object result = casePredicateInValueSelect(predicateInValueSelect);
+                if (result == null) result = casePredicateIn(predicateInValueSelect);
+                if (result == null) result = casePredicate(predicateInValueSelect);
+                if (result == null) result = caseQuerySearchCondition(predicateInValueSelect);
+                if (result == null) result = caseSQLQueryObject(predicateInValueSelect);
+                if (result == null) result = caseSearchCondition(predicateInValueSelect);
+                if (result == null) result = caseSQLObject(predicateInValueSelect);
+                if (result == null) result = caseENamedElement(predicateInValueSelect);
+                if (result == null) result = caseEModelElement(predicateInValueSelect);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_LIST: {
+                PredicateInValueList predicateInValueList = (PredicateInValueList)theEObject;
+                Object result = casePredicateInValueList(predicateInValueList);
+                if (result == null) result = casePredicateIn(predicateInValueList);
+                if (result == null) result = casePredicate(predicateInValueList);
+                if (result == null) result = caseQuerySearchCondition(predicateInValueList);
+                if (result == null) result = caseSQLQueryObject(predicateInValueList);
+                if (result == null) result = caseSearchCondition(predicateInValueList);
+                if (result == null) result = caseSQLObject(predicateInValueList);
+                if (result == null) result = caseENamedElement(predicateInValueList);
+                if (result == null) result = caseEModelElement(predicateInValueList);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.PREDICATE_IN_VALUE_ROW_SELECT: {
+                PredicateInValueRowSelect predicateInValueRowSelect = (PredicateInValueRowSelect)theEObject;
+                Object result = casePredicateInValueRowSelect(predicateInValueRowSelect);
+                if (result == null) result = casePredicateIn(predicateInValueRowSelect);
+                if (result == null) result = casePredicate(predicateInValueRowSelect);
+                if (result == null) result = caseQuerySearchCondition(predicateInValueRowSelect);
+                if (result == null) result = caseSQLQueryObject(predicateInValueRowSelect);
+                if (result == null) result = caseSearchCondition(predicateInValueRowSelect);
+                if (result == null) result = caseSQLObject(predicateInValueRowSelect);
+                if (result == null) result = caseENamedElement(predicateInValueRowSelect);
+                if (result == null) result = caseEModelElement(predicateInValueRowSelect);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.VALUE_EXPRESSION_SIMPLE: {
+                ValueExpressionSimple valueExpressionSimple = (ValueExpressionSimple)theEObject;
+                Object result = caseValueExpressionSimple(valueExpressionSimple);
+                if (result == null) result = caseValueExpressionAtomic(valueExpressionSimple);
+                if (result == null) result = caseQueryValueExpression(valueExpressionSimple);
+                if (result == null) result = caseSQLQueryObject(valueExpressionSimple);
+                if (result == null) result = caseValueExpression(valueExpressionSimple);
+                if (result == null) result = caseSQLObject(valueExpressionSimple);
+                if (result == null) result = caseENamedElement(valueExpressionSimple);
+                if (result == null) result = caseEModelElement(valueExpressionSimple);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COLUMN: {
+                ValueExpressionColumn valueExpressionColumn = (ValueExpressionColumn)theEObject;
+                Object result = caseValueExpressionColumn(valueExpressionColumn);
+                if (result == null) result = caseValueExpressionAtomic(valueExpressionColumn);
+                if (result == null) result = caseQueryValueExpression(valueExpressionColumn);
+                if (result == null) result = caseSQLQueryObject(valueExpressionColumn);
+                if (result == null) result = caseValueExpression(valueExpressionColumn);
+                if (result == null) result = caseSQLObject(valueExpressionColumn);
+                if (result == null) result = caseENamedElement(valueExpressionColumn);
+                if (result == null) result = caseEModelElement(valueExpressionColumn);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.VALUE_EXPRESSION_VARIABLE: {
+                ValueExpressionVariable valueExpressionVariable = (ValueExpressionVariable)theEObject;
+                Object result = caseValueExpressionVariable(valueExpressionVariable);
+                if (result == null) result = caseValueExpressionAtomic(valueExpressionVariable);
+                if (result == null) result = caseQueryValueExpression(valueExpressionVariable);
+                if (result == null) result = caseSQLQueryObject(valueExpressionVariable);
+                if (result == null) result = caseValueExpression(valueExpressionVariable);
+                if (result == null) result = caseSQLObject(valueExpressionVariable);
+                if (result == null) result = caseENamedElement(valueExpressionVariable);
+                if (result == null) result = caseEModelElement(valueExpressionVariable);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.VALUE_EXPRESSION_SCALAR_SELECT: {
+                ValueExpressionScalarSelect valueExpressionScalarSelect = (ValueExpressionScalarSelect)theEObject;
+                Object result = caseValueExpressionScalarSelect(valueExpressionScalarSelect);
+                if (result == null) result = caseValueExpressionAtomic(valueExpressionScalarSelect);
+                if (result == null) result = caseQueryValueExpression(valueExpressionScalarSelect);
+                if (result == null) result = caseSQLQueryObject(valueExpressionScalarSelect);
+                if (result == null) result = caseValueExpression(valueExpressionScalarSelect);
+                if (result == null) result = caseSQLObject(valueExpressionScalarSelect);
+                if (result == null) result = caseENamedElement(valueExpressionScalarSelect);
+                if (result == null) result = caseEModelElement(valueExpressionScalarSelect);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.VALUE_EXPRESSION_LABELED_DURATION: {
+                ValueExpressionLabeledDuration valueExpressionLabeledDuration = (ValueExpressionLabeledDuration)theEObject;
+                Object result = caseValueExpressionLabeledDuration(valueExpressionLabeledDuration);
+                if (result == null) result = caseValueExpressionAtomic(valueExpressionLabeledDuration);
+                if (result == null) result = caseQueryValueExpression(valueExpressionLabeledDuration);
+                if (result == null) result = caseSQLQueryObject(valueExpressionLabeledDuration);
+                if (result == null) result = caseValueExpression(valueExpressionLabeledDuration);
+                if (result == null) result = caseSQLObject(valueExpressionLabeledDuration);
+                if (result == null) result = caseENamedElement(valueExpressionLabeledDuration);
+                if (result == null) result = caseEModelElement(valueExpressionLabeledDuration);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE: {
+                ValueExpressionCase valueExpressionCase = (ValueExpressionCase)theEObject;
+                Object result = caseValueExpressionCase(valueExpressionCase);
+                if (result == null) result = caseValueExpressionAtomic(valueExpressionCase);
+                if (result == null) result = caseQueryValueExpression(valueExpressionCase);
+                if (result == null) result = caseSQLQueryObject(valueExpressionCase);
+                if (result == null) result = caseValueExpression(valueExpressionCase);
+                if (result == null) result = caseSQLObject(valueExpressionCase);
+                if (result == null) result = caseENamedElement(valueExpressionCase);
+                if (result == null) result = caseEModelElement(valueExpressionCase);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CAST: {
+                ValueExpressionCast valueExpressionCast = (ValueExpressionCast)theEObject;
+                Object result = caseValueExpressionCast(valueExpressionCast);
+                if (result == null) result = caseValueExpressionAtomic(valueExpressionCast);
+                if (result == null) result = caseQueryValueExpression(valueExpressionCast);
+                if (result == null) result = caseSQLQueryObject(valueExpressionCast);
+                if (result == null) result = caseValueExpression(valueExpressionCast);
+                if (result == null) result = caseSQLObject(valueExpressionCast);
+                if (result == null) result = caseENamedElement(valueExpressionCast);
+                if (result == null) result = caseEModelElement(valueExpressionCast);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.VALUE_EXPRESSION_NULL_VALUE: {
+                ValueExpressionNullValue valueExpressionNullValue = (ValueExpressionNullValue)theEObject;
+                Object result = caseValueExpressionNullValue(valueExpressionNullValue);
+                if (result == null) result = caseValueExpressionAtomic(valueExpressionNullValue);
+                if (result == null) result = caseQueryValueExpression(valueExpressionNullValue);
+                if (result == null) result = caseSQLQueryObject(valueExpressionNullValue);
+                if (result == null) result = caseValueExpression(valueExpressionNullValue);
+                if (result == null) result = caseSQLObject(valueExpressionNullValue);
+                if (result == null) result = caseENamedElement(valueExpressionNullValue);
+                if (result == null) result = caseEModelElement(valueExpressionNullValue);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.VALUE_EXPRESSION_DEFAULT_VALUE: {
+                ValueExpressionDefaultValue valueExpressionDefaultValue = (ValueExpressionDefaultValue)theEObject;
+                Object result = caseValueExpressionDefaultValue(valueExpressionDefaultValue);
+                if (result == null) result = caseValueExpressionAtomic(valueExpressionDefaultValue);
+                if (result == null) result = caseQueryValueExpression(valueExpressionDefaultValue);
+                if (result == null) result = caseSQLQueryObject(valueExpressionDefaultValue);
+                if (result == null) result = caseValueExpression(valueExpressionDefaultValue);
+                if (result == null) result = caseSQLObject(valueExpressionDefaultValue);
+                if (result == null) result = caseENamedElement(valueExpressionDefaultValue);
+                if (result == null) result = caseEModelElement(valueExpressionDefaultValue);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION: {
+                ValueExpressionFunction valueExpressionFunction = (ValueExpressionFunction)theEObject;
+                Object result = caseValueExpressionFunction(valueExpressionFunction);
+                if (result == null) result = caseValueExpressionAtomic(valueExpressionFunction);
+                if (result == null) result = caseQueryValueExpression(valueExpressionFunction);
+                if (result == null) result = caseSQLQueryObject(valueExpressionFunction);
+                if (result == null) result = caseValueExpression(valueExpressionFunction);
+                if (result == null) result = caseSQLObject(valueExpressionFunction);
+                if (result == null) result = caseENamedElement(valueExpressionFunction);
+                if (result == null) result = caseEModelElement(valueExpressionFunction);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.VALUE_EXPRESSION_COMBINED: {
+                ValueExpressionCombined valueExpressionCombined = (ValueExpressionCombined)theEObject;
+                Object result = caseValueExpressionCombined(valueExpressionCombined);
+                if (result == null) result = caseQueryValueExpression(valueExpressionCombined);
+                if (result == null) result = caseSQLQueryObject(valueExpressionCombined);
+                if (result == null) result = caseValueExpression(valueExpressionCombined);
+                if (result == null) result = caseSQLObject(valueExpressionCombined);
+                if (result == null) result = caseENamedElement(valueExpressionCombined);
+                if (result == null) result = caseEModelElement(valueExpressionCombined);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.GROUPING_SETS: {
+                GroupingSets groupingSets = (GroupingSets)theEObject;
+                Object result = caseGroupingSets(groupingSets);
+                if (result == null) result = caseGroupingSpecification(groupingSets);
+                if (result == null) result = caseSQLQueryObject(groupingSets);
+                if (result == null) result = caseSQLObject(groupingSets);
+                if (result == null) result = caseENamedElement(groupingSets);
+                if (result == null) result = caseEModelElement(groupingSets);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.GROUPING: {
+                Grouping grouping = (Grouping)theEObject;
+                Object result = caseGrouping(grouping);
+                if (result == null) result = caseGroupingSpecification(grouping);
+                if (result == null) result = caseSQLQueryObject(grouping);
+                if (result == null) result = caseSQLObject(grouping);
+                if (result == null) result = caseENamedElement(grouping);
+                if (result == null) result = caseEModelElement(grouping);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.GROUPING_SETS_ELEMENT: {
+                GroupingSetsElement groupingSetsElement = (GroupingSetsElement)theEObject;
+                Object result = caseGroupingSetsElement(groupingSetsElement);
+                if (result == null) result = caseSQLQueryObject(groupingSetsElement);
+                if (result == null) result = caseSQLObject(groupingSetsElement);
+                if (result == null) result = caseENamedElement(groupingSetsElement);
+                if (result == null) result = caseEModelElement(groupingSetsElement);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.GROUPING_SETS_ELEMENT_SUBLIST: {
+                GroupingSetsElementSublist groupingSetsElementSublist = (GroupingSetsElementSublist)theEObject;
+                Object result = caseGroupingSetsElementSublist(groupingSetsElementSublist);
+                if (result == null) result = caseGroupingSetsElement(groupingSetsElementSublist);
+                if (result == null) result = caseSQLQueryObject(groupingSetsElementSublist);
+                if (result == null) result = caseSQLObject(groupingSetsElementSublist);
+                if (result == null) result = caseENamedElement(groupingSetsElementSublist);
+                if (result == null) result = caseEModelElement(groupingSetsElementSublist);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.GROUPING_SETS_ELEMENT_EXPRESSION: {
+                GroupingSetsElementExpression groupingSetsElementExpression = (GroupingSetsElementExpression)theEObject;
+                Object result = caseGroupingSetsElementExpression(groupingSetsElementExpression);
+                if (result == null) result = caseGroupingSetsElement(groupingSetsElementExpression);
+                if (result == null) result = caseSQLQueryObject(groupingSetsElementExpression);
+                if (result == null) result = caseSQLObject(groupingSetsElementExpression);
+                if (result == null) result = caseENamedElement(groupingSetsElementExpression);
+                if (result == null) result = caseEModelElement(groupingSetsElementExpression);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.SUPER_GROUP: {
+                SuperGroup superGroup = (SuperGroup)theEObject;
+                Object result = caseSuperGroup(superGroup);
+                if (result == null) result = caseGrouping(superGroup);
+                if (result == null) result = caseGroupingSpecification(superGroup);
+                if (result == null) result = caseSQLQueryObject(superGroup);
+                if (result == null) result = caseSQLObject(superGroup);
+                if (result == null) result = caseENamedElement(superGroup);
+                if (result == null) result = caseEModelElement(superGroup);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.GROUPING_EXPRESSION: {
+                GroupingExpression groupingExpression = (GroupingExpression)theEObject;
+                Object result = caseGroupingExpression(groupingExpression);
+                if (result == null) result = caseGrouping(groupingExpression);
+                if (result == null) result = caseGroupingSpecification(groupingExpression);
+                if (result == null) result = caseSQLQueryObject(groupingExpression);
+                if (result == null) result = caseSQLObject(groupingExpression);
+                if (result == null) result = caseENamedElement(groupingExpression);
+                if (result == null) result = caseEModelElement(groupingExpression);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.SUPER_GROUP_ELEMENT: {
+                SuperGroupElement superGroupElement = (SuperGroupElement)theEObject;
+                Object result = caseSuperGroupElement(superGroupElement);
+                if (result == null) result = caseSQLQueryObject(superGroupElement);
+                if (result == null) result = caseSQLObject(superGroupElement);
+                if (result == null) result = caseENamedElement(superGroupElement);
+                if (result == null) result = caseEModelElement(superGroupElement);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.SUPER_GROUP_ELEMENT_SUBLIST: {
+                SuperGroupElementSublist superGroupElementSublist = (SuperGroupElementSublist)theEObject;
+                Object result = caseSuperGroupElementSublist(superGroupElementSublist);
+                if (result == null) result = caseSuperGroupElement(superGroupElementSublist);
+                if (result == null) result = caseSQLQueryObject(superGroupElementSublist);
+                if (result == null) result = caseSQLObject(superGroupElementSublist);
+                if (result == null) result = caseENamedElement(superGroupElementSublist);
+                if (result == null) result = caseEModelElement(superGroupElementSublist);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.SUPER_GROUP_ELEMENT_EXPRESSION: {
+                SuperGroupElementExpression superGroupElementExpression = (SuperGroupElementExpression)theEObject;
+                Object result = caseSuperGroupElementExpression(superGroupElementExpression);
+                if (result == null) result = caseSuperGroupElement(superGroupElementExpression);
+                if (result == null) result = caseSQLQueryObject(superGroupElementExpression);
+                if (result == null) result = caseSQLObject(superGroupElementExpression);
+                if (result == null) result = caseENamedElement(superGroupElementExpression);
+                if (result == null) result = caseEModelElement(superGroupElementExpression);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH: {
+                ValueExpressionCaseSearch valueExpressionCaseSearch = (ValueExpressionCaseSearch)theEObject;
+                Object result = caseValueExpressionCaseSearch(valueExpressionCaseSearch);
+                if (result == null) result = caseValueExpressionCase(valueExpressionCaseSearch);
+                if (result == null) result = caseValueExpressionAtomic(valueExpressionCaseSearch);
+                if (result == null) result = caseQueryValueExpression(valueExpressionCaseSearch);
+                if (result == null) result = caseSQLQueryObject(valueExpressionCaseSearch);
+                if (result == null) result = caseValueExpression(valueExpressionCaseSearch);
+                if (result == null) result = caseSQLObject(valueExpressionCaseSearch);
+                if (result == null) result = caseENamedElement(valueExpressionCaseSearch);
+                if (result == null) result = caseEModelElement(valueExpressionCaseSearch);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE: {
+                ValueExpressionCaseSimple valueExpressionCaseSimple = (ValueExpressionCaseSimple)theEObject;
+                Object result = caseValueExpressionCaseSimple(valueExpressionCaseSimple);
+                if (result == null) result = caseValueExpressionCase(valueExpressionCaseSimple);
+                if (result == null) result = caseValueExpressionAtomic(valueExpressionCaseSimple);
+                if (result == null) result = caseQueryValueExpression(valueExpressionCaseSimple);
+                if (result == null) result = caseSQLQueryObject(valueExpressionCaseSimple);
+                if (result == null) result = caseValueExpression(valueExpressionCaseSimple);
+                if (result == null) result = caseSQLObject(valueExpressionCaseSimple);
+                if (result == null) result = caseENamedElement(valueExpressionCaseSimple);
+                if (result == null) result = caseEModelElement(valueExpressionCaseSimple);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_ELSE: {
+                ValueExpressionCaseElse valueExpressionCaseElse = (ValueExpressionCaseElse)theEObject;
+                Object result = caseValueExpressionCaseElse(valueExpressionCaseElse);
+                if (result == null) result = caseSQLQueryObject(valueExpressionCaseElse);
+                if (result == null) result = caseSQLObject(valueExpressionCaseElse);
+                if (result == null) result = caseENamedElement(valueExpressionCaseElse);
+                if (result == null) result = caseEModelElement(valueExpressionCaseElse);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SEARCH_CONTENT: {
+                ValueExpressionCaseSearchContent valueExpressionCaseSearchContent = (ValueExpressionCaseSearchContent)theEObject;
+                Object result = caseValueExpressionCaseSearchContent(valueExpressionCaseSearchContent);
+                if (result == null) result = caseSQLQueryObject(valueExpressionCaseSearchContent);
+                if (result == null) result = caseSQLObject(valueExpressionCaseSearchContent);
+                if (result == null) result = caseENamedElement(valueExpressionCaseSearchContent);
+                if (result == null) result = caseEModelElement(valueExpressionCaseSearchContent);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.VALUE_EXPRESSION_CASE_SIMPLE_CONTENT: {
+                ValueExpressionCaseSimpleContent valueExpressionCaseSimpleContent = (ValueExpressionCaseSimpleContent)theEObject;
+                Object result = caseValueExpressionCaseSimpleContent(valueExpressionCaseSimpleContent);
+                if (result == null) result = caseSQLQueryObject(valueExpressionCaseSimpleContent);
+                if (result == null) result = caseSQLObject(valueExpressionCaseSimpleContent);
+                if (result == null) result = caseENamedElement(valueExpressionCaseSimpleContent);
+                if (result == null) result = caseEModelElement(valueExpressionCaseSimpleContent);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.TABLE_IN_DATABASE: {
+                TableInDatabase tableInDatabase = (TableInDatabase)theEObject;
+                Object result = caseTableInDatabase(tableInDatabase);
+                if (result == null) result = caseTableExpression(tableInDatabase);
+                if (result == null) result = caseTableReference(tableInDatabase);
+                if (result == null) result = caseSQLQueryObject(tableInDatabase);
+                if (result == null) result = caseSQLObject(tableInDatabase);
+                if (result == null) result = caseENamedElement(tableInDatabase);
+                if (result == null) result = caseEModelElement(tableInDatabase);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.TABLE_FUNCTION: {
+                TableFunction tableFunction = (TableFunction)theEObject;
+                Object result = caseTableFunction(tableFunction);
+                if (result == null) result = caseTableExpression(tableFunction);
+                if (result == null) result = caseTableReference(tableFunction);
+                if (result == null) result = caseSQLQueryObject(tableFunction);
+                if (result == null) result = caseSQLObject(tableFunction);
+                if (result == null) result = caseENamedElement(tableFunction);
+                if (result == null) result = caseEModelElement(tableFunction);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.SQL_QUERY_OBJECT: {
+                SQLQueryObject sqlQueryObject = (SQLQueryObject)theEObject;
+                Object result = caseSQLQueryObject(sqlQueryObject);
+                if (result == null) result = caseSQLObject(sqlQueryObject);
+                if (result == null) result = caseENamedElement(sqlQueryObject);
+                if (result == null) result = caseEModelElement(sqlQueryObject);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.QUERY_CHANGE_STATEMENT: {
+                QueryChangeStatement queryChangeStatement = (QueryChangeStatement)theEObject;
+                Object result = caseQueryChangeStatement(queryChangeStatement);
+                if (result == null) result = caseQueryStatement(queryChangeStatement);
+                if (result == null) result = caseSQLDataChangeStatement(queryChangeStatement);
+                if (result == null) result = caseSQLQueryObject(queryChangeStatement);
+                if (result == null) result = caseSQLDataStatement(queryChangeStatement);
+                if (result == null) result = caseSQLObject(queryChangeStatement);
+                if (result == null) result = caseSQLStatement(queryChangeStatement);
+                if (result == null) result = caseENamedElement(queryChangeStatement);
+                if (result == null) result = caseEModelElement(queryChangeStatement);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.COLUMN_NAME: {
+                ColumnName columnName = (ColumnName)theEObject;
+                Object result = caseColumnName(columnName);
+                if (result == null) result = caseSQLQueryObject(columnName);
+                if (result == null) result = caseSQLObject(columnName);
+                if (result == null) result = caseENamedElement(columnName);
+                if (result == null) result = caseEModelElement(columnName);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.TABLE_NESTED: {
+                TableNested tableNested = (TableNested)theEObject;
+                Object result = caseTableNested(tableNested);
+                if (result == null) result = caseTableReference(tableNested);
+                if (result == null) result = caseSQLQueryObject(tableNested);
+                if (result == null) result = caseSQLObject(tableNested);
+                if (result == null) result = caseENamedElement(tableNested);
+                if (result == null) result = caseEModelElement(tableNested);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.QUERY_MERGE_STATEMENT: {
+                QueryMergeStatement queryMergeStatement = (QueryMergeStatement)theEObject;
+                Object result = caseQueryMergeStatement(queryMergeStatement);
+                if (result == null) result = caseQueryChangeStatement(queryMergeStatement);
+                if (result == null) result = caseQueryStatement(queryMergeStatement);
+                if (result == null) result = caseSQLDataChangeStatement(queryMergeStatement);
+                if (result == null) result = caseSQLQueryObject(queryMergeStatement);
+                if (result == null) result = caseSQLDataStatement(queryMergeStatement);
+                if (result == null) result = caseSQLObject(queryMergeStatement);
+                if (result == null) result = caseSQLStatement(queryMergeStatement);
+                if (result == null) result = caseENamedElement(queryMergeStatement);
+                if (result == null) result = caseEModelElement(queryMergeStatement);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.SEARCH_CONDITION_NESTED: {
+                SearchConditionNested searchConditionNested = (SearchConditionNested)theEObject;
+                Object result = caseSearchConditionNested(searchConditionNested);
+                if (result == null) result = caseQuerySearchCondition(searchConditionNested);
+                if (result == null) result = caseSQLQueryObject(searchConditionNested);
+                if (result == null) result = caseSearchCondition(searchConditionNested);
+                if (result == null) result = caseSQLObject(searchConditionNested);
+                if (result == null) result = caseENamedElement(searchConditionNested);
+                if (result == null) result = caseEModelElement(searchConditionNested);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.VALUE_EXPRESSION_NESTED: {
+                ValueExpressionNested valueExpressionNested = (ValueExpressionNested)theEObject;
+                Object result = caseValueExpressionNested(valueExpressionNested);
+                if (result == null) result = caseQueryValueExpression(valueExpressionNested);
+                if (result == null) result = caseSQLQueryObject(valueExpressionNested);
+                if (result == null) result = caseValueExpression(valueExpressionNested);
+                if (result == null) result = caseSQLObject(valueExpressionNested);
+                if (result == null) result = caseENamedElement(valueExpressionNested);
+                if (result == null) result = caseEModelElement(valueExpressionNested);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.VALUE_EXPRESSION_ATOMIC: {
+                ValueExpressionAtomic valueExpressionAtomic = (ValueExpressionAtomic)theEObject;
+                Object result = caseValueExpressionAtomic(valueExpressionAtomic);
+                if (result == null) result = caseQueryValueExpression(valueExpressionAtomic);
+                if (result == null) result = caseSQLQueryObject(valueExpressionAtomic);
+                if (result == null) result = caseValueExpression(valueExpressionAtomic);
+                if (result == null) result = caseSQLObject(valueExpressionAtomic);
+                if (result == null) result = caseENamedElement(valueExpressionAtomic);
+                if (result == null) result = caseEModelElement(valueExpressionAtomic);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.ORDER_BY_SPECIFICATION: {
+                OrderBySpecification orderBySpecification = (OrderBySpecification)theEObject;
+                Object result = caseOrderBySpecification(orderBySpecification);
+                if (result == null) result = caseSQLQueryObject(orderBySpecification);
+                if (result == null) result = caseSQLObject(orderBySpecification);
+                if (result == null) result = caseENamedElement(orderBySpecification);
+                if (result == null) result = caseEModelElement(orderBySpecification);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.ORDER_BY_ORDINAL: {
+                OrderByOrdinal orderByOrdinal = (OrderByOrdinal)theEObject;
+                Object result = caseOrderByOrdinal(orderByOrdinal);
+                if (result == null) result = caseOrderBySpecification(orderByOrdinal);
+                if (result == null) result = caseSQLQueryObject(orderByOrdinal);
+                if (result == null) result = caseSQLObject(orderByOrdinal);
+                if (result == null) result = caseENamedElement(orderByOrdinal);
+                if (result == null) result = caseEModelElement(orderByOrdinal);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.TABLE_CORRELATION: {
+                TableCorrelation tableCorrelation = (TableCorrelation)theEObject;
+                Object result = caseTableCorrelation(tableCorrelation);
+                if (result == null) result = caseSQLQueryObject(tableCorrelation);
+                if (result == null) result = caseSQLObject(tableCorrelation);
+                if (result == null) result = caseENamedElement(tableCorrelation);
+                if (result == null) result = caseEModelElement(tableCorrelation);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.UPDATE_SOURCE: {
+                UpdateSource updateSource = (UpdateSource)theEObject;
+                Object result = caseUpdateSource(updateSource);
+                if (result == null) result = caseSQLQueryObject(updateSource);
+                if (result == null) result = caseSQLObject(updateSource);
+                if (result == null) result = caseENamedElement(updateSource);
+                if (result == null) result = caseEModelElement(updateSource);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.UPDATE_SOURCE_EXPR_LIST: {
+                UpdateSourceExprList updateSourceExprList = (UpdateSourceExprList)theEObject;
+                Object result = caseUpdateSourceExprList(updateSourceExprList);
+                if (result == null) result = caseUpdateSource(updateSourceExprList);
+                if (result == null) result = caseSQLQueryObject(updateSourceExprList);
+                if (result == null) result = caseSQLObject(updateSourceExprList);
+                if (result == null) result = caseENamedElement(updateSourceExprList);
+                if (result == null) result = caseEModelElement(updateSourceExprList);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.UPDATE_SOURCE_QUERY: {
+                UpdateSourceQuery updateSourceQuery = (UpdateSourceQuery)theEObject;
+                Object result = caseUpdateSourceQuery(updateSourceQuery);
+                if (result == null) result = caseUpdateSource(updateSourceQuery);
+                if (result == null) result = caseSQLQueryObject(updateSourceQuery);
+                if (result == null) result = caseSQLObject(updateSourceQuery);
+                if (result == null) result = caseENamedElement(updateSourceQuery);
+                if (result == null) result = caseEModelElement(updateSourceQuery);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.ORDER_BY_RESULT_COLUMN: {
+                OrderByResultColumn orderByResultColumn = (OrderByResultColumn)theEObject;
+                Object result = caseOrderByResultColumn(orderByResultColumn);
+                if (result == null) result = caseOrderBySpecification(orderByResultColumn);
+                if (result == null) result = caseSQLQueryObject(orderByResultColumn);
+                if (result == null) result = caseSQLObject(orderByResultColumn);
+                if (result == null) result = caseENamedElement(orderByResultColumn);
+                if (result == null) result = caseEModelElement(orderByResultColumn);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.WITH_TABLE_REFERENCE: {
+                WithTableReference withTableReference = (WithTableReference)theEObject;
+                Object result = caseWithTableReference(withTableReference);
+                if (result == null) result = caseTableExpression(withTableReference);
+                if (result == null) result = caseTableReference(withTableReference);
+                if (result == null) result = caseSQLQueryObject(withTableReference);
+                if (result == null) result = caseSQLObject(withTableReference);
+                if (result == null) result = caseENamedElement(withTableReference);
+                if (result == null) result = caseEModelElement(withTableReference);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.QUERY_NESTED: {
+                QueryNested queryNested = (QueryNested)theEObject;
+                Object result = caseQueryNested(queryNested);
+                if (result == null) result = caseQueryExpressionBody(queryNested);
+                if (result == null) result = caseTableExpression(queryNested);
+                if (result == null) result = caseTableReference(queryNested);
+                if (result == null) result = caseSQLQueryObject(queryNested);
+                if (result == null) result = caseSQLObject(queryNested);
+                if (result == null) result = caseENamedElement(queryNested);
+                if (result == null) result = caseEModelElement(queryNested);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.VALUE_EXPRESSION_ROW: {
+                ValueExpressionRow valueExpressionRow = (ValueExpressionRow)theEObject;
+                Object result = caseValueExpressionRow(valueExpressionRow);
+                if (result == null) result = caseQueryValueExpression(valueExpressionRow);
+                if (result == null) result = caseSQLQueryObject(valueExpressionRow);
+                if (result == null) result = caseValueExpression(valueExpressionRow);
+                if (result == null) result = caseSQLObject(valueExpressionRow);
+                if (result == null) result = caseENamedElement(valueExpressionRow);
+                if (result == null) result = caseEModelElement(valueExpressionRow);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.MERGE_TARGET_TABLE: {
+                MergeTargetTable mergeTargetTable = (MergeTargetTable)theEObject;
+                Object result = caseMergeTargetTable(mergeTargetTable);
+                if (result == null) result = caseSQLQueryObject(mergeTargetTable);
+                if (result == null) result = caseSQLObject(mergeTargetTable);
+                if (result == null) result = caseENamedElement(mergeTargetTable);
+                if (result == null) result = caseEModelElement(mergeTargetTable);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.MERGE_SOURCE_TABLE: {
+                MergeSourceTable mergeSourceTable = (MergeSourceTable)theEObject;
+                Object result = caseMergeSourceTable(mergeSourceTable);
+                if (result == null) result = caseSQLQueryObject(mergeSourceTable);
+                if (result == null) result = caseSQLObject(mergeSourceTable);
+                if (result == null) result = caseENamedElement(mergeSourceTable);
+                if (result == null) result = caseEModelElement(mergeSourceTable);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.MERGE_ON_CONDITION: {
+                MergeOnCondition mergeOnCondition = (MergeOnCondition)theEObject;
+                Object result = caseMergeOnCondition(mergeOnCondition);
+                if (result == null) result = caseSQLQueryObject(mergeOnCondition);
+                if (result == null) result = caseSQLObject(mergeOnCondition);
+                if (result == null) result = caseENamedElement(mergeOnCondition);
+                if (result == null) result = caseEModelElement(mergeOnCondition);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.MERGE_UPDATE_SPECIFICATION: {
+                MergeUpdateSpecification mergeUpdateSpecification = (MergeUpdateSpecification)theEObject;
+                Object result = caseMergeUpdateSpecification(mergeUpdateSpecification);
+                if (result == null) result = caseMergeOperationSpecification(mergeUpdateSpecification);
+                if (result == null) result = caseSQLQueryObject(mergeUpdateSpecification);
+                if (result == null) result = caseSQLObject(mergeUpdateSpecification);
+                if (result == null) result = caseENamedElement(mergeUpdateSpecification);
+                if (result == null) result = caseEModelElement(mergeUpdateSpecification);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.MERGE_INSERT_SPECIFICATION: {
+                MergeInsertSpecification mergeInsertSpecification = (MergeInsertSpecification)theEObject;
+                Object result = caseMergeInsertSpecification(mergeInsertSpecification);
+                if (result == null) result = caseMergeOperationSpecification(mergeInsertSpecification);
+                if (result == null) result = caseSQLQueryObject(mergeInsertSpecification);
+                if (result == null) result = caseSQLObject(mergeInsertSpecification);
+                if (result == null) result = caseENamedElement(mergeInsertSpecification);
+                if (result == null) result = caseEModelElement(mergeInsertSpecification);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.MERGE_OPERATION_SPECIFICATION: {
+                MergeOperationSpecification mergeOperationSpecification = (MergeOperationSpecification)theEObject;
+                Object result = caseMergeOperationSpecification(mergeOperationSpecification);
+                if (result == null) result = caseSQLQueryObject(mergeOperationSpecification);
+                if (result == null) result = caseSQLObject(mergeOperationSpecification);
+                if (result == null) result = caseENamedElement(mergeOperationSpecification);
+                if (result == null) result = caseEModelElement(mergeOperationSpecification);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.UPDATE_OF_COLUMN: {
+                UpdateOfColumn updateOfColumn = (UpdateOfColumn)theEObject;
+                Object result = caseUpdateOfColumn(updateOfColumn);
+                if (result == null) result = caseSQLQueryObject(updateOfColumn);
+                if (result == null) result = caseSQLObject(updateOfColumn);
+                if (result == null) result = caseENamedElement(updateOfColumn);
+                if (result == null) result = caseEModelElement(updateOfColumn);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.UPDATABILITY_EXPRESSION: {
+                UpdatabilityExpression updatabilityExpression = (UpdatabilityExpression)theEObject;
+                Object result = caseUpdatabilityExpression(updatabilityExpression);
+                if (result == null) result = caseSQLQueryObject(updatabilityExpression);
+                if (result == null) result = caseSQLObject(updatabilityExpression);
+                if (result == null) result = caseENamedElement(updatabilityExpression);
+                if (result == null) result = caseEModelElement(updatabilityExpression);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.CALL_STATEMENT: {
+                CallStatement callStatement = (CallStatement)theEObject;
+                Object result = caseCallStatement(callStatement);
+                if (result == null) result = caseSQLQueryObject(callStatement);
+                if (result == null) result = caseSQLControlStatement(callStatement);
+                if (result == null) result = caseSQLObject(callStatement);
+                if (result == null) result = caseSQLStatement(callStatement);
+                if (result == null) result = caseENamedElement(callStatement);
+                if (result == null) result = caseEModelElement(callStatement);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.PROCEDURE_REFERENCE: {
+                ProcedureReference procedureReference = (ProcedureReference)theEObject;
+                Object result = caseProcedureReference(procedureReference);
+                if (result == null) result = caseSQLQueryObject(procedureReference);
+                if (result == null) result = caseSQLObject(procedureReference);
+                if (result == null) result = caseENamedElement(procedureReference);
+                if (result == null) result = caseEModelElement(procedureReference);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLQueryModelPackage.TABLE_QUERY_LATERAL: {
+                TableQueryLateral tableQueryLateral = (TableQueryLateral)theEObject;
+                Object result = caseTableQueryLateral(tableQueryLateral);
+                if (result == null) result = caseTableExpression(tableQueryLateral);
+                if (result == null) result = caseTableReference(tableQueryLateral);
+                if (result == null) result = caseSQLQueryObject(tableQueryLateral);
+                if (result == null) result = caseSQLObject(tableQueryLateral);
+                if (result == null) result = caseENamedElement(tableQueryLateral);
+                if (result == null) result = caseEModelElement(tableQueryLateral);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            default: return defaultCase(theEObject);
+        }
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Query Statement</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Query Statement</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseQueryStatement(QueryStatement object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Query Delete Statement</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Query Delete Statement</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseQueryDeleteStatement(QueryDeleteStatement object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Query Insert Statement</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Query Insert Statement</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseQueryInsertStatement(QueryInsertStatement object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Query Select Statement</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Query Select Statement</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseQuerySelectStatement(QuerySelectStatement object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Query Update Statement</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Query Update Statement</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseQueryUpdateStatement(QueryUpdateStatement object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Update Assignment Expression</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Update Assignment Expression</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseUpdateAssignmentExpression(UpdateAssignmentExpression object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Cursor Reference</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Cursor Reference</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseCursorReference(CursorReference object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Query Search Condition</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Query Search Condition</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseQuerySearchCondition(QuerySearchCondition object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Query Expression Body</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Query Expression Body</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseQueryExpressionBody(QueryExpressionBody object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Query Value Expression</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Query Value Expression</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseQueryValueExpression(QueryValueExpression object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Query Expression Root</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Query Expression Root</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseQueryExpressionRoot(QueryExpressionRoot object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Values Row</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Values Row</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseValuesRow(ValuesRow object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Query Values</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Query Values</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseQueryValues(QueryValues object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Table Reference</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Table Reference</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseTableReference(TableReference object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Table Expression</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Table Expression</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseTableExpression(TableExpression object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Table Joined</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Table Joined</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseTableJoined(TableJoined object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>With Table Specification</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>With Table Specification</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseWithTableSpecification(WithTableSpecification object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Predicate</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Predicate</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object casePredicate(Predicate object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Search Condition Combined</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Search Condition Combined</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseSearchConditionCombined(SearchConditionCombined object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Order By Value Expression</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Order By Value Expression</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseOrderByValueExpression(OrderByValueExpression object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Query Combined</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Query Combined</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseQueryCombined(QueryCombined object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Query Select</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Query Select</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseQuerySelect(QuerySelect object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Grouping Specification</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Grouping Specification</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseGroupingSpecification(GroupingSpecification object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Query Result Specification</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Query Result Specification</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseQueryResultSpecification(QueryResultSpecification object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Result Table All Columns</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Result Table All Columns</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseResultTableAllColumns(ResultTableAllColumns object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Result Column</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Result Column</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseResultColumn(ResultColumn object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Predicate Basic</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Predicate Basic</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object casePredicateBasic(PredicateBasic object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Predicate Quantified</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Predicate Quantified</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object casePredicateQuantified(PredicateQuantified object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Predicate Between</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Predicate Between</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object casePredicateBetween(PredicateBetween object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Predicate Exists</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Predicate Exists</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object casePredicateExists(PredicateExists object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Predicate In</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Predicate In</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object casePredicateIn(PredicateIn object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Predicate Like</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Predicate Like</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object casePredicateLike(PredicateLike object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Predicate Is Null</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Predicate Is Null</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object casePredicateIsNull(PredicateIsNull object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Predicate Quantified Value Select</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Predicate Quantified Value Select</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object casePredicateQuantifiedValueSelect(PredicateQuantifiedValueSelect object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Predicate Quantified Row Select</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Predicate Quantified Row Select</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object casePredicateQuantifiedRowSelect(PredicateQuantifiedRowSelect object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Predicate In Value Select</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Predicate In Value Select</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object casePredicateInValueSelect(PredicateInValueSelect object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Predicate In Value List</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Predicate In Value List</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object casePredicateInValueList(PredicateInValueList object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Predicate In Value Row Select</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Predicate In Value Row Select</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object casePredicateInValueRowSelect(PredicateInValueRowSelect object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Value Expression Simple</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Value Expression Simple</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseValueExpressionSimple(ValueExpressionSimple object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Value Expression Column</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Value Expression Column</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseValueExpressionColumn(ValueExpressionColumn object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Value Expression Variable</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Value Expression Variable</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseValueExpressionVariable(ValueExpressionVariable object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Value Expression Scalar Select</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Value Expression Scalar Select</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseValueExpressionScalarSelect(ValueExpressionScalarSelect object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Value Expression Labeled Duration</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Value Expression Labeled Duration</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseValueExpressionLabeledDuration(ValueExpressionLabeledDuration object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Value Expression Case</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Value Expression Case</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseValueExpressionCase(ValueExpressionCase object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Value Expression Cast</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Value Expression Cast</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseValueExpressionCast(ValueExpressionCast object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Value Expression Null Value</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Value Expression Null Value</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseValueExpressionNullValue(ValueExpressionNullValue object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Value Expression Default Value</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Value Expression Default Value</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseValueExpressionDefaultValue(ValueExpressionDefaultValue object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Value Expression Function</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Value Expression Function</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseValueExpressionFunction(ValueExpressionFunction object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Value Expression Combined</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Value Expression Combined</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseValueExpressionCombined(ValueExpressionCombined object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Grouping Sets</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Grouping Sets</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseGroupingSets(GroupingSets object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Grouping</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Grouping</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseGrouping(Grouping object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Grouping Sets Element</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Grouping Sets Element</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseGroupingSetsElement(GroupingSetsElement object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Grouping Sets Element Sublist</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Grouping Sets Element Sublist</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseGroupingSetsElementSublist(GroupingSetsElementSublist object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Grouping Sets Element Expression</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Grouping Sets Element Expression</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseGroupingSetsElementExpression(GroupingSetsElementExpression object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Super Group</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Super Group</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseSuperGroup(SuperGroup object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Grouping Expression</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Grouping Expression</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseGroupingExpression(GroupingExpression object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Super Group Element</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Super Group Element</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseSuperGroupElement(SuperGroupElement object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Super Group Element Sublist</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Super Group Element Sublist</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseSuperGroupElementSublist(SuperGroupElementSublist object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Super Group Element Expression</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Super Group Element Expression</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseSuperGroupElementExpression(SuperGroupElementExpression object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Value Expression Case Search</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Value Expression Case Search</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseValueExpressionCaseSearch(ValueExpressionCaseSearch object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Value Expression Case Simple</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Value Expression Case Simple</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseValueExpressionCaseSimple(ValueExpressionCaseSimple object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Value Expression Case Else</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Value Expression Case Else</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseValueExpressionCaseElse(ValueExpressionCaseElse object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Value Expression Case Search Content</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Value Expression Case Search Content</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseValueExpressionCaseSearchContent(ValueExpressionCaseSearchContent object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Value Expression Case Simple Content</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Value Expression Case Simple Content</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseValueExpressionCaseSimpleContent(ValueExpressionCaseSimpleContent object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Table In Database</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Table In Database</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseTableInDatabase(TableInDatabase object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Table Function</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Table Function</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseTableFunction(TableFunction object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>SQL Query Object</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>SQL Query Object</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseSQLQueryObject(SQLQueryObject object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Query Change Statement</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Query Change Statement</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseQueryChangeStatement(QueryChangeStatement object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Column Name</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Column Name</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseColumnName(ColumnName object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Table Nested</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Table Nested</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseTableNested(TableNested object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Query Merge Statement</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Query Merge Statement</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseQueryMergeStatement(QueryMergeStatement object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Search Condition Nested</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Search Condition Nested</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseSearchConditionNested(SearchConditionNested object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Value Expression Nested</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Value Expression Nested</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseValueExpressionNested(ValueExpressionNested object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Value Expression Atomic</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Value Expression Atomic</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseValueExpressionAtomic(ValueExpressionAtomic object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Order By Specification</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Order By Specification</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseOrderBySpecification(OrderBySpecification object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Order By Ordinal</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Order By Ordinal</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseOrderByOrdinal(OrderByOrdinal object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Table Correlation</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Table Correlation</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseTableCorrelation(TableCorrelation object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Update Source</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Update Source</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseUpdateSource(UpdateSource object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Update Source Expr List</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Update Source Expr List</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseUpdateSourceExprList(UpdateSourceExprList object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Update Source Query</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Update Source Query</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseUpdateSourceQuery(UpdateSourceQuery object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Order By Result Column</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Order By Result Column</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseOrderByResultColumn(OrderByResultColumn object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>With Table Reference</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>With Table Reference</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseWithTableReference(WithTableReference object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Query Nested</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Query Nested</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseQueryNested(QueryNested object) {
+        return null;
+    }
+
+    /**
+     * Returns the result of interpreting the object as an instance of '<em>Value Expression Row</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Value Expression Row</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseValueExpressionRow(ValueExpressionRow object) {
+        return null;
+    }
+
+    /**
+     * Returns the result of interpreting the object as an instance of '<em>Merge Target Table</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Merge Target Table</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseMergeTargetTable(MergeTargetTable object) {
+        return null;
+    }
+
+    /**
+     * Returns the result of interpreting the object as an instance of '<em>Merge Source Table</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Merge Source Table</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseMergeSourceTable(MergeSourceTable object) {
+        return null;
+    }
+
+    /**
+     * Returns the result of interpreting the object as an instance of '<em>Merge On Condition</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Merge On Condition</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseMergeOnCondition(MergeOnCondition object) {
+        return null;
+    }
+
+    /**
+     * Returns the result of interpreting the object as an instance of '<em>Merge Update Specification</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Merge Update Specification</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseMergeUpdateSpecification(MergeUpdateSpecification object) {
+        return null;
+    }
+
+    /**
+     * Returns the result of interpreting the object as an instance of '<em>Merge Insert Specification</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Merge Insert Specification</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseMergeInsertSpecification(MergeInsertSpecification object) {
+        return null;
+    }
+
+    /**
+     * Returns the result of interpreting the object as an instance of '<em>Merge Operation Specification</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Merge Operation Specification</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseMergeOperationSpecification(MergeOperationSpecification object) {
+        return null;
+    }
+
+    /**
+     * Returns the result of interpreting the object as an instance of '<em>Update Of Column</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Update Of Column</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseUpdateOfColumn(UpdateOfColumn object) {
+        return null;
+    }
+
+    /**
+     * Returns the result of interpreting the object as an instance of '<em>Updatability Expression</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Updatability Expression</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseUpdatabilityExpression(UpdatabilityExpression object) {
+        return null;
+    }
+
+    /**
+     * Returns the result of interpreting the object as an instance of '<em>Call Statement</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Call Statement</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseCallStatement(CallStatement object) {
+        return null;
+    }
+
+    /**
+     * Returns the result of interpreting the object as an instance of '<em>Procedure Reference</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Procedure Reference</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseProcedureReference(ProcedureReference object) {
+        return null;
+    }
+
+    /**
+     * Returns the result of interpreting the object as an instance of '<em>Table Query Lateral</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Table Query Lateral</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseTableQueryLateral(TableQueryLateral object) {
+        return null;
+    }
+
+    /**
+     * Returns the result of interpreting the object as an instance of '<em>EModel Element</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>EModel Element</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseEModelElement(EModelElement object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>ENamed Element</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>ENamed Element</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseENamedElement(ENamedElement object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>SQL Object</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>SQL Object</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseSQLObject(SQLObject object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>SQL Statement</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>SQL Statement</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseSQLStatement(SQLStatement object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>SQL Data Statement</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>SQL Data Statement</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseSQLDataStatement(SQLDataStatement object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>SQL Data Change Statement</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>SQL Data Change Statement</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseSQLDataChangeStatement(SQLDataChangeStatement object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Search Condition</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Search Condition</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseSearchCondition(SearchCondition object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Value Expression</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Value Expression</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseValueExpression(ValueExpression object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Query Expression</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Query Expression</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseQueryExpression(QueryExpression object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>SQL Control Statement</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>SQL Control Statement</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseSQLControlStatement(SQLControlStatement object) {
+        return null;
+    }
+
+    /**
+     * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch, but this is the last case anyway.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+     * @generated
+     */
+    public Object defaultCase(EObject object) {
+        return null;
+    }
+
+} //SQLQuerySwitch
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLQueryMultisetDataType.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLQueryMultisetDataType.java
new file mode 100644
index 0000000..915c20d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLQueryMultisetDataType.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.query.util;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.MultisetDataType;
+
+/**
+ * The SQL Model SQLDataTypesFactory class does not provide a method to create a MultisetDataType,
+ * and the constructor of MultisetDataTypeImpl is protected, so we need to provide our own interface 
+ * Impl class so that the SQL Query Parser Factor can create them and the SQL Query Source Writer
+ * can generate SQL for them.
+ * <p>
+ * This interface and Impl class can be removed if the SQL Model is changed to provide the
+ * factory method.
+ */
+public interface SQLQueryMultisetDataType extends MultisetDataType {
+    // nothing needed here
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLQueryMultisetDataTypeImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLQueryMultisetDataTypeImpl.java
new file mode 100644
index 0000000..59027a2
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLQueryMultisetDataTypeImpl.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.query.util;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.impl.MultisetDataTypeImpl;
+
+/**
+ * The SQL Model SQLDataTypesFactory class does not provide a method to create an ArrayDataType,
+ * and the constructor of ArrayDataTypeImpl is protected, so we need to provide our own interface 
+ * Impl class so that the SQL Query Parser Factor can create them and the SQL Query Source Writer
+ * can generate SQL for them.
+ * <p>
+ * This interface and Impl class can be removed if the SQL Model is changed to provide the
+ * factory method.
+ */
+public class SQLQueryMultisetDataTypeImpl extends MultisetDataTypeImpl implements SQLQueryMultisetDataType {
+    public SQLQueryMultisetDataTypeImpl() {
+        super();
+    }
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLQuerySourceBuffer.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLQuerySourceBuffer.java
new file mode 100644
index 0000000..56c016d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLQuerySourceBuffer.java
@@ -0,0 +1,1117 @@
+/*******************************************************************************
+ * Copyright (c) 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.query.util;
+
+import java.text.CharacterIterator;
+import java.util.ArrayList;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryObject;
+
+import com.ibm.icu.text.StringCharacterIterator;
+
+
+
+/**
+ * @author ckadner
+ *
+ * TODO To change the template for this generated type comment go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+public class SQLQuerySourceBuffer
+{
+    // have original source analyzer or a SQL indentation and linewraaping format (from some preference page)
+    // spaces before certain operators and parens,  line breaks befor certain keyword (always,conditionally), indent, 
+    // line length, ... see Java code prefernce and how its export format stores the stuff
+    
+    
+    
+    // concept of this clas
+    //
+    
+private static final char TAB = '\t';
+    private boolean preserveFormatting = false;
+
+    private String originalSource = null;
+    private String originalSourceUC = null;
+//    private String originalSourceTrimmedUC = null; // trimmed upper case
+//    private int[] originalSrcTrimmedIndexToOriginalSrcIndex = null; //init as virtualIndexToStringRefernces
+    private StringBuffer generatedSource = null;
+    private int[] originalSourceCharStatus = null;
+
+    private String delimitedIdentQt = "\"";
+
+
+    
+    StringBuffer[] bucketArray = null; // initialized as long as original src
+
+    int indexOffset = 0;
+    int scopeStartIndex = 0;
+    int scopeEndIndex = 0;
+    
+    private static final int SOURCE_CHAR_STATUS_WRITTEN = 1;
+    private static final int SOURCE_CHAR_STATUS_UNWRITTEN = 0;
+    private static final int SOURCE_CHAR_STATUS_WHITESPACE = 2;
+    //private static final int SOURCE_CHAR_STATUS_IN_COMMENT = 3;
+
+    /** the index in the originalSource that is the next insert point or the
+     *  position of the bucket element w/ index 1 to be inserted and the
+     *  position after the last char of the bucket element w/ index 0 */
+    private int currentIndex = 0; 
+
+    /** element at index 0 is the part that is in sync with the origin */
+//    private ArrayList bucket = null;
+
+//    private String[] virtualIndexToStringReferences = null; // init w/ double the size of originalSource, increase capacity on demand/append
+//    private int[] virtualIndexToStringReferenceOffset = null; //init as virtualIndexToStringRefernces
+
+
+
+    /** char constant for the new line character, value: 'rn' */
+    private static final char CARRIAGE_RETURN = '\r';
+    
+    /** char constant for the new line character, value: '\n' */
+    protected static final char NEW_LINE  = SQLQuerySourceWriter.NEW_LINE;
+    
+    /** char constant, value: ' ' */
+    protected static final char SPACE     = SQLQuerySourceWriter.SPACE;
+
+    /** char constant, value: ',' */
+    protected static final char COMMA     = SQLQuerySourceWriter.COMMA;
+
+
+
+    /** char constant, value: ')' */
+    private static final char PAREN_RIGHT             = ')';
+
+    /** char constant, value: '(' */
+    private static final char PAREN_LEFT              = '(';
+
+    /**
+     * String constant, value: "="
+     */
+    private final static char EQUAL                   = '=';
+
+    /**
+     * String constant, value: " <"
+     */
+    private final static char LESS_THAN               = '<';
+
+    /**
+     * char constant, value: '>'
+     */
+    private final static char GREATER_THAN            = '>';
+
+    /**
+     * char constant, value: '+'
+     */
+    private final static char PLUS                    = '+';
+
+    /**
+     * char constant, value: '-'
+     */
+    private final static char MINUS                   = '-';
+
+    /**
+     * char constant, value: '*'
+     */
+    private final static char MULTIPLY                = '*';
+
+    /**
+     * char constant, value: '/'
+     */
+    private final static char DIVIDE                  = '/';
+
+    /** TODO: concat is two chars!!
+     * String constant, value: '|'
+     */
+    private final static char CONCATENATE             = '|';
+
+
+    /** String constant, value: ':' */
+    private final static char COLON                   = ':';
+
+    /** String constant, value: ';' */
+    private final static char SEMICOLON               = ';';
+
+    char[] sqlSeparators = new char[] {
+                    NEW_LINE,
+                    SPACE,
+                    COMMA,
+                    PAREN_RIGHT,
+                    PAREN_LEFT,
+                    EQUAL,
+                    LESS_THAN,
+                    GREATER_THAN,
+                    PLUS,
+                    MINUS,
+                    MULTIPLY,
+                    DIVIDE,
+                    CONCATENATE,
+//                    COLON,
+                    SEMICOLON
+                    };
+
+    /**
+     * @param originalSource
+     */
+    protected SQLQuerySourceBuffer(String originalSource)
+    {
+        this.originalSource = originalSource;
+        this.originalSourceUC = originalSource.toUpperCase();
+        //this.originalSourceCharStatus = classifySQLCharacterIndices(originalSource);
+//        this.virtualIndexToStringReferences = new String[originalSource.length()];
+//        this.virtualIndexToStringReferenceOffset = new int[originalSource.length()];
+
+        this.bucketArray = new StringBuffer[originalSource.length()];
+        
+//        this.stripOriginalSourceCommentsAndBlanks_makeUpperCase_createIndexMapping();
+        
+        if (originalSource != null && originalSource.length() > 0) {
+            preserveFormatting = true;
+            
+        }
+        this.scopeEndIndex = originalSource.length()-1;
+    }
+
+    /**
+     * @param originalSource
+     */
+    protected SQLQuerySourceBuffer(SQLQuerySourceInfo originalSourceInfo)
+    {
+        this(originalSourceInfo.getSourceSnippet());
+        this.indexOffset = originalSourceInfo.getSpanStartOffset();
+        char delimIdQtChar = originalSourceInfo.getSqlFormat().getDelimitedIdentifierQuote();
+        this.delimitedIdentQt = String.valueOf(delimIdQtChar);
+    }
+
+    protected SQLQuerySourceBuffer()
+    {
+        this.originalSource = null;
+        this.preserveFormatting = false;
+        generatedSource = new StringBuffer();
+    }
+
+    protected void setScope(int start, int end) {
+        this.scopeStartIndex = start-indexOffset;
+        this.scopeEndIndex = end-indexOffset;
+        
+        if (currentIndex < this.scopeStartIndex) {
+            currentIndex = this.scopeStartIndex;
+        }
+    }
+
+    protected void setScope(SQLQuerySourceInfo sourceInfo) {
+        this.scopeStartIndex = sourceInfo.getSpanStartOffset() - indexOffset;
+        this.scopeEndIndex = sourceInfo.getSpanEndOffset() - indexOffset;
+        
+//        if (currentIndex < this.scopeStartIndex) {
+            currentIndex = this.scopeStartIndex;
+//        }
+    }
+
+    /**
+     * @param sql
+     * @return
+     */
+    public SQLQuerySourceBuffer append(String sql)
+    {
+        if (!preserveFormatting) {
+            generatedSource.append(sql);
+            return this;
+        }
+
+        if (sql != null && sql.length() > 0)
+        {
+            if (sql.length() == 1) {
+                return append(sql.charAt(0),false);
+            }
+        
+            // cut the String into pieces according to space or line break, commas,
+            // get all words or separators by them self
+//            ArrayList toAppend = splitSQL(sql, sqlSeparators);
+//            bucket.addAll(toAppend);
+        
+            
+        
+        
+        }
+
+        return this;
+    }
+
+    
+    /**
+     * @param keyword
+     * @param optional
+     * @param ignoreCase
+     * @return
+     */
+    public SQLQuerySourceBuffer appendKeyword(String keyword, boolean optional)
+    {
+        return appendWord(keyword, optional, true);
+    }
+    
+    /**
+     * @param ident
+     * @param optional
+     * @param ignoreCase
+     * @return
+     */
+    public SQLQuerySourceBuffer appendIdentifier(String ident)
+    {
+        boolean caseSensitive = ident.startsWith(delimitedIdentQt); 
+        return appendWord(ident, false, !caseSensitive);
+    }
+    
+    
+    /**
+     * @param word
+     * @param optional
+     * @param ignoreCase
+     * @return
+     */
+    public SQLQuerySourceBuffer appendWord(String word, boolean optional, boolean ignoreCase)
+    {
+        if (!preserveFormatting) {
+            generatedSource.append(word);
+            return this;
+        }
+
+        if (word != null && word.length() > 0)
+        {
+            char c = Character.toUpperCase(word.charAt(0));
+            int startedFromIndex = currentIndex;
+//            String sqlKeywordUC = sqlKeyword.toUpperCase();
+            int wordLength = word.length();
+
+            
+            if (currentIndex > scopeEndIndex) {
+                addToBucket(word);
+                return this;
+            }
+            
+            if (isWhiteSpace(originalSource.charAt(currentIndex))
+                    && (isWhiteSpace(originalSource.charAt(currentIndex-1))
+                            || isSeparator(originalSource.charAt(currentIndex-1))))
+            {
+                skipWhiteSpace();
+            }
+            
+            
+            if (c == originalSourceUC.charAt(currentIndex))
+            {
+                if (originalSourceUC.regionMatches(ignoreCase,currentIndex,word,0,wordLength))
+                {
+                    currentIndex += wordLength;
+                    updateOriginalSourceCharStatus(startedFromIndex, currentIndex, SOURCE_CHAR_STATUS_WRITTEN);
+                }
+            }
+            else
+            {
+                // TODO: what about the skipped whitespaces?
+                if (!optional) {
+                    addToBucket(word);
+                }
+            }
+        
+        
+        }
+
+        return this;
+    }
+
+
+    
+    /**
+     * @param startIndex
+     * @param endIndex included!
+     * @param sourceCharStatus {@link #SOURCE_CHAR_STATUS_UNWRITTEN},
+     *        {@link #SOURCE_CHAR_STATUS_WRITTEN}, or
+     *        {@link #SOURCE_CHAR_STATUS_WHITESPACE}
+     */
+    private void updateOriginalSourceCharStatus(int startIndex, int endIndex, int sourceCharStatus) {
+        if (startIndex > -1 && endIndex < originalSource.length()) {
+            for (int i = startIndex; i < endIndex + 1; i++) {
+                originalSourceCharStatus[i] = sourceCharStatus;
+            }
+        }
+    }
+
+    /**
+     * @param c
+     * @return
+     */
+    public SQLQuerySourceBuffer append(char c)
+    {
+        return append(c, false);
+    }
+
+    /**
+     * @param c
+     * @return
+     */
+    public SQLQuerySourceBuffer appendOptional(char c)
+    {
+        return append(c, true);
+    }
+
+    
+    
+    /**
+     * @param c
+     * @param optional
+     * @return
+     */
+    private SQLQuerySourceBuffer append(char c, boolean optional)
+    {
+        if (!preserveFormatting) {
+            generatedSource.append(c);
+            return this;
+        }
+        
+        
+        
+        // does it match? not?
+        //   not? 
+        //     is it optional?
+        //       yes (space) -> ignore
+        //       not, skip spaces in orig to next relevant,
+        //         match?
+        //           no -> bucket
+        
+        
+        // irrelevant keywords AS (not always), parens   SourceBuffer.addOptionalKeyword(String), #addOptional(char), addOptionalWhiteSpace
+        
+        
+        // insert into tab(col1,col2)
+        // INSERT INTO TAB (COL1, COL2)    check for optional/did we have a space/separator?->skip or put in bucket, check later if bucket is necessary, skip space
+        //                ^
+        // insert into tab (col1,col2)
+        // INSERT INTO TAB(COL1, COL2)     check if current insert is a separator (),+-/*  skip spaces in orig then
+        //                ^
+        // insert into tab (col1,col2)
+        // INSERT INTO TAB\n   (COL1, COL2)    bucketize whitespaces along with eventual new stuff to come   
+        //                ^
+        // insert into tab (col1,col2)
+        // INSERT INTO TAB(COL1, COL2)     is insert a separator skip underlying orig space
+        //                ^
+        // insert into tab  (col1,col2)
+        // INSERT INTO TAB (COL1, COL2)    is insert a separator or did we have a whitespace before then skip orig whitespace
+        //                 ^
+        
+        // test changed source
+        // select * from tab as t1
+        // select * from tabas t1
+
+        // test source
+        // select * from tab as t
+
+        if (currentIndex > scopeEndIndex) {
+            addToBucket(c);
+        }
+        else if (c == originalSource.charAt(currentIndex))
+        {
+            originalSourceCharStatus[currentIndex] = SOURCE_CHAR_STATUS_WRITTEN;
+            currentIndex++;
+        }
+        else
+        {
+            if (isWhiteSpace(c))
+            {
+                if (!optional) addToBucket(c);
+                
+                if (isWhiteSpace(originalSource.charAt(currentIndex))) {
+                    // don't update originalSourceCharStatus! we skiped WS and kept the new one in bucket
+                    currentIndex++;
+                }
+            }
+            else if (isWhiteSpace(originalSource.charAt(currentIndex))
+                    && (isWhiteSpace(originalSource.charAt(currentIndex-1))
+                            || isSeparator(originalSource.charAt(currentIndex-1))))
+            {
+                skipWhiteSpace();
+                
+                if (c == originalSource.charAt(currentIndex)) {
+                    originalSourceCharStatus[currentIndex] = SOURCE_CHAR_STATUS_WRITTEN;
+                    currentIndex++;
+                } else {
+                    if (!optional) addToBucket(c);
+                }
+            } else
+            {
+                if (!optional) addToBucket(c);
+            }
+        }
+        return this;
+    }
+
+
+
+    /**
+     * 
+     */
+    private void skipWhiteSpace() {
+        while (isWhiteSpace(originalSource.charAt(currentIndex))) {
+            originalSourceCharStatus[currentIndex] = SOURCE_CHAR_STATUS_WHITESPACE;
+            currentIndex++;
+        }
+        
+    }
+
+    /**
+     * @param c
+     */
+    private void addToBucket(char c) {
+        StringBuffer bucket = getBucket(currentIndex);
+        bucket.append(c);
+    }
+
+    /**
+     * @param string
+     */
+    private void addToBucket(String string) {
+        StringBuffer bucket = getBucket(currentIndex);
+        bucket.append(string);
+    }
+
+    /**
+     * @return
+     */
+    private StringBuffer getBucket(int position) {
+        if (bucketArray[position] == null) {
+            bucketArray[position] = new StringBuffer();
+        }
+        StringBuffer bucket = bucketArray[position];
+        return bucket;
+    }
+
+    /**
+     * @param c
+     * @return
+     */
+    private boolean isSeparator(char c) {
+        if (isWhiteSpace(c) || isOperator(c) || c == COMMA
+                || c == PAREN_LEFT || c == PAREN_RIGHT) {
+            return true;
+        }
+        
+        return false;
+    }
+
+    /**
+     * @param c
+     * @return
+     */
+    private boolean isOperator(char c) {
+        if (c == PLUS || c == MINUS || c == MULTIPLY || c == DIVIDE) {
+            return true;
+        }
+        if (c == LESS_THAN || c == GREATER_THAN || c == EQUAL) {
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * @param c
+     * @return
+     */
+    private boolean isWhiteSpace(char c) {
+        if (c == SPACE || c == NEW_LINE || c == CARRIAGE_RETURN || c == TAB) {
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * @param sql
+     * @param sqlSeparators
+     * @return
+     */
+    private ArrayList splitSQL(String sql, char[] sqlSeparators)
+    {
+        // String.split() doesn't work for us, cause we need the separator itself, too
+        ArrayList splitSQL = new ArrayList();
+        
+        int lastSplitIndex = 0;
+        for (int i = 0; i < sql.length(); i++)
+        {
+            char c = sql.charAt(i);
+            
+            // TODO: optimize splitSQL, compare char ranges instead of single chars,
+            //       but think of special char-identifier constellation like ":VARIABLE"
+            //if (!(c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c == '.' || c == '_')) {
+            
+            for (int si = 0; si < sqlSeparators.length; si++)
+            {
+                char s = sqlSeparators[si];
+                
+                if (c == s) {
+                    String split = sql.substring(lastSplitIndex, i);
+                    String separator = String.valueOf(c);
+                    splitSQL.add(split);
+                    splitSQL.add(separator);
+                    lastSplitIndex = i+1;
+                }
+                
+            }
+        }
+
+        if (lastSplitIndex < sql.length()) {
+            String lastSplitSegment = sql.substring(lastSplitIndex);
+            splitSQL.add(lastSplitSegment);
+        }
+        
+        
+        return splitSQL;
+    }
+    
+    
+    
+    
+    /**
+     * @return
+     */
+    public int length()
+    {
+        if (!preserveFormatting) {
+            return generatedSource.length();
+        } else {
+            return toString().length();
+//             throw new UnsupportedOperationException(" length() not yet implemented in "+this.getClass().getName());
+//             // means we have to do something like resolving with states we keep once we resolved it
+        }
+    }
+    
+    /**
+     * @param start
+     * @param end
+     * @param str
+     * @return
+     */
+    public SQLQuerySourceBuffer replace(int start, int end, String str)
+    {
+        if (!preserveFormatting) {
+            generatedSource.replace(start, end, str);
+        } else {
+            throw new UnsupportedOperationException(" replace(int, int, String) not implemented in "+this.getClass().getName());
+            // means we have to do something like resolving with states we keep once we resolved it
+        }
+        return this;
+    }
+    
+    
+    /** returns a rather expensive snapshot of this SourceBuffer's content
+     *  (non-Javadoc)
+     * @see java.lang.Object#toString()
+     */
+    public String toString()
+    {
+        if (!preserveFormatting) {
+            return generatedSource.toString();
+        }
+        
+        StringBuffer updatedSource = new StringBuffer(currentIndex+1);
+        
+        for (int i = 0; i < updatedSource.length(); i++) {
+            
+            if (bucketArray[i] != null && !isWhiteSpaceOnly(bucketArray[i])) {
+                updatedSource.append(bucketArray[i]);
+            }
+            
+            if (originalSourceCharStatus[i] != SOURCE_CHAR_STATUS_UNWRITTEN) {
+                updatedSource.append(originalSource.charAt(i));
+            }
+            
+            
+        }
+        
+    
+    
+ 
+    
+
+        
+//        int[] originalSrcUpdateStatus = new int[originalSourceTrimmedUC.length()];
+        
+        // lastchar whitespace? no lookahead search for whitespace
+//        while (bucket.size() > 1)
+        
+            // go through bucket, find element that 
+            
+/* some test scenarios...
+ 
+ORIGINAL SOURCE: 
+  select col1,
+            case 
+             when col2-col1 < 15 then col2
+             when col2-col1 > 15 then col3
+             else col2-col1
+            end
+    from table1;            
+
+GENERATED SOURCE:            
+  SELECT COL1, COL2-COL1
+    FROM TABLE1          
+    WHERE (CASE 
+             WHEN COL2-COL1 < 15 THEN COL2
+             WHEN COL2-COL1 > 15 THEN COL3
+           END) > 15;
+
+EXPECTED RESULT:       
+  select col1, COL2-COL1
+    from table1;            
+    WHERE (CASE 
+             WHEN COL2-COL1 < 15 THEN COL2
+             WHEN COL2-COL1 > 15 THEN COL3
+           END) > 15;
+  
+HOW TO GET THERE (HOW NOT TO):            
+
+  select col1, case when col2-col1 < 15 then col2 when col2-col1 > 15 then col3 else col2-col1 end from table1;            
+  SELECT COL1, ^
+               COL2
+               -
+               COL1
+               FROM
+               TABLE1          
+               WHERE 
+               (
+               CASE 
+               WHEN
+               COL2
+               -
+               COL1
+               <
+               15
+               THEN
+               COL2
+               WHEN
+               COL2
+               -
+               COL1
+               >
+               15
+               THEN
+               COL3
+               END
+               )
+               >
+               15
+               ;
+
+
+szenario 1: (close to goal) high distance not considered to be likely from program point of view
+            what a mess if we would allow fill ups (mess up order)
+
+  select col1, case when col2-col1 < 15 then col2 when col2-col1 > 15 then col3 else col2-col1 end from table1;            
+  SELECT COL1,           COL2-COL1                                                                 FROM TABLE1 ^         
+                                                                                                               WHERE 
+                                                                                                               (
+                                                                                                               CASE 
+                                                                                                               WHEN
+                                                                                                               COL2
+                                                                                                               -
+                                                                                                               COL1
+                                                                                                               <
+                                                                                                               15
+                                                                                                               THEN
+                                                                                                               COL2
+                                                                                                               WHEN
+                                                                                                               COL2
+                                                                                                               -
+                                                                                                               COL1
+                                                                                                               >
+                                                                                                               15
+                                                                                                               THEN
+                                                                                                               COL3
+                                                                                                               END
+                                                                                                               )
+                                                                                                               >
+                                                                                                               15
+                                                                                                               ;
+                                                                                                               
+  -->
+  select col1, col2-col1 from table1 WHERE (CASE WHEN COL2-COL1 < 15 THEN COL2 WHEN COL2-COL1 > 15 THEN COL3 END) > 15;
+  ~~~~~~~~~~~~~!!!!!!!!!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+szenario 2:
+
+  select col1, case when col2-col1 < 15 then col2 when col2-col1 > 15 then col3 else col2-col1 end from table1;            
+  SELECT COL1, CASE WHEN COL2-COL1 < 15 THEN COL2 WHEN COL2-COL1 > 15 THEN COL3                END
+               ^                                                                                   ^
+               COL2                                                                                   )
+               -                                                                                   >
+               COL1                                                                                   15
+               FROM                                                                                   ;
+               TABLE1          
+               WHERE 
+               (
+               
+
+  -->
+  select col1, COL2-COL1 FROM TABLE1 WHERE (case when col2-col1 < 15 then col2 when col2-col1 > 15 then col3 end )>15;            
+  ~~~~~~~~~~~~~~~~~~~~~~~!!!!!!!!!!!~~~~~~~~!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!~~~~
+  
+  
+szenario 3: (goal) high distance not considered to be likely from program point of view
+
+  select col1, case when col2-col1 < 15 then col2 when col2-col1 > 15 then col3 else col2-col1 end from table1;            
+  SELECT COL1,                                                                                     FROM TABLE1
+                 ^                                                                                               ^         
+               COL2                                                                                               WHERE 
+               -                                                                                               (
+               COL1                                                                                               CASE 
+                                                                                                               WHEN
+                                                                                                               COL2
+                                                                                                               -
+                                                                                                               COL1
+                                                                                                               <
+                                                                                                               15
+                                                                                                               THEN
+                                                                                                               COL2
+                                                                                                               WHEN
+                                                                                                               COL2
+                                                                                                               -
+                                                                                                               COL1
+                                                                                                               >
+                                                                                                               15
+                                                                                                               THEN
+                                                                                                               COL3
+                                                                                                               END
+                                                                                                               )
+                                                                                                               >
+                                                                                                               15
+                                                                                                               ;
+                                                                                                               
+  -->
+  select col1, COL2-COL1 from table1 WHERE (CASE WHEN COL2-COL1 < 15 THEN COL2 WHEN COL2-COL1 > 15 THEN COL3 END) > 15;
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+  mmmh I could check for the element types and instance that both 
+  originalSrcSpan and generatedSrcSpan we're in and only overwrite/cover/match 
+  if we're in the exact same element (in the general appendSQL(QuerObject) 
+  we can set the parent type beginning index before we make the call to 
+  appendSQL(child) and after the call we set the end after invoking the 
+  appendSQL(child) plus we can set the original span(top-down!!!) and - think of
+  column ref - same parent)
+  ...we can rather know the element that is writing (child), so before calling appendSQL(child) in appendSQL(SQLQueryObject)
+  set the current writer in the SQLQuerySourceBuffer and unset it after calling appendSQL(child)
+  so in the SourceBuffer there is an List of current writer, current writers parent, current writers grandpa,...
+  if the current writer has no Span, it is new and stays in bucket (no attempts to match original)
+  if current writer has span and we run out of bounds, bucket it
+  ...try to match only within the current Span
+  ...try to match/write immediately, if something doesn't match bucket it up
+  write (also from bucket) when current writer is done or a child (with a span)
+  starts writing, cause we will need his(current/parent) span
+  ...when writing from bucket try to fit one of all the succeeding bucket elements
+  in the first position after buckets index (try to find out if we have a 
+  new SQL element (the bucket elements  till the one element we fit in the first
+  position after bucket)) - the succeeding bucket elements must fit after that and after ...
+  if not fit - try starting with first bucket element, to find the nearest match
+  within the span and then try to append the succeeding bucket elements
+  - if no way either - keep bucket until end
+  
+  ...why the SQLQuerySourceBuffer: no new String construction on .append(String)
+            
+*/         
+        
+        return updatedSource.toString();
+    }
+    
+    /**
+     * @param buffer
+     * @return
+     */
+    private boolean isWhiteSpaceOnly(StringBuffer buffer) {
+        boolean foundNonWhiteSpace = false;
+        if (buffer != null) {
+            for (int i = 0; i < buffer.length(); i++) {
+                if (!isWhiteSpace(buffer.charAt(i))) {
+                    foundNonWhiteSpace = true;
+                    break;
+                }
+            }
+        }
+        return foundNonWhiteSpace == false;
+    }
+
+    /** updates the given int[] with the given value from the index begin to the
+     * index end-1 
+     * @param toBeUpdated
+     * @param begin
+     * @param end
+     * @param value
+     */
+    private void updateIntArray(int[] toBeUpdated, int begin, int end, int value) {
+        if (end > begin && toBeUpdated.length >= end && begin >= 0) {
+            
+            for (int i = begin; i < end; i++)
+            {
+                toBeUpdated[i] = value;
+                
+            }
+        }
+    }
+
+/*    *//**
+     * @see #indexOfFirstRelevantCharacterInOriginalSource(int)
+     *//*
+    private int indexOfFirstRelevantCharacterInOriginalSource()
+    {
+        return indexOfFirstRelevantCharacterInOriginalSource(0);
+    }
+
+    *//**
+     * @param fromIndex
+     * @return
+     *//*
+    private int indexOfFirstRelevantCharacterInOriginalSource(int fromIndex)
+    {
+        int indexOfFirstRelevantChar = 0;
+        
+        for (int i = 0; i < originalSourceCharStatus.length; i++)
+        {
+            int charStatus = originalSourceCharStatus[i];
+            if (charStatus != SOURCE_CHAR_STATUS_IN_COMMENT
+                            && charStatus != SOURCE_CHAR_STATUS_WHITESPACE
+                            && charStatus != SOURCE_CHAR_STATUS_WRITTEN) {
+                
+                indexOfFirstRelevantChar = i;
+                break;
+            }
+            
+        } 
+        
+        
+        return indexOfFirstRelevantChar;
+    }
+*/    
+    
+    
+    /**
+     * strips out the comments of a SQL statement that are identified
+     * by two dashes in line "--" and that are not part of a delimited character
+     * string (single quotes), or SQL delimited object name (double quotes).
+     * <br><b>NOTE:</b> The given SQL statement string must contain the line-break
+     * characters to delimit the "--" comments, otherwise all of the SQL-Statement
+     * that comes after the first occurence of a "--" comment be treated as part
+     * of the comment and rather be ignored, moreover the resulting statement is
+     * likely to fail!
+     * <br>
+     * <p>
+     * SELECT EMP_NUM FROM DEPARTEMENT -- pre-accumulated number of employees
+     * <br>
+     * WHERE LOCATION = 'C-Tower--01' OR LOCATION = 'C-Tower-02'
+     * <p>
+     * In this statement the first occurence of "--" would indicate a comment
+     * that would be stripped of and the second occurence would be retained, as
+     * it is part of a String delimited by the enclosing single quotes.
+     * 
+     * 
+     * @param statement  A SQL statement.
+     * @return The a SQL statement without "--" comments.
+     */
+    public void stripOriginalSourceCommentsAndBlanks_makeUpperCase_createIndexMapping()
+    {
+        final int    NO_QUOTE           = 0;
+        final int    SINGLE_QUOTE       = 1;
+        final int    DOUBLE_QUOTE       = 2;
+        final int    INSIDE_COMMENT     = 3;
+        
+        char         lookAheadChar;
+        char         lastChar           = SPACE;
+        int          delimiterState     = NO_QUOTE;
+        StringBuffer nonCommentStmt     = new StringBuffer();
+        
+        int[]        trimmedIndexToOriginalIndex = new int[originalSource.length()];
+        
+        StringCharacterIterator iter = new StringCharacterIterator(originalSource);
+        // Iterate through the string to find a comments.
+        // Ignore comments that are enclosed in quotes:
+        // delimited SQL object names (double quotes) or character
+        // strings (single quotes)
+        int i = 0;
+        for (char c = iter.first(); c != CharacterIterator.DONE; c = iter.next())
+        {
+            switch (delimiterState)
+            {
+                case INSIDE_COMMENT: // --comment end with line
+                    if ((c == CARRIAGE_RETURN) || (c == NEW_LINE)) // carriage return
+                    {
+                        delimiterState = NO_QUOTE;
+                    }
+                    break;
+                    
+                case NO_QUOTE:
+                    if (c == '\'')
+                    {
+                        delimiterState = SINGLE_QUOTE;
+                    }
+                    else
+                        if (c == '"')
+                        {
+                            delimiterState = DOUBLE_QUOTE;
+                        }
+                        else
+                            if (c == '-')
+                            {
+                                lookAheadChar = iter.next();
+                                if (lookAheadChar == '-')
+                                {
+                                    delimiterState = INSIDE_COMMENT;
+                                }
+                                else
+                                {
+                                    nonCommentStmt.append(c);
+                                    trimmedIndexToOriginalIndex[nonCommentStmt.length()-1]=i;
+                                    i++;
+                                    lastChar = c;
+                                    c = lookAheadChar;
+                                }
+                            }
+                    break;
+                    
+                case SINGLE_QUOTE:
+                    if (c == '\'')
+                    {
+                        lookAheadChar = iter.next();
+                        if (lookAheadChar != '\'')
+                        {
+                            delimiterState = NO_QUOTE;
+                            nonCommentStmt.append(c);
+                            trimmedIndexToOriginalIndex[nonCommentStmt.length()-1]=i;
+                            i++;
+                            lastChar = c;
+                            c = lookAheadChar;
+                        }
+                    }
+                    break;
+                case DOUBLE_QUOTE:
+                    if (c == '"')
+                    {
+                        lookAheadChar = iter.next();
+                        if (lookAheadChar != '"')
+                        {
+                            delimiterState = NO_QUOTE;
+                            nonCommentStmt.append(c);
+                            trimmedIndexToOriginalIndex[nonCommentStmt.length()-1]=i;
+                            i++;
+                            lastChar = c;
+                            c = lookAheadChar;
+                        }
+                    }
+                    break;
+            }
+            
+            // if not inside a comment, append the current char to the resulting StringBuffer
+            if (delimiterState != INSIDE_COMMENT)
+            {
+                
+                // filter out the line terminators and multiple spaces
+                if ((c == CARRIAGE_RETURN || c == NEW_LINE || c == SPACE) && delimiterState == NO_QUOTE)
+                {
+                    if (lastChar != SPACE)
+                    {
+                        nonCommentStmt.append(SPACE);
+                        trimmedIndexToOriginalIndex[nonCommentStmt.length()-1]=i;
+                        lastChar = SPACE;
+                    }
+                } 
+                else
+                
+                    // append characters, not CharacterIterator limiter
+                    if (c != CharacterIterator.DONE)
+                    {
+                        // only append blanks in quotes or if the previous char was no blank
+                        if (delimiterState != NO_QUOTE || lastChar != SPACE || c != SPACE)
+                        {
+                            if (delimiterState == NO_QUOTE) {
+                                c = Character.toUpperCase(c);
+                            }
+                            
+                            nonCommentStmt.append(c);
+                            trimmedIndexToOriginalIndex[nonCommentStmt.length()-1]=i;
+                            lastChar = c;
+                        }
+                    }
+                
+            }
+            i++;
+        }
+        
+//        originalSourceTrimmedUC = nonCommentStmt.toString().trim();
+        
+//        originalSrcTrimmedIndexToOriginalSrcIndex = new int[originalSourceTrimmedUC.length()];
+        
+        // shorten the index mapping array to the size of the originalSourceTrimmedUC
+//        for (int j = 0; j < originalSrcTrimmedIndexToOriginalSrcIndex.length; j++)
+//        {
+//            originalSrcTrimmedIndexToOriginalSrcIndex[j] = trimmedIndexToOriginalIndex[j];
+//        } 
+    }
+
+    /**
+     * @param string
+     * @return
+     */
+    public int lastIndexOf(String string) {
+        return toString().lastIndexOf(string);
+    }
+
+    /**
+     * @param i
+     * @return
+     */
+    public char charAt(int i) {
+        return toString().charAt(i);
+    }
+
+    /**
+     * @param i
+     */
+    public SQLQuerySourceBuffer append(int i) {
+        return append(String.valueOf(i));
+        
+    }
+    
+    
+    public void insertConditionalLineBreak(SQLQueryObject context) {
+        // so we can line break all potential line breaks for that context object
+        // if we later decide to wrap, we can easily at the right points
+        // always break line before the largest containing section if not already broken?
+        //   e.g.
+        // SELECT col_a, col_b, col_c, some_long_function_name_with_arguments(
+        //     arg_1, arg_2, arg_3)
+        //   FROM table_a, table_b
+        //  vs.
+        // SELECT col_a, col_b, col_c,
+        //     some_long_function_name_with_arguments( arg_1, arg_2, arg_3)
+        //   FROM table_a, table_b
+        
+        
+        // we need to be aware of the total new length of the source, so we need
+        // a mapping between orig source indexes to new generated source indices
+        
+        // flush buckets for new elements and latest when scope is changed, so
+        // we have the conditional breaks in the right place
+        // so we fill up a StringBuffer in paralell that, either gets the old source or the new in
+        
+        
+        // for use in editor: keep track of sections, associate smallest SQLQueryObject
+        // related to section like Span also for new elements in generated StringBuffer
+        
+    }
+    
+    public void setIndent(SQLQueryObject context) {}
+    
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLQuerySourceFormat.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLQuerySourceFormat.java
new file mode 100644
index 0000000..0a6109b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLQuerySourceFormat.java
@@ -0,0 +1,507 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.query.util;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
+
+/**
+ * The <code>SQLQuerySourceFormat</code> can be used to provide settings regarding the SQL source 
+ * text for parsing or source generation from a <code>SQLQueryObject</code> model representation.
+ * The SQLQuerySourceFormat will be maintained during the life cycle of a <code>QueryStatement</code> 
+ * instance (via reference to SQLQuerySourceInfo, see 
+ * {@link org.eclipse.datatools.modelbase.sql.query.SQLQueryObject#getSourceInfo()},
+ * {@link org.eclipse.datatools.modelbase.sql.query.util.SQLQuerySourceInfo#getSqlFormat()}),
+ * where all <code>SQLQueryObject</code> elements of one <code>QueryStatement</code> share one instance 
+ * of a <code>SQLQuerySourceFormat</code>.  That way the settings you specify for the parse are still 
+ * available for generating the SQL source text for a <code>QueryStatement</code>.
+ * Most source format options can be modified during the life cycle of a <code>QueryStatement</code>, 
+ * exceptions are marked with a * below.
+ * <p>
+ * Source format options:
+ * <ul>
+ *     <li> <code>preserveSourceFormat</code> = the option to preserve the input source formating when 
+ *     SQL source text is generated (default: false)
+ *     <li> <code>statementTerminator</code> = the character separating multiple SQL statements (default: '')
+ *     <li> <code>hostVariablePrefix</code> = the character that precedes a	host language variable (default: ':')
+ *     <li> <code>parameterMarker</code> = the character that identifies a host language parameter (default: '?')
+ *     <li> <code>delimitedIdentifierQuote</code>* = the character that encloses delimited identifiers whose
+ *     writing in case will be preserved (default: '"')
+ *     <li> <code>omitSchema</code> = the current schema (omitted in SQL source, implicit to unqualified 
+ *     table references) (default: null)
+ *     <li> <code>qualifyIdentifiers</code> = the flag describing how identifiers in the SQL source will 
+ *     be qualified.  See the QUALIFY_IDENTIFIER_xxx constants defined in this class 
+ *     (default: qualify identifiers in context)
+ *     <li> <code>preserveComments</code> = the option to preserve comments in the parsed SQL source or/and 
+ *     the generated SQL source (default: true)
+ *     <li> <code>generateCommentsForStatementOnly</code> = the option to generate comments for the SQL source 
+ *     only in the context of the complete statement, or if set to <code>false</code>, for single SQL Query 
+ *     objects outside the context of a statement as well (default: true)
+ *     <li><code>instanceIsFinal</code> = indicates whether or not the instance can be modified (default: false)
+ *     <li><code>generateAsKeywordForTableCorrID</code> = option to include (or not) the AS keyword when 
+ *     generating SQL for a table correlation ID.  (The AS is optional for DB2.  Oracle does not allow it at all.)
+ *     (default: true)
+ * </ul> 
+ *    
+ * <br><br>
+ *  * Source format options that can not be modified during the life cycle of a
+ * <code>QueryStatement</code>
+ * <br><br>
+ * See {@link #copyDefaultFormat()} to see how to get a
+ * <code>SQLQuerySourceFormat</code> with the default settings.
+ * <br>
+ * See {@link #copyFields(SQLQuerySourceFormat)} to see how to copy the values
+ * from another <code>SQLQuerySourceFormat</code>.
+ * 
+ * @author ckadner
+ */
+public class SQLQuerySourceFormat
+{   
+    /**
+     * Default value for <code>preserveSourceFourmat</code> setting: <code>false</code>
+     */
+    public static final boolean PRESERVE_SOURCE_FORMAT_DEFAULT = false;
+    
+    /**
+     *  Default value for the <code>statementTerminator</code> setting: ';' 
+     */
+    public static final char STATEMENT_TERMINATOR_DEFAULT = ';';
+    
+    /**
+     *  Default value for the <code>hostVariablePrefix</code> setting: ':' 
+     */
+    public static final char HOSTVARIABLE_PREFIX_DEFAULT = ':';
+    
+    /**
+     *  Default value for the <code>parameterMarker</code> setting: '?' 
+     */
+    public static final char PARAMETER_MARKER_DEFAULT = '?';
+    
+    /**
+     *  Default value for the <code>delimitedIdentifierQuote</code> setting: '"' 
+     */
+    public static final char DELIMITED_IDENTIFIER_QUOTE_DEFAULT = '\"';
+    
+    /**
+     * Default value for <code>omitSchema</code> setting: <code>null</code>
+     */
+    public static final String OMIT_SCHEMA_DEFAULT = null;
+    
+    /**
+     * Default constant for {@link #setQualifyIdentifiers(int)}, and
+     * {@link #getQualifyIdentifiers()}, used for SQL source generation. Column
+     * and table names will be qualified depending on the context of the SQL
+     * statement.
+     */
+    public static final int QUALIFY_IDENTIFIERS_IN_CONTEXT = 0;
+
+    /**
+     * Constant for {@link #setQualifyIdentifiers(int)}, and
+     * {@link #getQualifyIdentifiers()}, used for SQL source generation. Table
+     * names will always be qualified with schema names and column names with
+     * table and schema names.
+     */
+    public static final int QUALIFY_IDENTIFIERS_WITH_SCHEMA_NAMES = 1;
+
+    /**
+     * Constant for {@link #setQualifyIdentifiers(int)}, and
+     * {@link #getQualifyIdentifiers()}, used for SQL source generation. Table
+     * names will never be qualified with schema names and column names will
+     * only be qualified with table names.
+     * <p>
+     * <b>Note: </b> this configuration can lead to incorrectly generated source
+     * for SQL statements!
+     */
+    public static final int QUALIFY_IDENTIFIERS_WITH_TABLE_NAMES = 2;
+
+    /**
+     * Constant for {@link #setQualifyIdentifiers(int)}, and
+     * {@link #getQualifyIdentifiers()}, used for SQL source generation. Table
+     * names will never be qualified with schema names and column names will
+     * only be qualified with table names.
+     * <p>
+     * <b>Note: </b> this configuration can lead to incorrectly generated source
+     * for SQL statements!
+     */
+    public static final int QUALIFY_IDENTIFIERS_NEVER = 3;
+
+    /**
+     * Default value for the <code>qualifyIdentifiers</code> setting: <code>QUALIFY_IDENTIFIERS_IN_CONTEXT</code>
+     */
+    public static final int QUALIFY_IDENTIFIERS_DEFAULT = QUALIFY_IDENTIFIERS_IN_CONTEXT;
+    
+    /**
+     * Default value for the <code>preserveComments</code> setting: <code>true</code>
+     */
+    public static final boolean PRESERVE_COMMENTS_DEFAULT = true;
+    
+    /**
+     * Default value for the <code>generateCommentsForStatementOnly</code> setting: <code>true</code>
+     */
+    public static final boolean GENERATE_COMMENTS_FOR_STATEMENT_DEFAULT = true;
+    
+    /**
+     * Default value for the <code>instanceIsFinal</code> setting: <code>false</code>
+     */
+    public static final boolean INSTANCE_IS_FINAL_DEFAULT = false;
+    
+    /**
+     * Default value for the <code>generateAsKeywordForTableCorrID</code> setting: <code>true</code>
+     */
+    public static final boolean GENERATE_AS_KEYWORD_FOR_TABLE_CORR_ID_DEFAULT = true;
+    
+    /**
+     * Define the default <code>SQLQuerySourceFormat</code> object.
+     * <b>Note:</b> this <code>SQLQuerySourceFormat</code>'s <code>instanceIsFinal</code> setting
+     * means modifications on its members are not allowed.  Every attempt to do so will raise an
+     * <code>UnsupportedOperationException</code>. Use
+     * <code>{@link #copyDefaultFormat()}</code> to get a copy of 
+     * <code>{@link #SQL_SOURCE_FORMAT_DEFAULT}</code>
+     * </p>
+     * Default <code>SQLQuerySourceFormat</code> properties:
+     * <ul>
+     *     <li> <code>preserveSourceFormat</code> = <code>false</code>
+     *     <li> <code>statementTerminator</code> = {@link #STATEMENT_TERMINATOR_DEFAULT}
+     *     <li> <code>hostVariablePrefix</code> = {@link #HOSTVARIABLE_PREFIX_DEFAULT}
+     *     <li> <code>parameterMarker</code> = {@link #PARAMETER_MARKER_DEFAULT}
+     *     <li> <code>delimitedIdentifierQuote</code> = {@link #DELIMITED_IDENTIFIER_QUOTE_DEFAULT}
+     *     <li> <code>omitSchema</code> = <code>null</code>;
+     *     <li> <code>qualifyIdentifiers</code> = {@link #QUALIFY_IDENTIFIERS_IN_CONTEXT}
+     *     <li> <code>preserveComments</code> = <code>true</code>
+     *     <li> <code>generateCommentsForStatementOnly</code> = <code>true</code>
+     * </ul>
+     * @see #copyDefaultFormat()
+     */
+    public static final SQLQuerySourceFormat SQL_SOURCE_FORMAT_DEFAULT          
+            = new SQLQuerySourceFormat( PRESERVE_SOURCE_FORMAT_DEFAULT,
+                                        STATEMENT_TERMINATOR_DEFAULT,
+                                        HOSTVARIABLE_PREFIX_DEFAULT,
+                                        PARAMETER_MARKER_DEFAULT,
+                                        DELIMITED_IDENTIFIER_QUOTE_DEFAULT,
+                                        OMIT_SCHEMA_DEFAULT, 
+                                        QUALIFY_IDENTIFIERS_DEFAULT,
+                                        PRESERVE_COMMENTS_DEFAULT,
+                                        GENERATE_COMMENTS_FOR_STATEMENT_DEFAULT,
+                                        true,
+                                        GENERATE_AS_KEYWORD_FOR_TABLE_CORR_ID_DEFAULT);
+        
+    private boolean preserveSourceFormat = PRESERVE_SOURCE_FORMAT_DEFAULT;
+    private char statementTerminator = STATEMENT_TERMINATOR_DEFAULT;
+    private char hostVariablePrefix = HOSTVARIABLE_PREFIX_DEFAULT;
+    private char parameterMarker = PARAMETER_MARKER_DEFAULT;
+    private char delimitedIdentifierQuote = DELIMITED_IDENTIFIER_QUOTE_DEFAULT;
+    private String omitSchema = OMIT_SCHEMA_DEFAULT;
+    private int qualifyIdentifiers = QUALIFY_IDENTIFIERS_IN_CONTEXT;
+    private boolean preserveComments = PRESERVE_COMMENTS_DEFAULT;
+    private boolean generateCommentsForStatementOnly = GENERATE_COMMENTS_FOR_STATEMENT_DEFAULT;
+    private boolean instanceIsFinal = INSTANCE_IS_FINAL_DEFAULT;
+    private boolean generateAsKeywordForTableCorrID = GENERATE_AS_KEYWORD_FOR_TABLE_CORR_ID_DEFAULT;
+    
+    protected SQLQuerySourceFormat(boolean preserveSourceFormat,
+                                char statementTerminator,
+                                char hostVariablePrefix,
+                                char parameterMarker,
+                                char delimitedIdentifierQuote,
+                                String omitSchema,
+                                int qualifyIdentifiers,
+                                boolean preserveComments,
+                                boolean generateCommentsForStatementOnly)  {
+        this(preserveSourceFormat,statementTerminator,hostVariablePrefix,parameterMarker,delimitedIdentifierQuote,omitSchema,qualifyIdentifiers,preserveComments,generateCommentsForStatementOnly,INSTANCE_IS_FINAL_DEFAULT, GENERATE_AS_KEYWORD_FOR_TABLE_CORR_ID_DEFAULT);
+    }
+        
+    /**
+     * @param preserveSourceFormat
+     * @param statementTerminator
+     * @param hostVariablePrefix
+     * @param parameterMarker
+     * @param delimitedIdentifierQuote
+     * @param omitSchema
+     * @param qualifyIdentifiers
+     * @param preserveComments
+     * @param generateCommentsForStatementOnly
+     * @param finalInstance indicates that the consructed instance will not be modifyable
+     */
+    private SQLQuerySourceFormat(boolean preserveSourceFormat,
+                                char statementTerminator,
+                                char hostVariablePrefix,
+                                char parameterMarker,
+                                char delimitedIdentifierQuote,
+                                String omitSchema,
+                                int qualifyIdentifiers,
+                                boolean preserveComments,
+                                boolean generateCommentsForStatementOnly,
+                                boolean finalInstance,
+                                boolean generateAsKeywordForTableCorrID)
+    {
+        this.preserveSourceFormat = preserveSourceFormat;
+        this.statementTerminator = statementTerminator;
+        this.hostVariablePrefix = hostVariablePrefix;
+        this.parameterMarker = parameterMarker;
+        this.delimitedIdentifierQuote = delimitedIdentifierQuote;
+        this.omitSchema = omitSchema;
+        this.qualifyIdentifiers = qualifyIdentifiers;
+        this.preserveComments = preserveComments;
+        this.generateCommentsForStatementOnly = generateCommentsForStatementOnly;
+        this.instanceIsFinal = finalInstance;
+        this.generateAsKeywordForTableCorrID = generateAsKeywordForTableCorrID;
+    }
+    
+    /*
+     * The default constructor is private to make sure instances can't be created this way.
+     */
+    private SQLQuerySourceFormat() {}
+    
+    /**
+     * Creates and returns a copy of the default <code>SQLQuerySourceFormat</code> object.
+     * <b>Note:</b> the copy will have the <code>instanceIsfinal</code> setting set to false.
+     * 
+     * @return a new copy of the {@link #SQL_SOURCE_FORMAT_DEFAULT}
+     */
+    public static SQLQuerySourceFormat copyDefaultFormat() {
+        return copySourceFormat(SQL_SOURCE_FORMAT_DEFAULT);
+    }
+    
+    /**
+     * Creates and returns a copy of the given <code>SQLQuerySourceFormat</code> object.
+     * 
+     * @param sourceFormat the <code>SQLQuerySourceFormat</code> to copy
+     * @return the copy
+     */
+    public static SQLQuerySourceFormat copySourceFormat(SQLQuerySourceFormat sourceFormat) {
+        SQLQuerySourceFormat copy = new SQLQuerySourceFormat();
+        copyFields(sourceFormat, copy);
+        return copy;
+    }
+    
+    /**
+     * Copies the fields from the given <code>SQLQuerySourceFormat</code>
+     * <code>donor</code>
+     * to the <code>SQLQuerySourceFormat</code>
+     * <code>recipient</code>.
+     * 
+     * @param source the <code>SQLQuerySourceFormat</code> object containing the fields to copy
+     * @param target the <code>SQLQuerySourceFormat</code> object to update
+     */
+    public static void copyFields(SQLQuerySourceFormat source, SQLQuerySourceFormat target) {
+        Field[] fields = SQLQuerySourceFormat.class.getDeclaredFields();
+        
+        for (int i = 0; i < fields.length; i++) {
+            Field field = fields[i];
+            
+            if (!Modifier.isFinal(field.getModifiers()) && !field.getName().equals("instanceIsFinal")) { //$NON-NLS-1$
+	            try {
+	                field.set(target, field.get(source));
+	            }
+	            catch (IllegalArgumentException e) {
+	                e.printStackTrace();
+	            }
+	            catch (IllegalAccessException e) {
+	                e.printStackTrace();
+	            }
+            }
+        }
+        
+        /* Make sure that the copy is modifiable. */
+        target.instanceIsFinal = false;
+    }
+    
+    /**
+     * Copies the fields from the given <code>SQLQuerySourceFormat</code> to this object.
+     * 
+     * @param sourceFormat the source <code>SQLQuerySourceFormat</code> object
+     */
+    public void copyFields(SQLQuerySourceFormat sourceFormat) {
+        SQLQuerySourceFormat.copyFields(sourceFormat, this);
+    }
+    
+    
+    /** 
+     * Checks whether the <code>instanceIsFinal</code> setting is true, and if so, throws an exception.  This is called
+     * from each setter method in this class.
+     * 
+     * @throws UnsupportedOperationException when the instance can not be modified
+     */
+    private void checkThisForFinalInstance() throws UnsupportedOperationException {
+        if (this.instanceIsFinal) {
+            throw new UnsupportedOperationException("This " + this.getClass().getName() +
+                            " is final! Property modifications illegal." +
+                            " Use "+ this.getClass().getName() + "#copyDefaultFormat() to get a copy of this instance.");
+        }
+    }
+    
+    /**
+     * Gets the delimited identifier quote character to use for parsing and code generation.
+     */
+    public char getDelimitedIdentifierQuote() {
+        return delimitedIdentifierQuote;
+    }
+    
+    /**
+     * Sets the delimited identifier quote character to use for parsing and code generation.
+     * <b>Note:</b>
+     * No modifications of of this setting are allowed after using this <code>SQLQuerySourceFormat</code> 
+     * as a parameter for a parse!  The delimited identifier quote character is stored within the identifiers 
+     * of the <code>SQLQueryObject</code>s and further modifications to this setting would result into wrong name
+     * comparisons.
+     * If you need to modify it, make a copy of the current <code>SQLQuerySourceFormat</code> by using
+     * {@link #copySourceFormat(SQLQuerySourceFormat)} to keep the previously parsed <code>SQLQueryObject</code>s 
+     * references to this <code>SQLQuerySourceFormat</code> and its <code>delimitedIdentifierQuote</code> valid.
+     */
+    public void setDelimitedIdentifierQuote(char delimitedIdentifierQuote) {
+        checkThisForFinalInstance();
+        this.delimitedIdentifierQuote = delimitedIdentifierQuote;
+    }
+    
+    /**
+     * Gets the host variable prefix character to use.
+     */
+    public char getHostVariablePrefix() {
+        return hostVariablePrefix;
+    }
+    /**
+     * Sets the host variable prefix character to use to the given character.
+     */
+    public void setHostVariablePrefix(char hostVariablePrefix) {
+        checkThisForFinalInstance();
+        this.hostVariablePrefix = hostVariablePrefix;
+    }
+    
+    /**
+     * Gets the parameter marker character to use.
+     */
+    public char getParameterMarker() {
+        return parameterMarker;
+    }
+    
+    /**
+     * Sets the parameter marker character to use to the given character.
+     */
+    public void setParameterMarker(char parameterMarker) {
+        checkThisForFinalInstance();
+        this.parameterMarker = parameterMarker;
+    }
+    
+    /**
+     * Gets the omit schema name to use.  If non-null, this schema name is omitted from generated SQL.
+     */
+    public String getOmitSchema() {
+        return omitSchema;
+    }
+    
+    /**
+     * Sets the omit schema name to use.  If non-null, this schema name is omitted from generated SQL.
+     */
+    public void setOmitSchema(String omitSchema) {
+        checkThisForFinalInstance();
+        this.omitSchema = omitSchema;
+    }
+    
+    /**
+     * Gets the preserve source format setting.
+     */
+    public boolean isPreserveSourceFormat() {
+        return preserveSourceFormat;
+    }
+    
+    /**
+     * Sets the preserve source format setting to the given value.
+     */
+    public void setPreserveSourceFormat(boolean preserveSourceFormat) {
+        checkThisForFinalInstance();
+        this.preserveSourceFormat = preserveSourceFormat;
+    }
+    
+    /**
+     * Gets the statement terminator character to use.
+     */
+    public char getStatementTerminator() {
+        return statementTerminator;
+    }
+    
+    /**
+     * Sets the statement terminator character to use to the given character.
+     */
+    public void setStatementTerminator(char statementTerminator) {
+        checkThisForFinalInstance();
+        this.statementTerminator = statementTerminator;
+    }
+    
+    /**
+     * Gets the policy setting on how identifiers in the SQL source will be qualified.  See the
+     * <cod>QUALIFY_IDENTIFIER_xxx</code> constants defined in this class.  The default is
+     * {@link #QUALIFY_IDENTIFIERS_IN_CONTEXT}.
+     */
+    public int getQualifyIdentifiers() {
+        return qualifyIdentifiers;
+    }
+    
+    /**
+     * Sets the policy on how identifiers in the SQL source will be qualified.
+     */
+    public void setQualifyIdentifiers(int qualifyIdentifiers) {
+        checkThisForFinalInstance();
+        this.qualifyIdentifiers = qualifyIdentifiers;
+    }
+    
+    /**
+     * Gets whether or not to preserve comments in the generated SQL.
+     */
+    public boolean getPreserveComments() {
+        return preserveComments;
+    }
+    
+    /**
+     * Gets whether or not to preserve comments in the generated SQL is set true.
+     */
+    public boolean isPreserveComments() {
+        return preserveComments;
+    }
+    
+    /**
+     * Sets whether or not to preserve comments in the generated SQL.
+     */
+    public void setPreserveComments(boolean preserveComments) {
+        checkThisForFinalInstance();
+        this.preserveComments = preserveComments;
+    }
+    
+    /** 
+     * Gets whether or not to generate comments in the context of a complete statement only.  When false, comments will
+     * be generated in the SQL objects outside the context of a complete statement.
+     */
+    public boolean isGenerateCommentsForStatementOnly() {
+        return generateCommentsForStatementOnly;
+    }
+    
+    /** 
+     * Sets whether or not to generate comments in the context of a complete statement only.  When false, comments will
+     * be generated in the SQL objects outside the context of a complete statement.
+     */
+    public void setGenerateCommentsForStatementOnly(boolean generateCommentsForStatementOnly) {
+        checkThisForFinalInstance();
+        this.generateCommentsForStatementOnly = generateCommentsForStatementOnly;
+    }
+    
+    /**
+     * Gets whether or not to include the AS keyword when generating SQL for a table correlation ID.
+     */
+    public boolean getGenerateAsKeywordForTableCorrID() {
+        return this.generateAsKeywordForTableCorrID;
+    }
+    
+    /**
+     * Sets whether or not to include the AS keyword when generating SQL for a table correlation ID. 
+     */
+    public void setGenerateAsKeywordForTableCorrID(boolean genAsKeywordForTableCorrID) {
+        checkThisForFinalInstance();
+        this.generateAsKeywordForTableCorrID = genAsKeywordForTableCorrID;
+    }
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLQuerySourceInfo.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLQuerySourceInfo.java
new file mode 100644
index 0000000..6a73ca8
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLQuerySourceInfo.java
@@ -0,0 +1,275 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.query.util;
+
+import java.lang.ref.WeakReference;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryObject;
+
+
+/**
+ * @author ckadner
+ * 
+ * TODO To change the template for this generated type comment go to Window -
+ * Preferences - Java - Code Style - Code Templates
+ */
+public class SQLQuerySourceInfo
+{
+
+    private int                  spanStartOffset    = 0;
+    private int                  spanEndOffset      = 0;
+    private String               sourceSnippet      = null;
+    private int                  lineNumberStart    = 0;
+    private int                  columnNumberStart  = 0;
+    private int                  lineNumberEnd      = 0;
+    private int                  columnNumberEnd    = 0;
+
+    private SQLQuerySourceFormat sqlFormat          = null;
+    
+    private List                 comments           = null;
+
+    private WeakReference        queryObjectBackRef = null;
+
+    
+    /**
+     * 
+     */
+    public SQLQuerySourceInfo()
+    {
+        super();
+    }
+    
+    /**
+     * Constructor. Will hold a back reference to the
+     * <code>SQLQueryObject</code> that holds this
+     * <code>SQLQuerySourceInfo</code>.
+     * 
+     * @param queryObjectBackRef
+     *            will be hold as a weak reference
+     */
+    public SQLQuerySourceInfo(SQLQueryObject queryObjectBackRef)
+    {
+        this.queryObjectBackRef = new WeakReference(queryObjectBackRef);
+    }
+    
+    
+    /**
+     * <p>
+     * <b>Note: </b> if this <code>SQLQuerySourceInfo</code>'s reference to
+     * the <code>SQLQuerySourceFormat</code> is <code>null</code>,
+     * {@link SQLQuerySourceFormat#SQL_SOURCE_FORMAT_DEFAULT} instance will be
+     * returned. No modifications on its members are allowed as that
+     * <code>SQLQuerySourceFormat</code> instance is <code>final</code>.
+     * </p>
+     * 
+     * @return Returns this <code>sqlFormat</code> or, if that's <code>null</code>,
+     *         <code>SQLQuerySourceFormat#SQL_SOURCE_FORMAT_DEFAULT</code>
+     */
+    public SQLQuerySourceFormat getSqlFormat()
+    {
+//        if (this.sqlFormat == null) 
+        {
+            // try to recursively get the SQLSourceFormat of the eContainer
+            if (queryObjectBackRef != null
+                            && queryObjectBackRef.get() != null)
+            {
+                SQLQueryObject queryObject =
+                    (SQLQueryObject) queryObjectBackRef.get();   
+                
+                if (queryObject.eContainer() instanceof SQLQueryObject)
+                {
+                    SQLQueryObject queryObjectContainer =
+                        (SQLQueryObject) queryObject.eContainer();
+                    this.sqlFormat =
+                        queryObjectContainer.getSourceInfo().getSqlFormat();
+                }
+            }
+            if (this.sqlFormat == null)
+            {
+                this.sqlFormat = SQLQuerySourceFormat.copyDefaultFormat(); 
+            }
+        }
+        return sqlFormat;
+    }
+
+    /**
+     * @param sqlFormat
+     *            The sqlFormat to set.
+     */
+    public void setSqlFormat(SQLQuerySourceFormat sqlFormat)
+    {
+        this.sqlFormat = sqlFormat;
+    }
+
+    /**
+     * @return Returns the sourceSnippet.
+     */
+    public String getSourceSnippet()
+    {
+        return sourceSnippet;
+    }
+
+    /**
+     * @param sourceSnippet
+     *            The sourceSnippet to set.
+     */
+    public void setSourceSnippet(String sourceSnippet)
+    {
+        this.sourceSnippet = sourceSnippet;
+    }
+
+    /**
+     * @return Returns the spanEndOffset.
+     */
+    public int getSpanEndOffset()
+    {
+        return spanEndOffset;
+    }
+
+    /**
+     * @param spanEndOffset
+     *            The spanEndOffset to set.
+     */
+    public void setSpanEndOffset(int spanEndOffset)
+    {
+        this.spanEndOffset = spanEndOffset;
+    }
+
+    /**
+     * @return Returns the spanStartOffset.
+     */
+    public int getSpanStartOffset()
+    {
+        return spanStartOffset;
+    }
+
+    /**
+     * @param spanStartOffset
+     *            The spanStartOffset to set.
+     */
+    public void setSpanStartOffset(int spanStartOffset)
+    {
+        this.spanStartOffset = spanStartOffset;
+    }
+
+    
+    /**
+     * @return Returns the columnNumberEnd.
+     */
+    public int getColumnNumberEnd()
+    {
+        return columnNumberEnd;
+    }
+    
+    /**
+     * @param columnNumberEnd The columnNumberEnd to set.
+     */
+    public void setColumnNumberEnd(int columnNumberEnd)
+    {
+        this.columnNumberEnd = columnNumberEnd;
+    }
+    
+    /**
+     * @return Returns the columnNumberStart.
+     */
+    public int getColumnNumberStart()
+    {
+        return columnNumberStart;
+    }
+    
+    /**
+     * @param columnNumberStart The columnNumberStart to set.
+     */
+    public void setColumnNumberStart(int columnNumberStart)
+    {
+        this.columnNumberStart = columnNumberStart;
+    }
+    
+    /**
+     * @return Returns the lineNumberEnd.
+     */
+    public int getLineNumberEnd()
+    {
+        return lineNumberEnd;
+    }
+    
+    /**
+     * @param lineNumberEnd The lineNumberEnd to set.
+     */
+    public void setLineNumberEnd(int lineNumberEnd)
+    {
+        this.lineNumberEnd = lineNumberEnd;
+    }
+    
+    /**
+     * @return Returns the lineNumberStart.
+     */
+    public int getLineNumberStart()
+    {
+        return lineNumberStart;
+    }
+    
+    /**
+     * @param lineNumberStart The lineNumberStart to set.
+     */
+    public void setLineNumberStart(int lineNumberStart)
+    {
+        this.lineNumberStart = lineNumberStart;
+    }
+
+    /**
+     * Returns the List of <code>SQLComment</code>s.
+     * 
+     * @return List of <code>SQLComment</code>s.
+     */
+    public List getComments()
+    {
+        return comments;
+    }
+
+    /**
+     * Sets the List of <code>SQLComment</code>s.
+     * 
+     * @param comments The List of <code>SQLComment</code>s to set.
+     */
+    public void setComments(List comments)
+    {
+        this.comments = comments;
+    }
+
+    /**
+     * Returns the queryObject that holds this <code>SQLQuerySourceInfo</code>.
+     * 
+     * @return Returns the queryObject that holds this
+     *         <code>SQLQuerySourceInfo</code>, is hold as a weak reference
+     */
+    public SQLQueryObject getQueryObjectBackReference()
+    {
+        if (this.queryObjectBackRef != null)
+        {
+            return (SQLQueryObject) this.queryObjectBackRef.get();
+        }
+        return null;
+    }
+    
+    /**
+     * Sets the queryObject that holds this <code>SQLQuerySourceInfo</code>.
+     * 
+     * @param queryObjectBackRef
+     *            The queryObjectBackRef to set, will be hold as a weak
+     *            reference
+     */
+    public void setQueryObjectBackReference(SQLQueryObject queryObjectBackRef)
+    {
+        this.queryObjectBackRef = new WeakReference(queryObjectBackRef);
+    }
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLQuerySourceWriter.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLQuerySourceWriter.java
new file mode 100644
index 0000000..efebf78
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLQuerySourceWriter.java
@@ -0,0 +1,4778 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *     Actuate Corporation - implementation for BZ 320150
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.query.util;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.IExtensionPoint;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.datatools.modelbase.sql.datatypes.ApproximateNumericDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.ArrayDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.BinaryStringDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.CharacterStringDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.DateDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.DistinctUserDefinedType;
+import org.eclipse.datatools.modelbase.sql.datatypes.ElementType;
+import org.eclipse.datatools.modelbase.sql.datatypes.FixedPrecisionDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.IntegerDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.MultisetDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.PrimitiveType;
+import org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType;
+import org.eclipse.datatools.modelbase.sql.datatypes.TimeDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.XMLDataType;
+import org.eclipse.datatools.modelbase.sql.query.CallStatement;
+import org.eclipse.datatools.modelbase.sql.query.ColumnName;
+import org.eclipse.datatools.modelbase.sql.query.CursorReference;
+import org.eclipse.datatools.modelbase.sql.query.Grouping;
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.GroupingSets;
+import org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementExpression;
+import org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementSublist;
+import org.eclipse.datatools.modelbase.sql.query.MergeInsertSpecification;
+import org.eclipse.datatools.modelbase.sql.query.MergeOnCondition;
+import org.eclipse.datatools.modelbase.sql.query.MergeOperationSpecification;
+import org.eclipse.datatools.modelbase.sql.query.MergeSourceTable;
+import org.eclipse.datatools.modelbase.sql.query.MergeTargetTable;
+import org.eclipse.datatools.modelbase.sql.query.MergeUpdateSpecification;
+import org.eclipse.datatools.modelbase.sql.query.NullOrderingType;
+import org.eclipse.datatools.modelbase.sql.query.OrderByOrdinal;
+import org.eclipse.datatools.modelbase.sql.query.OrderByResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.OrderBySpecification;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.OrderingSpecType;
+import org.eclipse.datatools.modelbase.sql.query.Predicate;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.PredicateComparisonOperator;
+import org.eclipse.datatools.modelbase.sql.query.PredicateExists;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedType;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.ProcedureReference;
+import org.eclipse.datatools.modelbase.sql.query.QueryCombined;
+import org.eclipse.datatools.modelbase.sql.query.QueryCombinedOperator;
+import org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement;
+import org.eclipse.datatools.modelbase.sql.query.QueryExpressionBody;
+import org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot;
+import org.eclipse.datatools.modelbase.sql.query.QueryInsertStatement;
+import org.eclipse.datatools.modelbase.sql.query.QueryMergeStatement;
+import org.eclipse.datatools.modelbase.sql.query.QueryNested;
+import org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelectStatement;
+import org.eclipse.datatools.modelbase.sql.query.QueryStatement;
+import org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement;
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.QueryValues;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.ResultTableAllColumns;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryObject;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionCombinedOperator;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionNested;
+import org.eclipse.datatools.modelbase.sql.query.SuperGroup;
+import org.eclipse.datatools.modelbase.sql.query.SuperGroupElementExpression;
+import org.eclipse.datatools.modelbase.sql.query.SuperGroupElementSublist;
+import org.eclipse.datatools.modelbase.sql.query.SuperGroupType;
+import org.eclipse.datatools.modelbase.sql.query.TableCorrelation;
+import org.eclipse.datatools.modelbase.sql.query.TableExpression;
+import org.eclipse.datatools.modelbase.sql.query.TableFunction;
+import org.eclipse.datatools.modelbase.sql.query.TableInDatabase;
+import org.eclipse.datatools.modelbase.sql.query.TableJoined;
+import org.eclipse.datatools.modelbase.sql.query.TableJoinedOperator;
+import org.eclipse.datatools.modelbase.sql.query.TableNested;
+import org.eclipse.datatools.modelbase.sql.query.TableReference;
+import org.eclipse.datatools.modelbase.sql.query.UpdatabilityExpression;
+import org.eclipse.datatools.modelbase.sql.query.UpdatabilityType;
+import org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression;
+import org.eclipse.datatools.modelbase.sql.query.UpdateOfColumn;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSource;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceQuery;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionAtomic;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearch;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombinedOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionDefaultValue;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDurationType;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNullValue;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionRow;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionScalarSelect;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionVariable;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+import org.eclipse.datatools.modelbase.sql.query.WithTableReference;
+import org.eclipse.datatools.modelbase.sql.query.WithTableSpecification;
+import org.eclipse.datatools.modelbase.sql.query.helper.DataTypeHelper;
+import org.eclipse.datatools.modelbase.sql.query.helper.StatementHelper;
+import org.eclipse.datatools.modelbase.sql.routines.Procedure;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.schema.helper.ISQLObjectNameHelper;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+
+
+/**
+ * The <code>SQLQuerySourceWriter</code> provides a generic <code>getSQL()</code>
+ * method to generate the SQL source text of a given <code>queryObject</code> in
+ * the package <code>org.eclipse.datatools.modelbase.sql.query</code>.
+ * 
+ * @author ckadner
+ * @see SQLQueryObject#getSQL()
+ * 
+ * <p>
+ * <b>Developer note:</b>
+ * To extend this <code>SQLQuerySourceWriter</code> for another
+ * <code>org.eclipse.datatools.modelbase.sql.query</code> package, the following naming
+ * conventions have to be adhered to. The package name containing the
+ * <code>SQLQueryObject</code>s must contain the part name
+ * <code>sql.query</code>, e.g. <code>org.eclipse.datatools.modelbase.sql.query.db2.luw</code>.
+ * The <code>SQLQuerySourceWriter</code> for that package must be under the sub-
+ * package <code>util</code>, likewise
+ * <code>org.eclipse.datatools.modelbase.sql.query.db2.luw.util</code>
+ * The name of the <code>SQLQuerySourceWriter</code> class must be composed of
+ * at least the last part of the <code>SQLQueryObject</code>s' package name and
+ * the word "SourceWriter", e.g. for an <code>SQLQueryObject</code> in package
+ * <code>org.eclipse.datatools.modelbase.sql.query.db2.luw</code> the appropriate
+ * <code>SQLQuerySourceWriter</code> class could be
+ * <code>org.eclipse.datatools.modelbase.sql.query.db2.luw.util.DB2LUWSourceWriter</code> or
+ * <code>org.eclipse.datatools.modelbase.sql.query.db2.luw.util.LUWSourceWriter</code>. The
+ * <code>SQLQuerySourceWriter</code> could also be capable of generatiing the
+ * SQL source text of multiple <code>SQLQueryObject</code>s' packages and
+ * consequently would have to be located in a higher package itself. Likewise
+ * a <code>org.eclipse.datatools.modelbase.sql.query.db2.util.DB2SourceWriter</code> could be
+ * capable of generatiing the SQL source text for the packages
+ * <code>org.eclipse.datatools.modelbase.sql.query.db2</code> and
+ * <code>org.eclipse.datatools.modelbase.sql.query.db2.luw</code> and
+ * <code>org.eclipse.datatools.modelbase.sql.query.db2.zos</code> and
+ * <code>org.eclipse.datatools.modelbase.sql.query.db2.cloudscape</code>.
+ * <p>
+ * 
+ * There can be only one <code>SQLQuerySourceWriter</code> per
+ * <code>SQLQueryObject</code> package!
+ * 
+ * <p>
+ * A <code>SQLQuerySourceWriter</code> operates on interface level
+ * 
+ * <b>Developer note:</b> add only appendSQL methods that apply
+ * to specific SQLQueryObjects so the runtime type will decide its invocation,
+ * an invokation of appendSQL() should always be compiletime-bound to
+ * appendSQL(SQLQueryObject, StrinBuffer) that via reflection then invokes the
+ * right appendSQL method. Unless: you know the exact runtime type and this type
+ * has no subtypes with special features or source generation, that are
+ * formatted by another appendSQL method here
+ *
+ */
+public class SQLQuerySourceWriter implements SQLSourceWriter {
+    protected static final int STANDARD_INDENT = 2;
+    
+    /* *************************** protected switches **************************** */
+
+    /** 
+     * usability aspect, always qualify column references with at least the the
+     * table name or alias if there are multiple tables in the FROM-clause.
+     */
+    protected int displayWidth = 80;
+
+    /** 
+     * usability aspect, always qualify column references with at least the the
+     * table name or alias if there are multiple tables in the FROM-clause.
+     */
+    protected boolean alwaysQualifyColumnNamesForMultipleTables = true;
+    
+    /** 
+     * usability aspect, always qualify column references with at least the the
+     * table name or alias in nested selects or subselects.
+     * e.g. "t1.col1" in "select col1 from t1 where col1 in (select col2 from t2 where t1.col1 = t2.col2)"
+     */
+    protected boolean alwaysQualifyColumnNamesForSubqueries = false;
+    
+    /** 
+     * usability aspect, always qualify column references with at least the the
+     * table name or alias if there are multiple tables in the FROM-clause, then
+     * also qualify columns in the nested or subqueries.
+     * e.g. when set to false:
+     * "select t1.col1, t2.col2 from t1, t2 where col1 in (select col3 from t3 where t1.col1 = col3)"
+     * when set to true:
+     * "select t1.col1, t2.col2 from t1, t2 where col1 in (select t3.col3 from t3 where t1.col1 = t3.col3)"
+     */
+    protected boolean qualifyColumnNamesInSubqueriesWhenQualifiedInSuperQuery = false;
+    
+    /** 
+     * usability aspect, always qualify column references with at least the the
+     * table name or alias in nested selects or subselects, if the column is
+     * referenced in a subquery.
+     * e.g. "t1.col1" in "select col1 from t1 where col1 in (select col2 from t2 where t1.col1 = col2)"
+     */
+    protected boolean alwaysQualifyColumnNamesReferencedInSubqueries = true;
+    
+    protected static final String SQL_OBJECT_NAME_HELPER = "org.eclipse.datatools.modelbase.sql.sqlObjectNameHelper"; //$NON-NLS-1$
+    protected static final String SQL_OBJECT_NAME_HELPER_DBTYPE = "databaseType"; //$NON-NLS-1$
+    protected static final String SQL_OBJECT_NAME_HELPER_CLASS = "class"; //$NON-NLS-1$
+    
+    /* *************************** private fields **************************** */
+    
+    
+    /**
+     * For pretty print of comments we align single line comments at the end of
+     * line
+     * <ul>
+     * <li>key: StringBuffer containing single line comments
+     * <li>value: Integer last end-of-line single line comment start column
+     * index
+     * </ul>
+     * We want to align comments at the end of line that
+     * would only work if we always work on the global StringBuffer but we can
+     * also have a partial one which will get indented later and global measures
+     * don't work, therefore we use a Map and we only align end-of-line comments
+     * within one StringBuffer.
+     * @see #appendComment(SQLComment, StringBuffer)
+     */
+    private Map lastSLCommentIndentMap = null;
+    
+    private char delimitedIdentifierQuote = '"';
+
+    /** The current indent unit size (number of spaces). */
+    private int indentUnitSize = STANDARD_INDENT;
+    
+    /* determined on SQLQueryObject basis by getSQL(SQO) */
+    private boolean preserveComments = true;;
+    
+    
+    /* ***************************** public constants *************************** */
+    
+
+    /**
+     * String constant, used as SQL source for empty
+     * <code>QuerySelectStatement</code>, value: "SELECT * FROM"
+     */
+    public static final String DEFAULT_STMT_SELECT      = "SELECT *\n  FROM"; //$NON-NLS-1$
+
+    /** String constant for the single line comment prefix, value: "--".
+     *  To be overwritten by SourceWriter extension. */
+    protected static String COMMENT_PREFIX_SINGLE_LINE  = "--";  //$NON-NLS-1$
+
+    /** String constant for the multi line comment prefix, value: "/*".
+     *  To be overwritten by SourceWriter extension. */
+    protected static String COMMENT_PREFIX_MULTI_LINE   = "/*";  //$NON-NLS-1$
+
+    /** String constant for the multi line comment suffix, value: "*&#047".
+     *  To be overwritten by SourceWriter extension. */
+    protected static String COMMENT_SUFFIX_MULTI_LINE   = "*/";  //$NON-NLS-1$
+
+    
+    /** String constant for the name of the function count(), value: "COUNT" */
+    private static final String FUNCTION_COUNT          = "COUNT";  //$NON-NLS-1$
+
+    
+    /* ******************** enumeration constants *************************** */
+    
+    
+    /**
+     * String constant for {@link org.eclipse.datatools.modelbase.sql.query.OrderingSpecType#ASC}
+     */
+    protected static final String ORDERING_SPEC_TYPE_ASC = "ASC";  //$NON-NLS-1$
+    
+    /**
+     * String constant for {@link org.eclipse.datatools.modelbase.sql.query.OrderingSpecType#DESC}
+     */
+    protected static final String ORDERING_SPEC_TYPE_DESC = "DESC";  //$NON-NLS-1$
+    
+    /**
+     * String constant for {@link org.eclipse.datatools.modelbase.sql.query.NullOrderingType#NULLS_FIRST}
+     */
+    protected static final String NULL_ORDERING_TYPE_NULLS_FIRST = "NULLS FIRST";  //$NON-NLS-1$
+    
+    /**
+     * String constant for {@link org.eclipse.datatools.modelbase.sql.query.NullOrderingType#NULLS_LAST}
+     */
+    protected static final String NULL_ORDERING_TYPE_NULLS_LAST = "NULLS LAST";  //$NON-NLS-1$
+    
+
+    /* ******************** string constants ******************************** */
+    
+    
+    /** char constant, value: '.' */
+    protected static final char DOT                     = '.';
+
+    /** char constant for the new line character, value: '\n' */
+    protected static final char NEW_LINE                = '\n';
+
+    /** String constant for the new line character, value: "\n" */
+    protected static final String NEW_LINE_STRING       = String.valueOf(NEW_LINE);
+
+    /** char constant, value: '(' */
+    protected static final char   PAREN_LEFT            = '(';
+
+    /** char constant, value: ')' */
+    protected static final char   PAREN_RIGHT           = ')';
+
+    /** char constant, value: '[' */
+    protected static final char   BRACKET_LEFT          = '[';
+
+    /** char constant, value: ']' */
+    protected static final char   BRACKET_RIGHT         = ']';
+
+    /** char constant, value: ' ' */
+    protected static final char   SPACE                 = ' ';
+
+    /** char constant, value: ',' */
+    protected static final char   COMMA                 = ',';
+  
+    /**
+     * String constant, value: "="
+     *
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateComparisonOperator#EQUAL
+     */
+    protected final static String EQUAL                 = "=";  //$NON-NLS-1$
+
+    /**
+     * String constant, value: "<>"
+     *
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateComparisonOperator#NOT_EQUAL
+     */
+    protected final static String NOT_EQUAL             = "<>";  //$NON-NLS-1$
+
+    /**
+     * String constant, value: "<"
+     *
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateComparisonOperator#LESS_THAN
+     */
+    protected final static String LESS_THAN             = "<";  //$NON-NLS-1$
+
+    /**
+     * String constant, value: ">"
+     *
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateComparisonOperator#GREATER_THAN
+     */
+    protected final static String GREATER_THAN          = ">";  //$NON-NLS-1$
+
+    /**
+     * String constant, value: "<="
+     *
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateComparisonOperator#LESS_THAN_OR_EQUAL
+     */
+    protected final static String LESS_THAN_OR_EQUAL    = "<=";  //$NON-NLS-1$
+
+    /**
+     * String constant, value: ">="
+     *
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateComparisonOperator#GREATER_THAN_OR_EQUAL
+     */
+    protected final static String GREATER_THAN_OR_EQUAL = ">=";  //$NON-NLS-1$
+
+    /**
+     * String constant, value: "AND"
+     *
+     * @see org.eclipse.datatools.modelbase.sql.query.SearchConditionCombinedOperator#AND
+     */
+    protected final static String AND                   = "AND";  //$NON-NLS-1$
+
+    /**
+     * String constant, value: "OR"
+     *
+     * @see org.eclipse.datatools.modelbase.sql.query.SearchConditionCombinedOperator#OR
+     */
+    protected final static String OR                    = "OR";  //$NON-NLS-1$
+   
+    /**
+     * String constant, value: "+"
+     *
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator#PLUS
+     */
+    protected final static String PLUS                  = "+";  //$NON-NLS-1$
+
+    /**
+     * String constant, value: "-"
+     *
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator#MINUS
+     */
+    protected final static String MINUS                 = "-";  //$NON-NLS-1$
+
+    /**
+     * String constant, value: "+"
+     *
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombinedOperator#ADD
+     */
+    protected final static String ADD                   = "+";  //$NON-NLS-1$
+
+    /**
+     * String constant, value: "-"
+     *
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombinedOperator#SUBTRACT
+     */
+    protected final static String SUBTRACT              = "-";  //$NON-NLS-1$
+
+    /**
+     * String constant, value: "*"
+     *
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombinedOperator#MULTIPLY
+     */
+    protected final static String MULTIPLY              = "*";  //$NON-NLS-1$
+
+    /**
+     * String constant, value: "/"
+     *
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombinedOperator#DIVIDE
+     */
+    protected final static String DIVIDE                = "/";  //$NON-NLS-1$
+
+    /**
+     * String constant, value: "||"
+     *
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombinedOperator#CONCATENATE
+     */
+    protected final static String CONCATENATE           = "||";  //$NON-NLS-1$
+
+    /**
+     * String constant, value: "UNION"
+     *
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryCombinedOperator#UNION
+     */
+    protected final static String UNION                 = "UNION";  //$NON-NLS-1$
+
+    /**
+     * String constant, value: "UNION ALL"
+     *
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryCombinedOperator#UNION_ALL
+     */
+    protected final static String UNION_ALL             = "UNION ALL";  //$NON-NLS-1$
+
+    /**
+     * String constant, value: "INTERSECT"
+     *
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryCombinedOperator#INTERSECT
+     */
+    protected final static String INTERSECT             = "INTERSECT";  //$NON-NLS-1$
+
+    /**
+     * String constant, value: "INTERSECT ALL"
+     *
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryCombinedOperator#INTERSECT_ALL
+     */
+    protected final static String INTERSECT_ALL         = "INTERSECT ALL";  //$NON-NLS-1$
+
+    /**
+     * String constant, value: "EXCEPT"
+     *
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryCombinedOperator#EXCEPT
+     */
+    protected final static String EXCEPT                = "EXCEPT";  //$NON-NLS-1$
+
+    /**
+     * String constant, value: "EXCEPT ALL"
+     *
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryCombinedOperator#EXCEPT_ALL
+     */
+    protected final static String EXCEPT_ALL            = "EXCEPT ALL";  //$NON-NLS-1$
+
+    /** String constant, value: ":" */
+    protected final static String COLON                 = ":";  //$NON-NLS-1$
+
+    /** String constant, value: "?" */
+    protected final static String QUESTIONMARK          = "?";   //$NON-NLS-1$
+    
+    /** String constant, value: "ARRAY" */
+    protected final static String ARRAY                 = "ARRAY";  //$NON-NLS-1$
+
+    /** String constant, value: "AS" */
+    protected final static String AS                    = "AS";  //$NON-NLS-1$
+
+    /** String constant, value: "ALL" */
+    protected final static String ALL                   = "ALL";  //$NON-NLS-1$
+
+    /** String constant, value: "ANY" */
+    protected final static String ANY                   = "ANY";  //$NON-NLS-1$
+
+    /** String constant, value: "ASC" */
+    protected final static String ASC                   = "ASC";  //$NON-NLS-1$
+    
+    /** String constant, value: "*" */
+    protected final static String ASTERISK              = "*";  //$NON-NLS-1$
+
+    /** String constant, value: "BETWEEN" */
+    protected final static String BETWEEN               = "BETWEEN";  //$NON-NLS-1$
+
+    /** String constant, value: "CALL" */
+    protected final static String CALL                 = "CALL";  //$NON-NLS-1$
+    
+    /** String constant, value: "CASE" */
+    protected final static String CASE                  = "CASE";  //$NON-NLS-1$
+
+    /** String constant, value: "CAST" */
+    protected final static String CAST                  = "CAST";  //$NON-NLS-1$
+
+    /** String constant, value: "CUBE" */
+    protected final static String CUBE                  = "CUBE";  //$NON-NLS-1$
+
+    /** String constant, value: "DAYS" */
+    protected final static String DAYS                  = "DAYS";  //$NON-NLS-1$
+
+    /** String constant, value: "DEFAULT" */
+    protected final static String DEFAULT               = "DEFAULT";  //$NON-NLS-1$
+
+    /** String constant, value: "DELETE" */
+    protected final static String DELETE                = "DELETE";  //$NON-NLS-1$
+
+    /** String constant, value: "DESC" */
+    protected final static String DESC                  = "DESC";  //$NON-NLS-1$
+
+    /** String constant, value: "DISTINCT" */
+    protected final static String DISTINCT              = "DISTINCT";  //$NON-NLS-1$
+
+    /** String constant, value: "ELSE" */
+    protected final static String ELSE                  = "ELSE";  //$NON-NLS-1$
+
+    /** String constant, value: "END" */
+    protected final static String END                   = "END";  //$NON-NLS-1$
+
+    /** String constant, value: "ESCAPE" */
+    protected final static String ESCAPE                = "ESCAPE";  //$NON-NLS-1$
+
+    /** String constant, value: "EXISTS" */
+    protected final static String EXISTS                = "EXISTS";  //$NON-NLS-1$
+
+    /** String constant, value: "FETCH" */
+    protected final static String FETCH                 = "FETCH";  //$NON-NLS-1$
+    
+    /** String constant, value: "FIRST" */
+    protected final static String FIRST                 = "FIRST";  //$NON-NLS-1$
+
+    /** String constant, value: "FOR" */
+    protected final static String FOR                   = "FOR";  //$NON-NLS-1$
+
+    /** String constant, value: "FROM" */
+    protected final static String FROM                  = "FROM";  //$NON-NLS-1$
+
+    /** String constant, value: "FULL" */
+    protected final static String FULL                  = "FULL";  //$NON-NLS-1$
+    
+    /** String constant, value: "GRANDTOTAL" */
+    protected final static String GRANDTOTAL            = "GRANDTOTAL";  //$NON-NLS-1$
+    
+    /** String constant, value: "GROUP BY" */
+    protected final static String GROUP_BY              = "GROUP BY";  //$NON-NLS-1$
+    
+    /** String constant, value: "GROUPING SETS" */
+    protected final static String GROUPING_SETS         = "GROUPING SETS";  //$NON-NLS-1$
+    
+    /** String constant, value: "HAVING" */
+    protected final static String HAVING                = "HAVING";  //$NON-NLS-1$
+
+    /** String constant, value: "HOURS" */
+    protected final static String HOURS                 = "HOURS";  //$NON-NLS-1$
+
+    /** String constant, value: "IN" */
+    protected final static String IN                    = "IN";  //$NON-NLS-1$
+
+    /** String constant, value: "INSERT" */
+    protected final static String INSERT                = "INSERT";  //$NON-NLS-1$
+
+    /** String constant, value: "INNER" */
+    protected final static String INNER                 = "INNER";  //$NON-NLS-1$
+
+    /** String constant, value: "INTO" */
+    protected final static String INTO                  = "INTO";  //$NON-NLS-1$
+
+    /** String constant, value: "IS" */
+    protected final static String IS                    = "IS";  //$NON-NLS-1$
+
+    /** String constant, value: "JOIN" */
+    protected final static String JOIN                  = "JOIN";  //$NON-NLS-1$
+    
+    /** String constant, value: "LIKE" */
+    protected final static String LIKE                  = "LIKE";  //$NON-NLS-1$
+
+    /** String constant, value: "LEFT" */
+    protected final static String LEFT                  = "LEFT";  //$NON-NLS-1$
+
+    /** String constant, value: "MATCHED" */
+    protected final static String MATCHED               = "MATCHED";  //$NON-NLS-1$
+    
+    /** String constant, value: "MERGE" */
+    protected final static String MERGE                 = "MERGE";  //$NON-NLS-1$
+
+    /** String constant, value: "MICROSECONDS" */
+    protected final static String MICROSECONDS          = "MICROSECONDS";  //$NON-NLS-1$
+
+    /** String constant, value: "MINUTES" */
+    protected final static String MINUTES               = "MINUTES";  //$NON-NLS-1$
+
+    /** String constant, value: "MONTHS" */
+    protected final static String MONTHS                = "MONTHS";  //$NON-NLS-1$
+    
+    /** String constant, value: "MULTISET" */
+    protected final static String MULTISET              = "MULTISET";  //$NON-NLS-1$
+   
+    /** String constant, value: "NOT" */
+    protected final static String NOT                   = "NOT";  //$NON-NLS-1$
+
+    /** String constant, value: "NULL" */
+    protected final static String NULL                  = "NULL";  //$NON-NLS-1$
+
+    /** String constant, value: "OF" */
+    protected final static String OF                    = "OF";  //$NON-NLS-1$
+    
+    /** String constant, value: "ON" */
+    protected final static String ON                    = "ON";  //$NON-NLS-1$
+
+    /** String constant, value: "ONLY" */
+    protected final static String ONLY                  = "ONLY";  //$NON-NLS-1$
+
+    /** String constant, value: "ORDER BY" */
+    protected final static String ORDER_BY              = "ORDER BY";  //$NON-NLS-1$
+
+    /** String constant, value: "OUTER" */
+    protected final static String OUTER                 = "OUTER";  //$NON-NLS-1$
+
+    /** String constant, value: "READ" */
+    protected final static String READ                  = "READ";  //$NON-NLS-1$
+
+    /** String constant, value: "RIGHT" */
+    protected final static String RIGHT                 = "RIGHT";  //$NON-NLS-1$
+
+    /** String constant, value: "ROLLUP" */
+    protected final static String ROLLUP                = "ROLLUP";  //$NON-NLS-1$
+
+    /** String constant, value: "ROW" */
+    protected final static String ROW                   = "ROW";  //$NON-NLS-1$
+
+    /** String constant, value: "ROWS" */
+    protected final static String ROWS                  = "ROWS";  //$NON-NLS-1$
+
+    /** String constant, value: "SECONDS" */
+    protected final static String SECONDS               = "SECONDS";  //$NON-NLS-1$
+
+    /** String constant, value: "SELECT" */
+    protected final static String SELECT                = "SELECT";  //$NON-NLS-1$
+
+    /** String constant, value: "SELECTIVITY" */
+    protected final static String SELECTIVITY           = "SELECTIVITY";  //$NON-NLS-1$
+
+    /** String constant, value: "SET" */
+    protected final static String SET                   = "SET";  //$NON-NLS-1$
+
+    /** String constant, value: {@link #ASTERISK} */
+    protected final static String STAR                  = ASTERISK;
+
+    /** String constant, value: "SOME" */
+    protected final static String SOME                  = "SOME";  //$NON-NLS-1$
+
+    /** String constant, value: "TABLE" */
+    protected final static String TABLE                 = "TABLE";  //$NON-NLS-1$
+
+    /** String constant, value: "THEN" */
+    protected final static String THEN                  = "THEN";  //$NON-NLS-1$
+
+    /** String constant, value: "UPDATE" */
+    protected final static String UPDATE                = "UPDATE";  //$NON-NLS-1$
+
+    /** String constant, value: "USING" */
+    protected final static String USING                 = "USING";  //$NON-NLS-1$
+
+    /** String constant, value: "VALUES" */
+    protected final static String VALUES                = "VALUES";  //$NON-NLS-1$
+
+    /** String constant, value: "WITH" */
+    protected final static String WITH                  = "WITH";  //$NON-NLS-1$
+
+    /** String constant, value: "WHEN" */
+    protected final static String WHEN                  = "WHEN";  //$NON-NLS-1$
+
+    /** String constant, value: "WHERE" */
+    protected final static String WHERE                 = "WHERE";  //$NON-NLS-1$
+
+    /** String constant, value: "YEARS" */
+    protected final static String YEARS                 = "YEARS";  //$NON-NLS-1$
+
+    /**
+     * This reference is used in
+     * {@link #appendExternalSQL(SQLObject, StringBuffer)} and
+     * should avoid endless loops searching for external
+     * {@link SQLQuerySourceWriter} via call
+     * to {@link SQLQueryObject#getSQL()}, if this
+     * <code>SQLQuerySourceWriter</code> doesn't provide the methods to generate
+     * the SQL source for the given <code>SQLQueryObject</code>. 
+     */
+    protected static Object lastExternalyProcessed = null;
+    
+
+    /* ****************************** static methods ******************************* */
+    
+    
+    /**
+     * Gets the interface class name for the given SQL model implementation class.
+     * 
+     * @param sqlObjectClass the SQL model implementation  class for which the interface class 
+     * name is needed
+     * @return the interface class name
+     */
+    static String getInterfaceName(Class sqlObjectClass) {
+        if (sqlObjectClass == null) { 
+            return null; 
+        }
+
+        StringBuffer className = null;
+        String interfaceName = null;
+        
+        className = new StringBuffer(sqlObjectClass.getName());
+        
+        // get the interface type of the given SQLQueryObject
+        if (sqlObjectClass.getPackage().getName().endsWith("impl")) {  //$NON-NLS-1$
+            int implStart = className.lastIndexOf(".impl.") + 1;  //$NON-NLS-1$
+            int implEnd = implStart + 5;
+            className.delete(implStart, implEnd);
+        }
+        // we are only working with interfaces
+        if (sqlObjectClass.getName().endsWith("Impl")) {  //$NON-NLS-1$
+            className.delete(className.length() - 4, className.length());
+        }
+
+        interfaceName = className.toString();
+        
+        return interfaceName;
+    }
+
+    /**
+     * Gets the <code>Method</code> 
+     * <code>appendSQL(SQLObject,StringBuffer)</code> for the argument of the
+     * same runtime type as the given <code>sqlObjectClass</code>  
+     * @param sourceWriterClass the <code>SQLQuerySourceWriter</code> class on
+     *      which the specific <code>appendSpecificSQL</code> method for the
+     *      given <code>sqlObjectClass</code> should be found
+     * @param queryObjectInterfaceClass
+     * @param sqlObjectClass
+     * @return the <code>Method appendSQL</code> for the runtime type of the
+     *            given <code>sqlObjectClass</code>
+     * @throws NoSuchMethodException
+     */
+    static Method getSpecificAppendSQLMethod(Class sourceWriterClass,
+                                             Class queryObjectInterfaceClass) throws NoSuchMethodException {
+        if (queryObjectInterfaceClass == null || sourceWriterClass == null) { 
+            return null;
+        }
+
+        Method appendSQL = null;
+
+        try  {
+            Class stringBufferClass = StringBuffer.class;
+            Class[] methodArgTypes = new Class[] { queryObjectInterfaceClass,
+                            stringBufferClass };
+            appendSQL = sourceWriterClass.getDeclaredMethod("appendSpecificSQL", //$NON-NLS-1$
+                            methodArgTypes);
+        }
+        catch (NoSuchMethodException nsme) {
+            //StatementHelper.logError(NEW_LINE + sourceWriterClass.getName()
+            //                + ": getSQL(" + interfaceName
+            //                + ") not implemented. Given argument type: "
+            //                + sqlObject.getClass().getName());
+            //nsme.printStackTrace();
+            
+            // does this class extend a SourceWriter that has the method?
+            // walk up the inheritance hierarchy
+            Class superClass = sourceWriterClass.getSuperclass();
+            if (superClass != null &&
+                            SQLQuerySourceWriter.class.isAssignableFrom(superClass)) {
+                appendSQL = getSpecificAppendSQLMethod(superClass, queryObjectInterfaceClass);
+            } 
+            else {
+                throw nsme;
+            }
+        }
+        catch (IllegalArgumentException iae) {
+            // TODO: handle exception properly
+            iae.printStackTrace();
+        }
+        
+        return appendSQL;
+    }
+    
+    
+    /* ***************************** public methods ***************************** */
+
+    
+    /**
+     * Generic method to return the SQL source of the given <code>queryObject</code>.
+     * @param queryObject
+     * @return
+     */
+    public String getSQL(SQLQueryObject queryObject) {
+        String sql = null;
+        
+        if (queryObject != null) {
+            // register the sourceWriter as we assume that this SourceWriter is
+            // only called under the covers and therefore correct by implementation
+            // or is being called purposely on a subclass the base SourceWriter
+            try {
+                if (getSpecificAppendSQLMethod(queryObject) != null) {
+                    SQLQuerySourceWriterProvider.getInstance().registerSourceWriter(this.getClass(),
+                                    queryObject.getClass().getPackage().getName());
+                }
+            }
+            catch (NoSuchMethodException e) {
+                // don't register sourceWriter then here!
+            }
+
+            SQLQuerySourceFormat sourceFormat = queryObject.getSourceInfo().getSqlFormat();
+            
+            preserveComments =
+                sourceFormat.isPreserveComments()
+             && (queryObject instanceof QueryStatement 
+              || !sourceFormat.isGenerateCommentsForStatementOnly()
+                );
+            
+            delimitedIdentifierQuote = sourceFormat.getDelimitedIdentifierQuote();
+
+            StringBuffer sb = new StringBuffer();
+            appendSQL(queryObject, sb);
+            sql = sb.toString();
+
+            sql = filterOutEmptyLines(sql);
+
+            this.lastSLCommentIndentMap = null;  // for reuse of this SourceWriter
+        }
+        
+        return sql;
+    }
+
+
+    /* ***************************** protected methods ***************************** */
+
+
+    /**
+     * @param comment
+     * @param sb
+     */
+    protected void appendComment(SQLComment comment, StringBuffer sb) {
+        if (comment == null)  {  
+            return; 
+        }
+        
+        if ( (  comment.getRelativePosition() == SQLComment.COMMENT_POSITION_NEXT_LINE
+             || comment.getRelativePosition() == SQLComment.COMMENT_POSITION_PREV_LINE
+             )
+          && !isLastLineEmpty(sb)
+           ) {
+            int lastLineIndent = getLastLineIndent(sb);
+            appendNewLine(sb);
+            appendSpace(sb, lastLineIndent); // check if that also applies for multi-line comments
+        }
+
+        if (comment.isMultiLineComment()) {
+            String text = comment.getText();
+            String trimText = text.trim();
+            StringBuffer sbComment = new StringBuffer();
+            
+            if (trimText.startsWith(COMMENT_PREFIX_MULTI_LINE) == false) {
+                appendString(sbComment, COMMENT_PREFIX_MULTI_LINE);
+            }
+            
+            appendString(sbComment, text);
+            
+            if (trimText.endsWith(COMMENT_SUFFIX_MULTI_LINE) == false) {
+                appendString(sbComment, COMMENT_SUFFIX_MULTI_LINE);
+            }
+            
+            appendStringBuffer(sb, sbComment);
+            
+            // multi-line comment is delimited, doesn't need a line break
+            if (getLastLineLength(sbComment) > 40
+             && !text.endsWith(NEW_LINE_STRING)
+                ) {
+                appendNewLine(sb);
+            }
+        }
+        else {
+            String text = comment.getText();
+            
+            if (!isLastLineEmpty(sb)) {
+                appendSpace(sb);
+            }
+
+            // for pretty printing we want to align comments at the end of line
+            // that would only work if we always work on the global StringBuffer
+            // but we can also have a partial one which will get indented later
+            // and global measures don't work, therefore we use a Map and we
+            // only align end-of-line comments within one StringBuffer
+            if (comment.getRelativePosition() == SQLComment.COMMENT_POSITION_LINE_END) {
+                int currentIndent = getLastLineLength(sb);
+                
+                if (lastSLCommentIndentMap == null) {
+                    lastSLCommentIndentMap = new HashMap();
+                }
+                
+                if (lastSLCommentIndentMap.containsKey(sb)) {
+                    int lastSingleLineCommentStart = ((Integer) lastSLCommentIndentMap.get(sb)).intValue();
+                    if (lastSingleLineCommentStart > currentIndent) {
+                        appendSpace(sb, lastSingleLineCommentStart - currentIndent);
+                    }
+                    else {
+                        lastSLCommentIndentMap.put(sb, new Integer(currentIndent));
+                    }
+                }
+                else {
+                    lastSLCommentIndentMap.put(sb, new Integer(currentIndent));
+                }
+            }
+            
+            if (!text.startsWith(COMMENT_PREFIX_SINGLE_LINE)) {
+                appendString(sb, COMMENT_PREFIX_SINGLE_LINE);
+            }
+            appendString(sb, text);
+            
+            if (!text.endsWith(NEW_LINE_STRING)) {
+                appendNewLine(sb);
+            }
+        }
+    }
+
+    /**
+     * Appends "preceding" comments associated with the given query object to the given
+     * string buffer.
+     * 
+     * @param queryObject the query object for which comments should be written out
+     * @param sb the string buffer to append to
+     */
+    protected void appendCommentsPreceeding(SQLQueryObject queryObject, StringBuffer sb) {
+        List comments = queryObject.getSourceInfo().getComments();
+        
+        if (comments != null) {
+            for (Iterator it = comments.iterator(); it.hasNext();) {
+                SQLComment comment = (SQLComment) it.next();
+                
+                if (comment.getRelativePosition() == SQLComment.COMMENT_POSITION_PREV_LINE) {
+                    appendComment(comment, sb);
+                }
+            }
+        }
+    }
+
+    /**
+     * Appends "following" comments associated with the given query object to the given
+     * string buffer.
+     * 
+     * @param queryObject the query object for which comments should be written out
+     * @param sb the string buffer to append to
+     */
+    protected void appendCommentsSucceeding(SQLQueryObject queryObject, StringBuffer sb) {
+        List comments = queryObject.getSourceInfo().getComments();
+        
+        if (comments != null) {
+            for (Iterator it = comments.iterator(); it.hasNext();) {
+                SQLComment comment = (SQLComment) it.next();
+                
+                if (comment.getRelativePosition() != SQLComment.COMMENT_POSITION_PREV_LINE) {
+                    appendComment(comment, sb);
+                }
+            }
+        }
+    }
+
+    /**
+     * Appends the given data type name to the given string buffer.  The name could be the
+     * name of a built-in type, a user-distinct type, or a user-defined type.
+     * 
+     * @param sb the string buffer to which the data type name should be appended
+     * @param typeName the data type name to append
+     * @since DTP 1.8.1
+     */
+    protected void appendDataTypeName(StringBuffer sb, String dataTypeName) {
+        sb.append(dataTypeName);
+    }
+
+    /**
+     * This method will be invoked if the given <code>queryObject</code> could
+     * not have been processed successfully by this
+     * <code>SQLQuerySourceWriter</code>. It will invoke
+     * {@link SQLQueryObject#getSQL()} on the given <code>queryObject</code>
+     * and append the returned SQL to the given <code>StringBuffer</code>.
+     *  
+     * @param queryObject
+     * @param sb
+     * @return <code>true</code> if an external <code>SQLQuerySourceWriter</code>
+     *      was found to generate the SQL source for the given
+     *      <code>queryObject</code>
+     */
+    protected boolean appendExternalSQL(SQLQueryObject queryObject, StringBuffer sb) {
+        boolean foundExternalSourceWriter = false;
+        // avoid the endless loop by keeping the reference to queryObject
+        if (lastExternalyProcessed != queryObject) {
+            // avoid the endless loop by keeping the reference lastExternalyProcessed
+            // to the given queryObject,
+            // getSQL() invokation could cause the endless loop, if getSQL()
+            // forwards to this SQLQuerySourceWriter and appendSQL(SQLQueryObect,StringBuffer)
+            // again doesn't find the proper appendSQL()-method and invokes this
+            // method appendExternalSQL()
+            lastExternalyProcessed = queryObject;
+            String externalSQL = null;
+            
+            Class swClass = SQLQuerySourceWriterProvider.getInstance().getQuerySourceWriterClass(queryObject.getClass());
+            SQLQuerySourceWriter sw = null;
+            if (swClass != null) {
+                try  {
+                    sw = (SQLQuerySourceWriter) swClass.newInstance();
+                    
+                    externalSQL = sw.getSQL(queryObject);
+                    
+                    if (externalSQL != null && externalSQL.length() > 0) {
+                        SQLQuerySourceWriterProvider.getInstance().registerSourceWriter(swClass, queryObject.getClass().getPackage().getName());
+                        
+                        StringBuffer externalSQLSB = new StringBuffer(externalSQL);
+                        int lastLineIndent = getLastLineIndent(sb);
+                        int externalSQLIndent = lastLineIndent + STANDARD_INDENT;
+                        indentSQL(externalSQLSB, externalSQLIndent);
+                        sb.append(externalSQLSB);
+                        
+                        foundExternalSourceWriter = true;
+                        lastExternalyProcessed = null;
+                    }   
+                }
+                catch (InstantiationException e) {
+                    e.printStackTrace();
+                }
+                catch (IllegalAccessException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+        
+        return foundExternalSourceWriter;
+    }
+
+    /**
+     * Appends the given keyword to the given string buffer.  This gives the opportunity to control the
+     * case of the generated code.
+     * 
+     * @param sb the string buffer to which the keyword should be appended
+     * @param keyword the keyword to append
+     */
+    protected void appendKeyword(StringBuffer sb, String keyword) {
+        sb.append(keyword);
+    }
+    
+    /**
+     * Appends the given function name to the given string buffer.  The function can be a built-in
+     * or user-defined function.
+     * 
+     * @param sb the string buffer to which the function name should be appended
+     * @param funcName the function name to append
+     * @since DTP 1.8.1
+     */
+    protected void appendFunctionName(StringBuffer sb, String funcName) {
+        sb.append(funcName);
+    }
+    
+    /**
+     * Appends the given identifier to the given string buffer.  The identifier 
+     * might or might not be delimited or qualified.  (That is, it could be 
+     * "bar", "foo"."bar", foo."bar" ...)
+     * 
+     * @param sb the string buffer to which the identifier should be appended
+     * @param ident the identifier to append
+     * @since DTP 1.8.1
+     */
+    protected void appendIdentifier(StringBuffer sb, String ident) {
+        sb.append(ident);
+    }
+    
+    /**
+     * Appends one "indent unit" of spaces to the given string buffer.
+     * 
+     * @param sb the string buffer to which the indent space should be appended
+     */
+    protected void appendIndent(StringBuffer sb) {
+        int indentSpace = getIndentUnitSize();
+        appendSpace(sb, indentSpace);
+    }
+    
+    /**
+     * Appends the specified number of "indent units" to the given string buffer.
+     * 
+     * @param sb the string buffer to which the indent space should be appended
+     * @param indentUnitCount the number of indent units to append
+     */
+    protected void appendIndent(StringBuffer sb, int indentUnitCount) {
+        int indentSpace = getIndentUnitSize() * indentUnitCount;
+        appendSpace(sb, indentSpace);
+    }
+
+    /**
+     * Appends the given integer value to the given string buffer.
+     * 
+     * @param sb the string buffer to which the value should be appended
+     * @param intVal the integer value to append
+     */
+    protected void appendInt(StringBuffer sb, int intVal) {
+        sb.append(intVal);
+    }
+    
+    /**
+     * Appends a newline character ({@link #NEW_LINE}) to the given string buffer only if the last line
+     * does not already end with a newline.
+     *
+     * @param sb the string buffer to which the newline should be appended
+     */
+    protected void appendNewLine(StringBuffer sb) {
+        if (!isLastLineEmpty(sb)) {
+            sb.append(NEW_LINE);
+        }
+    }
+    
+    /**
+     * Appends the given operator (such as "+" or AND) to the given string buffer.
+     * 
+     * @param sb string buffer to which the operator should be appended
+     * @param oper the operator to append
+     */
+    protected void appendOperator(StringBuffer sb, String oper) {
+        sb.append(oper);
+    }
+    
+    /**
+     * Appends one space character to the given string buffer.
+     * 
+     * @param sb the string buffer to which the space should be appended
+     */
+    protected void appendSpace(StringBuffer sb) {
+        sb.append(SPACE);
+    }
+    
+    /**
+     * Appends the given number of space characters to the given string buffer.
+     * 
+     * @param sb the string buffer to which the spaces should be appended
+     */
+    protected void appendSpace(StringBuffer sb, int number) {
+        for (int i = 0; i < number; i++) {
+            sb.append(SPACE);
+        }
+    }
+    
+    /**
+     * Appends the given special register name to the given string buffer.  A
+     * special register is a pre-defined value such as CURRENT_SCHEMA (or 
+     * CURRENT SCHEMA).  Special registers are not delimited or qualified.
+     * 
+     * @param sb the string buffer to which to append the special register name
+     * @param regName the special register name to append
+     * @since DTP 1.8.1
+     */
+    protected void appendSpecialRegisterName(StringBuffer sb, String regName) {
+        sb.append(regName);
+    }
+    
+    /**
+     * Appends the given symbol (such a paren or comma) to the given string buffer.
+     * 
+     * @param sb the string buffer to which the symbol should be appended
+     * @param symbol the symbol to append
+     */
+    protected void appendSymbol(StringBuffer sb, char symbol) {
+        sb.append(symbol);
+    }
+
+    /**
+     * Appends an arbitrary string to the given string buffer.
+     * 
+     * @param sb the string buffer to which the string should be appended
+     * @param str the string to append
+     */
+    protected void appendString(StringBuffer sb, String str) {
+        sb.append(str);
+    }
+    
+    /**
+     * Appends the content of one string buffer to another.
+     * 
+     * @param sb the string buffer to which the content will be appended
+     * @param bufToAppend the string buffer whose content will be appended to the other string buffer
+     */
+    protected void appendStringBuffer(StringBuffer sb, StringBuffer bufToAppend) {
+        sb.append(bufToAppend);
+    }
+    
+    /**
+     * TODO: refactor this so where ever its invoked now to invoke a similar
+     *  implementation in PlugIn org.eclipse.datatools.modelbase.sql
+     */
+    protected void appendSQL(SQLObject sqlObject, StringBuffer sb) {
+        if (sqlObject == null) { 
+            return; 
+        }
+
+        // this method gets mistakenly called for SQLQueryObjects, redirect
+        if (sqlObject instanceof SQLQueryObject) {
+            appendSQL((SQLQueryObject)sqlObject, sb);
+            return;
+        }
+        
+        try {
+            Method specificAppendSQLMethod = getSpecificAppendSQLMethod(sqlObject);
+
+            //StringBuffer localSpanSQL = new StringBuffer();
+            Object[] invokationArgs = new Object[] { sqlObject, sb };
+            specificAppendSQLMethod.setAccessible(true);
+            specificAppendSQLMethod.invoke(this, invokationArgs);
+            //sb.append(localSpanSQL);
+        }
+        catch (NoSuchMethodException nsme) {
+            // already been stacktraced
+        }
+        catch (IllegalAccessException iae) {
+            // check if  getSQL.setAccessible(true); did work 10 lines above
+            iae.printStackTrace();
+        }
+        catch (InvocationTargetException ite) {
+            // TODO: handle exception properly
+            ite.printStackTrace();
+            ite.getTargetException().printStackTrace();
+        }
+    }
+
+    /**
+     * Generic method invoking the appropriate <code>appendSpecificSQL</code>
+     * method for the runtime type of the given <code>queryObject</code>
+     * appending to the given StringBuffer <code>sb</code>.
+     * @param queryObject
+     * @param sb
+     */
+    protected void appendSQL(SQLQueryObject queryObject, StringBuffer sb) {
+        if (queryObject == null) { 
+            return; 
+        }
+
+        try {
+            Method specificAppendSQLMethod = getSpecificAppendSQLMethod(queryObject);
+
+            if (specificAppendSQLMethod != null) {
+                Object[] invokationArgs = new Object[] { queryObject, sb };
+                specificAppendSQLMethod.setAccessible(true);
+
+                if (preserveComments == true) { 
+                    appendCommentsPreceeding(queryObject, sb);
+                }
+
+                specificAppendSQLMethod.invoke(this, invokationArgs);
+
+                if (preserveComments == true) { 
+                    appendCommentsSucceeding(queryObject, sb);
+                }
+            }
+            else {
+                throw new NoSuchMethodException(
+                                "appendSQL(" +
+                                "\""+queryObject.getClass().getName()+"\")" +
+                                " not found in "+this.getClass().getName());
+            }
+        }
+        catch (NoSuchMethodException nsme) {
+            // already been stack-traced
+            boolean isSqlGenerated = appendExternalSQL(queryObject, sb);
+
+            if (!isSqlGenerated) {
+//                String interfaceName = getInterfaceName(queryObject.getClass());
+//                    
+//                StatementHelper.logError(NEW_LINE + this.getClass().getName()
+//                              + ": getSQL(" + interfaceName
+//                              + ") not implemented for given argument type: "
+//                              + queryObject.getClass().getName());
+                //nsme.printStackTrace();
+            }
+        }
+        catch (IllegalAccessException iae) {
+            // TODO: handle exception properly
+            // check if  getSQL.setAccessible(true); 10 lines above was succesful
+            iae.printStackTrace();
+        }
+        catch (IllegalArgumentException iae) {
+            // TODO: handle exception properly
+            iae.printStackTrace();
+        }
+        catch (InvocationTargetException ite) {
+            // TODO: handle exception properly
+            ite.printStackTrace();
+            ite.getTargetException().printStackTrace();
+        }
+    }
+
+    /**
+     * Appends the FETCH FIRST n ROWS ONLY clause with the given row fetch limit to the 
+     * given string buffer.
+     * 
+     * @param aRowFetchLimit the row fetch limit to use
+     * @param sb the string buffer to which the clause should be appended
+     */
+    protected void appendSQLForFetchFirstClause(int aRowFetchLimit, StringBuffer sb) {
+        if (aRowFetchLimit > 0) {
+            appendKeyword(sb, FETCH);
+            appendSpace(sb);
+            appendKeyword(sb, FIRST);
+            appendSpace(sb);
+            /* When the row fetch limit is 1 we generate the abbreviated form 
+             * FETCH FIRST ROW ONLY. */
+            if (aRowFetchLimit == 1) {
+                appendKeyword(sb, ROW);
+            }
+            else {
+                appendInt(sb, aRowFetchLimit);
+                appendSpace(sb);
+                appendKeyword(sb, ROWS);
+            }
+            appendSpace(sb);
+            appendKeyword(sb, ONLY);
+        }
+    }
+    
+    /** 
+     * Appends the given large object length value to the given string buffer, after 
+     * converting the length value to 'K', 'M', or 'G' units.
+     *
+     * @param size the length value to append
+     * @param sb the string buffer to which the length should be appended
+     */
+    protected void appendSQLForLargeObjectSize(int size, StringBuffer sb) {
+        int kilo = 1024,
+            mega = 1024 * 1024,
+            giga = 1024 * 1024 * 1024;
+
+        if (size > kilo && (size % kilo == 0)) {
+            if (size > mega && (size % mega == 0)) {
+                if (size > giga && (size % giga == 0)) {
+                    appendInt(sb, size/giga);
+                    appendSymbol(sb, 'G');
+                } else {
+                    appendInt(sb, size/mega);
+                    appendSymbol(sb, 'M');
+                }
+            } else {
+                appendInt(sb, size/kilo);
+                appendSymbol(sb, 'K');
+            }
+        } else if (size == Integer.MAX_VALUE) {
+            appendInt(sb, 2);
+            appendSymbol(sb, 'G');
+        } else {
+            appendInt(sb, size);
+        }
+    }
+
+    /**
+     * Appends SQL for the given order by clause list to the given string buffer.
+     * 
+     * @param orderByClauseList the clause to append
+     * @param sb the string buffer to which to append the SQL
+     */
+    protected void appendSQLForOrderByClause(List orderByClauseList, StringBuffer sb) {
+        appendKeyword(sb, ORDER_BY);
+        appendSpace(sb);
+
+        for (Iterator it = orderByClauseList.iterator(); it.hasNext();) {
+            OrderBySpecification orderBySpec = (OrderBySpecification) it.next();
+            if (StatementHelper.isOrderBySpecificationValid(orderBySpec)) {
+                appendSQL(orderBySpec, sb);
+                if (it.hasNext()) {
+                    appendSymbol(sb, COMMA);
+                    appendSpace(sb);
+                }
+            }
+        }
+    }
+ 
+    
+    /**
+     * Appends the proper SQL source for a List of any <code>SQLObject</code>
+     * without enclosing parenthesis.
+     *
+     * @param sqlObjectList the List of <code>SQLObject</code>s
+     * @param sb the <code>StringBuffer</code> to fill in
+     */
+    protected void appendSQLForSQLObjectList(List sqlObjectList, StringBuffer sb) {
+        if (sqlObjectList != null) {
+            int indent = getLastLineIndent(sb) + STANDARD_INDENT;
+
+            for (Iterator it = sqlObjectList.iterator(); it.hasNext();) {
+                SQLObject sqlObject = (SQLObject) it.next();
+                if (sqlObject != null) {
+                    appendSQL(sqlObject, sb);
+
+                    if (it.hasNext()) {
+                        appendSymbol(sb, COMMA);
+
+                        if (getLastLineLength(sb) > displayWidth - 20) {
+                            appendNewLine(sb);
+                            appendSpace(sb, indent);
+                        }
+                        else  {
+                            appendSpace(sb);
+                        }
+                    }
+                }
+            }
+        }
+    }
+
+    /**
+     * Appends the SQL source of the given table reference. It distinguishes
+     * between the <code>TableReference</code> types {@link TableNested} and 
+     * {@link TableJoined} and the <code>TableExpression</code> types
+     * {@link TableInDatabase}, 
+     * {@link org.eclipse.datatools.modelbase.sql.query.TableFunction}, 
+     * {@link org.eclipse.datatools.modelbase.sql.query.TableWithSpecification} and 
+     * - most important - {@link QueryExpressionBody}.
+     *
+     * @param tableRef the <code>TableReference</code>
+     * @param sb
+     */
+    protected void appendSQLForTableExpression(TableReference tableRef, StringBuffer sb) {
+        // TableReference is a subquery/tablequery?
+        if (tableRef instanceof QueryExpressionBody) {
+            QueryExpressionBody nestedQuery = (QueryExpressionBody) tableRef;
+            
+            appendSymbol(sb, PAREN_LEFT);
+            appendSQL(nestedQuery, sb);
+            appendSymbol(sb, PAREN_RIGHT);
+            
+            TableCorrelation tableCorr = nestedQuery.getTableCorrelation();
+            if (tableCorr != null) {
+                SQLQuerySourceInfo sourceInfo = nestedQuery.getSourceInfo();
+                SQLQuerySourceFormat sourceFormat = sourceInfo.getSqlFormat();
+                if (sourceFormat.getGenerateAsKeywordForTableCorrID() == true) {
+                    appendSpace(sb);
+                    appendKeyword(sb, AS);
+                }
+                appendSpace(sb);
+                appendSQL(tableCorr, sb);
+            }
+        }
+        else if (tableRef instanceof TableFunction) {
+            TableFunction tableFunction = (TableFunction) tableRef;
+            appendSQL(tableFunction, sb);
+        }
+        else  {
+            // is there a new type to be considered?
+            // invoke the general dispatcher appendSQL method to get the correct runtime type
+            appendSQL((SQLQueryObject)tableRef, sb);
+        } 
+    }
+
+    /**
+     * Appends the SQL source of the given <code>TableInDatabase</code> object
+     * to the given string buffer without any table correlation ID ("AS" alias). 
+     * Depending on the {@link SQLQuerySourceFormat#getQualifyIdentifiers()} option,
+     * this methods appends the simple name or the schema qualified name of the table.
+     * 
+     * @param tableInDB the table to append
+     * @param sb the string buffer to which to append the table name
+     */
+    protected void appendSQLForTableInDatabase(TableInDatabase tableInDB, StringBuffer sb) {
+        if (tableInDB != null) {
+            String tableName = tableInDB.getName();
+            Schema schema = null;
+            char delimQuoteChar = getDelimitedIdentifierQuote();
+            ISQLObjectNameHelper nameHelper = null;
+            
+            Table dbTable = tableInDB.getDatabaseTable();
+            if (dbTable != null) {
+                schema = tableInDB.getDatabaseTable().getSchema();
+                
+                /* If we have a SQL model Database object associated with the query model table object,
+                 * then try to get an object name helper from the SQL model. If we can get an object name 
+                 * helper, we will use that to delimit and qualify the table name rather than our local 
+                 * service. */
+                Database db = getDatabase(dbTable);
+                if (db != null) {
+                    nameHelper = getSQLObjectNameHelper(db);
+                    if (nameHelper != null) {
+                        String delimQuoteStr = Character.toString(delimQuoteChar);
+                        nameHelper.setIdentifierQuoteString(delimQuoteStr);
+                    }
+                }
+            }
+
+            /* Determine whether or not we should qualify the table name with a schema name, based on the 
+             * presence or absence of a schema object and the source format setting. */
+            boolean qualify = false;
+            if (schema != null && schema.getName() != null && schema.getName().length() > 0) {
+                qualify = true;
+                
+                SQLQuerySourceInfo sourceInfo = tableInDB.getSourceInfo();
+                SQLQuerySourceFormat sourceFormat = sourceInfo.getSqlFormat();
+                int qualifySpec = sourceFormat.getQualifyIdentifiers();
+                if (qualifySpec == SQLQuerySourceFormat.QUALIFY_IDENTIFIERS_NEVER
+                 || qualifySpec == SQLQuerySourceFormat.QUALIFY_IDENTIFIERS_WITH_TABLE_NAMES) {
+                    qualify = false;
+                }
+                else if (qualifySpec == SQLQuerySourceFormat.QUALIFY_IDENTIFIERS_WITH_SCHEMA_NAMES) {
+                    qualify = true;
+                }
+                else if (qualifySpec == SQLQuerySourceFormat.QUALIFY_IDENTIFIERS_IN_CONTEXT) {
+                    qualify = !StatementHelper.omitSchema(tableInDB);
+                }
+            }
+
+            String sqlFormatName = "";
+            
+            /* If we have a name helper, use it.  Qualify the table name if necessary. */
+            if (nameHelper != null) {
+                if (qualify == true) {
+                    sqlFormatName = nameHelper.getQualifiedNameInSQLFormat( dbTable );
+                }
+                else {
+                    sqlFormatName = nameHelper.getNameInSQLFormat( dbTable );
+                }
+                appendIdentifier(sb, sqlFormatName);
+            }
+            /* Otherwise use our local service to delimit the table name. */
+            else {
+                if (qualify) {
+                    String schemaName = schema.getName();
+                    sqlFormatName = convertCatalogIdentifierToSQLFormat(schemaName, delimQuoteChar);
+                    appendIdentifier(sb, sqlFormatName);
+                    appendSymbol(sb, DOT);
+                }
+                String sqlFormatTableName = convertCatalogIdentifierToSQLFormat(tableName, getDelimitedIdentifierQuote());
+                appendIdentifier(sb, sqlFormatTableName);
+            }
+        }
+    }
+
+    /**
+     * Appends the SQL source <code>sqlObject.getSQL()</code> to the given
+     * StringBuffer <code>sb</code>, breaking the lines if the
+     * <code>displayWidth</code> is exceeded.
+     * 
+     * @param sqlObject
+     * @param sb the StringBuffer to appand the SQL source of the given
+     *        <code>sqlObject</code> to
+     * @param indent number of white space ' ' to be inserted infromt of new
+     *        lines
+     * @param displayWidth
+     */
+    protected void appendWithConditionalLineBreaks(SQLObject sqlObject, StringBuffer sb, int indent, int displayWidth) {
+        StringBuffer localSB = new StringBuffer();
+        appendSQL(sqlObject, localSB);
+        
+        int lineLength = getLastLineLength(sb);
+        int nameSpaceLength = localSB.length();
+        
+        if (lineLength + nameSpaceLength > displayWidth) {
+            sb.append(NEW_LINE);
+            indentSQL(localSB, indent + STANDARD_INDENT);
+        } 
+        else {
+            sb.append(SPACE);
+        }
+        sb.append(localSB);
+    }
+
+    /**
+     * Converts the given identifier from "catalog" format (that is, the way the identifier is stored in
+     * the database catalog) to "SQL" format (that is, a way suitable for use in a SQL statement) using the
+     * given identifier quote character.  That means an identifier containing spaces or special characters
+     * will be "delimited" by the quote chars and any internal quote chars will be doubled.
+     * 
+     * @param catalogIdentifier the identifier to convert
+     * @param idDelimiterQuote the quote character (such as ") to use to delimit the identifier
+     * @since DTP 1.8.1
+     */
+    protected String convertCatalogIdentifierToSQLFormat(String catalogIdentifier, char idDelimiterQuote) {
+        return StatementHelper.convertCatalogIdentifierToSQLFormat( catalogIdentifier, idDelimiterQuote );
+    }
+
+    /**
+     * Filters out empty lines and lines with only whitespaces from given
+     * String <code>sql</code>.
+     * 
+     * @param sql
+     * @return filtered String <code>sql</code>
+     */
+    protected String filterOutEmptyLines(String sql) {
+        // filter out empty lines and lines with only whitespaces "\s"
+        // TODO: don't remove new lines within String literals
+        // TODO: better approach make sure there is no empty lines generated
+        String previousSql = sql;
+        sql = sql.replaceAll("\n(\\s*\\n)+", NEW_LINE_STRING);
+        if (previousSql.length() > sql.length()) {
+//            StatementHelper.logError(this.getClass().getName()+NEW_LINE_STRING
+//                            + "...find out why we generate an empty line here!"
+//                            + NEW_LINE_STRING
+//                            + previousSql.replaceAll("\n", "/n")
+//                            + " was substituted with " +NEW_LINE_STRING 
+//                            + sql.replaceAll("\n", "/n")
+//                            + "\n .../n = new line character\n");
+        }
+        
+        if (sql.startsWith( NEW_LINE_STRING ))
+        {
+            sql = sql.substring(1);
+        }
+        return sql;
+    }
+
+
+    /**
+     * @return
+     */
+    protected char getDelimitedIdentifierQuote() {
+        return delimitedIdentifierQuote;
+    }
+
+    /**
+     * Gets the number of spaces for the current "indent unit".
+     *  
+     * @return the standard indent size
+     */
+    protected int getIndentUnitSize() {
+        return indentUnitSize;
+    }
+    
+    /**
+     * Returns the indentation of the last line in the given StringBuffer.
+     * The indentation is determined by the number of white space
+     * <code>character</code>s ({@link #SPACE}) following the last new line
+     * <code>character</code> '\n' ({@link #NEW_LINE}).
+     * If no line break is found, the number of white space characters at the
+     * beginning of the given StringBuffer is returned.
+     * @see #SPACE
+     * @see #NEW_LINE
+     * @param sb a StringBuffer
+     * @return the number of white space characters in the last line of the
+     *         given StringBuffer sb
+     */
+    protected int getLastLineIndent(StringBuffer sb) {
+        int lastIndexOfLineBreak = sb.lastIndexOf(NEW_LINE_STRING);
+        int i = 0; // last line indent
+
+        for (i = 0; i < sb.length()-lastIndexOfLineBreak-1; i++) {
+            if (sb.charAt(lastIndexOfLineBreak+i+1) != SPACE) {
+                break;
+            }
+        }
+        
+        return i;
+    }
+    
+
+    /**
+     * Gets the Database object associated with the given Table object.
+     * 
+     * @param table the table for which the database is wanted
+     * @return the database associated with the table
+     */
+    private Database getDatabase(Table table) {
+        Database db = null;
+        
+        if (table != null) {
+            Schema schema = table.getSchema();
+            if (schema != null) {
+                db = schema.getCatalog() == null ? schema.getDatabase() : schema.getCatalog().getDatabase();
+            }
+        }
+        
+        return db;
+    }
+    
+    /**
+     * Gets a SQL Object name helper for the given database, if any.
+     * 
+     * @param database the current database
+     * @return the name helper, or null if none found for the current database
+     */
+    private ISQLObjectNameHelper getSQLObjectNameHelper(Database database) {
+        ISQLObjectNameHelper nameHelper = null;
+        
+        if (database != null) {
+            /* Get the current database type. */
+            String currentDBVendor = database.getVendor();
+            
+            /* Get an array of extenders of the SQL Object Name Handler extension point. */
+            IExtensionRegistry extensionRegistry = Platform.getExtensionRegistry();
+            IExtensionPoint nameHandlerExtensionPoint = 
+                extensionRegistry.getExtensionPoint(SQL_OBJECT_NAME_HELPER);
+            
+            if (nameHandlerExtensionPoint != null) {
+                IExtension [] nameHandlerExtensions = nameHandlerExtensionPoint.getExtensions();
+
+                /* Scan the array to get an extender registered for the current database type, if any. 
+                 * Stop on the first one found. */
+                int i = 0;
+                while (i < nameHandlerExtensions.length && nameHelper == null) {
+                    IExtension ext = nameHandlerExtensions[i];
+                    IConfigurationElement [] configElements = ext.getConfigurationElements();
+                    int j = 0;
+                    while (j < configElements.length && nameHelper == null) {
+                        String extVendor = configElements[j].getAttribute(SQL_OBJECT_NAME_HELPER_DBTYPE);
+                        if (currentDBVendor.equalsIgnoreCase(extVendor)) {
+                            try {
+                                Object executableExtension = 
+                                    configElements[j].createExecutableExtension(SQL_OBJECT_NAME_HELPER_CLASS);
+                                if (executableExtension instanceof ISQLObjectNameHelper) {
+                                    nameHelper = (ISQLObjectNameHelper) executableExtension;
+                                }
+                            }
+                            catch(CoreException ex) {
+                                // ignore error
+                            }
+                        }
+                        j++;
+                    }
+                    i++;
+                }
+            }
+        }
+
+        return nameHelper;
+    }
+  
+    /**
+     * Returns the length of the last line in the given StringBuffer. The length
+     * is determined by the number of characters following the last new line
+     * character '\n' ({@link #NEW_LINE}).
+     * If no line break is found, the length of the given
+     * StringBuffer is returned.
+     * @see #NEW_LINE
+     * @param sb a StringBuffer
+     * @return the length of the last line in the given StringBuffer
+     */
+    protected int getLastLineLength(StringBuffer sb) {
+        // TODO: that should not consider line length including comments on end of line or separate line!!! 
+        
+        int lastIndexOfLineBreak = sb.lastIndexOf(NEW_LINE_STRING);
+        int lastLineLength = 0;
+
+        if (lastIndexOfLineBreak == -1) {
+            lastLineLength = sb.length();
+        } else {
+            lastLineLength = sb.length()-lastIndexOfLineBreak-1;
+        }
+        return lastLineLength;
+    }
+
+    /**
+     * returns the <code>Method</code> 
+     * <code>appendSQL(SQLObject,StringBuffer)</code> for the argument of the
+     * same runtime type as the given <code>sqlObject</code>  
+     * @param sourceWriterClass the <code>SQLQuerySourceWriter</code> class on
+     *      which the specific <code>appendSpecificSQL</code> method for the
+     *      given <code>sqlObject</code> should be found
+     * @param sqlObject
+     * @return the <code>Method appendSQL</code> for the runtime type of the
+     *            given <code>sqlObject</code>
+     */
+    protected Method getSpecificAppendSQLMethod(Class sourceWriterClass, SQLObject sqlObject) throws NoSuchMethodException {
+        if (sqlObject == null) { 
+            return null; 
+        }
+
+        String interfaceName = null;
+        Method appendSQL = null;
+
+        Class sqlObjectClass = sqlObject.getClass();
+        Class sqlObjectInterfaceClass = sqlObjectClass;
+        
+        if (sqlObjectClass.getName().endsWith("Impl")) {
+            // if we have an impl we need to find its interface as all
+            // appendSQL methods have the interface as argument
+            // Class.forName doesn't help us in the eclipse runtime as
+            // the class loader of the SQLQuery model has no access to its
+            // extending plugins (no runtime dependency)
+            interfaceName = getInterfaceName(sqlObject.getClass());
+            Class[] sqlObjectInterfaces = sqlObjectClass.getInterfaces();
+            
+            for (int i = 0; i < sqlObjectInterfaces.length; i++) {
+                Class interfaceClass = sqlObjectClass.getInterfaces()[i];
+                if (interfaceClass.getName().equals(interfaceName)) {
+                    sqlObjectInterfaceClass = interfaceClass;
+                    break;
+                }
+            }
+        }
+        appendSQL = getSpecificAppendSQLMethod(sourceWriterClass, sqlObjectInterfaceClass);
+
+        return appendSQL;
+    }
+
+    /**
+     * returns the <code>Method</code> 
+     * <code>appendSQL(SQLObject,StringBuffer)</code> for the argument of the
+     * same runtime type as the given <code>sqlObject</code>  
+     * @param sqlObject
+     * @return the <code>Method appendSQL</code> for the runtime type of the
+     *            given <code>sqlObject</code>
+     */
+    protected Method getSpecificAppendSQLMethod(SQLObject sqlObject) throws NoSuchMethodException {
+        return getSpecificAppendSQLMethod(this.getClass(), sqlObject);
+    }
+
+    /**
+     * indents the given StringBuffer with <code>indent</code> number of
+     * spaces on a new line. a new-line will optionally be appended to the
+     * StringBuffer before appending the white space characters. If the last
+     * line is empty already (only contains white space), the StringBuffer will
+     * be stripped of any white space exceeding the given <code>indent</code>
+     * or will be appended the white space that are missing to match the given
+     * <code>indent</code>.
+     * 
+     * @param sb
+     * @param indent
+     */
+    protected void indentOnNewLine(StringBuffer sb, int indent) {
+        int lastLineLength = getLastLineLength(sb);
+        if (isLastLineEmpty(sb)) {
+            if (lastLineLength > indent) {
+                int hangOver = lastLineLength - indent;
+                sb.delete(sb.length() - hangOver, sb.length());
+            }
+            else {
+                appendSpace(sb, indent - lastLineLength);
+            }
+        }
+        else {
+            appendNewLine(sb);
+            appendSpace(sb, indent);
+        }
+    }
+
+    /**
+     * Indents the given StringBuffer <code>sql</code> according to the length
+     * of the given <code>indent</code>, means every line in <code>sql</code>
+     * will be prefixed with indent number of white space characters ' ' except
+     * for the first line. This method is useful to line up the SQL source of
+     * the given StringBuffer <code>sql</code> with the indentation of a
+     * StringBuffer that it will be appended to.
+     * 
+     * @param sql
+     * @param indent
+     */
+    protected void indentSQL(StringBuffer sql, int indent) {
+        String newLine = NEW_LINE_STRING;
+        StringBuffer indentWhiteSpace = new StringBuffer(indent);
+        appendSpace(indentWhiteSpace, indent);
+        int i = sql.indexOf(newLine, 0);
+        while (i > 0) {
+            sql.insert(i+1, indentWhiteSpace);
+            i = sql.indexOf(newLine, i+1);
+        }
+    }
+
+    /**
+     * Indents the given StringBuffer <code>subcomponentToIndent</code>
+     * according to the length of the last line in the given StringBuffer
+     * <code>container</code>,
+     * means every line in <code>subcomponentToIndent</code> will be prefixed
+     * with white space characters ' ' to line up with the end of the last
+     * character in the last line of the <code>container</code> StringBuffer.
+     *
+     * @param subcomponentToIndent
+     * @param container
+     */
+    protected void indentSQLToLastLineLengthOfContainer(StringBuffer subcomponentToIndent, StringBuffer container) {
+        String newLine = NEW_LINE_STRING;
+        int indentLength = getLastLineLength(container);
+        StringBuffer indent = new StringBuffer(indentLength);
+        appendSpace(indent, indentLength);
+
+        int i = subcomponentToIndent.indexOf(newLine, 0);
+        while (i > 0) {
+            subcomponentToIndent.insert(i+1, indent);
+            i = subcomponentToIndent.indexOf(newLine, i+1);
+        }
+    }
+
+    /**
+     * Returns the <code>true</code> if the last line in the given StringBuffer
+     * is empty. The last line is regarded empty, if the given StringBuffer only
+     * contains white-space <code>character</code>s ({@link #SPACE}) or after
+     * the last new-line <code>character</code> '\n' ({@link #NEW_LINE}) in the
+     * given StringBuffer only contains white-space <code>character</code>s.
+     * @see #SPACE
+     * @see #NEW_LINE
+     * @param sb a StringBuffer
+     * @return the number of white space characters in the last line of the
+     *         given StringBuffer sb
+     */
+    protected boolean isLastLineEmpty(StringBuffer sb) {
+        boolean isLastLineEmpty = true;
+        
+        int lastIndexOfLineBreak = sb.lastIndexOf(NEW_LINE_STRING);
+        
+        for (int i = lastIndexOfLineBreak + 1; i < sb.length(); i++)  {
+            if (sb.charAt(i) != SPACE) {
+                isLastLineEmpty = false;
+                break;
+            }
+        }
+        return isLastLineEmpty;
+    }
+
+    /**
+     * Determines if the given <code>column</code> should be qualified according to the current configuration 
+     * parameters specified or if it is ambiguous.
+     * <p>
+     * Referenced configuration parameters:
+     * <ul>
+     * <li>alwaysQualifyColumnNamesForMultipleTables
+     * <li>qualifyColumnNamesInSubqueriesWhenQualifiedInSuperQuery
+     * <li>alwaysQualifyColumnNamesForSubqueries
+     * <li>alwaysQualifyColumnNamesReferencedInSubqueries
+     * </ul>
+     * 
+     * @param column the column to check
+     * @return true when the column name should be qualified, otherwise false
+     */
+    protected boolean isQualifiedColumnNameRequired(ValueExpressionColumn column) {
+        boolean shouldQualify = false;
+        
+        /* Get the QuerySelect that contains the column reference.*/
+        QuerySelect colRefSelect = (QuerySelect) StatementHelper.getEContainerRecursively(column, QuerySelect.class);
+        if (colRefSelect != null) {
+            /* Check whether we need to qualify the column name because there are multiple tables in scope. */
+            if (shouldQualify == false && alwaysQualifyColumnNamesForMultipleTables == true) {
+                /* Get the FROM clause of the QuerySelect and determine if it has multiple tables. */
+                List fromTables = StatementHelper.getTableExpressionsInQuerySelect(colRefSelect);
+                if (fromTables != null && fromTables.size() > 1) {
+                    shouldQualify = true;
+                }
+
+                /* If the immediately enclosing query didn't have multiple tables, then check to see if an
+                 * enclosing QuerySelect has multiple tables. Example:
+                 *   SELECT T1.COL1, T3.COL3 FROM T1, T3 WHERE EXISTS (SELECT COL2 FROM T2 WHERE T1.COL1 = T2.COL2) */
+                if (shouldQualify == false && qualifyColumnNamesInSubqueriesWhenQualifiedInSuperQuery) {
+                    QuerySelect subSelect = colRefSelect;
+                    QuerySelect superSelect = (QuerySelect) StatementHelper.getEContainerRecursively(subSelect, QuerySelect.class);
+                    
+                    /* Check the super queries, if any. */
+                    while (shouldQualify == false && superSelect != null) {
+                        fromTables = StatementHelper.getTableExpressionsInQuerySelect(superSelect);
+                        if (fromTables != null && fromTables.size() > 1) {
+                            shouldQualify = true;
+                        }
+                        
+                        subSelect = superSelect;
+                        superSelect = (QuerySelect) StatementHelper.getEContainerRecursively(subSelect, QuerySelect.class);
+                    }
+                }
+            }
+
+            /* Check whether we should qualify the column because it is in a subquery.  (That is, we need to 
+             * distinguish between columns in scope of the subquery and columns of superior scope.  For example,
+             *   "SELECT * FROM T1 WHERE EXISTS (SELECT * FROM T2 WHERE T1.COL1 = T2.COL2)" */
+            if (shouldQualify == false && alwaysQualifyColumnNamesForSubqueries == true) {              
+                QuerySelect superSelect = (QuerySelect) StatementHelper.getEContainerRecursively(colRefSelect, QuerySelect.class);
+                if (superSelect != null) {
+                    shouldQualify = true;
+                }
+            }
+
+            /* Check whether we should qualify the column because it belongs to a table in a different  
+             * QuerySelect than that which contains the column reference.  For example, the reference "T1.COL1" in 
+             * the statement "SELECT COL1 FROM T1 WHERE EXISTS (SELECT * FROM T2 WHERE T1.COL1 = COL2)" refers
+             * to a table in the enclosing QuerySelect.
+             * Note: a column contained in an OrderBySpecification has no QuerySelect as container, but can also 
+             * never be referred-to in a subselect. */
+            if (shouldQualify == false && alwaysQualifyColumnNamesReferencedInSubqueries == true) {
+                /* Get the QuerySelect that contains the table the column reference belongs to. */                
+                TableExpression colTableExpr = column.getTableExpr();
+                /* Don't qualify if the table associated with the column is the same as the query select
+                 * expression containing the column.  (That prevents an internal ORDER BY expression from
+                 * getting qualified.)  Otherwise go on to check for the condition described above. */
+                if (colTableExpr != colRefSelect) {                
+                    QuerySelect tableSelect = StatementHelper.getQuerySelectForTableReference(colTableExpr);
+                    if (colRefSelect != null && tableSelect != colRefSelect) {
+                        shouldQualify = true;
+                    }
+                }
+            }
+        }
+        
+        /* Check whether the column name is ambiguous in its context. 
+         * (This applies to columns in Merge statements as well as Selects.) */
+        if (shouldQualify == false) {
+           shouldQualify = StatementHelper.isColumnNameAmbiguous(column);
+        }
+        
+        return shouldQualify;
+    }
+
+    /**
+     * Sets the number of spaces for the current "indent unit".
+     *  
+     * @param size the standard indent size to set
+     */
+    protected void setIndentUnitSize(int size) {
+        indentUnitSize = size;
+    }
+    
+    /**
+     * Removes multiple occurrences of white space characters {@link #NEW_LINE}
+     * and {@link #SPACE} in the given StringBuffer.
+     *
+     * @param toBeTrimmed
+     */
+    protected void trimWhiteSpace(StringBuffer toBeTrimmed) {
+        StringBuffer trimmed = new StringBuffer();
+        char lastChar = SPACE;
+        for (int i = 0; i < toBeTrimmed.length(); i++) {
+            char currentChar = toBeTrimmed.charAt(i);
+
+            if (currentChar == NEW_LINE) {
+                if (lastChar != SPACE) {
+                    trimmed.append(SPACE);
+                    lastChar = SPACE;
+                }
+            }
+            else if (currentChar != SPACE || lastChar != SPACE) {
+                trimmed.append(currentChar);
+                lastChar = currentChar;
+            }
+        }
+        toBeTrimmed.replace(0, toBeTrimmed.length(), trimmed.toString());
+    }
+
+    /**
+     * takes the given StringBuffer that holds the SQL source of the given
+     * OrderBySpecification and appends {@link #DESC}if the
+     * OrderBySpecification is descending (
+     * <code>orderBySpec.isDescending() == true</code>)
+     */
+    protected void wrapSQL(OrderBySpecification orderBySpec, StringBuffer toWrapUp) {
+        if (orderBySpec != null) {
+            OrderingSpecType orderingSpecType = orderBySpec.getOrderingSpecOption();
+            if (orderingSpecType != OrderingSpecType.NONE_LITERAL) {
+                appendSpace(toWrapUp);
+                appendSpecificSQL(orderingSpecType, toWrapUp);
+            }
+            NullOrderingType nullOrderingType = orderBySpec.getNullOrderingOption();
+            if (nullOrderingType != NullOrderingType.NONE_LITERAL) {
+                appendSpace(toWrapUp);
+                appendSpecificSQL(nullOrderingType, toWrapUp);
+            }
+        }
+    }
+
+    /**
+     * takes the given StringBuffer that holds the SQL source of the given
+     * SQLPredicate and appends {@link #NOT}if the SQLPredicate is negated (
+     * <code>pred.isNegatedPredicate() == true</code>)
+     */
+    protected void wrapSQL(Predicate pred, StringBuffer toWrapUp) {
+        if (pred != null) {
+            if (pred.isNegatedPredicate()) {
+                StringBuffer prefix = new StringBuffer(4);
+                appendOperator(prefix, NOT);
+                appendSpace(prefix);
+                indentSQLToLastLineLengthOfContainer(toWrapUp, prefix);
+                toWrapUp.insert(0, prefix);
+            }
+            wrapSQL((QuerySearchCondition) pred, toWrapUp);
+        }
+    }
+
+    /**
+     * takes the given StringBuffer that holds the SQL source of the given
+     * SQLSearchCondition and puts it in parenthesis and appends {@link #NOT}if
+     * the SQLSearchCondition is negated (
+     * <code>pred.isNegatedCondition() == true</code>)
+     */
+    protected void wrapSQL(QuerySearchCondition cond, StringBuffer toWrapUp) {
+        if (cond != null) {
+            if (cond.isNegatedCondition()) {
+                StringBuffer prefix = new StringBuffer(4);
+                appendOperator(prefix, NOT);
+                appendSpace(prefix);
+                appendSymbol(prefix, PAREN_LEFT);
+                indentSQLToLastLineLengthOfContainer(toWrapUp, prefix);
+                toWrapUp.insert(0, prefix);
+                appendSymbol(toWrapUp, PAREN_RIGHT);
+            }
+        }
+    }
+
+    /**
+     * takes the given StringBuffer that holds the SQL source of the given
+     * SQLValueExpression and appends the unary operator, if present (
+     * <code>expr.getUnaryOperator() != null</code>)
+     */
+    protected void wrapSQL(QueryValueExpression expr, StringBuffer toWrapUp) {
+        if (expr != null) {
+            ValueExpressionUnaryOperator unaryOp = expr.getUnaryOperator();
+            if (unaryOp != null) {
+                StringBuffer prefix = new StringBuffer();
+                appendSpecificSQL(unaryOp, prefix);
+                indentSQLToLastLineLengthOfContainer(toWrapUp, prefix);
+                toWrapUp.insert(0, prefix);
+            }
+        }
+    }
+
+
+    /* ********************** protected append specific SQL methods *************************** */
+
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.datatypes.ApproximateNumericDataType#getSQL()
+     */
+    protected void appendSpecificSQL(ApproximateNumericDataType approxNumericDataType, StringBuffer sb) {
+        if (approxNumericDataType != null) {
+            String typeName = approxNumericDataType.getName();
+            if (typeName != null && typeName.length() > 0) {
+                appendKeyword(sb, typeName);
+            }
+            else {
+                PrimitiveType primitiveType = approxNumericDataType.getPrimitiveType();
+                appendSpecificSQL(primitiveType, sb);
+            }
+
+            if (approxNumericDataType.getPrecision() != 0) {
+                appendSpace(sb);
+                appendSymbol(sb, PAREN_LEFT);
+                appendInt(sb, approxNumericDataType.getPrecision());
+                appendSymbol(sb, PAREN_RIGHT);
+            }
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.datatypes.ArrayDataType#getSQL()
+     */
+    protected void appendSpecificSQL(ArrayDataType arrayDataType, StringBuffer sb) {
+        if (arrayDataType != null) {
+            ElementType elementType = arrayDataType.getElementType();
+            if (elementType != null) {
+                DataType dataType = elementType.getDataType();
+                if (dataType != null) {
+                    appendSQL(dataType, sb);
+                }
+            }
+
+            appendSpace(sb);
+            appendKeyword(sb, ARRAY);
+
+            if (arrayDataType.getMaxCardinality() != 0) {
+                appendSymbol(sb, BRACKET_LEFT);
+                appendInt(sb, arrayDataType.getMaxCardinality());
+                appendSymbol(sb, BRACKET_RIGHT);
+            }
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.datatypes.BinaryStringDataType#getSQL()
+     */
+    protected void appendSpecificSQL(BinaryStringDataType binaryDataType, StringBuffer sb) {
+        if (binaryDataType != null) {
+            String typeName = binaryDataType.getName();
+
+            /* DB2 supports the "FOR BIT DATA" suffix on CHARACTER data types, which transforms
+             * them into binary string datatypes.  When generating SQL, need to substitute the length 
+             * back into the name, which looks like this:  CHARACTER () FOR BIT DATA 
+             * Note: this would be better handled by creating a DB2-specific datatype class so
+             * we can generate the SQL in the DB2-specific source writer. */
+            int parenLoc = typeName.indexOf('(');
+            if (parenLoc > 0) {
+                StringBuffer lengthSB = new StringBuffer();
+
+                if (binaryDataType.getLength() > 0)  {
+                    if (binaryDataType.getPrimitiveType() == PrimitiveType.BINARY_LARGE_OBJECT_LITERAL) {
+                        appendSQLForLargeObjectSize(binaryDataType.getLength(), lengthSB);
+                    }
+                    else {
+                        appendInt(lengthSB, binaryDataType.getLength());
+                    }
+                }
+                String dataTypeLen = lengthSB.toString();
+                typeName = typeName.substring(0, parenLoc + 1) + dataTypeLen + typeName.substring(parenLoc + 1);
+                appendKeyword(sb, typeName);
+            }
+            else {
+                if (typeName != null && typeName.length() > 0) {
+                    appendKeyword(sb, typeName);
+                }
+                else {
+                    PrimitiveType primitiveType = binaryDataType.getPrimitiveType();
+                    appendSpecificSQL(primitiveType, sb);
+                }
+
+                int dataTypeLen = binaryDataType.getLength();
+                if (dataTypeLen > 0) {
+                    appendSymbol(sb, PAREN_LEFT);
+
+                    if (binaryDataType.getPrimitiveType() == PrimitiveType.BINARY_LARGE_OBJECT_LITERAL) {
+                        appendSQLForLargeObjectSize(dataTypeLen, sb);
+                    }
+                    else {
+                        appendInt(sb, dataTypeLen);
+                    }
+                    appendSymbol(sb, PAREN_RIGHT);
+                }
+            }
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.CallStatement#getSQL()
+     */
+    protected void appendSpecificSQL(CallStatement callStmt, StringBuffer sb) {
+        if (callStmt != null) {
+            appendKeyword(sb, CALL);
+            appendSpace(sb);
+            ProcedureReference ref = callStmt.getProcedureRef();
+            appendSpecificSQL(ref, sb);
+
+            appendSpace(sb);
+            appendSymbol(sb, PAREN_LEFT);
+            List argList = callStmt.getArgumentList();
+            appendSQLForSQLObjectList(argList, sb);
+            appendSymbol(sb, PAREN_RIGHT);
+        }
+    }
+    
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.datatypes.CharacterStringDataType#getSQL()
+     */
+    protected void appendSpecificSQL(CharacterStringDataType charDataType, StringBuffer sb) {
+        if (charDataType != null) {
+            String typeName = charDataType.getName();
+            if (typeName != null && typeName.length() > 0) {
+                appendKeyword(sb, typeName);
+            }
+            else {
+                PrimitiveType primitiveType = charDataType.getPrimitiveType();
+                appendSpecificSQL(primitiveType, sb);
+            }
+
+            if (charDataType.getLength() > 0) {
+                appendSpace(sb);
+                appendSymbol(sb, PAREN_LEFT);
+
+                if (charDataType.getPrimitiveType() == PrimitiveType.CHARACTER_LARGE_OBJECT_LITERAL
+                        || charDataType.getPrimitiveType() == PrimitiveType.NATIONAL_CHARACTER_LARGE_OBJECT_LITERAL) {
+                    appendSQLForLargeObjectSize(charDataType.getLength(), sb);
+                }
+                else {
+                    appendInt(sb, charDataType.getLength());
+                }
+                appendSymbol(sb, PAREN_RIGHT);
+            }
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.ColumnName#getSQL()
+     */
+    protected void appendSpecificSQL(ColumnName colName, StringBuffer sb) {
+        if (colName != null) {
+            String colNameStr = colName.getName();
+            String sqlFormatName = convertCatalogIdentifierToSQLFormat(colNameStr, getDelimitedIdentifierQuote());
+            appendIdentifier(sb, sqlFormatName);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.datatypes.DateDataType#getSQL()
+     */
+    protected void appendSpecificSQL(DateDataType dateDataType, StringBuffer sb) {
+        if (dateDataType != null) {
+            String typeName = dateDataType.getName();
+            if (typeName != null && typeName.length() > 0) {
+                appendDataTypeName(sb, typeName);
+            }
+            else {
+                PrimitiveType primitiveType = dateDataType.getPrimitiveType();
+                appendSpecificSQL(primitiveType, sb);
+            }
+        }
+    }
+
+    /**
+     * @see DistinctUserDefinedType#getSQL()
+     */
+    protected void appendSpecificSQL(DistinctUserDefinedType distinctType, StringBuffer sb) {
+        if (distinctType != null) {
+            char delimChar = getDelimitedIdentifierQuote();
+            Schema schema = distinctType.getSchema();
+            if (schema != null && schema.getName() != null && schema.getName().length() > 0) {
+                String schemaName = schema.getName();
+                String sqlFormatSchemaName = convertCatalogIdentifierToSQLFormat(schemaName, delimChar);
+                appendIdentifier(sb, sqlFormatSchemaName);
+                appendSymbol(sb, DOT);           
+            }
+
+            String typeName = distinctType.getName();
+            String sqlFormatTypeName = convertCatalogIdentifierToSQLFormat(typeName, delimChar);
+            appendDataTypeName(sb, sqlFormatTypeName);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.datatypes.FixedPrecisionDataType#getSQL()
+     */
+    protected void appendSpecificSQL(FixedPrecisionDataType fixedPrecDataType, StringBuffer sb) {
+        if (fixedPrecDataType != null) {
+            String typeName = fixedPrecDataType.getName();
+            if (typeName != null && typeName.length() > 0) {
+                appendKeyword(sb, typeName);
+            }
+            else {
+                PrimitiveType primitiveType = fixedPrecDataType.getPrimitiveType();
+                appendSpecificSQL(primitiveType, sb);
+            }
+
+            if (fixedPrecDataType.getPrecision() != 0) {
+                appendSpace(sb);
+                appendSymbol(sb, PAREN_LEFT);
+                appendInt(sb, fixedPrecDataType.getPrecision());
+
+                if (fixedPrecDataType.getScale() != 0) {
+                    appendSymbol(sb, COMMA);
+                    appendInt(sb, fixedPrecDataType.getScale());
+                }
+
+                appendSymbol(sb, PAREN_RIGHT);
+            }
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.GroupingExpression#getSQL()
+     */
+    protected void appendSpecificSQL(GroupingExpression groupingExpr, StringBuffer sb) {
+        if (groupingExpr != null) {
+            QueryValueExpression valExpr = groupingExpr.getValueExpr();
+            appendSQL(valExpr, sb);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.GroupingSets#getSQL()
+     */
+    protected void appendSpecificSQL(GroupingSets groupingSets, StringBuffer sb) {
+        if (groupingSets != null) {
+            appendKeyword(sb, GROUPING_SETS);
+            appendSpace(sb);
+
+            appendSymbol(sb, PAREN_LEFT);
+            List groupingSetsElementList = groupingSets.getGroupingSetsElementList();
+            appendSQLForSQLObjectList(groupingSetsElementList, sb);
+            appendSymbol(sb, PAREN_RIGHT);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementExpression#getSQL()
+     */
+    protected void appendSpecificSQL(GroupingSetsElementExpression groupingSetsElementExpr, StringBuffer sb) {
+        if (groupingSetsElementExpr != null) {
+            Grouping grouping = groupingSetsElementExpr.getGrouping();
+            appendSQL(grouping, sb);
+        }
+    }
+
+    
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.GroupingSetsElementSublist#getSQL()
+     */
+    protected void appendSpecificSQL(GroupingSetsElementSublist groupingSetsSublist, StringBuffer sb) {
+        if (groupingSetsSublist != null) {
+            appendSymbol(sb, PAREN_LEFT);
+            List groupingSetsElementExprList = groupingSetsSublist.getGroupingSetsElementExprList();
+            appendSQLForSQLObjectList(groupingSetsElementExprList, sb);
+            appendSymbol(sb, PAREN_RIGHT);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.datatypes.IntegerDataType#getSQL()
+     */
+    protected void appendSpecificSQL(IntegerDataType intDataType, StringBuffer sb) {
+        if (intDataType != null) {
+            String typeName = intDataType.getName();
+            if (typeName != null && typeName.length() > 0) {
+                appendKeyword(sb, typeName);
+            }
+            else {
+                PrimitiveType primitiveType = intDataType.getPrimitiveType();
+                appendSpecificSQL(primitiveType, sb);
+            }
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.MergeInsertSpecification#getSQL()
+     */
+    protected void appendSpecificSQL(MergeInsertSpecification mergeInsertSpec, StringBuffer sb) {
+        if (mergeInsertSpec != null) {
+            appendKeyword(sb, WHEN);
+            appendSpace(sb);
+            appendKeyword(sb, NOT);
+            appendSpace(sb);
+            appendKeyword(sb, MATCHED);
+            appendSpace(sb);
+            appendKeyword(sb, THEN);
+            appendNewLine(sb);
+            appendIndent(sb);
+            appendKeyword(sb, INSERT);
+            appendSpace(sb);
+            appendSymbol(sb, PAREN_LEFT);
+            List targetColList = mergeInsertSpec.getTargetColumnList();
+            appendSQLForSQLObjectList(targetColList, sb);
+            appendSymbol(sb, PAREN_RIGHT);
+            appendNewLine(sb);
+            appendIndent(sb);
+            appendKeyword(sb, VALUES);
+            appendSpace(sb);
+            ValuesRow sourceValuesRow = mergeInsertSpec.getSourceValuesRow();
+            appendSQL(sourceValuesRow, sb);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.MergeOnCondition#getSQL()
+     */
+    protected void appendSpecificSQL(MergeOnCondition mergeOnCondition, StringBuffer sb) {
+        if (mergeOnCondition != null) {
+            QuerySearchCondition searchCond = mergeOnCondition.getSearchCondition();
+            appendSQL(searchCond, sb);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.MergeSourceTable#getSQL()
+     */
+    protected void appendSpecificSQL(MergeSourceTable mergeSourceTable, StringBuffer sb) {
+        if (mergeSourceTable != null) {
+            TableReference tableRef = mergeSourceTable.getTableRef();
+            if (tableRef instanceof QueryExpressionBody) {
+                appendNewLine(sb);
+                appendIndent(sb);
+            }
+            appendSQLForTableExpression(tableRef, sb);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.MergeTargetTable#getSQL()
+     */
+    protected void appendSpecificSQL(MergeTargetTable mergeTargetTable, StringBuffer sb) {
+        if (mergeTargetTable != null) {
+            TableExpression tableExpr = mergeTargetTable.getTableExpr();
+            appendSQL(tableExpr, sb); 
+        }
+    }
+    
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.MergeUpdateSpecification#getSQL()
+     */
+    protected void appendSpecificSQL(MergeUpdateSpecification mergeUpdateSpec, StringBuffer sb) {
+        if (mergeUpdateSpec != null) {
+            appendKeyword(sb, WHEN);
+            appendSpace(sb);
+            appendKeyword(sb, MATCHED);
+            appendSpace(sb);
+            appendKeyword(sb, THEN);
+            appendNewLine(sb);
+            appendIndent(sb);
+            appendKeyword(sb, UPDATE);
+            appendSpace(sb);
+            appendKeyword(sb, SET);
+            List assignExprList = mergeUpdateSpec.getAssignementExprList();
+            Iterator assignExprListIter = assignExprList.iterator();
+            while (assignExprListIter.hasNext()) {
+                UpdateAssignmentExpression assignExpr = (UpdateAssignmentExpression) assignExprListIter.next();
+                appendNewLine(sb);
+                appendIndent(sb, 2);
+                appendSQL(assignExpr, sb);
+
+                if (assignExprListIter.hasNext()) {
+                    appendSymbol(sb, COMMA);
+                }
+            }
+        }
+    }
+ 
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.datatypes.MultisetDataType#getSQL()
+     */
+    protected void appendSpecificSQL(MultisetDataType multisetDataType, StringBuffer sb) {
+        if (multisetDataType != null) {
+            ElementType elementType = multisetDataType.getElementType();
+            if (elementType != null) {
+                DataType dataType = elementType.getDataType();
+                if (dataType != null) {
+                    appendSQL(dataType,sb);
+                }
+            }
+
+            appendSpace(sb);
+            appendKeyword(sb, MULTISET);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.NullOrderingType#getSQL()
+     */
+    protected void appendSpecificSQL(NullOrderingType nullOrderingType, StringBuffer sb) {
+        if (nullOrderingType != null) {
+            int typeVal = nullOrderingType.getValue();
+            switch(typeVal){
+                case NullOrderingType.NULLS_FIRST:
+                    appendKeyword(sb, NULL_ORDERING_TYPE_NULLS_FIRST);
+                    break;
+                case NullOrderingType.NULLS_LAST:
+                    appendKeyword(sb, NULL_ORDERING_TYPE_NULLS_LAST);
+                    break;
+                default:
+                    break;
+            }
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.OrderByOrdinal#getSQL()
+     */
+    protected void appendSpecificSQL(OrderByOrdinal orderByOrd, StringBuffer sb) {
+        if (orderByOrd != null) {
+            StringBuffer localSb = new StringBuffer();
+            int ordVal = orderByOrd.getOrdinalValue();
+            appendInt(localSb, ordVal);
+            wrapSQL((OrderBySpecification) orderByOrd, localSb);
+            appendStringBuffer(sb, localSb);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.OrderByResultColumn#getSQL()
+     */
+    protected void appendSpecificSQL(OrderByResultColumn orderByExpr, StringBuffer sb) {
+        if (orderByExpr != null && orderByExpr.getResultCol() != null) {
+            StringBuffer localSB = new StringBuffer();
+            ResultColumn resultColumn = orderByExpr.getResultCol();
+            
+            String resultColName = resultColumn.getName();
+            if (resultColName != null) {
+                String sqlFormatResultColName = convertCatalogIdentifierToSQLFormat(resultColName, getDelimitedIdentifierQuote());
+                appendIdentifier(localSB, sqlFormatResultColName);
+            }
+            else {
+                QueryValueExpression resultColValExpr = resultColumn.getValueExpr();
+                String sqlFormatResultColExpr = getSQL(resultColValExpr);
+                appendString(localSB, sqlFormatResultColExpr);
+            }
+
+            wrapSQL((OrderBySpecification) orderByExpr, localSB);
+            
+            appendStringBuffer(sb, localSB);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression#getSQL()
+     */
+    protected void appendSpecificSQL(OrderByValueExpression orderByExpr, StringBuffer sb) {
+        if (orderByExpr != null) {
+            StringBuffer localSb = new StringBuffer();
+            QueryValueExpression valExpr = orderByExpr.getValueExpr();
+            appendSQL(valExpr, localSb);
+            wrapSQL((OrderBySpecification) orderByExpr, localSb);
+            appendStringBuffer(sb, localSb);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.OrderingSpecType#getSQL()
+     */
+    protected void appendSpecificSQL(OrderingSpecType orderingType, StringBuffer sb) {
+        if (orderingType != null) {
+            int typeVal = orderingType.getValue();
+            switch(typeVal){
+                case OrderingSpecType.ASC:
+                    appendKeyword(sb, ORDERING_SPEC_TYPE_ASC);
+                    break;
+                case OrderingSpecType.DESC:
+                    appendKeyword(sb, ORDERING_SPEC_TYPE_DESC);
+                    break;
+                default:
+                    break;
+            }
+        }
+    }    
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateBasic#getSQL()
+     */
+    protected void appendSpecificSQL(PredicateBasic predBasic, StringBuffer sb) {
+        if (predBasic != null) {
+            StringBuffer sbPred = new StringBuffer();
+
+            QueryValueExpression leftValExpr = predBasic.getLeftValueExpr();
+            if (leftValExpr != null) {
+                appendSQL(leftValExpr, sbPred);
+            }
+
+            appendSpace(sbPred);
+
+            PredicateComparisonOperator predCompOp = predBasic.getComparisonOperator();
+            if (predCompOp != null) {
+                appendSpecificSQL(predCompOp, sbPred);
+            }
+
+            appendSpace(sbPred);
+
+            QueryValueExpression rightValExpr = predBasic.getRightValueExpr();
+            if (rightValExpr != null) {
+                appendSQL(rightValExpr, sbPred);
+            }
+
+            if (predBasic.isHasSelectivity()) {
+                appendSpace(sbPred);
+                appendKeyword(sbPred, SELECTIVITY);
+                appendSpace(sbPred);
+                Integer predSelVal = predBasic.getSelectivityValue();
+                int predSelValInt = predSelVal.intValue();
+                appendInt(sbPred, predSelValInt);
+            }
+
+            wrapSQL((Predicate) predBasic, sbPred);
+            appendStringBuffer(sb, sbPred);
+        }
+    }
+    
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateBetween#getSQL()
+     */
+    protected void appendSpecificSQL(PredicateBetween predBetween, StringBuffer sb) {
+        if (predBetween != null) {
+            StringBuffer sbPred = new StringBuffer();
+
+            if (predBetween.isNotBetween()) {
+                appendOperator(sbPred, NOT);
+                appendSpace(sbPred);
+            }
+            
+            QueryValueExpression leftValExpr = predBetween.getLeftValueExpr();
+            appendSQL(leftValExpr, sbPred);
+
+            appendSpace(sbPred);
+            appendKeyword(sbPred, BETWEEN);
+            appendSpace(sbPred);
+            
+            QueryValueExpression rightValExpr1 = predBetween.getRightValueExpr1();
+            appendSQL(rightValExpr1, sbPred);
+
+            appendSpace(sbPred);
+            appendOperator(sbPred, AND);
+            appendSpace(sbPred);
+
+            QueryValueExpression rightValExpr2 = predBetween.getRightValueExpr2();
+            appendSQL(rightValExpr2, sbPred);
+
+            wrapSQL((Predicate) predBetween, sbPred);
+            appendStringBuffer(sb, sbPred);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateComparisonOperator#getSQL()
+     */
+    protected void appendSpecificSQL(PredicateComparisonOperator compOp, StringBuffer sb) {
+        if (compOp != null) {
+            int compOpVal = compOp.getValue();
+
+            switch (compOpVal) {
+                case PredicateComparisonOperator.EQUAL:
+                    appendOperator(sb, EQUAL);
+                    break;
+                case PredicateComparisonOperator.NOT_EQUAL:
+                    appendOperator(sb, NOT_EQUAL);
+                    break;
+                case PredicateComparisonOperator.LESS_THAN:
+                    appendOperator(sb, LESS_THAN);
+                    break;
+                case PredicateComparisonOperator.GREATER_THAN:
+                    appendOperator(sb, GREATER_THAN);
+                    break;
+                case PredicateComparisonOperator.LESS_THAN_OR_EQUAL:
+                    appendOperator(sb, LESS_THAN_OR_EQUAL);
+                    break;
+                case PredicateComparisonOperator.GREATER_THAN_OR_EQUAL:
+                    appendOperator(sb, GREATER_THAN_OR_EQUAL);
+                    break;
+                default:
+                    break;
+            }
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateExists#getSQL()
+     */
+    protected void appendSpecificSQL(PredicateExists predExists, StringBuffer sb) {
+        if (predExists != null) {
+            StringBuffer sbPred = new StringBuffer();
+
+            appendKeyword(sbPred, EXISTS);
+            appendSpace(sbPred);
+            appendSymbol(sbPred, PAREN_LEFT);
+            QueryExpressionBody queryExpr = predExists.getQueryExpr();
+            appendSQL(queryExpr, sbPred);
+            appendSymbol(sbPred, PAREN_RIGHT);
+
+            wrapSQL((Predicate) predExists, sbPred);
+            indentSQLToLastLineLengthOfContainer(sbPred, sb);
+            appendStringBuffer(sb, sbPred);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateInValueList#getSQL()
+     */
+    protected void appendSpecificSQL(PredicateInValueList predInValueList, StringBuffer sb) {
+        if (predInValueList != null) {
+            StringBuffer sbPred = new StringBuffer();
+
+            QueryValueExpression valExpr = predInValueList.getValueExpr();
+            appendSQL(valExpr, sbPred);
+            appendSpace(sbPred);
+
+            if (predInValueList.isNotIn()) {
+                appendKeyword(sbPred, NOT);
+                appendSpace(sbPred);
+            }
+
+            appendKeyword(sbPred, IN);
+            appendSpace(sbPred);
+
+            List valExprList = predInValueList.getValueExprList();
+            if (valExprList != null) {
+                appendSymbol(sbPred, PAREN_LEFT);
+                appendSQLForSQLObjectList(valExprList, sbPred);
+                appendSymbol(sbPred, PAREN_RIGHT);
+            }
+
+            wrapSQL((Predicate) predInValueList, sbPred);
+            appendStringBuffer(sb, sbPred);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect#getSQL()
+     */
+    protected void appendSpecificSQL(PredicateInValueRowSelect predInValRowSelect, StringBuffer sb) {
+        if (predInValRowSelect != null) {
+            StringBuffer sbPred = new StringBuffer();
+
+            List valExprList = predInValRowSelect.getValueExprList();
+            if (valExprList != null) {
+                appendSymbol(sbPred, PAREN_LEFT);
+                appendSQLForSQLObjectList(valExprList, sbPred);
+                appendSymbol(sbPred, PAREN_RIGHT);
+            }
+
+            appendSpace(sbPred);
+            if (predInValRowSelect.isNotIn()) {
+                appendKeyword(sbPred, NOT);
+                appendSpace(sbPred);
+            }
+
+            appendKeyword(sbPred, IN);
+            appendSpace(sbPred);
+
+            QueryExpressionRoot queryExpr = predInValRowSelect.getQueryExpr();
+            if (queryExpr != null) {
+                appendSymbol(sbPred, PAREN_LEFT);
+                appendSQL(queryExpr, sbPred);
+                appendSymbol(sbPred, PAREN_RIGHT);
+            }
+
+            wrapSQL((Predicate) predInValRowSelect, sbPred);
+            indentSQLToLastLineLengthOfContainer(sbPred, sb);
+            appendStringBuffer(sb, sbPred);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect#getSQL()
+     */
+    protected void appendSpecificSQL(PredicateInValueSelect predInValSelect, StringBuffer sb) {
+        if (predInValSelect != null) {
+            StringBuffer sbPred = new StringBuffer();
+
+            QueryValueExpression valExpr = predInValSelect.getValueExpr();
+            appendSQL(valExpr, sbPred);
+            appendSpace(sbPred);
+
+            if (predInValSelect.isNotIn()) {
+                appendKeyword(sbPred, NOT);
+                appendSpace(sbPred);
+            }
+
+            appendKeyword(sbPred, IN);
+            appendSpace(sbPred);
+
+            QueryExpressionRoot queryExpr = predInValSelect.getQueryExpr();
+            if (queryExpr != null) {
+                appendSymbol(sbPred, PAREN_LEFT);
+                appendSQL(queryExpr, sbPred);
+                appendSymbol(sbPred, PAREN_RIGHT);
+            }
+
+            wrapSQL((Predicate) predInValSelect, sbPred);
+            indentSQLToLastLineLengthOfContainer(sbPred, sb);
+            appendStringBuffer(sb, sbPred);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateIsNull#getSQL()
+     */
+    protected void appendSpecificSQL(PredicateIsNull predNull, StringBuffer sb) {
+        if (predNull != null) {
+            StringBuffer sbPred = new StringBuffer();
+
+            QueryValueExpression valExpr = predNull.getValueExpr();
+            appendSQL(valExpr, sbPred);
+            appendSpace(sbPred);
+            appendKeyword(sbPred, IS);
+            appendSpace(sbPred);
+
+            if (predNull.isNotNull()) {
+                appendKeyword(sbPred, NOT);
+                appendSpace(sbPred);
+            }
+            appendKeyword(sbPred, NULL);
+
+            wrapSQL((Predicate) predNull, sbPred);
+            appendStringBuffer(sb, sbPred);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateLike#getSQL()
+     */
+    protected void appendSpecificSQL(PredicateLike predLike, StringBuffer sb) {
+        if (predLike != null) {
+            StringBuffer sbPred = new StringBuffer();
+
+            QueryValueExpression matchingValExpr = predLike.getMatchingValueExpr();
+            appendSQL(matchingValExpr, sbPred);
+            appendSpace(sbPred);
+            if (predLike.isNotLike() == true) {
+                appendKeyword(sbPred, NOT);
+                appendSpace(sbPred);
+            }
+            appendKeyword(sbPred, LIKE);
+            appendSpace(sbPred);
+            QueryValueExpression patternValExpr = predLike.getPatternValueExpr();
+            appendSQL(patternValExpr, sbPred);
+
+            QueryValueExpression escapeValExpr = predLike.getEscapeValueExpr();
+            if (escapeValExpr != null) {
+                appendSpace(sbPred);
+                appendKeyword(sbPred, ESCAPE);
+                appendSpace(sbPred);
+                appendSQL(escapeValExpr, sbPred);
+            }
+
+            wrapSQL((Predicate) predLike, sbPred);
+            appendStringBuffer(sb, sbPred);
+        }
+    }
+
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect#getSQL()
+     */
+    protected void appendSpecificSQL(PredicateQuantifiedRowSelect predQuantifiedRowSelect, StringBuffer sb) {
+        if (predQuantifiedRowSelect != null) {
+            StringBuffer sbPred = new StringBuffer();
+
+            appendSymbol(sbPred, PAREN_LEFT);
+            List valExprList = predQuantifiedRowSelect.getValueExprList();
+            appendSQLForSQLObjectList(valExprList, sbPred);
+            appendSymbol(sbPred, PAREN_RIGHT);
+            appendSpace(sbPred);
+
+            appendOperator(sbPred, EQUAL);
+            appendSpace(sbPred);
+
+            PredicateQuantifiedType predQuantType = predQuantifiedRowSelect.getQuantifiedType();
+            appendSpecificSQL(predQuantType, sbPred);
+            appendSpace(sbPred);
+
+            QueryExpressionRoot queryExpr = predQuantifiedRowSelect.getQueryExpr();
+            if (queryExpr != null) {
+                appendSymbol(sbPred, PAREN_LEFT);
+                appendSQL(queryExpr, sbPred);
+                appendSymbol(sbPred, PAREN_RIGHT);
+            }
+
+            wrapSQL((Predicate) predQuantifiedRowSelect, sbPred);
+            indentSQLToLastLineLengthOfContainer(sbPred, sb);
+            appendStringBuffer(sb, sbPred);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedType#getSQL()
+     */
+    protected void appendSpecificSQL(PredicateQuantifiedType predQuantifiedType, StringBuffer sb) {
+        if (predQuantifiedType != null) {
+            int quantifiedTypeVal = predQuantifiedType.getValue();
+    
+            switch (quantifiedTypeVal) {
+                case PredicateQuantifiedType.ALL:
+                    appendKeyword(sb, ALL);
+                    break;
+                case PredicateQuantifiedType.ANY:
+                    appendKeyword(sb, ANY);
+                    break;
+                case PredicateQuantifiedType.SOME:
+                    appendKeyword(sb, SOME);
+                    break;
+                default:
+                    break;
+            }
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect#getSQL()
+     */
+    protected void appendSpecificSQL(PredicateQuantifiedValueSelect predQuantifiedValSelect, StringBuffer sb) {
+        if (predQuantifiedValSelect != null) {
+            StringBuffer sbPred = new StringBuffer();
+
+            QueryValueExpression valExpr = predQuantifiedValSelect.getValueExpr();
+            appendSQL(valExpr, sbPred);
+            appendSpace(sbPred);
+
+            PredicateComparisonOperator compOp = predQuantifiedValSelect.getComparisonOperator();
+            appendSpecificSQL(compOp, sbPred);
+            appendSpace(sbPred);
+
+            PredicateQuantifiedType quantType = predQuantifiedValSelect.getQuantifiedType();
+            appendSpecificSQL(quantType, sbPred);
+            appendSpace(sbPred);
+
+            QueryExpressionRoot queryExpr = predQuantifiedValSelect.getQueryExpr();
+            if (queryExpr != null) {
+                appendSymbol(sbPred, PAREN_LEFT);
+                appendSQL(queryExpr, sbPred);
+                appendSymbol(sbPred, PAREN_RIGHT);
+            }
+
+            wrapSQL((Predicate) predQuantifiedValSelect, sbPred);
+            indentSQLToLastLineLengthOfContainer(sbPred, sb);
+            appendStringBuffer(sb, sbPred);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.datatypes.PrimitiveType#getSQL()
+     */
+    protected void appendSpecificSQL(PrimitiveType primitiveType, StringBuffer sb) {
+        if (primitiveType != null) {
+            //sb.append(StatementHelper.convertCatalogIdentifierToSQLFormat(primitiveType.getName(), getDelimitedIdentifierQuote()));
+            // ! primitiveType CLOB .getName() == CHARACTER_LARGE_OBJECT
+            String typeName = DataTypeHelper.getPrimitiveTypeName(primitiveType);
+            appendDataTypeName(sb, typeName);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.procedurereference#getSQL()
+     */
+    protected void appendSpecificSQL(ProcedureReference procRef, StringBuffer sb) {
+        if (procRef != null) {   
+            Procedure proc = procRef.getProcedure();
+            if (proc != null) {
+                String schemaName = null;
+                Schema schema = proc.getSchema();
+                if (schema != null) {
+                    schemaName = schema.getName();
+                }
+
+                char quoteChar = getDelimitedIdentifierQuote();
+                if (schemaName != null) {
+                    String convertedSchemaName = convertCatalogIdentifierToSQLFormat(schemaName, quoteChar);
+                    appendIdentifier(sb, convertedSchemaName);
+                    appendSymbol(sb, DOT);
+                }
+
+                String procName = proc.getName();
+                if (procName != null) {
+                    String convertedProcName = convertCatalogIdentifierToSQLFormat(procName, quoteChar);
+                    appendIdentifier(sb, convertedProcName);
+                }
+            }
+        }
+    }
+    
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryCombined#getSQL()
+     */
+    protected void appendSpecificSQL(QueryCombined qryComb, StringBuffer sb) {
+        if (qryComb != null) {
+            int combinedIndent = getLastLineLength(sb);
+            QueryExpressionBody leftQuery = qryComb.getLeftQuery();
+            appendSQL(leftQuery, sb);
+            appendNewLine(sb);
+            appendSpace(sb, combinedIndent);
+            QueryCombinedOperator queryCombinedOp = qryComb.getCombinedOperator();
+            appendSpecificSQL(queryCombinedOp, sb);
+            appendNewLine(sb);
+
+            /* Do we have a nested QueryCombined on the right side?  If so, then it must have been in 
+             * parens for precedence indication because the parser has precedence from left to right 
+             * (that is, left recursion). */
+            boolean isRightQueryNested = qryComb.getRightQuery() instanceof QueryCombined;
+            if (isRightQueryNested) {
+                appendSymbol(sb, PAREN_LEFT);
+                appendNewLine(sb);
+                appendSpace(sb, 4);
+            }
+            appendSpace(sb, combinedIndent);
+            QueryExpressionBody rightQuery = qryComb.getRightQuery();
+            appendSQL(rightQuery, sb);
+            if (isRightQueryNested) {
+                appendNewLine(sb);
+                appendSpace(sb, combinedIndent);
+                appendSymbol(sb, PAREN_RIGHT);
+            }
+
+            List sortSpecList = qryComb.getSortSpecList();
+            if (StatementHelper.isOrderByClauseContainsValidOrderBySpecification(sortSpecList)) {
+                appendNewLine(sb);
+                appendSpace(sb, combinedIndent);
+                appendSpace(sb, STANDARD_INDENT);
+                appendSQLForOrderByClause(sortSpecList, sb);
+            }
+
+            int rowFetchLimit = qryComb.getRowFetchLimit();
+            if (rowFetchLimit > 0) {
+                appendSpace(sb);
+                appendSQLForFetchFirstClause(rowFetchLimit, sb);
+            }
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryCombinedOperator#getSQL()
+     */
+    protected void appendSpecificSQL(QueryCombinedOperator op, StringBuffer sb) {
+        if (op != null) {
+            int opVal = op.getValue();
+            switch (opVal) {
+                case QueryCombinedOperator.UNION:
+                    appendOperator(sb, UNION);
+                    break;
+                case QueryCombinedOperator.UNION_ALL:
+                    appendOperator(sb, UNION_ALL);
+                    break;
+                case QueryCombinedOperator.INTERSECT:
+                    appendOperator(sb, INTERSECT);
+                    break;
+                case QueryCombinedOperator.INTERSECT_ALL:
+                    appendOperator(sb, INTERSECT_ALL);
+                    break;
+                case QueryCombinedOperator.EXCEPT:
+                    appendOperator(sb, EXCEPT);
+                    break;
+                case QueryCombinedOperator.EXCEPT_ALL:
+                    appendOperator(sb, EXCEPT_ALL);
+                    break;
+                default:
+                    break;
+            }
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement#getSQL()
+     */
+    protected void appendSpecificSQL(QueryDeleteStatement deleteStmt, StringBuffer sb) {
+        if (deleteStmt != null) {
+            appendKeyword(sb, DELETE);
+            appendSpace(sb);
+            appendKeyword(sb, FROM);
+            appendSpace(sb);
+            TableInDatabase targetTable = deleteStmt.getTargetTable();
+            appendSQL(targetTable, sb);
+            appendNewLine(sb);
+
+            QuerySearchCondition whereClause = deleteStmt.getWhereClause();
+            if (whereClause != null) {
+                appendSpace(sb);
+                appendKeyword(sb, WHERE);
+                appendSpace(sb);
+                appendSQL(whereClause, sb);
+            }
+
+            CursorReference cursorRef = deleteStmt.getWhereCurrentOfClause();
+            if (cursorRef != null) {
+                // TODO: handle WHERE CURRENT OF <cursor> clause
+            }
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryExpressionRoot#getSQL()
+     */
+    protected void appendSpecificSQL(QueryExpressionRoot qryExprRoot, StringBuffer sb)  {
+        if (qryExprRoot != null) {
+            int withTableIndent = STANDARD_INDENT;
+
+            List withTableSpecList = qryExprRoot.getWithClause();
+            if (withTableSpecList != null && withTableSpecList.size() > 0) {
+                appendKeyword(sb, WITH);
+                appendNewLine(sb);
+                appendSpace(sb, withTableIndent);
+
+                for (Iterator withIt = withTableSpecList.iterator(); withIt.hasNext();) {
+                    WithTableSpecification tableWith = (WithTableSpecification) withIt.next();
+
+                    appendSQL(tableWith, sb);
+
+                    if (withIt.hasNext()) {
+                        appendSymbol(sb, COMMA);
+                        appendNewLine(sb);
+                        appendSpace(sb, withTableIndent);
+                    }
+                }
+
+                appendNewLine(sb);
+            }
+            QueryExpressionBody queryExpr = qryExprRoot.getQuery();
+            appendSQL(queryExpr, sb);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryInsertStatement#getSQL()
+     */
+    protected void appendSpecificSQL(QueryInsertStatement insertStmt, StringBuffer sb) {
+        if (insertStmt != null) {
+            appendKeyword(sb, INSERT);
+            appendSpace(sb);
+            appendKeyword(sb, INTO);
+            appendSpace(sb);
+            TableInDatabase targetTable = insertStmt.getTargetTable();
+            if (targetTable != null) {
+                appendSQL(targetTable, sb);
+            }
+
+            List targetColList = insertStmt.getTargetColumnList();
+            if (targetColList != null && targetColList.size() > 0) {
+                appendSpace(sb);
+                appendSymbol(sb, PAREN_LEFT);
+                appendSQLForSQLObjectList(targetColList, sb);
+                appendSymbol(sb, PAREN_RIGHT);
+            }
+
+            QueryExpressionRoot sourceQuery = insertStmt.getSourceQuery();
+            if (sourceQuery != null) {
+                appendNewLine(sb);
+                appendSpace(sb, STANDARD_INDENT);
+                appendSQL(sourceQuery, sb);
+            }
+            else {
+                appendNewLine(sb);
+                appendSpace(sb, STANDARD_INDENT);
+                appendKeyword(sb, VALUES);
+                appendSpace(sb);
+                List sourceValRowList = insertStmt.getSourceValuesRowList();
+                if (sourceValRowList != null && sourceValRowList.size() > 0)  {
+                    for (Iterator it = sourceValRowList.iterator(); it.hasNext();){
+                        ValuesRow row = (ValuesRow) it.next();
+                        //sb.append(PAREN_LEFT);
+                        appendSQL(row, sb);
+                        //sb.append(PAREN_RIGHT);
+                        if (it.hasNext()) {
+                            appendSymbol(sb, COMMA);
+                            appendNewLine(sb);
+                            appendSpace(sb, 9);
+                        }
+                    }
+                }
+            }
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryMergeStatement#getSQL()
+     */
+    protected void appendSpecificSQL(QueryMergeStatement mergeStmt, StringBuffer sb) {
+        if (mergeStmt != null) {
+            appendKeyword(sb, MERGE);
+            appendSpace(sb);
+            appendKeyword(sb, INTO);
+            appendSpace(sb);   
+            MergeTargetTable targetTable = mergeStmt.getTargetTable();
+            appendSQL(targetTable, sb);
+
+            appendNewLine(sb);
+            appendKeyword(sb, USING);
+            appendSpace(sb);
+            MergeSourceTable sourceTable = mergeStmt.getSourceTable();
+            appendNewLine(sb);
+            appendIndent(sb);
+            appendSQL(sourceTable, sb);
+
+            appendNewLine(sb);
+            appendKeyword(sb, ON);
+            appendSpace(sb);
+            MergeOnCondition onCondition = mergeStmt.getOnCondition();
+            appendSQL(onCondition, sb);
+
+            List specOperList = mergeStmt.getOperationSpecList();
+            Iterator specOperListIter = specOperList.iterator();
+            while (specOperListIter.hasNext()) {
+                MergeOperationSpecification operSpec = (MergeOperationSpecification) specOperListIter.next();
+                if (operSpec instanceof MergeUpdateSpecification) {
+                    appendNewLine(sb);
+                    MergeUpdateSpecification updateSpec = (MergeUpdateSpecification) operSpec;
+                    appendSQL(updateSpec, sb);
+                }
+                else if (operSpec instanceof MergeInsertSpecification) {
+                    appendNewLine(sb);
+                    MergeInsertSpecification insertSpec = (MergeInsertSpecification) operSpec;
+                    appendSQL(insertSpec, sb);
+                }
+            }
+        }
+    }
+
+    /**
+     * @see com.ibm.db.models.sql.query.QueryNested#getSQL()
+     */
+    protected void appendSpecificSQL(QueryNested qryNest, StringBuffer sb) {
+        if (qryNest != null) {
+            appendSymbol(sb, PAREN_LEFT);
+            QueryExpressionBody nestedQuery = qryNest.getNestedQuery();
+            appendSQL(nestedQuery, sb);
+            appendSymbol(sb, PAREN_RIGHT);
+
+            List sortSpecList = qryNest.getSortSpecList();
+            if (StatementHelper.isOrderByClauseContainsValidOrderBySpecification(sortSpecList)) {
+                appendNewLine(sb);
+                appendSpace(sb, STANDARD_INDENT);
+                appendSQLForOrderByClause(sortSpecList, sb);
+            }
+
+            int rowFetchLimit = qryNest.getRowFetchLimit();
+            if (rowFetchLimit > 0) {
+                appendSpace(sb);
+                appendSQLForFetchFirstClause(rowFetchLimit, sb);
+            }
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySelect#getSQL()
+     */
+    protected void appendSpecificSQL(QuerySelect select, StringBuffer sb) {
+        if (select != null) {
+            StringBuffer sbSelect = new StringBuffer();
+    
+            /* If this select is not a sub-query, break lines between clauses. */
+            StringBuffer sbClauseIndent = new StringBuffer();
+            int selectStartOffset = getLastLineLength(sb);
+            String spacer4 = "    ";
+    
+            /* If this is a sub-select, don't start it after column 30. */
+            if (selectStartOffset > 20) {
+                selectStartOffset = getLastLineIndent(sb)+4;
+                appendNewLine(sbSelect);
+                appendSpace(sbSelect, selectStartOffset);
+            }
+    
+            appendSpace(sbClauseIndent, selectStartOffset+STANDARD_INDENT);
+    
+            // select-clause begin
+            appendKeyword(sbSelect, SELECT);
+            appendSpace(sbSelect);
+    
+            if (select.isDistinct()) {
+                appendKeyword(sbSelect, DISTINCT);
+                appendSpace(sbSelect);
+            }
+    
+            List selectClauseList = select.getSelectClause();
+            if (selectClauseList != null && selectClauseList.size() > 0) {
+                appendSQLForSQLObjectList(selectClauseList, sbSelect);
+            }
+            else {
+                appendString(sbSelect, ASTERISK);
+            }
+            // select-clause end
+    
+            // from-clause begin
+            appendNewLine(sbSelect);
+            appendStringBuffer(sbSelect, sbClauseIndent);
+    
+            appendKeyword(sbSelect, FROM);
+            appendSpace(sbSelect);
+    
+            List fromClauseList = select.getFromClause();
+            if (fromClauseList != null && fromClauseList.size() > 0) {
+                int lastTableStartIndex = sbSelect.length();
+                for (Iterator fromIt = select.getFromClause().iterator(); fromIt.hasNext();) {
+                    TableReference tableRef = (TableReference) fromIt.next();
+    
+                    appendSQLForTableExpression(tableRef, sbSelect);
+    
+                    if (fromIt.hasNext()) {
+                        appendSymbol(sbSelect, COMMA);
+                        appendSpace(sbSelect);
+                    }
+                    
+                    if (getLastLineLength(sbSelect) > displayWidth) {
+                        sbSelect.insert(lastTableStartIndex-1,spacer4);
+                        sbSelect.insert(lastTableStartIndex-1,sbClauseIndent.toString());
+                        sbSelect.insert(lastTableStartIndex-1,NEW_LINE);
+                    }
+    
+                    lastTableStartIndex = sbSelect.length();
+                }
+            }
+            // from-clause end
+    
+            // where-clause begin
+            QuerySearchCondition whereClause = select.getWhereClause();
+            if (whereClause != null) {
+                appendNewLine(sbSelect);
+                appendStringBuffer(sbSelect, sbClauseIndent);
+    
+                appendKeyword(sbSelect, WHERE);
+                appendSpace(sbSelect);
+                appendSQL(whereClause, sbSelect);
+            }
+            // where-clause end
+    
+            // group-by-clause begin
+            List groupByClauseList = select.getGroupByClause();
+            if (groupByClauseList != null && groupByClauseList.size() > 0) {
+                appendNewLine(sbSelect);
+                appendStringBuffer(sbSelect, sbClauseIndent);
+    
+                appendKeyword(sbSelect, GROUP_BY);
+                appendSpace(sbSelect);
+    
+                appendSQLForSQLObjectList(groupByClauseList, sbSelect);
+            }
+            // group-by-clause end
+    
+            // having-clause begin
+            QuerySearchCondition havingClause = select.getHavingClause();
+            if (havingClause != null) {
+                appendNewLine(sbSelect);
+                appendStringBuffer(sbSelect, sbClauseIndent);
+    
+                appendKeyword(sbSelect, HAVING);
+                appendSpace(sbSelect);
+    
+                appendSQL(havingClause, sbSelect);
+            }
+            // having-clause end
+    
+            // ORDER BY clause
+            List sortSpecList = select.getSortSpecList();
+            if (StatementHelper.isOrderByClauseContainsValidOrderBySpecification(sortSpecList)) {
+                appendNewLine(sbSelect);
+                appendStringBuffer(sbSelect, sbClauseIndent);
+                appendSQLForOrderByClause(sortSpecList, sbSelect);
+            }
+            
+            // FETCH FIRST n ROWS ONLY clause
+            int rowFetchLimit = select.getRowFetchLimit();
+            if (rowFetchLimit > 0) {
+                appendNewLine(sbSelect);
+                appendStringBuffer(sbSelect, sbClauseIndent);
+                appendSQLForFetchFirstClause(rowFetchLimit, sbSelect);
+            }
+            
+            //TODO: complete with into expression variable
+            List intoClauseList = select.getIntoClause();
+            if (intoClauseList != null && intoClauseList.size() > 0) {
+    //            String msg = "#appendSQL(QuerySelect) not implemented" +
+    //                    " for IntoClause!";
+    //            throw new UnsupportedOperationException(
+    //                            this.getClass().getName() + msg);
+            }
+    
+    
+            // if select is nested select (not the top select stmt)
+            // and its source is very short we don't break lines
+            if ( !(  select.eContainer() instanceof QueryExpressionRoot 
+                  && select.eContainer().eContainer() instanceof QuerySelectStatement
+                   )
+                && sbSelect.length() < 0
+                ) {
+                trimWhiteSpace(sbSelect);
+            }
+            
+            appendStringBuffer(sb, sbSelect);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySelectStatement#getSQL()
+     */
+    protected void appendSpecificSQL(QuerySelectStatement selectStmt, StringBuffer sb) {
+        if (selectStmt != null) {
+            QueryExpressionRoot queryExpr = selectStmt.getQueryExpr();
+            if (queryExpr != null) {
+                appendSQL(queryExpr, sb);
+
+                /* Add the ORDER BY clause, if any. */
+                List orderByClause = selectStmt.getOrderByClause();
+                if (StatementHelper.isOrderByClauseContainsValidOrderBySpecification(orderByClause)) {
+                    appendNewLine(sb);
+                    appendSpace(sb, STANDARD_INDENT);
+                    appendSQLForOrderByClause(orderByClause, sb);
+                }
+
+                /* Add the "updateability" hint clause, if any */
+                UpdatabilityExpression updatabilityExpr = selectStmt.getUpdatabilityExpr();
+                if (updatabilityExpr != null) {
+                    appendNewLine(sb);
+                    appendSpace(sb, STANDARD_INDENT);
+                    appendSQL(updatabilityExpr, sb);
+                }
+            } 
+            else {
+                appendString(sb, DEFAULT_STMT_SELECT);
+            }
+            appendNewLine(sb);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement#getSQL()
+     */
+    protected void appendSpecificSQL(QueryUpdateStatement updateStmt, StringBuffer sb) {
+        if (updateStmt != null) {
+            int clauseIndent = STANDARD_INDENT;
+            appendKeyword(sb, UPDATE);
+            appendSpace(sb);
+            TableInDatabase targTable = updateStmt.getTargetTable();
+            appendSQL(targTable, sb);
+            appendNewLine(sb);
+            appendSpace(sb, clauseIndent);
+
+            if (!updateStmt.getAssignmentClause().isEmpty()) {
+                appendKeyword(sb, SET);
+                appendSpace(sb);
+
+                for (Iterator it = updateStmt.getAssignmentClause().iterator(); it.hasNext();) {
+                    UpdateAssignmentExpression assignExpr = (UpdateAssignmentExpression) it.next();
+                    appendSQL(assignExpr, sb);
+                    if (it.hasNext()) {
+                        appendSymbol(sb, COMMA);
+                        if (getLastLineLength(sb) > 60) {
+                            appendNewLine(sb);
+                            appendSpace(sb, clauseIndent + 4);
+                        }
+                        else {
+                            appendSpace(sb);
+                        }
+                    }
+                }
+            }
+
+            if (updateStmt.getWhereClause() != null) {
+                appendNewLine(sb);
+                appendSpace(sb, clauseIndent);
+                appendKeyword(sb, WHERE);
+                appendSpace(sb);
+                QuerySearchCondition whereClause = updateStmt.getWhereClause();
+                appendSQL(whereClause, sb);
+            }
+
+            if (updateStmt.getWhereCurrentOfClause() != null) {
+                // TODO: handle cursor reference
+            }
+        }
+    }
+
+
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValues#getSQL()
+     */
+    protected void appendSpecificSQL(QueryValues queryValues, StringBuffer sb) {
+        if (queryValues != null) {
+            StringBuffer sbValues = new StringBuffer();
+
+            int valuesStartOffset = getLastLineLength(sb);
+
+            // if this is a subselect, don't start it after column 30
+            if (valuesStartOffset > 20) {
+                valuesStartOffset = getLastLineIndent(sb)+4;
+                appendNewLine(sbValues);
+                appendSpace(sbValues, valuesStartOffset);
+            }
+
+            // Values-clause begin
+            appendKeyword(sbValues, VALUES);
+            appendSpace(sbValues);
+
+            List valuesRowList = queryValues.getValuesRowList();
+            appendSQLForSQLObjectList(valuesRowList, sbValues);
+
+            // Append the ORDER BY clause, if a sort spec list is present.
+            List sortSpecList = queryValues.getSortSpecList();
+            if (StatementHelper.isOrderByClauseContainsValidOrderBySpecification(sortSpecList)) {
+                appendSpace(sbValues);
+                appendSQLForOrderByClause(sortSpecList, sbValues);
+            }
+
+            // append the FETCH FIRST clause, if present.
+            int rowFetchLimit = queryValues.getRowFetchLimit();
+            if (rowFetchLimit > 0) {
+                //            appendNewLine(sbValues);
+                //            appendSpace(sbValues, valuesStartOffset);
+                appendSpace(sbValues);
+                appendSQLForFetchFirstClause(rowFetchLimit, sbValues);
+            }
+
+            // if select is subselect (sb is empty) and is very short don't break lines
+            if (sb.length() > 0 &&  sbValues.length() < displayWidth) {
+                trimWhiteSpace(sbValues);
+            }
+
+            appendStringBuffer(sb, sbValues);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.ResultColumn#getSQL()
+     */
+    protected void appendSpecificSQL(ResultColumn resultCol, StringBuffer sb) {
+        if (resultCol != null) {
+            QueryValueExpression resultColValExpr = resultCol.getValueExpr();
+            appendSQL(resultColValExpr, sb);
+            String resultColName = resultCol.getName();
+            if (resultColName != null && resultColName.trim().length() > 0) {
+                appendSpace(sb);
+                appendKeyword(sb, AS);
+                appendSpace(sb);
+                String sqlFormatResultColName = convertCatalogIdentifierToSQLFormat(resultColName, getDelimitedIdentifierQuote());
+                appendIdentifier(sb, sqlFormatResultColName);
+            }
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.ResultTableAllColumns#getSQL()
+     */
+    protected void appendSpecificSQL(ResultTableAllColumns resultAllCols, StringBuffer sb) {
+        if (resultAllCols != null) {
+            boolean haveName = false;
+            
+            /* Get the table expression associated with the "all columns" object.  */
+            TableExpression tableExpr = resultAllCols.getTableExpr();
+            
+            /* If we have a table expression, then get a name for it and write it out, since we want 
+             * to put out "<tablename>.*" (ie, MYTABLE.*). */
+            if (tableExpr != null) { 
+                /* If the table has a correlation ID (alias), then use it. */
+                TableCorrelation tableCor = tableExpr.getTableCorrelation();
+                if (tableCor != null && tableCor.getName() != null && tableCor.getName().trim().length() > 0) {
+                    String tableCorrName = tableCor.getName();
+                    tableCorrName = convertCatalogIdentifierToSQLFormat(tableCorrName, getDelimitedIdentifierQuote());
+                    appendIdentifier(sb, tableCorrName);
+                    haveName = true;
+                } 
+                /* Else if the table expression is a database table, use the table name. */
+                else if (tableExpr instanceof TableInDatabase) {
+                    // that will take care of qualified table name
+                    TableInDatabase tableInDB = (TableInDatabase) tableExpr;
+                    appendSQLForTableExpression(tableInDB, sb);
+                    haveName = true;
+                }
+                /* Otherwise use whatever name has been given to the table expression. */
+                else {
+                    String tableExprName = tableExpr.getName();
+                    if (tableExprName != null && tableExprName.trim().length() > 0) {
+                        appendIdentifier(sb, tableExprName);
+                        haveName = true;
+                    }
+                }
+            }
+            else {
+                /* If the "all columns" object doesn't have a table expression,
+                 * then get whatever name is attached directly to the all columns object.
+                 * (This can happen if the all columns object wasn't properly resolved.)
+                 * This could be a qualified name in already in SQL format. */
+                String allColsName = resultAllCols.getName();
+                if (allColsName != null && allColsName.length() > 0) {
+                    appendIdentifier(sb, allColsName);
+                    haveName = true;
+                }
+            }
+            
+            if (haveName == true) {
+                appendSymbol(sb, DOT);
+                appendString(sb, STAR);
+            }
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined#getSQL()
+     */
+    protected void appendSpecificSQL(SearchConditionCombined condCombined, StringBuffer sb) {
+        if (condCombined != null) {
+            StringBuffer sbCond = new StringBuffer();
+            StringBuffer sbRightCond = new StringBuffer();
+
+            QuerySearchCondition leftCond = condCombined.getLeftCondition();
+            if (leftCond != null) {
+                appendSQL(leftCond, sbCond);
+            }
+            
+            QuerySearchCondition rightCond = condCombined.getRightCondition();
+            if (rightCond != null) {
+                appendSQL(rightCond, sbRightCond);
+            }
+            
+            // break line would be longer than 80 chars and is not still "blank"
+            int currentLineLength = sbCond.length() - sbCond.lastIndexOf(NEW_LINE_STRING);
+            int prospectiveNewLineLength = currentLineLength + sbRightCond.length();
+            if (currentLineLength > displayWidth || prospectiveNewLineLength > displayWidth) {
+                appendNewLine(sbCond);
+                appendSpace(sbCond, 4);
+            } else {
+                appendSpace(sbCond);
+            }
+            
+            SearchConditionCombinedOperator combinedOp = condCombined.getCombinedOperator();
+            appendSpecificSQL(combinedOp, sbCond);
+            appendSpace(sbCond);
+
+            appendStringBuffer(sbCond, sbRightCond);
+
+            wrapSQL((QuerySearchCondition) condCombined, sbCond);
+            appendStringBuffer(sb, sbCond);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.SearchConditionCombinedOperator#getSQL()
+     */
+    protected void appendSpecificSQL(SearchConditionCombinedOperator op, StringBuffer sb) {
+        if (op != null) {
+            int opVal = op.getValue();
+
+            switch (opVal) {
+                case SearchConditionCombinedOperator.AND:
+                    appendOperator(sb, AND);
+                    break;
+                case SearchConditionCombinedOperator.OR:
+                    appendOperator(sb, OR);
+                    break;
+                default:
+                    break;
+            }
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.SearchConditionNested#getSQL()
+     */
+    protected void appendSpecificSQL(SearchConditionNested condNest, StringBuffer sb) {
+        if (condNest != null) {
+            if (condNest.isNegatedCondition()) {
+                appendOperator(sb, NOT);
+                appendSpace(sb);
+            }
+
+            appendSymbol(sb, PAREN_LEFT);
+            if (condNest.getNestedCondition() != null) {
+                appendSQL(condNest.getNestedCondition(), sb);
+            }
+
+            appendSymbol(sb, PAREN_RIGHT);
+        }
+    }
+
+    /**
+     * @see SQLQueryArrayDataType
+     */
+    protected void appendSpecificSQL(SQLQueryArrayDataType type, StringBuffer sb) {
+        if (type != null) {
+            appendSpecificSQL((ArrayDataType) type, sb);
+        }
+    }
+    
+    /**
+     * @see SQLQueryMultisetDataType
+     */
+    protected void appendSpecificSQL(SQLQueryMultisetDataType type, StringBuffer sb) {
+        appendSpecificSQL((MultisetDataType) type, sb);
+    }
+   
+    /**
+     * @see StructuredUserDefinedType#getSQL()
+     */
+    protected void appendSpecificSQL(StructuredUserDefinedType type, StringBuffer sb) {
+        if (type != null) {
+            String typeName = type.getName();
+            typeName = convertCatalogIdentifierToSQLFormat(typeName, getDelimitedIdentifierQuote());
+            appendDataTypeName(sb, typeName);
+        }
+    }
+
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.SuperGroup#getSQL()
+     */
+    protected void appendSpecificSQL(SuperGroup superGroup, StringBuffer sb) {
+        if (superGroup != null) {
+            SuperGroupType superGroupType = superGroup.getSuperGroupType();
+            appendSpecificSQL(superGroupType, sb);
+            appendSymbol(sb, PAREN_LEFT);
+            List superGroupElementList = superGroup.getSuperGroupElementList();
+            appendSQLForSQLObjectList(superGroupElementList, sb);
+            appendSymbol(sb, PAREN_RIGHT);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.SuperGroupElementExpression#getSQL()
+     */
+    protected void appendSpecificSQL(SuperGroupElementExpression superGroupElementExpr, StringBuffer sb) {
+        if (superGroupElementExpr != null) {
+            GroupingExpression groupingExpr = superGroupElementExpr.getGroupingExpr();
+            appendSQL(groupingExpr, sb);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.SuperGroupElementSublist#getSQL()
+     */
+    protected void appendSpecificSQL(SuperGroupElementSublist superGroupSublist, StringBuffer sb) {
+        if (superGroupSublist != null) {
+            appendSymbol(sb, PAREN_LEFT);
+            List superGroupElementExprList = superGroupSublist.getSuperGroupElementExprList();
+            appendSQLForSQLObjectList(superGroupElementExprList, sb);
+            appendSymbol(sb, PAREN_RIGHT);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.SuperGroupType#getSQL()
+     */
+    protected void appendSpecificSQL(SuperGroupType groupType, StringBuffer sb) {
+        if (groupType != null) {
+            int groupTypeVal = groupType.getValue();
+            switch (groupTypeVal) {
+                case SuperGroupType.CUBE:
+                    appendKeyword(sb, CUBE);
+                    break;
+                case SuperGroupType.ROLLUP:
+                    appendKeyword(sb, ROLLUP);
+                    break;
+                case SuperGroupType.GRANDTOTAL:
+                    break;
+                default:
+                    break;
+            }
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.TableCorrelation#getSQL()
+     */
+    protected void appendSpecificSQL(TableCorrelation tableCorrelation, StringBuffer sb) {
+        if (tableCorrelation != null) {
+            String tableCorrName = tableCorrelation.getName();
+            String sqlFormatTableCorrName = convertCatalogIdentifierToSQLFormat(tableCorrName, getDelimitedIdentifierQuote());
+            appendIdentifier(sb, sqlFormatTableCorrName);
+
+            /* Add the column alias list, if any. */
+            List colNameList = tableCorrelation.getColumnNameList();
+            if (colNameList.size() > 0) {
+                appendSpace(sb);
+                appendSymbol(sb, PAREN_LEFT);
+                appendSQLForSQLObjectList(colNameList, sb);
+                appendSymbol(sb, PAREN_RIGHT);
+            }
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.TableFunction#getSQL()
+     */
+    protected void appendSpecificSQL(TableFunction tableFunc, StringBuffer sb) {
+        if (tableFunc != null) {
+            appendKeyword(sb, TABLE);
+            appendSpace(sb);
+            appendSymbol(sb, PAREN_LEFT);
+
+            if (tableFunc.getFunction() != null && tableFunc.getFunction().getSchema() != null) {
+                String schemaName = tableFunc.getFunction().getSchema().getName();
+                if (schemaName != null) {
+                    String sqlFormatSchemaName = convertCatalogIdentifierToSQLFormat(schemaName, getDelimitedIdentifierQuote());
+                    appendIdentifier(sb, sqlFormatSchemaName);
+                    appendSymbol(sb, DOT);
+                }
+            }
+
+            String tableFuncName = tableFunc.getName();
+            String sqlFormatTableFuncName = convertCatalogIdentifierToSQLFormat(tableFuncName, getDelimitedIdentifierQuote());
+            appendIdentifier(sb, sqlFormatTableFuncName);
+            appendSymbol(sb, PAREN_LEFT);
+
+            List paramList = tableFunc.getParameterList();
+            if (paramList != null) {
+                appendSQLForSQLObjectList(paramList, sb);
+            }
+
+            appendSymbol(sb, PAREN_RIGHT);
+            appendSymbol(sb, PAREN_RIGHT);
+
+            TableCorrelation tableCorr = tableFunc.getTableCorrelation();
+            if (tableCorr != null) {
+                SQLQuerySourceInfo sourceInfo = tableFunc.getSourceInfo();
+                SQLQuerySourceFormat sourceFormat = sourceInfo.getSqlFormat();
+                if (sourceFormat.getGenerateAsKeywordForTableCorrID() == true) {
+                    sb.append(SPACE);
+                    sb.append(AS);
+                }
+                appendSpace(sb);
+                appendSQL(tableCorr, sb);
+            }
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.TableInDatabase#getSQL()
+     */
+    protected void appendSpecificSQL(TableInDatabase tableInDB, StringBuffer sb) {
+        if (tableInDB != null) {
+            appendSQLForTableInDatabase(tableInDB, sb);
+
+            TableCorrelation tableCorr = tableInDB.getTableCorrelation();
+            if (tableCorr != null ) {
+                SQLQuerySourceInfo sourceInfo = tableInDB.getSourceInfo();
+                SQLQuerySourceFormat sourceFormat = sourceInfo.getSqlFormat();
+                if (sourceFormat.getGenerateAsKeywordForTableCorrID() == true) {
+                    appendSpace(sb);
+                    appendKeyword(sb, AS);
+                }
+                appendSpace(sb);
+                appendSQL(tableCorr, sb);
+            }
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.TableJoined#getSQL()
+     */
+    protected void appendSpecificSQL(TableJoined tableJoined, StringBuffer sb) {
+        // <table_ref> <opt_join_type> JOIN <table_ref> ON <condition>
+        if (tableJoined != null) {
+            TableReference leftTableRef = tableJoined.getTableRefLeft();
+            appendSQLForTableExpression(leftTableRef, sb);
+
+            if (tableJoined.getJoinOperator() != TableJoinedOperator.DEFAULT_INNER_LITERAL) {
+                appendSpace(sb);
+                TableJoinedOperator joinOp = tableJoined.getJoinOperator();
+                appendSpecificSQL(joinOp, sb);
+            }
+
+            appendSpace(sb);
+            appendKeyword(sb, JOIN);
+            appendSpace(sb);
+
+            TableReference rightTableRef = tableJoined.getTableRefRight();
+            appendSQLForTableExpression(rightTableRef, sb);
+
+            appendSpace(sb);
+            appendKeyword(sb, ON);
+            appendSpace(sb);
+
+            QuerySearchCondition joinCond = tableJoined.getJoinCondition();
+            appendSQL(joinCond, sb);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.TableJoinedOperator#getSQL()
+     */
+    protected void appendSpecificSQL(TableJoinedOperator op, StringBuffer sb) {
+        if (op != null) {
+            int opVal = op.getValue();
+
+            switch (opVal) {
+                case TableJoinedOperator.DEFAULT_INNER:
+                    break;
+                case TableJoinedOperator.EXPLICIT_INNER:
+                    appendKeyword(sb, INNER);
+                    break;
+                case TableJoinedOperator.FULL_OUTER:
+                    appendKeyword(sb, FULL);
+                    appendSpace(sb);
+                    appendKeyword(sb, OUTER);
+                    break;
+                case TableJoinedOperator.LEFT_OUTER:
+                    appendKeyword(sb, LEFT);
+                    appendSpace(sb);
+                    appendKeyword(sb, OUTER);
+                    break;
+                case TableJoinedOperator.RIGHT_OUTER:
+                    appendKeyword(sb, RIGHT);
+                    appendSpace(sb);
+                    appendKeyword(sb, OUTER);
+                    break;
+                default:
+                    break;
+            }
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.TableNested#getSQL()
+     */
+    protected void appendSpecificSQL(TableNested tableNested, StringBuffer sb) {
+        if (tableNested != null) {
+            TableReference tableRef = tableNested.getNestedTableRef();
+            appendSymbol(sb, PAREN_LEFT);
+            appendSQLForTableExpression(tableRef, sb);
+            appendSymbol(sb, PAREN_RIGHT);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.datatypes.TimeDataType#getSQL()
+     */
+    protected void appendSpecificSQL(TimeDataType dataType, StringBuffer sb) {
+        if (dataType != null) {
+            String typeName = dataType.getName();
+            if (typeName != null && typeName.length() > 0) {
+                appendKeyword(sb, typeName);
+            }
+            else {
+                PrimitiveType primitiveType = dataType.getPrimitiveType();
+                appendSpecificSQL(primitiveType, sb);
+            }
+        }
+        // For the TimeDataType, what to do with the timezone and fractional precision?
+    }
+
+    protected void appendSpecificSQL(UpdatabilityExpression updatabilityExpr, StringBuffer sb) {
+        if (updatabilityExpr != null) {
+            UpdatabilityType updateType = updatabilityExpr.getUpdatabilityType();
+            appendSpecificSQL(updateType, sb);
+            List updateOfColList = updatabilityExpr.getUpdateOfColumnList();
+            if (updateOfColList != null && updateOfColList.size() > 0) {
+                appendSpace(sb);
+                appendKeyword(sb, OF);
+                appendSpace(sb);
+                appendSQLForSQLObjectList(updateOfColList, sb);
+            }
+        }
+    }
+    
+    protected void appendSpecificSQL(UpdatabilityType updatabilityType, StringBuffer sb) {
+        if (updatabilityType != null) {
+            int typeVal = updatabilityType.getValue();
+
+            switch (typeVal) {
+                case UpdatabilityType.READ_ONLY:
+                    appendKeyword(sb, FOR);
+                    appendSpace(sb);
+                    appendKeyword(sb, READ);
+                    appendSpace(sb);
+                    appendKeyword(sb, ONLY);
+                    break;
+                case UpdatabilityType.UPDATE:
+                    appendKeyword(sb, FOR);
+                    appendSpace(sb);
+                    appendKeyword(sb, UPDATE);
+                    break;
+                default:
+                    break;
+            }
+        }
+    }
+    
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.UpdateAssignmentExpression#getSQL()
+     */
+    protected void appendSpecificSQL(UpdateAssignmentExpression impl, StringBuffer sb) {
+        if (impl != null) {
+            List targetColList = impl.getTargetColumnList();
+            if (targetColList != null && targetColList.size() > 0) {
+                if (targetColList.size() == 1) {
+                    Object listObj = targetColList.get(0);
+                    if (listObj instanceof SQLQueryObject) { 
+                        appendSQL((SQLQueryObject) listObj, sb);
+                    }
+                }
+                else {
+                    appendSymbol(sb, PAREN_LEFT);
+                    appendSQLForSQLObjectList(targetColList, sb);
+                    appendSymbol(sb, PAREN_RIGHT);
+                }
+            }
+
+            appendSpace(sb);
+            appendOperator(sb, EQUAL);
+            appendSpace(sb);
+
+            UpdateSource updateSrc = impl.getUpdateSource();
+            appendSQL(updateSrc, sb);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.UpdateOfColumn#getSQL()
+     */
+    protected void appendSpecificSQL(UpdateOfColumn updateOfCol, StringBuffer sb) {
+        if (updateOfCol != null) {
+            String colName = updateOfCol.getName();
+            String sqlFormatColName = convertCatalogIdentifierToSQLFormat(colName, getDelimitedIdentifierQuote());
+            appendIdentifier(sb, sqlFormatColName);
+        }
+    }
+    
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList#getSQL()
+     */
+    protected void appendSpecificSQL(UpdateSourceExprList sourceExprList, StringBuffer sb) {
+        if (sourceExprList != null) {
+            List valExprList = sourceExprList.getValueExprList();
+            if (valExprList != null) {
+                if (valExprList.size() == 1) {
+                    QueryValueExpression valExpr = (QueryValueExpression) valExprList.get(0);
+                    appendSQL(valExpr, sb);
+                }
+                else {
+                    appendSymbol(sb, PAREN_LEFT);
+                    appendSQLForSQLObjectList(valExprList, sb);
+                    appendSymbol(sb, PAREN_RIGHT);
+                }
+            }
+        }
+    }
+    
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.UpdateSourceQuery#getSQL()
+     */
+    protected void appendSpecificSQL(UpdateSourceQuery sourceQuery, StringBuffer sb) {
+        if (sourceQuery != null) {
+            appendSymbol(sb, PAREN_LEFT);
+            QueryExpressionBody queryExpr = sourceQuery.getQueryExpr();
+            appendSQL(queryExpr, sb);
+            appendSymbol(sb, PAREN_RIGHT);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionAtomic#getSQL()
+     */
+    protected void appendSpecificSQL(ValueExpressionAtomic atomicExpr, StringBuffer sb) {
+        // a ValueExpressionAtomic is actually not expected
+        // what would its SQL be??? so we append nothing
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse#getSQL()
+     */
+    protected void appendSpecificSQL(ValueExpressionCaseElse caseElse, StringBuffer sb) {
+        if (caseElse != null) {
+            appendKeyword(sb, ELSE);
+            appendSpace(sb);
+
+            QueryValueExpression valExpr = caseElse.getValueExpr();
+            appendSQL(valExpr, sb);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearch#getSQL()
+     */
+    protected void appendSpecificSQL(ValueExpressionCaseSearch caseExpr, StringBuffer sb) {
+        if (caseExpr != null) {
+            StringBuffer sbCase = new StringBuffer();
+            boolean multipleCases = (caseExpr.getSearchContentList() != null) && (caseExpr.getSearchContentList().size() > 1);
+
+            int startOffset = getLastLineLength(sb);
+            if (startOffset > 30) {
+                startOffset = getLastLineIndent(sb)+4;
+                if (multipleCases) {
+                    appendNewLine(sbCase);
+                    appendSpace(sbCase, startOffset);
+                }
+            }
+
+            appendKeyword(sbCase, CASE);
+
+            List contentList = caseExpr.getSearchContentList();
+            if (contentList != null) {
+                for (Iterator caseIt = contentList.iterator(); caseIt.hasNext();) {
+                    ValueExpressionCaseSearchContent oneCase = (ValueExpressionCaseSearchContent) caseIt.next();
+
+                    if (multipleCases) {
+                        appendNewLine(sbCase);
+                        appendSpace(sbCase, startOffset+STANDARD_INDENT);
+                    } else {
+                        appendSpace(sbCase);
+                    }
+
+                    appendSQL(oneCase, sbCase);
+                }
+            }
+
+            ValueExpressionCaseElse caseElse = caseExpr.getCaseElse();
+            if (caseElse != null) {
+                if (multipleCases) {
+                    appendNewLine(sbCase);
+                    appendSpace(sbCase, startOffset+STANDARD_INDENT);
+                } else {
+                    appendSpace(sbCase);
+                }
+
+                appendSQL(caseElse, sbCase);
+            }
+
+            if (multipleCases) {
+                appendNewLine(sbCase);
+                appendSpace(sbCase, startOffset);
+            } else {
+                appendSpace(sbCase);
+            }
+
+            appendKeyword(sbCase, END);
+
+            wrapSQL(caseExpr, sbCase);
+            appendStringBuffer(sb, sbCase);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent#getSQL()
+     */
+    protected void appendSpecificSQL(ValueExpressionCaseSearchContent caseSearchContent, StringBuffer sb) {
+        if (caseSearchContent != null) {
+            appendKeyword(sb, WHEN);
+            appendSpace(sb);
+
+            QuerySearchCondition searchCond = caseSearchContent.getSearchCondition();
+            appendSQL(searchCond, sb);
+
+            appendSpace(sb);
+            appendKeyword(sb, THEN);
+            appendSpace(sb);
+
+            QueryValueExpression valExpr = caseSearchContent.getValueExpr();
+            appendSQL(valExpr, sb);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple#getSQL()
+     */
+    protected void appendSpecificSQL(ValueExpressionCaseSimple caseExpr, StringBuffer sb) {
+        if (caseExpr != null) {
+            StringBuffer sbCase = new StringBuffer();
+            boolean multipleCases = (caseExpr.getContentList() != null) && (caseExpr.getContentList().size() > 1);
+
+            int startOffset = getLastLineLength(sb);
+            if (startOffset > 30) {
+                startOffset = getLastLineIndent(sb)+4;
+                if (multipleCases) {
+                    appendNewLine(sbCase);
+                    appendSpace(sbCase, startOffset);
+                }
+            }
+
+            appendKeyword(sbCase, CASE);
+            appendSpace(sbCase);
+            QueryValueExpression caseValExpr = caseExpr.getValueExpr();
+            appendSQL(caseValExpr, sbCase);
+
+            List contentList = caseExpr.getContentList();
+            if (contentList != null) {
+                for (Iterator caseIt = contentList.iterator(); caseIt.hasNext();) {
+                    ValueExpressionCaseSimpleContent oneCase = (ValueExpressionCaseSimpleContent) caseIt.next();
+                    if (multipleCases) {
+                        appendNewLine(sbCase);
+                        appendSpace(sbCase, startOffset+STANDARD_INDENT);
+                    } else {
+                        appendSpace(sbCase);
+                    }
+
+                    appendSQL(oneCase, sbCase);
+                }
+            }
+
+            ValueExpressionCaseElse caseElse = caseExpr.getCaseElse();
+            if (caseElse != null) {
+                if (multipleCases) {
+                    appendNewLine(sbCase);
+                    appendSpace(sbCase, startOffset+STANDARD_INDENT);
+                } else {
+                    appendSpace(sbCase);
+                }
+
+                appendSQL(caseElse, sbCase);
+            }
+
+            if (multipleCases) {
+                appendNewLine(sbCase);
+                appendSpace(sbCase, startOffset);
+            } else {
+                appendSpace(sbCase);
+            }
+
+            appendKeyword(sbCase, END);
+
+            wrapSQL(caseExpr, sbCase);
+            appendStringBuffer(sb, sbCase);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent#getSQL()
+     */
+    protected void appendSpecificSQL(ValueExpressionCaseSimpleContent caseSimpleContent, StringBuffer sb) {
+        if (caseSimpleContent != null) {
+            appendKeyword(sb, WHEN);
+            appendSpace(sb);
+
+            QueryValueExpression whenValExpr = caseSimpleContent.getWhenValueExpr();
+            appendSQL(whenValExpr, sb);
+
+            appendSpace(sb);
+            appendKeyword(sb, THEN);
+            appendSpace(sb);
+            
+            QueryValueExpression resultValExpr = caseSimpleContent.getResultValueExpr();
+            appendSQL(resultValExpr, sb);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast#getSQL()
+     */
+    protected void appendSpecificSQL(ValueExpressionCast castExpr, StringBuffer sb)  {
+        if (castExpr != null) {
+            StringBuffer sbCast = new StringBuffer();
+
+            appendKeyword(sbCast, CAST);
+            appendSpace(sbCast);
+            appendSymbol(sbCast, PAREN_LEFT);
+            QueryValueExpression valExpr = castExpr.getValueExpr();
+            appendSQL(valExpr, sbCast);
+            appendSpace(sbCast);
+            appendKeyword(sbCast, AS);
+            appendSpace(sbCast);
+            DataType datatype = castExpr.getDataType();
+            appendSQL(datatype, sbCast);
+            appendSymbol(sbCast, PAREN_RIGHT);
+
+            wrapSQL(castExpr, sbCast);
+            appendStringBuffer(sb, sbCast);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn#getSQL()
+     */
+    protected void appendSpecificSQL(ValueExpressionColumn valExprCol, StringBuffer sb) {
+        if (valExprCol != null) {
+            StringBuffer sbExpr = new StringBuffer();
+
+            TableExpression tableExpr = valExprCol.getTableExpr();
+            if (tableExpr != null) {
+                /* We need to determine whether or not to qualify the column expression with a table name 
+                 * or table correlation ID.  We get the qualify setting from the source format object.
+                 * In the case of "qualify in context", we need to check further to see if the same column
+                 * name is used in more than one table. */
+                SQLQuerySourceInfo sourceInfo = valExprCol.getSourceInfo();
+                SQLQuerySourceFormat sourceFormat = sourceInfo.getSqlFormat();
+                int qualifySpec = sourceFormat.getQualifyIdentifiers();
+
+                // boolean qualifyNever =      (qualifySpec == SQLQuerySourceFormat.QUALIFY_IDENTIFIERS_NEVER);
+                boolean qualifyWithSchema = (qualifySpec == SQLQuerySourceFormat.QUALIFY_IDENTIFIERS_WITH_SCHEMA_NAMES);
+                boolean qualifyWithTable =  (qualifySpec == SQLQuerySourceFormat.QUALIFY_IDENTIFIERS_WITH_TABLE_NAMES);
+                boolean qualifyInContext =  (qualifySpec == SQLQuerySourceFormat.QUALIFY_IDENTIFIERS_IN_CONTEXT);
+
+                boolean qualify = 
+                    qualifyWithSchema || qualifyWithTable || (qualifyInContext && isQualifiedColumnNameRequired(valExprCol));
+
+                if (qualify) {
+                    /* If we have a correlation ID (table alias), write that out. */
+                    if (tableExpr.getTableCorrelation() != null && tableExpr.getTableCorrelation().getName() != null) {
+                        String tableCorrName = tableExpr.getTableCorrelation().getName();
+                        String sqlFormatTableCorrName = convertCatalogIdentifierToSQLFormat(tableCorrName, getDelimitedIdentifierQuote());
+                        appendIdentifier(sbExpr, sqlFormatTableCorrName);
+                    }
+                    /* Otherwise put out the name of table expression itself. */
+                    else { 
+                        /* If the table expression is a database table, write out the table name.  The table might need
+                         * to be qualified by the schema name. */
+                        if (tableExpr instanceof TableInDatabase) {
+                            TableInDatabase tableInDB = (TableInDatabase) tableExpr;
+                            appendSQLForTableInDatabase(tableInDB, sbExpr);
+                        }
+                        /* Otherwise use the name attached to the table expression itself. */
+                        else {
+                            String tableExprName = tableExpr.getName();
+                            String sqlFormatTableExprName = convertCatalogIdentifierToSQLFormat(tableExprName, getDelimitedIdentifierQuote());
+                            appendIdentifier(sbExpr, sqlFormatTableExprName);
+                        }
+
+                    }
+                    appendSymbol(sbExpr, DOT);
+                }
+            }
+
+            /* Write out the column name. */
+            String valExprColName = valExprCol.getName();
+            String sqlFormatValExprColName = convertCatalogIdentifierToSQLFormat(valExprColName, getDelimitedIdentifierQuote());
+            appendIdentifier(sbExpr, sqlFormatValExprColName);
+
+            wrapSQL(valExprCol, sbExpr);
+            appendStringBuffer(sb, sbExpr);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined#getSQL()
+     */
+    protected void appendSpecificSQL(ValueExpressionCombined exprCombined, StringBuffer sb) {
+        if (exprCombined != null) {
+            if (exprCombined.getLeftValueExpr() != null) {
+                QueryValueExpression leftValExpr = exprCombined.getLeftValueExpr();
+                appendSQL(leftValExpr, sb);
+            }
+            
+            appendSpace(sb);
+            ValueExpressionCombinedOperator op = exprCombined.getCombinedOperator();
+            appendSpecificSQL(op, sb);
+            appendSpace(sb);
+            
+            if (exprCombined.getRightValueExpr() != null) { 
+                QueryValueExpression rightValExpr = exprCombined.getRightValueExpr();
+                appendSQL(rightValExpr, sb);
+            }
+        }
+    }
+
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombinedOperator#getSQL()
+     */
+    protected void appendSpecificSQL(ValueExpressionCombinedOperator op, StringBuffer sb) {
+        if (op != null) {
+            int operator = op.getValue();
+            
+            switch (operator) {
+                case ValueExpressionCombinedOperator.ADD:
+                    appendOperator(sb, ADD);
+                    break;
+                case ValueExpressionCombinedOperator.SUBTRACT:
+                    appendOperator(sb, SUBTRACT);
+                    break;
+                case ValueExpressionCombinedOperator.MULTIPLY:
+                    appendOperator(sb, MULTIPLY);
+                    break;
+                case ValueExpressionCombinedOperator.DIVIDE:
+                    appendOperator(sb, DIVIDE);
+                    break;
+                case ValueExpressionCombinedOperator.CONCATENATE:
+                    appendOperator(sb, CONCATENATE);
+                    break;
+                default:
+                    break;
+            }
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionDefaultValue#getSQL()
+     */
+    protected void appendSpecificSQL(ValueExpressionDefaultValue exprDefault, StringBuffer sb) {
+        appendKeyword(sb, DEFAULT);
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction#getSQL()
+     */
+    protected void appendSpecificSQL(ValueExpressionFunction valExprFunc, StringBuffer sb) {
+        if (valExprFunc != null) {
+            StringBuffer sbExpr = new StringBuffer();
+
+            /* If we have a schema associated with the function, write out the schema name. */
+            if (valExprFunc.getFunction() != null && valExprFunc.getFunction().getSchema() != null) {
+                String schemaName = valExprFunc.getFunction().getSchema().getName();
+                if (schemaName != null) {
+                    String sqlFormatSchemaName = convertCatalogIdentifierToSQLFormat(schemaName, getDelimitedIdentifierQuote());
+                    appendIdentifier(sbExpr, sqlFormatSchemaName);
+                    appendSymbol(sbExpr, DOT);
+                }
+            }
+
+            /* The "special registers" (that is, pre-defined variables such as CURRENT_SCHEMA) need
+             * special handling.  They act like functions but are not followed by parens. */
+            if (valExprFunc.isSpecialRegister()) {
+                String regName = valExprFunc.getName();
+                appendSpecialRegisterName(sbExpr, regName);
+                
+                /* Some special registers are followed by an argument. The argument is stored 
+                 * in the function parameter list. */
+                List paramList = valExprFunc.getParameterList();
+                if (paramList != null && paramList.size() > 0) {
+                    /* The param list should consist of a single simple value expression. */
+                    Object listObj = paramList.get(0);
+                    if (listObj instanceof ValueExpressionSimple) {
+                        ValueExpressionSimple valExprSimple = (ValueExpressionSimple) listObj;
+                        String value = valExprSimple.getValue();
+                        if (value != null) {
+                            appendSpace(sbExpr);
+                            appendString(sbExpr, value);
+                        }
+                    }
+                }
+                /* Handle a special case for one of the special registers. */
+                if (valExprFunc.getName().equalsIgnoreCase("CURRENT_TRANSFORM_GROUP_FOR_TYPE")) { //$NON-NLS-1$
+                    DataType datatype = valExprFunc.getDataType();
+                    appendSpace(sbExpr);
+                    appendSQL(datatype, sbExpr);
+                }
+            }
+            else {
+                String funcName = valExprFunc.getName();
+                String sqlFormatFuncName = convertCatalogIdentifierToSQLFormat(funcName, getDelimitedIdentifierQuote());
+                appendFunctionName(sbExpr, sqlFormatFuncName);
+
+                appendSymbol(sbExpr, PAREN_LEFT);
+
+                /* Aggregate functions have a DISTINCT option. */
+                if (valExprFunc.isDistinct()) {
+                    appendKeyword(sbExpr, DISTINCT);
+                    appendSpace(sbExpr);
+                }
+
+                /* Process the function argument list. */
+                List paramList = valExprFunc.getParameterList();
+
+                /* Handle special case for COUNT. */
+                boolean isCountAll =
+                    valExprFunc.getName().equalsIgnoreCase(FUNCTION_COUNT)
+                    && (paramList == null || paramList.isEmpty());
+
+                if (isCountAll) {
+                    appendString(sbExpr, STAR);
+                }
+                else if (paramList != null) {
+                    appendSQLForSQLObjectList(paramList, sbExpr);
+                }
+
+                appendSymbol(sbExpr, PAREN_RIGHT);
+            }
+
+            wrapSQL(valExprFunc, sbExpr);
+            appendStringBuffer(sb, sbExpr);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration#getSQL()
+     */
+    protected void appendSpecificSQL(ValueExpressionLabeledDuration duration, StringBuffer sb) {
+        if (duration != null) {
+            StringBuffer sbDuration = new StringBuffer();
+            
+            QueryValueExpression valExpr = duration.getValueExpr();
+            appendSQL(valExpr, sbDuration);
+            appendSpace(sbDuration);
+            ValueExpressionLabeledDurationType labeledDurType = duration.getLabeledDurationType();
+            appendSpecificSQL(labeledDurType, sbDuration);
+
+            wrapSQL(duration, sbDuration);
+            appendStringBuffer(sb, sbDuration);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDurationType#getSQL()
+     */
+    protected void appendSpecificSQL(ValueExpressionLabeledDurationType durationType, StringBuffer sb) {
+        if (durationType != null) {
+            int typeVal = durationType.getValue();
+
+            switch (typeVal) {
+                case ValueExpressionLabeledDurationType.YEARS:
+                    appendKeyword(sb, YEARS);
+                    break;
+                case ValueExpressionLabeledDurationType.MONTHS:
+                    appendKeyword(sb, MONTHS);
+                    break;
+                case ValueExpressionLabeledDurationType.DAYS:
+                    appendKeyword(sb, DAYS);
+                    break;
+                case ValueExpressionLabeledDurationType.HOURS:
+                    appendKeyword(sb, HOURS);
+                    break;
+                case ValueExpressionLabeledDurationType.MINUTES:
+                    appendKeyword(sb, MINUTES);
+                    break;
+                case ValueExpressionLabeledDurationType.SECONDS:
+                    appendKeyword(sb, SECONDS);
+                    break;
+                case ValueExpressionLabeledDurationType.MICROSECONDS:
+                    appendKeyword(sb, MICROSECONDS);
+                    break;
+                default:
+                    break;
+            }
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested#getSQL()
+     */
+    protected void appendSpecificSQL(ValueExpressionNested exprNest, StringBuffer sb) {
+        if (exprNest != null) {
+            StringBuffer sbExprNest = new StringBuffer();
+            appendSymbol(sbExprNest, PAREN_LEFT);
+            QueryValueExpression nestedValExpr = exprNest.getNestedValueExpr();
+            appendSQL(nestedValExpr, sbExprNest);
+            appendSymbol(sbExprNest, PAREN_RIGHT);
+
+            wrapSQL(exprNest, sbExprNest);
+            appendStringBuffer(sb, sbExprNest);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionNullValue#getSQL()
+     */
+    protected void appendSpecificSQL(ValueExpressionNullValue exprNull, StringBuffer sb) {
+        appendKeyword(sb, NULL);
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionRow#getSQL()
+     */
+    protected void appendSpecificSQL(ValueExpressionRow valExprRow, StringBuffer sb) {
+        if (valExprRow != null) {
+            appendSymbol(sb, PAREN_LEFT);
+            List valExprList = valExprRow.getValueExprList();
+            appendSQLForSQLObjectList(valExprList, sb);  
+            appendSymbol(sb, PAREN_RIGHT);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionSimple#getSQL()
+     */
+    protected void appendSpecificSQL(ValueExpressionScalarSelect exprSelect, StringBuffer sb) {
+        if (exprSelect != null) {
+            StringBuffer sbExpr = new StringBuffer();
+            appendSymbol(sbExpr, PAREN_LEFT);
+            QueryExpressionRoot queryExprRoot = exprSelect.getQueryExpr();
+            appendSQL(queryExprRoot, sbExpr);
+            appendSymbol(sbExpr, PAREN_RIGHT);
+
+            wrapSQL(exprSelect, sbExpr);
+            indentSQLToLastLineLengthOfContainer(sbExpr, sb);
+            appendStringBuffer(sb, sbExpr);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionSimple#getSQL()
+     */
+    protected void appendSpecificSQL(ValueExpressionSimple exprSimple, StringBuffer sb) {
+        if (exprSimple != null) {
+            StringBuffer sbExpr = new StringBuffer();
+            String exprValStr = exprSimple.getValue();
+            appendString(sbExpr, exprValStr);
+
+            wrapSQL(exprSimple, sbExpr);
+            appendStringBuffer(sb, sbExpr);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator#getSQL()
+     */
+    protected void appendSpecificSQL(ValueExpressionUnaryOperator op, StringBuffer sb) {
+        if (op != null) {
+            int operator = op.getValue();
+
+            switch (operator) {            
+                case ValueExpressionUnaryOperator.NONE:
+                    break;
+                case ValueExpressionUnaryOperator.PLUS:
+                    appendOperator(sb, PLUS);
+                    break;
+                case ValueExpressionUnaryOperator.MINUS:
+                    appendOperator(sb, MINUS);
+                    break;
+                default:
+                    break;
+            }
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionVariable#getSQL()
+     */
+    protected void appendSpecificSQL(ValueExpressionVariable var, StringBuffer sb) {
+        if (var != null) {
+            StringBuffer sbExpr = new StringBuffer();
+
+            String hostVarPrefix = COLON;
+            String paramMarker = QUESTIONMARK;
+
+            if (var.getSourceInfo() != null && var.getSourceInfo().getSqlFormat() != null) {
+                SQLQuerySourceFormat sf = var.getSourceInfo().getSqlFormat();
+                hostVarPrefix = String.valueOf(sf.getHostVariablePrefix());
+                paramMarker = String.valueOf(sf.getParameterMarker());
+            }
+
+            /* We generate a variable as hostVar if it has a name or as parameter marker if it has no name. */
+            String varName = var.getName();
+            if (varName != null) {
+                appendString(sbExpr, hostVarPrefix);
+                appendString(sbExpr, varName); // [bug 221028]
+            }
+            else {
+                appendString(sbExpr, paramMarker);
+            }
+
+            wrapSQL(var, sbExpr);
+            appendStringBuffer(sb, sbExpr);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.ValuesRow#getSQL()
+     */
+    protected void appendSpecificSQL(ValuesRow valuesRow, StringBuffer sb) {
+        if (valuesRow != null) {
+            List rowExprList = valuesRow.getExprList();
+            if (rowExprList.size() == 1) {
+                appendSQLForSQLObjectList(rowExprList, sb);  
+            }
+            else if (rowExprList.size() > 1) {
+                appendSymbol(sb, PAREN_LEFT);
+                appendSQLForSQLObjectList(rowExprList, sb);  
+                appendSymbol(sb, PAREN_RIGHT);
+            }
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.WithTableReference#getSQL()
+     */
+    protected void appendSpecificSQL(WithTableReference withTableRef, StringBuffer sb) {
+        if (withTableRef != null) {
+            String withTableRefName = withTableRef.getName();
+            String sqlFormatWithTableRefName = convertCatalogIdentifierToSQLFormat(withTableRefName, getDelimitedIdentifierQuote());
+            appendIdentifier(sb, sqlFormatWithTableRefName);
+
+            TableCorrelation tableCorr = withTableRef.getTableCorrelation();
+            if (tableCorr != null) {
+                SQLQuerySourceInfo sourceInfo = withTableRef.getSourceInfo();
+                SQLQuerySourceFormat sourceFormat = sourceInfo.getSqlFormat();
+                if (sourceFormat.getGenerateAsKeywordForTableCorrID() == true) {
+                    appendSpace(sb);
+                    appendKeyword(sb, AS);
+                }
+                appendSpace(sb);
+                appendSQL(tableCorr, sb);
+            }
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.query.TableWithSpecification#getSQL()
+     */
+    protected void appendSpecificSQL(WithTableSpecification withTable, StringBuffer sb) {
+        if (withTable != null) {
+            int tableWithIndent = getLastLineIndent(sb);
+            int tableWithQueryIndent = tableWithIndent + 3;
+
+            String withTableName = withTable.getName();
+            String sqlFormatWithTableName = convertCatalogIdentifierToSQLFormat(withTableName, getDelimitedIdentifierQuote());
+            appendIdentifier(sb, sqlFormatWithTableName);
+            if (!withTable.getColumnNameList().isEmpty()) {
+                List columnNameList = withTable.getColumnNameList();
+                appendSpace(sb);
+                appendSymbol(sb, PAREN_LEFT);
+                appendSQLForSQLObjectList(columnNameList, sb);
+                appendSymbol(sb, PAREN_RIGHT);
+            }
+
+            appendSpace(sb);
+            appendKeyword(sb, AS);
+            appendNewLine(sb);
+
+            appendSpace(sb, tableWithQueryIndent);
+            appendSymbol(sb, PAREN_LEFT);
+            appendSQL(withTable.getWithTableQueryExpr(), sb);
+            appendSymbol(sb, PAREN_RIGHT);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.datatypes.XMLDataType#getSQL()
+     */
+    protected void appendSpecificSQL(XMLDataType dataType, StringBuffer sb) {
+        if (dataType != null) {
+            String typeName = dataType.getName();
+            if (typeName != null && typeName.length() > 0) {
+                appendKeyword(sb, typeName);
+            }
+            else {
+                PrimitiveType primitiveType = dataType.getPrimitiveType();
+                appendSpecificSQL(primitiveType, sb);
+            }
+        }
+    }
+    
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLQuerySourceWriterProvider.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLQuerySourceWriterProvider.java
new file mode 100644
index 0000000..d5154c4
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLQuerySourceWriterProvider.java
@@ -0,0 +1,365 @@
+/*******************************************************************************
+ * Copyright (c) 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.query.util;
+
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.datatools.modelbase.sql.query.helper.StatementHelper;
+
+
+/**
+ * Singleton <code>SQLQuerySourceWriterProvider</code> holds a registry of
+ * <code>SQLQuerySourceWriter</code> extensions and creates instances of
+ * <code>SQLQuerySourceWriter</code>s, that are registered for a specific
+ * <code>SQLQueryObject</code> <code>Package</code>.
+ * As plugin in an eclipse runtime environment, the registration of
+ * <code>SQLQuerySourceWriter</code> for a package of
+ * <code>SQLQueryObject</code> extensions is done at start time of the plugin
+ * containing the SQL Query model extension.
+ * The registry is implemented following the lazy loading
+ * startegy and the plugin extending the SQL Query model plugin is only loaded
+ * the first time a <code>SQLQueryObject</code> is
+ * instanciated in the extending plugin.
+ * 
+ * 
+ * @author ckadner
+ *
+ */
+public class SQLQuerySourceWriterProvider
+{
+    /** TODO: doc! 
+     * maps the SQLSourceWriter (value) to the fully qualified name of a 
+     * <code>Package</code> of <code>SQLQueryObjects</code> */
+    private Map registeredSourceWriterPackageMap = null;
+
+    private static SQLQuerySourceWriterProvider instance = null;
+    
+    /**
+     * Private constructor enforcing singleton construction pattern.
+     */
+    private SQLQuerySourceWriterProvider()
+    {
+        registeredSourceWriterPackageMap = new HashMap();
+    }
+
+    /**
+     * @return the singleton <code>SQLQuerySourceWriterProvider</code> instance
+     */
+    public static SQLQuerySourceWriterProvider getInstance()
+    {
+        if (instance == null)
+        {
+            instance = new SQLQuerySourceWriterProvider();
+        }
+        return instance;
+    }
+    
+    
+    /* ************ registration methods for SourceWriter extensions ******** */
+    
+    
+    /**
+     * Method to register a subclass of the <code>SQLQuerySourceWriter</code>
+     * for a specific package of <code>SQLQueryObject</code>s, that the given
+     * <code>sourceWriterClass</code> generates the SQL source for. <b>Note:
+     * </b> there can only be one <code>SQLQuerySourceWriter</code> for one
+     * package of <code>SQLQueryObject</code>s, however one
+     * <code>SQLQuerySourceWriter</code> can generate the SQL source for
+     * multiple packages of <code>SQLQueryObject</code>s. In general an
+     * extension of a <code>SQLQuerySourceWriter</code> goes along with an
+     * extension to the <code>SQLQueryObject</code> model. <b>Developer note:
+     * </b> if the name and packaging of the <code>SQLQuerySourceWriter</code>
+     * follows the naming convention described in the class documentaion
+     * section, the <code>SQLQuerySourceWriter</code> will be registered
+     * automatically via <code>@link java.lang.reflect.*</code>
+     * 
+     * @param sourceWriterClass
+     *            the <code>SQLQuerySourceWriter</code> class that generates
+     *            the SQL source for the <code>SQLQueryObject</code> s in the
+     *            given <code>sqlModelObjectsPackage</code>
+     * @param sqlModelObjectsPackageName
+     *            fully qualified package name of <code>SQLQueryObject</code>s
+     */
+    public void registerSourceWriter( Class sourceWriterClass,
+                                      String sqlModelObjectsPackageName)
+    {
+        
+        // FIXME: with that one-SW-for-one-SQLQueryObject-package approach we
+        //  inhibit overwriting of methods in SW extensions, because we have
+        //  the base SW registered forever and all the package of SQLQueryObjects
+        //  and an extension that overwrites a few methods for some of these
+        //  SQLQueryObects will have no effect
+        // we should register SWs for single Objects and respect method overwritings in extending SWs
+        
+        //StatementHelper.logError("register given sourceWriter = "+sourceWriterClass.getName() + " in package = "+sqlModelObjectsPackage.getName());
+        
+        if (sourceWriterClass != null && sqlModelObjectsPackageName != null) 
+        {
+            if (registeredSourceWriterPackageMap
+                            .containsKey(sqlModelObjectsPackageName))
+            {
+                // check if the newly found SourceWriter is a subclass of a
+                // previously found one, if so overwrite the previous mapping
+                Class previousSW = (Class)
+                    registeredSourceWriterPackageMap.get(sqlModelObjectsPackageName);
+                
+                // if the new SW to register is the same as previously registered
+                // SW; or the new SW is a super class of the previously registered
+                // SW it will not replace the previously registred SW because it
+                // totally assignment compatible (all methods are contained in
+                // previously registered SW)
+                // if the new SW to register is neither extending the previously
+                // registered SW nor it is a super class of it, we have a
+                // conflict between two distinct SW and we here decide to keep
+                // the previous one, because there is no guaranty that all the
+                // SQLQueryObjects covered by the previous are also covered by
+                // the new SW 
+                if (sourceWriterClass == previousSW
+                                || sourceWriterClass.isAssignableFrom(previousSW))
+                {
+                    return;
+                }
+                else if (!previousSW.isAssignableFrom(sourceWriterClass))
+                {
+                    StatementHelper.logError("\n"+sourceWriterClass.getName()+
+                                    " can not displace "+
+                                    previousSW.getName()+
+                                    " for package "+
+                                    sqlModelObjectsPackageName +
+                                    " because it is not an extending "+
+                                    previousSW.getName());
+                    return;
+                }
+            }
+            
+            // no previously registered SW or the previously registered is a super class
+            // of the new SW and is therefor covered completely by the new SW, so the
+            // previous registration will be displaced
+            registeredSourceWriterPackageMap.put(sqlModelObjectsPackageName, sourceWriterClass);
+			// register the interface level of the impl package as well, as we have some
+			// SQLObjects with its implementation in the interface package and not in impl
+            String packageName = sqlModelObjectsPackageName;
+            if (packageName.endsWith(".impl")) 
+            {
+                int interfaceLevelPackageNameLength =
+                    packageName.lastIndexOf(".impl");
+                String interfaceLevelPackageName = 
+                    packageName.substring(0, interfaceLevelPackageNameLength);
+                
+                // we will only get the package if the classloader has it visible
+                // in eclipse runtime environment that might not be the case
+                if (interfaceLevelPackageName != null)
+                {
+                    registeredSourceWriterPackageMap.put(interfaceLevelPackageName, sourceWriterClass);
+                }
+            }
+            else 
+            {
+                String implPackageName = packageName + ".impl";
+                //Package implPackage = Package.getPackage(implPackageName);
+                
+                // we will only get the package if the classloader has it visible
+                // in eclipse runtime environment that might not be the case
+                if (implPackageName != null)
+                {
+                    registeredSourceWriterPackageMap.put(implPackageName, sourceWriterClass);
+                }
+            }
+        }
+        
+    }
+    
+    
+    // TODO: consider that to return a list of SourceWriters that implement a
+    //       method taking the queryObject
+    Class getQuerySourceWriterClass(Class queryObjectClass) 
+    {
+        Class sourceWriterClass = null;
+        String queryObjectsPackageName = queryObjectClass.getPackage().getName();
+        Map registeredSourceWriters = registeredSourceWriterPackageMap;
+        
+        if (registeredSourceWriters.containsKey(queryObjectsPackageName))
+        {
+            // running as eclipse plugin, registration is done at plugin startup
+            // by SQLQueryModelPlugin.java
+            sourceWriterClass = 
+                (Class) registeredSourceWriters.get(queryObjectsPackageName);
+        }
+        else
+        {
+            // running in headless mode (outside eclipse runtime)
+            // classloader must have access to external/extending SourceWriters
+            // naming convention for SourceWriters is to be obeyed
+	        
+	        List potentialSourceWriterNames = getPotentialQuerySourceWriterNames(queryObjectClass);
+	        List sourceWriterClasses = getClassesForNames(potentialSourceWriterNames);
+	        
+	/*
+	        System.out.println("\n\n * * * * potential SourceWriter * * * *\n");
+	        for (Iterator it = potentialSourceWriterNames.iterator(); it.hasNext();)
+	        {
+	            String potSourceWriterName = (String) it.next();
+	            System.out.println(potSourceWriterName);
+	        }
+	        System.out.println("\n * * * * potential SourceWriter * * * *\n\n");
+	        
+	
+	        System.out.println("\n\n * * * * SourceWriter found * * * *\n");
+	        for (Iterator it = sourceWriterClasses.iterator(); it.hasNext();)
+	        {
+	            Class sourceWriterClass = (Class) it.next();
+	            System.out.println(sourceWriterClass.getName());
+	        }
+	        System.out.println("\n * * * * SourceWriter found * * * *\n\n");
+	*/      
+	        
+	        try
+            {
+	            queryObjectClass = Class.forName(SQLQuerySourceWriter.getInterfaceName(queryObjectClass));
+            }
+            catch (Exception e)
+            {
+                // well then we hope we got an interface level class or we will
+                // not get the sourceWriter due to classloader visibility issues
+            }
+	        
+	        for (Iterator swIt = sourceWriterClasses.iterator(); swIt.hasNext();)
+	        {
+	            Class swClass = (Class) swIt.next();
+	            try
+	            {
+	                // check if we find the appendSQL method in the SourceWriter
+	                Method appendSQLMethod =
+	                    SQLQuerySourceWriter.getSpecificAppendSQLMethod(swClass, queryObjectClass);
+	               
+	                
+	                //TODO: consider more than one matching SourceWriter!
+	                
+	                sourceWriterClass = swClass;
+	                break;
+	                
+	                
+	            }
+	            catch (NoSuchMethodException e)  {}
+	            
+	        }
+        }
+        
+        return sourceWriterClass;
+    }    
+    
+    private List getClassesForNames (List classNames) {
+        List classes = new ArrayList();
+        if (classNames != null) {
+            for (Iterator nameIt = classNames.iterator(); nameIt.hasNext();)
+            {
+                String className = (String) nameIt.next();
+                try
+                {
+                    Class swClass = Class.forName(className);
+                    classes.add(swClass);
+                    //StatementHelper.logError(className+" found!");
+                }
+                catch (ClassNotFoundException e)
+                {
+                    //StatementHelper.logError(className+" not found! ClassNotFoundException "+ e.getMessage());
+                }
+                catch (NoClassDefFoundError e)
+                {
+                    //StatementHelper.logError(className+" not found! NoClassDefFoundError "+ e.getMessage());
+                }
+                catch (Exception e) {
+                    //StatementHelper.logError(e.getMessage());
+                }
+            }
+        }
+        return classes;
+    }
+    
+    //ck, sorry for no doc time, please debug to see what's haapening here!
+    List getPotentialQuerySourceWriterNames(Class queryObjectClass) {
+        List potentialSourceWriterNames = new ArrayList();
+
+        if (queryObjectClass == null) {
+            return null;
+        }
+        
+        String packageName = queryObjectClass.getPackage().getName();
+        
+        int sqlQueryPackageBeginIndex = packageName.indexOf(".sql.")+1;
+        int sqlQueryPackageEndIndex = packageName.length();
+        
+        if (packageName.endsWith(".impl")) {
+            sqlQueryPackageEndIndex -= 5; 
+        }
+        String basePackage = packageName.substring(0, sqlQueryPackageBeginIndex-1);
+        String stripToSQLQueryPackage = packageName.substring(sqlQueryPackageBeginIndex, sqlQueryPackageEndIndex);
+        
+        String[] subpackages = stripToSQLQueryPackage.split("\\.");
+        
+        List potentialSourceWriterPackageAndPrefixes = new ArrayList();
+        
+        String currentPackage = basePackage + ".";
+        
+        for (int i = 0; i < subpackages.length; i++)
+        {
+            String subpackage = subpackages[i];
+            String firstUpperCase = subpackage.substring(0, 1).toUpperCase();
+            String restLowerCase = subpackage.substring(1);
+            String partName = firstUpperCase + restLowerCase;
+            String partNameUC = subpackage.toUpperCase();
+            
+            currentPackage += subpackage + ".";
+            
+            List additionalSourceWriterPackageAndPrefixes = new ArrayList();
+            
+            for (Iterator it = potentialSourceWriterPackageAndPrefixes.iterator(); it
+                            .hasNext();)
+            {
+                String potential = (String) it.next();
+                int potentialSubpackageEndIndex = potential.lastIndexOf(".")+1;
+                String newPotentialSubpackage = currentPackage;
+                String partPrefix = potential.substring(potentialSubpackageEndIndex);
+                String newPart = newPotentialSubpackage+partPrefix+partName;
+                String newPartUC = newPotentialSubpackage+partPrefix+partName.toUpperCase();
+                additionalSourceWriterPackageAndPrefixes.add(newPart);
+                if (partName.length() <= 3) {
+                    additionalSourceWriterPackageAndPrefixes.add(newPartUC);
+                }
+            }
+            potentialSourceWriterPackageAndPrefixes.addAll(additionalSourceWriterPackageAndPrefixes);
+            
+            potentialSourceWriterPackageAndPrefixes.add(currentPackage+partName);
+            if (partName.length() <= 3) {
+                potentialSourceWriterPackageAndPrefixes.add(currentPackage+partNameUC);
+            }
+        }
+        
+        for (Iterator it = potentialSourceWriterPackageAndPrefixes.iterator(); it.hasNext();)
+        {
+            String potPrefix = (String) it.next();
+            int lastDot = potPrefix.lastIndexOf('.');
+            String sourceWriterPackage = potPrefix.substring(0, lastDot);
+            String sourceWriterName = potPrefix.substring(lastDot+1);
+            potentialSourceWriterNames.add(0, sourceWriterPackage+".util."+sourceWriterName+"SourceWriter");
+        }
+        
+        return potentialSourceWriterNames;
+    }
+    
+
+    
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLSourceWriter.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLSourceWriter.java
new file mode 100644
index 0000000..cc80195
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/util/SQLSourceWriter.java
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * Copyright (c) 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.query.util;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryObject;
+
+/**
+ * A <code>SQLSourceWriter</code> provides a generic <code>getSQL()</code>
+ * method to generate the SQL source of a given <code>queryObject</code>.
+ * {@link org.eclipse.datatools.modelbase.sql.query.util.SQLQuerySourceWriter} provides the
+ * base implementation of this interface, implementing the <code>getSQL()</code>
+ * method for the Package <code>org.eclipse.datatools.modelbase.sql.query</code>.
+ * 
+ * @author ckadner
+ */
+public interface SQLSourceWriter
+{
+    public String getSQL(SQLQueryObject queryObject);
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/.classpath b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/.classpath
new file mode 100644
index 0000000..304e861
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/.gitignore b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/.gitignore
new file mode 100644
index 0000000..ba077a4
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/.gitignore
@@ -0,0 +1 @@
+bin
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/.project b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/.project
new file mode 100644
index 0000000..bca1bce
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.datatools.modelbase.sql.xml.query</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..c269d20
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+#Tue Feb 17 15:39:08 PST 2009
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/META-INF/MANIFEST.MF b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..db00a82
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/META-INF/MANIFEST.MF
@@ -0,0 +1,20 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.datatools.modelbase.sql.xml.query; singleton:=true
+Bundle-Version: 1.2.1.qualifier
+Bundle-Activator: org.eclipse.datatools.modelbase.sql.xml.query.util.SQLXMLQueryModelPlugin
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Require-Bundle: 
+ org.eclipse.core.runtime,
+ org.eclipse.datatools.modelbase.sql.query;visibility:=reexport,
+ org.eclipse.datatools.modelbase.sql;visibility:=reexport
+Eclipse-LazyStart: true
+Bundle-ActivationPolicy: lazy
+Export-Package: 
+ org.eclipse.datatools.modelbase.sql.xml.query,
+ org.eclipse.datatools.modelbase.sql.xml.query.impl,
+ org.eclipse.datatools.modelbase.sql.xml.query.util
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/about.html b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/about.html
new file mode 100644
index 0000000..129db9d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 15, 2009</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/build.properties b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/build.properties
new file mode 100644
index 0000000..177392c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/build.properties
@@ -0,0 +1,15 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               plugin.xml,\
+               about.html,\
+               plugin.properties
+
+src.dir =		src/
+plugin.version =	1.0.0.200706151
+javadoc.dir =		doc/api/
+download.dir =		./download/
+javac.source =		1.4
+javac.target =		1.4
+src.includes = about.html
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/build.xml b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/build.xml
new file mode 100644
index 0000000..1c53083
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/build.xml
@@ -0,0 +1,175 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ *************************************************************************
+ * Copyright (c) 2005 Sybase, Inc. and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *  Sybase, Inc.  - initial API and implementation
+ *  
+ ***************************************************************************
+ -->
+<project name="org.eclipse.datatools.modelbase.sql.xml.query" default="build.jars" basedir=".">
+	<import file="../org.eclipse.datatools.build/common_build.xml" optional="true"/>
+	<property name="module.name" value="org.eclipse.datatools.modelbase.sql.xml.query"/>
+	<property name="basews" value="${ws}"/>
+	<property name="baseos" value="${os}"/>
+	<property name="basearch" value="${arch}"/>
+	<property name="basenl" value="${nl}"/>
+	<property name="eclipse.home" location="."/>
+	<property file="build.properties"/>
+	<!-- JavaDoc settings -->
+	<property name="javadocWindowTitle" value="DTP SQL XML Query Model"/>
+	<property name="javadocDocTitle" value="DTP SQL XML Query Model API (Internal)"/>
+	<property name="javadocPackages" value="org.eclipse.datatools.modelbase.sql.xml.query.*"/>
+	<property name="javadocFooter" value="&lt;i>Copyright &#169;  2005 IBM Corporation and others. All rights reserved. &lt;/i>"/>
+	<!-- Compiler settings. -->
+	<property name="javacFailOnError" value="true"/>
+	<property name="javacDebugInfo" value="on"/>
+	<property name="javacVerbose" value="true"/>
+	<property name="javacSource" value="${javac.source}"/>
+	<property name="javacTarget" value="${javac.target}"/>
+	<property name="compilerArg" value=""/>
+	<path id="path_bootclasspath">
+		<fileset dir="${java.home}/lib">
+			<include name="*.jar"/>
+		</fileset>
+		<!-- Plug-ins found in Eclipse install directory -->
+		<fileset dir="${eclipse.home}/plugins">
+			<include name="org.eclipse.core.runtime_*.jar"/>
+			<include name="org.eclipse.osgi_*.jar"/>
+			<!-- Include jared EMF plug-ins -->
+			<include name="org.eclipse.emf.ecore_*.jar"/>
+			<include name="org.eclipse.emf.common_*.jar"/>
+			<include name="org.eclipse.emf.ecore.sdo_*.jar"/>
+			<include name="org.eclipse.emf.commonj.sdo_*.jar"/>
+			<include name="org.eclipse.emf.ecore.xmi_*.jar"/>
+			<include name="org.eclipse.emf.ecore.change_*.jar"/>
+			<!-- Include expanded EMF plug-ins -->
+			<include name="org.eclipse.core.runtime_*/org.eclipse.core.runtime_*.jar"/>
+			<include name="org.eclipse.osgi_*/org.eclipse.osgi_*.jar"/>
+			<include name="org.eclipse.emf.ecore_*/org.eclipse.emf.ecore*.jar"/>
+			<include name="org.eclipse.emf.common_*/org.eclipse.emf.common*.jar"/>
+			<include name="org.eclipse.emf.ecore.sdo_*/org.eclipse.emf.ecore.sdo*.jar"/>
+			<include name="org.eclipse.emf.commonj.sdo_*/org.eclipse.emf.commonj.sdo*.jar"/>
+			<include name="org.eclipse.emf.ecore.xmi_*/org.eclipse.emf.ecore.xmi*.jar"/>
+			<include name="org.eclipse.emf.ecore.change_*/org.eclipse.emf.ecore.change*.jar"/>
+		</fileset>
+		<!-- Dependencies on other DTP plug-ins, built before this one -->
+		<fileset dir="../">
+			<include name="org.eclipse.datatools.modelbase.sql/bin/*"/>
+			<include name="org.eclipse.datatools.modelbase.sql/sqlmodel.jar"/>
+			<include name="org.eclipse.datatools.modelbase.sql.query/bin/*"/>
+			<include name="org.eclipse.datatools.modelbase.sql.query/sqlquerymodel.jar"/>
+		</fileset>
+	</path>
+	<property name="bootclasspath" refid="path_bootclasspath"/>
+	<target name="init" depends="properties">
+		<condition property="pluginTemp" value="${buildTempFolder}/plugins">
+			<isset property="buildTempFolder"/>
+		</condition>
+		<property name="pluginTemp" value="${basedir}"/>
+		<condition property="build.result.folder" value="${pluginTemp}/${module.name}">
+			<isset property="buildTempFolder"/>
+		</condition>
+		<property name="build.result.folder" value="${basedir}"/>
+		<property name="temp.folder" value="${basedir}/temp.folder"/>
+		<property name="plugin.destination" value="${basedir}"/>
+	</target>
+	<target name="properties" if="eclipse.running">
+		<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
+	</target>
+	<target name="build.update.jar" depends="init" description="Build the plug-in: org.eclipse.datatools.modelbase.sql.xml.query for an update site.">
+		<delete dir="${temp.folder}"/>
+		<mkdir dir="${temp.folder}"/>
+		<antcall target="build.jars"/>
+		<antcall target="gather.bin.parts">
+			<param name="destination.temp.folder" value="${temp.folder}/"/>
+		</antcall>
+		<zip destfile="${plugin.destination}/${module.name}_${plugin.version}.jar" basedir="${temp.folder}/${module.name}_${plugin.version}" filesonly="false" whenempty="skip" update="false"/>
+		<delete dir="${temp.folder}"/>
+	</target>
+	<target name="sqlxmlquerymodel.jar" depends="init" unless="sqlxmlquerymodel.jar" description="Create jar: org.eclipse.datatools.modelbase.sql.xml.query sqlxmlquerymodel.jar.">
+		<delete dir="${temp.folder}/sqlxmlquerymodel.jar.bin"/>
+		<mkdir dir="${temp.folder}/sqlxmlquerymodel.jar.bin"/>
+		<!-- compile the source code -->
+		<javac destdir="${temp.folder}/sqlxmlquerymodel.jar.bin" failonerror="${javacFailOnError}" verbose="${javacVerbose}" debug="${javacDebugInfo}" includeAntRuntime="no" bootclasspath="${bootclasspath}" source="${javacSource}" target="${javacTarget}">
+			<compilerarg line="${compilerArg}"/>
+			<classpath refid="path_bootclasspath"/>
+			<src path="src/"/>
+		</javac>
+		<!-- Copy necessary resources -->
+		<copy todir="${temp.folder}/sqlxmlquerymodel.jar.bin" failonerror="true" overwrite="false">
+			<fileset dir="src/" excludes="**/*.java, **/package.htm*,null"/>
+		</copy>
+		<mkdir dir="${build.result.folder}"/>
+		<jar destfile="${build.result.folder}/sqlxmlquerymodel.jar" basedir="${temp.folder}/sqlxmlquerymodel.jar.bin"/>
+		<delete dir="${temp.folder}/sqlxmlquerymodel.jar.bin"/>
+	</target>
+	<target name="sqlxmlquerymodelsrc.zip" depends="init" unless="sqlxmlquerymodelsrc.zip">
+		<mkdir dir="${build.result.folder}"/>
+		<zip destfile="${build.result.folder}/sqlxmlquerymodelsrc.zip" filesonly="false" whenempty="skip" update="false">
+			<fileset dir="src/" includes="**/*.java"/>
+		</zip>
+	</target>
+	<target name="build.jars" depends="init" description="Build all the jars for the plug-in: org.eclipse.datatools.modelbase.sql.xml.query.">
+		<available property="sqlxmlquerymodel.jar" file="${build.result.folder}/sqlxmlquerymodel.jar"/>
+		<antcall target="sqlxmlquerymodel.jar"/>
+	</target>
+	<target name="build.sources" depends="init">
+		<available property="sqlxmlquerymodelsrc.zip" file="${build.result.folder}/sqlxmlquerymodelsrc.zip"/>
+		<antcall target="sqlxmlquerymodelsrc.zip"/>
+	</target>
+	<target name="gather.bin.parts" depends="init" if="destination.temp.folder">
+		<mkdir dir="${destination.temp.folder}/${module.name}_${plugin.version}"/>
+		<copy todir="${destination.temp.folder}/${module.name}_${plugin.version}" failonerror="true" overwrite="false">
+			<fileset dir="${build.result.folder}" includes="sqlxmlquerymodel.jar"/>
+		</copy>
+		<copy todir="${destination.temp.folder}/${module.name}_${plugin.version}" failonerror="true" overwrite="false">
+			<fileset dir="${basedir}" includes="plugin.xml,about.html,META-INF/,sqlxmlquerymodel.jar,META-INF/,plugin.properties"/>
+		</copy>
+		<copy todir="${destination.temp.folder}/${module.name}_${plugin.version}" failonerror="false" overwrite="false">
+			<fileset dir="${basedir}" includes="sqlxmlquerymodelsrc.zip"/>
+		</copy>
+	</target>
+	<target name="build.zips" depends="init"/>
+	<target name="gather.sources" depends="init" if="destination.temp.folder">
+		<mkdir dir="${destination.temp.folder}/${module.name}_${plugin.version}"/>
+		<copy file="${build.result.folder}/sqlxmlquerymodelsrc.zip" todir="${destination.temp.folder}/${module.name}_${plugin.version}" failonerror="false" overwrite="false"/>
+	</target>
+	<target name="gather.logs" depends="init" if="destination.temp.folder">
+		<mkdir dir="${destination.temp.folder}/${module.name}_${plugin.version}"/>
+		<copy file="${temp.folder}/sqlxmlquerymodel.jar.bin.log" todir="${destination.temp.folder}/${module.name}_${plugin.version}" failonerror="false" overwrite="false"/>
+	</target>
+	<target name="clean" depends="init" description="Clean the plug-in: org.eclipse.datatools.modelbase.sql.xml.query of all the zips, jars and logs created.">
+		<delete file="${build.result.folder}/sqlxmlquerymodel.jar"/>
+		<delete file="${build.result.folder}/sqlxmlquerymodelsrc.zip"/>
+		<delete file="${plugin.destination}/${module.name}_${plugin.version}.jar"/>
+		<delete file="${plugin.destination}/${module.name}_${plugin.version}.zip"/>
+		<delete dir="${temp.folder}"/>
+	</target>
+	<target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+		<eclipse.convertPath fileSystemPath="C:/V3/3.1/eclipse/workspace-dtp/org.eclipse.datatools.modelbase.sql.xml.query" property="resourcePath"/>
+		<eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+	</target>
+	<target name="zip.plugin" depends="init" description="Create a zip containing all the elements for the plug-in: org.eclipse.datatools.modelbase.sql.xml.query.">
+		<delete dir="${temp.folder}"/>
+		<mkdir dir="${temp.folder}"/>
+		<antcall target="build.jars"/>
+		<antcall target="build.sources"/>
+		<antcall target="gather.bin.parts">
+			<param name="destination.temp.folder" value="${temp.folder}/"/>
+		</antcall>
+		<antcall target="gather.sources">
+			<param name="destination.temp.folder" value="${temp.folder}/"/>
+		</antcall>
+		<delete>
+			<fileset dir="${temp.folder}" includes="**/*.bin.log"/>
+		</delete>
+		<zip destfile="${plugin.destination}/${module.name}_${plugin.version}.zip" basedir="${temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+		<delete dir="${temp.folder}"/>
+	</target>
+</project>
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/model/SQLXMLQueryModel.cat b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/model/SQLXMLQueryModel.cat
new file mode 100644
index 0000000..5373c51
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/model/SQLXMLQueryModel.cat
@@ -0,0 +1,14111 @@
+

+(object Petal

+    version    	47

+    _written   	"Rose 8.0.0303.1400"

+    charSet    	0)

+

+(object Class_Category "SQLXMLQueryModel"

+    is_unit    	TRUE

+    is_loaded  	TRUE

+    attributes 	(list Attribute_Set

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"packageName"

+	    value      	(value Text "query"))

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"nsURI"

+	    value      	(value Text "http:///org/eclipse/datatools/modelbase/sql/xml/query/SQLXMLQueryModel.ecore"))

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"basePackage"

+	    value      	(value Text "org.eclipse.datatools.modelbase.sql.xml"))

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"prefix"

+	    value      	(value Text "SQLXMLQuery")))

+    quid       	"4314C5120235"

+    documentation 	

+|The documentation for this model is adapted from "Information technology -- Database languages -- SQL, Part 14: XML-Related Specifications (SQL/XML)" WG3:WLG-010preview H2-2005-xxx, FDIS ISO/IEC 9075-14:2005 (E) draft published May, 2005.

+|

+    

+    visible_categories 	(list visibility_relationship_list

+	(object Visibility_Relationship

+	    quid       	"4314C52B01B1"

+	    supplier   	"Logical View::SQLQueryModel"

+	    quidu      	"40467E9F03A6"))

+    exportControl 	"Public"

+    logical_models 	(list unit_reference_list

+	(object Class "XMLValueFunctionConcat"

+	    quid       	"4314C8B602DA"

+	    documentation 	"Generates an XML value which is the concatenation of a list of XML values.  See ISO SQL/XML sec. 6.11."

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"4314C8B602D9"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunction"

+		    quidu      	"4314C8B602D6"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "returningOption"

+		    quid       	"4325EACF0046"

+		    type       	"XMLReturningType"

+		    quidu      	"4325EA170132"

+		    exportControl 	"Public")))

+	(object Class "XMLValueFunction"

+	    quid       	"4314C8B602D6"

+	    documentation 	"Specifies a function that yields a value of type XML.  See ISO SQL/XML sec. 6.9."

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"4320C1D00059"

+		    supplier   	"Logical View::SQLQueryModel::ValueExpressionFunction"

+		    quidu      	"3B389F78002D"))

+	    abstract   	TRUE)

+	(object Class "XMLNamespaceDeclarationPrefix"

+	    quid       	"4314C8B60324"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"4314C8B60323"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLNamespaceDeclarationItem"

+		    quidu      	"4314C8B6031E"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "prefix"

+		    quid       	"4314C8B60325"

+		    type       	"String"

+		    exportControl 	"Public")))

+	(object Class "XMLNamespaceDeclarationDefault"

+	    quid       	"4314C8B60329"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"4314C8B60328"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLNamespaceDeclarationItem"

+		    quidu      	"4314C8B6031E"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "noDefault"

+		    quid       	"4314C8B6032A"

+		    type       	"boolean"

+		    initv      	"false"

+		    exportControl 	"Public")))

+	(object Class "XMLAttributeDeclarationItem"

+	    quid       	"4314C8B602B2"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"433B5574029B"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160")))

+	(object Class "XMLValueFunctionElement"

+	    quid       	"4314C8B602F6"

+	    documentation 	"Generates an XML element with a given element name, list of XML attributes, and list of content values.  See ISO SQL/XML sec. 6.13."

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"4326081A038A"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunction"

+		    quidu      	"4314C8B602D6"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "elementName"

+		    quid       	"433B46FE0056"

+		    type       	"String"

+		    exportControl 	"Public")

+		(object ClassAttribute "returningOption"

+		    quid       	"4326209D0394"

+		    type       	"XMLReturningType"

+		    quidu      	"4325EA170132"

+		    exportControl 	"Public")))

+	(object Class "XMLNamespaceDeclarationItem"

+	    quid       	"4314C8B6031E"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"4314C8B6031F"

+		    supplier   	"Logical View::SQLQueryModel::SQLQueryObject"

+		    quidu      	"4046839E02AB"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "uri"

+		    quid       	"4314C8B60320"

+		    type       	"String"

+		    exportControl 	"Public")))

+	(object Class "XMLValueFunctionElementContentItem"

+	    quid       	"4314C8B602C9"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"433B55C10116"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160")))

+	(object Class "XMLValueFunctionForest"

+	    quid       	"4314C8B60333"

+	    documentation 	"Generates an XML value containing a sequence of XML elements.  See ISO SQL/XML sec. 6.14."

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"4314C8B60334"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunction"

+		    quidu      	"4314C8B602D6"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "nullHandlingOption"

+		    quid       	"432F200F0392"

+		    type       	"XMLNullHandlingType"

+		    quidu      	"43261E3B014E"

+		    exportControl 	"Public")

+		(object ClassAttribute "returningOption"

+		    quid       	"432F1AFE0078"

+		    type       	"XMLReturningType"

+		    quidu      	"4325EA170132"

+		    exportControl 	"Public")))

+	(object Class "XMLValueFunctionComment"

+	    quid       	"431F5A830075"

+	    documentation 	"Generates an XML comment value from a string expression.  See ISO SQL/XML sec. 6.10."

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"431F5FA20341"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunction"

+		    quidu      	"4314C8B602D6"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "returningOption"

+		    quid       	"4325FF1D0328"

+		    type       	"XMLReturningType"

+		    quidu      	"4325EA170132"

+		    exportControl 	"Public")))

+	(object Class "XMLValueFunctionDocument"

+	    quid       	"431F5B1E0385"

+	    documentation 	"Generates an XML document node from an XML value expression.  See ISO SQL/XML sec. 6.12."

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"431F5FB30346"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunction"

+		    quidu      	"4314C8B602D6"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "returningOption"

+		    quid       	"4326032C028F"

+		    type       	"XMLReturningType"

+		    quidu      	"4325EA170132"

+		    exportControl 	"Public")))

+	(object Class "XMLValueFunctionParse"

+	    quid       	"431F5B4E0244"

+	    documentation 	"Generates an XML value by performing a non-validating parse of a given string expression.  See ISO SQL/XML sec. 6.15."

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"431F64B402F8"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunction"

+		    quidu      	"4314C8B602D6"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "contentOption"

+		    quid       	"432F3122002C"

+		    type       	"XMLContentType"

+		    quidu      	"4320BD26008F"

+		    exportControl 	"Public")

+		(object ClassAttribute "whitespaceHandlingOption"

+		    quid       	"432F34450169"

+		    type       	"XMLWhitespaceHandlingType"

+		    quidu      	"432F33A80213"

+		    exportControl 	"Public")))

+	(object Class "XMLValueFunctionPI"

+	    quid       	"431F5B8B0129"

+	    documentation 	"Generates an XML value consisting of an XML processing instruction based on the given string expression.  See ISO SQL/XML sec. 6.16."

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"431F64C101DE"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunction"

+		    quidu      	"4314C8B602D6"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "targetName"

+		    quid       	"432F3890015D"

+		    type       	"String"

+		    exportControl 	"Public")

+		(object ClassAttribute "returningOption"

+		    quid       	"432F382C00C4"

+		    type       	"XMLReturningType"

+		    quidu      	"4325EA170132"

+		    exportControl 	"Public")))

+	(object Class "XMLValueFunctionQuery"

+	    quid       	"431F5BAE0364"

+	    documentation 	"Generates an XML value as the result of evaluating a given XQuery expression.  See ISO SQL/XML sec. 6.17."

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"431F64CC0021"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunction"

+		    quidu      	"4314C8B602D6"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "emptyHandlingOption"

+		    quid       	"432F5193038C"

+		    type       	"XMLEmptyHandlingType"

+		    quidu      	"432F51280232"

+		    exportControl 	"Public")))

+	(object Class "XMLValueFunctionText"

+	    quid       	"431F5DFD011F"

+	    documentation 	"Generates an XML value consisting of a XML text element from a given string expression.  See ISO SQL/XML sec. 6.18."

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"431F64D7004F"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunction"

+		    quidu      	"4314C8B602D6"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "returningOption"

+		    quid       	"432F5C19039F"

+		    type       	"XMLReturningType"

+		    quidu      	"4325EA170132"

+		    exportControl 	"Public")))

+	(object Class "XMLValueFunctionValidate"

+	    quid       	"431F64ED0250"

+	    documentation 	"Generates an XML value by performing a parse of an XML  expression according to a given XML schema.  See ISO SQL/XML sec. 6.19."

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"431F65080140"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunction"

+		    quidu      	"4314C8B602D6"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "contentOption"

+		    quid       	"432F62780331"

+		    type       	"XMLContentType2"

+		    quidu      	"432F62190175"

+		    exportControl 	"Public")))

+	(object Class "XMLValueExpressionCast"

+	    quid       	"431F8D6D0258"

+	    documentation 	

+|Specifies a data conversion whose source or target is a value expressoin with an XML datatype.  See ISO SQL/XML sec. 6.5.  The <XML cast operand>is handled by the valueExpr relationship of the ValueExpressionCast.  <XML target operand> (which is a datatype) is handled by the datatype attribute of QueryValueeExpression.  The <null specification> is  handled by the ValueExpressionNullValue subtype of QueryValueExpression.

+|

+	    

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"431F8E0103E1"

+		    supplier   	"Logical View::SQLQueryModel::ValueExpressionCast"

+		    quidu      	"3B389F33029B"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "passingMechanism"

+		    quid       	"431F8FA60260"

+		    type       	"XMLPassingType"

+		    quidu      	"431F8E950073"

+		    exportControl 	"Public")))

+	(object Class "XMLPassingType"

+	    quid       	"431F8E950073"

+	    documentation 	"Represents the possible values for the XML passing mechanism clause.  A value of NONE indicates that the passing mechanism clause should be omitted."

+	    stereotype 	"enumeration"

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "BY_REF"

+		    quid       	"431F8F360101"

+		    exportControl 	"Public")

+		(object ClassAttribute "BY_VALUE"

+		    quid       	"431F8F5B01E0"

+		    exportControl 	"Public")

+		(object ClassAttribute "NONE"

+		    quid       	"4320977B0089"

+		    exportControl 	"Public")))

+	(object Class "XMLPredicate"

+	    quid       	"431F91DA0333"

+	    documentation 	

+|An XMLPredicate specifies a condition involving an XML value expression that can be evaluated to return true or false.  See ISO SQL/XML sec. 8.1.

+|

+	    

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"431F921F035B"

+		    supplier   	"Logical View::SQLQueryModel::Predicate"

+		    quidu      	"3B37F1C2039C"))

+	    abstract   	TRUE)

+	(object Class "XMLPredicateContent"

+	    quid       	"431F922D0058"

+	    documentation 	

+|Tests whether or not a given XML value represents an XML document.  See ISO SQL/XML sec. 8.2.

+|

+|Note:  the elaboration of this element is TBD

+	    

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"431F92E80025"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLPredicate"

+		    quidu      	"431F91DA0333")))

+	(object Class "XMLPredicateDocument"

+	    quid       	"431F928F0167"

+	    documentation 	

+|Tests whether or not a given XML value represents an XML document which contains exactly one XML element, zero or more XML comments, and zero or more XML processing instructions.  See ISO SQL/XML sec. 8.3.

+|

+|Note: the elaboration of this element is TBD.

+	    

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"431F92E40304"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLPredicate"

+		    quidu      	"431F91DA0333")))

+	(object Class "XMLPredicateExists"

+	    quid       	"431F92AC0390"

+	    documentation 	"Tests whether or not a given XQuery expression represents an non-empty sequence.  See ISO SQL/XML sec. 8.4."

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"431F92E1006B"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLPredicate"

+		    quidu      	"431F91DA0333")))

+	(object Class "XMLPredicateValid"

+	    quid       	"431F92C5001A"

+	    documentation 	

+|Tests whether or not a given XML value is valid according to a registered XML schema.  See ISO SQL/XML sec. 8.5.

+|

+|Note: the elaboration of this element is TBD.

+	    

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"431F92EB025A"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLPredicate"

+		    quidu      	"431F91DA0333")))

+	(object Class "XMLQueryExpression"

+	    quid       	"4320947501C6"

+	    documentation 	"Represents an XQuery expression.  The content of this element is a literal string which specifies an XML Query.  See ISO SQL/XML sec. 6.17."

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"43209DD50181"

+		    supplier   	"Logical View::SQLQueryModel::SQLQueryObject"

+		    quidu      	"4046839E02AB"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "xqueryExprContent"

+		    quid       	"432095570384"

+		    type       	"String"

+		    exportControl 	"Public")))

+	(object Class "XMLQueryArgumentList"

+	    quid       	"43209B100380"

+	    documentation 	"Represents an XML Query argument list.  See ISO SQL/XML sec. 6.17.  <note>The list is modelled as an explicit object rather than just as a list of XMLQueryArgument objects attached to the parent so that the list as whole can have an optional passing mechanism clause.</note>"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"43209DDA0391"

+		    supplier   	"Logical View::SQLQueryModel::SQLQueryObject"

+		    quidu      	"4046839E02AB"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "passingMechanism"

+		    quid       	"43209C1B0167"

+		    type       	"XMLPassingType"

+		    quidu      	"431F8E950073"

+		    exportControl 	"Public")))

+	(object Class "XMLQueryArgumentItem"

+	    quid       	"43209CA10174"

+	    documentation 	"Represents a single XML Query Argument within an XML Query Argument list.  The name attribute, if used, indicates that  this argument is an XML Query variable.  The attached value expression must resolve to an XML datatype.  See ISO SQL/XML sec. 6.17."

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"433B56240278"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "passingMechanism"

+		    quid       	"4320AF57019A"

+		    type       	"XMLPassingType"

+		    quidu      	"431F8E950073"

+		    exportControl 	"Public")))

+	(object Class "XMLSerializeFunction"

+	    quid       	"4320BC0E00FA"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"4320BD0C0222"

+		    supplier   	"Logical View::SQLQueryModel::ValueExpressionFunction"

+		    quidu      	"3B389F78002D"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "contentOption"

+		    quid       	"4320C015002A"

+		    type       	"XMLContentType"

+		    quidu      	"4320BD26008F"

+		    exportControl 	"Public")

+		(object ClassAttribute "serializeVersion"

+		    quid       	"4320C4890156"

+		    type       	"String"

+		    exportControl 	"Public")

+		(object ClassAttribute "declarationOption"

+		    quid       	"4320C4A50297"

+		    type       	"XMLDeclarationType"

+		    quidu      	"4320C38A0272"

+		    exportControl 	"Public")))

+	(object Class "XMLContentType"

+	    quid       	"4320BD26008F"

+	    stereotype 	"enumeration"

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "CONTENT"

+		    quid       	"4320BD610089"

+		    exportControl 	"Public")

+		(object ClassAttribute "DOCUMENT"

+		    quid       	"4320BD7D02B1"

+		    exportControl 	"Public")

+		(object ClassAttribute "NONE"

+		    quid       	"4320BD9003DA"

+		    exportControl 	"Public")))

+	(object Class "XMLSerializeFunctionTarget"

+	    quid       	"4320C222013E"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"433B57730128"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160")))

+	(object Class "XMLDeclarationType"

+	    quid       	"4320C38A0272"

+	    stereotype 	"enumeration"

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "EXCLUDING_XMLDECLARATION"

+		    quid       	"4320C3F800D5"

+		    exportControl 	"Public")

+		(object ClassAttribute "INCLUDING_XMLDECLARATION"

+		    quid       	"4320C424033C"

+		    exportControl 	"Public")

+		(object ClassAttribute "NONE"

+		    quid       	"4320C432020F"

+		    exportControl 	"Public")))

+	(object Class "XMLAggregateFunction"

+	    quid       	"4314C8B602E4"

+	    documentation 	"Specifies a value computed from a collection of rows.  See ISO SQL/XML sec. 11.2.  The <XML value expression> clause is handled by the parameterList relationship in ValueExpressionFunction, but is restricted to a single element in this case."

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"4320C6DC0198"

+		    supplier   	"Logical View::SQLQueryModel::ValueExpressionFunction"

+		    quidu      	"3B389F78002D"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "returningOption"

+		    quid       	"432618CF0060"

+		    type       	"XMLReturningType"

+		    quidu      	"4325EA170132"

+		    exportControl 	"Public")))

+	(object Class "XMLReturningType"

+	    quid       	"4325EA170132"

+	    stereotype 	"enumeration"

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "RETURNING_CONTENT"

+		    quid       	"4325EA5103DE"

+		    exportControl 	"Public")

+		(object ClassAttribute "RETURNING_SEQUENCE"

+		    quid       	"4325EA700343"

+		    exportControl 	"Public")

+		(object ClassAttribute "NONE"

+		    quid       	"4325EA870314"

+		    exportControl 	"Public")))

+	(object Class "XMLValueFunctionConcatContentItem"

+	    quid       	"4325FC9500E8"

+	    documentation 	

+|Represents an XML value expression within an XMLCONCAT function.  See ISO SQL/XML sec. 6.11.  Contains a value expression which must resolve to an XML datatype.

+|

+	    

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"433B54B00215"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160")))

+	(object Class "XMLValueFunctionCommentContent"

+	    quid       	"4325FF710379"

+	    documentation 	"Represents the <string value expression> within an <XML comment> function.  See ISO SQL/XML sec. 6.10.  Contains a value expression which must resolve to an string datatype."

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"433B54710354"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160")))

+	(object Class "XMLValueFunctionDocumentContent"

+	    quid       	"432603710070"

+	    documentation 	

+|Represents an <XML value expression> within an <XML document> function.  See ISO SQL/XML sec. 6.12.  The value expression contained by this element must resolve to an XML datatype.

+|

+	    

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"433B54E70369"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160")))

+	(object Class "XMLAggregateSortSpecification"

+	    quid       	"432619080328"

+	    documentation 	"Specifies an ordering within the values returned by the aggregation function.  See ISO SQL/XML sec. 11.2."

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"43271DD50090"

+		    supplier   	"Logical View::SQLQueryModel::SQLQueryObject"

+		    quidu      	"4046839E02AB")))

+	(object Class "XMLNullHandlingType"

+	    quid       	"43261E3B014E"

+	    stereotype 	"enumeration"

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "ABSENT_ON_NULL"

+		    quid       	"43261E5E0290"

+		    exportControl 	"Public")

+		(object ClassAttribute "EMPTY_ON_NULL"

+		    quid       	"43261E740012"

+		    exportControl 	"Public")

+		(object ClassAttribute "NIL_ON_NO_CONTENT"

+		    quid       	"43261EBA0174"

+		    exportControl 	"Public")

+		(object ClassAttribute "NIL_ON_NULL"

+		    quid       	"43261E8001FA"

+		    exportControl 	"Public")

+		(object ClassAttribute "NULL_ON_NULL"

+		    quid       	"43261E8C0310"

+		    exportControl 	"Public")

+		(object ClassAttribute "NONE"

+		    quid       	"43261EC800D4"

+		    exportControl 	"Public")))

+	(object Class "XMLValueFunctionForestContentItem"

+	    quid       	"432F1BC80031"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"433B56CB00C1"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160")))

+	(object Class "XMLValueFunctionParseContent"

+	    quid       	"432F3271034A"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"433B57030235"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160")))

+	(object Class "XMLWhitespaceHandlingType"

+	    quid       	"432F33A80213"

+	    stereotype 	"enumeration"

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "PRESERE_WHITESPACE"

+		    quid       	"432F33DA01B4"

+		    exportControl 	"Public")

+		(object ClassAttribute "STRIP_WHITESPACE"

+		    quid       	"432F33FA00F3"

+		    exportControl 	"Public")

+		(object ClassAttribute "NONE"

+		    quid       	"432F34070236"

+		    exportControl 	"Public")))

+	(object Class "XMLValueFunctionPIContent"

+	    quid       	"432F390B0155"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"433B5727006A"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160")))

+	(object Class "XMLEmptyHandlingType"

+	    quid       	"432F51280232"

+	    stereotype 	"enumeration"

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "EMPTY_ON_EMPTY"

+		    quid       	"432F515001E7"

+		    exportControl 	"Public")

+		(object ClassAttribute "NULL_ON_EMPTY"

+		    quid       	"432F51680379"

+		    exportControl 	"Public")

+		(object ClassAttribute "NONE"

+		    quid       	"432F51730293"

+		    exportControl 	"Public")))

+	(object Class "XMLTableFunction"

+	    quid       	"432F58BF035B"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"432F58ED037A"

+		    supplier   	"Logical View::SQLQueryModel::TableFunction"

+		    quidu      	"3BF3D3E801A0"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "tableRowPattern"

+		    quid       	"432F6CBD00CC"

+		    type       	"String"

+		    exportControl 	"Public")))

+	(object Class "XMLValueFunctionTextContent"

+	    quid       	"432F5B620073"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"433B57DE032C"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160")))

+	(object Class "XMLValueFunctionValidateContent"

+	    quid       	"432F60FF0073"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"433B581B02C6"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160")))

+	(object Class "XMLContentType2"

+	    quid       	"432F62190175"

+	    stereotype 	"enumeration"

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "CONTENT"

+		    quid       	"432F623702FA"

+		    exportControl 	"Public")

+		(object ClassAttribute "DOCUMENT"

+		    quid       	"432F62470161"

+		    exportControl 	"Public")

+		(object ClassAttribute "SEQUENCE"

+		    quid       	"432F62500320"

+		    exportControl 	"Public")

+		(object ClassAttribute "NONE"

+		    quid       	"432F625A0039"

+		    exportControl 	"Public")))

+	(object Class "XMLTableColumnDefinitionItem"

+	    quid       	"432F717D0304"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"432F723600D1"

+		    supplier   	"Logical View::SQLQueryModel::SQLQueryObject"

+		    quidu      	"4046839E02AB")))

+	(object Class "XMLTableColumnDefinitionRegular"

+	    quid       	"432F7257029B"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"432F72AD00C9"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLTableColumnDefinitionItem"

+		    quidu      	"432F717D0304"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "dataType"

+		    quid       	"432F73360027"

+		    type       	"DataType"

+		    quidu      	"3E9B3F3400BF"

+		    exportControl 	"Public")

+		(object ClassAttribute "passingOption"

+		    quid       	"432F736200CB"

+		    type       	"XMLPassingType"

+		    quidu      	"431F8E950073"

+		    exportControl 	"Public")

+		(object ClassAttribute "tableColumnPattern"

+		    quid       	"432F73AA00D9"

+		    type       	"String"

+		    exportControl 	"Public")))

+	(object Class "XMLTableColumnDefinitionOrdinality"

+	    quid       	"432F728503C4"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"432F72A90380"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLTableColumnDefinitionItem"

+		    quidu      	"432F717D0304")))

+	(object Class "XMLValueFunctionValidateAccordingTo"

+	    quid       	"432F748E01DE"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"432F75E601F0"

+		    supplier   	"Logical View::SQLQueryModel::SQLQueryObject"

+		    quidu      	"4046839E02AB")))

+	(object Class "XMLValueFunctionValidateAccordingToURI"

+	    quid       	"432F752A01C6"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"432F75F80228"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunctionValidateAccordingTo"

+		    quidu      	"432F748E01DE"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "noNamespace"

+		    quid       	"432F775C0197"

+		    type       	"boolean"

+		    initv      	"false"

+		    exportControl 	"Public")

+		(object ClassAttribute "targetNamespaceURI"

+		    quid       	"432F763701A7"

+		    type       	"String"

+		    exportControl 	"Public")

+		(object ClassAttribute "schemaLocationURI"

+		    quid       	"432F764500B7"

+		    type       	"String"

+		    exportControl 	"Public")))

+	(object Class "XMLValueFunctionValidateAccordingToIdentifier"

+	    quid       	"432F75530067"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"432F75F50007"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunctionValidateAccordingTo"

+		    quidu      	"432F748E01DE"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "schemaName"

+		    quid       	"435986C601AB"

+		    type       	"String"

+		    exportControl 	"Public")

+		(object ClassAttribute "registeredXMLSchemaName"

+		    quid       	"43598751027D"

+		    type       	"String"

+		    exportControl 	"Public")))

+	(object Class "XMLValueFunctionValidateElementName"

+	    quid       	"432F792C0211"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"432F7CDF00C8"

+		    supplier   	"Logical View::SQLQueryModel::SQLQueryObject"

+		    quidu      	"4046839E02AB")))

+	(object Class "XMLValueFunctionValidateElementNamespace"

+	    quid       	"432F7B6000C4"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"432F7CDC004C"

+		    supplier   	"Logical View::SQLQueryModel::SQLQueryObject"

+		    quidu      	"4046839E02AB"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "noNamespace"

+		    quid       	"432F7D810036"

+		    type       	"boolean"

+		    initv      	"false"

+		    exportControl 	"Public")

+		(object ClassAttribute "namespaceURI"

+		    quid       	"432F7D9D0163"

+		    type       	"String"

+		    exportControl 	"Public")))

+	(object Class "XMLNamespacesDeclaration"

+	    quid       	"433B457C01AC"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"433B553002A7"

+		    supplier   	"Logical View::SQLQueryModel::SQLQueryObject"

+		    quidu      	"4046839E02AB")))

+	(object Class "XMLAttributesDeclaration"

+	    quid       	"433B484E00E9")

+	(object Class "XMLValueFunctionElementContentList"

+	    quid       	"433B4AE70268"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"433B55E001D9"

+		    supplier   	"Logical View::SQLQueryModel::SQLQueryObject"

+		    quidu      	"4046839E02AB"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "nullHandlingOption"

+		    quid       	"433B4B87021A"

+		    type       	"XMLNullHandlingType"

+		    quidu      	"43261E3B014E"

+		    exportControl 	"Public")))

+	(object Class "XMLValueFunctionQueryReturning"

+	    quid       	"434490B20155"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"4344930C002F"

+		    supplier   	"Logical View::SQLQueryModel::SQLQueryObject"

+		    quidu      	"4046839E02AB"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "returningOption"

+		    quid       	"434491DC03B7"

+		    type       	"XMLReturningType"

+		    quidu      	"4325EA170132"

+		    exportControl 	"Public")

+		(object ClassAttribute "passingOption"

+		    quid       	"43449204031B"

+		    type       	"XMLPassingType"

+		    quidu      	"431F8E950073"

+		    exportControl 	"Public")))

+	(object Class "XMLValueFunctionValidateElement"

+	    quid       	"4346E84C020E"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"4346EA3A00CF"

+		    supplier   	"Logical View::SQLQueryModel::SQLQueryObject"

+		    quidu      	"4046839E02AB")))

+	(object Class "XMLTableColumnDefinitionDefault"

+	    quid       	"43598E370091"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"43598FF50147"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160")))

+	(object Class "XMLSerializeFunctionEncoding"

+	    quid       	"435E96130247"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"435E9B540092"

+		    supplier   	"Logical View::SQLQueryModel::SQLQueryObject"

+		    quidu      	"4046839E02AB"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "encodingName"

+		    quid       	"435E96C30109"

+		    type       	"String"

+		    exportControl 	"Public")))

+	(object Association "$UNNAMED$0"

+	    quid       	"431622D70082"

+	    roles      	(list role_list

+		(object Role "valueExpr"

+		    quid       	"431622D8000B"

+		    label      	"valueExpr"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$1"

+		    quid       	"431622D80015"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLAttributeDeclarationItem"

+		    quidu      	"4314C8B602B2"

+		    client_cardinality 	(value cardinality "1")

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$2"

+	    quid       	"432095DD01D8"

+	    roles      	(list role_list

+		(object Role "xqueryExpr"

+		    quid       	"432095DE02E8"

+		    label      	"xqueryExpr"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLQueryExpression"

+		    quidu      	"4320947501C6"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "predicateExists"

+		    quid       	"432095DE02EA"

+		    label      	"predicateExists"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLPredicateExists"

+		    quidu      	"431F92AC0390"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$3"

+	    quid       	"43209B940254"

+	    roles      	(list role_list

+		(object Role "xqueryArgList"

+		    quid       	"43209B95015B"

+		    label      	"xqueryArgList"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLQueryArgumentList"

+		    quidu      	"43209B100380"

+		    client_cardinality 	(value cardinality "0..1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "predicateExists"

+		    quid       	"43209B95015D"

+		    label      	"predicateExists"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLPredicateExists"

+		    quidu      	"431F92AC0390"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$4"

+	    quid       	"43209D1502C5"

+	    roles      	(list role_list

+		(object Role "xqueryArgListChildren"

+		    quid       	"43209D170232"

+		    label      	"xqueryArgListChildren"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLQueryArgumentItem"

+		    quidu      	"43209CA10174"

+		    client_cardinality 	(value cardinality "1..n")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "xqueryArgList"

+		    quid       	"43209D170234"

+		    label      	"xqueryArgList"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLQueryArgumentList"

+		    quidu      	"43209B100380"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$5"

+	    quid       	"4320AE75025D"

+	    roles      	(list role_list

+		(object Role "valueExpr"

+		    quid       	"4320AE760313"

+		    label      	"valueExpr"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$6"

+		    quid       	"4320AE76033B"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLQueryArgumentItem"

+		    quidu      	"43209CA10174"

+		    client_cardinality 	(value cardinality "1")

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$7"

+	    quid       	"4320C28D01F6"

+	    roles      	(list role_list

+		(object Role "serializeTarget"

+		    quid       	"4320C28E031A"

+		    label      	"serializeTarget"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLSerializeFunctionTarget"

+		    quidu      	"4320C222013E"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "serializeFunction"

+		    quid       	"4320C28E031C"

+		    label      	"serializeFunction"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLSerializeFunction"

+		    quidu      	"4320BC0E00FA"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$8"

+	    quid       	"4320C2D6002E"

+	    roles      	(list role_list

+		(object Role "valueExpr"

+		    quid       	"4320C2D70315"

+		    label      	"valueExpr"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$9"

+		    quid       	"4320C2D70333"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLSerializeFunctionTarget"

+		    quidu      	"4320C222013E"

+		    client_cardinality 	(value cardinality "1")

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$10"

+	    quid       	"4325FCE0012C"

+	    roles      	(list role_list

+		(object Role "concatContentList"

+		    quid       	"4325FCE0037B"

+		    label      	"concatContentList"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunctionConcatContentItem"

+		    quidu      	"4325FC9500E8"

+		    client_cardinality 	(value cardinality "1..n")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "valueFunctionConcat"

+		    quid       	"4325FCE0037D"

+		    label      	"valueFunctionConcat"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunctionConcat"

+		    quidu      	"4314C8B602DA"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$11"

+	    quid       	"4325FD3403AF"

+	    roles      	(list role_list

+		(object Role "valueExpr"

+		    quid       	"4325FD350306"

+		    label      	"valueExpr"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$12"

+		    quid       	"4325FD35031A"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunctionConcatContentItem"

+		    quidu      	"4325FC9500E8"

+		    client_cardinality 	(value cardinality "1")

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$13"

+	    quid       	"4325FF8900C9"

+	    roles      	(list role_list

+		(object Role "commentContent"

+		    quid       	"4325FF8902DA"

+		    label      	"commentContent"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunctionCommentContent"

+		    quidu      	"4325FF710379"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "valueFunctionComment"

+		    quid       	"4325FF8902DC"

+		    label      	"valueFunctionComment"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunctionComment"

+		    quidu      	"431F5A830075"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$14"

+	    quid       	"4325FFFC00C3"

+	    roles      	(list role_list

+		(object Role "valueExpr"

+		    quid       	"4325FFFC0388"

+		    label      	"valueExpr"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$15"

+		    quid       	"4325FFFC03A6"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunctionCommentContent"

+		    quidu      	"4325FF710379"

+		    client_cardinality 	(value cardinality "1")

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$16"

+	    quid       	"4326038C0283"

+	    roles      	(list role_list

+		(object Role "documentContent"

+		    quid       	"4326038E0155"

+		    label      	"documentContent"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunctionDocumentContent"

+		    quidu      	"432603710070"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "valueFunctionDocument"

+		    quid       	"4326038E0157"

+		    label      	"valueFunctionDocument"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunctionDocument"

+		    quidu      	"431F5B1E0385"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$17"

+	    quid       	"432603E8011E"

+	    roles      	(list role_list

+		(object Role "valueExpr"

+		    quid       	"432603EA02B5"

+		    label      	"valueExpr"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$18"

+		    quid       	"432603EA02D3"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunctionDocumentContent"

+		    quidu      	"432603710070"

+		    client_cardinality 	(value cardinality "1")

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$19"

+	    quid       	"4326192702FC"

+	    roles      	(list role_list

+		(object Role "sortSpecList"

+		    quid       	"4326192803A0"

+		    label      	"sortSpecList"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLAggregateSortSpecification"

+		    quidu      	"432619080328"

+		    client_cardinality 	(value cardinality "0..n")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "aggregateFunction"

+		    quid       	"4326192803A2"

+		    label      	"aggregateFunction"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLAggregateFunction"

+		    quidu      	"4314C8B602E4"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$20"

+	    quid       	"432619B70328"

+	    roles      	(list role_list

+		(object Role "orderBySpec"

+		    quid       	"432619B90329"

+		    label      	"orderBySpec"

+		    supplier   	"Logical View::SQLQueryModel::OrderBySpecification"

+		    quidu      	"404D14E20381"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$21"

+		    quid       	"432619B9032B"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLAggregateSortSpecification"

+		    quidu      	"432619080328"

+		    client_cardinality 	(value cardinality "1")

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$22"

+	    quid       	"432621D30389"

+	    roles      	(list role_list

+		(object Role "valueExpr"

+		    quid       	"432621D40272"

+		    label      	"valueExpr"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$23"

+		    quid       	"432621D40286"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunctionElementContentItem"

+		    quidu      	"4314C8B602C9"

+		    client_cardinality 	(value cardinality "1")

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$24"

+	    quid       	"432F1C12012E"

+	    roles      	(list role_list

+		(object Role "forestContentList"

+		    quid       	"432F1C130143"

+		    label      	"forestContentList"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunctionForestContentItem"

+		    quidu      	"432F1BC80031"

+		    client_cardinality 	(value cardinality "0..n")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "valueFunctionForest"

+		    quid       	"432F1C130145"

+		    label      	"valueFunctionForest"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunctionForest"

+		    quidu      	"4314C8B60333"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$25"

+	    quid       	"432F1E090211"

+	    roles      	(list role_list

+		(object Role "valueExpr"

+		    quid       	"432F1E09035B"

+		    label      	"valueExpr"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$26"

+		    quid       	"432F1E090397"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunctionForestContentItem"

+		    quidu      	"432F1BC80031"

+		    client_cardinality 	(value cardinality "1")

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$27"

+	    quid       	"432F329D01F7"

+	    roles      	(list role_list

+		(object Role "parseContent"

+		    quid       	"432F329E0146"

+		    label      	"parseContent"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunctionParseContent"

+		    quidu      	"432F3271034A"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "valueFunctionParse"

+		    quid       	"432F329E0148"

+		    label      	"valueFunctionParse"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunctionParse"

+		    quidu      	"431F5B4E0244"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$28"

+	    quid       	"432F336600AF"

+	    roles      	(list role_list

+		(object Role "valueExpr"

+		    quid       	"432F33660334"

+		    label      	"valueExpr"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$29"

+		    quid       	"432F33660352"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunctionParseContent"

+		    quidu      	"432F3271034A"

+		    client_cardinality 	(value cardinality "1")

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$30"

+	    quid       	"432F39250383"

+	    roles      	(list role_list

+		(object Role "PIContent"

+		    quid       	"432F392601CB"

+		    label      	"PIContent"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunctionPIContent"

+		    quidu      	"432F390B0155"

+		    client_cardinality 	(value cardinality "0..1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "valueFunctionPI"

+		    quid       	"432F392601CD"

+		    label      	"valueFunctionPI"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunctionPI"

+		    quidu      	"431F5B8B0129"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$31"

+	    quid       	"432F39B30146"

+	    roles      	(list role_list

+		(object Role "valueExpr"

+		    quid       	"432F39B30359"

+		    label      	"valueExpr"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$32"

+		    quid       	"432F39B3036D"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunctionPIContent"

+		    quidu      	"432F390B0155"

+		    client_cardinality 	(value cardinality "1")

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$33"

+	    quid       	"432F3CC90159"

+	    roles      	(list role_list

+		(object Role "xqueryExpr"

+		    quid       	"432F3CCA01D3"

+		    label      	"xqueryExpr"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLQueryExpression"

+		    quidu      	"4320947501C6"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "valueFunctionQuery"

+		    quid       	"432F3CCA01D5"

+		    label      	"valueFunctionQuery"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunctionQuery"

+		    quidu      	"431F5BAE0364"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$34"

+	    quid       	"432F3FBC01A5"

+	    roles      	(list role_list

+		(object Role "xqueryArgList"

+		    quid       	"432F3FBD00AC"

+		    label      	"xqueryArgList"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLQueryArgumentList"

+		    quidu      	"43209B100380"

+		    client_cardinality 	(value cardinality "0..1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "valueFunctionQuery"

+		    quid       	"432F3FBD00AE"

+		    label      	"valueFunctionQuery"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunctionQuery"

+		    quidu      	"431F5BAE0364"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$35"

+	    quid       	"432F5B7F0059"

+	    roles      	(list role_list

+		(object Role "textContent"

+		    quid       	"432F5B7F0227"

+		    label      	"textContent"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunctionTextContent"

+		    quidu      	"432F5B620073"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "valueFunctionText"

+		    quid       	"432F5B7F0229"

+		    label      	"valueFunctionText"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunctionText"

+		    quidu      	"431F5DFD011F"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$36"

+	    quid       	"432F5BD70178"

+	    roles      	(list role_list

+		(object Role "valueExpr"

+		    quid       	"432F5BD80026"

+		    label      	"valueExpr"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$37"

+		    quid       	"432F5BD8003A"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunctionTextContent"

+		    quidu      	"432F5B620073"

+		    client_cardinality 	(value cardinality "1")

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$38"

+	    quid       	"432F61200036"

+	    roles      	(list role_list

+		(object Role "validateContent"

+		    quid       	"432F61200291"

+		    label      	"validateContent"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunctionValidateContent"

+		    quidu      	"432F60FF0073"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "valueFunctionValidate"

+		    quid       	"432F61200293"

+		    label      	"valueFunctionValidate"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunctionValidate"

+		    quidu      	"431F64ED0250"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$39"

+	    quid       	"432F61960258"

+	    roles      	(list role_list

+		(object Role "valueExpr"

+		    quid       	"432F619701C5"

+		    label      	"valueExpr"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$40"

+		    quid       	"432F619701E3"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunctionValidateContent"

+		    quidu      	"432F60FF0073"

+		    client_cardinality 	(value cardinality "1")

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$41"

+	    quid       	"432F6C0F004B"

+	    roles      	(list role_list

+		(object Role "xqueryArgList"

+		    quid       	"432F6C0F0308"

+		    label      	"xqueryArgList"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLQueryArgumentList"

+		    quidu      	"43209B100380"

+		    client_cardinality 	(value cardinality "0..1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "tableFunction"

+		    quid       	"432F6C0F0312"

+		    label      	"tableFunction"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLTableFunction"

+		    quidu      	"432F58BF035B"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$42"

+	    quid       	"432F71A40340"

+	    roles      	(list role_list

+		(object Role "columnDefList"

+		    quid       	"432F71A5020C"

+		    label      	"columnDefList"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLTableColumnDefinitionItem"

+		    quidu      	"432F717D0304"

+		    client_cardinality 	(value cardinality "1..n")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "tableFunction"

+		    quid       	"432F71A5020E"

+		    label      	"tableFunction"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLTableFunction"

+		    quidu      	"432F58BF035B"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$43"

+	    quid       	"432F74E40124"

+	    roles      	(list role_list

+		(object Role "validateAccordingTo"

+		    quid       	"432F74E403E1"

+		    label      	"validateAccordingTo"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunctionValidateAccordingTo"

+		    quidu      	"432F748E01DE"

+		    client_cardinality 	(value cardinality "0..1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "valueFunctionValidate"

+		    quid       	"432F74E403E3"

+		    label      	"valueFunctionValidate"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunctionValidate"

+		    quidu      	"431F64ED0250"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$44"

+	    quid       	"433B45AE006E"

+	    roles      	(list role_list

+		(object Role "namespaceDecltemList"

+		    quid       	"433B45AE02DB"

+		    label      	"namespaceDecltemList"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLNamespaceDeclarationItem"

+		    quidu      	"4314C8B6031E"

+		    client_cardinality 	(value cardinality "1..n")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "namespacesDecl"

+		    quid       	"433B45AE02DD"

+		    label      	"namespacesDecl"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLNamespacesDeclaration"

+		    quidu      	"433B457C01AC"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$45"

+	    quid       	"433B466C03A8"

+	    roles      	(list role_list

+		(object Role "namespacesDecl"

+		    quid       	"433B466D024B"

+		    label      	"namespacesDecl"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLNamespacesDeclaration"

+		    quidu      	"433B457C01AC"

+		    client_cardinality 	(value cardinality "0..1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "valueFunctionElement"

+		    quid       	"433B466D024D"

+		    label      	"valueFunctionElement"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunctionElement"

+		    quidu      	"4314C8B602F6"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$46"

+	    quid       	"433B49720088"

+	    roles      	(list role_list

+		(object Role "attributesDecl"

+		    quid       	"433B49720359"

+		    label      	"attributesDecl"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLAttributesDeclaration"

+		    quidu      	"433B484E00E9"

+		    client_cardinality 	(value cardinality "0..1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "valueFunctionElement"

+		    quid       	"433B4972035B"

+		    label      	"valueFunctionElement"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunctionElement"

+		    quidu      	"4314C8B602F6"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$47"

+	    quid       	"433B49E00235"

+	    roles      	(list role_list

+		(object Role "attributeDeclItem"

+		    quid       	"433B49E1022D"

+		    label      	"attributeDeclItem"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLAttributeDeclarationItem"

+		    quidu      	"4314C8B602B2"

+		    client_cardinality 	(value cardinality "1..n")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "attributesDecl"

+		    quid       	"433B49E1022F"

+		    label      	"attributesDecl"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLAttributesDeclaration"

+		    quidu      	"433B484E00E9"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$48"

+	    quid       	"433B4B1C0323"

+	    roles      	(list role_list

+		(object Role "elementContentList"

+		    quid       	"433B4B1E0240"

+		    label      	"elementContentList"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunctionElementContentList"

+		    quidu      	"433B4AE70268"

+		    client_cardinality 	(value cardinality "0..1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "valueFunctionElement"

+		    quid       	"433B4B1E024A"

+		    label      	"valueFunctionElement"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunctionElement"

+		    quidu      	"4314C8B602F6"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$49"

+	    quid       	"433B4BE200D1"

+	    roles      	(list role_list

+		(object Role "elementContentListChildren"

+		    quid       	"433B4BE30050"

+		    label      	"elementContentListChildren"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunctionElementContentItem"

+		    quidu      	"4314C8B602C9"

+		    client_cardinality 	(value cardinality "0..n")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "elementContentList"

+		    quid       	"433B4BE3005A"

+		    label      	"elementContentList"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunctionElementContentList"

+		    quidu      	"433B4AE70268"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$50"

+	    quid       	"433B4E8C0091"

+	    roles      	(list role_list

+		(object Role "namespacesDecl"

+		    quid       	"433B4E8C02B8"

+		    label      	"namespacesDecl"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLNamespacesDeclaration"

+		    quidu      	"433B457C01AC"

+		    client_cardinality 	(value cardinality "0..1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "valueFunctionForest"

+		    quid       	"433B4E8C02BA"

+		    label      	"valueFunctionForest"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunctionForest"

+		    quidu      	"4314C8B60333"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$51"

+	    quid       	"433B51E302F3"

+	    roles      	(list role_list

+		(object Role "namespacesDecl"

+		    quid       	"433B51E4020E"

+		    label      	"namespacesDecl"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLNamespacesDeclaration"

+		    quidu      	"433B457C01AC"

+		    client_cardinality 	(value cardinality "0..1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "tableFunction"

+		    quid       	"433B51E40218"

+		    label      	"tableFunction"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLTableFunction"

+		    quidu      	"432F58BF035B"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$52"

+	    quid       	"4344923B038E"

+	    roles      	(list role_list

+		(object Role "queryReturning"

+		    quid       	"4344923C032B"

+		    label      	"queryReturning"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunctionQueryReturning"

+		    quidu      	"434490B20155"

+		    client_cardinality 	(value cardinality "0..1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "valueFunctionQuery"

+		    quid       	"4344923C032D"

+		    label      	"valueFunctionQuery"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunctionQuery"

+		    quidu      	"431F5BAE0364"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$53"

+	    quid       	"4346E8A102C8"

+	    roles      	(list role_list

+		(object Role "validateElementNamespace"

+		    quid       	"4346E8A2008F"

+		    label      	"validateElementNamespace"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunctionValidateElementNamespace"

+		    quidu      	"432F7B6000C4"

+		    client_cardinality 	(value cardinality "0..1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "validateElement"

+		    quid       	"4346E8A20099"

+		    label      	"validateElement"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunctionValidateElement"

+		    quidu      	"4346E84C020E"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$54"

+	    quid       	"4346E8F401DA"

+	    roles      	(list role_list

+		(object Role "validateElementName"

+		    quid       	"4346E8F90277"

+		    label      	"validateElementName"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunctionValidateElementName"

+		    quidu      	"432F792C0211"

+		    client_cardinality 	(value cardinality "0..1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "validateElement"

+		    quid       	"4346E8F90279"

+		    label      	"validateElement"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunctionValidateElement"

+		    quidu      	"4346E84C020E"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$55"

+	    quid       	"4346E9550359"

+	    roles      	(list role_list

+		(object Role "validateElement"

+		    quid       	"4346E95D0043"

+		    label      	"validateElement"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunctionValidateElement"

+		    quidu      	"4346E84C020E"

+		    client_cardinality 	(value cardinality "0..1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "validateAccordingTo"

+		    quid       	"4346E95D0045"

+		    label      	"validateAccordingTo"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLValueFunctionValidateAccordingTo"

+		    quidu      	"432F748E01DE"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$56"

+	    quid       	"43598EF500D1"

+	    roles      	(list role_list

+		(object Role "valueExpr"

+		    quid       	"43598EF70322"

+		    label      	"valueExpr"

+		    supplier   	"Logical View::SQLQueryModel::QueryValueExpression"

+		    quidu      	"3B3792520160"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$57"

+		    quid       	"43598EF7034A"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLTableColumnDefinitionDefault"

+		    quidu      	"43598E370091"

+		    client_cardinality 	(value cardinality "1")

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$58"

+	    quid       	"43598F37019E"

+	    roles      	(list role_list

+		(object Role "columnDefinitionDefault"

+		    quid       	"43598F3800AF"

+		    label      	"columnDefinitionDefault"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLTableColumnDefinitionDefault"

+		    quidu      	"43598E370091"

+		    client_cardinality 	(value cardinality "0..1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "columnDefinitionRegular"

+		    quid       	"43598F3800B9"

+		    label      	"columnDefinitionRegular"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLTableColumnDefinitionRegular"

+		    quidu      	"432F7257029B"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$59"

+	    quid       	"435E96610004"

+	    roles      	(list role_list

+		(object Role "serializeEncoding"

+		    quid       	"435E966101D1"

+		    label      	"serializeEncoding"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLSerializeFunctionEncoding"

+		    quidu      	"435E96130247"

+		    client_cardinality 	(value cardinality "0..1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "serializeFunction"

+		    quid       	"435E966101D3"

+		    label      	"serializeFunction"

+		    supplier   	"Logical View::SQLXMLQueryModel::XMLSerializeFunction"

+		    quidu      	"4320BC0E00FA"

+		    client_cardinality 	(value cardinality "1")

+		    is_aggregate 	TRUE))))

+    logical_presentations 	(list unit_reference_list

+	(object ClassDiagram "XMLValueFunction"

+	    quid       	"431F4FA90067"

+	    title      	"XMLValueFunction"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	0

+	    origin_y   	0

+	    items      	(list diagram_item_list

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunction" @1

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1391, 273)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@1

+			location   	(1114, 215)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	554

+			justify    	0

+			label      	"XMLValueFunction")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"4314C8B602D6"

+		    width      	572

+		    height     	144

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionElement" @2

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1001, 1482)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@2

+			location   	(633, 1425)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	736

+			justify    	0

+			label      	"XMLValueFunctionElement")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4314C8B602F6"

+		    width      	754

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionForest" @3

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1196, 1716)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@3

+			location   	(850, 1659)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	692

+			justify    	0

+			label      	"XMLValueFunctionForest")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4314C8B60333"

+		    width      	710

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionConcat" @4

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(663, 1027)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@4

+			location   	(312, 970)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	702

+			justify    	0

+			label      	"XMLValueFunctionConcat")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4314C8B602DA"

+		    width      	720

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionComment" @5

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(455, 793)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@5

+			location   	(70, 736)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	770

+			justify    	0

+			label      	"XMLValueFunctionComment")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"431F5A830075"

+		    width      	788

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionDocument" @6

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(793, 1261)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@6

+			location   	(396, 1204)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	794

+			justify    	0

+			label      	"XMLValueFunctionDocument")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"431F5B1E0385"

+		    width      	812

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionParse" @7

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1352, 1937)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@7

+			location   	(1007, 1880)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	690

+			justify    	0

+			label      	"XMLValueFunctionParse")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"431F5B4E0244"

+		    width      	708

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionPI" @8

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1560, 2158)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@8

+			location   	(1270, 2101)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	580

+			justify    	0

+			label      	"XMLValueFunctionPI")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"431F5B8B0129"

+		    width      	598

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionQuery" @9

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1677, 2379)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@9

+			location   	(1339, 2322)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	676

+			justify    	0

+			label      	"XMLValueFunctionQuery")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"431F5BAE0364"

+		    width      	694

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionText" @10

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1846, 2600)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@10

+			location   	(1531, 2543)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	630

+			justify    	0

+			label      	"XMLValueFunctionText")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"431F5DFD011F"

+		    width      	648

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionValidate" @11

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1950, 2821)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@11

+			location   	(1576, 2764)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	748

+			justify    	0

+			label      	"XMLValueFunctionValidate")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"431F64ED0250"

+		    width      	766

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::ValueExpressionFunction" @12

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(429, 273)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@12

+			location   	(88, 185)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	682

+			justify    	0

+			label      	"ValueExpressionFunction")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B389F78002D"

+		    width      	700

+		    height     	204

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @13

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4320C1D00059"

+		    client     	@1

+		    supplier   	@12

+		    line_style 	0)

+		(object InheritTreeView "" @14

+		    location   	(1391, 569)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@1

+		    vertices   	(list Points

+			(1391, 569)

+			(1391, 345)))

+		(object InheritView "" @15

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"431F5FA20341"

+		    client     	@5

+		    supplier   	@1

+		    line_style 	3

+		    origin_attachment 	(753, 721)

+		    terminal_attachment 	(753, 569)

+		    drawSupplier 	@14)

+		(object InheritView "" @16

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"431F5FB30346"

+		    client     	@6

+		    supplier   	@1

+		    line_style 	3

+		    origin_attachment 	(1078, 1189)

+		    terminal_attachment 	(1078, 569)

+		    drawSupplier 	@14)

+		(object InheritView "" @17

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"431F64B402F8"

+		    client     	@7

+		    supplier   	@1

+		    line_style 	3

+		    origin_attachment 	(1596, 1865)

+		    terminal_attachment 	(1596, 569)

+		    drawSupplier 	@14)

+		(object InheritView "" @18

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"431F64C101DE"

+		    client     	@8

+		    supplier   	@1

+		    line_style 	3

+		    origin_attachment 	(1756, 2086)

+		    terminal_attachment 	(1756, 569)

+		    drawSupplier 	@14)

+		(object InheritView "" @19

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"431F64CC0021"

+		    client     	@9

+		    supplier   	@1

+		    line_style 	3

+		    origin_attachment 	(1909, 2307)

+		    terminal_attachment 	(1909, 569)

+		    drawSupplier 	@14)

+		(object InheritView "" @20

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"431F64D7004F"

+		    client     	@10

+		    supplier   	@1

+		    line_style 	3

+		    origin_attachment 	(2062, 2528)

+		    terminal_attachment 	(2062, 569)

+		    drawSupplier 	@14)

+		(object InheritView "" @21

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"431F65080140"

+		    client     	@11

+		    supplier   	@1

+		    line_style 	3

+		    origin_attachment 	(2221, 2749)

+		    terminal_attachment 	(2221, 569)

+		    drawSupplier 	@14)

+		(object InheritView "" @22

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4314C8B602D9"

+		    client     	@4

+		    supplier   	@1

+		    line_style 	3

+		    origin_attachment 	(909, 956)

+		    terminal_attachment 	(909, 569)

+		    drawSupplier 	@14)

+		(object InheritView "" @23

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4314C8B60334"

+		    client     	@3

+		    supplier   	@1

+		    line_style 	3

+		    origin_attachment 	(1434, 1644)

+		    terminal_attachment 	(1434, 569)

+		    drawSupplier 	@14)

+		(object InheritView "" @24

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4326081A038A"

+		    client     	@2

+		    supplier   	@1

+		    line_style 	3

+		    origin_attachment 	(1260, 1410)

+		    terminal_attachment 	(1260, 569)

+		    drawSupplier 	@14)))

+	(object ClassDiagram "XMLCast"

+	    quid       	"431F8D3503DE"

+	    title      	"XMLCast"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	0

+	    origin_y   	513

+	    items      	(list diagram_item_list

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueExpressionCast" @25

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1287, 780)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@25

+			location   	(759, 691)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	1056

+			justify    	0

+			label      	"XMLValueExpressionCast")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"431F8D6D0258"

+		    compartment 	(object Compartment

+			Parent_View 	@25

+			location   	(759, 758)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Label"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	2

+			max_width  	897)

+		    width      	1074

+		    height     	206

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::ValueExpressionCast" @26

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(494, 286)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@26

+			location   	(196, 198)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	596

+			justify    	0

+			label      	"ValueExpressionCast")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B389F33029B"

+		    width      	614

+		    height     	204

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @27

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"431F8E0103E1"

+		    client     	@25

+		    supplier   	@26

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLPassingType" @28

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1287, 1339)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@28

+			location   	(1039, 1216)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	496

+			justify    	0

+			label      	"XMLPassingType")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@28

+			location   	(1039, 1166)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	496

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	14079702

+		    quidu      	"431F8E950073"

+		    compartment 	(object Compartment

+			Parent_View 	@28

+			location   	(1039, 1283)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Label"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	4

+			max_width  	315)

+		    width      	514

+		    height     	374

+		    annotation 	8

+		    autoResize 	TRUE)))

+	(object ClassDiagram "XMLPredicate"

+	    quid       	"431F91670139"

+	    title      	"XMLPredicate"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	0

+	    origin_y   	0

+	    items      	(list diagram_item_list

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLPredicate" @29

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1209, 572)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@29

+			location   	(1001, 512)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	416

+			justify    	0

+			label      	"XMLPredicate")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"431F91DA0333"

+		    width      	434

+		    height     	148

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::Predicate" @30

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1209, 234)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@30

+			location   	(965, 146)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	488

+			justify    	0

+			label      	"Predicate")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B37F1C2039C"

+		    width      	506

+		    height     	204

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @31

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"431F921F035B"

+		    client     	@29

+		    supplier   	@30

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLPredicateContent" @32

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(351, 1014)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@32

+			location   	(48, 957)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	606

+			justify    	0

+			label      	"XMLPredicateContent")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"431F922D0058"

+		    width      	624

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLPredicateDocument" @33

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(949, 1209)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@33

+			location   	(613, 1152)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	672

+			justify    	0

+			label      	"XMLPredicateDocument")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"431F928F0167"

+		    width      	690

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLPredicateValid" @34

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2080, 1664)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@34

+			location   	(1805, 1607)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	550

+			justify    	0

+			label      	"XMLPredicateValid")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"431F92C5001A"

+		    width      	568

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritTreeView "" @35

+		    location   	(1209, 844)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@29

+		    vertices   	(list Points

+			(1209, 844)

+			(1209, 646)))

+		(object InheritView "" @36

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"431F92E40304"

+		    client     	@33

+		    supplier   	@29

+		    line_style 	3

+		    origin_attachment 	(931, 1137)

+		    terminal_attachment 	(931, 844)

+		    drawSupplier 	@35)

+		(object InheritView "" @37

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"431F92E80025"

+		    client     	@32

+		    supplier   	@29

+		    line_style 	3

+		    origin_attachment 	(334, 943)

+		    terminal_attachment 	(334, 844)

+		    drawSupplier 	@35)

+		(object InheritView "" @38

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"431F92EB025A"

+		    client     	@34

+		    supplier   	@29

+		    line_style 	3

+		    origin_attachment 	(2084, 1593)

+		    terminal_attachment 	(2084, 844)

+		    drawSupplier 	@35)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLPredicateExists" @39

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1508, 1430)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@39

+			location   	(1220, 1373)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	576

+			justify    	0

+			label      	"XMLPredicateExists")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"431F92AC0390"

+		    width      	594

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @40

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"431F92E1006B"

+		    client     	@39

+		    supplier   	@29

+		    line_style 	3

+		    origin_attachment 	(1484, 1359)

+		    terminal_attachment 	(1484, 844)

+		    drawSupplier 	@35)))

+	(object ClassDiagram "XMLSerialize"

+	    quid       	"4320BA62000E"

+	    title      	"XMLSerialize"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	0

+	    origin_y   	0

+	    items      	(list diagram_item_list

+		(object ClassView "Class" "Logical View::SQLQueryModel::ValueExpressionFunction" @41

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(442, 208)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@41

+			location   	(101, 120)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	682

+			justify    	0

+			label      	"ValueExpressionFunction")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B389F78002D"

+		    width      	700

+		    height     	204

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLContentType" @42

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(689, 2197)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@42

+			location   	(449, 2086)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	480

+			justify    	0

+			label      	"XMLContentType")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@42

+			location   	(449, 2036)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	480

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	14079702

+		    quidu      	"4320BD26008F"

+		    compartment 	(object Compartment

+			Parent_View 	@42

+			location   	(449, 2153)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Label"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	4

+			max_width  	343)

+		    width      	498

+		    height     	350

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryValueExpression" @43

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(780, 1755)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@43

+			location   	(451, 1666)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	658

+			justify    	0

+			label      	"QueryValueExpression")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B3792520160"

+		    width      	676

+		    height     	206

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLDeclarationType" @44

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1638, 2197)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@44

+			location   	(1156, 2083)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	964

+			justify    	0

+			label      	"XMLDeclarationType")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@44

+			location   	(1156, 2033)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	964

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	14079702

+		    quidu      	"4320C38A0272"

+		    compartment 	(object Compartment

+			Parent_View 	@44

+			location   	(1156, 2150)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Label"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	4

+			max_width  	828)

+		    width      	982

+		    height     	356

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLSerializeFunctionTarget" @45

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(780, 1300)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@45

+			location   	(401, 1243)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	758

+			justify    	0

+			label      	"XMLSerializeFunctionTarget")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4320C222013E"

+		    width      	776

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$8" @46

+		    location   	(780, 1511)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4320C2D6002E"

+		    roleview_list 	(list RoleViews

+			(object RoleView "valueExpr" @47

+			    Parent_View 	@46

+			    location   	(-494, 406)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @48

+				Parent_View 	@47

+				location   	(610, 1608)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	254

+				justify    	0

+				label      	"+valueExpr"

+				pctDist    	0.701493

+				height     	171

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4320C2D70315"

+			    client     	@46

+			    supplier   	@43

+			    line_style 	0

+			    label      	(object SegLabel @49

+				Parent_View 	@47

+				location   	(834, 1604)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.662110

+				height     	54

+				orientation 	0))

+			(object RoleView "$UNNAMED$9" @50

+			    Parent_View 	@46

+			    location   	(-494, 406)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4320C2D70333"

+			    client     	@46

+			    supplier   	@45

+			    line_style 	0

+			    label      	(object SegLabel @51

+				Parent_View 	@50

+				location   	(846, 1406)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.748256

+				height     	66

+				orientation 	1))))

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLSerializeFunctionEncoding" @52

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1781, 1326)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@52

+			location   	(1354, 1243)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	854

+			justify    	0

+			label      	"XMLSerializeFunctionEncoding")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"435E96130247"

+		    compartment 	(object Compartment

+			Parent_View 	@52

+			location   	(1354, 1310)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Label"

+			fill_color 	13434879

+			anchor     	2

+			nlines     	2

+			max_width  	471)

+		    width      	872

+		    height     	194

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLSerializeFunction" @53

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1222, 702)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@53

+			location   	(675, 556)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	1094

+			justify    	0

+			label      	"XMLSerializeFunction")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4320BC0E00FA"

+		    compartment 	(object Compartment

+			Parent_View 	@53

+			location   	(675, 623)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Label"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	4

+			max_width  	940)

+		    width      	1112

+		    height     	320

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @54

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4320BD0C0222"

+		    client     	@53

+		    supplier   	@41

+		    line_style 	0)

+		(object AssociationViewNew "$UNNAMED$7" @55

+		    location   	(967, 1045)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4320C28D01F6"

+		    roleview_list 	(list RoleViews

+			(object RoleView "serializeTarget" @56

+			    Parent_View 	@55

+			    location   	(-307, 330)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @57

+				Parent_View 	@56

+				location   	(638, 1139)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	360

+				justify    	0

+				label      	"+serializeTarget"

+				pctDist    	1.196717

+				height     	210

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4320C28E031A"

+			    client     	@55

+			    supplier   	@45

+			    line_style 	0

+			    label      	(object SegLabel @58

+				Parent_View 	@56

+				location   	(946, 1190)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.570325

+				height     	69

+				orientation 	0))

+			(object RoleView "serializeFunction" @59

+			    Parent_View 	@55

+			    location   	(-307, 330)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @60

+				Parent_View 	@59

+				location   	(812, 899)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	391

+				justify    	0

+				label      	"+serializeFunction"

+				pctDist    	0.117922

+				height     	213

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4320C28E031C"

+			    client     	@55

+			    supplier   	@53

+			    line_style 	0

+			    label      	(object SegLabel @61

+				Parent_View 	@59

+				location   	(1144, 906)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.954921

+				height     	60

+				orientation 	1))))

+		(object AssociationViewNew "$UNNAMED$59" @62

+		    location   	(1529, 1045)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"435E96610004"

+		    roleview_list 	(list RoleViews

+			(object RoleView "serializeEncoding" @63

+			    Parent_View 	@62

+			    location   	(307, 343)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @64

+				Parent_View 	@63

+				location   	(1411, 1175)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	430

+				justify    	0

+				label      	"+serializeEncoding"

+				pctDist    	0.073753

+				height     	175

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"435E966101D1"

+			    client     	@62

+			    supplier   	@52

+			    line_style 	0

+			    label      	(object SegLabel @65

+				Parent_View 	@63

+				location   	(1738, 1191)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..1"

+				pctDist    	1.009548

+				height     	59

+				orientation 	0))

+			(object RoleView "serializeFunction" @66

+			    Parent_View 	@62

+			    location   	(307, 343)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @67

+				Parent_View 	@66

+				location   	(1649, 916)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	405

+				justify    	0

+				label      	"+serializeFunction"

+				pctDist    	0.074149

+				height     	176

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"435E966101D3"

+			    client     	@62

+			    supplier   	@53

+			    line_style 	0

+			    label      	(object SegLabel @68

+				Parent_View 	@66

+				location   	(1342, 908)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.926040

+				height     	49

+				orientation 	0))))))

+	(object ClassDiagram "XMLAggregate"

+	    quid       	"4320C5B003BD"

+	    title      	"XMLAggregate"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	0

+	    origin_y   	19

+	    items      	(list diagram_item_list

+		(object ClassView "Class" "Logical View::SQLQueryModel::ValueExpressionFunction" @69

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(429, 247)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@69

+			location   	(88, 162)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	682

+			justify    	0

+			label      	"ValueExpressionFunction")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B389F78002D"

+		    width      	700

+		    height     	198

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLAggregateFunction" @70

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1170, 637)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@70

+			location   	(678, 547)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	984

+			justify    	0

+			label      	"XMLAggregateFunction")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4314C8B602E4"

+		    compartment 	(object Compartment

+			Parent_View 	@70

+			location   	(678, 614)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Label"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	2

+			max_width  	835)

+		    width      	1002

+		    height     	208

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @71

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4320C6DC0198"

+		    client     	@70

+		    supplier   	@69

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLQueryModel::OrderBySpecification" @72

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1170, 1716)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@72

+			location   	(602, 1535)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	1136

+			justify    	0

+			label      	"OrderBySpecification")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"404D14E20381"

+		    compartment 	(object Compartment

+			Parent_View 	@72

+			location   	(602, 1659)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	TRUE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Label"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	4

+			max_width  	966)

+		    width      	1154

+		    height     	390

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLAggregateSortSpecification" @73

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1170, 1132)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@73

+			location   	(730, 1075)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	880

+			justify    	0

+			label      	"XMLAggregateSortSpecification")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"432619080328"

+		    width      	898

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$19" @74

+		    location   	(1170, 900)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4326192702FC"

+		    roleview_list 	(list RoleViews

+			(object RoleView "sortSpecList" @75

+			    Parent_View 	@74

+			    location   	(-156, -75)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @76

+				Parent_View 	@75

+				location   	(973, 1011)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	310

+				justify    	0

+				label      	"+sortSpecList"

+				pctDist    	0.692737

+				height     	198

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4326192803A0"

+			    client     	@74

+			    supplier   	@73

+			    line_style 	0

+			    label      	(object SegLabel @77

+				Parent_View 	@75

+				location   	(1239, 1013)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.710692

+				height     	69

+				orientation 	0))

+			(object RoleView "aggregateFunction" @78

+			    Parent_View 	@74

+			    location   	(-156, -75)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @79

+				Parent_View 	@78

+				location   	(907, 786)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	447

+				justify    	0

+				label      	"+aggregateFunction"

+				pctDist    	0.723270

+				height     	264

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4326192803A2"

+			    client     	@74

+			    supplier   	@70

+			    line_style 	0

+			    label      	(object SegLabel @80

+				Parent_View 	@78

+				location   	(1223, 799)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.641509

+				height     	53

+				orientation 	1))))

+		(object AssociationViewNew "$UNNAMED$20" @81

+		    location   	(1170, 1361)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"432619B70328"

+		    roleview_list 	(list RoleViews

+			(object RoleView "orderBySpec" @82

+			    Parent_View 	@81

+			    location   	(-156, -108)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @83

+				Parent_View 	@82

+				location   	(987, 1455)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	319

+				justify    	0

+				label      	"+orderBySpec"

+				pctDist    	0.590909

+				height     	184

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"432619B90329"

+			    client     	@81

+			    supplier   	@72

+			    line_style 	0

+			    label      	(object SegLabel @84

+				Parent_View 	@82

+				location   	(1223, 1468)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.674242

+				height     	53

+				orientation 	0))

+			(object RoleView "$UNNAMED$21" @85

+			    Parent_View 	@81

+			    location   	(-156, -108)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"432619B9032B"

+			    client     	@81

+			    supplier   	@73

+			    line_style 	0

+			    label      	(object SegLabel @86

+				Parent_View 	@85

+				location   	(1224, 1220)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.900000

+				height     	54

+				orientation 	1))))

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLReturningType" @87

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1937, 2158)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@87

+			location   	(1559, 2035)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	756

+			justify    	0

+			label      	"XMLReturningType")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@87

+			location   	(1559, 1985)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	756

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	14079702

+		    quidu      	"4325EA170132"

+		    compartment 	(object Compartment

+			Parent_View 	@87

+			location   	(1559, 2102)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Label"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	4

+			max_width  	650)

+		    width      	774

+		    height     	374

+		    annotation 	8

+		    autoResize 	TRUE)))

+	(object ClassDiagram "XMLElement"

+	    quid       	"4320C80F030C"

+	    title      	"XMLElement"

+	    documentation 	"Generates an XML value which is an XML document element.  See ISO SQL/XML sec. 6.13.  The <XML element name> clause is handled by the name attribute defined in the superclass."

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	0

+	    origin_y   	0

+	    items      	(list diagram_item_list

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLNamespaceDeclarationPrefix" @88

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(520, 2015)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@88

+			location   	(62, 1926)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	916

+			justify    	0

+			label      	"XMLNamespaceDeclarationPrefix")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4314C8B60324"

+		    width      	934

+		    height     	206

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLNamespaceDeclarationDefault" @89

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(780, 2262)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@89

+			location   	(309, 2173)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	942

+			justify    	0

+			label      	"XMLNamespaceDeclarationDefault")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4314C8B60329"

+		    width      	960

+		    height     	206

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunction" @90

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(338, 117)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@90

+			location   	(61, 57)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	554

+			justify    	0

+			label      	"XMLValueFunction")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"4314C8B602D6"

+		    width      	572

+		    height     	148

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLNullHandlingType" @91

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(767, 2691)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@91

+			location   	(422, 2484)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	690

+			justify    	0

+			label      	"XMLNullHandlingType")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@91

+			location   	(422, 2434)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	690

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	14079702

+		    quidu      	"43261E3B014E"

+		    width      	708

+		    height     	542

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLReturningType" @92

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1755, 2678)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@92

+			location   	(1441, 2567)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	628

+			justify    	0

+			label      	"XMLReturningType")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@92

+			location   	(1441, 2517)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	628

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	14079702

+		    quidu      	"4325EA170132"

+		    width      	646

+		    height     	350

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLNamespaceDeclarationItem" @93

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(507, 1664)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@93

+			location   	(67, 1575)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	880

+			justify    	0

+			label      	"XMLNamespaceDeclarationItem")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4314C8B6031E"

+		    width      	898

+		    height     	206

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritTreeView "" @94

+		    location   	(507, 1865)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@93

+		    vertices   	(list Points

+			(507, 1865)

+			(507, 1767)))

+		(object InheritView "" @95

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4314C8B60323"

+		    client     	@88

+		    supplier   	@93

+		    line_style 	3

+		    origin_attachment 	(237, 1912)

+		    terminal_attachment 	(237, 1865)

+		    drawSupplier 	@94)

+		(object InheritView "" @96

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4314C8B60328"

+		    client     	@89

+		    supplier   	@93

+		    line_style 	3

+		    origin_attachment 	(1090, 2158)

+		    terminal_attachment 	(1090, 1865)

+		    drawSupplier 	@94)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLAttributeDeclarationItem" @97

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1079, 1378)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@97

+			location   	(695, 1321)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	768

+			justify    	0

+			label      	"XMLAttributeDeclarationItem")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4314C8B602B2"

+		    width      	786

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLNamespacesDeclaration" @98

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(507, 819)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@98

+			location   	(103, 762)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	808

+			justify    	0

+			label      	"XMLNamespacesDeclaration")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"433B457C01AC"

+		    width      	826

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$44" @99

+		    location   	(507, 1225)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"433B45AE006E"

+		    roleview_list 	(list RoleViews

+			(object RoleView "namespaceDecltemList" @100

+			    Parent_View 	@99

+			    location   	(0, 458)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @101

+				Parent_View 	@100

+				location   	(335, 1503)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	551

+				justify    	0

+				label      	"+namespaceDecltemList"

+				pctDist    	0.833333

+				height     	173

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"433B45AE02DB"

+			    client     	@99

+			    supplier   	@93

+			    line_style 	0

+			    label      	(object SegLabel @102

+				Parent_View 	@100

+				location   	(667, 1510)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1..n"

+				pctDist    	0.851515

+				height     	160

+				orientation 	0))

+			(object RoleView "namespacesDecl" @103

+			    Parent_View 	@99

+			    location   	(0, 458)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @104

+				Parent_View 	@103

+				location   	(274, 943)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	416

+				justify    	0

+				label      	"+namespacesDecl"

+				pctDist    	0.843648

+				height     	234

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"433B45AE02DD"

+			    client     	@99

+			    supplier   	@98

+			    line_style 	0

+			    label      	(object SegLabel @105

+				Parent_View 	@103

+				location   	(561, 936)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.863192

+				height     	54

+				orientation 	1))))

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLAttributesDeclaration" @106

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1079, 1079)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@106

+			location   	(733, 1022)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	692

+			justify    	0

+			label      	"XMLAttributesDeclaration")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"433B484E00E9"

+		    width      	710

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$47" @107

+		    location   	(1079, 1228)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"433B49E00235"

+		    roleview_list 	(list RoleViews

+			(object RoleView "attributeDeclItem" @108

+			    Parent_View 	@107

+			    location   	(-117, 162)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @109

+				Parent_View 	@108

+				location   	(846, 1276)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	409

+				justify    	0

+				label      	"+attributeDeclItem"

+				pctDist    	0.615385

+				height     	234

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"433B49E1022D"

+			    client     	@107

+			    supplier   	@97

+			    line_style 	0

+			    label      	(object SegLabel @110

+				Parent_View 	@108

+				location   	(1157, 1272)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1..n"

+				pctDist    	0.576923

+				height     	78

+				orientation 	0))

+			(object RoleView "attributesDecl" @111

+			    Parent_View 	@107

+			    location   	(-117, 162)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @112

+				Parent_View 	@111

+				location   	(857, 1182)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	336

+				justify    	0

+				label      	"+attributesDecl"

+				pctDist    	0.584416

+				height     	223

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"433B49E1022F"

+			    client     	@107

+			    supplier   	@106

+			    line_style 	0

+			    label      	(object SegLabel @113

+				Parent_View 	@111

+				location   	(1146, 1186)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.545455

+				height     	67

+				orientation 	1))))

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryValueExpression" @114

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1754, 2054)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@114

+			location   	(1425, 1966)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	658

+			justify    	0

+			label      	"QueryValueExpression")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B3792520160"

+		    width      	676

+		    height     	204

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$0" @115

+		    location   	(1152, 1796)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"431622D70082"

+		    roleview_list 	(list RoleViews

+			(object RoleView "valueExpr" @116

+			    Parent_View 	@115

+			    location   	(125, -661)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @117

+				Parent_View 	@116

+				location   	(1300, 1935)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	254

+				justify    	0

+				label      	"+valueExpr"

+				pctDist    	0.481070

+				height     	71

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"431622D8000B"

+			    client     	@115

+			    supplier   	@114

+			    line_style 	0

+			    label      	(object SegLabel @118

+				Parent_View 	@116

+				location   	(1514, 1894)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.939116

+				height     	52

+				orientation 	0))

+			(object RoleView "$UNNAMED$1" @119

+			    Parent_View 	@115

+			    location   	(125, -661)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"431622D80015"

+			    client     	@115

+			    supplier   	@97

+			    vertices   	(list Points

+				(1152, 1796)

+				(1078, 1765)

+				(1078, 1449))

+			    line_style 	0

+			    label      	(object SegLabel @120

+				Parent_View 	@119

+				location   	(1142, 1528)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.800997

+				height     	64

+				orientation 	1))))

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionElement" @121

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1079, 416)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@121

+			location   	(588, 298)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	982

+			justify    	0

+			label      	"XMLValueFunctionElement")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4314C8B602F6"

+		    width      	1000

+		    height     	264

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @122

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4326081A038A"

+		    client     	@121

+		    supplier   	@90

+		    line_style 	0)

+		(object AssociationViewNew "$UNNAMED$45" @123

+		    location   	(747, 647)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"433B466C03A8"

+		    roleview_list 	(list RoleViews

+			(object RoleView "namespacesDecl" @124

+			    Parent_View 	@123

+			    location   	(-449, 231)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @125

+				Parent_View 	@124

+				location   	(282, 717)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	416

+				justify    	0

+				label      	"+namespacesDecl"

+				pctDist    	2.444389

+				height     	215

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"433B466D024B"

+			    client     	@123

+			    supplier   	@98

+			    line_style 	0

+			    label      	(object SegLabel @126

+				Parent_View 	@124

+				location   	(530, 716)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..1"

+				pctDist    	1.263868

+				height     	71

+				orientation 	1))

+			(object RoleView "valueFunctionElement" @127

+			    Parent_View 	@123

+			    location   	(-449, 231)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @128

+				Parent_View 	@127

+				location   	(474, 594)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	526

+				justify    	0

+				label      	"+valueFunctionElement"

+				pctDist    	-1.125044

+				height     	201

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"433B466D024D"

+			    client     	@123

+			    supplier   	@121

+			    line_style 	0

+			    label      	(object SegLabel @129

+				Parent_View 	@127

+				location   	(761, 590)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.256668

+				height     	40

+				orientation 	0))))

+		(object AssociationViewNew "$UNNAMED$46" @130

+		    location   	(1079, 777)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"433B49720088"

+		    roleview_list 	(list RoleViews

+			(object RoleView "attributesDecl" @131

+			    Parent_View 	@130

+			    location   	(-117, 361)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @132

+				Parent_View 	@131

+				location   	(882, 959)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	336

+				justify    	0

+				label      	"+attributesDecl"

+				pctDist    	0.789474

+				height     	198

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"433B49720359"

+			    client     	@130

+			    supplier   	@106

+			    line_style 	0

+			    label      	(object SegLabel @133

+				Parent_View 	@131

+				location   	(1157, 966)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..1"

+				pctDist    	0.822967

+				height     	78

+				orientation 	0))

+			(object RoleView "valueFunctionElement" @134

+			    Parent_View 	@130

+			    location   	(-117, 361)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @135

+				Parent_View 	@134

+				location   	(1044, 646)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	526

+				justify    	0

+				label      	"+valueFunctionElement"

+				pctDist    	0.572052

+				height     	35

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"433B4972035B"

+			    client     	@130

+			    supplier   	@121

+			    line_style 	0

+			    label      	(object SegLabel @136

+				Parent_View 	@134

+				location   	(1033, 599)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.781778

+				height     	47

+				orientation 	0))))

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionElementContentItem" @137

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1754, 1638)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@137

+			location   	(1226, 1581)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	1056

+			justify    	0

+			label      	"XMLValueFunctionElementContentItem")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4314C8B602C9"

+		    width      	1074

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$22" @138

+		    location   	(1754, 1830)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"432621D30389"

+		    roleview_list 	(list RoleViews

+			(object RoleView "valueExpr" @139

+			    Parent_View 	@138

+			    location   	(-248, 582)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @140

+				Parent_View 	@139

+				location   	(1989, 1922)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	254

+				justify    	0

+				label      	"+valueExpr"

+				pctDist    	0.767241

+				height     	235

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"432621D40272"

+			    client     	@138

+			    supplier   	@114

+			    line_style 	0

+			    label      	(object SegLabel @141

+				Parent_View 	@139

+				location   	(1798, 1920)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.745690

+				height     	44

+				orientation 	0))

+			(object RoleView "$UNNAMED$23" @142

+			    Parent_View 	@138

+			    location   	(-248, 582)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"432621D40286"

+			    client     	@138

+			    supplier   	@137

+			    line_style 	0

+			    label      	(object SegLabel @143

+				Parent_View 	@142

+				location   	(1808, 1721)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.900000

+				height     	54

+				orientation 	1))))

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionElementContentList" @144

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1755, 819)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@144

+			location   	(1185, 730)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	1140

+			justify    	0

+			label      	"XMLValueFunctionElementContentList")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"433B4AE70268"

+		    width      	1158

+		    height     	206

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$48" @145

+		    location   	(1442, 631)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"433B4B1C0323"

+		    roleview_list 	(list RoleViews

+			(object RoleView "elementContentList" @146

+			    Parent_View 	@145

+			    location   	(246, 215)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @147

+				Parent_View 	@146

+				location   	(1812, 665)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	462

+				justify    	0

+				label      	"+elementContentList"

+				pctDist    	2.050420

+				height     	161

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"433B4B1E0240"

+			    client     	@145

+			    supplier   	@144

+			    line_style 	0

+			    label      	(object SegLabel @148

+				Parent_View 	@146

+				location   	(1436, 691)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..1"

+				pctDist    	0.153233

+				height     	55

+				orientation 	1))

+			(object RoleView "valueFunctionElement" @149

+			    Parent_View 	@145

+			    location   	(246, 215)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @150

+				Parent_View 	@149

+				location   	(1654, 584)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	526

+				justify    	0

+				label      	"+valueFunctionElement"

+				pctDist    	-0.973196

+				height     	149

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"433B4B1E024A"

+			    client     	@145

+			    supplier   	@121

+			    line_style 	0

+			    label      	(object SegLabel @151

+				Parent_View 	@149

+				location   	(1285, 591)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.961555

+				height     	46

+				orientation 	0))))

+		(object AssociationViewNew "$UNNAMED$49" @152

+		    location   	(1754, 1244)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"433B4BE200D1"

+		    roleview_list 	(list RoleViews

+			(object RoleView "elementContentListChildren" @153

+			    Parent_View 	@152

+			    location   	(-92, 412)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @154

+				Parent_View 	@153

+				location   	(1545, 1521)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	649

+				justify    	0

+				label      	"+elementContentListChildren"

+				pctDist    	0.864615

+				height     	210

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"433B4BE30050"

+			    client     	@152

+			    supplier   	@137

+			    line_style 	0

+			    label      	(object SegLabel @155

+				Parent_View 	@153

+				location   	(1924, 1518)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.852308

+				height     	170

+				orientation 	0))

+			(object RoleView "elementContentList" @156

+			    Parent_View 	@152

+			    location   	(-92, 412)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @157

+				Parent_View 	@156

+				location   	(2037, 974)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	462

+				justify    	0

+				label      	"+elementContentList"

+				pctDist    	0.843077

+				height     	283

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"433B4BE3005A"

+			    client     	@152

+			    supplier   	@144

+			    line_style 	0

+			    label      	(object SegLabel @158

+				Parent_View 	@156

+				location   	(1705, 968)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.858462

+				height     	50

+				orientation 	0))))))

+	(object ClassDiagram "XMLExists"

+	    quid       	"4320C9AF01B5"

+	    title      	"XMLExists"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	0

+	    origin_y   	0

+	    items      	(list diagram_item_list

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLPassingType" @159

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2002, 2704)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@159

+			location   	(1748, 2581)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	508

+			justify    	0

+			label      	"XMLPassingType")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@159

+			location   	(1748, 2531)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	508

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	14079702

+		    quidu      	"431F8E950073"

+		    width      	526

+		    height     	374

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLQueryExpression" @160

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(494, 871)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@160

+			location   	(126, 782)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	736

+			justify    	0

+			label      	"XMLQueryExpression")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4320947501C6"

+		    width      	754

+		    height     	206

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLPredicateExists" @161

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1261, 455)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@161

+			location   	(973, 398)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	576

+			justify    	0

+			label      	"XMLPredicateExists")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"431F92AC0390"

+		    width      	594

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$2" @162

+		    location   	(906, 646)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"432095DD01D8"

+		    roleview_list 	(list RoleViews

+			(object RoleView "xqueryExpr" @163

+			    Parent_View 	@162

+			    location   	(-563, -1018)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @164

+				Parent_View 	@163

+				location   	(561, 720)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	281

+				justify    	0

+				label      	"+xqueryExpr"

+				pctDist    	1.339351

+				height     	101

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"432095DE02E8"

+			    client     	@162

+			    supplier   	@160

+			    line_style 	0

+			    label      	(object SegLabel @165

+				Parent_View 	@163

+				location   	(830, 733)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.426829

+				height     	40

+				orientation 	0))

+			(object RoleView "predicateExists" @166

+			    Parent_View 	@162

+			    location   	(-563, -1018)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @167

+				Parent_View 	@166

+				location   	(809, 553)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	369

+				justify    	0

+				label      	"+predicateExists"

+				pctDist    	-0.170092

+				height     	129

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"432095DE02EA"

+			    client     	@162

+			    supplier   	@161

+			    line_style 	0

+			    label      	(object SegLabel @168

+				Parent_View 	@166

+				location   	(1038, 538)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.661092

+				height     	34

+				orientation 	0))))

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLQueryArgumentList" @169

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1261, 1196)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@169

+			location   	(733, 1107)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	1056

+			justify    	0

+			label      	"XMLQueryArgumentList")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"43209B100380"

+		    width      	1074

+		    height     	206

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$3" @170

+		    location   	(1261, 809)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"43209B940254"

+		    roleview_list 	(list RoleViews

+			(object RoleView "xqueryArgList" @171

+			    Parent_View 	@170

+			    location   	(-208, -855)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @172

+				Parent_View 	@171

+				location   	(1030, 1039)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	474

+				justify    	0

+				label      	"+xqueryArgList"

+				pctDist    	0.812721

+				height     	231

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"43209B95015B"

+			    client     	@170

+			    supplier   	@169

+			    line_style 	0

+			    label      	(object SegLabel @173

+				Parent_View 	@171

+				location   	(1337, 1047)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..1"

+				pctDist    	0.841017

+				height     	76

+				orientation 	0))

+			(object RoleView "predicateExists" @174

+			    Parent_View 	@170

+			    location   	(-208, -855)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @175

+				Parent_View 	@174

+				location   	(1496, 573)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	369

+				justify    	0

+				label      	"+predicateExists"

+				pctDist    	0.837419

+				height     	235

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"43209B95015D"

+			    client     	@170

+			    supplier   	@161

+			    line_style 	0

+			    label      	(object SegLabel @176

+				Parent_View 	@174

+				location   	(1213, 587)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.787853

+				height     	49

+				orientation 	0))))

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryValueExpression" @177

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1261, 2314)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@177

+			location   	(932, 2226)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	658

+			justify    	0

+			label      	"QueryValueExpression")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B3792520160"

+		    width      	676

+		    height     	204

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLQueryArgumentItem" @178

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1261, 1768)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@178

+			location   	(733, 1679)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	1056

+			justify    	0

+			label      	"XMLQueryArgumentItem")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"43209CA10174"

+		    width      	1074

+		    height     	206

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$4" @179

+		    location   	(1261, 1481)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"43209D1502C5"

+		    roleview_list 	(list RoleViews

+			(object RoleView "xqueryArgListChildren" @180

+			    Parent_View 	@179

+			    location   	(-208, -885)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @181

+				Parent_View 	@180

+				location   	(948, 1613)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	660

+				justify    	0

+				label      	"+xqueryArgListChildren"

+				pctDist    	0.721311

+				height     	313

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"43209D170232"

+			    client     	@179

+			    supplier   	@178

+			    line_style 	0

+			    label      	(object SegLabel @182

+				Parent_View 	@180

+				location   	(1316, 1617)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1..n"

+				pctDist    	0.748879

+				height     	55

+				orientation 	0))

+			(object RoleView "xqueryArgList" @183

+			    Parent_View 	@179

+			    location   	(-208, -885)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @184

+				Parent_View 	@183

+				location   	(1028, 1357)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	474

+				justify    	0

+				label      	"+xqueryArgList"

+				pctDist    	0.681319

+				height     	233

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"43209D170234"

+			    client     	@179

+			    supplier   	@169

+			    line_style 	0

+			    label      	(object SegLabel @185

+				Parent_View 	@183

+				location   	(1319, 1359)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.676424

+				height     	58

+				orientation 	1))))

+		(object AssociationViewNew "$UNNAMED$5" @186

+		    location   	(1261, 2041)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4320AE75025D"

+		    roleview_list 	(list RoleViews

+			(object RoleView "valueExpr" @187

+			    Parent_View 	@186

+			    location   	(-468, -611)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @188

+				Parent_View 	@187

+				location   	(1075, 2151)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	254

+				justify    	0

+				label      	"+valueExpr"

+				pctDist    	0.647059

+				height     	186

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4320AE760313"

+			    client     	@186

+			    supplier   	@177

+			    line_style 	0

+			    label      	(object SegLabel @189

+				Parent_View 	@187

+				location   	(1311, 2157)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.682353

+				height     	50

+				orientation 	0))

+			(object RoleView "$UNNAMED$6" @190

+			    Parent_View 	@186

+			    location   	(-468, -611)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4320AE76033B"

+			    client     	@186

+			    supplier   	@178

+			    line_style 	0

+			    label      	(object SegLabel @191

+				Parent_View 	@190

+				location   	(1315, 1889)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.900000

+				height     	54

+				orientation 	1))))

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLPredicate" @192

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(338, 169)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@192

+			location   	(130, 109)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	416

+			justify    	0

+			label      	"XMLPredicate")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"431F91DA0333"

+		    width      	434

+		    height     	148

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @193

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"431F92E1006B"

+		    client     	@161

+		    supplier   	@192

+		    line_style 	0)))

+	(object ClassDiagram "XMLForest"

+	    quid       	"4320CB4501FF"

+	    title      	"XMLForest"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	0

+	    origin_y   	0

+	    items      	(list diagram_item_list

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunction" @194

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(364, 143)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@194

+			location   	(87, 83)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	554

+			justify    	0

+			label      	"XMLValueFunction")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"4314C8B602D6"

+		    width      	572

+		    height     	148

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLNamespaceDeclarationPrefix" @195

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(572, 1859)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@195

+			location   	(114, 1770)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	916

+			justify    	0

+			label      	"XMLNamespaceDeclarationPrefix")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4314C8B60324"

+		    width      	934

+		    height     	206

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLNamespaceDeclarationDefault" @196

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(858, 2158)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@196

+			location   	(387, 2069)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	942

+			justify    	0

+			label      	"XMLNamespaceDeclarationDefault")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4314C8B60329"

+		    width      	960

+		    height     	206

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLNullHandlingType" @197

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(845, 2626)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@197

+			location   	(501, 2419)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	688

+			justify    	0

+			label      	"XMLNullHandlingType")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@197

+			location   	(501, 2369)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	688

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	14079702

+		    quidu      	"43261E3B014E"

+		    width      	706

+		    height     	542

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLReturningType" @198

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1833, 2613)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@198

+			location   	(1520, 2502)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	626

+			justify    	0

+			label      	"XMLReturningType")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@198

+			location   	(1520, 2452)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	626

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	14079702

+		    quidu      	"4325EA170132"

+		    width      	644

+		    height     	350

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryValueExpression" @199

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1781, 1469)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@199

+			location   	(1452, 1381)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	658

+			justify    	0

+			label      	"QueryValueExpression")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B3792520160"

+		    width      	676

+		    height     	204

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLNamespaceDeclarationItem" @200

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(559, 1378)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@200

+			location   	(119, 1289)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	880

+			justify    	0

+			label      	"XMLNamespaceDeclarationItem")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4314C8B6031E"

+		    width      	898

+		    height     	206

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritTreeView "" @201

+		    location   	(559, 1650)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@200

+		    vertices   	(list Points

+			(559, 1650)

+			(559, 1481)))

+		(object InheritView "" @202

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4314C8B60323"

+		    client     	@195

+		    supplier   	@200

+		    line_style 	3

+		    origin_attachment 	(287, 1756)

+		    terminal_attachment 	(287, 1650)

+		    drawSupplier 	@201)

+		(object InheritView "" @203

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4314C8B60328"

+		    client     	@196

+		    supplier   	@200

+		    line_style 	3

+		    origin_attachment 	(1172, 2055)

+		    terminal_attachment 	(1172, 1650)

+		    drawSupplier 	@201)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionForestContentItem" @204

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1781, 949)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@204

+			location   	(1284, 892)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	994

+			justify    	0

+			label      	"XMLValueFunctionForestContentItem")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"432F1BC80031"

+		    width      	1012

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$25" @205

+		    location   	(1781, 1193)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"432F1E090211"

+		    roleview_list 	(list RoleViews

+			(object RoleView "valueExpr" @206

+			    Parent_View 	@205

+			    location   	(0, -29)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @207

+				Parent_View 	@206

+				location   	(1585, 1308)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	254

+				justify    	0

+				label      	"+valueExpr"

+				pctDist    	0.662894

+				height     	197

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"432F1E09035B"

+			    client     	@205

+			    supplier   	@199

+			    line_style 	0

+			    label      	(object SegLabel @208

+				Parent_View 	@206

+				location   	(1834, 1329)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.789956

+				height     	53

+				orientation 	0))

+			(object RoleView "$UNNAMED$26" @209

+			    Parent_View 	@205

+			    location   	(0, -29)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"432F1E090397"

+			    client     	@205

+			    supplier   	@204

+			    line_style 	0

+			    label      	(object SegLabel @210

+				Parent_View 	@209

+				location   	(1835, 1037)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.900000

+				height     	54

+				orientation 	1))))

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLNamespacesDeclaration" @211

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(559, 949)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@211

+			location   	(155, 892)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	808

+			justify    	0

+			label      	"XMLNamespacesDeclaration")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"433B457C01AC"

+		    width      	826

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$44" @212

+		    location   	(559, 1147)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"433B45AE006E"

+		    roleview_list 	(list RoleViews

+			(object RoleView "namespacesDecl" @213

+			    Parent_View 	@212

+			    location   	(0, -348)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @214

+				Parent_View 	@213

+				location   	(310, 1054)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	416

+				justify    	0

+				label      	"+namespacesDecl"

+				pctDist    	0.732620

+				height     	250

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"433B45AE02DD"

+			    client     	@212

+			    supplier   	@211

+			    line_style 	0

+			    label      	(object SegLabel @215

+				Parent_View 	@213

+				location   	(639, 1051)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.764706

+				height     	80

+				orientation 	1))

+			(object RoleView "namespaceDecltemList" @216

+			    Parent_View 	@212

+			    location   	(0, -348)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @217

+				Parent_View 	@216

+				location   	(363, 1226)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	725

+				justify    	0

+				label      	"+namespaceDecltemList"

+				pctDist    	0.627907

+				height     	197

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"433B45AE02DB"

+			    client     	@212

+			    supplier   	@200

+			    line_style 	0

+			    label      	(object SegLabel @218

+				Parent_View 	@216

+				location   	(731, 1242)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1..n"

+				pctDist    	0.754011

+				height     	172

+				orientation 	0))))

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionForest" @219

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1183, 455)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@219

+			location   	(613, 338)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	1140

+			justify    	0

+			label      	"XMLValueFunctionForest")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4314C8B60333"

+		    width      	1158

+		    height     	262

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @220

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4314C8B60334"

+		    client     	@219

+		    supplier   	@194

+		    line_style 	0)

+		(object AssociationViewNew "$UNNAMED$24" @221

+		    location   	(1517, 731)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"432F1C12012E"

+		    roleview_list 	(list RoleViews

+			(object RoleView "forestContentList" @222

+			    Parent_View 	@221

+			    location   	(334, -10)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @223

+				Parent_View 	@222

+				location   	(1417, 834)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	409

+				justify    	0

+				label      	"+forestContentList"

+				pctDist    	-0.055726

+				height     	144

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"432F1C130143"

+			    client     	@221

+			    supplier   	@204

+			    line_style 	0

+			    label      	(object SegLabel @224

+				Parent_View 	@222

+				location   	(1746, 836)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	1.067276

+				height     	66

+				orientation 	0))

+			(object RoleView "valueFunctionForest" @225

+			    Parent_View 	@221

+			    location   	(334, -10)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @226

+				Parent_View 	@225

+				location   	(1691, 625)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	483

+				justify    	0

+				label      	"+valueFunctionForest"

+				pctDist    	-0.295353

+				height     	193

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"432F1C130145"

+			    client     	@221

+			    supplier   	@219

+			    line_style 	0

+			    label      	(object SegLabel @227

+				Parent_View 	@225

+				location   	(1306, 622)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	1.026605

+				height     	51

+				orientation 	0))))

+		(object AssociationViewNew "$UNNAMED$50" @228

+		    location   	(831, 731)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"433B4E8C0091"

+		    roleview_list 	(list RoleViews

+			(object RoleView "namespacesDecl" @229

+			    Parent_View 	@228

+			    location   	(-352, 276)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @230

+				Parent_View 	@229

+				location   	(416, 831)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	416

+				justify    	0

+				label      	"+namespacesDecl"

+				pctDist    	1.657538

+				height     	182

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"433B4E8C02B8"

+			    client     	@228

+			    supplier   	@211

+			    line_style 	0

+			    label      	(object SegLabel @231

+				Parent_View 	@229

+				location   	(779, 839)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..1"

+				pctDist    	0.456639

+				height     	52

+				orientation 	0))

+			(object RoleView "valueFunctionForest" @232

+			    Parent_View 	@228

+			    location   	(-352, 276)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @233

+				Parent_View 	@232

+				location   	(660, 631)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	483

+				justify    	0

+				label      	"+valueFunctionForest"

+				pctDist    	-0.314278

+				height     	186

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"433B4E8C02BA"

+			    client     	@228

+			    supplier   	@219

+			    line_style 	0

+			    label      	(object SegLabel @234

+				Parent_View 	@232

+				location   	(1039, 629)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.969576

+				height     	48

+				orientation 	1))))))

+	(object ClassDiagram "XMLConcat"

+	    quid       	"4320CBC5014F"

+	    title      	"XMLConcat"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	197

+	    origin_y   	0

+	    items      	(list diagram_item_list

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunction" @235

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(494, 195)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@235

+			location   	(217, 135)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	554

+			justify    	0

+			label      	"XMLValueFunction")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"4314C8B602D6"

+		    width      	572

+		    height     	148

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLReturningType" @236

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1833, 2249)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@236

+			location   	(1456, 2126)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	754

+			justify    	0

+			label      	"XMLReturningType")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@236

+			location   	(1456, 2076)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	754

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	14079702

+		    quidu      	"4325EA170132"

+		    width      	772

+		    height     	374

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionConcat" @237

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1248, 637)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@237

+			location   	(757, 548)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	982

+			justify    	0

+			label      	"XMLValueFunctionConcat")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4314C8B602DA"

+		    width      	1000

+		    height     	206

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @238

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4314C8B602D9"

+		    client     	@237

+		    supplier   	@235

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryValueExpression" @239

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1248, 1755)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@239

+			location   	(919, 1667)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	658

+			justify    	0

+			label      	"QueryValueExpression")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B3792520160"

+		    width      	676

+		    height     	204

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionConcatContentItem" @240

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1248, 1209)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@240

+			location   	(743, 1152)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	1010

+			justify    	0

+			label      	"XMLValueFunctionConcatContentItem")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4325FC9500E8"

+		    width      	1028

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$10" @241

+		    location   	(1248, 938)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4325FCE0012C"

+		    roleview_list 	(list RoleViews

+			(object RoleView "concatContentList" @242

+			    Parent_View 	@241

+			    location   	(78, 197)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @243

+				Parent_View 	@242

+				location   	(1000, 1094)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	428

+				justify    	0

+				label      	"+concatContentList"

+				pctDist    	0.789855

+				height     	249

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4325FCE0037B"

+			    client     	@241

+			    supplier   	@240

+			    line_style 	0

+			    label      	(object SegLabel @244

+				Parent_View 	@242

+				location   	(1314, 1099)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1..n"

+				pctDist    	0.811594

+				height     	66

+				orientation 	0))

+			(object RoleView "valueFunctionConcat" @245

+			    Parent_View 	@241

+			    location   	(78, 197)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @246

+				Parent_View 	@245

+				location   	(948, 786)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	500

+				justify    	0

+				label      	"+valueFunctionConcat"

+				pctDist    	0.774061

+				height     	301

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4325FCE0037D"

+			    client     	@241

+			    supplier   	@237

+			    line_style 	0

+			    label      	(object SegLabel @247

+				Parent_View 	@245

+				location   	(1302, 775)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.824859

+				height     	54

+				orientation 	1))))

+		(object AssociationViewNew "$UNNAMED$11" @248

+		    location   	(1248, 1466)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4325FD3403AF"

+		    roleview_list 	(list RoleViews

+			(object RoleView "valueExpr" @249

+			    Parent_View 	@248

+			    location   	(78, 270)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @250

+				Parent_View 	@249

+				location   	(1067, 1610)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	254

+				justify    	0

+				label      	"+valueExpr"

+				pctDist    	0.778050

+				height     	182

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4325FD350306"

+			    client     	@248

+			    supplier   	@239

+			    line_style 	0

+			    label      	(object SegLabel @251

+				Parent_View 	@249

+				location   	(1302, 1618)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.820466

+				height     	54

+				orientation 	0))

+			(object RoleView "$UNNAMED$12" @252

+			    Parent_View 	@248

+			    location   	(78, 270)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4325FD35031A"

+			    client     	@248

+			    supplier   	@240

+			    line_style 	0

+			    label      	(object SegLabel @253

+				Parent_View 	@252

+				location   	(1303, 1314)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.823529

+				height     	55

+				orientation 	1))))))

+	(object ClassDiagram "XMLComment"

+	    quid       	"4325E5370354"

+	    title      	"XMLComment"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	0

+	    origin_y   	0

+	    items      	(list diagram_item_list

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunction" @254

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(377, 221)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@254

+			location   	(100, 161)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	554

+			justify    	0

+			label      	"XMLValueFunction")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"4314C8B602D6"

+		    width      	572

+		    height     	148

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLReturningType" @255

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1859, 2301)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@255

+			location   	(1481, 2178)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	756

+			justify    	0

+			label      	"XMLReturningType")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@255

+			location   	(1481, 2128)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	756

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	14079702

+		    quidu      	"4325EA170132"

+		    width      	774

+		    height     	374

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionComment" @256

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1170, 637)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@256

+			location   	(679, 548)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	982

+			justify    	0

+			label      	"XMLValueFunctionComment")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"431F5A830075"

+		    width      	1000

+		    height     	206

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @257

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"431F5FA20341"

+		    client     	@256

+		    supplier   	@254

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryValueExpression" @258

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1170, 1807)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@258

+			location   	(841, 1718)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	658

+			justify    	0

+			label      	"QueryValueExpression")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B3792520160"

+		    width      	676

+		    height     	206

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionCommentContent" @259

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1170, 1222)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@259

+			location   	(684, 1165)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	972

+			justify    	0

+			label      	"XMLValueFunctionCommentContent")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4325FF710379"

+		    width      	990

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$13" @260

+		    location   	(1170, 945)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4325FF8900C9"

+		    roleview_list 	(list RoleViews

+			(object RoleView "commentContent" @261

+			    Parent_View 	@260

+			    location   	(-13, -30)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @262

+				Parent_View 	@261

+				location   	(924, 1086)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	406

+				justify    	0

+				label      	"+commentContent"

+				pctDist    	0.691167

+				height     	247

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4325FF8902DA"

+			    client     	@260

+			    supplier   	@259

+			    line_style 	0

+			    label      	(object SegLabel @263

+				Parent_View 	@261

+				location   	(1224, 1093)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.724235

+				height     	54

+				orientation 	0))

+			(object RoleView "valueFunctionComment" @264

+			    Parent_View 	@260

+			    location   	(-13, -30)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @265

+				Parent_View 	@264

+				location   	(842, 782)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	559

+				justify    	0

+				label      	"+valueFunctionComment"

+				pctDist    	0.794702

+				height     	329

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4325FF8902DC"

+			    client     	@260

+			    supplier   	@256

+			    line_style 	0

+			    label      	(object SegLabel @266

+				Parent_View 	@264

+				location   	(1225, 779)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.814570

+				height     	55

+				orientation 	1))))

+		(object AssociationViewNew "$UNNAMED$14" @267

+		    location   	(1170, 1498)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4325FFFC00C3"

+		    roleview_list 	(list RoleViews

+			(object RoleView "valueExpr" @268

+			    Parent_View 	@267

+			    location   	(-13, 55)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @269

+				Parent_View 	@268

+				location   	(1013, 1661)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	254

+				justify    	0

+				label      	"+valueExpr"

+				pctDist    	0.794702

+				height     	158

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4325FFFC0388"

+			    client     	@267

+			    supplier   	@258

+			    line_style 	0

+			    label      	(object SegLabel @270

+				Parent_View 	@268

+				location   	(1225, 1664)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.814570

+				height     	55

+				orientation 	0))

+			(object RoleView "$UNNAMED$15" @271

+			    Parent_View 	@267

+			    location   	(-13, 55)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4325FFFC03A6"

+			    client     	@267

+			    supplier   	@259

+			    line_style 	0

+			    label      	(object SegLabel @272

+				Parent_View 	@271

+				location   	(1224, 1334)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.802409

+				height     	54

+				orientation 	1))))))

+	(object ClassDiagram "XMLDocument"

+	    quid       	"4325E5560359"

+	    title      	"XMLDocument"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	0

+	    origin_y   	341

+	    items      	(list diagram_item_list

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunction" @273

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(416, 247)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@273

+			location   	(139, 187)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	554

+			justify    	0

+			label      	"XMLValueFunction")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"4314C8B602D6"

+		    width      	572

+		    height     	148

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLReturningType" @274

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1872, 2223)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@274

+			location   	(1494, 2100)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	756

+			justify    	0

+			label      	"XMLReturningType")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@274

+			location   	(1494, 2050)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	756

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	14079702

+		    quidu      	"4325EA170132"

+		    width      	774

+		    height     	374

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionDocument" @275

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1170, 663)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@275

+			location   	(679, 574)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	982

+			justify    	0

+			label      	"XMLValueFunctionDocument")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"431F5B1E0385"

+		    width      	1000

+		    height     	206

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @276

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"431F5FB30346"

+		    client     	@275

+		    supplier   	@273

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryValueExpression" @277

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1170, 1742)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@277

+			location   	(841, 1653)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	658

+			justify    	0

+			label      	"QueryValueExpression")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B3792520160"

+		    width      	676

+		    height     	206

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionDocumentContent" @278

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1170, 1209)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@278

+			location   	(676, 1152)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	988

+			justify    	0

+			label      	"XMLValueFunctionDocumentContent")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"432603710070"

+		    width      	1006

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$16" @279

+		    location   	(1170, 951)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4326038C0283"

+		    roleview_list 	(list RoleViews

+			(object RoleView "documentContent" @280

+			    Parent_View 	@279

+			    location   	(39, -11)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @281

+				Parent_View 	@280

+				location   	(920, 1097)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	416

+				justify    	0

+				label      	"+documentContent"

+				pctDist    	0.784946

+				height     	250

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4326038E0155"

+			    client     	@279

+			    supplier   	@278

+			    line_style 	0

+			    label      	(object SegLabel @282

+				Parent_View 	@280

+				location   	(1224, 1101)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.803990

+				height     	54

+				orientation 	0))

+			(object RoleView "valueFunctionDocument" @283

+			    Parent_View 	@279

+			    location   	(39, -11)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @284

+				Parent_View 	@283

+				location   	(841, 805)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	570

+				justify    	0

+				label      	"+valueFunctionDocument"

+				pctDist    	0.796610

+				height     	330

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4326038E0157"

+			    client     	@279

+			    supplier   	@275

+			    line_style 	0

+			    label      	(object SegLabel @285

+				Parent_View 	@283

+				location   	(1225, 800)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.819209

+				height     	55

+				orientation 	1))))

+		(object AssociationViewNew "$UNNAMED$17" @286

+		    location   	(1170, 1459)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"432603E8011E"

+		    roleview_list 	(list RoleViews

+			(object RoleView "valueExpr" @287

+			    Parent_View 	@286

+			    location   	(39, -23)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @288

+				Parent_View 	@287

+				location   	(999, 1584)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	254

+				justify    	0

+				label      	"+valueExpr"

+				pctDist    	0.695652

+				height     	172

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"432603EA02B5"

+			    client     	@286

+			    supplier   	@277

+			    line_style 	0

+			    label      	(object SegLabel @289

+				Parent_View 	@287

+				location   	(1236, 1603)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.804348

+				height     	66

+				orientation 	0))

+			(object RoleView "$UNNAMED$18" @290

+			    Parent_View 	@286

+			    location   	(39, -23)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"432603EA02D3"

+			    client     	@286

+			    supplier   	@278

+			    line_style 	0

+			    label      	(object SegLabel @291

+				Parent_View 	@290

+				location   	(1223, 1332)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.715328

+				height     	53

+				orientation 	1))))))

+	(object ClassDiagram "Inheritance1"

+	    quid       	"4326059A0249"

+	    title      	"Inheritance1"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	0

+	    origin_y   	0

+	    items      	(list diagram_item_list

+		(object ClassView "Class" "Logical View::SQLQueryModel::SQLQueryObject" @292

+		    ShowCompartmentStereotypes 	TRUE

+		    location   	(390, 1391)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@292

+			location   	(146, 1303)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	488

+			justify    	0

+			label      	"SQLQueryObject")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"4046839E02AB"

+		    width      	506

+		    height     	204

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLQueryArgumentList" @293

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1680, 813)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@293

+			location   	(1357, 756)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	646

+			justify    	0

+			label      	"XMLQueryArgumentList")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"43209B100380"

+		    width      	664

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @294

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"43209DDA0391"

+		    client     	@293

+		    supplier   	@292

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLQueryExpression" @295

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1675, 1038)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@295

+			location   	(1371, 981)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	608

+			justify    	0

+			label      	"XMLQueryExpression")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4320947501C6"

+		    width      	626

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @296

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"43209DD50181"

+		    client     	@295

+		    supplier   	@292

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLAggregateSortSpecification" @297

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1677, 143)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@297

+			location   	(1237, 86)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	880

+			justify    	0

+			label      	"XMLAggregateSortSpecification")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"432619080328"

+		    width      	898

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @298

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"43271DD50090"

+		    client     	@297

+		    supplier   	@292

+		    line_style 	0)

+		(object NoteView @299

+		    location   	(468, 247)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@299

+			location   	(118, 116)

+			fill_color 	13434879

+			nlines     	4

+			max_width  	665

+			label      	"This diagram shows inheritance that isn't shown on other diagrams.  These are miscellaneous classes.")

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	725

+		    height     	275)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLTableColumnDefinitionItem" @300

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1684, 1488)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@300

+			location   	(1258, 1431)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	852

+			justify    	0

+			label      	"XMLTableColumnDefinitionItem")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"432F717D0304"

+		    width      	870

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @301

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"432F723600D1"

+		    client     	@300

+		    supplier   	@292

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLNamespaceDeclarationItem" @302

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1680, 581)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@302

+			location   	(1240, 524)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	880

+			justify    	0

+			label      	"XMLNamespaceDeclarationItem")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4314C8B6031E"

+		    width      	898

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @303

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4314C8B6031F"

+		    client     	@302

+		    supplier   	@292

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLNamespacesDeclaration" @304

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1675, 351)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@304

+			location   	(1271, 294)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	808

+			justify    	0

+			label      	"XMLNamespacesDeclaration")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"433B457C01AC"

+		    width      	826

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @305

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"433B553002A7"

+		    client     	@304

+		    supplier   	@292

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionElementContentList" @306

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1680, 1713)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@306

+			location   	(1171, 1656)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	1018

+			justify    	0

+			label      	"XMLValueFunctionElementContentList")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"433B4AE70268"

+		    width      	1036

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @307

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"433B55E001D9"

+		    client     	@306

+		    supplier   	@292

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionQueryReturning" @308

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1687, 1945)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@308

+			location   	(1225, 1888)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	924

+			justify    	0

+			label      	"XMLValueFunctionQueryReturning")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"434490B20155"

+		    width      	942

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @309

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4344930C002F"

+		    client     	@308

+		    supplier   	@292

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionValidateElementNamespace" @310

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1687, 2871)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@310

+			location   	(1061, 2814)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	1252

+			justify    	0

+			label      	"XMLValueFunctionValidateElementNamespace")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"432F7B6000C4"

+		    width      	1270

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @311

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"432F7CDC004C"

+		    client     	@310

+		    supplier   	@292

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionValidateElementName" @312

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1687, 2642)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@312

+			location   	(1134, 2585)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	1106

+			justify    	0

+			label      	"XMLValueFunctionValidateElementName")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"432F792C0211"

+		    width      	1124

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @313

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"432F7CDF00C8"

+		    client     	@312

+		    supplier   	@292

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionValidateElement" @314

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1703, 2420)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@314

+			location   	(1231, 2363)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	944

+			justify    	0

+			label      	"XMLValueFunctionValidateElement")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4346E84C020E"

+		    width      	962

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionValidateAccordingTo" @315

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1706, 2179)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@315

+			location   	(1169, 2122)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	1074

+			justify    	0

+			label      	"XMLValueFunctionValidateAccordingTo")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"432F748E01DE"

+		    width      	1092

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @316

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"432F75E601F0"

+		    client     	@315

+		    supplier   	@292

+		    line_style 	0)

+		(object InheritView "" @317

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4346EA3A00CF"

+		    client     	@314

+		    supplier   	@292

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLSerializeFunctionEncoding" @318

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1688, 1263)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@318

+			location   	(1261, 1209)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	854

+			justify    	0

+			label      	"XMLSerializeFunctionEncoding")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"435E96130247"

+		    width      	872

+		    height     	136

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @319

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"435E9B540092"

+		    client     	@318

+		    supplier   	@292

+		    line_style 	0)))

+	(object ClassDiagram "XMLParse"

+	    quid       	"432F2247008A"

+	    title      	"XMLParse"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	94

+	    origin_y   	0

+	    items      	(list diagram_item_list

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunction" @320

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(377, 169)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@320

+			location   	(100, 109)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	554

+			justify    	0

+			label      	"XMLValueFunction")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"4314C8B602D6"

+		    width      	572

+		    height     	148

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLContentType" @321

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(689, 1937)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@321

+			location   	(448, 1826)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	482

+			justify    	0

+			label      	"XMLContentType")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@321

+			location   	(448, 1776)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	482

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	14079702

+		    quidu      	"4320BD26008F"

+		    width      	500

+		    height     	350

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionParse" @322

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1183, 533)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@322

+			location   	(403, 416)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	1560

+			justify    	0

+			label      	"XMLValueFunctionParse")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"431F5B4E0244"

+		    width      	1578

+		    height     	262

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @323

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"431F64B402F8"

+		    client     	@322

+		    supplier   	@320

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryValueExpression" @324

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1183, 1456)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@324

+			location   	(854, 1367)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	658

+			justify    	0

+			label      	"QueryValueExpression")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B3792520160"

+		    width      	676

+		    height     	206

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionParseContent" @325

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1183, 1001)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@325

+			location   	(747, 944)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	872

+			justify    	0

+			label      	"XMLValueFunctionParseContent")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"432F3271034A"

+		    width      	890

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$27" @326

+		    location   	(1183, 796)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"432F329D01F7"

+		    roleview_list 	(list RoleViews

+			(object RoleView "parseContent" @327

+			    Parent_View 	@326

+			    location   	(0, 263)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @328

+				Parent_View 	@327

+				location   	(989, 887)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	322

+				justify    	0

+				label      	"+parseContent"

+				pctDist    	0.682363

+				height     	195

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"432F329E0146"

+			    client     	@326

+			    supplier   	@325

+			    line_style 	0

+			    label      	(object SegLabel @329

+				Parent_View 	@327

+				location   	(1238, 891)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.712919

+				height     	55

+				orientation 	0))

+			(object RoleView "valueFunctionParse" @330

+			    Parent_View 	@326

+			    location   	(0, 263)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @331

+				Parent_View 	@330

+				location   	(908, 703)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	471

+				justify    	0

+				label      	"+valueFunctionParse"

+				pctDist    	0.715232

+				height     	276

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"432F329E0148"

+			    client     	@326

+			    supplier   	@322

+			    line_style 	0

+			    label      	(object SegLabel @332

+				Parent_View 	@330

+				location   	(1248, 703)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.715232

+				height     	65

+				orientation 	1))))

+		(object AssociationViewNew "$UNNAMED$28" @333

+		    location   	(1183, 1212)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"432F336600AF"

+		    roleview_list 	(list RoleViews

+			(object RoleView "valueExpr" @334

+			    Parent_View 	@333

+			    location   	(0, 211)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @335

+				Parent_View 	@334

+				location   	(1014, 1312)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	254

+				justify    	0

+				label      	"+valueExpr"

+				pctDist    	0.717241

+				height     	170

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"432F33660334"

+			    client     	@333

+			    supplier   	@324

+			    line_style 	0

+			    label      	(object SegLabel @336

+				Parent_View 	@334

+				location   	(1237, 1313)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.724138

+				height     	54

+				orientation 	0))

+			(object RoleView "$UNNAMED$29" @337

+			    Parent_View 	@333

+			    location   	(0, 211)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"432F33660352"

+			    client     	@333

+			    supplier   	@325

+			    line_style 	0

+			    label      	(object SegLabel @338

+				Parent_View 	@337

+				location   	(1237, 1087)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.900000

+				height     	54

+				orientation 	1))))

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLWhitespaceHandlingType" @339

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1534, 1937)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@339

+			location   	(1120, 1826)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	828

+			justify    	0

+			label      	"XMLWhitespaceHandlingType")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@339

+			location   	(1120, 1776)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	828

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	14079702

+		    quidu      	"432F33A80213"

+		    width      	846

+		    height     	350

+		    annotation 	8

+		    autoResize 	TRUE)))

+	(object ClassDiagram "XMLPI"

+	    quid       	"432F37B701D7"

+	    title      	"XMLPI"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	0

+	    origin_y   	0

+	    items      	(list diagram_item_list

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunction" @340

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(429, 195)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@340

+			location   	(152, 135)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	554

+			justify    	0

+			label      	"XMLValueFunction")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"4314C8B602D6"

+		    width      	572

+		    height     	148

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLReturningType" @341

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2002, 1924)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@341

+			location   	(1688, 1813)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	628

+			justify    	0

+			label      	"XMLReturningType")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@341

+			location   	(1688, 1763)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	628

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	14079702

+		    quidu      	"4325EA170132"

+		    width      	646

+		    height     	350

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionPI" @342

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1183, 585)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@342

+			location   	(692, 468)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	982

+			justify    	0

+			label      	"XMLValueFunctionPI")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"431F5B8B0129"

+		    width      	1000

+		    height     	262

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @343

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"431F64C101DE"

+		    client     	@342

+		    supplier   	@340

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryValueExpression" @344

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1183, 1599)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@344

+			location   	(854, 1510)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	658

+			justify    	0

+			label      	"QueryValueExpression")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B3792520160"

+		    width      	676

+		    height     	206

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionPIContent" @345

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1183, 1105)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@345

+			location   	(794, 1048)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	778

+			justify    	0

+			label      	"XMLValueFunctionPIContent")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"432F390B0155"

+		    width      	796

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$30" @346

+		    location   	(1183, 874)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"432F39250383"

+		    roleview_list 	(list RoleViews

+			(object RoleView "PIContent" @347

+			    Parent_View 	@346

+			    location   	(0, 289)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @348

+				Parent_View 	@347

+				location   	(1024, 987)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	253

+				justify    	0

+				label      	"+PIContent"

+				pctDist    	0.719512

+				height     	160

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"432F392601CB"

+			    client     	@346

+			    supplier   	@345

+			    line_style 	0

+			    label      	(object SegLabel @349

+				Parent_View 	@347

+				location   	(1249, 991)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..1"

+				pctDist    	0.737805

+				height     	66

+				orientation 	0))

+			(object RoleView "valueFunctionPI" @350

+			    Parent_View 	@346

+			    location   	(0, 289)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @351

+				Parent_View 	@350

+				location   	(948, 759)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	389

+				justify    	0

+				label      	"+valueFunctionPI"

+				pctDist    	0.725610

+				height     	236

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"432F392601CD"

+			    client     	@346

+			    supplier   	@342

+			    line_style 	0

+			    label      	(object SegLabel @352

+				Parent_View 	@350

+				location   	(1249, 758)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.731707

+				height     	66

+				orientation 	1))))

+		(object AssociationViewNew "$UNNAMED$31" @353

+		    location   	(1183, 1335)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"432F39B30146"

+		    roleview_list 	(list RoleViews

+			(object RoleView "valueExpr" @354

+			    Parent_View 	@353

+			    location   	(0, 230)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @355

+				Parent_View 	@354

+				location   	(1015, 1446)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	254

+				justify    	0

+				label      	"+valueExpr"

+				pctDist    	0.693037

+				height     	169

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"432F39B30359"

+			    client     	@353

+			    supplier   	@344

+			    line_style 	0

+			    label      	(object SegLabel @356

+				Parent_View 	@354

+				location   	(1238, 1451)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.726007

+				height     	55

+				orientation 	0))

+			(object RoleView "$UNNAMED$32" @357

+			    Parent_View 	@353

+			    location   	(0, 230)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"432F39B3036D"

+			    client     	@353

+			    supplier   	@345

+			    line_style 	0

+			    label      	(object SegLabel @358

+				Parent_View 	@357

+				location   	(1237, 1192)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.900000

+				height     	54

+				orientation 	1))))))

+	(object ClassDiagram "XMLQuery"

+	    quid       	"432F3B9A020D"

+	    title      	"XMLQuery"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	0

+	    origin_y   	0

+	    items      	(list diagram_item_list

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunction" @359

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(442, 208)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@359

+			location   	(165, 148)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	554

+			justify    	0

+			label      	"XMLValueFunction")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"4314C8B602D6"

+		    width      	572

+		    height     	148

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLReturningType" @360

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(507, 2652)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@360

+			location   	(194, 2541)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	626

+			justify    	0

+			label      	"XMLReturningType")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@360

+			location   	(194, 2491)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	626

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	14079702

+		    quidu      	"4325EA170132"

+		    width      	644

+		    height     	350

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLPassingType" @361

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1248, 2652)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@361

+			location   	(994, 2529)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	508

+			justify    	0

+			label      	"XMLPassingType")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@361

+			location   	(994, 2479)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	508

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	14079702

+		    quidu      	"431F8E950073"

+		    width      	526

+		    height     	374

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLEmptyHandlingType" @362

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2015, 2652)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@362

+			location   	(1676, 2541)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	678

+			justify    	0

+			label      	"XMLEmptyHandlingType")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@362

+			location   	(1676, 2491)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	678

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	14079702

+		    quidu      	"432F51280232"

+		    width      	696

+		    height     	350

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryValueExpression" @363

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1222, 2223)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@363

+			location   	(893, 2135)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	658

+			justify    	0

+			label      	"QueryValueExpression")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B3792520160"

+		    width      	676

+		    height     	204

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLQueryArgumentItem" @364

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1222, 1781)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@364

+			location   	(695, 1692)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	1054

+			justify    	0

+			label      	"XMLQueryArgumentItem")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"43209CA10174"

+		    width      	1072

+		    height     	206

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$5" @365

+		    location   	(1222, 2002)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4320AE75025D"

+		    roleview_list 	(list RoleViews

+			(object RoleView "valueExpr" @366

+			    Parent_View 	@365

+			    location   	(-507, -650)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @367

+				Parent_View 	@366

+				location   	(1037, 2078)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	254

+				justify    	0

+				label      	"+valueExpr"

+				pctDist    	0.647059

+				height     	186

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4320AE760313"

+			    client     	@365

+			    supplier   	@363

+			    line_style 	0

+			    label      	(object SegLabel @368

+				Parent_View 	@366

+				location   	(1272, 2083)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.682353

+				height     	50

+				orientation 	0))

+			(object RoleView "$UNNAMED$6" @369

+			    Parent_View 	@365

+			    location   	(-507, -650)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4320AE76033B"

+			    client     	@365

+			    supplier   	@364

+			    line_style 	0

+			    label      	(object SegLabel @370

+				Parent_View 	@369

+				location   	(1276, 1897)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.900000

+				height     	54

+				orientation 	1))))

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLQueryExpression" @371

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(572, 962)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@371

+			location   	(204, 873)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	736

+			justify    	0

+			label      	"XMLQueryExpression")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4320947501C6"

+		    width      	754

+		    height     	206

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLQueryArgumentList" @372

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1222, 1313)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@372

+			location   	(694, 1224)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	1056

+			justify    	0

+			label      	"XMLQueryArgumentList")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"43209B100380"

+		    width      	1074

+		    height     	206

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$4" @373

+		    location   	(1222, 1546)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"43209D1502C5"

+		    roleview_list 	(list RoleViews

+			(object RoleView "xqueryArgListChildren" @374

+			    Parent_View 	@373

+			    location   	(-247, -820)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @375

+				Parent_View 	@374

+				location   	(910, 1639)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	660

+				justify    	0

+				label      	"+xqueryArgListChildren"

+				pctDist    	0.721311

+				height     	313

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"43209D170232"

+			    client     	@373

+			    supplier   	@364

+			    line_style 	0

+			    label      	(object SegLabel @376

+				Parent_View 	@374

+				location   	(1277, 1643)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1..n"

+				pctDist    	0.748879

+				height     	55

+				orientation 	0))

+			(object RoleView "xqueryArgList" @377

+			    Parent_View 	@373

+			    location   	(-247, -820)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @378

+				Parent_View 	@377

+				location   	(990, 1458)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	474

+				justify    	0

+				label      	"+xqueryArgList"

+				pctDist    	0.681319

+				height     	233

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"43209D170234"

+			    client     	@373

+			    supplier   	@372

+			    line_style 	0

+			    label      	(object SegLabel @379

+				Parent_View 	@377

+				location   	(1280, 1458)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.676424

+				height     	58

+				orientation 	1))))

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionQueryReturning" @380

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1859, 975)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@380

+			location   	(1368, 858)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	982

+			justify    	0

+			label      	"XMLValueFunctionQueryReturning")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"434490B20155"

+		    width      	1000

+		    height     	262

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionQuery" @381

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1222, 546)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@381

+			location   	(581, 456)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	1282

+			justify    	0

+			label      	"XMLValueFunctionQuery")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"431F5BAE0364"

+		    width      	1300

+		    height     	208

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @382

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"431F64CC0021"

+		    client     	@381

+		    supplier   	@359

+		    line_style 	0)

+		(object AssociationViewNew "$UNNAMED$33" @383

+		    location   	(895, 754)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"432F3CC90159"

+		    roleview_list 	(list RoleViews

+			(object RoleView "xqueryExpr" @384

+			    Parent_View 	@383

+			    location   	(-327, 208)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @385

+				Parent_View 	@384

+				location   	(553, 819)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	281

+				justify    	0

+				label      	"+xqueryExpr"

+				pctDist    	1.686528

+				height     	130

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"432F3CCA01D3"

+			    client     	@383

+			    supplier   	@371

+			    line_style 	0

+			    label      	(object SegLabel @386

+				Parent_View 	@384

+				location   	(756, 807)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.763099

+				height     	32

+				orientation 	1))

+			(object RoleView "valueFunctionQuery" @387

+			    Parent_View 	@383

+			    location   	(-327, 208)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @388

+				Parent_View 	@387

+				location   	(623, 702)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	477

+				justify    	0

+				label      	"+valueFunctionQuery"

+				pctDist    	-1.041955

+				height     	191

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"432F3CCA01D5"

+			    client     	@383

+			    supplier   	@381

+			    line_style 	0

+			    label      	(object SegLabel @389

+				Parent_View 	@387

+				location   	(925, 681)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.337013

+				height     	47

+				orientation 	0))))

+		(object AssociationViewNew "$UNNAMED$34" @390

+		    location   	(1222, 929)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"432F3FBC01A5"

+		    roleview_list 	(list RoleViews

+			(object RoleView "xqueryArgList" @391

+			    Parent_View 	@390

+			    location   	(0, 383)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @392

+				Parent_View 	@391

+				location   	(1026, 1164)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	334

+				justify    	0

+				label      	"+xqueryArgList"

+				pctDist    	0.838926

+				height     	197

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"432F3FBD00AC"

+			    client     	@390

+			    supplier   	@372

+			    line_style 	0

+			    label      	(object SegLabel @393

+				Parent_View 	@391

+				location   	(1276, 1180)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..1"

+				pctDist    	0.900000

+				height     	54

+				orientation 	0))

+			(object RoleView "valueFunctionQuery" @394

+			    Parent_View 	@390

+			    location   	(0, 383)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @395

+				Parent_View 	@394

+				location   	(1222, 755)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	477

+				justify    	0

+				label      	"+valueFunctionQuery"

+				pctDist    	0.623016

+				height     	0

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"432F3FBD00AE"

+			    client     	@390

+			    supplier   	@381

+			    line_style 	0

+			    label      	(object SegLabel @396

+				Parent_View 	@394

+				location   	(1276, 679)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.900000

+				height     	54

+				orientation 	1))))

+		(object AssociationViewNew "$UNNAMED$52" @397

+		    location   	(1521, 746)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4344923B038E"

+		    roleview_list 	(list RoleViews

+			(object RoleView "queryReturning" @398

+			    Parent_View 	@397

+			    location   	(299, 200)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @399

+				Parent_View 	@398

+				location   	(1985, 802)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	368

+				justify    	0

+				label      	"+queryReturning"

+				pctDist    	2.391607

+				height     	214

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4344923C032B"

+			    client     	@397

+			    supplier   	@380

+			    line_style 	0

+			    label      	(object SegLabel @400

+				Parent_View 	@398

+				location   	(1729, 812)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..1"

+				pctDist    	1.205869

+				height     	63

+				orientation 	0))

+			(object RoleView "valueFunctionQuery" @401

+			    Parent_View 	@397

+			    location   	(299, 200)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @402

+				Parent_View 	@401

+				location   	(1748, 695)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	458

+				justify    	0

+				label      	"+valueFunctionQuery"

+				pctDist    	-0.934202

+				height     	169

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4344923C032D"

+			    client     	@397

+			    supplier   	@381

+			    line_style 	0

+			    label      	(object SegLabel @403

+				Parent_View 	@401

+				location   	(1504, 699)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.245426

+				height     	30

+				orientation 	1))))))

+	(object ClassDiagram "XMLTable"

+	    quid       	"432F574E026C"

+	    title      	"XMLTable"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	0

+	    origin_y   	0

+	    items      	(list diagram_item_list

+		(object ClassView "Class" "Logical View::SQLQueryModel::TableFunction" @404

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(364, 169)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@404

+			location   	(118, 84)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	492

+			justify    	0

+			label      	"TableFunction")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3BF3D3E801A0"

+		    width      	510

+		    height     	198

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLNamespaceDeclarationPrefix" @405

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(507, 2548)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@405

+			location   	(49, 2459)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	916

+			justify    	0

+			label      	"XMLNamespaceDeclarationPrefix")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4314C8B60324"

+		    width      	934

+		    height     	206

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLNamespaceDeclarationDefault" @406

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(624, 2834)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@406

+			location   	(153, 2745)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	942

+			justify    	0

+			label      	"XMLNamespaceDeclarationDefault")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4314C8B60329"

+		    width      	960

+		    height     	206

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLTableColumnDefinitionOrdinality" @407

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1859, 1677)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@407

+			location   	(1372, 1620)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	974

+			justify    	0

+			label      	"XMLTableColumnDefinitionOrdinality")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"432F728503C4"

+		    width      	992

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLNamespaceDeclarationItem" @408

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(507, 2119)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@408

+			location   	(67, 2030)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	880

+			justify    	0

+			label      	"XMLNamespaceDeclarationItem")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4314C8B6031E"

+		    width      	898

+		    height     	206

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritTreeView "" @409

+		    location   	(507, 2370)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@408

+		    vertices   	(list Points

+			(507, 2370)

+			(507, 2222)))

+		(object InheritView "" @410

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4314C8B60328"

+		    client     	@406

+		    supplier   	@408

+		    line_style 	3

+		    origin_attachment 	(1018, 2730)

+		    terminal_attachment 	(1018, 2370)

+		    drawSupplier 	@409)

+		(object InheritView "" @411

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4314C8B60323"

+		    client     	@405

+		    supplier   	@408

+		    line_style 	3

+		    origin_attachment 	(118, 2445)

+		    terminal_attachment 	(118, 2370)

+		    drawSupplier 	@409)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLTableColumnDefinitionItem" @412

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1833, 715)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@412

+			location   	(1407, 658)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	852

+			justify    	0

+			label      	"XMLTableColumnDefinitionItem")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"432F717D0304"

+		    width      	870

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLNamespacesDeclaration" @413

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(507, 715)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@413

+			location   	(103, 658)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	808

+			justify    	0

+			label      	"XMLNamespacesDeclaration")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"433B457C01AC"

+		    width      	826

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$44" @414

+		    location   	(507, 1400)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"433B45AE006E"

+		    roleview_list 	(list RoleViews

+			(object RoleView "namespacesDecl" @415

+			    Parent_View 	@414

+			    location   	(0, -719)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @416

+				Parent_View 	@415

+				location   	(282, 844)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	416

+				justify    	0

+				label      	"+namespacesDecl"

+				pctDist    	0.907166

+				height     	226

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"433B45AE02DD"

+			    client     	@414

+			    supplier   	@413

+			    line_style 	0

+			    label      	(object SegLabel @417

+				Parent_View 	@415

+				location   	(576, 848)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.899023

+				height     	69

+				orientation 	1))

+			(object RoleView "namespaceDecltemList" @418

+			    Parent_View 	@414

+			    location   	(0, -719)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @419

+				Parent_View 	@418

+				location   	(351, 1958)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	551

+				justify    	0

+				label      	"+namespaceDecltemList"

+				pctDist    	0.907468

+				height     	157

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"433B45AE02DB"

+			    client     	@414

+			    supplier   	@408

+			    line_style 	0

+			    label      	(object SegLabel @420

+				Parent_View 	@418

+				location   	(702, 1968)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1..n"

+				pctDist    	0.923701

+				height     	195

+				orientation 	0))))

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLTableFunction" @421

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1170, 325)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@421

+			location   	(831, 236)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	678

+			justify    	0

+			label      	"XMLTableFunction")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"432F58BF035B"

+		    width      	696

+		    height     	206

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @422

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"432F58ED037A"

+		    client     	@421

+		    supplier   	@404

+		    line_style 	0)

+		(object AssociationViewNew "$UNNAMED$42" @423

+		    location   	(1528, 535)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"432F71A40340"

+		    roleview_list 	(list RoleViews

+			(object RoleView "columnDefList" @424

+			    Parent_View 	@423

+			    location   	(267, 210)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @425

+				Parent_View 	@424

+				location   	(1466, 606)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	348

+				justify    	0

+				label      	"+columnDefList"

+				pctDist    	-0.090817

+				height     	93

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"432F71A5020C"

+			    client     	@423

+			    supplier   	@412

+			    line_style 	0

+			    label      	(object SegLabel @426

+				Parent_View 	@424

+				location   	(1780, 597)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1..n"

+				pctDist    	1.165729

+				height     	75

+				orientation 	0))

+			(object RoleView "tableFunction" @427

+			    Parent_View 	@423

+			    location   	(267, 210)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @428

+				Parent_View 	@427

+				location   	(1656, 471)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	334

+				justify    	0

+				label      	"+tableFunction"

+				pctDist    	-0.370677

+				height     	120

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"432F71A5020E"

+			    client     	@423

+			    supplier   	@421

+			    line_style 	0

+			    label      	(object SegLabel @429

+				Parent_View 	@427

+				location   	(1331, 461)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.992006

+				height     	36

+				orientation 	0))))

+		(object AssociationViewNew "$UNNAMED$51" @430

+		    location   	(809, 535)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"433B51E302F3"

+		    roleview_list 	(list RoleViews

+			(object RoleView "namespacesDecl" @431

+			    Parent_View 	@430

+			    location   	(-452, 210)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @432

+				Parent_View 	@431

+				location   	(392, 617)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	416

+				justify    	0

+				label      	"+namespacesDecl"

+				pctDist    	1.885634

+				height     	142

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"433B51E4020E"

+			    client     	@430

+			    supplier   	@413

+			    line_style 	0

+			    label      	(object SegLabel @433

+				Parent_View 	@431

+				location   	(776, 592)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..1"

+				pctDist    	0.273184

+				height     	33

+				orientation 	0))

+			(object RoleView "tableFunction" @434

+			    Parent_View 	@430

+			    location   	(-452, 210)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @435

+				Parent_View 	@434

+				location   	(740, 479)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	334

+				justify    	0

+				label      	"+tableFunction"

+				pctDist    	-0.153283

+				height     	84

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"433B51E40218"

+			    client     	@430

+			    supplier   	@421

+			    line_style 	0

+			    label      	(object SegLabel @436

+				Parent_View 	@434

+				location   	(1023, 459)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	1.053479

+				height     	42

+				orientation 	1))))

+		(object InheritTreeView "" @437

+		    location   	(1819, 1542)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@412

+		    vertices   	(list Points

+			(1819, 1542)

+			(1819, 786)))

+		(object InheritView "" @438

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"432F72A90380"

+		    client     	@407

+		    supplier   	@412

+		    line_style 	3

+		    origin_attachment 	(2247, 1605)

+		    terminal_attachment 	(2247, 1542)

+		    drawSupplier 	@437)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLQueryArgumentList" @439

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1170, 962)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@439

+			location   	(642, 873)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	1056

+			justify    	0

+			label      	"XMLQueryArgumentList")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"43209B100380"

+		    width      	1074

+		    height     	206

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$41" @440

+		    location   	(1170, 643)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"432F6C0F004B"

+		    roleview_list 	(list RoleViews

+			(object RoleView "xqueryArgList" @441

+			    Parent_View 	@440

+			    location   	(-65, 19)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @442

+				Parent_View 	@441

+				location   	(979, 824)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	334

+				justify    	0

+				label      	"+xqueryArgList"

+				pctDist    	0.846890

+				height     	192

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"432F6C0F0308"

+			    client     	@440

+			    supplier   	@439

+			    line_style 	0

+			    label      	(object SegLabel @443

+				Parent_View 	@441

+				location   	(1224, 833)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..1"

+				pctDist    	0.889952

+				height     	54

+				orientation 	0))

+			(object RoleView "tableFunction" @444

+			    Parent_View 	@440

+			    location   	(-65, 19)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @445

+				Parent_View 	@444

+				location   	(1135, 526)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	334

+				justify    	0

+				label      	"+tableFunction"

+				pctDist    	0.548077

+				height     	36

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"432F6C0F0312"

+			    client     	@440

+			    supplier   	@421

+			    line_style 	0

+			    label      	(object SegLabel @446

+				Parent_View 	@444

+				location   	(1233, 468)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.817308

+				height     	63

+				orientation 	1))))

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLQueryArgumentItem" @447

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1170, 1365)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@447

+			location   	(642, 1276)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	1056

+			justify    	0

+			label      	"XMLQueryArgumentItem")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"43209CA10174"

+		    width      	1074

+		    height     	206

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$4" @448

+		    location   	(1170, 1163)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"43209D1502C5"

+		    roleview_list 	(list RoleViews

+			(object RoleView "xqueryArgListChildren" @449

+			    Parent_View 	@448

+			    location   	(-299, -1203)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @450

+				Parent_View 	@449

+				location   	(871, 1219)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	660

+				justify    	0

+				label      	"+xqueryArgListChildren"

+				pctDist    	0.568428

+				height     	300

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"43209D170232"

+			    client     	@448

+			    supplier   	@447

+			    line_style 	0

+			    label      	(object SegLabel @451

+				Parent_View 	@449

+				location   	(1225, 1236)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1..n"

+				pctDist    	0.748879

+				height     	55

+				orientation 	0))

+			(object RoleView "xqueryArgList" @452

+			    Parent_View 	@448

+			    location   	(-299, -1203)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @453

+				Parent_View 	@452

+				location   	(938, 1097)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	474

+				justify    	0

+				label      	"+xqueryArgList"

+				pctDist    	0.681319

+				height     	233

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"43209D170234"

+			    client     	@448

+			    supplier   	@439

+			    line_style 	0

+			    label      	(object SegLabel @454

+				Parent_View 	@452

+				location   	(1228, 1098)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.676424

+				height     	58

+				orientation 	1))))

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryValueExpression" @455

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1690, 2834)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@455

+			location   	(1361, 2746)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	658

+			justify    	0

+			label      	"QueryValueExpression")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B3792520160"

+		    width      	676

+		    height     	204

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$5" @456

+		    location   	(1169, 2193)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4320AE75025D"

+		    roleview_list 	(list RoleViews

+			(object RoleView "valueExpr" @457

+			    Parent_View 	@456

+			    location   	(-560, -459)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @458

+				Parent_View 	@457

+				location   	(1482, 2691)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	254

+				justify    	0

+				label      	"+valueExpr"

+				pctDist    	1.031758

+				height     	48

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4320AE760313"

+			    client     	@456

+			    supplier   	@455

+			    vertices   	(list Points

+				(1169, 2193)

+				(1169, 2608)

+				(1454, 2731))

+			    line_style 	0

+			    label      	(object SegLabel @459

+				Parent_View 	@457

+				location   	(1642, 2685)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	1.497354

+				height     	116

+				orientation 	0))

+			(object RoleView "$UNNAMED$6" @460

+			    Parent_View 	@456

+			    location   	(-560, -459)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4320AE76033B"

+			    client     	@456

+			    supplier   	@447

+			    line_style 	0

+			    label      	(object SegLabel @461

+				Parent_View 	@460

+				location   	(1223, 1541)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.900000

+				height     	54

+				orientation 	1))))

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLTableColumnDefinitionDefault" @462

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1690, 2379)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@462

+			location   	(1262, 2325)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	857

+			justify    	0

+			label      	"XMLTableColumnDefinitionDefault")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"43598E370091"

+		    width      	875

+		    height     	137

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$56" @463

+		    location   	(1690, 2589)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"43598EF500D1"

+		    roleview_list 	(list RoleViews

+			(object RoleView "valueExpr" @464

+			    Parent_View 	@463

+			    location   	(0, 210)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @465

+				Parent_View 	@464

+				location   	(1858, 2689)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	254

+				justify    	0

+				label      	"+valueExpr"

+				pctDist    	0.706145

+				height     	168

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"43598EF70322"

+			    client     	@463

+			    supplier   	@455

+			    line_style 	0

+			    label      	(object SegLabel @466

+				Parent_View 	@464

+				location   	(2027, 2684)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.665610

+				height     	337

+				orientation 	0))

+			(object RoleView "$UNNAMED$57" @467

+			    Parent_View 	@463

+			    location   	(0, 210)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"43598EF7034A"

+			    client     	@463

+			    supplier   	@462

+			    line_style 	0

+			    label      	(object SegLabel @468

+				Parent_View 	@467

+				location   	(1744, 2462)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.900000

+				height     	54

+				orientation 	1))))

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLTableColumnDefinitionRegular" @469

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1690, 1989)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@469

+			location   	(1223, 1843)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	934

+			justify    	0

+			label      	"XMLTableColumnDefinitionRegular")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"432F7257029B"

+		    width      	952

+		    height     	320

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @470

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"432F72AD00C9"

+		    client     	@469

+		    supplier   	@412

+		    line_style 	3

+		    origin_attachment 	(1297, 1828)

+		    terminal_attachment 	(1297, 1542)

+		    drawSupplier 	@437)

+		(object AssociationViewNew "$UNNAMED$58" @471

+		    location   	(1690, 2229)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"43598F37019E"

+		    roleview_list 	(list RoleViews

+			(object RoleView "columnDefinitionDefault" @472

+			    Parent_View 	@471

+			    location   	(0, 240)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @473

+				Parent_View 	@472

+				location   	(2024, 2281)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	546

+				justify    	0

+				label      	"+columnDefinitionDefault"

+				pctDist    	0.641975

+				height     	334

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"43598F3800AF"

+			    client     	@471

+			    supplier   	@462

+			    line_style 	0

+			    label      	(object SegLabel @474

+				Parent_View 	@472

+				location   	(1613, 2276)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..1"

+				pctDist    	0.580247

+				height     	77

+				orientation 	1))

+			(object RoleView "columnDefinitionRegular" @475

+			    Parent_View 	@471

+			    location   	(0, 240)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @476

+				Parent_View 	@475

+				location   	(2025, 2191)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	556

+				justify    	0

+				label      	"+columnDefinitionRegular"

+				pctDist    	0.475000

+				height     	335

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"43598F3800B9"

+			    client     	@471

+			    supplier   	@469

+			    line_style 	0

+			    label      	(object SegLabel @477

+				Parent_View 	@475

+				location   	(1616, 2182)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.587500

+				height     	74

+				orientation 	0))))))

+	(object ClassDiagram "XMLText"

+	    quid       	"432F5AF9039F"

+	    title      	"XMLText"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	0

+	    origin_y   	0

+	    items      	(list diagram_item_list

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunction" @478

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(403, 195)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@478

+			location   	(126, 135)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	554

+			justify    	0

+			label      	"XMLValueFunction")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"4314C8B602D6"

+		    width      	572

+		    height     	148

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionText" @479

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1144, 559)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@479

+			location   	(653, 470)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	982

+			justify    	0

+			label      	"XMLValueFunctionText")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"431F5DFD011F"

+		    width      	1000

+		    height     	206

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @480

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"431F64D7004F"

+		    client     	@479

+		    supplier   	@478

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryValueExpression" @481

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1144, 1547)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@481

+			location   	(815, 1458)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	658

+			justify    	0

+			label      	"QueryValueExpression")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B3792520160"

+		    width      	676

+		    height     	206

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionTextContent" @482

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1144, 1053)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@482

+			location   	(729, 996)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	830

+			justify    	0

+			label      	"XMLValueFunctionTextContent")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"432F5B620073"

+		    width      	848

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$35" @483

+		    location   	(1144, 821)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"432F5B7F0059"

+		    roleview_list 	(list RoleViews

+			(object RoleView "textContent" @484

+			    Parent_View 	@483

+			    location   	(0, 262)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @485

+				Parent_View 	@484

+				location   	(936, 934)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	282

+				justify    	0

+				label      	"+textContent"

+				pctDist    	0.713546

+				height     	209

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"432F5B7F0227"

+			    client     	@483

+			    supplier   	@482

+			    line_style 	0

+			    label      	(object SegLabel @486

+				Parent_View 	@484

+				location   	(1197, 939)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.741350

+				height     	53

+				orientation 	0))

+			(object RoleView "valueFunctionText" @487

+			    Parent_View 	@483

+			    location   	(0, 262)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @488

+				Parent_View 	@487

+				location   	(884, 706)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	422

+				justify    	0

+				label      	"+valueFunctionText"

+				pctDist    	0.727273

+				height     	261

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"432F5B7F0229"

+			    client     	@483

+			    supplier   	@479

+			    line_style 	0

+			    label      	(object SegLabel @489

+				Parent_View 	@487

+				location   	(1198, 707)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.721212

+				height     	54

+				orientation 	1))))

+		(object AssociationViewNew "$UNNAMED$36" @490

+		    location   	(1144, 1283)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"432F5BD70178"

+		    roleview_list 	(list RoleViews

+			(object RoleView "valueExpr" @491

+			    Parent_View 	@490

+			    location   	(0, 256)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @492

+				Parent_View 	@491

+				location   	(964, 1409)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	254

+				justify    	0

+				label      	"+valueExpr"

+				pctDist    	0.795455

+				height     	181

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"432F5BD80026"

+			    client     	@490

+			    supplier   	@481

+			    line_style 	0

+			    label      	(object SegLabel @493

+				Parent_View 	@491

+				location   	(1198, 1414)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.823864

+				height     	54

+				orientation 	0))

+			(object RoleView "$UNNAMED$37" @494

+			    Parent_View 	@490

+			    location   	(0, 256)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"432F5BD8003A"

+			    client     	@490

+			    supplier   	@482

+			    line_style 	0

+			    label      	(object SegLabel @495

+				Parent_View 	@494

+				location   	(1198, 1140)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.900000

+				height     	54

+				orientation 	1))))

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLReturningType" @496

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1937, 1963)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@496

+			location   	(1623, 1852)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	628

+			justify    	0

+			label      	"XMLReturningType")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@496

+			location   	(1623, 1802)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	628

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	14079702

+		    quidu      	"4325EA170132"

+		    width      	646

+		    height     	350

+		    annotation 	8

+		    autoResize 	TRUE)))

+	(object ClassDiagram "XMLValidate"

+	    quid       	"432F60A00307"

+	    title      	"XMLValidate"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	0

+	    origin_y   	0

+	    items      	(list diagram_item_list

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunction" @497

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(416, 182)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@497

+			location   	(139, 122)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	554

+			justify    	0

+			label      	"XMLValueFunction")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"4314C8B602D6"

+		    width      	572

+		    height     	148

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLContentType2" @498

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(442, 2509)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@498

+			location   	(176, 2358)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	532

+			justify    	0

+			label      	"XMLContentType2")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@498

+			location   	(176, 2308)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	532

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	14079702

+		    quidu      	"432F62190175"

+		    width      	550

+		    height     	430

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionValidateAccordingToURI" @499

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1534, 1742)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@499

+			location   	(954, 1597)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	1160

+			justify    	0

+			label      	"XMLValueFunctionValidateAccordingToURI")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"432F752A01C6"

+		    width      	1178

+		    height     	318

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionValidateAccordingToIdentifier" @500

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1287, 1404)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@500

+			location   	(648, 1287)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	1278

+			justify    	0

+			label      	"XMLValueFunctionValidateAccordingToIdentifier")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"432F75530067"

+		    width      	1296

+		    height     	262

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryValueExpression" @501

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(559, 1729)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@501

+			location   	(230, 1640)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	658

+			justify    	0

+			label      	"QueryValueExpression")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B3792520160"

+		    width      	676

+		    height     	206

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionValidateContent" @502

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(559, 988)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@502

+			location   	(90, 931)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	938

+			justify    	0

+			label      	"XMLValueFunctionValidateContent")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"432F60FF0073"

+		    width      	956

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$39" @503

+		    location   	(559, 1342)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"432F61960258"

+		    roleview_list 	(list RoleViews

+			(object RoleView "valueExpr" @504

+			    Parent_View 	@503

+			    location   	(-637, 328)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @505

+				Parent_View 	@504

+				location   	(375, 1547)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	254

+				justify    	0

+				label      	"+valueExpr"

+				pctDist    	0.725610

+				height     	185

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"432F619701C5"

+			    client     	@503

+			    supplier   	@501

+			    line_style 	0

+			    label      	(object SegLabel @506

+				Parent_View 	@504

+				location   	(613, 1547)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.725610

+				height     	54

+				orientation 	0))

+			(object RoleView "$UNNAMED$40" @507

+			    Parent_View 	@503

+			    location   	(-637, 328)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"432F619701E3"

+			    client     	@503

+			    supplier   	@502

+			    line_style 	0

+			    label      	(object SegLabel @508

+				Parent_View 	@507

+				location   	(613, 1111)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.817073

+				height     	54

+				orientation 	1))))

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionValidateElementNamespace" @509

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1469, 2522)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@509

+			location   	(844, 2405)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	1250

+			justify    	0

+			label      	"XMLValueFunctionValidateElementNamespace")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"432F7B6000C4"

+		    width      	1268

+		    height     	262

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionValidateElementName" @510

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1755, 2925)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@510

+			location   	(1202, 2868)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	1106

+			justify    	0

+			label      	"XMLValueFunctionValidateElementName")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"432F792C0211"

+		    width      	1124

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionValidate" @511

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1196, 507)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@511

+			location   	(729, 418)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	934

+			justify    	0

+			label      	"XMLValueFunctionValidate")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"431F64ED0250"

+		    width      	952

+		    height     	206

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @512

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"431F65080140"

+		    client     	@511

+		    supplier   	@497

+		    line_style 	0)

+		(object AssociationViewNew "$UNNAMED$38" @513

+		    location   	(854, 763)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"432F61200036"

+		    roleview_list 	(list RoleViews

+			(object RoleView "validateContent" @514

+			    Parent_View 	@513

+			    location   	(-342, 256)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @515

+				Parent_View 	@514

+				location   	(476, 888)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	378

+				justify    	0

+				label      	"+validateContent"

+				pctDist    	1.486591

+				height     	129

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"432F61200291"

+			    client     	@513

+			    supplier   	@502

+			    line_style 	0

+			    label      	(object SegLabel @516

+				Parent_View 	@514

+				location   	(768, 856)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.491976

+				height     	23

+				orientation 	0))

+			(object RoleView "valueFunctionValidate" @517

+			    Parent_View 	@513

+			    location   	(-342, 256)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @518

+				Parent_View 	@517

+				location   	(653, 664)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	523

+				justify    	0

+				label      	"+valueFunctionValidate"

+				pctDist    	-0.398340

+				height     	201

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"432F61200293"

+			    client     	@513

+			    supplier   	@511

+			    line_style 	0

+			    label      	(object SegLabel @519

+				Parent_View 	@517

+				location   	(1069, 669)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.900000

+				height     	54

+				orientation 	1))))

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionValidateElement" @520

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1833, 2119)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@520

+			location   	(1362, 2062)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	942

+			justify    	0

+			label      	"XMLValueFunctionValidateElement")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4346E84C020E"

+		    width      	960

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$53" @521

+		    location   	(1675, 2290)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4346E8A102C8"

+		    roleview_list 	(list RoleViews

+			(object RoleView "validateElementNamespace" @522

+			    Parent_View 	@521

+			    location   	(-184, 288)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @523

+				Parent_View 	@522

+				location   	(1217, 2333)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	654

+				justify    	0

+				label      	"+validateElementNamespace"

+				pctDist    	2.531635

+				height     	311

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4346E8A2008F"

+			    client     	@521

+			    supplier   	@509

+			    line_style 	0

+			    label      	(object SegLabel @524

+				Parent_View 	@522

+				location   	(1709, 2354)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..1"

+				pctDist    	0.191710

+				height     	69

+				orientation 	0))

+			(object RoleView "validateElement" @525

+			    Parent_View 	@521

+			    location   	(-184, 288)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @526

+				Parent_View 	@525

+				location   	(1477, 2232)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	386

+				justify    	0

+				label      	"+validateElement"

+				pctDist    	-0.687598

+				height     	187

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4346E8A20099"

+			    client     	@521

+			    supplier   	@520

+			    line_style 	0

+			    label      	(object SegLabel @527

+				Parent_View 	@525

+				location   	(1796, 2237)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.900000

+				height     	54

+				orientation 	1))))

+		(object AssociationViewNew "$UNNAMED$54" @528

+		    location   	(2258, 2550)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4346E8F401DA"

+		    roleview_list 	(list RoleViews

+			(object RoleView "validateElementName" @529

+			    Parent_View 	@528

+			    location   	(399, 548)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @530

+				Parent_View 	@529

+				location   	(1581, 2801)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	520

+				justify    	0

+				label      	"+validateElementName"

+				pctDist    	1.789576

+				height     	178

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4346E8F90277"

+			    client     	@528

+			    supplier   	@510

+			    vertices   	(list Points

+				(2258, 2550)

+				(2258, 2711)

+				(1918, 2853))

+			    line_style 	0

+			    label      	(object SegLabel @531

+				Parent_View 	@529

+				location   	(1919, 2809)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..1"

+				pctDist    	0.967929

+				height     	41

+				orientation 	1))

+			(object RoleView "validateElement" @532

+			    Parent_View 	@528

+			    location   	(399, 548)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @533

+				Parent_View 	@532

+				location   	(2146, 2290)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	386

+				justify    	0

+				label      	"+validateElement"

+				pctDist    	0.681926

+				height     	39

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4346E8F90279"

+			    client     	@528

+			    supplier   	@520

+			    vertices   	(list Points

+				(2258, 2550)

+				(2258, 2295)

+				(2005, 2190))

+			    line_style 	0

+			    label      	(object SegLabel @534

+				Parent_View 	@532

+				location   	(2168, 2219)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	32

+				justify    	0

+				label      	"1"

+				pctDist    	0.694990

+				height     	37

+				orientation 	1))))

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionValidateAccordingTo" @535

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1729, 988)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@535

+			location   	(1192, 931)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	1074

+			justify    	0

+			label      	"XMLValueFunctionValidateAccordingTo")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"432F748E01DE"

+		    width      	1092

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$43" @536

+		    location   	(1479, 763)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"432F74E40124"

+		    roleview_list 	(list RoleViews

+			(object RoleView "validateAccordingTo" @537

+			    Parent_View 	@536

+			    location   	(283, 256)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @538

+				Parent_View 	@537

+				location   	(1296, 870)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	486

+				justify    	0

+				label      	"+validateAccordingTo"

+				pctDist    	-0.290110

+				height     	202

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"432F74E403E1"

+			    client     	@536

+			    supplier   	@535

+			    line_style 	0

+			    label      	(object SegLabel @539

+				Parent_View 	@537

+				location   	(1709, 872)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	119

+				justify    	0

+				label      	"0..1"

+				pctDist    	1.063761

+				height     	72

+				orientation 	0))

+			(object RoleView "valueFunctionValidate" @540

+			    Parent_View 	@536

+			    location   	(283, 256)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @541

+				Parent_View 	@540

+				location   	(1408, 688)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	523

+				justify    	0

+				label      	"+valueFunctionValidate"

+				pctDist    	0.454790

+				height     	9

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"432F74E403E3"

+			    client     	@536

+			    supplier   	@511

+			    line_style 	0

+			    label      	(object SegLabel @542

+				Parent_View 	@540

+				location   	(1718, 679)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	-0.534287

+				height     	223

+				orientation 	1))))

+		(object InheritTreeView "" @543

+		    location   	(1729, 1213)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@535

+		    vertices   	(list Points

+			(1729, 1213)

+			(1729, 1059)))

+		(object InheritView "" @544

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"432F75F50007"

+		    client     	@500

+		    supplier   	@535

+		    line_style 	3

+		    origin_attachment 	(878, 1272)

+		    terminal_attachment 	(878, 1213)

+		    drawSupplier 	@543)

+		(object InheritView "" @545

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"432F75F80228"

+		    client     	@499

+		    supplier   	@535

+		    line_style 	3

+		    origin_attachment 	(1991, 1582)

+		    terminal_attachment 	(1991, 1213)

+		    drawSupplier 	@543)

+		(object AssociationViewNew "$UNNAMED$55" @546

+		    location   	(2209, 1523)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4346E9550359"

+		    roleview_list 	(list RoleViews

+			(object RoleView "validateElement" @547

+			    Parent_View 	@546

+			    location   	(480, 535)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @548

+				Parent_View 	@547

+				location   	(1604, 2002)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	386

+				justify    	0

+				label      	"+validateElement"

+				pctDist    	2.143070

+				height     	205

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4346E95D0043"

+			    client     	@546

+			    supplier   	@520

+			    vertices   	(list Points

+				(2209, 1523)

+				(2209, 1926)

+				(1970, 2047))

+			    line_style 	0

+			    label      	(object SegLabel @549

+				Parent_View 	@547

+				location   	(1875, 2001)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	181

+				justify    	0

+				label      	"0..1"

+				pctDist    	1.099087

+				height     	85

+				orientation 	1))

+			(object RoleView "validateAccordingTo" @550

+			    Parent_View 	@546

+			    location   	(480, 535)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @551

+				Parent_View 	@550

+				location   	(2050, 1156)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	486

+				justify    	0

+				label      	"+validateAccordingTo"

+				pctDist    	0.717745

+				height     	19

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4346E95D0045"

+			    client     	@546

+			    supplier   	@535

+			    vertices   	(list Points

+				(2209, 1523)

+				(2209, 1210)

+				(1884, 1059))

+			    line_style 	0

+			    label      	(object SegLabel @552

+				Parent_View 	@550

+				location   	(2110, 1099)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.669924

+				height     	60

+				orientation 	1))))))

+	(object ClassDiagram "Inheritance2"

+	    quid       	"433B53840365"

+	    title      	"Inheritance2"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	81

+	    origin_y   	0

+	    items      	(list diagram_item_list

+		(object NoteView @553

+		    location   	(481, 247)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@553

+			location   	(171, 88)

+			fill_color 	13434879

+			nlines     	5

+			max_width  	584

+			label      	

+|This diagram shows inheritance that isn't shown on other diagrams.  These are classes that "wrap" a QueryValueExpression.

+			)

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	644

+		    height     	331)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionCommentContent" @554

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1716, 910)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@554

+			location   	(1231, 853)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	970

+			justify    	0

+			label      	"XMLValueFunctionCommentContent")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4325FF710379"

+		    width      	988

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionConcatContentItem" @555

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1716, 1378)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@555

+			location   	(1210, 1321)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	1012

+			justify    	0

+			label      	"XMLValueFunctionConcatContentItem")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4325FC9500E8"

+		    width      	1030

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionDocumentContent" @556

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1729, 1599)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@556

+			location   	(1236, 1542)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	986

+			justify    	0

+			label      	"XMLValueFunctionDocumentContent")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"432603710070"

+		    width      	1004

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLAttributeDeclarationItem" @557

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1690, 247)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@557

+			location   	(1306, 190)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	768

+			justify    	0

+			label      	"XMLAttributeDeclarationItem")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4314C8B602B2"

+		    width      	786

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionElementContentItem" @558

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1729, 1820)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@558

+			location   	(1201, 1763)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	1056

+			justify    	0

+			label      	"XMLValueFunctionElementContentItem")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4314C8B602C9"

+		    width      	1074

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLQueryArgumentItem" @559

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1703, 468)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@559

+			location   	(1370, 411)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	666

+			justify    	0

+			label      	"XMLQueryArgumentItem")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"43209CA10174"

+		    width      	684

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionForestContentItem" @560

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1729, 2041)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@560

+			location   	(1232, 1984)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	994

+			justify    	0

+			label      	"XMLValueFunctionForestContentItem")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"432F1BC80031"

+		    width      	1012

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionParseContent" @561

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1742, 2262)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@561

+			location   	(1306, 2205)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	872

+			justify    	0

+			label      	"XMLValueFunctionParseContent")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"432F3271034A"

+		    width      	890

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionPIContent" @562

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1742, 2470)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@562

+			location   	(1353, 2413)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	778

+			justify    	0

+			label      	"XMLValueFunctionPIContent")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"432F390B0155"

+		    width      	796

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLSerializeFunctionTarget" @563

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1703, 689)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@563

+			location   	(1324, 632)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	758

+			justify    	0

+			label      	"XMLSerializeFunctionTarget")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4320C222013E"

+		    width      	776

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionTextContent" @564

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1742, 2691)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@564

+			location   	(1327, 2634)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	830

+			justify    	0

+			label      	"XMLValueFunctionTextContent")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"432F5B620073"

+		    width      	848

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLValueFunctionValidateContent" @565

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1742, 2912)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@565

+			location   	(1275, 2855)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	934

+			justify    	0

+			label      	"XMLValueFunctionValidateContent")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"432F60FF0073"

+		    width      	952

+		    height     	142

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLQueryModel::QueryValueExpression" @566

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(429, 1378)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@566

+			location   	(100, 1290)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	658

+			justify    	0

+			label      	"QueryValueExpression")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B3792520160"

+		    width      	676

+		    height     	204

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @567

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"433B54710354"

+		    client     	@554

+		    supplier   	@566

+		    line_style 	0)

+		(object InheritView "" @568

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"433B54B00215"

+		    client     	@555

+		    supplier   	@566

+		    line_style 	0)

+		(object InheritView "" @569

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"433B54E70369"

+		    client     	@556

+		    supplier   	@566

+		    line_style 	0)

+		(object InheritView "" @570

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"433B5574029B"

+		    client     	@557

+		    supplier   	@566

+		    line_style 	0)

+		(object InheritView "" @571

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"433B55C10116"

+		    client     	@558

+		    supplier   	@566

+		    line_style 	0)

+		(object InheritView "" @572

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"433B56240278"

+		    client     	@559

+		    supplier   	@566

+		    line_style 	0)

+		(object InheritView "" @573

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"433B56CB00C1"

+		    client     	@560

+		    supplier   	@566

+		    line_style 	0)

+		(object InheritView "" @574

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"433B57030235"

+		    client     	@561

+		    supplier   	@566

+		    line_style 	0)

+		(object InheritView "" @575

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"433B5727006A"

+		    client     	@562

+		    supplier   	@566

+		    line_style 	0)

+		(object InheritView "" @576

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"433B57730128"

+		    client     	@563

+		    supplier   	@566

+		    line_style 	0)

+		(object InheritView "" @577

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"433B57DE032C"

+		    client     	@564

+		    supplier   	@566

+		    line_style 	0)

+		(object InheritView "" @578

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"433B581B02C6"

+		    client     	@565

+		    supplier   	@566

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLXMLQueryModel::XMLTableColumnDefinitionDefault" @579

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1716, 1131)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@579

+			location   	(1256, 1077)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	920

+			justify    	0

+			label      	"XMLTableColumnDefinitionDefault")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"43598E370091"

+		    width      	938

+		    height     	136

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @580

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"43598FF50147"

+		    client     	@579

+		    supplier   	@566

+		    line_style 	0)))))

diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/model/SQLXMLQueryModel.ecore b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/model/SQLXMLQueryModel.ecore
new file mode 100644
index 0000000..feb8f72
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/model/SQLXMLQueryModel.ecore
@@ -0,0 +1,466 @@
+<?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="query"

+    nsURI="http:///org/eclipse/datatools/modelbase/sql/xml/query/SQLXMLQueryModel.ecore"

+    nsPrefix="org.eclipse.datatools.modelbase.sql.xml.query">

+  <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+    <details key="documentation" value="The documentation for this model is adapted from &quot;Information technology -- Database languages -- SQL, Part 14: XML-Related Specifications (SQL/XML)&quot; WG3:WLG-010preview H2-2005-xxx, FDIS ISO/IEC 9075-14:2005 (E) draft published May, 2005.&#xD;&#xA;"/>

+  </eAnnotations>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLValueFunctionConcat" eSuperTypes="#//XMLValueFunction">

+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+      <details key="documentation" value="Generates an XML value which is the concatenation of a list of XML values.  See ISO SQL/XML sec. 6.11."/>

+    </eAnnotations>

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="returningOption" eType="#//XMLReturningType"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="concatContentList" lowerBound="1"

+        upperBound="-1" eType="#//XMLValueFunctionConcatContentItem" containment="true"

+        eOpposite="#//XMLValueFunctionConcatContentItem/valueFunctionConcat"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLValueFunction" abstract="true" eSuperTypes="../../org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore#//ValueExpressionFunction">

+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+      <details key="documentation" value="Specifies a function that yields a value of type XML.  See ISO SQL/XML sec. 6.9."/>

+    </eAnnotations>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLNamespaceDeclarationPrefix" eSuperTypes="#//XMLNamespaceDeclarationItem">

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="prefix" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLNamespaceDeclarationDefault" eSuperTypes="#//XMLNamespaceDeclarationItem">

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="noDefault" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"

+        defaultValueLiteral="false"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLAttributeDeclarationItem" eSuperTypes="../../org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore#//QueryValueExpression">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueExpr" lowerBound="1"

+        eType="ecore:EClass ../../org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore#//QueryValueExpression"

+        containment="true"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="attributesDecl" lowerBound="1"

+        eType="#//XMLAttributesDeclaration" transient="true" eOpposite="#//XMLAttributesDeclaration/attributeDeclItem"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLValueFunctionElement" eSuperTypes="#//XMLValueFunction">

+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+      <details key="documentation" value="Generates an XML element with a given element name, list of XML attributes, and list of content values.  See ISO SQL/XML sec. 6.13."/>

+    </eAnnotations>

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="returningOption" eType="#//XMLReturningType"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="namespacesDecl" eType="#//XMLNamespacesDeclaration"

+        containment="true" eOpposite="#//XMLNamespacesDeclaration/valueFunctionElement"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="attributesDecl" eType="#//XMLAttributesDeclaration"

+        containment="true" eOpposite="#//XMLAttributesDeclaration/valueFunctionElement"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="elementContentList" eType="#//XMLValueFunctionElementContentList"

+        containment="true" eOpposite="#//XMLValueFunctionElementContentList/valueFunctionElement"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLNamespaceDeclarationItem" eSuperTypes="../../org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore#//SQLQueryObject">

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="uri" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="namespacesDecl" lowerBound="1"

+        eType="#//XMLNamespacesDeclaration" transient="true" eOpposite="#//XMLNamespacesDeclaration/namespaceDecltemList"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLValueFunctionElementContentItem"

+      eSuperTypes="../../org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore#//QueryValueExpression">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueExpr" lowerBound="1"

+        eType="ecore:EClass ../../org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore#//QueryValueExpression"

+        containment="true"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="elementContentList" lowerBound="1"

+        eType="#//XMLValueFunctionElementContentList" transient="true" eOpposite="#//XMLValueFunctionElementContentList/elementContentListChildren"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLValueFunctionForest" eSuperTypes="#//XMLValueFunction">

+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+      <details key="documentation" value="Generates an XML value containing a sequence of XML elements.  See ISO SQL/XML sec. 6.14."/>

+    </eAnnotations>

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="nullHandlingOption" eType="#//XMLNullHandlingType"/>

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="returningOption" eType="#//XMLReturningType"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="forestContentList" upperBound="-1"

+        eType="#//XMLValueFunctionForestContentItem" containment="true" eOpposite="#//XMLValueFunctionForestContentItem/valueFunctionForest"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="namespacesDecl" eType="#//XMLNamespacesDeclaration"

+        containment="true" eOpposite="#//XMLNamespacesDeclaration/valueFunctionForest"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLValueFunctionComment" eSuperTypes="#//XMLValueFunction">

+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+      <details key="documentation" value="Generates an XML comment value from a string expression.  See ISO SQL/XML sec. 6.10."/>

+    </eAnnotations>

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="returningOption" eType="#//XMLReturningType"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="commentContent" lowerBound="1"

+        eType="#//XMLValueFunctionCommentContent" containment="true" eOpposite="#//XMLValueFunctionCommentContent/valueFunctionComment"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLValueFunctionDocument" eSuperTypes="#//XMLValueFunction">

+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+      <details key="documentation" value="Generates an XML document node from an XML value expression.  See ISO SQL/XML sec. 6.12."/>

+    </eAnnotations>

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="returningOption" eType="#//XMLReturningType"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="documentContent" lowerBound="1"

+        eType="#//XMLValueFunctionDocumentContent" containment="true" eOpposite="#//XMLValueFunctionDocumentContent/valueFunctionDocument"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLValueFunctionParse" eSuperTypes="#//XMLValueFunction">

+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+      <details key="documentation" value="Generates an XML value by performing a non-validating parse of a given string expression.  See ISO SQL/XML sec. 6.15."/>

+    </eAnnotations>

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="contentOption" eType="#//XMLContentType"/>

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="whitespaceHandlingOption"

+        eType="#//XMLWhitespaceHandlingType"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="parseContent" lowerBound="1"

+        eType="#//XMLValueFunctionParseContent" containment="true" eOpposite="#//XMLValueFunctionParseContent/valueFunctionParse"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLValueFunctionPI" eSuperTypes="#//XMLValueFunction">

+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+      <details key="documentation" value="Generates an XML value consisting of an XML processing instruction based on the given string expression.  See ISO SQL/XML sec. 6.16."/>

+    </eAnnotations>

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="targetName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="returningOption" eType="#//XMLReturningType"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="PIContent" eType="#//XMLValueFunctionPIContent"

+        containment="true" eOpposite="#//XMLValueFunctionPIContent/valueFunctionPI"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLValueFunctionQuery" eSuperTypes="#//XMLValueFunction">

+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+      <details key="documentation" value="Generates an XML value as the result of evaluating a given XQuery expression.  See ISO SQL/XML sec. 6.17."/>

+    </eAnnotations>

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="emptyHandlingOption" eType="#//XMLEmptyHandlingType"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="xqueryExpr" lowerBound="1"

+        eType="#//XMLQueryExpression" containment="true" eOpposite="#//XMLQueryExpression/valueFunctionQuery"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="xqueryArgList" eType="#//XMLQueryArgumentList"

+        containment="true" eOpposite="#//XMLQueryArgumentList/valueFunctionQuery"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="queryReturning" eType="#//XMLValueFunctionQueryReturning"

+        containment="true" eOpposite="#//XMLValueFunctionQueryReturning/valueFunctionQuery"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLValueFunctionText" eSuperTypes="#//XMLValueFunction">

+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+      <details key="documentation" value="Generates an XML value consisting of a XML text element from a given string expression.  See ISO SQL/XML sec. 6.18."/>

+    </eAnnotations>

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="returningOption" eType="#//XMLReturningType"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="textContent" lowerBound="1"

+        eType="#//XMLValueFunctionTextContent" containment="true" eOpposite="#//XMLValueFunctionTextContent/valueFunctionText"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLValueFunctionValidate" eSuperTypes="#//XMLValueFunction">

+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+      <details key="documentation" value="Generates an XML value by performing a parse of an XML  expression according to a given XML schema.  See ISO SQL/XML sec. 6.19."/>

+    </eAnnotations>

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="contentOption" eType="#//XMLContentType2"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="validateContent" lowerBound="1"

+        eType="#//XMLValueFunctionValidateContent" containment="true" eOpposite="#//XMLValueFunctionValidateContent/valueFunctionValidate"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="validateAccordingTo" eType="#//XMLValueFunctionValidateAccordingTo"

+        containment="true" eOpposite="#//XMLValueFunctionValidateAccordingTo/valueFunctionValidate"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLValueExpressionCast" eSuperTypes="../../org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore#//ValueExpressionCast">

+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+      <details key="documentation" value="Specifies a data conversion whose source or target is a value expressoin with an XML datatype.  See ISO SQL/XML sec. 6.5.  The &lt;XML cast operand>is handled by the valueExpr relationship of the ValueExpressionCast.  &lt;XML target operand> (which is a datatype) is handled by the datatype attribute of QueryValueeExpression.  The &lt;null specification> is  handled by the ValueExpressionNullValue subtype of QueryValueExpression.&#xD;&#xA;"/>

+    </eAnnotations>

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="passingMechanism" eType="#//XMLPassingType"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EEnum" name="XMLPassingType">

+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+      <details key="documentation" value="Represents the possible values for the XML passing mechanism clause.  A value of NONE indicates that the passing mechanism clause should be omitted."/>

+    </eAnnotations>

+    <eLiterals name="BY_REF"/>

+    <eLiterals name="BY_VALUE" value="1"/>

+    <eLiterals name="NONE" value="2"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLPredicate" abstract="true" eSuperTypes="../../org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore#//Predicate">

+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+      <details key="documentation" value="An XMLPredicate specifies a condition involving an XML value expression that can be evaluated to return true or false.  See ISO SQL/XML sec. 8.1.&#xD;&#xA;"/>

+    </eAnnotations>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLPredicateContent" eSuperTypes="#//XMLPredicate">

+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+      <details key="documentation" value="Tests whether or not a given XML value represents an XML document.  See ISO SQL/XML sec. 8.2.&#xD;&#xA;&#xD;&#xA;Note:  the elaboration of this element is TBD"/>

+    </eAnnotations>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLPredicateDocument" eSuperTypes="#//XMLPredicate">

+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+      <details key="documentation" value="Tests whether or not a given XML value represents an XML document which contains exactly one XML element, zero or more XML comments, and zero or more XML processing instructions.  See ISO SQL/XML sec. 8.3.&#xD;&#xA;&#xD;&#xA;Note: the elaboration of this element is TBD."/>

+    </eAnnotations>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLPredicateExists" eSuperTypes="#//XMLPredicate">

+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+      <details key="documentation" value="Tests whether or not a given XQuery expression represents an non-empty sequence.  See ISO SQL/XML sec. 8.4."/>

+    </eAnnotations>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="xqueryExpr" lowerBound="1"

+        eType="#//XMLQueryExpression" containment="true" eOpposite="#//XMLQueryExpression/predicateExists"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="xqueryArgList" eType="#//XMLQueryArgumentList"

+        containment="true" eOpposite="#//XMLQueryArgumentList/predicateExists"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLPredicateValid" eSuperTypes="#//XMLPredicate">

+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+      <details key="documentation" value="Tests whether or not a given XML value is valid according to a registered XML schema.  See ISO SQL/XML sec. 8.5.&#xD;&#xA;&#xD;&#xA;Note: the elaboration of this element is TBD."/>

+    </eAnnotations>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLQueryExpression" eSuperTypes="../../org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore#//SQLQueryObject">

+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+      <details key="documentation" value="Represents an XQuery expression.  The content of this element is a literal string which specifies an XML Query.  See ISO SQL/XML sec. 6.17."/>

+    </eAnnotations>

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="xqueryExprContent" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="predicateExists" lowerBound="1"

+        eType="#//XMLPredicateExists" transient="true" eOpposite="#//XMLPredicateExists/xqueryExpr"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueFunctionQuery" lowerBound="1"

+        eType="#//XMLValueFunctionQuery" transient="true" eOpposite="#//XMLValueFunctionQuery/xqueryExpr"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLQueryArgumentList" eSuperTypes="../../org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore#//SQLQueryObject">

+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+      <details key="documentation" value="Represents an XML Query argument list.  See ISO SQL/XML sec. 6.17.  &lt;note>The list is modelled as an explicit object rather than just as a list of XMLQueryArgument objects attached to the parent so that the list as whole can have an optional passing mechanism clause.&lt;/note>"/>

+    </eAnnotations>

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="passingMechanism" eType="#//XMLPassingType"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="predicateExists" lowerBound="1"

+        eType="#//XMLPredicateExists" transient="true" eOpposite="#//XMLPredicateExists/xqueryArgList"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="xqueryArgListChildren"

+        lowerBound="1" upperBound="-1" eType="#//XMLQueryArgumentItem" containment="true"

+        eOpposite="#//XMLQueryArgumentItem/xqueryArgList"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueFunctionQuery" lowerBound="1"

+        eType="#//XMLValueFunctionQuery" transient="true" eOpposite="#//XMLValueFunctionQuery/xqueryArgList"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="tableFunction" lowerBound="1"

+        eType="#//XMLTableFunction" transient="true" eOpposite="#//XMLTableFunction/xqueryArgList"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLQueryArgumentItem" eSuperTypes="../../org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore#//QueryValueExpression">

+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+      <details key="documentation" value="Represents a single XML Query Argument within an XML Query Argument list.  The name attribute, if used, indicates that  this argument is an XML Query variable.  The attached value expression must resolve to an XML datatype.  See ISO SQL/XML sec. 6.17."/>

+    </eAnnotations>

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="passingMechanism" eType="#//XMLPassingType"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="xqueryArgList" lowerBound="1"

+        eType="#//XMLQueryArgumentList" transient="true" eOpposite="#//XMLQueryArgumentList/xqueryArgListChildren"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueExpr" lowerBound="1"

+        eType="ecore:EClass ../../org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore#//QueryValueExpression"

+        containment="true"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLSerializeFunction" eSuperTypes="../../org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore#//ValueExpressionFunction">

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="contentOption" eType="#//XMLContentType"/>

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="serializeVersion" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="declarationOption" eType="#//XMLDeclarationType"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="serializeTarget" lowerBound="1"

+        eType="#//XMLSerializeFunctionTarget" containment="true" eOpposite="#//XMLSerializeFunctionTarget/serializeFunction"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="serializeEncoding" eType="#//XMLSerializeFunctionEncoding"

+        containment="true"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EEnum" name="XMLContentType">

+    <eLiterals name="CONTENT"/>

+    <eLiterals name="DOCUMENT" value="1"/>

+    <eLiterals name="NONE" value="2"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLSerializeFunctionTarget" eSuperTypes="../../org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore#//QueryValueExpression">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="serializeFunction" lowerBound="1"

+        eType="#//XMLSerializeFunction" transient="true" eOpposite="#//XMLSerializeFunction/serializeTarget"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueExpr" lowerBound="1"

+        eType="ecore:EClass ../../org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore#//QueryValueExpression"

+        containment="true"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EEnum" name="XMLDeclarationType">

+    <eLiterals name="EXCLUDING_XMLDECLARATION"/>

+    <eLiterals name="INCLUDING_XMLDECLARATION" value="1"/>

+    <eLiterals name="NONE" value="2"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLAggregateFunction" eSuperTypes="../../org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore#//ValueExpressionFunction">

+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+      <details key="documentation" value="Specifies a value computed from a collection of rows.  See ISO SQL/XML sec. 11.2.  The &lt;XML value expression> clause is handled by the parameterList relationship in ValueExpressionFunction, but is restricted to a single element in this case."/>

+    </eAnnotations>

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="returningOption" eType="#//XMLReturningType"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="sortSpecList" upperBound="-1"

+        eType="#//XMLAggregateSortSpecification" containment="true" eOpposite="#//XMLAggregateSortSpecification/aggregateFunction"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EEnum" name="XMLReturningType">

+    <eLiterals name="RETURNING_CONTENT"/>

+    <eLiterals name="RETURNING_SEQUENCE" value="1"/>

+    <eLiterals name="NONE" value="2"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLValueFunctionConcatContentItem" eSuperTypes="../../org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore#//QueryValueExpression">

+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+      <details key="documentation" value="Represents an XML value expression within an XMLCONCAT function.  See ISO SQL/XML sec. 6.11.  Contains a value expression which must resolve to an XML datatype.&#xD;&#xA;"/>

+    </eAnnotations>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueFunctionConcat" lowerBound="1"

+        eType="#//XMLValueFunctionConcat" transient="true" eOpposite="#//XMLValueFunctionConcat/concatContentList"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueExpr" lowerBound="1"

+        eType="ecore:EClass ../../org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore#//QueryValueExpression"

+        containment="true"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLValueFunctionCommentContent" eSuperTypes="../../org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore#//QueryValueExpression">

+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+      <details key="documentation" value="Represents the &lt;string value expression> within an &lt;XML comment> function.  See ISO SQL/XML sec. 6.10.  Contains a value expression which must resolve to an string datatype."/>

+    </eAnnotations>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueFunctionComment" lowerBound="1"

+        eType="#//XMLValueFunctionComment" transient="true" eOpposite="#//XMLValueFunctionComment/commentContent"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueExpr" lowerBound="1"

+        eType="ecore:EClass ../../org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore#//QueryValueExpression"

+        containment="true"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLValueFunctionDocumentContent" eSuperTypes="../../org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore#//QueryValueExpression">

+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+      <details key="documentation" value="Represents an &lt;XML value expression> within an &lt;XML document> function.  See ISO SQL/XML sec. 6.12.  The value expression contained by this element must resolve to an XML datatype.&#xD;&#xA;"/>

+    </eAnnotations>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueFunctionDocument"

+        lowerBound="1" eType="#//XMLValueFunctionDocument" transient="true" eOpposite="#//XMLValueFunctionDocument/documentContent"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueExpr" lowerBound="1"

+        eType="ecore:EClass ../../org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore#//QueryValueExpression"

+        containment="true"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLAggregateSortSpecification" eSuperTypes="../../org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore#//SQLQueryObject">

+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+      <details key="documentation" value="Specifies an ordering within the values returned by the aggregation function.  See ISO SQL/XML sec. 11.2."/>

+    </eAnnotations>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="aggregateFunction" lowerBound="1"

+        eType="#//XMLAggregateFunction" transient="true" eOpposite="#//XMLAggregateFunction/sortSpecList"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="orderBySpec" lowerBound="1"

+        eType="ecore:EClass ../../org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore#//OrderBySpecification"

+        containment="true"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EEnum" name="XMLNullHandlingType">

+    <eLiterals name="ABSENT_ON_NULL"/>

+    <eLiterals name="EMPTY_ON_NULL" value="1"/>

+    <eLiterals name="NIL_ON_NO_CONTENT" value="2"/>

+    <eLiterals name="NIL_ON_NULL" value="3"/>

+    <eLiterals name="NULL_ON_NULL" value="4"/>

+    <eLiterals name="NONE" value="5"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLValueFunctionForestContentItem" eSuperTypes="../../org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore#//QueryValueExpression">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueFunctionForest" lowerBound="1"

+        eType="#//XMLValueFunctionForest" transient="true" eOpposite="#//XMLValueFunctionForest/forestContentList"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueExpr" lowerBound="1"

+        eType="ecore:EClass ../../org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore#//QueryValueExpression"

+        containment="true"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLValueFunctionParseContent" eSuperTypes="../../org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore#//QueryValueExpression">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueFunctionParse" lowerBound="1"

+        eType="#//XMLValueFunctionParse" transient="true" eOpposite="#//XMLValueFunctionParse/parseContent"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueExpr" lowerBound="1"

+        eType="ecore:EClass ../../org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore#//QueryValueExpression"

+        containment="true"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EEnum" name="XMLWhitespaceHandlingType">

+    <eLiterals name="PRESERE_WHITESPACE"/>

+    <eLiterals name="STRIP_WHITESPACE" value="1"/>

+    <eLiterals name="NONE" value="2"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLValueFunctionPIContent" eSuperTypes="../../org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore#//QueryValueExpression">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueFunctionPI" lowerBound="1"

+        eType="#//XMLValueFunctionPI" transient="true" eOpposite="#//XMLValueFunctionPI/PIContent"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueExpr" lowerBound="1"

+        eType="ecore:EClass ../../org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore#//QueryValueExpression"

+        containment="true"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EEnum" name="XMLEmptyHandlingType">

+    <eLiterals name="EMPTY_ON_EMPTY"/>

+    <eLiterals name="NULL_ON_EMPTY" value="1"/>

+    <eLiterals name="NONE" value="2"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLTableFunction" eSuperTypes="../../org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore#//TableFunction">

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="tableRowPattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="xqueryArgList" eType="#//XMLQueryArgumentList"

+        containment="true" eOpposite="#//XMLQueryArgumentList/tableFunction"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="columnDefList" lowerBound="1"

+        upperBound="-1" eType="#//XMLTableColumnDefinitionItem" containment="true"

+        eOpposite="#//XMLTableColumnDefinitionItem/tableFunction"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="namespacesDecl" eType="#//XMLNamespacesDeclaration"

+        containment="true" eOpposite="#//XMLNamespacesDeclaration/tableFunction"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLValueFunctionTextContent" eSuperTypes="../../org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore#//QueryValueExpression">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueFunctionText" lowerBound="1"

+        eType="#//XMLValueFunctionText" transient="true" eOpposite="#//XMLValueFunctionText/textContent"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueExpr" lowerBound="1"

+        eType="ecore:EClass ../../org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore#//QueryValueExpression"

+        containment="true"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLValueFunctionValidateContent" eSuperTypes="../../org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore#//QueryValueExpression">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueFunctionValidate"

+        lowerBound="1" eType="#//XMLValueFunctionValidate" transient="true" eOpposite="#//XMLValueFunctionValidate/validateContent"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueExpr" lowerBound="1"

+        eType="ecore:EClass ../../org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore#//QueryValueExpression"

+        containment="true"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EEnum" name="XMLContentType2">

+    <eLiterals name="CONTENT"/>

+    <eLiterals name="DOCUMENT" value="1"/>

+    <eLiterals name="SEQUENCE" value="2"/>

+    <eLiterals name="NONE" value="3"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLTableColumnDefinitionItem" eSuperTypes="../../org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore#//SQLQueryObject">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="tableFunction" lowerBound="1"

+        eType="#//XMLTableFunction" transient="true" eOpposite="#//XMLTableFunction/columnDefList"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLTableColumnDefinitionRegular" eSuperTypes="#//XMLTableColumnDefinitionItem">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="dataType" eType="ecore:EClass ../../org.eclipse.datatools.modelbase.sql/model/sqlmodel.ecore#//datatypes/DataType"

+        containment="true" resolveProxies="false"/>

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="passingOption" eType="#//XMLPassingType"/>

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="tableColumnPattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="columnDefinitionDefault"

+        eType="#//XMLTableColumnDefinitionDefault" containment="true" eOpposite="#//XMLTableColumnDefinitionDefault/columnDefinitionRegular"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLTableColumnDefinitionOrdinality"

+      eSuperTypes="#//XMLTableColumnDefinitionItem"/>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLValueFunctionValidateAccordingTo"

+      eSuperTypes="../../org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore#//SQLQueryObject">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueFunctionValidate"

+        lowerBound="1" eType="#//XMLValueFunctionValidate" transient="true" eOpposite="#//XMLValueFunctionValidate/validateAccordingTo"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="validateElement" eType="#//XMLValueFunctionValidateElement"

+        containment="true" eOpposite="#//XMLValueFunctionValidateElement/validateAccordingTo"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLValueFunctionValidateAccordingToURI"

+      eSuperTypes="#//XMLValueFunctionValidateAccordingTo">

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="noNamespace" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"

+        defaultValueLiteral="false"/>

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="targetNamespaceURI" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="schemaLocationURI" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLValueFunctionValidateAccordingToIdentifier"

+      eSuperTypes="#//XMLValueFunctionValidateAccordingTo">

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="schemaName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="registeredXMLSchemaName"

+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLValueFunctionValidateElementName"

+      eSuperTypes="../../org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore#//SQLQueryObject">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="validateElement" lowerBound="1"

+        eType="#//XMLValueFunctionValidateElement" transient="true" eOpposite="#//XMLValueFunctionValidateElement/validateElementName"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLValueFunctionValidateElementNamespace"

+      eSuperTypes="../../org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore#//SQLQueryObject">

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="noNamespace" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"

+        defaultValueLiteral="false"/>

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="namespaceURI" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="validateElement" lowerBound="1"

+        eType="#//XMLValueFunctionValidateElement" transient="true" eOpposite="#//XMLValueFunctionValidateElement/validateElementNamespace"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLNamespacesDeclaration" eSuperTypes="../../org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore#//SQLQueryObject">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="namespaceDecltemList" lowerBound="1"

+        upperBound="-1" eType="#//XMLNamespaceDeclarationItem" containment="true"

+        eOpposite="#//XMLNamespaceDeclarationItem/namespacesDecl"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueFunctionElement" lowerBound="1"

+        eType="#//XMLValueFunctionElement" transient="true" eOpposite="#//XMLValueFunctionElement/namespacesDecl"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueFunctionForest" lowerBound="1"

+        eType="#//XMLValueFunctionForest" transient="true" eOpposite="#//XMLValueFunctionForest/namespacesDecl"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="tableFunction" lowerBound="1"

+        eType="#//XMLTableFunction" transient="true" eOpposite="#//XMLTableFunction/namespacesDecl"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLAttributesDeclaration">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueFunctionElement" lowerBound="1"

+        eType="#//XMLValueFunctionElement" transient="true" eOpposite="#//XMLValueFunctionElement/attributesDecl"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="attributeDeclItem" lowerBound="1"

+        upperBound="-1" eType="#//XMLAttributeDeclarationItem" containment="true"

+        eOpposite="#//XMLAttributeDeclarationItem/attributesDecl"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLValueFunctionElementContentList"

+      eSuperTypes="../../org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore#//SQLQueryObject">

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="nullHandlingOption" eType="#//XMLNullHandlingType"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueFunctionElement" lowerBound="1"

+        eType="#//XMLValueFunctionElement" transient="true" eOpposite="#//XMLValueFunctionElement/elementContentList"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="elementContentListChildren"

+        upperBound="-1" eType="#//XMLValueFunctionElementContentItem" containment="true"

+        eOpposite="#//XMLValueFunctionElementContentItem/elementContentList"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLValueFunctionQueryReturning" eSuperTypes="../../org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore#//SQLQueryObject">

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="returningOption" eType="#//XMLReturningType"/>

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="passingOption" eType="#//XMLPassingType"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueFunctionQuery" lowerBound="1"

+        eType="#//XMLValueFunctionQuery" transient="true" eOpposite="#//XMLValueFunctionQuery/queryReturning"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLValueFunctionValidateElement" eSuperTypes="../../org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore#//SQLQueryObject">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="validateElementNamespace"

+        eType="#//XMLValueFunctionValidateElementNamespace" containment="true" eOpposite="#//XMLValueFunctionValidateElementNamespace/validateElement"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="validateElementName" eType="#//XMLValueFunctionValidateElementName"

+        containment="true" eOpposite="#//XMLValueFunctionValidateElementName/validateElement"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="validateAccordingTo" lowerBound="1"

+        eType="#//XMLValueFunctionValidateAccordingTo" transient="true" eOpposite="#//XMLValueFunctionValidateAccordingTo/validateElement"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLTableColumnDefinitionDefault" eSuperTypes="../../org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore#//QueryValueExpression">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="valueExpr" lowerBound="1"

+        eType="ecore:EClass ../../org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore#//QueryValueExpression"

+        containment="true"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="columnDefinitionRegular"

+        lowerBound="1" eType="#//XMLTableColumnDefinitionRegular" transient="true"

+        eOpposite="#//XMLTableColumnDefinitionRegular/columnDefinitionDefault"/>

+  </eClassifiers>

+  <eClassifiers xsi:type="ecore:EClass" name="XMLSerializeFunctionEncoding" eSuperTypes="../../org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.ecore#//SQLQueryObject">

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="encodingName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+  </eClassifiers>

+</ecore:EPackage>

diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/model/SQLXMLQueryModel.genmodel b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/model/SQLXMLQueryModel.genmodel
new file mode 100644
index 0000000..cc5c0b4
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/model/SQLXMLQueryModel.genmodel
@@ -0,0 +1,277 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<genmodel:GenModel xmi:version="2.0"

+    xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"

+    xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.datatools.modelbase.sql.xml.query/src"

+    creationCommands="false" editDirectory="/org.eclipse.datatools.modelbase.sql.xml.query.edit/src"

+    editorDirectory="/org.eclipse.datatools.modelbase.sql.xml.query.editor/src" modelPluginID="org.eclipse.datatools.modelbase.sql.xml.query"

+    runtimeJar="true" modelName="SQLXMLQueryModel" editPluginClass="com.ibm.db.models.sql.xml.query.provider.SQLXMLQueryModelEditPlugin"

+    editorPluginClass="org.eclipse.datatools.modelbase.sql.xml.query.presentation.SQLXMLQueryModelEditorPlugin"

+    importerID="org.eclipse.emf.importer.rose" usedGenPackages="../../org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore ../../org.eclipse.datatools.modelbase.sql.query/model/SQLQueryModel.genmodel#//query ../../org.eclipse.datatools.modelbase.sql/model/sqlmodel.genmodel#//sqlmodel">

+  <foreignModel>SQLXMLQueryModel.mdl</foreignModel>

+  <foreignModel>CDM_EXTRACT_PATH</foreignModel>

+  <foreignModel>../..</foreignModel>

+  <genPackages prefix="SQLXMLQueryModel" basePackage="org.eclipse.datatools.modelbase.sql.xml"

+      disposableProviderFactory="true" ecorePackage="SQLXMLQueryModel.ecore#/">

+    <genEnums ecoreEnum="SQLXMLQueryModel.ecore#//XMLPassingType">

+      <genEnumLiterals ecoreEnumLiteral="SQLXMLQueryModel.ecore#//XMLPassingType/BY_REF"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLXMLQueryModel.ecore#//XMLPassingType/BY_VALUE"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLXMLQueryModel.ecore#//XMLPassingType/NONE"/>

+    </genEnums>

+    <genEnums ecoreEnum="SQLXMLQueryModel.ecore#//XMLContentType">

+      <genEnumLiterals ecoreEnumLiteral="SQLXMLQueryModel.ecore#//XMLContentType/CONTENT"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLXMLQueryModel.ecore#//XMLContentType/DOCUMENT"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLXMLQueryModel.ecore#//XMLContentType/NONE"/>

+    </genEnums>

+    <genEnums ecoreEnum="SQLXMLQueryModel.ecore#//XMLDeclarationType">

+      <genEnumLiterals ecoreEnumLiteral="SQLXMLQueryModel.ecore#//XMLDeclarationType/EXCLUDING_XMLDECLARATION"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLXMLQueryModel.ecore#//XMLDeclarationType/INCLUDING_XMLDECLARATION"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLXMLQueryModel.ecore#//XMLDeclarationType/NONE"/>

+    </genEnums>

+    <genEnums ecoreEnum="SQLXMLQueryModel.ecore#//XMLReturningType">

+      <genEnumLiterals ecoreEnumLiteral="SQLXMLQueryModel.ecore#//XMLReturningType/RETURNING_CONTENT"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLXMLQueryModel.ecore#//XMLReturningType/RETURNING_SEQUENCE"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLXMLQueryModel.ecore#//XMLReturningType/NONE"/>

+    </genEnums>

+    <genEnums ecoreEnum="SQLXMLQueryModel.ecore#//XMLNullHandlingType">

+      <genEnumLiterals ecoreEnumLiteral="SQLXMLQueryModel.ecore#//XMLNullHandlingType/ABSENT_ON_NULL"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLXMLQueryModel.ecore#//XMLNullHandlingType/EMPTY_ON_NULL"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLXMLQueryModel.ecore#//XMLNullHandlingType/NIL_ON_NO_CONTENT"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLXMLQueryModel.ecore#//XMLNullHandlingType/NIL_ON_NULL"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLXMLQueryModel.ecore#//XMLNullHandlingType/NULL_ON_NULL"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLXMLQueryModel.ecore#//XMLNullHandlingType/NONE"/>

+    </genEnums>

+    <genEnums ecoreEnum="SQLXMLQueryModel.ecore#//XMLWhitespaceHandlingType">

+      <genEnumLiterals ecoreEnumLiteral="SQLXMLQueryModel.ecore#//XMLWhitespaceHandlingType/PRESERE_WHITESPACE"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLXMLQueryModel.ecore#//XMLWhitespaceHandlingType/STRIP_WHITESPACE"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLXMLQueryModel.ecore#//XMLWhitespaceHandlingType/NONE"/>

+    </genEnums>

+    <genEnums ecoreEnum="SQLXMLQueryModel.ecore#//XMLEmptyHandlingType">

+      <genEnumLiterals ecoreEnumLiteral="SQLXMLQueryModel.ecore#//XMLEmptyHandlingType/EMPTY_ON_EMPTY"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLXMLQueryModel.ecore#//XMLEmptyHandlingType/NULL_ON_EMPTY"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLXMLQueryModel.ecore#//XMLEmptyHandlingType/NONE"/>

+    </genEnums>

+    <genEnums ecoreEnum="SQLXMLQueryModel.ecore#//XMLContentType2">

+      <genEnumLiterals ecoreEnumLiteral="SQLXMLQueryModel.ecore#//XMLContentType2/CONTENT"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLXMLQueryModel.ecore#//XMLContentType2/DOCUMENT"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLXMLQueryModel.ecore#//XMLContentType2/SEQUENCE"/>

+      <genEnumLiterals ecoreEnumLiteral="SQLXMLQueryModel.ecore#//XMLContentType2/NONE"/>

+    </genEnums>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLValueFunctionConcat">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLXMLQueryModel.ecore#//XMLValueFunctionConcat/returningOption"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLValueFunctionConcat/concatContentList"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLXMLQueryModel.ecore#//XMLValueFunction"/>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLNamespaceDeclarationPrefix">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLXMLQueryModel.ecore#//XMLNamespaceDeclarationPrefix/prefix"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLNamespaceDeclarationDefault">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLXMLQueryModel.ecore#//XMLNamespaceDeclarationDefault/noDefault"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLAttributeDeclarationItem">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLAttributeDeclarationItem/valueExpr"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLAttributeDeclarationItem/attributesDecl"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLValueFunctionElement">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLXMLQueryModel.ecore#//XMLValueFunctionElement/elementName"/>

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLXMLQueryModel.ecore#//XMLValueFunctionElement/returningOption"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLValueFunctionElement/namespacesDecl"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLValueFunctionElement/attributesDecl"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLValueFunctionElement/elementContentList"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLNamespaceDeclarationItem">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLXMLQueryModel.ecore#//XMLNamespaceDeclarationItem/uri"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLNamespaceDeclarationItem/namespacesDecl"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLValueFunctionElementContentItem">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLValueFunctionElementContentItem/valueExpr"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLValueFunctionElementContentItem/elementContentList"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLValueFunctionForest">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLXMLQueryModel.ecore#//XMLValueFunctionForest/nullHandlingOption"/>

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLXMLQueryModel.ecore#//XMLValueFunctionForest/returningOption"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLValueFunctionForest/forestContentList"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLValueFunctionForest/namespacesDecl"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLValueFunctionComment">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLXMLQueryModel.ecore#//XMLValueFunctionComment/returningOption"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLValueFunctionComment/commentContent"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLValueFunctionDocument">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLXMLQueryModel.ecore#//XMLValueFunctionDocument/returningOption"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLValueFunctionDocument/documentContent"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLValueFunctionParse">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLXMLQueryModel.ecore#//XMLValueFunctionParse/contentOption"/>

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLXMLQueryModel.ecore#//XMLValueFunctionParse/whitespaceHandlingOption"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLValueFunctionParse/parseContent"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLValueFunctionPI">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLXMLQueryModel.ecore#//XMLValueFunctionPI/targetName"/>

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLXMLQueryModel.ecore#//XMLValueFunctionPI/returningOption"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLValueFunctionPI/PIContent"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLValueFunctionQuery">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLXMLQueryModel.ecore#//XMLValueFunctionQuery/emptyHandlingOption"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLValueFunctionQuery/xqueryExpr"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLValueFunctionQuery/xqueryArgList"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLValueFunctionQuery/queryReturning"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLValueFunctionText">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLXMLQueryModel.ecore#//XMLValueFunctionText/returningOption"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLValueFunctionText/textContent"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLValueFunctionValidate">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLXMLQueryModel.ecore#//XMLValueFunctionValidate/contentOption"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLValueFunctionValidate/validateContent"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLValueFunctionValidate/validateAccordingTo"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLValueExpressionCast">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLXMLQueryModel.ecore#//XMLValueExpressionCast/passingMechanism"/>

+    </genClasses>

+    <genClasses image="false" ecoreClass="SQLXMLQueryModel.ecore#//XMLPredicate"/>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLPredicateContent"/>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLPredicateDocument"/>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLPredicateExists">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLPredicateExists/xqueryExpr"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLPredicateExists/xqueryArgList"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLPredicateValid"/>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLQueryExpression">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLXMLQueryModel.ecore#//XMLQueryExpression/xqueryExprContent"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLQueryExpression/predicateExists"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLQueryExpression/valueFunctionQuery"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLQueryArgumentList">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLXMLQueryModel.ecore#//XMLQueryArgumentList/passingMechanism"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLQueryArgumentList/predicateExists"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLQueryArgumentList/xqueryArgListChildren"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLQueryArgumentList/valueFunctionQuery"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLQueryArgumentList/tableFunction"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLQueryArgumentItem">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLXMLQueryModel.ecore#//XMLQueryArgumentItem/passingMechanism"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLQueryArgumentItem/xqueryArgList"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLQueryArgumentItem/valueExpr"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLSerializeFunction">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLXMLQueryModel.ecore#//XMLSerializeFunction/contentOption"/>

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLXMLQueryModel.ecore#//XMLSerializeFunction/serializeVersion"/>

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLXMLQueryModel.ecore#//XMLSerializeFunction/declarationOption"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLSerializeFunction/serializeTarget"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLSerializeFunction/serializeEncoding"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLSerializeFunctionTarget">

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLSerializeFunctionTarget/serializeFunction"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLSerializeFunctionTarget/valueExpr"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLAggregateFunction">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLXMLQueryModel.ecore#//XMLAggregateFunction/returningOption"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLAggregateFunction/sortSpecList"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLValueFunctionConcatContentItem">

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLValueFunctionConcatContentItem/valueFunctionConcat"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLValueFunctionConcatContentItem/valueExpr"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLValueFunctionCommentContent">

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLValueFunctionCommentContent/valueFunctionComment"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLValueFunctionCommentContent/valueExpr"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLValueFunctionDocumentContent">

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLValueFunctionDocumentContent/valueFunctionDocument"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLValueFunctionDocumentContent/valueExpr"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLAggregateSortSpecification">

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLAggregateSortSpecification/aggregateFunction"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLAggregateSortSpecification/orderBySpec"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLValueFunctionForestContentItem">

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLValueFunctionForestContentItem/valueFunctionForest"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLValueFunctionForestContentItem/valueExpr"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLValueFunctionParseContent">

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLValueFunctionParseContent/valueFunctionParse"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLValueFunctionParseContent/valueExpr"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLValueFunctionPIContent">

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLValueFunctionPIContent/valueFunctionPI"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLValueFunctionPIContent/valueExpr"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLTableFunction">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLXMLQueryModel.ecore#//XMLTableFunction/tableRowPattern"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLTableFunction/xqueryArgList"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLTableFunction/columnDefList"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLTableFunction/namespacesDecl"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLValueFunctionTextContent">

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLValueFunctionTextContent/valueFunctionText"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLValueFunctionTextContent/valueExpr"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLValueFunctionValidateContent">

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLValueFunctionValidateContent/valueFunctionValidate"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLValueFunctionValidateContent/valueExpr"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLTableColumnDefinitionItem">

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLTableColumnDefinitionItem/tableFunction"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLTableColumnDefinitionRegular">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLTableColumnDefinitionRegular/dataType"/>

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLXMLQueryModel.ecore#//XMLTableColumnDefinitionRegular/passingOption"/>

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLXMLQueryModel.ecore#//XMLTableColumnDefinitionRegular/tableColumnPattern"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLTableColumnDefinitionRegular/columnDefinitionDefault"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLTableColumnDefinitionOrdinality"/>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLValueFunctionValidateAccordingTo">

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLValueFunctionValidateAccordingTo/valueFunctionValidate"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLValueFunctionValidateAccordingTo/validateElement"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLValueFunctionValidateAccordingToURI">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLXMLQueryModel.ecore#//XMLValueFunctionValidateAccordingToURI/noNamespace"/>

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLXMLQueryModel.ecore#//XMLValueFunctionValidateAccordingToURI/targetNamespaceURI"/>

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLXMLQueryModel.ecore#//XMLValueFunctionValidateAccordingToURI/schemaLocationURI"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLValueFunctionValidateAccordingToIdentifier">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLXMLQueryModel.ecore#//XMLValueFunctionValidateAccordingToIdentifier/schemaName"/>

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLXMLQueryModel.ecore#//XMLValueFunctionValidateAccordingToIdentifier/registeredXMLSchemaName"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLValueFunctionValidateElementName">

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLValueFunctionValidateElementName/validateElement"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLValueFunctionValidateElementNamespace">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLXMLQueryModel.ecore#//XMLValueFunctionValidateElementNamespace/noNamespace"/>

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLXMLQueryModel.ecore#//XMLValueFunctionValidateElementNamespace/namespaceURI"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLValueFunctionValidateElementNamespace/validateElement"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLNamespacesDeclaration">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLNamespacesDeclaration/namespaceDecltemList"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLNamespacesDeclaration/valueFunctionElement"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLNamespacesDeclaration/valueFunctionForest"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLNamespacesDeclaration/tableFunction"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLAttributesDeclaration">

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLAttributesDeclaration/valueFunctionElement"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLAttributesDeclaration/attributeDeclItem"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLValueFunctionElementContentList">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLXMLQueryModel.ecore#//XMLValueFunctionElementContentList/nullHandlingOption"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLValueFunctionElementContentList/valueFunctionElement"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLValueFunctionElementContentList/elementContentListChildren"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLValueFunctionQueryReturning">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLXMLQueryModel.ecore#//XMLValueFunctionQueryReturning/returningOption"/>

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLXMLQueryModel.ecore#//XMLValueFunctionQueryReturning/passingOption"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLValueFunctionQueryReturning/valueFunctionQuery"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLValueFunctionValidateElement">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLValueFunctionValidateElement/validateElementNamespace"/>

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLValueFunctionValidateElement/validateElementName"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLValueFunctionValidateElement/validateAccordingTo"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLTableColumnDefinitionDefault">

+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLTableColumnDefinitionDefault/valueExpr"/>

+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SQLXMLQueryModel.ecore#//XMLTableColumnDefinitionDefault/columnDefinitionRegular"/>

+    </genClasses>

+    <genClasses ecoreClass="SQLXMLQueryModel.ecore#//XMLSerializeFunctionEncoding">

+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SQLXMLQueryModel.ecore#//XMLSerializeFunctionEncoding/encodingName"/>

+    </genClasses>

+  </genPackages>

+</genmodel:GenModel>

diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/model/SQLXMLQueryModel.mdl b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/model/SQLXMLQueryModel.mdl
new file mode 100644
index 0000000..eaf532e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/model/SQLXMLQueryModel.mdl
@@ -0,0 +1,480 @@
+

+(object Petal

+    version    	47

+    _written   	"Rose 8.0.0303.1400"

+    charSet    	0)

+

+(object Design "Logical View"

+    is_unit    	TRUE

+    is_loaded  	TRUE

+    quid       	"4314C3EA02D4"

+    defaults   	(object defaults

+	rightMargin 	0.250000

+	leftMargin 	0.250000

+	topMargin  	0.250000

+	bottomMargin 	0.500000

+	pageOverlap 	0.250000

+	clipIconLabels 	TRUE

+	autoResize 	TRUE

+	snapToGrid 	TRUE

+	gridX      	13

+	gridY      	13

+	defaultFont 	(object Font

+	    size       	12

+	    face       	"Arial"

+	    bold       	FALSE

+	    italics    	FALSE

+	    underline  	FALSE

+	    strike     	FALSE

+	    color      	0

+	    default_color 	TRUE)

+	showMessageNum 	3

+	showClassOfObject 	TRUE

+	notation   	"Unified")

+    root_usecase_package 	(object Class_Category "Use Case View"

+	quid       	"4314C3EA02D6"

+	exportControl 	"Public"

+	global     	TRUE

+	logical_models 	(list unit_reference_list)

+	logical_presentations 	(list unit_reference_list

+	    (object UseCaseDiagram "Main"

+		quid       	"4314C3EA02DF"

+		title      	"Main"

+		zoom       	100

+		max_height 	28350

+		max_width  	21600

+		origin_x   	0

+		origin_y   	0

+		items      	(list diagram_item_list))))

+    root_category 	(object Class_Category "Logical View"

+	quid       	"4314C3EA02D5"

+	exportControl 	"Public"

+	global     	TRUE

+	subsystem  	"Component View"

+	quidu      	"4314C3EA02D7"

+	logical_models 	(list unit_reference_list

+	    (object Class_Category "ecore"

+		is_unit    	TRUE

+		is_loaded  	FALSE

+		file_name  	"$ECORE_MODEL_PLUGIN_PATH\\org.eclipse.emf.ecore\\model\\org.eclipse.emf.Ecore.cat"

+		quid       	"39A5ED04004E")

+	    (object Class_Category "SQLModel"

+		is_unit    	TRUE

+		is_loaded  	FALSE

+		file_name  	"$SQL_MODEL_PLUGIN_PATH\\org.eclipse.datatools.modelbase.sql\\model\\SQLModel.cat"

+		quid       	"3E9B1F8201C1")

+	    (object Class_Category "SQLQueryModel"

+		is_unit    	TRUE

+		is_loaded  	FALSE

+		file_name  	"$SQL_MODEL_PLUGIN_PATH\\org.eclipse.datatools.modelbase.sql.query\\model\\SQLQueryModel.cat"

+		quid       	"40467E9F03A6")

+	    (object Class_Category "SQLXMLQueryModel"

+		is_unit    	TRUE

+		is_loaded  	FALSE

+		file_name  	"$SQL_MODEL_PLUGIN_PATH\\org.eclipse.datatools.modelbase.sql.xml.query\\model\\SQLXMLQueryModel.cat"

+		quid       	"4314C5120235"))

+	logical_presentations 	(list unit_reference_list

+	    (object ClassDiagram "Main"

+		quid       	"4314C3EA02DB"

+		title      	"Main"

+		zoom       	100

+		max_height 	28350

+		max_width  	21600

+		origin_x   	0

+		origin_y   	763

+		items      	(list diagram_item_list

+		    (object CategoryView "Logical View::ecore" @1

+			location   	(1001, 312)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@1

+			    location   	(857, 228)

+			    fill_color 	13434879

+			    nlines     	2

+			    max_width  	288

+			    justify    	0

+			    label      	"ecore")

+			icon_style 	"Label"

+			line_color 	3342489

+			fill_color 	13434879

+			quidu      	"39A5ED04004E"

+			width      	300

+			height     	180)

+		    (object CategoryView "Logical View::SQLModel" @2

+			location   	(1014, 650)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@2

+			    location   	(870, 566)

+			    fill_color 	13434879

+			    nlines     	2

+			    max_width  	288

+			    justify    	0

+			    label      	"SQLModel")

+			icon_style 	"Label"

+			line_color 	3342489

+			fill_color 	13434879

+			quidu      	"3E9B1F8201C1"

+			width      	300

+			height     	180)

+		    (object CategoryView "Logical View::SQLQueryModel" @3

+			location   	(1014, 1014)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@3

+			    location   	(802, 930)

+			    fill_color 	13434879

+			    nlines     	2

+			    max_width  	424

+			    justify    	0

+			    label      	"SQLQueryModel")

+			icon_style 	"Label"

+			line_color 	3342489

+			fill_color 	13434879

+			quidu      	"40467E9F03A6"

+			width      	437

+			height     	181)

+		    (object ImportView "" @4

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			stereotype 	TRUE

+			line_color 	3342489

+			quidu      	"4314C4E90143"

+			client     	@2

+			supplier   	@1

+			line_style 	0)

+		    (object ImportView "" @5

+			stereotype 	TRUE

+			line_color 	3342489

+			quidu      	"404E1CF70346"

+			client     	@3

+			supplier   	@2

+			line_style 	0)

+		    (object CategoryView "Logical View::SQLXMLQueryModel" @6

+			location   	(1014, 1365)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@6

+			    location   	(751, 1281)

+			    fill_color 	13434879

+			    nlines     	2

+			    max_width  	526

+			    justify    	0

+			    label      	"SQLXMLQueryModel")

+			icon_style 	"Label"

+			line_color 	3342489

+			fill_color 	13434879

+			quidu      	"4314C5120235"

+			width      	538

+			height     	180)

+		    (object ImportView "" @7

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			stereotype 	TRUE

+			line_color 	3342489

+			quidu      	"4314C52B01B1"

+			client     	@6

+			supplier   	@3

+			line_style 	0)))))

+    root_subsystem 	(object SubSystem "Component View"

+	quid       	"4314C3EA02D7"

+	physical_models 	(list unit_reference_list)

+	physical_presentations 	(list unit_reference_list

+	    (object Module_Diagram "Main"

+		quid       	"4314C3EA02DE"

+		title      	"Main"

+		zoom       	100

+		max_height 	28350

+		max_width  	21600

+		origin_x   	0

+		origin_y   	0

+		items      	(list diagram_item_list))))

+    process_structure 	(object Processes

+	quid       	"4314C3EA02D8"

+	ProcsNDevs 	(list

+	    (object Process_Diagram "Deployment View"

+		quid       	"4314C3EA02DA"

+		title      	"Deployment View"

+		zoom       	100

+		max_height 	28350

+		max_width  	21600

+		origin_x   	0

+		origin_y   	0

+		items      	(list diagram_item_list))))

+    properties 	(object Properties

+	attributes 	(list Attribute_Set

+	    (object Attribute

+		tool       	"Rose Web Publisher"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"Ecore"

+		name       	"propertyId"

+		value      	"809135969")

+	    (object Attribute

+		tool       	"Ecore"

+		name       	"default__Category"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"packageName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"nsPrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"nsURI"

+			value      	"")

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"basePackage"

+			value      	"")

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"prefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"annotation"

+			value      	"")))

+	    (object Attribute

+		tool       	"Ecore"

+		name       	"default__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"classifierName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"constraints"

+			value      	"")

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"xmlName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"xmlContentKind"

+			value      	("ContentKind" 0))

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"ContentKind"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ecore"

+				name       	"Unspecified"

+				value      	0)

+			    (object Attribute

+				tool       	"Ecore"

+				name       	"Empty"

+				value      	1)

+			    (object Attribute

+				tool       	"Ecore"

+				name       	"Simple"

+				value      	2)

+			    (object Attribute

+				tool       	"Ecore"

+				name       	"Mixed"

+				value      	3)

+			    (object Attribute

+				tool       	"Ecore"

+				name       	"ElementOnly"

+				value      	4)))

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"annotation"

+			value      	"")))

+	    (object Attribute

+		tool       	"Ecore"

+		name       	"default__Operation"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"operationName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"annotation"

+			value      	"")))

+	    (object Attribute

+		tool       	"Ecore"

+		name       	"default__Attribute"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"attributeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"isTransient"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"isVolatile"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"isChangeable"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"isUnsettable"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"isUnique"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"isID"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"xmlName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"xmlNamespace"

+			value      	"")

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"xmlFeatureKind"

+			value      	("FeatureKind" 0))

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"FeatureKind"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ecore"

+				name       	"Unspecified"

+				value      	0)

+			    (object Attribute

+				tool       	"Ecore"

+				name       	"Simple"

+				value      	1)

+			    (object Attribute

+				tool       	"Ecore"

+				name       	"Attribute"

+				value      	2)

+			    (object Attribute

+				tool       	"Ecore"

+				name       	"Element"

+				value      	4)))

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"annotation"

+			value      	"")))

+	    (object Attribute

+		tool       	"Ecore"

+		name       	"default__Role"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"referenceName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"isTransient"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"isVolatile"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"isChangeable"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"isUnsettable"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"isResolveProxies"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"xmlName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"xmlNamespace"

+			value      	"")

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"xmlFeatureKind"

+			value      	("FeatureKind" 0))

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"FeatureKind"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ecore"

+				name       	"Unspecified"

+				value      	0)

+			    (object Attribute

+				tool       	"Ecore"

+				name       	"Simple"

+				value      	1)

+			    (object Attribute

+				tool       	"Ecore"

+				name       	"Attribute"

+				value      	2)

+			    (object Attribute

+				tool       	"Ecore"

+				name       	"Element"

+				value      	4)))

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"annotation"

+			value      	""))))

+	quid       	"4314C3EA02D9"))

diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/plugin.properties b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/plugin.properties
new file mode 100644
index 0000000..94ec167
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/plugin.properties
@@ -0,0 +1,23 @@
+# NLS_MESSAGEFORMAT_VAR          needed to handle quotes correctly
+# ====================================================================
+
+# ====================================================================
+# $Id: plugin.properties,v 1.4 2006/05/10 14:31:45 jgraham Exp $
+# @generated NOT
+# ====================================================================
+
+# ====================================================================
+# To code developer:
+#   Do NOT change the properties between this line and the
+#   "%%% END OF TRANSLATED PROPERTIES %%%" line.
+#   Make a new property name, append to the end of the file and change
+#   the code to use the new property.
+# ====================================================================
+
+# ====================================================================
+# %%% END OF TRANSLATED PROPERTIES %%%
+# ====================================================================
+
+pluginName = Eclipse Data Tools Platform SQL XML Query Model Plugin
+nl1PluginName = SQL XML Query Model Nl1 Fragment
+providerName = Eclipse Data Tools Platform
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/plugin.xml b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/plugin.xml
new file mode 100644
index 0000000..aa0f258
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/plugin.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+<plugin>
+
+     <extension
+         point="org.eclipse.datatools.modelbase.sql.query.sourceWriterExtension">
+      <pluginJava class="org.eclipse.datatools.modelbase.sql.xml.query.util.SQLXMLQueryModelPlugin"/>
+      <sourceWriter
+            packageName="org.eclipse.datatools.modelbase.sql.xml.query"
+            class="org.eclipse.datatools.modelbase.sql.xml.query.util.SQLXMLQuerySourceWriter"
+            implPackageName="org.eclipse.datatools.modelbase.sql.xml.query.impl"/>
+   </extension>
+
+</plugin>
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/SQLXMLQueryModelFactory.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/SQLXMLQueryModelFactory.java
new file mode 100644
index 0000000..2d25780
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/SQLXMLQueryModelFactory.java
@@ -0,0 +1,496 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SQLXMLQueryModelFactory.java,v 1.2 2007/02/08 17:04:21 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage
+ * @generated
+ */
+public interface SQLXMLQueryModelFactory extends EFactory {
+	/**
+     * The singleton instance of the factory.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    SQLXMLQueryModelFactory eINSTANCE = org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelFactoryImpl.init();
+
+	/**
+     * Returns a new object of class '<em>XML Value Function Concat</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Value Function Concat</em>'.
+     * @generated
+     */
+    XMLValueFunctionConcat createXMLValueFunctionConcat();
+
+	/**
+     * Returns a new object of class '<em>XML Namespace Declaration Prefix</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Namespace Declaration Prefix</em>'.
+     * @generated
+     */
+    XMLNamespaceDeclarationPrefix createXMLNamespaceDeclarationPrefix();
+
+	/**
+     * Returns a new object of class '<em>XML Namespace Declaration Default</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Namespace Declaration Default</em>'.
+     * @generated
+     */
+    XMLNamespaceDeclarationDefault createXMLNamespaceDeclarationDefault();
+
+	/**
+     * Returns a new object of class '<em>XML Attribute Declaration Item</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Attribute Declaration Item</em>'.
+     * @generated
+     */
+    XMLAttributeDeclarationItem createXMLAttributeDeclarationItem();
+
+	/**
+     * Returns a new object of class '<em>XML Value Function Element</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Value Function Element</em>'.
+     * @generated
+     */
+    XMLValueFunctionElement createXMLValueFunctionElement();
+
+	/**
+     * Returns a new object of class '<em>XML Namespace Declaration Item</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Namespace Declaration Item</em>'.
+     * @generated
+     */
+    XMLNamespaceDeclarationItem createXMLNamespaceDeclarationItem();
+
+	/**
+     * Returns a new object of class '<em>XML Value Function Element Content Item</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Value Function Element Content Item</em>'.
+     * @generated
+     */
+    XMLValueFunctionElementContentItem createXMLValueFunctionElementContentItem();
+
+	/**
+     * Returns a new object of class '<em>XML Value Function Forest</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Value Function Forest</em>'.
+     * @generated
+     */
+    XMLValueFunctionForest createXMLValueFunctionForest();
+
+	/**
+     * Returns a new object of class '<em>XML Value Function Comment</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Value Function Comment</em>'.
+     * @generated
+     */
+    XMLValueFunctionComment createXMLValueFunctionComment();
+
+	/**
+     * Returns a new object of class '<em>XML Value Function Document</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Value Function Document</em>'.
+     * @generated
+     */
+    XMLValueFunctionDocument createXMLValueFunctionDocument();
+
+	/**
+     * Returns a new object of class '<em>XML Value Function Parse</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Value Function Parse</em>'.
+     * @generated
+     */
+    XMLValueFunctionParse createXMLValueFunctionParse();
+
+	/**
+     * Returns a new object of class '<em>XML Value Function PI</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Value Function PI</em>'.
+     * @generated
+     */
+    XMLValueFunctionPI createXMLValueFunctionPI();
+
+	/**
+     * Returns a new object of class '<em>XML Value Function Query</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Value Function Query</em>'.
+     * @generated
+     */
+    XMLValueFunctionQuery createXMLValueFunctionQuery();
+
+	/**
+     * Returns a new object of class '<em>XML Value Function Text</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Value Function Text</em>'.
+     * @generated
+     */
+    XMLValueFunctionText createXMLValueFunctionText();
+
+	/**
+     * Returns a new object of class '<em>XML Value Function Validate</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Value Function Validate</em>'.
+     * @generated
+     */
+    XMLValueFunctionValidate createXMLValueFunctionValidate();
+
+	/**
+     * Returns a new object of class '<em>XML Value Expression Cast</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Value Expression Cast</em>'.
+     * @generated
+     */
+    XMLValueExpressionCast createXMLValueExpressionCast();
+
+	/**
+     * Returns a new object of class '<em>XML Predicate Content</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Predicate Content</em>'.
+     * @generated
+     */
+    XMLPredicateContent createXMLPredicateContent();
+
+	/**
+     * Returns a new object of class '<em>XML Predicate Document</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Predicate Document</em>'.
+     * @generated
+     */
+    XMLPredicateDocument createXMLPredicateDocument();
+
+	/**
+     * Returns a new object of class '<em>XML Predicate Exists</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Predicate Exists</em>'.
+     * @generated
+     */
+    XMLPredicateExists createXMLPredicateExists();
+
+	/**
+     * Returns a new object of class '<em>XML Predicate Valid</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Predicate Valid</em>'.
+     * @generated
+     */
+    XMLPredicateValid createXMLPredicateValid();
+
+	/**
+     * Returns a new object of class '<em>XML Query Expression</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Query Expression</em>'.
+     * @generated
+     */
+    XMLQueryExpression createXMLQueryExpression();
+
+	/**
+     * Returns a new object of class '<em>XML Query Argument List</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Query Argument List</em>'.
+     * @generated
+     */
+    XMLQueryArgumentList createXMLQueryArgumentList();
+
+	/**
+     * Returns a new object of class '<em>XML Query Argument Item</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Query Argument Item</em>'.
+     * @generated
+     */
+    XMLQueryArgumentItem createXMLQueryArgumentItem();
+
+	/**
+     * Returns a new object of class '<em>XML Serialize Function</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Serialize Function</em>'.
+     * @generated
+     */
+    XMLSerializeFunction createXMLSerializeFunction();
+
+	/**
+     * Returns a new object of class '<em>XML Serialize Function Target</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Serialize Function Target</em>'.
+     * @generated
+     */
+    XMLSerializeFunctionTarget createXMLSerializeFunctionTarget();
+
+	/**
+     * Returns a new object of class '<em>XML Aggregate Function</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Aggregate Function</em>'.
+     * @generated
+     */
+    XMLAggregateFunction createXMLAggregateFunction();
+
+	/**
+     * Returns a new object of class '<em>XML Value Function Concat Content Item</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Value Function Concat Content Item</em>'.
+     * @generated
+     */
+    XMLValueFunctionConcatContentItem createXMLValueFunctionConcatContentItem();
+
+	/**
+     * Returns a new object of class '<em>XML Value Function Comment Content</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Value Function Comment Content</em>'.
+     * @generated
+     */
+    XMLValueFunctionCommentContent createXMLValueFunctionCommentContent();
+
+	/**
+     * Returns a new object of class '<em>XML Value Function Document Content</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Value Function Document Content</em>'.
+     * @generated
+     */
+    XMLValueFunctionDocumentContent createXMLValueFunctionDocumentContent();
+
+	/**
+     * Returns a new object of class '<em>XML Aggregate Sort Specification</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Aggregate Sort Specification</em>'.
+     * @generated
+     */
+    XMLAggregateSortSpecification createXMLAggregateSortSpecification();
+
+	/**
+     * Returns a new object of class '<em>XML Value Function Forest Content Item</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Value Function Forest Content Item</em>'.
+     * @generated
+     */
+    XMLValueFunctionForestContentItem createXMLValueFunctionForestContentItem();
+
+	/**
+     * Returns a new object of class '<em>XML Value Function Parse Content</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Value Function Parse Content</em>'.
+     * @generated
+     */
+    XMLValueFunctionParseContent createXMLValueFunctionParseContent();
+
+	/**
+     * Returns a new object of class '<em>XML Value Function PI Content</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Value Function PI Content</em>'.
+     * @generated
+     */
+    XMLValueFunctionPIContent createXMLValueFunctionPIContent();
+
+	/**
+     * Returns a new object of class '<em>XML Table Function</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Table Function</em>'.
+     * @generated
+     */
+    XMLTableFunction createXMLTableFunction();
+
+	/**
+     * Returns a new object of class '<em>XML Value Function Text Content</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Value Function Text Content</em>'.
+     * @generated
+     */
+    XMLValueFunctionTextContent createXMLValueFunctionTextContent();
+
+	/**
+     * Returns a new object of class '<em>XML Value Function Validate Content</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Value Function Validate Content</em>'.
+     * @generated
+     */
+    XMLValueFunctionValidateContent createXMLValueFunctionValidateContent();
+
+	/**
+     * Returns a new object of class '<em>XML Table Column Definition Item</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Table Column Definition Item</em>'.
+     * @generated
+     */
+    XMLTableColumnDefinitionItem createXMLTableColumnDefinitionItem();
+
+	/**
+     * Returns a new object of class '<em>XML Table Column Definition Regular</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Table Column Definition Regular</em>'.
+     * @generated
+     */
+    XMLTableColumnDefinitionRegular createXMLTableColumnDefinitionRegular();
+
+	/**
+     * Returns a new object of class '<em>XML Table Column Definition Ordinality</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Table Column Definition Ordinality</em>'.
+     * @generated
+     */
+    XMLTableColumnDefinitionOrdinality createXMLTableColumnDefinitionOrdinality();
+
+	/**
+     * Returns a new object of class '<em>XML Value Function Validate According To</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Value Function Validate According To</em>'.
+     * @generated
+     */
+    XMLValueFunctionValidateAccordingTo createXMLValueFunctionValidateAccordingTo();
+
+	/**
+     * Returns a new object of class '<em>XML Value Function Validate According To URI</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Value Function Validate According To URI</em>'.
+     * @generated
+     */
+    XMLValueFunctionValidateAccordingToURI createXMLValueFunctionValidateAccordingToURI();
+
+	/**
+     * Returns a new object of class '<em>XML Value Function Validate According To Identifier</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Value Function Validate According To Identifier</em>'.
+     * @generated
+     */
+    XMLValueFunctionValidateAccordingToIdentifier createXMLValueFunctionValidateAccordingToIdentifier();
+
+	/**
+     * Returns a new object of class '<em>XML Value Function Validate Element Name</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Value Function Validate Element Name</em>'.
+     * @generated
+     */
+    XMLValueFunctionValidateElementName createXMLValueFunctionValidateElementName();
+
+	/**
+     * Returns a new object of class '<em>XML Value Function Validate Element Namespace</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Value Function Validate Element Namespace</em>'.
+     * @generated
+     */
+    XMLValueFunctionValidateElementNamespace createXMLValueFunctionValidateElementNamespace();
+
+	/**
+     * Returns a new object of class '<em>XML Namespaces Declaration</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Namespaces Declaration</em>'.
+     * @generated
+     */
+    XMLNamespacesDeclaration createXMLNamespacesDeclaration();
+
+	/**
+     * Returns a new object of class '<em>XML Attributes Declaration</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Attributes Declaration</em>'.
+     * @generated
+     */
+    XMLAttributesDeclaration createXMLAttributesDeclaration();
+
+	/**
+     * Returns a new object of class '<em>XML Value Function Element Content List</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Value Function Element Content List</em>'.
+     * @generated
+     */
+    XMLValueFunctionElementContentList createXMLValueFunctionElementContentList();
+
+	/**
+     * Returns a new object of class '<em>XML Value Function Query Returning</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Value Function Query Returning</em>'.
+     * @generated
+     */
+    XMLValueFunctionQueryReturning createXMLValueFunctionQueryReturning();
+
+	/**
+     * Returns a new object of class '<em>XML Value Function Validate Element</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Value Function Validate Element</em>'.
+     * @generated
+     */
+    XMLValueFunctionValidateElement createXMLValueFunctionValidateElement();
+
+	/**
+     * Returns a new object of class '<em>XML Table Column Definition Default</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Table Column Definition Default</em>'.
+     * @generated
+     */
+    XMLTableColumnDefinitionDefault createXMLTableColumnDefinitionDefault();
+
+	/**
+     * Returns a new object of class '<em>XML Serialize Function Encoding</em>'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return a new object of class '<em>XML Serialize Function Encoding</em>'.
+     * @generated
+     */
+    XMLSerializeFunctionEncoding createXMLSerializeFunctionEncoding();
+
+	/**
+     * Returns the package supported by this factory.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the package supported by this factory.
+     * @generated
+     */
+	SQLXMLQueryModelPackage getSQLXMLQueryModelPackage();
+
+} //SQLXMLQueryFactory
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/SQLXMLQueryModelPackage.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/SQLXMLQueryModelPackage.java
new file mode 100644
index 0000000..24f2430
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/SQLXMLQueryModelPackage.java
@@ -0,0 +1,19591 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SQLXMLQueryModelPackage.java,v 1.5 2010/02/25 02:13:18 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ *   <li>each class,</li>
+ *   <li>each feature of each class,</li>
+ *   <li>each enum,</li>
+ *   <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * The documentation for this model is adapted from "Information technology -- Database languages -- SQL, Part 14: XML-Related Specifications (SQL/XML)" WG3:WLG-010preview H2-2005-xxx, FDIS ISO/IEC 9075-14:2005 (E) draft published May, 2005.
+ * 
+ * <!-- end-model-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface SQLXMLQueryModelPackage extends EPackage {
+	/**
+     * The package name.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    String eNAME = "query";
+
+	/**
+     * The package namespace URI.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    String eNS_URI = "http:///org/eclipse/datatools/modelbase/sql/xml/query/SQLXMLQueryModel.ecore";
+
+	/**
+     * The package namespace name.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    String eNS_PREFIX = "org.eclipse.datatools.modelbase.sql.xml.query";
+
+	/**
+     * The singleton instance of the package.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    SQLXMLQueryModelPackage eINSTANCE = org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl.init();
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionImpl <em>XML Value Function</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunction()
+     * @generated
+     */
+    int XML_VALUE_FUNCTION = 1;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION__EANNOTATIONS = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION__NAME = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION__DEPENDENCIES = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION__DESCRIPTION = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION__LABEL = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION__COMMENTS = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION__EXTENSIONS = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION__PRIVILEGES = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Unary Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION__UNARY_OPERATOR = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__UNARY_OPERATOR;
+
+	/**
+     * The feature id for the '<em><b>Data Type</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION__DATA_TYPE = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__DATA_TYPE;
+
+	/**
+     * The feature id for the '<em><b>Values Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION__VALUES_ROW = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__VALUES_ROW;
+
+	/**
+     * The feature id for the '<em><b>Order By Value Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION__ORDER_BY_VALUE_EXPR = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__ORDER_BY_VALUE_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Result Column</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION__RESULT_COLUMN = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__RESULT_COLUMN;
+
+	/**
+     * The feature id for the '<em><b>Basic Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION__BASIC_RIGHT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__BASIC_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Basic Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION__BASIC_LEFT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__BASIC_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Like Pattern</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION__LIKE_PATTERN = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__LIKE_PATTERN;
+
+	/**
+     * The feature id for the '<em><b>Like Matching</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION__LIKE_MATCHING = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__LIKE_MATCHING;
+
+	/**
+     * The feature id for the '<em><b>Predicate Null</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION__PREDICATE_NULL = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__PREDICATE_NULL;
+
+	/**
+     * The feature id for the '<em><b>In Value List Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION__IN_VALUE_LIST_RIGHT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__IN_VALUE_LIST_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>In Value List Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION__IN_VALUE_LIST_LEFT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__IN_VALUE_LIST_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION__IN_VALUE_ROW_SELECT_LEFT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__IN_VALUE_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION__IN_VALUE_SELECT_LEFT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__IN_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION__QUANTIFIED_ROW_SELECT_LEFT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__QUANTIFIED_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION__QUANTIFIED_VALUE_SELECT_LEFT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__QUANTIFIED_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION__BETWEEN_LEFT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__BETWEEN_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Right1</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION__BETWEEN_RIGHT1 = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__BETWEEN_RIGHT1;
+
+	/**
+     * The feature id for the '<em><b>Between Right2</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION__BETWEEN_RIGHT2 = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__BETWEEN_RIGHT2;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Cast</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION__VALUE_EXPR_CAST = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__VALUE_EXPR_CAST;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION__VALUE_EXPR_FUNCTION = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__VALUE_EXPR_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION__VALUE_EXPR_COMBINED_LEFT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__VALUE_EXPR_COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION__VALUE_EXPR_COMBINED_RIGHT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__VALUE_EXPR_COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Grouping Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION__GROUPING_EXPR = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__GROUPING_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Else</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION__VALUE_EXPR_CASE_ELSE = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__VALUE_EXPR_CASE_ELSE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION__VALUE_EXPR_CASE_SIMPLE = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__VALUE_EXPR_CASE_SIMPLE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content When</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content Result</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION__VALUE_EXPR_CASE_SEARCH_CONTENT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Like Escape</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION__LIKE_ESCAPE = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__LIKE_ESCAPE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Labeled Duration</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION__VALUE_EXPR_LABELED_DURATION = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__VALUE_EXPR_LABELED_DURATION;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION__NEST = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__NEST;
+
+	/**
+     * The feature id for the '<em><b>Update Source Expr List</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION__UPDATE_SOURCE_EXPR_LIST = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__UPDATE_SOURCE_EXPR_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION__TABLE_FUNCTION = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__TABLE_FUNCTION;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION__VALUE_EXPR_ROW = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__VALUE_EXPR_ROW;
+
+    /**
+     * The feature id for the '<em><b>Call Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION__CALL_STATEMENT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__CALL_STATEMENT;
+
+    /**
+     * The feature id for the '<em><b>Special Register</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION__SPECIAL_REGISTER = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__SPECIAL_REGISTER;
+
+	/**
+     * The feature id for the '<em><b>Distinct</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION__DISTINCT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__DISTINCT;
+
+	/**
+     * The feature id for the '<em><b>Column Function</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION__COLUMN_FUNCTION = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__COLUMN_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Parameter List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION__PARAMETER_LIST = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__PARAMETER_LIST;
+
+	/**
+     * The feature id for the '<em><b>Function</b></em>' reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION__FUNCTION = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__FUNCTION;
+
+	/**
+     * The number of structural features of the '<em>XML Value Function</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FEATURE_COUNT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION_FEATURE_COUNT + 0;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionConcatImpl <em>XML Value Function Concat</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionConcatImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionConcat()
+     * @generated
+     */
+    int XML_VALUE_FUNCTION_CONCAT = 0;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__EANNOTATIONS = XML_VALUE_FUNCTION__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__NAME = XML_VALUE_FUNCTION__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__DEPENDENCIES = XML_VALUE_FUNCTION__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__DESCRIPTION = XML_VALUE_FUNCTION__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__LABEL = XML_VALUE_FUNCTION__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_CONCAT__COMMENTS = XML_VALUE_FUNCTION__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__EXTENSIONS = XML_VALUE_FUNCTION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_CONCAT__PRIVILEGES = XML_VALUE_FUNCTION__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Unary Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__UNARY_OPERATOR = XML_VALUE_FUNCTION__UNARY_OPERATOR;
+
+	/**
+     * The feature id for the '<em><b>Data Type</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__DATA_TYPE = XML_VALUE_FUNCTION__DATA_TYPE;
+
+	/**
+     * The feature id for the '<em><b>Values Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__VALUES_ROW = XML_VALUE_FUNCTION__VALUES_ROW;
+
+	/**
+     * The feature id for the '<em><b>Order By Value Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__ORDER_BY_VALUE_EXPR = XML_VALUE_FUNCTION__ORDER_BY_VALUE_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Result Column</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__RESULT_COLUMN = XML_VALUE_FUNCTION__RESULT_COLUMN;
+
+	/**
+     * The feature id for the '<em><b>Basic Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__BASIC_RIGHT = XML_VALUE_FUNCTION__BASIC_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Basic Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__BASIC_LEFT = XML_VALUE_FUNCTION__BASIC_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Like Pattern</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__LIKE_PATTERN = XML_VALUE_FUNCTION__LIKE_PATTERN;
+
+	/**
+     * The feature id for the '<em><b>Like Matching</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__LIKE_MATCHING = XML_VALUE_FUNCTION__LIKE_MATCHING;
+
+	/**
+     * The feature id for the '<em><b>Predicate Null</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__PREDICATE_NULL = XML_VALUE_FUNCTION__PREDICATE_NULL;
+
+	/**
+     * The feature id for the '<em><b>In Value List Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__IN_VALUE_LIST_RIGHT = XML_VALUE_FUNCTION__IN_VALUE_LIST_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>In Value List Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__IN_VALUE_LIST_LEFT = XML_VALUE_FUNCTION__IN_VALUE_LIST_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__IN_VALUE_ROW_SELECT_LEFT = XML_VALUE_FUNCTION__IN_VALUE_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__IN_VALUE_SELECT_LEFT = XML_VALUE_FUNCTION__IN_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__QUANTIFIED_ROW_SELECT_LEFT = XML_VALUE_FUNCTION__QUANTIFIED_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__QUANTIFIED_VALUE_SELECT_LEFT = XML_VALUE_FUNCTION__QUANTIFIED_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__BETWEEN_LEFT = XML_VALUE_FUNCTION__BETWEEN_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Right1</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__BETWEEN_RIGHT1 = XML_VALUE_FUNCTION__BETWEEN_RIGHT1;
+
+	/**
+     * The feature id for the '<em><b>Between Right2</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__BETWEEN_RIGHT2 = XML_VALUE_FUNCTION__BETWEEN_RIGHT2;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Cast</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__VALUE_EXPR_CAST = XML_VALUE_FUNCTION__VALUE_EXPR_CAST;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__VALUE_EXPR_FUNCTION = XML_VALUE_FUNCTION__VALUE_EXPR_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__VALUE_EXPR_COMBINED_LEFT = XML_VALUE_FUNCTION__VALUE_EXPR_COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__VALUE_EXPR_COMBINED_RIGHT = XML_VALUE_FUNCTION__VALUE_EXPR_COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Grouping Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__GROUPING_EXPR = XML_VALUE_FUNCTION__GROUPING_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Else</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__VALUE_EXPR_CASE_ELSE = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_ELSE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__VALUE_EXPR_CASE_SIMPLE = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_SIMPLE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content When</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content Result</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__VALUE_EXPR_CASE_SEARCH_CONTENT = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Like Escape</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__LIKE_ESCAPE = XML_VALUE_FUNCTION__LIKE_ESCAPE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Labeled Duration</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__VALUE_EXPR_LABELED_DURATION = XML_VALUE_FUNCTION__VALUE_EXPR_LABELED_DURATION;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__NEST = XML_VALUE_FUNCTION__NEST;
+
+	/**
+     * The feature id for the '<em><b>Update Source Expr List</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__UPDATE_SOURCE_EXPR_LIST = XML_VALUE_FUNCTION__UPDATE_SOURCE_EXPR_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__TABLE_FUNCTION = XML_VALUE_FUNCTION__TABLE_FUNCTION;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__VALUE_EXPR_ROW = XML_VALUE_FUNCTION__VALUE_EXPR_ROW;
+
+    /**
+     * The feature id for the '<em><b>Call Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__CALL_STATEMENT = XML_VALUE_FUNCTION__CALL_STATEMENT;
+
+    /**
+     * The feature id for the '<em><b>Special Register</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__SPECIAL_REGISTER = XML_VALUE_FUNCTION__SPECIAL_REGISTER;
+
+	/**
+     * The feature id for the '<em><b>Distinct</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__DISTINCT = XML_VALUE_FUNCTION__DISTINCT;
+
+	/**
+     * The feature id for the '<em><b>Column Function</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__COLUMN_FUNCTION = XML_VALUE_FUNCTION__COLUMN_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Parameter List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__PARAMETER_LIST = XML_VALUE_FUNCTION__PARAMETER_LIST;
+
+	/**
+     * The feature id for the '<em><b>Function</b></em>' reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__FUNCTION = XML_VALUE_FUNCTION__FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Returning Option</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__RETURNING_OPTION = XML_VALUE_FUNCTION_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Concat Content List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT__CONCAT_CONTENT_LIST = XML_VALUE_FUNCTION_FEATURE_COUNT + 1;
+
+	/**
+     * The number of structural features of the '<em>XML Value Function Concat</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT_FEATURE_COUNT = XML_VALUE_FUNCTION_FEATURE_COUNT + 2;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLNamespaceDeclarationItemImpl <em>XML Namespace Declaration Item</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLNamespaceDeclarationItemImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLNamespaceDeclarationItem()
+     * @generated
+     */
+    int XML_NAMESPACE_DECLARATION_ITEM = 6;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_NAMESPACE_DECLARATION_ITEM__EANNOTATIONS = SQLQueryModelPackage.SQL_QUERY_OBJECT__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_NAMESPACE_DECLARATION_ITEM__NAME = SQLQueryModelPackage.SQL_QUERY_OBJECT__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_NAMESPACE_DECLARATION_ITEM__DEPENDENCIES = SQLQueryModelPackage.SQL_QUERY_OBJECT__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_NAMESPACE_DECLARATION_ITEM__DESCRIPTION = SQLQueryModelPackage.SQL_QUERY_OBJECT__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_NAMESPACE_DECLARATION_ITEM__LABEL = SQLQueryModelPackage.SQL_QUERY_OBJECT__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_NAMESPACE_DECLARATION_ITEM__COMMENTS = SQLQueryModelPackage.SQL_QUERY_OBJECT__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_NAMESPACE_DECLARATION_ITEM__EXTENSIONS = SQLQueryModelPackage.SQL_QUERY_OBJECT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_NAMESPACE_DECLARATION_ITEM__PRIVILEGES = SQLQueryModelPackage.SQL_QUERY_OBJECT__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Uri</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_NAMESPACE_DECLARATION_ITEM__URI = SQLQueryModelPackage.SQL_QUERY_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Namespaces Decl</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_NAMESPACE_DECLARATION_ITEM__NAMESPACES_DECL = SQLQueryModelPackage.SQL_QUERY_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+     * The number of structural features of the '<em>XML Namespace Declaration Item</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_NAMESPACE_DECLARATION_ITEM_FEATURE_COUNT = SQLQueryModelPackage.SQL_QUERY_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLNamespaceDeclarationPrefixImpl <em>XML Namespace Declaration Prefix</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLNamespaceDeclarationPrefixImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLNamespaceDeclarationPrefix()
+     * @generated
+     */
+    int XML_NAMESPACE_DECLARATION_PREFIX = 2;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_NAMESPACE_DECLARATION_PREFIX__EANNOTATIONS = XML_NAMESPACE_DECLARATION_ITEM__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_NAMESPACE_DECLARATION_PREFIX__NAME = XML_NAMESPACE_DECLARATION_ITEM__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_NAMESPACE_DECLARATION_PREFIX__DEPENDENCIES = XML_NAMESPACE_DECLARATION_ITEM__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_NAMESPACE_DECLARATION_PREFIX__DESCRIPTION = XML_NAMESPACE_DECLARATION_ITEM__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_NAMESPACE_DECLARATION_PREFIX__LABEL = XML_NAMESPACE_DECLARATION_ITEM__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_NAMESPACE_DECLARATION_PREFIX__COMMENTS = XML_NAMESPACE_DECLARATION_ITEM__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_NAMESPACE_DECLARATION_PREFIX__EXTENSIONS = XML_NAMESPACE_DECLARATION_ITEM__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_NAMESPACE_DECLARATION_PREFIX__PRIVILEGES = XML_NAMESPACE_DECLARATION_ITEM__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Uri</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_NAMESPACE_DECLARATION_PREFIX__URI = XML_NAMESPACE_DECLARATION_ITEM__URI;
+
+	/**
+     * The feature id for the '<em><b>Namespaces Decl</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_NAMESPACE_DECLARATION_PREFIX__NAMESPACES_DECL = XML_NAMESPACE_DECLARATION_ITEM__NAMESPACES_DECL;
+
+	/**
+     * The feature id for the '<em><b>Prefix</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_NAMESPACE_DECLARATION_PREFIX__PREFIX = XML_NAMESPACE_DECLARATION_ITEM_FEATURE_COUNT + 0;
+
+	/**
+     * The number of structural features of the '<em>XML Namespace Declaration Prefix</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_NAMESPACE_DECLARATION_PREFIX_FEATURE_COUNT = XML_NAMESPACE_DECLARATION_ITEM_FEATURE_COUNT + 1;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLNamespaceDeclarationDefaultImpl <em>XML Namespace Declaration Default</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLNamespaceDeclarationDefaultImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLNamespaceDeclarationDefault()
+     * @generated
+     */
+    int XML_NAMESPACE_DECLARATION_DEFAULT = 3;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_NAMESPACE_DECLARATION_DEFAULT__EANNOTATIONS = XML_NAMESPACE_DECLARATION_ITEM__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_NAMESPACE_DECLARATION_DEFAULT__NAME = XML_NAMESPACE_DECLARATION_ITEM__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_NAMESPACE_DECLARATION_DEFAULT__DEPENDENCIES = XML_NAMESPACE_DECLARATION_ITEM__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_NAMESPACE_DECLARATION_DEFAULT__DESCRIPTION = XML_NAMESPACE_DECLARATION_ITEM__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_NAMESPACE_DECLARATION_DEFAULT__LABEL = XML_NAMESPACE_DECLARATION_ITEM__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_NAMESPACE_DECLARATION_DEFAULT__COMMENTS = XML_NAMESPACE_DECLARATION_ITEM__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_NAMESPACE_DECLARATION_DEFAULT__EXTENSIONS = XML_NAMESPACE_DECLARATION_ITEM__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_NAMESPACE_DECLARATION_DEFAULT__PRIVILEGES = XML_NAMESPACE_DECLARATION_ITEM__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Uri</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_NAMESPACE_DECLARATION_DEFAULT__URI = XML_NAMESPACE_DECLARATION_ITEM__URI;
+
+	/**
+     * The feature id for the '<em><b>Namespaces Decl</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_NAMESPACE_DECLARATION_DEFAULT__NAMESPACES_DECL = XML_NAMESPACE_DECLARATION_ITEM__NAMESPACES_DECL;
+
+	/**
+     * The feature id for the '<em><b>No Default</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_NAMESPACE_DECLARATION_DEFAULT__NO_DEFAULT = XML_NAMESPACE_DECLARATION_ITEM_FEATURE_COUNT + 0;
+
+	/**
+     * The number of structural features of the '<em>XML Namespace Declaration Default</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_NAMESPACE_DECLARATION_DEFAULT_FEATURE_COUNT = XML_NAMESPACE_DECLARATION_ITEM_FEATURE_COUNT + 1;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLAttributeDeclarationItemImpl <em>XML Attribute Declaration Item</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLAttributeDeclarationItemImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLAttributeDeclarationItem()
+     * @generated
+     */
+    int XML_ATTRIBUTE_DECLARATION_ITEM = 4;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTE_DECLARATION_ITEM__EANNOTATIONS = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTE_DECLARATION_ITEM__NAME = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTE_DECLARATION_ITEM__DEPENDENCIES = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTE_DECLARATION_ITEM__DESCRIPTION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTE_DECLARATION_ITEM__LABEL = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_ATTRIBUTE_DECLARATION_ITEM__COMMENTS = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTE_DECLARATION_ITEM__EXTENSIONS = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_ATTRIBUTE_DECLARATION_ITEM__PRIVILEGES = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Unary Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTE_DECLARATION_ITEM__UNARY_OPERATOR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__UNARY_OPERATOR;
+
+	/**
+     * The feature id for the '<em><b>Data Type</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTE_DECLARATION_ITEM__DATA_TYPE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DATA_TYPE;
+
+	/**
+     * The feature id for the '<em><b>Values Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTE_DECLARATION_ITEM__VALUES_ROW = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUES_ROW;
+
+	/**
+     * The feature id for the '<em><b>Order By Value Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTE_DECLARATION_ITEM__ORDER_BY_VALUE_EXPR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__ORDER_BY_VALUE_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Result Column</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTE_DECLARATION_ITEM__RESULT_COLUMN = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__RESULT_COLUMN;
+
+	/**
+     * The feature id for the '<em><b>Basic Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTE_DECLARATION_ITEM__BASIC_RIGHT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Basic Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTE_DECLARATION_ITEM__BASIC_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Like Pattern</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTE_DECLARATION_ITEM__LIKE_PATTERN = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_PATTERN;
+
+	/**
+     * The feature id for the '<em><b>Like Matching</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTE_DECLARATION_ITEM__LIKE_MATCHING = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_MATCHING;
+
+	/**
+     * The feature id for the '<em><b>Predicate Null</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTE_DECLARATION_ITEM__PREDICATE_NULL = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__PREDICATE_NULL;
+
+	/**
+     * The feature id for the '<em><b>In Value List Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTE_DECLARATION_ITEM__IN_VALUE_LIST_RIGHT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>In Value List Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTE_DECLARATION_ITEM__IN_VALUE_LIST_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTE_DECLARATION_ITEM__IN_VALUE_ROW_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTE_DECLARATION_ITEM__IN_VALUE_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTE_DECLARATION_ITEM__QUANTIFIED_ROW_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTE_DECLARATION_ITEM__QUANTIFIED_VALUE_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTE_DECLARATION_ITEM__BETWEEN_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Right1</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTE_DECLARATION_ITEM__BETWEEN_RIGHT1 = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT1;
+
+	/**
+     * The feature id for the '<em><b>Between Right2</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTE_DECLARATION_ITEM__BETWEEN_RIGHT2 = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT2;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Cast</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTE_DECLARATION_ITEM__VALUE_EXPR_CAST = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CAST;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTE_DECLARATION_ITEM__VALUE_EXPR_FUNCTION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTE_DECLARATION_ITEM__VALUE_EXPR_COMBINED_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTE_DECLARATION_ITEM__VALUE_EXPR_COMBINED_RIGHT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Grouping Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTE_DECLARATION_ITEM__GROUPING_EXPR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__GROUPING_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Else</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTE_DECLARATION_ITEM__VALUE_EXPR_CASE_ELSE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_ELSE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTE_DECLARATION_ITEM__VALUE_EXPR_CASE_SIMPLE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content When</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTE_DECLARATION_ITEM__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content Result</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTE_DECLARATION_ITEM__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTE_DECLARATION_ITEM__VALUE_EXPR_CASE_SEARCH_CONTENT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Like Escape</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTE_DECLARATION_ITEM__LIKE_ESCAPE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_ESCAPE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Labeled Duration</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTE_DECLARATION_ITEM__VALUE_EXPR_LABELED_DURATION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_LABELED_DURATION;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTE_DECLARATION_ITEM__NEST = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__NEST;
+
+	/**
+     * The feature id for the '<em><b>Update Source Expr List</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTE_DECLARATION_ITEM__UPDATE_SOURCE_EXPR_LIST = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__UPDATE_SOURCE_EXPR_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTE_DECLARATION_ITEM__TABLE_FUNCTION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__TABLE_FUNCTION;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTE_DECLARATION_ITEM__VALUE_EXPR_ROW = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_ROW;
+
+    /**
+     * The feature id for the '<em><b>Call Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTE_DECLARATION_ITEM__CALL_STATEMENT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__CALL_STATEMENT;
+
+    /**
+     * The feature id for the '<em><b>Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTE_DECLARATION_ITEM__VALUE_EXPR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Attributes Decl</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTE_DECLARATION_ITEM__ATTRIBUTES_DECL = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 1;
+
+	/**
+     * The number of structural features of the '<em>XML Attribute Declaration Item</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTE_DECLARATION_ITEM_FEATURE_COUNT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 2;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionElementImpl <em>XML Value Function Element</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionElementImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionElement()
+     * @generated
+     */
+    int XML_VALUE_FUNCTION_ELEMENT = 5;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__EANNOTATIONS = XML_VALUE_FUNCTION__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__NAME = XML_VALUE_FUNCTION__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__DEPENDENCIES = XML_VALUE_FUNCTION__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__DESCRIPTION = XML_VALUE_FUNCTION__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__LABEL = XML_VALUE_FUNCTION__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_ELEMENT__COMMENTS = XML_VALUE_FUNCTION__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__EXTENSIONS = XML_VALUE_FUNCTION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_ELEMENT__PRIVILEGES = XML_VALUE_FUNCTION__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Unary Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__UNARY_OPERATOR = XML_VALUE_FUNCTION__UNARY_OPERATOR;
+
+	/**
+     * The feature id for the '<em><b>Data Type</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__DATA_TYPE = XML_VALUE_FUNCTION__DATA_TYPE;
+
+	/**
+     * The feature id for the '<em><b>Values Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__VALUES_ROW = XML_VALUE_FUNCTION__VALUES_ROW;
+
+	/**
+     * The feature id for the '<em><b>Order By Value Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__ORDER_BY_VALUE_EXPR = XML_VALUE_FUNCTION__ORDER_BY_VALUE_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Result Column</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__RESULT_COLUMN = XML_VALUE_FUNCTION__RESULT_COLUMN;
+
+	/**
+     * The feature id for the '<em><b>Basic Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__BASIC_RIGHT = XML_VALUE_FUNCTION__BASIC_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Basic Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__BASIC_LEFT = XML_VALUE_FUNCTION__BASIC_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Like Pattern</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__LIKE_PATTERN = XML_VALUE_FUNCTION__LIKE_PATTERN;
+
+	/**
+     * The feature id for the '<em><b>Like Matching</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__LIKE_MATCHING = XML_VALUE_FUNCTION__LIKE_MATCHING;
+
+	/**
+     * The feature id for the '<em><b>Predicate Null</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__PREDICATE_NULL = XML_VALUE_FUNCTION__PREDICATE_NULL;
+
+	/**
+     * The feature id for the '<em><b>In Value List Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__IN_VALUE_LIST_RIGHT = XML_VALUE_FUNCTION__IN_VALUE_LIST_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>In Value List Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__IN_VALUE_LIST_LEFT = XML_VALUE_FUNCTION__IN_VALUE_LIST_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__IN_VALUE_ROW_SELECT_LEFT = XML_VALUE_FUNCTION__IN_VALUE_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__IN_VALUE_SELECT_LEFT = XML_VALUE_FUNCTION__IN_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__QUANTIFIED_ROW_SELECT_LEFT = XML_VALUE_FUNCTION__QUANTIFIED_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__QUANTIFIED_VALUE_SELECT_LEFT = XML_VALUE_FUNCTION__QUANTIFIED_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__BETWEEN_LEFT = XML_VALUE_FUNCTION__BETWEEN_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Right1</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__BETWEEN_RIGHT1 = XML_VALUE_FUNCTION__BETWEEN_RIGHT1;
+
+	/**
+     * The feature id for the '<em><b>Between Right2</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__BETWEEN_RIGHT2 = XML_VALUE_FUNCTION__BETWEEN_RIGHT2;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Cast</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__VALUE_EXPR_CAST = XML_VALUE_FUNCTION__VALUE_EXPR_CAST;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__VALUE_EXPR_FUNCTION = XML_VALUE_FUNCTION__VALUE_EXPR_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__VALUE_EXPR_COMBINED_LEFT = XML_VALUE_FUNCTION__VALUE_EXPR_COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__VALUE_EXPR_COMBINED_RIGHT = XML_VALUE_FUNCTION__VALUE_EXPR_COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Grouping Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__GROUPING_EXPR = XML_VALUE_FUNCTION__GROUPING_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Else</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__VALUE_EXPR_CASE_ELSE = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_ELSE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__VALUE_EXPR_CASE_SIMPLE = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_SIMPLE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content When</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content Result</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__VALUE_EXPR_CASE_SEARCH_CONTENT = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Like Escape</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__LIKE_ESCAPE = XML_VALUE_FUNCTION__LIKE_ESCAPE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Labeled Duration</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__VALUE_EXPR_LABELED_DURATION = XML_VALUE_FUNCTION__VALUE_EXPR_LABELED_DURATION;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__NEST = XML_VALUE_FUNCTION__NEST;
+
+	/**
+     * The feature id for the '<em><b>Update Source Expr List</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__UPDATE_SOURCE_EXPR_LIST = XML_VALUE_FUNCTION__UPDATE_SOURCE_EXPR_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__TABLE_FUNCTION = XML_VALUE_FUNCTION__TABLE_FUNCTION;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__VALUE_EXPR_ROW = XML_VALUE_FUNCTION__VALUE_EXPR_ROW;
+
+    /**
+     * The feature id for the '<em><b>Call Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__CALL_STATEMENT = XML_VALUE_FUNCTION__CALL_STATEMENT;
+
+    /**
+     * The feature id for the '<em><b>Special Register</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__SPECIAL_REGISTER = XML_VALUE_FUNCTION__SPECIAL_REGISTER;
+
+	/**
+     * The feature id for the '<em><b>Distinct</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__DISTINCT = XML_VALUE_FUNCTION__DISTINCT;
+
+	/**
+     * The feature id for the '<em><b>Column Function</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__COLUMN_FUNCTION = XML_VALUE_FUNCTION__COLUMN_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Parameter List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__PARAMETER_LIST = XML_VALUE_FUNCTION__PARAMETER_LIST;
+
+	/**
+     * The feature id for the '<em><b>Function</b></em>' reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__FUNCTION = XML_VALUE_FUNCTION__FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Element Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__ELEMENT_NAME = XML_VALUE_FUNCTION_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Returning Option</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__RETURNING_OPTION = XML_VALUE_FUNCTION_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>Namespaces Decl</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__NAMESPACES_DECL = XML_VALUE_FUNCTION_FEATURE_COUNT + 2;
+
+	/**
+     * The feature id for the '<em><b>Attributes Decl</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__ATTRIBUTES_DECL = XML_VALUE_FUNCTION_FEATURE_COUNT + 3;
+
+	/**
+     * The feature id for the '<em><b>Element Content List</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT__ELEMENT_CONTENT_LIST = XML_VALUE_FUNCTION_FEATURE_COUNT + 4;
+
+	/**
+     * The number of structural features of the '<em>XML Value Function Element</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_FEATURE_COUNT = XML_VALUE_FUNCTION_FEATURE_COUNT + 5;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionElementContentItemImpl <em>XML Value Function Element Content Item</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionElementContentItemImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionElementContentItem()
+     * @generated
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM = 7;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__EANNOTATIONS = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__NAME = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__DEPENDENCIES = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__DESCRIPTION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__LABEL = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__COMMENTS = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__EXTENSIONS = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__PRIVILEGES = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Unary Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__UNARY_OPERATOR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__UNARY_OPERATOR;
+
+	/**
+     * The feature id for the '<em><b>Data Type</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__DATA_TYPE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DATA_TYPE;
+
+	/**
+     * The feature id for the '<em><b>Values Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__VALUES_ROW = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUES_ROW;
+
+	/**
+     * The feature id for the '<em><b>Order By Value Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__ORDER_BY_VALUE_EXPR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__ORDER_BY_VALUE_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Result Column</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__RESULT_COLUMN = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__RESULT_COLUMN;
+
+	/**
+     * The feature id for the '<em><b>Basic Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__BASIC_RIGHT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Basic Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__BASIC_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Like Pattern</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__LIKE_PATTERN = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_PATTERN;
+
+	/**
+     * The feature id for the '<em><b>Like Matching</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__LIKE_MATCHING = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_MATCHING;
+
+	/**
+     * The feature id for the '<em><b>Predicate Null</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__PREDICATE_NULL = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__PREDICATE_NULL;
+
+	/**
+     * The feature id for the '<em><b>In Value List Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__IN_VALUE_LIST_RIGHT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>In Value List Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__IN_VALUE_LIST_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__IN_VALUE_ROW_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__IN_VALUE_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__QUANTIFIED_ROW_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__QUANTIFIED_VALUE_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__BETWEEN_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Right1</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__BETWEEN_RIGHT1 = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT1;
+
+	/**
+     * The feature id for the '<em><b>Between Right2</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__BETWEEN_RIGHT2 = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT2;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Cast</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__VALUE_EXPR_CAST = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CAST;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__VALUE_EXPR_FUNCTION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__VALUE_EXPR_COMBINED_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__VALUE_EXPR_COMBINED_RIGHT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Grouping Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__GROUPING_EXPR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__GROUPING_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Else</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__VALUE_EXPR_CASE_ELSE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_ELSE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__VALUE_EXPR_CASE_SIMPLE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content When</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content Result</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__VALUE_EXPR_CASE_SEARCH_CONTENT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Like Escape</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__LIKE_ESCAPE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_ESCAPE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Labeled Duration</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__VALUE_EXPR_LABELED_DURATION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_LABELED_DURATION;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__NEST = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__NEST;
+
+	/**
+     * The feature id for the '<em><b>Update Source Expr List</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__UPDATE_SOURCE_EXPR_LIST = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__UPDATE_SOURCE_EXPR_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__TABLE_FUNCTION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__TABLE_FUNCTION;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__VALUE_EXPR_ROW = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_ROW;
+
+    /**
+     * The feature id for the '<em><b>Call Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__CALL_STATEMENT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__CALL_STATEMENT;
+
+    /**
+     * The feature id for the '<em><b>Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__VALUE_EXPR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Element Content List</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__ELEMENT_CONTENT_LIST = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 1;
+
+	/**
+     * The number of structural features of the '<em>XML Value Function Element Content Item</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM_FEATURE_COUNT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 2;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionForestImpl <em>XML Value Function Forest</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionForestImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionForest()
+     * @generated
+     */
+    int XML_VALUE_FUNCTION_FOREST = 8;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__EANNOTATIONS = XML_VALUE_FUNCTION__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__NAME = XML_VALUE_FUNCTION__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__DEPENDENCIES = XML_VALUE_FUNCTION__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__DESCRIPTION = XML_VALUE_FUNCTION__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__LABEL = XML_VALUE_FUNCTION__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_FOREST__COMMENTS = XML_VALUE_FUNCTION__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__EXTENSIONS = XML_VALUE_FUNCTION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_FOREST__PRIVILEGES = XML_VALUE_FUNCTION__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Unary Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__UNARY_OPERATOR = XML_VALUE_FUNCTION__UNARY_OPERATOR;
+
+	/**
+     * The feature id for the '<em><b>Data Type</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__DATA_TYPE = XML_VALUE_FUNCTION__DATA_TYPE;
+
+	/**
+     * The feature id for the '<em><b>Values Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__VALUES_ROW = XML_VALUE_FUNCTION__VALUES_ROW;
+
+	/**
+     * The feature id for the '<em><b>Order By Value Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__ORDER_BY_VALUE_EXPR = XML_VALUE_FUNCTION__ORDER_BY_VALUE_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Result Column</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__RESULT_COLUMN = XML_VALUE_FUNCTION__RESULT_COLUMN;
+
+	/**
+     * The feature id for the '<em><b>Basic Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__BASIC_RIGHT = XML_VALUE_FUNCTION__BASIC_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Basic Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__BASIC_LEFT = XML_VALUE_FUNCTION__BASIC_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Like Pattern</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__LIKE_PATTERN = XML_VALUE_FUNCTION__LIKE_PATTERN;
+
+	/**
+     * The feature id for the '<em><b>Like Matching</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__LIKE_MATCHING = XML_VALUE_FUNCTION__LIKE_MATCHING;
+
+	/**
+     * The feature id for the '<em><b>Predicate Null</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__PREDICATE_NULL = XML_VALUE_FUNCTION__PREDICATE_NULL;
+
+	/**
+     * The feature id for the '<em><b>In Value List Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__IN_VALUE_LIST_RIGHT = XML_VALUE_FUNCTION__IN_VALUE_LIST_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>In Value List Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__IN_VALUE_LIST_LEFT = XML_VALUE_FUNCTION__IN_VALUE_LIST_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__IN_VALUE_ROW_SELECT_LEFT = XML_VALUE_FUNCTION__IN_VALUE_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__IN_VALUE_SELECT_LEFT = XML_VALUE_FUNCTION__IN_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__QUANTIFIED_ROW_SELECT_LEFT = XML_VALUE_FUNCTION__QUANTIFIED_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__QUANTIFIED_VALUE_SELECT_LEFT = XML_VALUE_FUNCTION__QUANTIFIED_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__BETWEEN_LEFT = XML_VALUE_FUNCTION__BETWEEN_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Right1</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__BETWEEN_RIGHT1 = XML_VALUE_FUNCTION__BETWEEN_RIGHT1;
+
+	/**
+     * The feature id for the '<em><b>Between Right2</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__BETWEEN_RIGHT2 = XML_VALUE_FUNCTION__BETWEEN_RIGHT2;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Cast</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__VALUE_EXPR_CAST = XML_VALUE_FUNCTION__VALUE_EXPR_CAST;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__VALUE_EXPR_FUNCTION = XML_VALUE_FUNCTION__VALUE_EXPR_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__VALUE_EXPR_COMBINED_LEFT = XML_VALUE_FUNCTION__VALUE_EXPR_COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__VALUE_EXPR_COMBINED_RIGHT = XML_VALUE_FUNCTION__VALUE_EXPR_COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Grouping Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__GROUPING_EXPR = XML_VALUE_FUNCTION__GROUPING_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Else</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__VALUE_EXPR_CASE_ELSE = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_ELSE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__VALUE_EXPR_CASE_SIMPLE = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_SIMPLE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content When</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content Result</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__VALUE_EXPR_CASE_SEARCH_CONTENT = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Like Escape</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__LIKE_ESCAPE = XML_VALUE_FUNCTION__LIKE_ESCAPE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Labeled Duration</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__VALUE_EXPR_LABELED_DURATION = XML_VALUE_FUNCTION__VALUE_EXPR_LABELED_DURATION;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__NEST = XML_VALUE_FUNCTION__NEST;
+
+	/**
+     * The feature id for the '<em><b>Update Source Expr List</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__UPDATE_SOURCE_EXPR_LIST = XML_VALUE_FUNCTION__UPDATE_SOURCE_EXPR_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__TABLE_FUNCTION = XML_VALUE_FUNCTION__TABLE_FUNCTION;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__VALUE_EXPR_ROW = XML_VALUE_FUNCTION__VALUE_EXPR_ROW;
+
+    /**
+     * The feature id for the '<em><b>Call Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__CALL_STATEMENT = XML_VALUE_FUNCTION__CALL_STATEMENT;
+
+    /**
+     * The feature id for the '<em><b>Special Register</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__SPECIAL_REGISTER = XML_VALUE_FUNCTION__SPECIAL_REGISTER;
+
+	/**
+     * The feature id for the '<em><b>Distinct</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__DISTINCT = XML_VALUE_FUNCTION__DISTINCT;
+
+	/**
+     * The feature id for the '<em><b>Column Function</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__COLUMN_FUNCTION = XML_VALUE_FUNCTION__COLUMN_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Parameter List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__PARAMETER_LIST = XML_VALUE_FUNCTION__PARAMETER_LIST;
+
+	/**
+     * The feature id for the '<em><b>Function</b></em>' reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__FUNCTION = XML_VALUE_FUNCTION__FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Null Handling Option</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__NULL_HANDLING_OPTION = XML_VALUE_FUNCTION_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Returning Option</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__RETURNING_OPTION = XML_VALUE_FUNCTION_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>Forest Content List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__FOREST_CONTENT_LIST = XML_VALUE_FUNCTION_FEATURE_COUNT + 2;
+
+	/**
+     * The feature id for the '<em><b>Namespaces Decl</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST__NAMESPACES_DECL = XML_VALUE_FUNCTION_FEATURE_COUNT + 3;
+
+	/**
+     * The number of structural features of the '<em>XML Value Function Forest</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST_FEATURE_COUNT = XML_VALUE_FUNCTION_FEATURE_COUNT + 4;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionCommentImpl <em>XML Value Function Comment</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionCommentImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionComment()
+     * @generated
+     */
+    int XML_VALUE_FUNCTION_COMMENT = 9;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__EANNOTATIONS = XML_VALUE_FUNCTION__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__NAME = XML_VALUE_FUNCTION__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__DEPENDENCIES = XML_VALUE_FUNCTION__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__DESCRIPTION = XML_VALUE_FUNCTION__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__LABEL = XML_VALUE_FUNCTION__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_COMMENT__COMMENTS = XML_VALUE_FUNCTION__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__EXTENSIONS = XML_VALUE_FUNCTION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_COMMENT__PRIVILEGES = XML_VALUE_FUNCTION__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Unary Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__UNARY_OPERATOR = XML_VALUE_FUNCTION__UNARY_OPERATOR;
+
+	/**
+     * The feature id for the '<em><b>Data Type</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__DATA_TYPE = XML_VALUE_FUNCTION__DATA_TYPE;
+
+	/**
+     * The feature id for the '<em><b>Values Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__VALUES_ROW = XML_VALUE_FUNCTION__VALUES_ROW;
+
+	/**
+     * The feature id for the '<em><b>Order By Value Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__ORDER_BY_VALUE_EXPR = XML_VALUE_FUNCTION__ORDER_BY_VALUE_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Result Column</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__RESULT_COLUMN = XML_VALUE_FUNCTION__RESULT_COLUMN;
+
+	/**
+     * The feature id for the '<em><b>Basic Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__BASIC_RIGHT = XML_VALUE_FUNCTION__BASIC_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Basic Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__BASIC_LEFT = XML_VALUE_FUNCTION__BASIC_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Like Pattern</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__LIKE_PATTERN = XML_VALUE_FUNCTION__LIKE_PATTERN;
+
+	/**
+     * The feature id for the '<em><b>Like Matching</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__LIKE_MATCHING = XML_VALUE_FUNCTION__LIKE_MATCHING;
+
+	/**
+     * The feature id for the '<em><b>Predicate Null</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__PREDICATE_NULL = XML_VALUE_FUNCTION__PREDICATE_NULL;
+
+	/**
+     * The feature id for the '<em><b>In Value List Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__IN_VALUE_LIST_RIGHT = XML_VALUE_FUNCTION__IN_VALUE_LIST_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>In Value List Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__IN_VALUE_LIST_LEFT = XML_VALUE_FUNCTION__IN_VALUE_LIST_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__IN_VALUE_ROW_SELECT_LEFT = XML_VALUE_FUNCTION__IN_VALUE_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__IN_VALUE_SELECT_LEFT = XML_VALUE_FUNCTION__IN_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__QUANTIFIED_ROW_SELECT_LEFT = XML_VALUE_FUNCTION__QUANTIFIED_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__QUANTIFIED_VALUE_SELECT_LEFT = XML_VALUE_FUNCTION__QUANTIFIED_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__BETWEEN_LEFT = XML_VALUE_FUNCTION__BETWEEN_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Right1</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__BETWEEN_RIGHT1 = XML_VALUE_FUNCTION__BETWEEN_RIGHT1;
+
+	/**
+     * The feature id for the '<em><b>Between Right2</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__BETWEEN_RIGHT2 = XML_VALUE_FUNCTION__BETWEEN_RIGHT2;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Cast</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__VALUE_EXPR_CAST = XML_VALUE_FUNCTION__VALUE_EXPR_CAST;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__VALUE_EXPR_FUNCTION = XML_VALUE_FUNCTION__VALUE_EXPR_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__VALUE_EXPR_COMBINED_LEFT = XML_VALUE_FUNCTION__VALUE_EXPR_COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__VALUE_EXPR_COMBINED_RIGHT = XML_VALUE_FUNCTION__VALUE_EXPR_COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Grouping Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__GROUPING_EXPR = XML_VALUE_FUNCTION__GROUPING_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Else</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__VALUE_EXPR_CASE_ELSE = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_ELSE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__VALUE_EXPR_CASE_SIMPLE = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_SIMPLE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content When</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content Result</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__VALUE_EXPR_CASE_SEARCH_CONTENT = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Like Escape</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__LIKE_ESCAPE = XML_VALUE_FUNCTION__LIKE_ESCAPE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Labeled Duration</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__VALUE_EXPR_LABELED_DURATION = XML_VALUE_FUNCTION__VALUE_EXPR_LABELED_DURATION;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__NEST = XML_VALUE_FUNCTION__NEST;
+
+	/**
+     * The feature id for the '<em><b>Update Source Expr List</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__UPDATE_SOURCE_EXPR_LIST = XML_VALUE_FUNCTION__UPDATE_SOURCE_EXPR_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__TABLE_FUNCTION = XML_VALUE_FUNCTION__TABLE_FUNCTION;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__VALUE_EXPR_ROW = XML_VALUE_FUNCTION__VALUE_EXPR_ROW;
+
+    /**
+     * The feature id for the '<em><b>Call Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__CALL_STATEMENT = XML_VALUE_FUNCTION__CALL_STATEMENT;
+
+    /**
+     * The feature id for the '<em><b>Special Register</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__SPECIAL_REGISTER = XML_VALUE_FUNCTION__SPECIAL_REGISTER;
+
+	/**
+     * The feature id for the '<em><b>Distinct</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__DISTINCT = XML_VALUE_FUNCTION__DISTINCT;
+
+	/**
+     * The feature id for the '<em><b>Column Function</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__COLUMN_FUNCTION = XML_VALUE_FUNCTION__COLUMN_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Parameter List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__PARAMETER_LIST = XML_VALUE_FUNCTION__PARAMETER_LIST;
+
+	/**
+     * The feature id for the '<em><b>Function</b></em>' reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__FUNCTION = XML_VALUE_FUNCTION__FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Returning Option</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__RETURNING_OPTION = XML_VALUE_FUNCTION_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Comment Content</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT__COMMENT_CONTENT = XML_VALUE_FUNCTION_FEATURE_COUNT + 1;
+
+	/**
+     * The number of structural features of the '<em>XML Value Function Comment</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT_FEATURE_COUNT = XML_VALUE_FUNCTION_FEATURE_COUNT + 2;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionDocumentImpl <em>XML Value Function Document</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionDocumentImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionDocument()
+     * @generated
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT = 10;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__EANNOTATIONS = XML_VALUE_FUNCTION__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__NAME = XML_VALUE_FUNCTION__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__DEPENDENCIES = XML_VALUE_FUNCTION__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__DESCRIPTION = XML_VALUE_FUNCTION__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__LABEL = XML_VALUE_FUNCTION__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_DOCUMENT__COMMENTS = XML_VALUE_FUNCTION__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__EXTENSIONS = XML_VALUE_FUNCTION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_DOCUMENT__PRIVILEGES = XML_VALUE_FUNCTION__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Unary Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__UNARY_OPERATOR = XML_VALUE_FUNCTION__UNARY_OPERATOR;
+
+	/**
+     * The feature id for the '<em><b>Data Type</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__DATA_TYPE = XML_VALUE_FUNCTION__DATA_TYPE;
+
+	/**
+     * The feature id for the '<em><b>Values Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__VALUES_ROW = XML_VALUE_FUNCTION__VALUES_ROW;
+
+	/**
+     * The feature id for the '<em><b>Order By Value Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__ORDER_BY_VALUE_EXPR = XML_VALUE_FUNCTION__ORDER_BY_VALUE_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Result Column</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__RESULT_COLUMN = XML_VALUE_FUNCTION__RESULT_COLUMN;
+
+	/**
+     * The feature id for the '<em><b>Basic Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__BASIC_RIGHT = XML_VALUE_FUNCTION__BASIC_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Basic Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__BASIC_LEFT = XML_VALUE_FUNCTION__BASIC_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Like Pattern</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__LIKE_PATTERN = XML_VALUE_FUNCTION__LIKE_PATTERN;
+
+	/**
+     * The feature id for the '<em><b>Like Matching</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__LIKE_MATCHING = XML_VALUE_FUNCTION__LIKE_MATCHING;
+
+	/**
+     * The feature id for the '<em><b>Predicate Null</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__PREDICATE_NULL = XML_VALUE_FUNCTION__PREDICATE_NULL;
+
+	/**
+     * The feature id for the '<em><b>In Value List Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__IN_VALUE_LIST_RIGHT = XML_VALUE_FUNCTION__IN_VALUE_LIST_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>In Value List Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__IN_VALUE_LIST_LEFT = XML_VALUE_FUNCTION__IN_VALUE_LIST_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__IN_VALUE_ROW_SELECT_LEFT = XML_VALUE_FUNCTION__IN_VALUE_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__IN_VALUE_SELECT_LEFT = XML_VALUE_FUNCTION__IN_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__QUANTIFIED_ROW_SELECT_LEFT = XML_VALUE_FUNCTION__QUANTIFIED_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__QUANTIFIED_VALUE_SELECT_LEFT = XML_VALUE_FUNCTION__QUANTIFIED_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__BETWEEN_LEFT = XML_VALUE_FUNCTION__BETWEEN_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Right1</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__BETWEEN_RIGHT1 = XML_VALUE_FUNCTION__BETWEEN_RIGHT1;
+
+	/**
+     * The feature id for the '<em><b>Between Right2</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__BETWEEN_RIGHT2 = XML_VALUE_FUNCTION__BETWEEN_RIGHT2;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Cast</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__VALUE_EXPR_CAST = XML_VALUE_FUNCTION__VALUE_EXPR_CAST;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__VALUE_EXPR_FUNCTION = XML_VALUE_FUNCTION__VALUE_EXPR_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__VALUE_EXPR_COMBINED_LEFT = XML_VALUE_FUNCTION__VALUE_EXPR_COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__VALUE_EXPR_COMBINED_RIGHT = XML_VALUE_FUNCTION__VALUE_EXPR_COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Grouping Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__GROUPING_EXPR = XML_VALUE_FUNCTION__GROUPING_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Else</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__VALUE_EXPR_CASE_ELSE = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_ELSE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__VALUE_EXPR_CASE_SIMPLE = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_SIMPLE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content When</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content Result</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__VALUE_EXPR_CASE_SEARCH_CONTENT = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Like Escape</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__LIKE_ESCAPE = XML_VALUE_FUNCTION__LIKE_ESCAPE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Labeled Duration</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__VALUE_EXPR_LABELED_DURATION = XML_VALUE_FUNCTION__VALUE_EXPR_LABELED_DURATION;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__NEST = XML_VALUE_FUNCTION__NEST;
+
+	/**
+     * The feature id for the '<em><b>Update Source Expr List</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__UPDATE_SOURCE_EXPR_LIST = XML_VALUE_FUNCTION__UPDATE_SOURCE_EXPR_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__TABLE_FUNCTION = XML_VALUE_FUNCTION__TABLE_FUNCTION;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__VALUE_EXPR_ROW = XML_VALUE_FUNCTION__VALUE_EXPR_ROW;
+
+    /**
+     * The feature id for the '<em><b>Call Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__CALL_STATEMENT = XML_VALUE_FUNCTION__CALL_STATEMENT;
+
+    /**
+     * The feature id for the '<em><b>Special Register</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__SPECIAL_REGISTER = XML_VALUE_FUNCTION__SPECIAL_REGISTER;
+
+	/**
+     * The feature id for the '<em><b>Distinct</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__DISTINCT = XML_VALUE_FUNCTION__DISTINCT;
+
+	/**
+     * The feature id for the '<em><b>Column Function</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__COLUMN_FUNCTION = XML_VALUE_FUNCTION__COLUMN_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Parameter List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__PARAMETER_LIST = XML_VALUE_FUNCTION__PARAMETER_LIST;
+
+	/**
+     * The feature id for the '<em><b>Function</b></em>' reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__FUNCTION = XML_VALUE_FUNCTION__FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Returning Option</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__RETURNING_OPTION = XML_VALUE_FUNCTION_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Document Content</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT__DOCUMENT_CONTENT = XML_VALUE_FUNCTION_FEATURE_COUNT + 1;
+
+	/**
+     * The number of structural features of the '<em>XML Value Function Document</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT_FEATURE_COUNT = XML_VALUE_FUNCTION_FEATURE_COUNT + 2;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionParseImpl <em>XML Value Function Parse</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionParseImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionParse()
+     * @generated
+     */
+    int XML_VALUE_FUNCTION_PARSE = 11;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__EANNOTATIONS = XML_VALUE_FUNCTION__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__NAME = XML_VALUE_FUNCTION__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__DEPENDENCIES = XML_VALUE_FUNCTION__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__DESCRIPTION = XML_VALUE_FUNCTION__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__LABEL = XML_VALUE_FUNCTION__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_PARSE__COMMENTS = XML_VALUE_FUNCTION__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__EXTENSIONS = XML_VALUE_FUNCTION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_PARSE__PRIVILEGES = XML_VALUE_FUNCTION__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Unary Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__UNARY_OPERATOR = XML_VALUE_FUNCTION__UNARY_OPERATOR;
+
+	/**
+     * The feature id for the '<em><b>Data Type</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__DATA_TYPE = XML_VALUE_FUNCTION__DATA_TYPE;
+
+	/**
+     * The feature id for the '<em><b>Values Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__VALUES_ROW = XML_VALUE_FUNCTION__VALUES_ROW;
+
+	/**
+     * The feature id for the '<em><b>Order By Value Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__ORDER_BY_VALUE_EXPR = XML_VALUE_FUNCTION__ORDER_BY_VALUE_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Result Column</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__RESULT_COLUMN = XML_VALUE_FUNCTION__RESULT_COLUMN;
+
+	/**
+     * The feature id for the '<em><b>Basic Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__BASIC_RIGHT = XML_VALUE_FUNCTION__BASIC_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Basic Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__BASIC_LEFT = XML_VALUE_FUNCTION__BASIC_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Like Pattern</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__LIKE_PATTERN = XML_VALUE_FUNCTION__LIKE_PATTERN;
+
+	/**
+     * The feature id for the '<em><b>Like Matching</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__LIKE_MATCHING = XML_VALUE_FUNCTION__LIKE_MATCHING;
+
+	/**
+     * The feature id for the '<em><b>Predicate Null</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__PREDICATE_NULL = XML_VALUE_FUNCTION__PREDICATE_NULL;
+
+	/**
+     * The feature id for the '<em><b>In Value List Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__IN_VALUE_LIST_RIGHT = XML_VALUE_FUNCTION__IN_VALUE_LIST_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>In Value List Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__IN_VALUE_LIST_LEFT = XML_VALUE_FUNCTION__IN_VALUE_LIST_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__IN_VALUE_ROW_SELECT_LEFT = XML_VALUE_FUNCTION__IN_VALUE_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__IN_VALUE_SELECT_LEFT = XML_VALUE_FUNCTION__IN_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__QUANTIFIED_ROW_SELECT_LEFT = XML_VALUE_FUNCTION__QUANTIFIED_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__QUANTIFIED_VALUE_SELECT_LEFT = XML_VALUE_FUNCTION__QUANTIFIED_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__BETWEEN_LEFT = XML_VALUE_FUNCTION__BETWEEN_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Right1</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__BETWEEN_RIGHT1 = XML_VALUE_FUNCTION__BETWEEN_RIGHT1;
+
+	/**
+     * The feature id for the '<em><b>Between Right2</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__BETWEEN_RIGHT2 = XML_VALUE_FUNCTION__BETWEEN_RIGHT2;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Cast</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__VALUE_EXPR_CAST = XML_VALUE_FUNCTION__VALUE_EXPR_CAST;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__VALUE_EXPR_FUNCTION = XML_VALUE_FUNCTION__VALUE_EXPR_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__VALUE_EXPR_COMBINED_LEFT = XML_VALUE_FUNCTION__VALUE_EXPR_COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__VALUE_EXPR_COMBINED_RIGHT = XML_VALUE_FUNCTION__VALUE_EXPR_COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Grouping Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__GROUPING_EXPR = XML_VALUE_FUNCTION__GROUPING_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Else</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__VALUE_EXPR_CASE_ELSE = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_ELSE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__VALUE_EXPR_CASE_SIMPLE = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_SIMPLE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content When</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content Result</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__VALUE_EXPR_CASE_SEARCH_CONTENT = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Like Escape</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__LIKE_ESCAPE = XML_VALUE_FUNCTION__LIKE_ESCAPE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Labeled Duration</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__VALUE_EXPR_LABELED_DURATION = XML_VALUE_FUNCTION__VALUE_EXPR_LABELED_DURATION;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__NEST = XML_VALUE_FUNCTION__NEST;
+
+	/**
+     * The feature id for the '<em><b>Update Source Expr List</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__UPDATE_SOURCE_EXPR_LIST = XML_VALUE_FUNCTION__UPDATE_SOURCE_EXPR_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__TABLE_FUNCTION = XML_VALUE_FUNCTION__TABLE_FUNCTION;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__VALUE_EXPR_ROW = XML_VALUE_FUNCTION__VALUE_EXPR_ROW;
+
+    /**
+     * The feature id for the '<em><b>Call Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__CALL_STATEMENT = XML_VALUE_FUNCTION__CALL_STATEMENT;
+
+    /**
+     * The feature id for the '<em><b>Special Register</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__SPECIAL_REGISTER = XML_VALUE_FUNCTION__SPECIAL_REGISTER;
+
+	/**
+     * The feature id for the '<em><b>Distinct</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__DISTINCT = XML_VALUE_FUNCTION__DISTINCT;
+
+	/**
+     * The feature id for the '<em><b>Column Function</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__COLUMN_FUNCTION = XML_VALUE_FUNCTION__COLUMN_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Parameter List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__PARAMETER_LIST = XML_VALUE_FUNCTION__PARAMETER_LIST;
+
+	/**
+     * The feature id for the '<em><b>Function</b></em>' reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__FUNCTION = XML_VALUE_FUNCTION__FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Content Option</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__CONTENT_OPTION = XML_VALUE_FUNCTION_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Whitespace Handling Option</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__WHITESPACE_HANDLING_OPTION = XML_VALUE_FUNCTION_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>Parse Content</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE__PARSE_CONTENT = XML_VALUE_FUNCTION_FEATURE_COUNT + 2;
+
+	/**
+     * The number of structural features of the '<em>XML Value Function Parse</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE_FEATURE_COUNT = XML_VALUE_FUNCTION_FEATURE_COUNT + 3;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionPIImpl <em>XML Value Function PI</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionPIImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionPI()
+     * @generated
+     */
+    int XML_VALUE_FUNCTION_PI = 12;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__EANNOTATIONS = XML_VALUE_FUNCTION__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__NAME = XML_VALUE_FUNCTION__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__DEPENDENCIES = XML_VALUE_FUNCTION__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__DESCRIPTION = XML_VALUE_FUNCTION__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__LABEL = XML_VALUE_FUNCTION__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_PI__COMMENTS = XML_VALUE_FUNCTION__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__EXTENSIONS = XML_VALUE_FUNCTION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_PI__PRIVILEGES = XML_VALUE_FUNCTION__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Unary Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__UNARY_OPERATOR = XML_VALUE_FUNCTION__UNARY_OPERATOR;
+
+	/**
+     * The feature id for the '<em><b>Data Type</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__DATA_TYPE = XML_VALUE_FUNCTION__DATA_TYPE;
+
+	/**
+     * The feature id for the '<em><b>Values Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__VALUES_ROW = XML_VALUE_FUNCTION__VALUES_ROW;
+
+	/**
+     * The feature id for the '<em><b>Order By Value Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__ORDER_BY_VALUE_EXPR = XML_VALUE_FUNCTION__ORDER_BY_VALUE_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Result Column</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__RESULT_COLUMN = XML_VALUE_FUNCTION__RESULT_COLUMN;
+
+	/**
+     * The feature id for the '<em><b>Basic Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__BASIC_RIGHT = XML_VALUE_FUNCTION__BASIC_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Basic Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__BASIC_LEFT = XML_VALUE_FUNCTION__BASIC_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Like Pattern</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__LIKE_PATTERN = XML_VALUE_FUNCTION__LIKE_PATTERN;
+
+	/**
+     * The feature id for the '<em><b>Like Matching</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__LIKE_MATCHING = XML_VALUE_FUNCTION__LIKE_MATCHING;
+
+	/**
+     * The feature id for the '<em><b>Predicate Null</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__PREDICATE_NULL = XML_VALUE_FUNCTION__PREDICATE_NULL;
+
+	/**
+     * The feature id for the '<em><b>In Value List Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__IN_VALUE_LIST_RIGHT = XML_VALUE_FUNCTION__IN_VALUE_LIST_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>In Value List Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__IN_VALUE_LIST_LEFT = XML_VALUE_FUNCTION__IN_VALUE_LIST_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__IN_VALUE_ROW_SELECT_LEFT = XML_VALUE_FUNCTION__IN_VALUE_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__IN_VALUE_SELECT_LEFT = XML_VALUE_FUNCTION__IN_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__QUANTIFIED_ROW_SELECT_LEFT = XML_VALUE_FUNCTION__QUANTIFIED_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__QUANTIFIED_VALUE_SELECT_LEFT = XML_VALUE_FUNCTION__QUANTIFIED_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__BETWEEN_LEFT = XML_VALUE_FUNCTION__BETWEEN_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Right1</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__BETWEEN_RIGHT1 = XML_VALUE_FUNCTION__BETWEEN_RIGHT1;
+
+	/**
+     * The feature id for the '<em><b>Between Right2</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__BETWEEN_RIGHT2 = XML_VALUE_FUNCTION__BETWEEN_RIGHT2;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Cast</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__VALUE_EXPR_CAST = XML_VALUE_FUNCTION__VALUE_EXPR_CAST;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__VALUE_EXPR_FUNCTION = XML_VALUE_FUNCTION__VALUE_EXPR_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__VALUE_EXPR_COMBINED_LEFT = XML_VALUE_FUNCTION__VALUE_EXPR_COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__VALUE_EXPR_COMBINED_RIGHT = XML_VALUE_FUNCTION__VALUE_EXPR_COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Grouping Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__GROUPING_EXPR = XML_VALUE_FUNCTION__GROUPING_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Else</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__VALUE_EXPR_CASE_ELSE = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_ELSE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__VALUE_EXPR_CASE_SIMPLE = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_SIMPLE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content When</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content Result</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__VALUE_EXPR_CASE_SEARCH_CONTENT = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Like Escape</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__LIKE_ESCAPE = XML_VALUE_FUNCTION__LIKE_ESCAPE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Labeled Duration</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__VALUE_EXPR_LABELED_DURATION = XML_VALUE_FUNCTION__VALUE_EXPR_LABELED_DURATION;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__NEST = XML_VALUE_FUNCTION__NEST;
+
+	/**
+     * The feature id for the '<em><b>Update Source Expr List</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__UPDATE_SOURCE_EXPR_LIST = XML_VALUE_FUNCTION__UPDATE_SOURCE_EXPR_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__TABLE_FUNCTION = XML_VALUE_FUNCTION__TABLE_FUNCTION;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__VALUE_EXPR_ROW = XML_VALUE_FUNCTION__VALUE_EXPR_ROW;
+
+    /**
+     * The feature id for the '<em><b>Call Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__CALL_STATEMENT = XML_VALUE_FUNCTION__CALL_STATEMENT;
+
+    /**
+     * The feature id for the '<em><b>Special Register</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__SPECIAL_REGISTER = XML_VALUE_FUNCTION__SPECIAL_REGISTER;
+
+	/**
+     * The feature id for the '<em><b>Distinct</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__DISTINCT = XML_VALUE_FUNCTION__DISTINCT;
+
+	/**
+     * The feature id for the '<em><b>Column Function</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__COLUMN_FUNCTION = XML_VALUE_FUNCTION__COLUMN_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Parameter List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__PARAMETER_LIST = XML_VALUE_FUNCTION__PARAMETER_LIST;
+
+	/**
+     * The feature id for the '<em><b>Function</b></em>' reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__FUNCTION = XML_VALUE_FUNCTION__FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Target Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__TARGET_NAME = XML_VALUE_FUNCTION_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Returning Option</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__RETURNING_OPTION = XML_VALUE_FUNCTION_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>PI Content</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI__PI_CONTENT = XML_VALUE_FUNCTION_FEATURE_COUNT + 2;
+
+	/**
+     * The number of structural features of the '<em>XML Value Function PI</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI_FEATURE_COUNT = XML_VALUE_FUNCTION_FEATURE_COUNT + 3;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionQueryImpl <em>XML Value Function Query</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionQueryImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionQuery()
+     * @generated
+     */
+    int XML_VALUE_FUNCTION_QUERY = 13;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__EANNOTATIONS = XML_VALUE_FUNCTION__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__NAME = XML_VALUE_FUNCTION__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__DEPENDENCIES = XML_VALUE_FUNCTION__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__DESCRIPTION = XML_VALUE_FUNCTION__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__LABEL = XML_VALUE_FUNCTION__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_QUERY__COMMENTS = XML_VALUE_FUNCTION__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__EXTENSIONS = XML_VALUE_FUNCTION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_QUERY__PRIVILEGES = XML_VALUE_FUNCTION__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Unary Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__UNARY_OPERATOR = XML_VALUE_FUNCTION__UNARY_OPERATOR;
+
+	/**
+     * The feature id for the '<em><b>Data Type</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__DATA_TYPE = XML_VALUE_FUNCTION__DATA_TYPE;
+
+	/**
+     * The feature id for the '<em><b>Values Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__VALUES_ROW = XML_VALUE_FUNCTION__VALUES_ROW;
+
+	/**
+     * The feature id for the '<em><b>Order By Value Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__ORDER_BY_VALUE_EXPR = XML_VALUE_FUNCTION__ORDER_BY_VALUE_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Result Column</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__RESULT_COLUMN = XML_VALUE_FUNCTION__RESULT_COLUMN;
+
+	/**
+     * The feature id for the '<em><b>Basic Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__BASIC_RIGHT = XML_VALUE_FUNCTION__BASIC_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Basic Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__BASIC_LEFT = XML_VALUE_FUNCTION__BASIC_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Like Pattern</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__LIKE_PATTERN = XML_VALUE_FUNCTION__LIKE_PATTERN;
+
+	/**
+     * The feature id for the '<em><b>Like Matching</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__LIKE_MATCHING = XML_VALUE_FUNCTION__LIKE_MATCHING;
+
+	/**
+     * The feature id for the '<em><b>Predicate Null</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__PREDICATE_NULL = XML_VALUE_FUNCTION__PREDICATE_NULL;
+
+	/**
+     * The feature id for the '<em><b>In Value List Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__IN_VALUE_LIST_RIGHT = XML_VALUE_FUNCTION__IN_VALUE_LIST_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>In Value List Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__IN_VALUE_LIST_LEFT = XML_VALUE_FUNCTION__IN_VALUE_LIST_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__IN_VALUE_ROW_SELECT_LEFT = XML_VALUE_FUNCTION__IN_VALUE_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__IN_VALUE_SELECT_LEFT = XML_VALUE_FUNCTION__IN_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__QUANTIFIED_ROW_SELECT_LEFT = XML_VALUE_FUNCTION__QUANTIFIED_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__QUANTIFIED_VALUE_SELECT_LEFT = XML_VALUE_FUNCTION__QUANTIFIED_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__BETWEEN_LEFT = XML_VALUE_FUNCTION__BETWEEN_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Right1</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__BETWEEN_RIGHT1 = XML_VALUE_FUNCTION__BETWEEN_RIGHT1;
+
+	/**
+     * The feature id for the '<em><b>Between Right2</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__BETWEEN_RIGHT2 = XML_VALUE_FUNCTION__BETWEEN_RIGHT2;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Cast</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__VALUE_EXPR_CAST = XML_VALUE_FUNCTION__VALUE_EXPR_CAST;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__VALUE_EXPR_FUNCTION = XML_VALUE_FUNCTION__VALUE_EXPR_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__VALUE_EXPR_COMBINED_LEFT = XML_VALUE_FUNCTION__VALUE_EXPR_COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__VALUE_EXPR_COMBINED_RIGHT = XML_VALUE_FUNCTION__VALUE_EXPR_COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Grouping Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__GROUPING_EXPR = XML_VALUE_FUNCTION__GROUPING_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Else</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__VALUE_EXPR_CASE_ELSE = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_ELSE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__VALUE_EXPR_CASE_SIMPLE = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_SIMPLE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content When</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content Result</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__VALUE_EXPR_CASE_SEARCH_CONTENT = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Like Escape</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__LIKE_ESCAPE = XML_VALUE_FUNCTION__LIKE_ESCAPE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Labeled Duration</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__VALUE_EXPR_LABELED_DURATION = XML_VALUE_FUNCTION__VALUE_EXPR_LABELED_DURATION;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__NEST = XML_VALUE_FUNCTION__NEST;
+
+	/**
+     * The feature id for the '<em><b>Update Source Expr List</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__UPDATE_SOURCE_EXPR_LIST = XML_VALUE_FUNCTION__UPDATE_SOURCE_EXPR_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__TABLE_FUNCTION = XML_VALUE_FUNCTION__TABLE_FUNCTION;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__VALUE_EXPR_ROW = XML_VALUE_FUNCTION__VALUE_EXPR_ROW;
+
+    /**
+     * The feature id for the '<em><b>Call Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__CALL_STATEMENT = XML_VALUE_FUNCTION__CALL_STATEMENT;
+
+    /**
+     * The feature id for the '<em><b>Special Register</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__SPECIAL_REGISTER = XML_VALUE_FUNCTION__SPECIAL_REGISTER;
+
+	/**
+     * The feature id for the '<em><b>Distinct</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__DISTINCT = XML_VALUE_FUNCTION__DISTINCT;
+
+	/**
+     * The feature id for the '<em><b>Column Function</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__COLUMN_FUNCTION = XML_VALUE_FUNCTION__COLUMN_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Parameter List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__PARAMETER_LIST = XML_VALUE_FUNCTION__PARAMETER_LIST;
+
+	/**
+     * The feature id for the '<em><b>Function</b></em>' reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__FUNCTION = XML_VALUE_FUNCTION__FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Empty Handling Option</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__EMPTY_HANDLING_OPTION = XML_VALUE_FUNCTION_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Xquery Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__XQUERY_EXPR = XML_VALUE_FUNCTION_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>Xquery Arg List</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__XQUERY_ARG_LIST = XML_VALUE_FUNCTION_FEATURE_COUNT + 2;
+
+	/**
+     * The feature id for the '<em><b>Query Returning</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY__QUERY_RETURNING = XML_VALUE_FUNCTION_FEATURE_COUNT + 3;
+
+	/**
+     * The number of structural features of the '<em>XML Value Function Query</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY_FEATURE_COUNT = XML_VALUE_FUNCTION_FEATURE_COUNT + 4;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionTextImpl <em>XML Value Function Text</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionTextImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionText()
+     * @generated
+     */
+    int XML_VALUE_FUNCTION_TEXT = 14;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__EANNOTATIONS = XML_VALUE_FUNCTION__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__NAME = XML_VALUE_FUNCTION__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__DEPENDENCIES = XML_VALUE_FUNCTION__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__DESCRIPTION = XML_VALUE_FUNCTION__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__LABEL = XML_VALUE_FUNCTION__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_TEXT__COMMENTS = XML_VALUE_FUNCTION__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__EXTENSIONS = XML_VALUE_FUNCTION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_TEXT__PRIVILEGES = XML_VALUE_FUNCTION__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Unary Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__UNARY_OPERATOR = XML_VALUE_FUNCTION__UNARY_OPERATOR;
+
+	/**
+     * The feature id for the '<em><b>Data Type</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__DATA_TYPE = XML_VALUE_FUNCTION__DATA_TYPE;
+
+	/**
+     * The feature id for the '<em><b>Values Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__VALUES_ROW = XML_VALUE_FUNCTION__VALUES_ROW;
+
+	/**
+     * The feature id for the '<em><b>Order By Value Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__ORDER_BY_VALUE_EXPR = XML_VALUE_FUNCTION__ORDER_BY_VALUE_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Result Column</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__RESULT_COLUMN = XML_VALUE_FUNCTION__RESULT_COLUMN;
+
+	/**
+     * The feature id for the '<em><b>Basic Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__BASIC_RIGHT = XML_VALUE_FUNCTION__BASIC_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Basic Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__BASIC_LEFT = XML_VALUE_FUNCTION__BASIC_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Like Pattern</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__LIKE_PATTERN = XML_VALUE_FUNCTION__LIKE_PATTERN;
+
+	/**
+     * The feature id for the '<em><b>Like Matching</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__LIKE_MATCHING = XML_VALUE_FUNCTION__LIKE_MATCHING;
+
+	/**
+     * The feature id for the '<em><b>Predicate Null</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__PREDICATE_NULL = XML_VALUE_FUNCTION__PREDICATE_NULL;
+
+	/**
+     * The feature id for the '<em><b>In Value List Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__IN_VALUE_LIST_RIGHT = XML_VALUE_FUNCTION__IN_VALUE_LIST_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>In Value List Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__IN_VALUE_LIST_LEFT = XML_VALUE_FUNCTION__IN_VALUE_LIST_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__IN_VALUE_ROW_SELECT_LEFT = XML_VALUE_FUNCTION__IN_VALUE_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__IN_VALUE_SELECT_LEFT = XML_VALUE_FUNCTION__IN_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__QUANTIFIED_ROW_SELECT_LEFT = XML_VALUE_FUNCTION__QUANTIFIED_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__QUANTIFIED_VALUE_SELECT_LEFT = XML_VALUE_FUNCTION__QUANTIFIED_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__BETWEEN_LEFT = XML_VALUE_FUNCTION__BETWEEN_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Right1</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__BETWEEN_RIGHT1 = XML_VALUE_FUNCTION__BETWEEN_RIGHT1;
+
+	/**
+     * The feature id for the '<em><b>Between Right2</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__BETWEEN_RIGHT2 = XML_VALUE_FUNCTION__BETWEEN_RIGHT2;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Cast</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__VALUE_EXPR_CAST = XML_VALUE_FUNCTION__VALUE_EXPR_CAST;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__VALUE_EXPR_FUNCTION = XML_VALUE_FUNCTION__VALUE_EXPR_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__VALUE_EXPR_COMBINED_LEFT = XML_VALUE_FUNCTION__VALUE_EXPR_COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__VALUE_EXPR_COMBINED_RIGHT = XML_VALUE_FUNCTION__VALUE_EXPR_COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Grouping Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__GROUPING_EXPR = XML_VALUE_FUNCTION__GROUPING_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Else</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__VALUE_EXPR_CASE_ELSE = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_ELSE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__VALUE_EXPR_CASE_SIMPLE = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_SIMPLE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content When</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content Result</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__VALUE_EXPR_CASE_SEARCH_CONTENT = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Like Escape</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__LIKE_ESCAPE = XML_VALUE_FUNCTION__LIKE_ESCAPE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Labeled Duration</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__VALUE_EXPR_LABELED_DURATION = XML_VALUE_FUNCTION__VALUE_EXPR_LABELED_DURATION;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__NEST = XML_VALUE_FUNCTION__NEST;
+
+	/**
+     * The feature id for the '<em><b>Update Source Expr List</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__UPDATE_SOURCE_EXPR_LIST = XML_VALUE_FUNCTION__UPDATE_SOURCE_EXPR_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__TABLE_FUNCTION = XML_VALUE_FUNCTION__TABLE_FUNCTION;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__VALUE_EXPR_ROW = XML_VALUE_FUNCTION__VALUE_EXPR_ROW;
+
+    /**
+     * The feature id for the '<em><b>Call Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__CALL_STATEMENT = XML_VALUE_FUNCTION__CALL_STATEMENT;
+
+    /**
+     * The feature id for the '<em><b>Special Register</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__SPECIAL_REGISTER = XML_VALUE_FUNCTION__SPECIAL_REGISTER;
+
+	/**
+     * The feature id for the '<em><b>Distinct</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__DISTINCT = XML_VALUE_FUNCTION__DISTINCT;
+
+	/**
+     * The feature id for the '<em><b>Column Function</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__COLUMN_FUNCTION = XML_VALUE_FUNCTION__COLUMN_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Parameter List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__PARAMETER_LIST = XML_VALUE_FUNCTION__PARAMETER_LIST;
+
+	/**
+     * The feature id for the '<em><b>Function</b></em>' reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__FUNCTION = XML_VALUE_FUNCTION__FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Returning Option</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__RETURNING_OPTION = XML_VALUE_FUNCTION_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Text Content</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT__TEXT_CONTENT = XML_VALUE_FUNCTION_FEATURE_COUNT + 1;
+
+	/**
+     * The number of structural features of the '<em>XML Value Function Text</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT_FEATURE_COUNT = XML_VALUE_FUNCTION_FEATURE_COUNT + 2;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateImpl <em>XML Value Function Validate</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionValidate()
+     * @generated
+     */
+    int XML_VALUE_FUNCTION_VALIDATE = 15;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__EANNOTATIONS = XML_VALUE_FUNCTION__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__NAME = XML_VALUE_FUNCTION__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__DEPENDENCIES = XML_VALUE_FUNCTION__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__DESCRIPTION = XML_VALUE_FUNCTION__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__LABEL = XML_VALUE_FUNCTION__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_VALIDATE__COMMENTS = XML_VALUE_FUNCTION__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__EXTENSIONS = XML_VALUE_FUNCTION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_VALIDATE__PRIVILEGES = XML_VALUE_FUNCTION__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Unary Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__UNARY_OPERATOR = XML_VALUE_FUNCTION__UNARY_OPERATOR;
+
+	/**
+     * The feature id for the '<em><b>Data Type</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__DATA_TYPE = XML_VALUE_FUNCTION__DATA_TYPE;
+
+	/**
+     * The feature id for the '<em><b>Values Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__VALUES_ROW = XML_VALUE_FUNCTION__VALUES_ROW;
+
+	/**
+     * The feature id for the '<em><b>Order By Value Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__ORDER_BY_VALUE_EXPR = XML_VALUE_FUNCTION__ORDER_BY_VALUE_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Result Column</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__RESULT_COLUMN = XML_VALUE_FUNCTION__RESULT_COLUMN;
+
+	/**
+     * The feature id for the '<em><b>Basic Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__BASIC_RIGHT = XML_VALUE_FUNCTION__BASIC_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Basic Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__BASIC_LEFT = XML_VALUE_FUNCTION__BASIC_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Like Pattern</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__LIKE_PATTERN = XML_VALUE_FUNCTION__LIKE_PATTERN;
+
+	/**
+     * The feature id for the '<em><b>Like Matching</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__LIKE_MATCHING = XML_VALUE_FUNCTION__LIKE_MATCHING;
+
+	/**
+     * The feature id for the '<em><b>Predicate Null</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__PREDICATE_NULL = XML_VALUE_FUNCTION__PREDICATE_NULL;
+
+	/**
+     * The feature id for the '<em><b>In Value List Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__IN_VALUE_LIST_RIGHT = XML_VALUE_FUNCTION__IN_VALUE_LIST_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>In Value List Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__IN_VALUE_LIST_LEFT = XML_VALUE_FUNCTION__IN_VALUE_LIST_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__IN_VALUE_ROW_SELECT_LEFT = XML_VALUE_FUNCTION__IN_VALUE_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__IN_VALUE_SELECT_LEFT = XML_VALUE_FUNCTION__IN_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__QUANTIFIED_ROW_SELECT_LEFT = XML_VALUE_FUNCTION__QUANTIFIED_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__QUANTIFIED_VALUE_SELECT_LEFT = XML_VALUE_FUNCTION__QUANTIFIED_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__BETWEEN_LEFT = XML_VALUE_FUNCTION__BETWEEN_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Right1</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__BETWEEN_RIGHT1 = XML_VALUE_FUNCTION__BETWEEN_RIGHT1;
+
+	/**
+     * The feature id for the '<em><b>Between Right2</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__BETWEEN_RIGHT2 = XML_VALUE_FUNCTION__BETWEEN_RIGHT2;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Cast</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__VALUE_EXPR_CAST = XML_VALUE_FUNCTION__VALUE_EXPR_CAST;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__VALUE_EXPR_FUNCTION = XML_VALUE_FUNCTION__VALUE_EXPR_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__VALUE_EXPR_COMBINED_LEFT = XML_VALUE_FUNCTION__VALUE_EXPR_COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__VALUE_EXPR_COMBINED_RIGHT = XML_VALUE_FUNCTION__VALUE_EXPR_COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Grouping Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__GROUPING_EXPR = XML_VALUE_FUNCTION__GROUPING_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Else</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__VALUE_EXPR_CASE_ELSE = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_ELSE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__VALUE_EXPR_CASE_SIMPLE = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_SIMPLE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content When</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content Result</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__VALUE_EXPR_CASE_SEARCH_CONTENT = XML_VALUE_FUNCTION__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Like Escape</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__LIKE_ESCAPE = XML_VALUE_FUNCTION__LIKE_ESCAPE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Labeled Duration</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__VALUE_EXPR_LABELED_DURATION = XML_VALUE_FUNCTION__VALUE_EXPR_LABELED_DURATION;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__NEST = XML_VALUE_FUNCTION__NEST;
+
+	/**
+     * The feature id for the '<em><b>Update Source Expr List</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__UPDATE_SOURCE_EXPR_LIST = XML_VALUE_FUNCTION__UPDATE_SOURCE_EXPR_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__TABLE_FUNCTION = XML_VALUE_FUNCTION__TABLE_FUNCTION;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__VALUE_EXPR_ROW = XML_VALUE_FUNCTION__VALUE_EXPR_ROW;
+
+    /**
+     * The feature id for the '<em><b>Call Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__CALL_STATEMENT = XML_VALUE_FUNCTION__CALL_STATEMENT;
+
+    /**
+     * The feature id for the '<em><b>Special Register</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__SPECIAL_REGISTER = XML_VALUE_FUNCTION__SPECIAL_REGISTER;
+
+	/**
+     * The feature id for the '<em><b>Distinct</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__DISTINCT = XML_VALUE_FUNCTION__DISTINCT;
+
+	/**
+     * The feature id for the '<em><b>Column Function</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__COLUMN_FUNCTION = XML_VALUE_FUNCTION__COLUMN_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Parameter List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__PARAMETER_LIST = XML_VALUE_FUNCTION__PARAMETER_LIST;
+
+	/**
+     * The feature id for the '<em><b>Function</b></em>' reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__FUNCTION = XML_VALUE_FUNCTION__FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Content Option</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__CONTENT_OPTION = XML_VALUE_FUNCTION_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Validate Content</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__VALIDATE_CONTENT = XML_VALUE_FUNCTION_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>Validate According To</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE__VALIDATE_ACCORDING_TO = XML_VALUE_FUNCTION_FEATURE_COUNT + 2;
+
+	/**
+     * The number of structural features of the '<em>XML Value Function Validate</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_FEATURE_COUNT = XML_VALUE_FUNCTION_FEATURE_COUNT + 3;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueExpressionCastImpl <em>XML Value Expression Cast</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueExpressionCastImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueExpressionCast()
+     * @generated
+     */
+    int XML_VALUE_EXPRESSION_CAST = 16;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_EXPRESSION_CAST__EANNOTATIONS = SQLQueryModelPackage.VALUE_EXPRESSION_CAST__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_EXPRESSION_CAST__NAME = SQLQueryModelPackage.VALUE_EXPRESSION_CAST__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_EXPRESSION_CAST__DEPENDENCIES = SQLQueryModelPackage.VALUE_EXPRESSION_CAST__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_EXPRESSION_CAST__DESCRIPTION = SQLQueryModelPackage.VALUE_EXPRESSION_CAST__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_EXPRESSION_CAST__LABEL = SQLQueryModelPackage.VALUE_EXPRESSION_CAST__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_EXPRESSION_CAST__COMMENTS = SQLQueryModelPackage.VALUE_EXPRESSION_CAST__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_EXPRESSION_CAST__EXTENSIONS = SQLQueryModelPackage.VALUE_EXPRESSION_CAST__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_EXPRESSION_CAST__PRIVILEGES = SQLQueryModelPackage.VALUE_EXPRESSION_CAST__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Unary Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_EXPRESSION_CAST__UNARY_OPERATOR = SQLQueryModelPackage.VALUE_EXPRESSION_CAST__UNARY_OPERATOR;
+
+	/**
+     * The feature id for the '<em><b>Data Type</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_EXPRESSION_CAST__DATA_TYPE = SQLQueryModelPackage.VALUE_EXPRESSION_CAST__DATA_TYPE;
+
+	/**
+     * The feature id for the '<em><b>Values Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_EXPRESSION_CAST__VALUES_ROW = SQLQueryModelPackage.VALUE_EXPRESSION_CAST__VALUES_ROW;
+
+	/**
+     * The feature id for the '<em><b>Order By Value Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_EXPRESSION_CAST__ORDER_BY_VALUE_EXPR = SQLQueryModelPackage.VALUE_EXPRESSION_CAST__ORDER_BY_VALUE_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Result Column</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_EXPRESSION_CAST__RESULT_COLUMN = SQLQueryModelPackage.VALUE_EXPRESSION_CAST__RESULT_COLUMN;
+
+	/**
+     * The feature id for the '<em><b>Basic Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_EXPRESSION_CAST__BASIC_RIGHT = SQLQueryModelPackage.VALUE_EXPRESSION_CAST__BASIC_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Basic Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_EXPRESSION_CAST__BASIC_LEFT = SQLQueryModelPackage.VALUE_EXPRESSION_CAST__BASIC_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Like Pattern</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_EXPRESSION_CAST__LIKE_PATTERN = SQLQueryModelPackage.VALUE_EXPRESSION_CAST__LIKE_PATTERN;
+
+	/**
+     * The feature id for the '<em><b>Like Matching</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_EXPRESSION_CAST__LIKE_MATCHING = SQLQueryModelPackage.VALUE_EXPRESSION_CAST__LIKE_MATCHING;
+
+	/**
+     * The feature id for the '<em><b>Predicate Null</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_EXPRESSION_CAST__PREDICATE_NULL = SQLQueryModelPackage.VALUE_EXPRESSION_CAST__PREDICATE_NULL;
+
+	/**
+     * The feature id for the '<em><b>In Value List Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_EXPRESSION_CAST__IN_VALUE_LIST_RIGHT = SQLQueryModelPackage.VALUE_EXPRESSION_CAST__IN_VALUE_LIST_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>In Value List Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_EXPRESSION_CAST__IN_VALUE_LIST_LEFT = SQLQueryModelPackage.VALUE_EXPRESSION_CAST__IN_VALUE_LIST_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_EXPRESSION_CAST__IN_VALUE_ROW_SELECT_LEFT = SQLQueryModelPackage.VALUE_EXPRESSION_CAST__IN_VALUE_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_EXPRESSION_CAST__IN_VALUE_SELECT_LEFT = SQLQueryModelPackage.VALUE_EXPRESSION_CAST__IN_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_EXPRESSION_CAST__QUANTIFIED_ROW_SELECT_LEFT = SQLQueryModelPackage.VALUE_EXPRESSION_CAST__QUANTIFIED_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_EXPRESSION_CAST__QUANTIFIED_VALUE_SELECT_LEFT = SQLQueryModelPackage.VALUE_EXPRESSION_CAST__QUANTIFIED_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_EXPRESSION_CAST__BETWEEN_LEFT = SQLQueryModelPackage.VALUE_EXPRESSION_CAST__BETWEEN_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Right1</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_EXPRESSION_CAST__BETWEEN_RIGHT1 = SQLQueryModelPackage.VALUE_EXPRESSION_CAST__BETWEEN_RIGHT1;
+
+	/**
+     * The feature id for the '<em><b>Between Right2</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_EXPRESSION_CAST__BETWEEN_RIGHT2 = SQLQueryModelPackage.VALUE_EXPRESSION_CAST__BETWEEN_RIGHT2;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Cast</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_EXPRESSION_CAST__VALUE_EXPR_CAST = SQLQueryModelPackage.VALUE_EXPRESSION_CAST__VALUE_EXPR_CAST;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_EXPRESSION_CAST__VALUE_EXPR_FUNCTION = SQLQueryModelPackage.VALUE_EXPRESSION_CAST__VALUE_EXPR_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_EXPRESSION_CAST__VALUE_EXPR_COMBINED_LEFT = SQLQueryModelPackage.VALUE_EXPRESSION_CAST__VALUE_EXPR_COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_EXPRESSION_CAST__VALUE_EXPR_COMBINED_RIGHT = SQLQueryModelPackage.VALUE_EXPRESSION_CAST__VALUE_EXPR_COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Grouping Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_EXPRESSION_CAST__GROUPING_EXPR = SQLQueryModelPackage.VALUE_EXPRESSION_CAST__GROUPING_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Else</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_EXPRESSION_CAST__VALUE_EXPR_CASE_ELSE = SQLQueryModelPackage.VALUE_EXPRESSION_CAST__VALUE_EXPR_CASE_ELSE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_EXPRESSION_CAST__VALUE_EXPR_CASE_SIMPLE = SQLQueryModelPackage.VALUE_EXPRESSION_CAST__VALUE_EXPR_CASE_SIMPLE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content When</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_EXPRESSION_CAST__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN = SQLQueryModelPackage.VALUE_EXPRESSION_CAST__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content Result</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_EXPRESSION_CAST__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT = SQLQueryModelPackage.VALUE_EXPRESSION_CAST__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_EXPRESSION_CAST__VALUE_EXPR_CASE_SEARCH_CONTENT = SQLQueryModelPackage.VALUE_EXPRESSION_CAST__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Like Escape</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_EXPRESSION_CAST__LIKE_ESCAPE = SQLQueryModelPackage.VALUE_EXPRESSION_CAST__LIKE_ESCAPE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Labeled Duration</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_EXPRESSION_CAST__VALUE_EXPR_LABELED_DURATION = SQLQueryModelPackage.VALUE_EXPRESSION_CAST__VALUE_EXPR_LABELED_DURATION;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_EXPRESSION_CAST__NEST = SQLQueryModelPackage.VALUE_EXPRESSION_CAST__NEST;
+
+	/**
+     * The feature id for the '<em><b>Update Source Expr List</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_EXPRESSION_CAST__UPDATE_SOURCE_EXPR_LIST = SQLQueryModelPackage.VALUE_EXPRESSION_CAST__UPDATE_SOURCE_EXPR_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_EXPRESSION_CAST__TABLE_FUNCTION = SQLQueryModelPackage.VALUE_EXPRESSION_CAST__TABLE_FUNCTION;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_EXPRESSION_CAST__VALUE_EXPR_ROW = SQLQueryModelPackage.VALUE_EXPRESSION_CAST__VALUE_EXPR_ROW;
+
+    /**
+     * The feature id for the '<em><b>Call Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_EXPRESSION_CAST__CALL_STATEMENT = SQLQueryModelPackage.VALUE_EXPRESSION_CAST__CALL_STATEMENT;
+
+    /**
+     * The feature id for the '<em><b>Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_EXPRESSION_CAST__VALUE_EXPR = SQLQueryModelPackage.VALUE_EXPRESSION_CAST__VALUE_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Passing Mechanism</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_EXPRESSION_CAST__PASSING_MECHANISM = SQLQueryModelPackage.VALUE_EXPRESSION_CAST_FEATURE_COUNT + 0;
+
+	/**
+     * The number of structural features of the '<em>XML Value Expression Cast</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_EXPRESSION_CAST_FEATURE_COUNT = SQLQueryModelPackage.VALUE_EXPRESSION_CAST_FEATURE_COUNT + 1;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLPredicateImpl <em>XML Predicate</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLPredicateImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLPredicate()
+     * @generated
+     */
+    int XML_PREDICATE = 17;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE__EANNOTATIONS = SQLQueryModelPackage.PREDICATE__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE__NAME = SQLQueryModelPackage.PREDICATE__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE__DEPENDENCIES = SQLQueryModelPackage.PREDICATE__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE__DESCRIPTION = SQLQueryModelPackage.PREDICATE__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE__LABEL = SQLQueryModelPackage.PREDICATE__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_PREDICATE__COMMENTS = SQLQueryModelPackage.PREDICATE__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE__EXTENSIONS = SQLQueryModelPackage.PREDICATE__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_PREDICATE__PRIVILEGES = SQLQueryModelPackage.PREDICATE__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Negated Condition</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE__NEGATED_CONDITION = SQLQueryModelPackage.PREDICATE__NEGATED_CONDITION;
+
+	/**
+     * The feature id for the '<em><b>Update Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE__UPDATE_STATEMENT = SQLQueryModelPackage.PREDICATE__UPDATE_STATEMENT;
+
+	/**
+     * The feature id for the '<em><b>Delete Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE__DELETE_STATEMENT = SQLQueryModelPackage.PREDICATE__DELETE_STATEMENT;
+
+	/**
+     * The feature id for the '<em><b>Table Joined</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE__TABLE_JOINED = SQLQueryModelPackage.PREDICATE__TABLE_JOINED;
+
+	/**
+     * The feature id for the '<em><b>Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE__COMBINED_LEFT = SQLQueryModelPackage.PREDICATE__COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE__COMBINED_RIGHT = SQLQueryModelPackage.PREDICATE__COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Query Select Having</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE__QUERY_SELECT_HAVING = SQLQueryModelPackage.PREDICATE__QUERY_SELECT_HAVING;
+
+	/**
+     * The feature id for the '<em><b>Query Select Where</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE__QUERY_SELECT_WHERE = SQLQueryModelPackage.PREDICATE__QUERY_SELECT_WHERE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE__VALUE_EXPR_CASE_SEARCH_CONTENT = SQLQueryModelPackage.PREDICATE__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE__NEST = SQLQueryModelPackage.PREDICATE__NEST;
+
+	/**
+     * The feature id for the '<em><b>Merge On Condition</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE__MERGE_ON_CONDITION = SQLQueryModelPackage.PREDICATE__MERGE_ON_CONDITION;
+
+    /**
+     * The feature id for the '<em><b>Negated Predicate</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE__NEGATED_PREDICATE = SQLQueryModelPackage.PREDICATE__NEGATED_PREDICATE;
+
+	/**
+     * The feature id for the '<em><b>Has Selectivity</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE__HAS_SELECTIVITY = SQLQueryModelPackage.PREDICATE__HAS_SELECTIVITY;
+
+	/**
+     * The feature id for the '<em><b>Selectivity Value</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE__SELECTIVITY_VALUE = SQLQueryModelPackage.PREDICATE__SELECTIVITY_VALUE;
+
+	/**
+     * The number of structural features of the '<em>XML Predicate</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_FEATURE_COUNT = SQLQueryModelPackage.PREDICATE_FEATURE_COUNT + 0;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLPredicateContentImpl <em>XML Predicate Content</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLPredicateContentImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLPredicateContent()
+     * @generated
+     */
+    int XML_PREDICATE_CONTENT = 18;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_CONTENT__EANNOTATIONS = XML_PREDICATE__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_CONTENT__NAME = XML_PREDICATE__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_CONTENT__DEPENDENCIES = XML_PREDICATE__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_CONTENT__DESCRIPTION = XML_PREDICATE__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_CONTENT__LABEL = XML_PREDICATE__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_PREDICATE_CONTENT__COMMENTS = XML_PREDICATE__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_CONTENT__EXTENSIONS = XML_PREDICATE__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_PREDICATE_CONTENT__PRIVILEGES = XML_PREDICATE__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Negated Condition</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_CONTENT__NEGATED_CONDITION = XML_PREDICATE__NEGATED_CONDITION;
+
+	/**
+     * The feature id for the '<em><b>Update Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_CONTENT__UPDATE_STATEMENT = XML_PREDICATE__UPDATE_STATEMENT;
+
+	/**
+     * The feature id for the '<em><b>Delete Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_CONTENT__DELETE_STATEMENT = XML_PREDICATE__DELETE_STATEMENT;
+
+	/**
+     * The feature id for the '<em><b>Table Joined</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_CONTENT__TABLE_JOINED = XML_PREDICATE__TABLE_JOINED;
+
+	/**
+     * The feature id for the '<em><b>Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_CONTENT__COMBINED_LEFT = XML_PREDICATE__COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_CONTENT__COMBINED_RIGHT = XML_PREDICATE__COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Query Select Having</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_CONTENT__QUERY_SELECT_HAVING = XML_PREDICATE__QUERY_SELECT_HAVING;
+
+	/**
+     * The feature id for the '<em><b>Query Select Where</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_CONTENT__QUERY_SELECT_WHERE = XML_PREDICATE__QUERY_SELECT_WHERE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_CONTENT__VALUE_EXPR_CASE_SEARCH_CONTENT = XML_PREDICATE__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_CONTENT__NEST = XML_PREDICATE__NEST;
+
+	/**
+     * The feature id for the '<em><b>Merge On Condition</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_CONTENT__MERGE_ON_CONDITION = XML_PREDICATE__MERGE_ON_CONDITION;
+
+    /**
+     * The feature id for the '<em><b>Negated Predicate</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_CONTENT__NEGATED_PREDICATE = XML_PREDICATE__NEGATED_PREDICATE;
+
+	/**
+     * The feature id for the '<em><b>Has Selectivity</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_CONTENT__HAS_SELECTIVITY = XML_PREDICATE__HAS_SELECTIVITY;
+
+	/**
+     * The feature id for the '<em><b>Selectivity Value</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_CONTENT__SELECTIVITY_VALUE = XML_PREDICATE__SELECTIVITY_VALUE;
+
+	/**
+     * The number of structural features of the '<em>XML Predicate Content</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_CONTENT_FEATURE_COUNT = XML_PREDICATE_FEATURE_COUNT + 0;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLPredicateDocumentImpl <em>XML Predicate Document</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLPredicateDocumentImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLPredicateDocument()
+     * @generated
+     */
+    int XML_PREDICATE_DOCUMENT = 19;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_DOCUMENT__EANNOTATIONS = XML_PREDICATE__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_DOCUMENT__NAME = XML_PREDICATE__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_DOCUMENT__DEPENDENCIES = XML_PREDICATE__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_DOCUMENT__DESCRIPTION = XML_PREDICATE__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_DOCUMENT__LABEL = XML_PREDICATE__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_PREDICATE_DOCUMENT__COMMENTS = XML_PREDICATE__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_DOCUMENT__EXTENSIONS = XML_PREDICATE__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_PREDICATE_DOCUMENT__PRIVILEGES = XML_PREDICATE__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Negated Condition</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_DOCUMENT__NEGATED_CONDITION = XML_PREDICATE__NEGATED_CONDITION;
+
+	/**
+     * The feature id for the '<em><b>Update Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_DOCUMENT__UPDATE_STATEMENT = XML_PREDICATE__UPDATE_STATEMENT;
+
+	/**
+     * The feature id for the '<em><b>Delete Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_DOCUMENT__DELETE_STATEMENT = XML_PREDICATE__DELETE_STATEMENT;
+
+	/**
+     * The feature id for the '<em><b>Table Joined</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_DOCUMENT__TABLE_JOINED = XML_PREDICATE__TABLE_JOINED;
+
+	/**
+     * The feature id for the '<em><b>Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_DOCUMENT__COMBINED_LEFT = XML_PREDICATE__COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_DOCUMENT__COMBINED_RIGHT = XML_PREDICATE__COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Query Select Having</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_DOCUMENT__QUERY_SELECT_HAVING = XML_PREDICATE__QUERY_SELECT_HAVING;
+
+	/**
+     * The feature id for the '<em><b>Query Select Where</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_DOCUMENT__QUERY_SELECT_WHERE = XML_PREDICATE__QUERY_SELECT_WHERE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_DOCUMENT__VALUE_EXPR_CASE_SEARCH_CONTENT = XML_PREDICATE__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_DOCUMENT__NEST = XML_PREDICATE__NEST;
+
+	/**
+     * The feature id for the '<em><b>Merge On Condition</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_DOCUMENT__MERGE_ON_CONDITION = XML_PREDICATE__MERGE_ON_CONDITION;
+
+    /**
+     * The feature id for the '<em><b>Negated Predicate</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_DOCUMENT__NEGATED_PREDICATE = XML_PREDICATE__NEGATED_PREDICATE;
+
+	/**
+     * The feature id for the '<em><b>Has Selectivity</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_DOCUMENT__HAS_SELECTIVITY = XML_PREDICATE__HAS_SELECTIVITY;
+
+	/**
+     * The feature id for the '<em><b>Selectivity Value</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_DOCUMENT__SELECTIVITY_VALUE = XML_PREDICATE__SELECTIVITY_VALUE;
+
+	/**
+     * The number of structural features of the '<em>XML Predicate Document</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_DOCUMENT_FEATURE_COUNT = XML_PREDICATE_FEATURE_COUNT + 0;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLPredicateExistsImpl <em>XML Predicate Exists</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLPredicateExistsImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLPredicateExists()
+     * @generated
+     */
+    int XML_PREDICATE_EXISTS = 20;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_EXISTS__EANNOTATIONS = XML_PREDICATE__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_EXISTS__NAME = XML_PREDICATE__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_EXISTS__DEPENDENCIES = XML_PREDICATE__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_EXISTS__DESCRIPTION = XML_PREDICATE__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_EXISTS__LABEL = XML_PREDICATE__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_PREDICATE_EXISTS__COMMENTS = XML_PREDICATE__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_EXISTS__EXTENSIONS = XML_PREDICATE__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_PREDICATE_EXISTS__PRIVILEGES = XML_PREDICATE__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Negated Condition</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_EXISTS__NEGATED_CONDITION = XML_PREDICATE__NEGATED_CONDITION;
+
+	/**
+     * The feature id for the '<em><b>Update Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_EXISTS__UPDATE_STATEMENT = XML_PREDICATE__UPDATE_STATEMENT;
+
+	/**
+     * The feature id for the '<em><b>Delete Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_EXISTS__DELETE_STATEMENT = XML_PREDICATE__DELETE_STATEMENT;
+
+	/**
+     * The feature id for the '<em><b>Table Joined</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_EXISTS__TABLE_JOINED = XML_PREDICATE__TABLE_JOINED;
+
+	/**
+     * The feature id for the '<em><b>Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_EXISTS__COMBINED_LEFT = XML_PREDICATE__COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_EXISTS__COMBINED_RIGHT = XML_PREDICATE__COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Query Select Having</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_EXISTS__QUERY_SELECT_HAVING = XML_PREDICATE__QUERY_SELECT_HAVING;
+
+	/**
+     * The feature id for the '<em><b>Query Select Where</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_EXISTS__QUERY_SELECT_WHERE = XML_PREDICATE__QUERY_SELECT_WHERE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_EXISTS__VALUE_EXPR_CASE_SEARCH_CONTENT = XML_PREDICATE__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_EXISTS__NEST = XML_PREDICATE__NEST;
+
+	/**
+     * The feature id for the '<em><b>Merge On Condition</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_EXISTS__MERGE_ON_CONDITION = XML_PREDICATE__MERGE_ON_CONDITION;
+
+    /**
+     * The feature id for the '<em><b>Negated Predicate</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_EXISTS__NEGATED_PREDICATE = XML_PREDICATE__NEGATED_PREDICATE;
+
+	/**
+     * The feature id for the '<em><b>Has Selectivity</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_EXISTS__HAS_SELECTIVITY = XML_PREDICATE__HAS_SELECTIVITY;
+
+	/**
+     * The feature id for the '<em><b>Selectivity Value</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_EXISTS__SELECTIVITY_VALUE = XML_PREDICATE__SELECTIVITY_VALUE;
+
+	/**
+     * The feature id for the '<em><b>Xquery Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_EXISTS__XQUERY_EXPR = XML_PREDICATE_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Xquery Arg List</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_EXISTS__XQUERY_ARG_LIST = XML_PREDICATE_FEATURE_COUNT + 1;
+
+	/**
+     * The number of structural features of the '<em>XML Predicate Exists</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_EXISTS_FEATURE_COUNT = XML_PREDICATE_FEATURE_COUNT + 2;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLPredicateValidImpl <em>XML Predicate Valid</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLPredicateValidImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLPredicateValid()
+     * @generated
+     */
+    int XML_PREDICATE_VALID = 21;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_VALID__EANNOTATIONS = XML_PREDICATE__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_VALID__NAME = XML_PREDICATE__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_VALID__DEPENDENCIES = XML_PREDICATE__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_VALID__DESCRIPTION = XML_PREDICATE__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_VALID__LABEL = XML_PREDICATE__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_PREDICATE_VALID__COMMENTS = XML_PREDICATE__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_VALID__EXTENSIONS = XML_PREDICATE__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_PREDICATE_VALID__PRIVILEGES = XML_PREDICATE__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Negated Condition</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_VALID__NEGATED_CONDITION = XML_PREDICATE__NEGATED_CONDITION;
+
+	/**
+     * The feature id for the '<em><b>Update Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_VALID__UPDATE_STATEMENT = XML_PREDICATE__UPDATE_STATEMENT;
+
+	/**
+     * The feature id for the '<em><b>Delete Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_VALID__DELETE_STATEMENT = XML_PREDICATE__DELETE_STATEMENT;
+
+	/**
+     * The feature id for the '<em><b>Table Joined</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_VALID__TABLE_JOINED = XML_PREDICATE__TABLE_JOINED;
+
+	/**
+     * The feature id for the '<em><b>Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_VALID__COMBINED_LEFT = XML_PREDICATE__COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_VALID__COMBINED_RIGHT = XML_PREDICATE__COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Query Select Having</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_VALID__QUERY_SELECT_HAVING = XML_PREDICATE__QUERY_SELECT_HAVING;
+
+	/**
+     * The feature id for the '<em><b>Query Select Where</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_VALID__QUERY_SELECT_WHERE = XML_PREDICATE__QUERY_SELECT_WHERE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_VALID__VALUE_EXPR_CASE_SEARCH_CONTENT = XML_PREDICATE__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_VALID__NEST = XML_PREDICATE__NEST;
+
+	/**
+     * The feature id for the '<em><b>Merge On Condition</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_VALID__MERGE_ON_CONDITION = XML_PREDICATE__MERGE_ON_CONDITION;
+
+    /**
+     * The feature id for the '<em><b>Negated Predicate</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_VALID__NEGATED_PREDICATE = XML_PREDICATE__NEGATED_PREDICATE;
+
+	/**
+     * The feature id for the '<em><b>Has Selectivity</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_VALID__HAS_SELECTIVITY = XML_PREDICATE__HAS_SELECTIVITY;
+
+	/**
+     * The feature id for the '<em><b>Selectivity Value</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_VALID__SELECTIVITY_VALUE = XML_PREDICATE__SELECTIVITY_VALUE;
+
+	/**
+     * The number of structural features of the '<em>XML Predicate Valid</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_PREDICATE_VALID_FEATURE_COUNT = XML_PREDICATE_FEATURE_COUNT + 0;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLQueryExpressionImpl <em>XML Query Expression</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLQueryExpressionImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLQueryExpression()
+     * @generated
+     */
+    int XML_QUERY_EXPRESSION = 22;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_EXPRESSION__EANNOTATIONS = SQLQueryModelPackage.SQL_QUERY_OBJECT__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_EXPRESSION__NAME = SQLQueryModelPackage.SQL_QUERY_OBJECT__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_EXPRESSION__DEPENDENCIES = SQLQueryModelPackage.SQL_QUERY_OBJECT__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_EXPRESSION__DESCRIPTION = SQLQueryModelPackage.SQL_QUERY_OBJECT__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_EXPRESSION__LABEL = SQLQueryModelPackage.SQL_QUERY_OBJECT__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_QUERY_EXPRESSION__COMMENTS = SQLQueryModelPackage.SQL_QUERY_OBJECT__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_EXPRESSION__EXTENSIONS = SQLQueryModelPackage.SQL_QUERY_OBJECT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_QUERY_EXPRESSION__PRIVILEGES = SQLQueryModelPackage.SQL_QUERY_OBJECT__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Xquery Expr Content</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_EXPRESSION__XQUERY_EXPR_CONTENT = SQLQueryModelPackage.SQL_QUERY_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Predicate Exists</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_EXPRESSION__PREDICATE_EXISTS = SQLQueryModelPackage.SQL_QUERY_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>Value Function Query</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_EXPRESSION__VALUE_FUNCTION_QUERY = SQLQueryModelPackage.SQL_QUERY_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+     * The number of structural features of the '<em>XML Query Expression</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_EXPRESSION_FEATURE_COUNT = SQLQueryModelPackage.SQL_QUERY_OBJECT_FEATURE_COUNT + 3;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLQueryArgumentListImpl <em>XML Query Argument List</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLQueryArgumentListImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLQueryArgumentList()
+     * @generated
+     */
+    int XML_QUERY_ARGUMENT_LIST = 23;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_LIST__EANNOTATIONS = SQLQueryModelPackage.SQL_QUERY_OBJECT__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_LIST__NAME = SQLQueryModelPackage.SQL_QUERY_OBJECT__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_LIST__DEPENDENCIES = SQLQueryModelPackage.SQL_QUERY_OBJECT__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_LIST__DESCRIPTION = SQLQueryModelPackage.SQL_QUERY_OBJECT__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_LIST__LABEL = SQLQueryModelPackage.SQL_QUERY_OBJECT__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_QUERY_ARGUMENT_LIST__COMMENTS = SQLQueryModelPackage.SQL_QUERY_OBJECT__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_LIST__EXTENSIONS = SQLQueryModelPackage.SQL_QUERY_OBJECT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_QUERY_ARGUMENT_LIST__PRIVILEGES = SQLQueryModelPackage.SQL_QUERY_OBJECT__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Passing Mechanism</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_LIST__PASSING_MECHANISM = SQLQueryModelPackage.SQL_QUERY_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Predicate Exists</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_LIST__PREDICATE_EXISTS = SQLQueryModelPackage.SQL_QUERY_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>Xquery Arg List Children</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_LIST__XQUERY_ARG_LIST_CHILDREN = SQLQueryModelPackage.SQL_QUERY_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+     * The feature id for the '<em><b>Value Function Query</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_LIST__VALUE_FUNCTION_QUERY = SQLQueryModelPackage.SQL_QUERY_OBJECT_FEATURE_COUNT + 3;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_LIST__TABLE_FUNCTION = SQLQueryModelPackage.SQL_QUERY_OBJECT_FEATURE_COUNT + 4;
+
+	/**
+     * The number of structural features of the '<em>XML Query Argument List</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_LIST_FEATURE_COUNT = SQLQueryModelPackage.SQL_QUERY_OBJECT_FEATURE_COUNT + 5;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLQueryArgumentItemImpl <em>XML Query Argument Item</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLQueryArgumentItemImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLQueryArgumentItem()
+     * @generated
+     */
+    int XML_QUERY_ARGUMENT_ITEM = 24;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_ITEM__EANNOTATIONS = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_ITEM__NAME = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_ITEM__DEPENDENCIES = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_ITEM__DESCRIPTION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_ITEM__LABEL = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_QUERY_ARGUMENT_ITEM__COMMENTS = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_ITEM__EXTENSIONS = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_QUERY_ARGUMENT_ITEM__PRIVILEGES = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Unary Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_ITEM__UNARY_OPERATOR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__UNARY_OPERATOR;
+
+	/**
+     * The feature id for the '<em><b>Data Type</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_ITEM__DATA_TYPE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DATA_TYPE;
+
+	/**
+     * The feature id for the '<em><b>Values Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_ITEM__VALUES_ROW = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUES_ROW;
+
+	/**
+     * The feature id for the '<em><b>Order By Value Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_ITEM__ORDER_BY_VALUE_EXPR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__ORDER_BY_VALUE_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Result Column</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_ITEM__RESULT_COLUMN = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__RESULT_COLUMN;
+
+	/**
+     * The feature id for the '<em><b>Basic Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_ITEM__BASIC_RIGHT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Basic Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_ITEM__BASIC_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Like Pattern</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_ITEM__LIKE_PATTERN = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_PATTERN;
+
+	/**
+     * The feature id for the '<em><b>Like Matching</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_ITEM__LIKE_MATCHING = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_MATCHING;
+
+	/**
+     * The feature id for the '<em><b>Predicate Null</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_ITEM__PREDICATE_NULL = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__PREDICATE_NULL;
+
+	/**
+     * The feature id for the '<em><b>In Value List Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_ITEM__IN_VALUE_LIST_RIGHT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>In Value List Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_ITEM__IN_VALUE_LIST_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_ITEM__IN_VALUE_ROW_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_ITEM__IN_VALUE_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_ITEM__QUANTIFIED_ROW_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_ITEM__QUANTIFIED_VALUE_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_ITEM__BETWEEN_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Right1</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_ITEM__BETWEEN_RIGHT1 = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT1;
+
+	/**
+     * The feature id for the '<em><b>Between Right2</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_ITEM__BETWEEN_RIGHT2 = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT2;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Cast</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_ITEM__VALUE_EXPR_CAST = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CAST;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_ITEM__VALUE_EXPR_FUNCTION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_ITEM__VALUE_EXPR_COMBINED_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_ITEM__VALUE_EXPR_COMBINED_RIGHT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Grouping Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_ITEM__GROUPING_EXPR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__GROUPING_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Else</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_ITEM__VALUE_EXPR_CASE_ELSE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_ELSE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_ITEM__VALUE_EXPR_CASE_SIMPLE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content When</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_ITEM__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content Result</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_ITEM__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_ITEM__VALUE_EXPR_CASE_SEARCH_CONTENT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Like Escape</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_ITEM__LIKE_ESCAPE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_ESCAPE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Labeled Duration</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_ITEM__VALUE_EXPR_LABELED_DURATION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_LABELED_DURATION;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_ITEM__NEST = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__NEST;
+
+	/**
+     * The feature id for the '<em><b>Update Source Expr List</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_ITEM__UPDATE_SOURCE_EXPR_LIST = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__UPDATE_SOURCE_EXPR_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_ITEM__TABLE_FUNCTION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__TABLE_FUNCTION;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_ITEM__VALUE_EXPR_ROW = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_ROW;
+
+    /**
+     * The feature id for the '<em><b>Call Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_ITEM__CALL_STATEMENT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__CALL_STATEMENT;
+
+    /**
+     * The feature id for the '<em><b>Passing Mechanism</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_ITEM__PASSING_MECHANISM = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Xquery Arg List</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_ITEM__XQUERY_ARG_LIST = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_ITEM__VALUE_EXPR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 2;
+
+	/**
+     * The number of structural features of the '<em>XML Query Argument Item</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_QUERY_ARGUMENT_ITEM_FEATURE_COUNT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 3;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLSerializeFunctionImpl <em>XML Serialize Function</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLSerializeFunctionImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLSerializeFunction()
+     * @generated
+     */
+    int XML_SERIALIZE_FUNCTION = 25;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__EANNOTATIONS = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__NAME = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__DEPENDENCIES = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__DESCRIPTION = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__LABEL = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_SERIALIZE_FUNCTION__COMMENTS = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__EXTENSIONS = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_SERIALIZE_FUNCTION__PRIVILEGES = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Unary Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__UNARY_OPERATOR = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__UNARY_OPERATOR;
+
+	/**
+     * The feature id for the '<em><b>Data Type</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__DATA_TYPE = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__DATA_TYPE;
+
+	/**
+     * The feature id for the '<em><b>Values Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__VALUES_ROW = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__VALUES_ROW;
+
+	/**
+     * The feature id for the '<em><b>Order By Value Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__ORDER_BY_VALUE_EXPR = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__ORDER_BY_VALUE_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Result Column</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__RESULT_COLUMN = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__RESULT_COLUMN;
+
+	/**
+     * The feature id for the '<em><b>Basic Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__BASIC_RIGHT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__BASIC_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Basic Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__BASIC_LEFT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__BASIC_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Like Pattern</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__LIKE_PATTERN = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__LIKE_PATTERN;
+
+	/**
+     * The feature id for the '<em><b>Like Matching</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__LIKE_MATCHING = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__LIKE_MATCHING;
+
+	/**
+     * The feature id for the '<em><b>Predicate Null</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__PREDICATE_NULL = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__PREDICATE_NULL;
+
+	/**
+     * The feature id for the '<em><b>In Value List Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__IN_VALUE_LIST_RIGHT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__IN_VALUE_LIST_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>In Value List Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__IN_VALUE_LIST_LEFT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__IN_VALUE_LIST_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__IN_VALUE_ROW_SELECT_LEFT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__IN_VALUE_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__IN_VALUE_SELECT_LEFT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__IN_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__QUANTIFIED_ROW_SELECT_LEFT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__QUANTIFIED_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__QUANTIFIED_VALUE_SELECT_LEFT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__QUANTIFIED_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__BETWEEN_LEFT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__BETWEEN_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Right1</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__BETWEEN_RIGHT1 = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__BETWEEN_RIGHT1;
+
+	/**
+     * The feature id for the '<em><b>Between Right2</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__BETWEEN_RIGHT2 = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__BETWEEN_RIGHT2;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Cast</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__VALUE_EXPR_CAST = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__VALUE_EXPR_CAST;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__VALUE_EXPR_FUNCTION = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__VALUE_EXPR_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__VALUE_EXPR_COMBINED_LEFT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__VALUE_EXPR_COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__VALUE_EXPR_COMBINED_RIGHT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__VALUE_EXPR_COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Grouping Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__GROUPING_EXPR = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__GROUPING_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Else</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__VALUE_EXPR_CASE_ELSE = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__VALUE_EXPR_CASE_ELSE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__VALUE_EXPR_CASE_SIMPLE = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__VALUE_EXPR_CASE_SIMPLE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content When</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content Result</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__VALUE_EXPR_CASE_SEARCH_CONTENT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Like Escape</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__LIKE_ESCAPE = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__LIKE_ESCAPE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Labeled Duration</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__VALUE_EXPR_LABELED_DURATION = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__VALUE_EXPR_LABELED_DURATION;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__NEST = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__NEST;
+
+	/**
+     * The feature id for the '<em><b>Update Source Expr List</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__UPDATE_SOURCE_EXPR_LIST = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__UPDATE_SOURCE_EXPR_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__TABLE_FUNCTION = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__TABLE_FUNCTION;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__VALUE_EXPR_ROW = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__VALUE_EXPR_ROW;
+
+    /**
+     * The feature id for the '<em><b>Call Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__CALL_STATEMENT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__CALL_STATEMENT;
+
+    /**
+     * The feature id for the '<em><b>Special Register</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__SPECIAL_REGISTER = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__SPECIAL_REGISTER;
+
+	/**
+     * The feature id for the '<em><b>Distinct</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__DISTINCT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__DISTINCT;
+
+	/**
+     * The feature id for the '<em><b>Column Function</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__COLUMN_FUNCTION = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__COLUMN_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Parameter List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__PARAMETER_LIST = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__PARAMETER_LIST;
+
+	/**
+     * The feature id for the '<em><b>Function</b></em>' reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__FUNCTION = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Content Option</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__CONTENT_OPTION = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Serialize Version</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__SERIALIZE_VERSION = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>Declaration Option</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__DECLARATION_OPTION = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION_FEATURE_COUNT + 2;
+
+	/**
+     * The feature id for the '<em><b>Serialize Target</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__SERIALIZE_TARGET = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION_FEATURE_COUNT + 3;
+
+	/**
+     * The feature id for the '<em><b>Serialize Encoding</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION__SERIALIZE_ENCODING = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION_FEATURE_COUNT + 4;
+
+	/**
+     * The number of structural features of the '<em>XML Serialize Function</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_FEATURE_COUNT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION_FEATURE_COUNT + 5;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLSerializeFunctionTargetImpl <em>XML Serialize Function Target</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLSerializeFunctionTargetImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLSerializeFunctionTarget()
+     * @generated
+     */
+    int XML_SERIALIZE_FUNCTION_TARGET = 26;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_TARGET__EANNOTATIONS = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_TARGET__NAME = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_TARGET__DEPENDENCIES = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_TARGET__DESCRIPTION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_TARGET__LABEL = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_SERIALIZE_FUNCTION_TARGET__COMMENTS = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_TARGET__EXTENSIONS = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_SERIALIZE_FUNCTION_TARGET__PRIVILEGES = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Unary Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_TARGET__UNARY_OPERATOR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__UNARY_OPERATOR;
+
+	/**
+     * The feature id for the '<em><b>Data Type</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_TARGET__DATA_TYPE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DATA_TYPE;
+
+	/**
+     * The feature id for the '<em><b>Values Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_TARGET__VALUES_ROW = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUES_ROW;
+
+	/**
+     * The feature id for the '<em><b>Order By Value Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_TARGET__ORDER_BY_VALUE_EXPR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__ORDER_BY_VALUE_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Result Column</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_TARGET__RESULT_COLUMN = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__RESULT_COLUMN;
+
+	/**
+     * The feature id for the '<em><b>Basic Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_TARGET__BASIC_RIGHT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Basic Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_TARGET__BASIC_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Like Pattern</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_TARGET__LIKE_PATTERN = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_PATTERN;
+
+	/**
+     * The feature id for the '<em><b>Like Matching</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_TARGET__LIKE_MATCHING = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_MATCHING;
+
+	/**
+     * The feature id for the '<em><b>Predicate Null</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_TARGET__PREDICATE_NULL = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__PREDICATE_NULL;
+
+	/**
+     * The feature id for the '<em><b>In Value List Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_TARGET__IN_VALUE_LIST_RIGHT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>In Value List Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_TARGET__IN_VALUE_LIST_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_TARGET__IN_VALUE_ROW_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_TARGET__IN_VALUE_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_TARGET__QUANTIFIED_ROW_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_TARGET__QUANTIFIED_VALUE_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_TARGET__BETWEEN_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Right1</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_TARGET__BETWEEN_RIGHT1 = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT1;
+
+	/**
+     * The feature id for the '<em><b>Between Right2</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_TARGET__BETWEEN_RIGHT2 = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT2;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Cast</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_TARGET__VALUE_EXPR_CAST = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CAST;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_TARGET__VALUE_EXPR_FUNCTION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_TARGET__VALUE_EXPR_COMBINED_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_TARGET__VALUE_EXPR_COMBINED_RIGHT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Grouping Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_TARGET__GROUPING_EXPR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__GROUPING_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Else</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_TARGET__VALUE_EXPR_CASE_ELSE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_ELSE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_TARGET__VALUE_EXPR_CASE_SIMPLE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content When</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_TARGET__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content Result</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_TARGET__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_TARGET__VALUE_EXPR_CASE_SEARCH_CONTENT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Like Escape</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_TARGET__LIKE_ESCAPE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_ESCAPE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Labeled Duration</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_TARGET__VALUE_EXPR_LABELED_DURATION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_LABELED_DURATION;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_TARGET__NEST = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__NEST;
+
+	/**
+     * The feature id for the '<em><b>Update Source Expr List</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_TARGET__UPDATE_SOURCE_EXPR_LIST = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__UPDATE_SOURCE_EXPR_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_TARGET__TABLE_FUNCTION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__TABLE_FUNCTION;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_TARGET__VALUE_EXPR_ROW = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_ROW;
+
+    /**
+     * The feature id for the '<em><b>Call Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_TARGET__CALL_STATEMENT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__CALL_STATEMENT;
+
+    /**
+     * The feature id for the '<em><b>Serialize Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_TARGET__SERIALIZE_FUNCTION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_TARGET__VALUE_EXPR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 1;
+
+	/**
+     * The number of structural features of the '<em>XML Serialize Function Target</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_TARGET_FEATURE_COUNT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 2;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLAggregateFunctionImpl <em>XML Aggregate Function</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLAggregateFunctionImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLAggregateFunction()
+     * @generated
+     */
+    int XML_AGGREGATE_FUNCTION = 27;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__EANNOTATIONS = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__NAME = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__DEPENDENCIES = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__DESCRIPTION = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__LABEL = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_AGGREGATE_FUNCTION__COMMENTS = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__EXTENSIONS = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_AGGREGATE_FUNCTION__PRIVILEGES = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Unary Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__UNARY_OPERATOR = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__UNARY_OPERATOR;
+
+	/**
+     * The feature id for the '<em><b>Data Type</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__DATA_TYPE = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__DATA_TYPE;
+
+	/**
+     * The feature id for the '<em><b>Values Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__VALUES_ROW = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__VALUES_ROW;
+
+	/**
+     * The feature id for the '<em><b>Order By Value Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__ORDER_BY_VALUE_EXPR = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__ORDER_BY_VALUE_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Result Column</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__RESULT_COLUMN = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__RESULT_COLUMN;
+
+	/**
+     * The feature id for the '<em><b>Basic Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__BASIC_RIGHT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__BASIC_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Basic Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__BASIC_LEFT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__BASIC_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Like Pattern</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__LIKE_PATTERN = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__LIKE_PATTERN;
+
+	/**
+     * The feature id for the '<em><b>Like Matching</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__LIKE_MATCHING = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__LIKE_MATCHING;
+
+	/**
+     * The feature id for the '<em><b>Predicate Null</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__PREDICATE_NULL = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__PREDICATE_NULL;
+
+	/**
+     * The feature id for the '<em><b>In Value List Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__IN_VALUE_LIST_RIGHT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__IN_VALUE_LIST_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>In Value List Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__IN_VALUE_LIST_LEFT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__IN_VALUE_LIST_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__IN_VALUE_ROW_SELECT_LEFT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__IN_VALUE_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__IN_VALUE_SELECT_LEFT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__IN_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__QUANTIFIED_ROW_SELECT_LEFT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__QUANTIFIED_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__QUANTIFIED_VALUE_SELECT_LEFT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__QUANTIFIED_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__BETWEEN_LEFT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__BETWEEN_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Right1</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__BETWEEN_RIGHT1 = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__BETWEEN_RIGHT1;
+
+	/**
+     * The feature id for the '<em><b>Between Right2</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__BETWEEN_RIGHT2 = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__BETWEEN_RIGHT2;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Cast</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__VALUE_EXPR_CAST = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__VALUE_EXPR_CAST;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__VALUE_EXPR_FUNCTION = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__VALUE_EXPR_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__VALUE_EXPR_COMBINED_LEFT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__VALUE_EXPR_COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__VALUE_EXPR_COMBINED_RIGHT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__VALUE_EXPR_COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Grouping Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__GROUPING_EXPR = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__GROUPING_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Else</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__VALUE_EXPR_CASE_ELSE = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__VALUE_EXPR_CASE_ELSE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__VALUE_EXPR_CASE_SIMPLE = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__VALUE_EXPR_CASE_SIMPLE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content When</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content Result</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__VALUE_EXPR_CASE_SEARCH_CONTENT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Like Escape</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__LIKE_ESCAPE = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__LIKE_ESCAPE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Labeled Duration</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__VALUE_EXPR_LABELED_DURATION = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__VALUE_EXPR_LABELED_DURATION;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__NEST = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__NEST;
+
+	/**
+     * The feature id for the '<em><b>Update Source Expr List</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__UPDATE_SOURCE_EXPR_LIST = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__UPDATE_SOURCE_EXPR_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__TABLE_FUNCTION = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__TABLE_FUNCTION;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__VALUE_EXPR_ROW = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__VALUE_EXPR_ROW;
+
+    /**
+     * The feature id for the '<em><b>Call Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__CALL_STATEMENT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__CALL_STATEMENT;
+
+    /**
+     * The feature id for the '<em><b>Special Register</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__SPECIAL_REGISTER = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__SPECIAL_REGISTER;
+
+	/**
+     * The feature id for the '<em><b>Distinct</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__DISTINCT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__DISTINCT;
+
+	/**
+     * The feature id for the '<em><b>Column Function</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__COLUMN_FUNCTION = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__COLUMN_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Parameter List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__PARAMETER_LIST = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__PARAMETER_LIST;
+
+	/**
+     * The feature id for the '<em><b>Function</b></em>' reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__FUNCTION = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION__FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Returning Option</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__RETURNING_OPTION = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Sort Spec List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION__SORT_SPEC_LIST = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION_FEATURE_COUNT + 1;
+
+	/**
+     * The number of structural features of the '<em>XML Aggregate Function</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_FUNCTION_FEATURE_COUNT = SQLQueryModelPackage.VALUE_EXPRESSION_FUNCTION_FEATURE_COUNT + 2;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionConcatContentItemImpl <em>XML Value Function Concat Content Item</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionConcatContentItemImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionConcatContentItem()
+     * @generated
+     */
+    int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM = 28;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__EANNOTATIONS = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__NAME = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__DEPENDENCIES = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__DESCRIPTION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__LABEL = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__COMMENTS = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__EXTENSIONS = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__PRIVILEGES = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Unary Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__UNARY_OPERATOR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__UNARY_OPERATOR;
+
+	/**
+     * The feature id for the '<em><b>Data Type</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__DATA_TYPE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DATA_TYPE;
+
+	/**
+     * The feature id for the '<em><b>Values Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__VALUES_ROW = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUES_ROW;
+
+	/**
+     * The feature id for the '<em><b>Order By Value Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__ORDER_BY_VALUE_EXPR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__ORDER_BY_VALUE_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Result Column</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__RESULT_COLUMN = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__RESULT_COLUMN;
+
+	/**
+     * The feature id for the '<em><b>Basic Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__BASIC_RIGHT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Basic Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__BASIC_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Like Pattern</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__LIKE_PATTERN = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_PATTERN;
+
+	/**
+     * The feature id for the '<em><b>Like Matching</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__LIKE_MATCHING = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_MATCHING;
+
+	/**
+     * The feature id for the '<em><b>Predicate Null</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__PREDICATE_NULL = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__PREDICATE_NULL;
+
+	/**
+     * The feature id for the '<em><b>In Value List Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__IN_VALUE_LIST_RIGHT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>In Value List Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__IN_VALUE_LIST_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__IN_VALUE_ROW_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__IN_VALUE_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__QUANTIFIED_ROW_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__QUANTIFIED_VALUE_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__BETWEEN_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Right1</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__BETWEEN_RIGHT1 = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT1;
+
+	/**
+     * The feature id for the '<em><b>Between Right2</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__BETWEEN_RIGHT2 = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT2;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Cast</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__VALUE_EXPR_CAST = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CAST;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__VALUE_EXPR_FUNCTION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__VALUE_EXPR_COMBINED_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__VALUE_EXPR_COMBINED_RIGHT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Grouping Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__GROUPING_EXPR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__GROUPING_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Else</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__VALUE_EXPR_CASE_ELSE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_ELSE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__VALUE_EXPR_CASE_SIMPLE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content When</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content Result</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__VALUE_EXPR_CASE_SEARCH_CONTENT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Like Escape</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__LIKE_ESCAPE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_ESCAPE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Labeled Duration</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__VALUE_EXPR_LABELED_DURATION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_LABELED_DURATION;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__NEST = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__NEST;
+
+	/**
+     * The feature id for the '<em><b>Update Source Expr List</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__UPDATE_SOURCE_EXPR_LIST = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__UPDATE_SOURCE_EXPR_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__TABLE_FUNCTION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__TABLE_FUNCTION;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__VALUE_EXPR_ROW = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_ROW;
+
+    /**
+     * The feature id for the '<em><b>Call Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__CALL_STATEMENT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__CALL_STATEMENT;
+
+    /**
+     * The feature id for the '<em><b>Value Function Concat</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__VALUE_FUNCTION_CONCAT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__VALUE_EXPR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 1;
+
+	/**
+     * The number of structural features of the '<em>XML Value Function Concat Content Item</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM_FEATURE_COUNT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 2;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionCommentContentImpl <em>XML Value Function Comment Content</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionCommentContentImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionCommentContent()
+     * @generated
+     */
+    int XML_VALUE_FUNCTION_COMMENT_CONTENT = 29;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT_CONTENT__EANNOTATIONS = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT_CONTENT__NAME = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT_CONTENT__DEPENDENCIES = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT_CONTENT__DESCRIPTION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT_CONTENT__LABEL = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_COMMENT_CONTENT__COMMENTS = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT_CONTENT__EXTENSIONS = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_COMMENT_CONTENT__PRIVILEGES = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Unary Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT_CONTENT__UNARY_OPERATOR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__UNARY_OPERATOR;
+
+	/**
+     * The feature id for the '<em><b>Data Type</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT_CONTENT__DATA_TYPE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DATA_TYPE;
+
+	/**
+     * The feature id for the '<em><b>Values Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT_CONTENT__VALUES_ROW = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUES_ROW;
+
+	/**
+     * The feature id for the '<em><b>Order By Value Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT_CONTENT__ORDER_BY_VALUE_EXPR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__ORDER_BY_VALUE_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Result Column</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT_CONTENT__RESULT_COLUMN = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__RESULT_COLUMN;
+
+	/**
+     * The feature id for the '<em><b>Basic Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT_CONTENT__BASIC_RIGHT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Basic Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT_CONTENT__BASIC_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Like Pattern</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT_CONTENT__LIKE_PATTERN = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_PATTERN;
+
+	/**
+     * The feature id for the '<em><b>Like Matching</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT_CONTENT__LIKE_MATCHING = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_MATCHING;
+
+	/**
+     * The feature id for the '<em><b>Predicate Null</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT_CONTENT__PREDICATE_NULL = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__PREDICATE_NULL;
+
+	/**
+     * The feature id for the '<em><b>In Value List Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT_CONTENT__IN_VALUE_LIST_RIGHT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>In Value List Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT_CONTENT__IN_VALUE_LIST_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT_CONTENT__IN_VALUE_ROW_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT_CONTENT__IN_VALUE_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT_CONTENT__QUANTIFIED_ROW_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT_CONTENT__QUANTIFIED_VALUE_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT_CONTENT__BETWEEN_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Right1</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT_CONTENT__BETWEEN_RIGHT1 = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT1;
+
+	/**
+     * The feature id for the '<em><b>Between Right2</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT_CONTENT__BETWEEN_RIGHT2 = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT2;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Cast</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT_CONTENT__VALUE_EXPR_CAST = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CAST;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT_CONTENT__VALUE_EXPR_FUNCTION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT_CONTENT__VALUE_EXPR_COMBINED_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT_CONTENT__VALUE_EXPR_COMBINED_RIGHT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Grouping Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT_CONTENT__GROUPING_EXPR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__GROUPING_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Else</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT_CONTENT__VALUE_EXPR_CASE_ELSE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_ELSE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT_CONTENT__VALUE_EXPR_CASE_SIMPLE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content When</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT_CONTENT__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content Result</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT_CONTENT__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT_CONTENT__VALUE_EXPR_CASE_SEARCH_CONTENT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Like Escape</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT_CONTENT__LIKE_ESCAPE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_ESCAPE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Labeled Duration</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT_CONTENT__VALUE_EXPR_LABELED_DURATION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_LABELED_DURATION;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT_CONTENT__NEST = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__NEST;
+
+	/**
+     * The feature id for the '<em><b>Update Source Expr List</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT_CONTENT__UPDATE_SOURCE_EXPR_LIST = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__UPDATE_SOURCE_EXPR_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT_CONTENT__TABLE_FUNCTION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__TABLE_FUNCTION;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT_CONTENT__VALUE_EXPR_ROW = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_ROW;
+
+    /**
+     * The feature id for the '<em><b>Call Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT_CONTENT__CALL_STATEMENT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__CALL_STATEMENT;
+
+    /**
+     * The feature id for the '<em><b>Value Function Comment</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT_CONTENT__VALUE_FUNCTION_COMMENT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT_CONTENT__VALUE_EXPR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 1;
+
+	/**
+     * The number of structural features of the '<em>XML Value Function Comment Content</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_COMMENT_CONTENT_FEATURE_COUNT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 2;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionDocumentContentImpl <em>XML Value Function Document Content</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionDocumentContentImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionDocumentContent()
+     * @generated
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT_CONTENT = 30;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT_CONTENT__EANNOTATIONS = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT_CONTENT__NAME = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT_CONTENT__DEPENDENCIES = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT_CONTENT__DESCRIPTION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT_CONTENT__LABEL = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_DOCUMENT_CONTENT__COMMENTS = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT_CONTENT__EXTENSIONS = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_DOCUMENT_CONTENT__PRIVILEGES = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Unary Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT_CONTENT__UNARY_OPERATOR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__UNARY_OPERATOR;
+
+	/**
+     * The feature id for the '<em><b>Data Type</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT_CONTENT__DATA_TYPE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DATA_TYPE;
+
+	/**
+     * The feature id for the '<em><b>Values Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT_CONTENT__VALUES_ROW = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUES_ROW;
+
+	/**
+     * The feature id for the '<em><b>Order By Value Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT_CONTENT__ORDER_BY_VALUE_EXPR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__ORDER_BY_VALUE_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Result Column</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT_CONTENT__RESULT_COLUMN = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__RESULT_COLUMN;
+
+	/**
+     * The feature id for the '<em><b>Basic Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT_CONTENT__BASIC_RIGHT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Basic Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT_CONTENT__BASIC_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Like Pattern</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT_CONTENT__LIKE_PATTERN = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_PATTERN;
+
+	/**
+     * The feature id for the '<em><b>Like Matching</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT_CONTENT__LIKE_MATCHING = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_MATCHING;
+
+	/**
+     * The feature id for the '<em><b>Predicate Null</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT_CONTENT__PREDICATE_NULL = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__PREDICATE_NULL;
+
+	/**
+     * The feature id for the '<em><b>In Value List Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT_CONTENT__IN_VALUE_LIST_RIGHT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>In Value List Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT_CONTENT__IN_VALUE_LIST_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT_CONTENT__IN_VALUE_ROW_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT_CONTENT__IN_VALUE_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT_CONTENT__QUANTIFIED_ROW_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT_CONTENT__QUANTIFIED_VALUE_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT_CONTENT__BETWEEN_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Right1</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT_CONTENT__BETWEEN_RIGHT1 = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT1;
+
+	/**
+     * The feature id for the '<em><b>Between Right2</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT_CONTENT__BETWEEN_RIGHT2 = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT2;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Cast</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT_CONTENT__VALUE_EXPR_CAST = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CAST;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT_CONTENT__VALUE_EXPR_FUNCTION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT_CONTENT__VALUE_EXPR_COMBINED_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT_CONTENT__VALUE_EXPR_COMBINED_RIGHT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Grouping Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT_CONTENT__GROUPING_EXPR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__GROUPING_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Else</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT_CONTENT__VALUE_EXPR_CASE_ELSE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_ELSE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT_CONTENT__VALUE_EXPR_CASE_SIMPLE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content When</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT_CONTENT__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content Result</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT_CONTENT__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT_CONTENT__VALUE_EXPR_CASE_SEARCH_CONTENT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Like Escape</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT_CONTENT__LIKE_ESCAPE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_ESCAPE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Labeled Duration</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT_CONTENT__VALUE_EXPR_LABELED_DURATION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_LABELED_DURATION;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT_CONTENT__NEST = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__NEST;
+
+	/**
+     * The feature id for the '<em><b>Update Source Expr List</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT_CONTENT__UPDATE_SOURCE_EXPR_LIST = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__UPDATE_SOURCE_EXPR_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT_CONTENT__TABLE_FUNCTION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__TABLE_FUNCTION;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT_CONTENT__VALUE_EXPR_ROW = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_ROW;
+
+    /**
+     * The feature id for the '<em><b>Call Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT_CONTENT__CALL_STATEMENT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__CALL_STATEMENT;
+
+    /**
+     * The feature id for the '<em><b>Value Function Document</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT_CONTENT__VALUE_FUNCTION_DOCUMENT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT_CONTENT__VALUE_EXPR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 1;
+
+	/**
+     * The number of structural features of the '<em>XML Value Function Document Content</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_DOCUMENT_CONTENT_FEATURE_COUNT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 2;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLAggregateSortSpecificationImpl <em>XML Aggregate Sort Specification</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLAggregateSortSpecificationImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLAggregateSortSpecification()
+     * @generated
+     */
+    int XML_AGGREGATE_SORT_SPECIFICATION = 31;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_SORT_SPECIFICATION__EANNOTATIONS = SQLQueryModelPackage.SQL_QUERY_OBJECT__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_SORT_SPECIFICATION__NAME = SQLQueryModelPackage.SQL_QUERY_OBJECT__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_SORT_SPECIFICATION__DEPENDENCIES = SQLQueryModelPackage.SQL_QUERY_OBJECT__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_SORT_SPECIFICATION__DESCRIPTION = SQLQueryModelPackage.SQL_QUERY_OBJECT__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_SORT_SPECIFICATION__LABEL = SQLQueryModelPackage.SQL_QUERY_OBJECT__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_AGGREGATE_SORT_SPECIFICATION__COMMENTS = SQLQueryModelPackage.SQL_QUERY_OBJECT__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_SORT_SPECIFICATION__EXTENSIONS = SQLQueryModelPackage.SQL_QUERY_OBJECT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_AGGREGATE_SORT_SPECIFICATION__PRIVILEGES = SQLQueryModelPackage.SQL_QUERY_OBJECT__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Aggregate Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_SORT_SPECIFICATION__AGGREGATE_FUNCTION = SQLQueryModelPackage.SQL_QUERY_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Order By Spec</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_SORT_SPECIFICATION__ORDER_BY_SPEC = SQLQueryModelPackage.SQL_QUERY_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+     * The number of structural features of the '<em>XML Aggregate Sort Specification</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_AGGREGATE_SORT_SPECIFICATION_FEATURE_COUNT = SQLQueryModelPackage.SQL_QUERY_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionForestContentItemImpl <em>XML Value Function Forest Content Item</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionForestContentItemImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionForestContentItem()
+     * @generated
+     */
+    int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM = 32;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__EANNOTATIONS = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__NAME = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__DEPENDENCIES = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__DESCRIPTION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__LABEL = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__COMMENTS = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__EXTENSIONS = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__PRIVILEGES = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Unary Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__UNARY_OPERATOR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__UNARY_OPERATOR;
+
+	/**
+     * The feature id for the '<em><b>Data Type</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__DATA_TYPE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DATA_TYPE;
+
+	/**
+     * The feature id for the '<em><b>Values Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__VALUES_ROW = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUES_ROW;
+
+	/**
+     * The feature id for the '<em><b>Order By Value Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__ORDER_BY_VALUE_EXPR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__ORDER_BY_VALUE_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Result Column</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__RESULT_COLUMN = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__RESULT_COLUMN;
+
+	/**
+     * The feature id for the '<em><b>Basic Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__BASIC_RIGHT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Basic Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__BASIC_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Like Pattern</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__LIKE_PATTERN = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_PATTERN;
+
+	/**
+     * The feature id for the '<em><b>Like Matching</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__LIKE_MATCHING = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_MATCHING;
+
+	/**
+     * The feature id for the '<em><b>Predicate Null</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__PREDICATE_NULL = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__PREDICATE_NULL;
+
+	/**
+     * The feature id for the '<em><b>In Value List Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__IN_VALUE_LIST_RIGHT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>In Value List Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__IN_VALUE_LIST_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__IN_VALUE_ROW_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__IN_VALUE_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__QUANTIFIED_ROW_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__QUANTIFIED_VALUE_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__BETWEEN_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Right1</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__BETWEEN_RIGHT1 = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT1;
+
+	/**
+     * The feature id for the '<em><b>Between Right2</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__BETWEEN_RIGHT2 = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT2;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Cast</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__VALUE_EXPR_CAST = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CAST;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__VALUE_EXPR_FUNCTION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__VALUE_EXPR_COMBINED_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__VALUE_EXPR_COMBINED_RIGHT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Grouping Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__GROUPING_EXPR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__GROUPING_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Else</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__VALUE_EXPR_CASE_ELSE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_ELSE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__VALUE_EXPR_CASE_SIMPLE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content When</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content Result</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__VALUE_EXPR_CASE_SEARCH_CONTENT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Like Escape</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__LIKE_ESCAPE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_ESCAPE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Labeled Duration</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__VALUE_EXPR_LABELED_DURATION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_LABELED_DURATION;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__NEST = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__NEST;
+
+	/**
+     * The feature id for the '<em><b>Update Source Expr List</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__UPDATE_SOURCE_EXPR_LIST = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__UPDATE_SOURCE_EXPR_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__TABLE_FUNCTION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__TABLE_FUNCTION;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__VALUE_EXPR_ROW = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_ROW;
+
+    /**
+     * The feature id for the '<em><b>Call Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__CALL_STATEMENT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__CALL_STATEMENT;
+
+    /**
+     * The feature id for the '<em><b>Value Function Forest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__VALUE_FUNCTION_FOREST = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__VALUE_EXPR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 1;
+
+	/**
+     * The number of structural features of the '<em>XML Value Function Forest Content Item</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM_FEATURE_COUNT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 2;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionParseContentImpl <em>XML Value Function Parse Content</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionParseContentImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionParseContent()
+     * @generated
+     */
+    int XML_VALUE_FUNCTION_PARSE_CONTENT = 33;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE_CONTENT__EANNOTATIONS = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE_CONTENT__NAME = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE_CONTENT__DEPENDENCIES = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE_CONTENT__DESCRIPTION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE_CONTENT__LABEL = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_PARSE_CONTENT__COMMENTS = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE_CONTENT__EXTENSIONS = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_PARSE_CONTENT__PRIVILEGES = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Unary Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE_CONTENT__UNARY_OPERATOR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__UNARY_OPERATOR;
+
+	/**
+     * The feature id for the '<em><b>Data Type</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE_CONTENT__DATA_TYPE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DATA_TYPE;
+
+	/**
+     * The feature id for the '<em><b>Values Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE_CONTENT__VALUES_ROW = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUES_ROW;
+
+	/**
+     * The feature id for the '<em><b>Order By Value Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE_CONTENT__ORDER_BY_VALUE_EXPR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__ORDER_BY_VALUE_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Result Column</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE_CONTENT__RESULT_COLUMN = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__RESULT_COLUMN;
+
+	/**
+     * The feature id for the '<em><b>Basic Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE_CONTENT__BASIC_RIGHT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Basic Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE_CONTENT__BASIC_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Like Pattern</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE_CONTENT__LIKE_PATTERN = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_PATTERN;
+
+	/**
+     * The feature id for the '<em><b>Like Matching</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE_CONTENT__LIKE_MATCHING = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_MATCHING;
+
+	/**
+     * The feature id for the '<em><b>Predicate Null</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE_CONTENT__PREDICATE_NULL = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__PREDICATE_NULL;
+
+	/**
+     * The feature id for the '<em><b>In Value List Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE_CONTENT__IN_VALUE_LIST_RIGHT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>In Value List Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE_CONTENT__IN_VALUE_LIST_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE_CONTENT__IN_VALUE_ROW_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE_CONTENT__IN_VALUE_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE_CONTENT__QUANTIFIED_ROW_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE_CONTENT__QUANTIFIED_VALUE_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE_CONTENT__BETWEEN_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Right1</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE_CONTENT__BETWEEN_RIGHT1 = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT1;
+
+	/**
+     * The feature id for the '<em><b>Between Right2</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE_CONTENT__BETWEEN_RIGHT2 = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT2;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Cast</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE_CONTENT__VALUE_EXPR_CAST = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CAST;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE_CONTENT__VALUE_EXPR_FUNCTION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE_CONTENT__VALUE_EXPR_COMBINED_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE_CONTENT__VALUE_EXPR_COMBINED_RIGHT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Grouping Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE_CONTENT__GROUPING_EXPR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__GROUPING_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Else</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE_CONTENT__VALUE_EXPR_CASE_ELSE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_ELSE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE_CONTENT__VALUE_EXPR_CASE_SIMPLE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content When</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE_CONTENT__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content Result</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE_CONTENT__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE_CONTENT__VALUE_EXPR_CASE_SEARCH_CONTENT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Like Escape</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE_CONTENT__LIKE_ESCAPE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_ESCAPE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Labeled Duration</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE_CONTENT__VALUE_EXPR_LABELED_DURATION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_LABELED_DURATION;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE_CONTENT__NEST = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__NEST;
+
+	/**
+     * The feature id for the '<em><b>Update Source Expr List</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE_CONTENT__UPDATE_SOURCE_EXPR_LIST = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__UPDATE_SOURCE_EXPR_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE_CONTENT__TABLE_FUNCTION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__TABLE_FUNCTION;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE_CONTENT__VALUE_EXPR_ROW = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_ROW;
+
+    /**
+     * The feature id for the '<em><b>Call Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE_CONTENT__CALL_STATEMENT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__CALL_STATEMENT;
+
+    /**
+     * The feature id for the '<em><b>Value Function Parse</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE_CONTENT__VALUE_FUNCTION_PARSE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE_CONTENT__VALUE_EXPR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 1;
+
+	/**
+     * The number of structural features of the '<em>XML Value Function Parse Content</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PARSE_CONTENT_FEATURE_COUNT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 2;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionPIContentImpl <em>XML Value Function PI Content</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionPIContentImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionPIContent()
+     * @generated
+     */
+    int XML_VALUE_FUNCTION_PI_CONTENT = 34;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI_CONTENT__EANNOTATIONS = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI_CONTENT__NAME = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI_CONTENT__DEPENDENCIES = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI_CONTENT__DESCRIPTION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI_CONTENT__LABEL = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_PI_CONTENT__COMMENTS = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI_CONTENT__EXTENSIONS = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_PI_CONTENT__PRIVILEGES = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Unary Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI_CONTENT__UNARY_OPERATOR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__UNARY_OPERATOR;
+
+	/**
+     * The feature id for the '<em><b>Data Type</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI_CONTENT__DATA_TYPE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DATA_TYPE;
+
+	/**
+     * The feature id for the '<em><b>Values Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI_CONTENT__VALUES_ROW = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUES_ROW;
+
+	/**
+     * The feature id for the '<em><b>Order By Value Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI_CONTENT__ORDER_BY_VALUE_EXPR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__ORDER_BY_VALUE_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Result Column</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI_CONTENT__RESULT_COLUMN = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__RESULT_COLUMN;
+
+	/**
+     * The feature id for the '<em><b>Basic Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI_CONTENT__BASIC_RIGHT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Basic Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI_CONTENT__BASIC_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Like Pattern</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI_CONTENT__LIKE_PATTERN = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_PATTERN;
+
+	/**
+     * The feature id for the '<em><b>Like Matching</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI_CONTENT__LIKE_MATCHING = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_MATCHING;
+
+	/**
+     * The feature id for the '<em><b>Predicate Null</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI_CONTENT__PREDICATE_NULL = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__PREDICATE_NULL;
+
+	/**
+     * The feature id for the '<em><b>In Value List Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI_CONTENT__IN_VALUE_LIST_RIGHT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>In Value List Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI_CONTENT__IN_VALUE_LIST_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI_CONTENT__IN_VALUE_ROW_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI_CONTENT__IN_VALUE_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI_CONTENT__QUANTIFIED_ROW_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI_CONTENT__QUANTIFIED_VALUE_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI_CONTENT__BETWEEN_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Right1</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI_CONTENT__BETWEEN_RIGHT1 = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT1;
+
+	/**
+     * The feature id for the '<em><b>Between Right2</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI_CONTENT__BETWEEN_RIGHT2 = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT2;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Cast</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI_CONTENT__VALUE_EXPR_CAST = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CAST;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI_CONTENT__VALUE_EXPR_FUNCTION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI_CONTENT__VALUE_EXPR_COMBINED_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI_CONTENT__VALUE_EXPR_COMBINED_RIGHT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Grouping Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI_CONTENT__GROUPING_EXPR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__GROUPING_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Else</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI_CONTENT__VALUE_EXPR_CASE_ELSE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_ELSE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI_CONTENT__VALUE_EXPR_CASE_SIMPLE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content When</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI_CONTENT__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content Result</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI_CONTENT__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI_CONTENT__VALUE_EXPR_CASE_SEARCH_CONTENT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Like Escape</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI_CONTENT__LIKE_ESCAPE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_ESCAPE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Labeled Duration</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI_CONTENT__VALUE_EXPR_LABELED_DURATION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_LABELED_DURATION;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI_CONTENT__NEST = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__NEST;
+
+	/**
+     * The feature id for the '<em><b>Update Source Expr List</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI_CONTENT__UPDATE_SOURCE_EXPR_LIST = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__UPDATE_SOURCE_EXPR_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI_CONTENT__TABLE_FUNCTION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__TABLE_FUNCTION;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI_CONTENT__VALUE_EXPR_ROW = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_ROW;
+
+    /**
+     * The feature id for the '<em><b>Call Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI_CONTENT__CALL_STATEMENT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__CALL_STATEMENT;
+
+    /**
+     * The feature id for the '<em><b>Value Function PI</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI_CONTENT__VALUE_FUNCTION_PI = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI_CONTENT__VALUE_EXPR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 1;
+
+	/**
+     * The number of structural features of the '<em>XML Value Function PI Content</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_PI_CONTENT_FEATURE_COUNT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 2;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLTableFunctionImpl <em>XML Table Function</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLTableFunctionImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLTableFunction()
+     * @generated
+     */
+    int XML_TABLE_FUNCTION = 35;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_FUNCTION__EANNOTATIONS = SQLQueryModelPackage.TABLE_FUNCTION__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_FUNCTION__NAME = SQLQueryModelPackage.TABLE_FUNCTION__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_FUNCTION__DEPENDENCIES = SQLQueryModelPackage.TABLE_FUNCTION__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_FUNCTION__DESCRIPTION = SQLQueryModelPackage.TABLE_FUNCTION__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_FUNCTION__LABEL = SQLQueryModelPackage.TABLE_FUNCTION__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_TABLE_FUNCTION__COMMENTS = SQLQueryModelPackage.TABLE_FUNCTION__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_FUNCTION__EXTENSIONS = SQLQueryModelPackage.TABLE_FUNCTION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_TABLE_FUNCTION__PRIVILEGES = SQLQueryModelPackage.TABLE_FUNCTION__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Table Joined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_FUNCTION__TABLE_JOINED_RIGHT = SQLQueryModelPackage.TABLE_FUNCTION__TABLE_JOINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Table Joined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_FUNCTION__TABLE_JOINED_LEFT = SQLQueryModelPackage.TABLE_FUNCTION__TABLE_JOINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Query Select</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_FUNCTION__QUERY_SELECT = SQLQueryModelPackage.TABLE_FUNCTION__QUERY_SELECT;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_FUNCTION__NEST = SQLQueryModelPackage.TABLE_FUNCTION__NEST;
+
+	/**
+     * The feature id for the '<em><b>Merge Source Table</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_FUNCTION__MERGE_SOURCE_TABLE = SQLQueryModelPackage.TABLE_FUNCTION__MERGE_SOURCE_TABLE;
+
+    /**
+     * The feature id for the '<em><b>Column List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_FUNCTION__COLUMN_LIST = SQLQueryModelPackage.TABLE_FUNCTION__COLUMN_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Correlation</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_FUNCTION__TABLE_CORRELATION = SQLQueryModelPackage.TABLE_FUNCTION__TABLE_CORRELATION;
+
+	/**
+     * The feature id for the '<em><b>Result Table All Columns</b></em>' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_FUNCTION__RESULT_TABLE_ALL_COLUMNS = SQLQueryModelPackage.TABLE_FUNCTION__RESULT_TABLE_ALL_COLUMNS;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Columns</b></em>' reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_FUNCTION__VALUE_EXPR_COLUMNS = SQLQueryModelPackage.TABLE_FUNCTION__VALUE_EXPR_COLUMNS;
+
+	/**
+     * The feature id for the '<em><b>Merge Target Table</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_FUNCTION__MERGE_TARGET_TABLE = SQLQueryModelPackage.TABLE_FUNCTION__MERGE_TARGET_TABLE;
+
+    /**
+     * The feature id for the '<em><b>Function</b></em>' reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_FUNCTION__FUNCTION = SQLQueryModelPackage.TABLE_FUNCTION__FUNCTION;
+
+    /**
+     * The feature id for the '<em><b>Parameter List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_FUNCTION__PARAMETER_LIST = SQLQueryModelPackage.TABLE_FUNCTION__PARAMETER_LIST;
+
+    /**
+     * The feature id for the '<em><b>Table Row Pattern</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_FUNCTION__TABLE_ROW_PATTERN = SQLQueryModelPackage.TABLE_FUNCTION_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Xquery Arg List</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_FUNCTION__XQUERY_ARG_LIST = SQLQueryModelPackage.TABLE_FUNCTION_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>Column Def List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_FUNCTION__COLUMN_DEF_LIST = SQLQueryModelPackage.TABLE_FUNCTION_FEATURE_COUNT + 2;
+
+	/**
+     * The feature id for the '<em><b>Namespaces Decl</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_FUNCTION__NAMESPACES_DECL = SQLQueryModelPackage.TABLE_FUNCTION_FEATURE_COUNT + 3;
+
+	/**
+     * The number of structural features of the '<em>XML Table Function</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_FUNCTION_FEATURE_COUNT = SQLQueryModelPackage.TABLE_FUNCTION_FEATURE_COUNT + 4;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionTextContentImpl <em>XML Value Function Text Content</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionTextContentImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionTextContent()
+     * @generated
+     */
+    int XML_VALUE_FUNCTION_TEXT_CONTENT = 36;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT_CONTENT__EANNOTATIONS = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT_CONTENT__NAME = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT_CONTENT__DEPENDENCIES = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT_CONTENT__DESCRIPTION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT_CONTENT__LABEL = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_TEXT_CONTENT__COMMENTS = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT_CONTENT__EXTENSIONS = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_TEXT_CONTENT__PRIVILEGES = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Unary Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT_CONTENT__UNARY_OPERATOR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__UNARY_OPERATOR;
+
+	/**
+     * The feature id for the '<em><b>Data Type</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT_CONTENT__DATA_TYPE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DATA_TYPE;
+
+	/**
+     * The feature id for the '<em><b>Values Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT_CONTENT__VALUES_ROW = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUES_ROW;
+
+	/**
+     * The feature id for the '<em><b>Order By Value Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT_CONTENT__ORDER_BY_VALUE_EXPR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__ORDER_BY_VALUE_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Result Column</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT_CONTENT__RESULT_COLUMN = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__RESULT_COLUMN;
+
+	/**
+     * The feature id for the '<em><b>Basic Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT_CONTENT__BASIC_RIGHT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Basic Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT_CONTENT__BASIC_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Like Pattern</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT_CONTENT__LIKE_PATTERN = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_PATTERN;
+
+	/**
+     * The feature id for the '<em><b>Like Matching</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT_CONTENT__LIKE_MATCHING = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_MATCHING;
+
+	/**
+     * The feature id for the '<em><b>Predicate Null</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT_CONTENT__PREDICATE_NULL = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__PREDICATE_NULL;
+
+	/**
+     * The feature id for the '<em><b>In Value List Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT_CONTENT__IN_VALUE_LIST_RIGHT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>In Value List Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT_CONTENT__IN_VALUE_LIST_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT_CONTENT__IN_VALUE_ROW_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT_CONTENT__IN_VALUE_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT_CONTENT__QUANTIFIED_ROW_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT_CONTENT__QUANTIFIED_VALUE_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT_CONTENT__BETWEEN_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Right1</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT_CONTENT__BETWEEN_RIGHT1 = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT1;
+
+	/**
+     * The feature id for the '<em><b>Between Right2</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT_CONTENT__BETWEEN_RIGHT2 = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT2;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Cast</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT_CONTENT__VALUE_EXPR_CAST = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CAST;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT_CONTENT__VALUE_EXPR_FUNCTION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT_CONTENT__VALUE_EXPR_COMBINED_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT_CONTENT__VALUE_EXPR_COMBINED_RIGHT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Grouping Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT_CONTENT__GROUPING_EXPR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__GROUPING_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Else</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT_CONTENT__VALUE_EXPR_CASE_ELSE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_ELSE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT_CONTENT__VALUE_EXPR_CASE_SIMPLE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content When</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT_CONTENT__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content Result</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT_CONTENT__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT_CONTENT__VALUE_EXPR_CASE_SEARCH_CONTENT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Like Escape</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT_CONTENT__LIKE_ESCAPE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_ESCAPE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Labeled Duration</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT_CONTENT__VALUE_EXPR_LABELED_DURATION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_LABELED_DURATION;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT_CONTENT__NEST = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__NEST;
+
+	/**
+     * The feature id for the '<em><b>Update Source Expr List</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT_CONTENT__UPDATE_SOURCE_EXPR_LIST = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__UPDATE_SOURCE_EXPR_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT_CONTENT__TABLE_FUNCTION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__TABLE_FUNCTION;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT_CONTENT__VALUE_EXPR_ROW = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_ROW;
+
+    /**
+     * The feature id for the '<em><b>Call Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT_CONTENT__CALL_STATEMENT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__CALL_STATEMENT;
+
+    /**
+     * The feature id for the '<em><b>Value Function Text</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT_CONTENT__VALUE_FUNCTION_TEXT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT_CONTENT__VALUE_EXPR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 1;
+
+	/**
+     * The number of structural features of the '<em>XML Value Function Text Content</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_TEXT_CONTENT_FEATURE_COUNT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 2;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateContentImpl <em>XML Value Function Validate Content</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateContentImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionValidateContent()
+     * @generated
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_CONTENT = 37;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_CONTENT__EANNOTATIONS = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_CONTENT__NAME = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_CONTENT__DEPENDENCIES = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_CONTENT__DESCRIPTION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_CONTENT__LABEL = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_VALIDATE_CONTENT__COMMENTS = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_CONTENT__EXTENSIONS = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_VALIDATE_CONTENT__PRIVILEGES = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Unary Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_CONTENT__UNARY_OPERATOR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__UNARY_OPERATOR;
+
+	/**
+     * The feature id for the '<em><b>Data Type</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_CONTENT__DATA_TYPE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DATA_TYPE;
+
+	/**
+     * The feature id for the '<em><b>Values Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_CONTENT__VALUES_ROW = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUES_ROW;
+
+	/**
+     * The feature id for the '<em><b>Order By Value Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_CONTENT__ORDER_BY_VALUE_EXPR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__ORDER_BY_VALUE_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Result Column</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_CONTENT__RESULT_COLUMN = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__RESULT_COLUMN;
+
+	/**
+     * The feature id for the '<em><b>Basic Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_CONTENT__BASIC_RIGHT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Basic Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_CONTENT__BASIC_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Like Pattern</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_CONTENT__LIKE_PATTERN = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_PATTERN;
+
+	/**
+     * The feature id for the '<em><b>Like Matching</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_CONTENT__LIKE_MATCHING = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_MATCHING;
+
+	/**
+     * The feature id for the '<em><b>Predicate Null</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_CONTENT__PREDICATE_NULL = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__PREDICATE_NULL;
+
+	/**
+     * The feature id for the '<em><b>In Value List Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_CONTENT__IN_VALUE_LIST_RIGHT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>In Value List Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_CONTENT__IN_VALUE_LIST_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_CONTENT__IN_VALUE_ROW_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_CONTENT__IN_VALUE_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_CONTENT__QUANTIFIED_ROW_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_CONTENT__QUANTIFIED_VALUE_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_CONTENT__BETWEEN_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Right1</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_CONTENT__BETWEEN_RIGHT1 = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT1;
+
+	/**
+     * The feature id for the '<em><b>Between Right2</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_CONTENT__BETWEEN_RIGHT2 = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT2;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Cast</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_CONTENT__VALUE_EXPR_CAST = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CAST;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_CONTENT__VALUE_EXPR_FUNCTION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_CONTENT__VALUE_EXPR_COMBINED_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_CONTENT__VALUE_EXPR_COMBINED_RIGHT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Grouping Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_CONTENT__GROUPING_EXPR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__GROUPING_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Else</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_CONTENT__VALUE_EXPR_CASE_ELSE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_ELSE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_CONTENT__VALUE_EXPR_CASE_SIMPLE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content When</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_CONTENT__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content Result</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_CONTENT__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_CONTENT__VALUE_EXPR_CASE_SEARCH_CONTENT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Like Escape</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_CONTENT__LIKE_ESCAPE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_ESCAPE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Labeled Duration</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_CONTENT__VALUE_EXPR_LABELED_DURATION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_LABELED_DURATION;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_CONTENT__NEST = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__NEST;
+
+	/**
+     * The feature id for the '<em><b>Update Source Expr List</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_CONTENT__UPDATE_SOURCE_EXPR_LIST = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__UPDATE_SOURCE_EXPR_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_CONTENT__TABLE_FUNCTION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__TABLE_FUNCTION;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_CONTENT__VALUE_EXPR_ROW = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_ROW;
+
+    /**
+     * The feature id for the '<em><b>Call Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_CONTENT__CALL_STATEMENT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__CALL_STATEMENT;
+
+    /**
+     * The feature id for the '<em><b>Value Function Validate</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_CONTENT__VALUE_FUNCTION_VALIDATE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_CONTENT__VALUE_EXPR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 1;
+
+	/**
+     * The number of structural features of the '<em>XML Value Function Validate Content</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_CONTENT_FEATURE_COUNT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 2;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLTableColumnDefinitionItemImpl <em>XML Table Column Definition Item</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLTableColumnDefinitionItemImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLTableColumnDefinitionItem()
+     * @generated
+     */
+    int XML_TABLE_COLUMN_DEFINITION_ITEM = 38;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_ITEM__EANNOTATIONS = SQLQueryModelPackage.SQL_QUERY_OBJECT__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_ITEM__NAME = SQLQueryModelPackage.SQL_QUERY_OBJECT__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_ITEM__DEPENDENCIES = SQLQueryModelPackage.SQL_QUERY_OBJECT__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_ITEM__DESCRIPTION = SQLQueryModelPackage.SQL_QUERY_OBJECT__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_ITEM__LABEL = SQLQueryModelPackage.SQL_QUERY_OBJECT__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_TABLE_COLUMN_DEFINITION_ITEM__COMMENTS = SQLQueryModelPackage.SQL_QUERY_OBJECT__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_ITEM__EXTENSIONS = SQLQueryModelPackage.SQL_QUERY_OBJECT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_TABLE_COLUMN_DEFINITION_ITEM__PRIVILEGES = SQLQueryModelPackage.SQL_QUERY_OBJECT__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_ITEM__TABLE_FUNCTION = SQLQueryModelPackage.SQL_QUERY_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+     * The number of structural features of the '<em>XML Table Column Definition Item</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_ITEM_FEATURE_COUNT = SQLQueryModelPackage.SQL_QUERY_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLTableColumnDefinitionRegularImpl <em>XML Table Column Definition Regular</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLTableColumnDefinitionRegularImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLTableColumnDefinitionRegular()
+     * @generated
+     */
+    int XML_TABLE_COLUMN_DEFINITION_REGULAR = 39;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_REGULAR__EANNOTATIONS = XML_TABLE_COLUMN_DEFINITION_ITEM__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_REGULAR__NAME = XML_TABLE_COLUMN_DEFINITION_ITEM__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_REGULAR__DEPENDENCIES = XML_TABLE_COLUMN_DEFINITION_ITEM__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_REGULAR__DESCRIPTION = XML_TABLE_COLUMN_DEFINITION_ITEM__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_REGULAR__LABEL = XML_TABLE_COLUMN_DEFINITION_ITEM__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_TABLE_COLUMN_DEFINITION_REGULAR__COMMENTS = XML_TABLE_COLUMN_DEFINITION_ITEM__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_REGULAR__EXTENSIONS = XML_TABLE_COLUMN_DEFINITION_ITEM__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_TABLE_COLUMN_DEFINITION_REGULAR__PRIVILEGES = XML_TABLE_COLUMN_DEFINITION_ITEM__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_REGULAR__TABLE_FUNCTION = XML_TABLE_COLUMN_DEFINITION_ITEM__TABLE_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Data Type</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_REGULAR__DATA_TYPE = XML_TABLE_COLUMN_DEFINITION_ITEM_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Passing Option</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_REGULAR__PASSING_OPTION = XML_TABLE_COLUMN_DEFINITION_ITEM_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>Table Column Pattern</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_REGULAR__TABLE_COLUMN_PATTERN = XML_TABLE_COLUMN_DEFINITION_ITEM_FEATURE_COUNT + 2;
+
+	/**
+     * The feature id for the '<em><b>Column Definition Default</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_REGULAR__COLUMN_DEFINITION_DEFAULT = XML_TABLE_COLUMN_DEFINITION_ITEM_FEATURE_COUNT + 3;
+
+	/**
+     * The number of structural features of the '<em>XML Table Column Definition Regular</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_REGULAR_FEATURE_COUNT = XML_TABLE_COLUMN_DEFINITION_ITEM_FEATURE_COUNT + 4;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLTableColumnDefinitionOrdinalityImpl <em>XML Table Column Definition Ordinality</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLTableColumnDefinitionOrdinalityImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLTableColumnDefinitionOrdinality()
+     * @generated
+     */
+    int XML_TABLE_COLUMN_DEFINITION_ORDINALITY = 40;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_ORDINALITY__EANNOTATIONS = XML_TABLE_COLUMN_DEFINITION_ITEM__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_ORDINALITY__NAME = XML_TABLE_COLUMN_DEFINITION_ITEM__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_ORDINALITY__DEPENDENCIES = XML_TABLE_COLUMN_DEFINITION_ITEM__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_ORDINALITY__DESCRIPTION = XML_TABLE_COLUMN_DEFINITION_ITEM__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_ORDINALITY__LABEL = XML_TABLE_COLUMN_DEFINITION_ITEM__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_TABLE_COLUMN_DEFINITION_ORDINALITY__COMMENTS = XML_TABLE_COLUMN_DEFINITION_ITEM__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_ORDINALITY__EXTENSIONS = XML_TABLE_COLUMN_DEFINITION_ITEM__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_TABLE_COLUMN_DEFINITION_ORDINALITY__PRIVILEGES = XML_TABLE_COLUMN_DEFINITION_ITEM__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_ORDINALITY__TABLE_FUNCTION = XML_TABLE_COLUMN_DEFINITION_ITEM__TABLE_FUNCTION;
+
+	/**
+     * The number of structural features of the '<em>XML Table Column Definition Ordinality</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_ORDINALITY_FEATURE_COUNT = XML_TABLE_COLUMN_DEFINITION_ITEM_FEATURE_COUNT + 0;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateAccordingToImpl <em>XML Value Function Validate According To</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateAccordingToImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionValidateAccordingTo()
+     * @generated
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO = 41;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__EANNOTATIONS = SQLQueryModelPackage.SQL_QUERY_OBJECT__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__NAME = SQLQueryModelPackage.SQL_QUERY_OBJECT__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__DEPENDENCIES = SQLQueryModelPackage.SQL_QUERY_OBJECT__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__DESCRIPTION = SQLQueryModelPackage.SQL_QUERY_OBJECT__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__LABEL = SQLQueryModelPackage.SQL_QUERY_OBJECT__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__COMMENTS = SQLQueryModelPackage.SQL_QUERY_OBJECT__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__EXTENSIONS = SQLQueryModelPackage.SQL_QUERY_OBJECT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__PRIVILEGES = SQLQueryModelPackage.SQL_QUERY_OBJECT__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Value Function Validate</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__VALUE_FUNCTION_VALIDATE = SQLQueryModelPackage.SQL_QUERY_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Validate Element</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__VALIDATE_ELEMENT = SQLQueryModelPackage.SQL_QUERY_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+     * The number of structural features of the '<em>XML Value Function Validate According To</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_FEATURE_COUNT = SQLQueryModelPackage.SQL_QUERY_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateAccordingToURIImpl <em>XML Value Function Validate According To URI</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateAccordingToURIImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionValidateAccordingToURI()
+     * @generated
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_URI = 42;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_URI__EANNOTATIONS = XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_URI__NAME = XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_URI__DEPENDENCIES = XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_URI__DESCRIPTION = XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_URI__LABEL = XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_URI__COMMENTS = XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_URI__EXTENSIONS = XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_URI__PRIVILEGES = XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Value Function Validate</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_URI__VALUE_FUNCTION_VALIDATE = XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__VALUE_FUNCTION_VALIDATE;
+
+	/**
+     * The feature id for the '<em><b>Validate Element</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_URI__VALIDATE_ELEMENT = XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__VALIDATE_ELEMENT;
+
+	/**
+     * The feature id for the '<em><b>No Namespace</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_URI__NO_NAMESPACE = XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Target Namespace URI</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_URI__TARGET_NAMESPACE_URI = XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>Schema Location URI</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_URI__SCHEMA_LOCATION_URI = XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_FEATURE_COUNT + 2;
+
+	/**
+     * The number of structural features of the '<em>XML Value Function Validate According To URI</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_URI_FEATURE_COUNT = XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_FEATURE_COUNT + 3;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateAccordingToIdentifierImpl <em>XML Value Function Validate According To Identifier</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateAccordingToIdentifierImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionValidateAccordingToIdentifier()
+     * @generated
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_IDENTIFIER = 43;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_IDENTIFIER__EANNOTATIONS = XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_IDENTIFIER__NAME = XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_IDENTIFIER__DEPENDENCIES = XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_IDENTIFIER__DESCRIPTION = XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_IDENTIFIER__LABEL = XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_IDENTIFIER__COMMENTS = XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_IDENTIFIER__EXTENSIONS = XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_IDENTIFIER__PRIVILEGES = XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Value Function Validate</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_IDENTIFIER__VALUE_FUNCTION_VALIDATE = XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__VALUE_FUNCTION_VALIDATE;
+
+	/**
+     * The feature id for the '<em><b>Validate Element</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_IDENTIFIER__VALIDATE_ELEMENT = XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__VALIDATE_ELEMENT;
+
+	/**
+     * The feature id for the '<em><b>Schema Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_IDENTIFIER__SCHEMA_NAME = XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Registered XML Schema Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_IDENTIFIER__REGISTERED_XML_SCHEMA_NAME = XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_FEATURE_COUNT + 1;
+
+	/**
+     * The number of structural features of the '<em>XML Value Function Validate According To Identifier</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_IDENTIFIER_FEATURE_COUNT = XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_FEATURE_COUNT + 2;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateElementNameImpl <em>XML Value Function Validate Element Name</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateElementNameImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionValidateElementName()
+     * @generated
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAME = 44;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAME__EANNOTATIONS = SQLQueryModelPackage.SQL_QUERY_OBJECT__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAME__NAME = SQLQueryModelPackage.SQL_QUERY_OBJECT__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAME__DEPENDENCIES = SQLQueryModelPackage.SQL_QUERY_OBJECT__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAME__DESCRIPTION = SQLQueryModelPackage.SQL_QUERY_OBJECT__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAME__LABEL = SQLQueryModelPackage.SQL_QUERY_OBJECT__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAME__COMMENTS = SQLQueryModelPackage.SQL_QUERY_OBJECT__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAME__EXTENSIONS = SQLQueryModelPackage.SQL_QUERY_OBJECT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAME__PRIVILEGES = SQLQueryModelPackage.SQL_QUERY_OBJECT__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Validate Element</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAME__VALIDATE_ELEMENT = SQLQueryModelPackage.SQL_QUERY_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+     * The number of structural features of the '<em>XML Value Function Validate Element Name</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAME_FEATURE_COUNT = SQLQueryModelPackage.SQL_QUERY_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateElementNamespaceImpl <em>XML Value Function Validate Element Namespace</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateElementNamespaceImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionValidateElementNamespace()
+     * @generated
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAMESPACE = 45;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAMESPACE__EANNOTATIONS = SQLQueryModelPackage.SQL_QUERY_OBJECT__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAMESPACE__NAME = SQLQueryModelPackage.SQL_QUERY_OBJECT__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAMESPACE__DEPENDENCIES = SQLQueryModelPackage.SQL_QUERY_OBJECT__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAMESPACE__DESCRIPTION = SQLQueryModelPackage.SQL_QUERY_OBJECT__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAMESPACE__LABEL = SQLQueryModelPackage.SQL_QUERY_OBJECT__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAMESPACE__COMMENTS = SQLQueryModelPackage.SQL_QUERY_OBJECT__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAMESPACE__EXTENSIONS = SQLQueryModelPackage.SQL_QUERY_OBJECT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAMESPACE__PRIVILEGES = SQLQueryModelPackage.SQL_QUERY_OBJECT__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>No Namespace</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAMESPACE__NO_NAMESPACE = SQLQueryModelPackage.SQL_QUERY_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Namespace URI</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAMESPACE__NAMESPACE_URI = SQLQueryModelPackage.SQL_QUERY_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>Validate Element</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAMESPACE__VALIDATE_ELEMENT = SQLQueryModelPackage.SQL_QUERY_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+     * The number of structural features of the '<em>XML Value Function Validate Element Namespace</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAMESPACE_FEATURE_COUNT = SQLQueryModelPackage.SQL_QUERY_OBJECT_FEATURE_COUNT + 3;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLNamespacesDeclarationImpl <em>XML Namespaces Declaration</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLNamespacesDeclarationImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLNamespacesDeclaration()
+     * @generated
+     */
+    int XML_NAMESPACES_DECLARATION = 46;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_NAMESPACES_DECLARATION__EANNOTATIONS = SQLQueryModelPackage.SQL_QUERY_OBJECT__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_NAMESPACES_DECLARATION__NAME = SQLQueryModelPackage.SQL_QUERY_OBJECT__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_NAMESPACES_DECLARATION__DEPENDENCIES = SQLQueryModelPackage.SQL_QUERY_OBJECT__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_NAMESPACES_DECLARATION__DESCRIPTION = SQLQueryModelPackage.SQL_QUERY_OBJECT__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_NAMESPACES_DECLARATION__LABEL = SQLQueryModelPackage.SQL_QUERY_OBJECT__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_NAMESPACES_DECLARATION__COMMENTS = SQLQueryModelPackage.SQL_QUERY_OBJECT__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_NAMESPACES_DECLARATION__EXTENSIONS = SQLQueryModelPackage.SQL_QUERY_OBJECT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_NAMESPACES_DECLARATION__PRIVILEGES = SQLQueryModelPackage.SQL_QUERY_OBJECT__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Namespace Decltem List</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_NAMESPACES_DECLARATION__NAMESPACE_DECLTEM_LIST = SQLQueryModelPackage.SQL_QUERY_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Value Function Element</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_NAMESPACES_DECLARATION__VALUE_FUNCTION_ELEMENT = SQLQueryModelPackage.SQL_QUERY_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>Value Function Forest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_NAMESPACES_DECLARATION__VALUE_FUNCTION_FOREST = SQLQueryModelPackage.SQL_QUERY_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_NAMESPACES_DECLARATION__TABLE_FUNCTION = SQLQueryModelPackage.SQL_QUERY_OBJECT_FEATURE_COUNT + 3;
+
+	/**
+     * The number of structural features of the '<em>XML Namespaces Declaration</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_NAMESPACES_DECLARATION_FEATURE_COUNT = SQLQueryModelPackage.SQL_QUERY_OBJECT_FEATURE_COUNT + 4;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLAttributesDeclarationImpl <em>XML Attributes Declaration</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLAttributesDeclarationImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLAttributesDeclaration()
+     * @generated
+     */
+    int XML_ATTRIBUTES_DECLARATION = 47;
+
+	/**
+     * The feature id for the '<em><b>Value Function Element</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTES_DECLARATION__VALUE_FUNCTION_ELEMENT = 0;
+
+	/**
+     * The feature id for the '<em><b>Attribute Decl Item</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTES_DECLARATION__ATTRIBUTE_DECL_ITEM = 1;
+
+	/**
+     * The number of structural features of the '<em>XML Attributes Declaration</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_ATTRIBUTES_DECLARATION_FEATURE_COUNT = 2;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionElementContentListImpl <em>XML Value Function Element Content List</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionElementContentListImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionElementContentList()
+     * @generated
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST = 48;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST__EANNOTATIONS = SQLQueryModelPackage.SQL_QUERY_OBJECT__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST__NAME = SQLQueryModelPackage.SQL_QUERY_OBJECT__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST__DEPENDENCIES = SQLQueryModelPackage.SQL_QUERY_OBJECT__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST__DESCRIPTION = SQLQueryModelPackage.SQL_QUERY_OBJECT__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST__LABEL = SQLQueryModelPackage.SQL_QUERY_OBJECT__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST__COMMENTS = SQLQueryModelPackage.SQL_QUERY_OBJECT__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST__EXTENSIONS = SQLQueryModelPackage.SQL_QUERY_OBJECT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST__PRIVILEGES = SQLQueryModelPackage.SQL_QUERY_OBJECT__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Null Handling Option</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST__NULL_HANDLING_OPTION = SQLQueryModelPackage.SQL_QUERY_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Value Function Element</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST__VALUE_FUNCTION_ELEMENT = SQLQueryModelPackage.SQL_QUERY_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>Element Content List Children</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST__ELEMENT_CONTENT_LIST_CHILDREN = SQLQueryModelPackage.SQL_QUERY_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+     * The number of structural features of the '<em>XML Value Function Element Content List</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST_FEATURE_COUNT = SQLQueryModelPackage.SQL_QUERY_OBJECT_FEATURE_COUNT + 3;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionQueryReturningImpl <em>XML Value Function Query Returning</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionQueryReturningImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionQueryReturning()
+     * @generated
+     */
+    int XML_VALUE_FUNCTION_QUERY_RETURNING = 49;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY_RETURNING__EANNOTATIONS = SQLQueryModelPackage.SQL_QUERY_OBJECT__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY_RETURNING__NAME = SQLQueryModelPackage.SQL_QUERY_OBJECT__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY_RETURNING__DEPENDENCIES = SQLQueryModelPackage.SQL_QUERY_OBJECT__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY_RETURNING__DESCRIPTION = SQLQueryModelPackage.SQL_QUERY_OBJECT__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY_RETURNING__LABEL = SQLQueryModelPackage.SQL_QUERY_OBJECT__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_QUERY_RETURNING__COMMENTS = SQLQueryModelPackage.SQL_QUERY_OBJECT__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY_RETURNING__EXTENSIONS = SQLQueryModelPackage.SQL_QUERY_OBJECT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_QUERY_RETURNING__PRIVILEGES = SQLQueryModelPackage.SQL_QUERY_OBJECT__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Returning Option</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY_RETURNING__RETURNING_OPTION = SQLQueryModelPackage.SQL_QUERY_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Passing Option</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY_RETURNING__PASSING_OPTION = SQLQueryModelPackage.SQL_QUERY_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>Value Function Query</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY_RETURNING__VALUE_FUNCTION_QUERY = SQLQueryModelPackage.SQL_QUERY_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+     * The number of structural features of the '<em>XML Value Function Query Returning</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_QUERY_RETURNING_FEATURE_COUNT = SQLQueryModelPackage.SQL_QUERY_OBJECT_FEATURE_COUNT + 3;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateElementImpl <em>XML Value Function Validate Element</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateElementImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionValidateElement()
+     * @generated
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ELEMENT = 50;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ELEMENT__EANNOTATIONS = SQLQueryModelPackage.SQL_QUERY_OBJECT__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ELEMENT__NAME = SQLQueryModelPackage.SQL_QUERY_OBJECT__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ELEMENT__DEPENDENCIES = SQLQueryModelPackage.SQL_QUERY_OBJECT__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ELEMENT__DESCRIPTION = SQLQueryModelPackage.SQL_QUERY_OBJECT__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ELEMENT__LABEL = SQLQueryModelPackage.SQL_QUERY_OBJECT__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_VALIDATE_ELEMENT__COMMENTS = SQLQueryModelPackage.SQL_QUERY_OBJECT__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ELEMENT__EXTENSIONS = SQLQueryModelPackage.SQL_QUERY_OBJECT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_VALUE_FUNCTION_VALIDATE_ELEMENT__PRIVILEGES = SQLQueryModelPackage.SQL_QUERY_OBJECT__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Validate Element Namespace</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ELEMENT__VALIDATE_ELEMENT_NAMESPACE = SQLQueryModelPackage.SQL_QUERY_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Validate Element Name</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ELEMENT__VALIDATE_ELEMENT_NAME = SQLQueryModelPackage.SQL_QUERY_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+     * The feature id for the '<em><b>Validate According To</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ELEMENT__VALIDATE_ACCORDING_TO = SQLQueryModelPackage.SQL_QUERY_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+     * The number of structural features of the '<em>XML Value Function Validate Element</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_VALUE_FUNCTION_VALIDATE_ELEMENT_FEATURE_COUNT = SQLQueryModelPackage.SQL_QUERY_OBJECT_FEATURE_COUNT + 3;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLTableColumnDefinitionDefaultImpl <em>XML Table Column Definition Default</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLTableColumnDefinitionDefaultImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLTableColumnDefinitionDefault()
+     * @generated
+     */
+    int XML_TABLE_COLUMN_DEFINITION_DEFAULT = 51;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_DEFAULT__EANNOTATIONS = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_DEFAULT__NAME = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_DEFAULT__DEPENDENCIES = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_DEFAULT__DESCRIPTION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_DEFAULT__LABEL = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_TABLE_COLUMN_DEFINITION_DEFAULT__COMMENTS = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_DEFAULT__EXTENSIONS = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_TABLE_COLUMN_DEFINITION_DEFAULT__PRIVILEGES = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Unary Operator</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_DEFAULT__UNARY_OPERATOR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__UNARY_OPERATOR;
+
+	/**
+     * The feature id for the '<em><b>Data Type</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_DEFAULT__DATA_TYPE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__DATA_TYPE;
+
+	/**
+     * The feature id for the '<em><b>Values Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_DEFAULT__VALUES_ROW = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUES_ROW;
+
+	/**
+     * The feature id for the '<em><b>Order By Value Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_DEFAULT__ORDER_BY_VALUE_EXPR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__ORDER_BY_VALUE_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Result Column</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_DEFAULT__RESULT_COLUMN = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__RESULT_COLUMN;
+
+	/**
+     * The feature id for the '<em><b>Basic Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_DEFAULT__BASIC_RIGHT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Basic Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_DEFAULT__BASIC_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BASIC_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Like Pattern</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_DEFAULT__LIKE_PATTERN = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_PATTERN;
+
+	/**
+     * The feature id for the '<em><b>Like Matching</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_DEFAULT__LIKE_MATCHING = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_MATCHING;
+
+	/**
+     * The feature id for the '<em><b>Predicate Null</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_DEFAULT__PREDICATE_NULL = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__PREDICATE_NULL;
+
+	/**
+     * The feature id for the '<em><b>In Value List Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_DEFAULT__IN_VALUE_LIST_RIGHT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>In Value List Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_DEFAULT__IN_VALUE_LIST_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_LIST_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_DEFAULT__IN_VALUE_ROW_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>In Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_DEFAULT__IN_VALUE_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__IN_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Row Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_DEFAULT__QUANTIFIED_ROW_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_ROW_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Quantified Value Select Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_DEFAULT__QUANTIFIED_VALUE_SELECT_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__QUANTIFIED_VALUE_SELECT_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_DEFAULT__BETWEEN_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Between Right1</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_DEFAULT__BETWEEN_RIGHT1 = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT1;
+
+	/**
+     * The feature id for the '<em><b>Between Right2</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_DEFAULT__BETWEEN_RIGHT2 = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__BETWEEN_RIGHT2;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Cast</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_DEFAULT__VALUE_EXPR_CAST = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CAST;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_DEFAULT__VALUE_EXPR_FUNCTION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_FUNCTION;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Left</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_DEFAULT__VALUE_EXPR_COMBINED_LEFT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_LEFT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Combined Right</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_DEFAULT__VALUE_EXPR_COMBINED_RIGHT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_COMBINED_RIGHT;
+
+	/**
+     * The feature id for the '<em><b>Grouping Expr</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_DEFAULT__GROUPING_EXPR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__GROUPING_EXPR;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Else</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_DEFAULT__VALUE_EXPR_CASE_ELSE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_ELSE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_DEFAULT__VALUE_EXPR_CASE_SIMPLE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content When</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_DEFAULT__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_WHEN;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Simple Content Result</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_DEFAULT__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SIMPLE_CONTENT_RESULT;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Case Search Content</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_DEFAULT__VALUE_EXPR_CASE_SEARCH_CONTENT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_CASE_SEARCH_CONTENT;
+
+	/**
+     * The feature id for the '<em><b>Like Escape</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_DEFAULT__LIKE_ESCAPE = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__LIKE_ESCAPE;
+
+	/**
+     * The feature id for the '<em><b>Value Expr Labeled Duration</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_DEFAULT__VALUE_EXPR_LABELED_DURATION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_LABELED_DURATION;
+
+	/**
+     * The feature id for the '<em><b>Nest</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_DEFAULT__NEST = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__NEST;
+
+	/**
+     * The feature id for the '<em><b>Update Source Expr List</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_DEFAULT__UPDATE_SOURCE_EXPR_LIST = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__UPDATE_SOURCE_EXPR_LIST;
+
+	/**
+     * The feature id for the '<em><b>Table Function</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_DEFAULT__TABLE_FUNCTION = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__TABLE_FUNCTION;
+
+    /**
+     * The feature id for the '<em><b>Value Expr Row</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_DEFAULT__VALUE_EXPR_ROW = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__VALUE_EXPR_ROW;
+
+    /**
+     * The feature id for the '<em><b>Call Statement</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_DEFAULT__CALL_STATEMENT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION__CALL_STATEMENT;
+
+    /**
+     * The feature id for the '<em><b>Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_DEFAULT__VALUE_EXPR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 0;
+
+	/**
+     * The feature id for the '<em><b>Column Definition Regular</b></em>' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_DEFAULT__COLUMN_DEFINITION_REGULAR = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 1;
+
+	/**
+     * The number of structural features of the '<em>XML Table Column Definition Default</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_TABLE_COLUMN_DEFINITION_DEFAULT_FEATURE_COUNT = SQLQueryModelPackage.QUERY_VALUE_EXPRESSION_FEATURE_COUNT + 2;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLSerializeFunctionEncodingImpl <em>XML Serialize Function Encoding</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLSerializeFunctionEncodingImpl
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLSerializeFunctionEncoding()
+     * @generated
+     */
+    int XML_SERIALIZE_FUNCTION_ENCODING = 52;
+
+	/**
+     * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_ENCODING__EANNOTATIONS = SQLQueryModelPackage.SQL_QUERY_OBJECT__EANNOTATIONS;
+
+	/**
+     * The feature id for the '<em><b>Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_ENCODING__NAME = SQLQueryModelPackage.SQL_QUERY_OBJECT__NAME;
+
+	/**
+     * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_ENCODING__DEPENDENCIES = SQLQueryModelPackage.SQL_QUERY_OBJECT__DEPENDENCIES;
+
+	/**
+     * The feature id for the '<em><b>Description</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_ENCODING__DESCRIPTION = SQLQueryModelPackage.SQL_QUERY_OBJECT__DESCRIPTION;
+
+	/**
+     * The feature id for the '<em><b>Label</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_ENCODING__LABEL = SQLQueryModelPackage.SQL_QUERY_OBJECT__LABEL;
+
+	/**
+     * The feature id for the '<em><b>Comments</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_SERIALIZE_FUNCTION_ENCODING__COMMENTS = SQLQueryModelPackage.SQL_QUERY_OBJECT__COMMENTS;
+
+	/**
+     * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_ENCODING__EXTENSIONS = SQLQueryModelPackage.SQL_QUERY_OBJECT__EXTENSIONS;
+
+    /**
+     * The feature id for the '<em><b>Privileges</b></em>' reference list.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+	int XML_SERIALIZE_FUNCTION_ENCODING__PRIVILEGES = SQLQueryModelPackage.SQL_QUERY_OBJECT__PRIVILEGES;
+
+	/**
+     * The feature id for the '<em><b>Encoding Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_ENCODING__ENCODING_NAME = SQLQueryModelPackage.SQL_QUERY_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+     * The number of structural features of the '<em>XML Serialize Function Encoding</em>' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    int XML_SERIALIZE_FUNCTION_ENCODING_FEATURE_COUNT = SQLQueryModelPackage.SQL_QUERY_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLPassingType <em>XML Passing Type</em>}' enum.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLPassingType
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLPassingType()
+     * @generated
+     */
+    int XML_PASSING_TYPE = 53;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLContentType <em>XML Content Type</em>}' enum.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLContentType
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLContentType()
+     * @generated
+     */
+    int XML_CONTENT_TYPE = 54;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLDeclarationType <em>XML Declaration Type</em>}' enum.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLDeclarationType
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLDeclarationType()
+     * @generated
+     */
+    int XML_DECLARATION_TYPE = 55;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLReturningType <em>XML Returning Type</em>}' enum.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLReturningType
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLReturningType()
+     * @generated
+     */
+    int XML_RETURNING_TYPE = 56;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLNullHandlingType <em>XML Null Handling Type</em>}' enum.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLNullHandlingType
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLNullHandlingType()
+     * @generated
+     */
+    int XML_NULL_HANDLING_TYPE = 57;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLWhitespaceHandlingType <em>XML Whitespace Handling Type</em>}' enum.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLWhitespaceHandlingType
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLWhitespaceHandlingType()
+     * @generated
+     */
+    int XML_WHITESPACE_HANDLING_TYPE = 58;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLEmptyHandlingType <em>XML Empty Handling Type</em>}' enum.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLEmptyHandlingType
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLEmptyHandlingType()
+     * @generated
+     */
+    int XML_EMPTY_HANDLING_TYPE = 59;
+
+	/**
+     * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLContentType2 <em>XML Content Type2</em>}' enum.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLContentType2
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLContentType2()
+     * @generated
+     */
+    int XML_CONTENT_TYPE2 = 60;
+
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionConcat <em>XML Value Function Concat</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Value Function Concat</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionConcat
+     * @generated
+     */
+    EClass getXMLValueFunctionConcat();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionConcat#getReturningOption <em>Returning Option</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Returning Option</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionConcat#getReturningOption()
+     * @see #getXMLValueFunctionConcat()
+     * @generated
+     */
+    EAttribute getXMLValueFunctionConcat_ReturningOption();
+
+	/**
+     * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionConcat#getConcatContentList <em>Concat Content List</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference list '<em>Concat Content List</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionConcat#getConcatContentList()
+     * @see #getXMLValueFunctionConcat()
+     * @generated
+     */
+    EReference getXMLValueFunctionConcat_ConcatContentList();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunction <em>XML Value Function</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Value Function</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunction
+     * @generated
+     */
+    EClass getXMLValueFunction();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespaceDeclarationPrefix <em>XML Namespace Declaration Prefix</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Namespace Declaration Prefix</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespaceDeclarationPrefix
+     * @generated
+     */
+    EClass getXMLNamespaceDeclarationPrefix();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespaceDeclarationPrefix#getPrefix <em>Prefix</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Prefix</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespaceDeclarationPrefix#getPrefix()
+     * @see #getXMLNamespaceDeclarationPrefix()
+     * @generated
+     */
+    EAttribute getXMLNamespaceDeclarationPrefix_Prefix();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespaceDeclarationDefault <em>XML Namespace Declaration Default</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Namespace Declaration Default</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespaceDeclarationDefault
+     * @generated
+     */
+    EClass getXMLNamespaceDeclarationDefault();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespaceDeclarationDefault#isNoDefault <em>No Default</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>No Default</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespaceDeclarationDefault#isNoDefault()
+     * @see #getXMLNamespaceDeclarationDefault()
+     * @generated
+     */
+    EAttribute getXMLNamespaceDeclarationDefault_NoDefault();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLAttributeDeclarationItem <em>XML Attribute Declaration Item</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Attribute Declaration Item</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLAttributeDeclarationItem
+     * @generated
+     */
+    EClass getXMLAttributeDeclarationItem();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLAttributeDeclarationItem#getValueExpr <em>Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Value Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLAttributeDeclarationItem#getValueExpr()
+     * @see #getXMLAttributeDeclarationItem()
+     * @generated
+     */
+    EReference getXMLAttributeDeclarationItem_ValueExpr();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLAttributeDeclarationItem#getAttributesDecl <em>Attributes Decl</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Attributes Decl</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLAttributeDeclarationItem#getAttributesDecl()
+     * @see #getXMLAttributeDeclarationItem()
+     * @generated
+     */
+    EReference getXMLAttributeDeclarationItem_AttributesDecl();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElement <em>XML Value Function Element</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Value Function Element</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElement
+     * @generated
+     */
+    EClass getXMLValueFunctionElement();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElement#getElementName <em>Element Name</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Element Name</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElement#getElementName()
+     * @see #getXMLValueFunctionElement()
+     * @generated
+     */
+    EAttribute getXMLValueFunctionElement_ElementName();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElement#getReturningOption <em>Returning Option</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Returning Option</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElement#getReturningOption()
+     * @see #getXMLValueFunctionElement()
+     * @generated
+     */
+    EAttribute getXMLValueFunctionElement_ReturningOption();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElement#getNamespacesDecl <em>Namespaces Decl</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Namespaces Decl</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElement#getNamespacesDecl()
+     * @see #getXMLValueFunctionElement()
+     * @generated
+     */
+    EReference getXMLValueFunctionElement_NamespacesDecl();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElement#getAttributesDecl <em>Attributes Decl</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Attributes Decl</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElement#getAttributesDecl()
+     * @see #getXMLValueFunctionElement()
+     * @generated
+     */
+    EReference getXMLValueFunctionElement_AttributesDecl();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElement#getElementContentList <em>Element Content List</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Element Content List</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElement#getElementContentList()
+     * @see #getXMLValueFunctionElement()
+     * @generated
+     */
+    EReference getXMLValueFunctionElement_ElementContentList();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespaceDeclarationItem <em>XML Namespace Declaration Item</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Namespace Declaration Item</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespaceDeclarationItem
+     * @generated
+     */
+    EClass getXMLNamespaceDeclarationItem();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespaceDeclarationItem#getUri <em>Uri</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Uri</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespaceDeclarationItem#getUri()
+     * @see #getXMLNamespaceDeclarationItem()
+     * @generated
+     */
+    EAttribute getXMLNamespaceDeclarationItem_Uri();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespaceDeclarationItem#getNamespacesDecl <em>Namespaces Decl</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Namespaces Decl</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespaceDeclarationItem#getNamespacesDecl()
+     * @see #getXMLNamespaceDeclarationItem()
+     * @generated
+     */
+    EReference getXMLNamespaceDeclarationItem_NamespacesDecl();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElementContentItem <em>XML Value Function Element Content Item</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Value Function Element Content Item</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElementContentItem
+     * @generated
+     */
+    EClass getXMLValueFunctionElementContentItem();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElementContentItem#getValueExpr <em>Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Value Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElementContentItem#getValueExpr()
+     * @see #getXMLValueFunctionElementContentItem()
+     * @generated
+     */
+    EReference getXMLValueFunctionElementContentItem_ValueExpr();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElementContentItem#getElementContentList <em>Element Content List</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Element Content List</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElementContentItem#getElementContentList()
+     * @see #getXMLValueFunctionElementContentItem()
+     * @generated
+     */
+    EReference getXMLValueFunctionElementContentItem_ElementContentList();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForest <em>XML Value Function Forest</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Value Function Forest</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForest
+     * @generated
+     */
+    EClass getXMLValueFunctionForest();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForest#getNullHandlingOption <em>Null Handling Option</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Null Handling Option</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForest#getNullHandlingOption()
+     * @see #getXMLValueFunctionForest()
+     * @generated
+     */
+    EAttribute getXMLValueFunctionForest_NullHandlingOption();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForest#getReturningOption <em>Returning Option</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Returning Option</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForest#getReturningOption()
+     * @see #getXMLValueFunctionForest()
+     * @generated
+     */
+    EAttribute getXMLValueFunctionForest_ReturningOption();
+
+	/**
+     * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForest#getForestContentList <em>Forest Content List</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference list '<em>Forest Content List</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForest#getForestContentList()
+     * @see #getXMLValueFunctionForest()
+     * @generated
+     */
+    EReference getXMLValueFunctionForest_ForestContentList();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForest#getNamespacesDecl <em>Namespaces Decl</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Namespaces Decl</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForest#getNamespacesDecl()
+     * @see #getXMLValueFunctionForest()
+     * @generated
+     */
+    EReference getXMLValueFunctionForest_NamespacesDecl();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionComment <em>XML Value Function Comment</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Value Function Comment</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionComment
+     * @generated
+     */
+    EClass getXMLValueFunctionComment();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionComment#getReturningOption <em>Returning Option</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Returning Option</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionComment#getReturningOption()
+     * @see #getXMLValueFunctionComment()
+     * @generated
+     */
+    EAttribute getXMLValueFunctionComment_ReturningOption();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionComment#getCommentContent <em>Comment Content</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Comment Content</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionComment#getCommentContent()
+     * @see #getXMLValueFunctionComment()
+     * @generated
+     */
+    EReference getXMLValueFunctionComment_CommentContent();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionDocument <em>XML Value Function Document</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Value Function Document</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionDocument
+     * @generated
+     */
+    EClass getXMLValueFunctionDocument();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionDocument#getReturningOption <em>Returning Option</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Returning Option</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionDocument#getReturningOption()
+     * @see #getXMLValueFunctionDocument()
+     * @generated
+     */
+    EAttribute getXMLValueFunctionDocument_ReturningOption();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionDocument#getDocumentContent <em>Document Content</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Document Content</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionDocument#getDocumentContent()
+     * @see #getXMLValueFunctionDocument()
+     * @generated
+     */
+    EReference getXMLValueFunctionDocument_DocumentContent();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionParse <em>XML Value Function Parse</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Value Function Parse</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionParse
+     * @generated
+     */
+    EClass getXMLValueFunctionParse();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionParse#getContentOption <em>Content Option</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Content Option</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionParse#getContentOption()
+     * @see #getXMLValueFunctionParse()
+     * @generated
+     */
+    EAttribute getXMLValueFunctionParse_ContentOption();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionParse#getWhitespaceHandlingOption <em>Whitespace Handling Option</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Whitespace Handling Option</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionParse#getWhitespaceHandlingOption()
+     * @see #getXMLValueFunctionParse()
+     * @generated
+     */
+    EAttribute getXMLValueFunctionParse_WhitespaceHandlingOption();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionParse#getParseContent <em>Parse Content</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Parse Content</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionParse#getParseContent()
+     * @see #getXMLValueFunctionParse()
+     * @generated
+     */
+    EReference getXMLValueFunctionParse_ParseContent();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionPI <em>XML Value Function PI</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Value Function PI</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionPI
+     * @generated
+     */
+    EClass getXMLValueFunctionPI();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionPI#getTargetName <em>Target Name</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Target Name</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionPI#getTargetName()
+     * @see #getXMLValueFunctionPI()
+     * @generated
+     */
+    EAttribute getXMLValueFunctionPI_TargetName();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionPI#getReturningOption <em>Returning Option</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Returning Option</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionPI#getReturningOption()
+     * @see #getXMLValueFunctionPI()
+     * @generated
+     */
+    EAttribute getXMLValueFunctionPI_ReturningOption();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionPI#getPIContent <em>PI Content</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>PI Content</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionPI#getPIContent()
+     * @see #getXMLValueFunctionPI()
+     * @generated
+     */
+    EReference getXMLValueFunctionPI_PIContent();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQuery <em>XML Value Function Query</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Value Function Query</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQuery
+     * @generated
+     */
+    EClass getXMLValueFunctionQuery();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQuery#getEmptyHandlingOption <em>Empty Handling Option</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Empty Handling Option</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQuery#getEmptyHandlingOption()
+     * @see #getXMLValueFunctionQuery()
+     * @generated
+     */
+    EAttribute getXMLValueFunctionQuery_EmptyHandlingOption();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQuery#getXqueryExpr <em>Xquery Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Xquery Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQuery#getXqueryExpr()
+     * @see #getXMLValueFunctionQuery()
+     * @generated
+     */
+    EReference getXMLValueFunctionQuery_XqueryExpr();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQuery#getXqueryArgList <em>Xquery Arg List</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Xquery Arg List</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQuery#getXqueryArgList()
+     * @see #getXMLValueFunctionQuery()
+     * @generated
+     */
+    EReference getXMLValueFunctionQuery_XqueryArgList();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQuery#getQueryReturning <em>Query Returning</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Query Returning</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQuery#getQueryReturning()
+     * @see #getXMLValueFunctionQuery()
+     * @generated
+     */
+    EReference getXMLValueFunctionQuery_QueryReturning();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionText <em>XML Value Function Text</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Value Function Text</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionText
+     * @generated
+     */
+    EClass getXMLValueFunctionText();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionText#getReturningOption <em>Returning Option</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Returning Option</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionText#getReturningOption()
+     * @see #getXMLValueFunctionText()
+     * @generated
+     */
+    EAttribute getXMLValueFunctionText_ReturningOption();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionText#getTextContent <em>Text Content</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Text Content</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionText#getTextContent()
+     * @see #getXMLValueFunctionText()
+     * @generated
+     */
+    EReference getXMLValueFunctionText_TextContent();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidate <em>XML Value Function Validate</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Value Function Validate</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidate
+     * @generated
+     */
+    EClass getXMLValueFunctionValidate();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidate#getContentOption <em>Content Option</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Content Option</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidate#getContentOption()
+     * @see #getXMLValueFunctionValidate()
+     * @generated
+     */
+    EAttribute getXMLValueFunctionValidate_ContentOption();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidate#getValidateContent <em>Validate Content</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Validate Content</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidate#getValidateContent()
+     * @see #getXMLValueFunctionValidate()
+     * @generated
+     */
+    EReference getXMLValueFunctionValidate_ValidateContent();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidate#getValidateAccordingTo <em>Validate According To</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Validate According To</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidate#getValidateAccordingTo()
+     * @see #getXMLValueFunctionValidate()
+     * @generated
+     */
+    EReference getXMLValueFunctionValidate_ValidateAccordingTo();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueExpressionCast <em>XML Value Expression Cast</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Value Expression Cast</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueExpressionCast
+     * @generated
+     */
+    EClass getXMLValueExpressionCast();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueExpressionCast#getPassingMechanism <em>Passing Mechanism</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Passing Mechanism</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueExpressionCast#getPassingMechanism()
+     * @see #getXMLValueExpressionCast()
+     * @generated
+     */
+    EAttribute getXMLValueExpressionCast_PassingMechanism();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLPredicate <em>XML Predicate</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Predicate</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLPredicate
+     * @generated
+     */
+    EClass getXMLPredicate();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLPredicateContent <em>XML Predicate Content</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Predicate Content</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLPredicateContent
+     * @generated
+     */
+    EClass getXMLPredicateContent();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLPredicateDocument <em>XML Predicate Document</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Predicate Document</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLPredicateDocument
+     * @generated
+     */
+    EClass getXMLPredicateDocument();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLPredicateExists <em>XML Predicate Exists</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Predicate Exists</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLPredicateExists
+     * @generated
+     */
+    EClass getXMLPredicateExists();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLPredicateExists#getXqueryExpr <em>Xquery Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Xquery Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLPredicateExists#getXqueryExpr()
+     * @see #getXMLPredicateExists()
+     * @generated
+     */
+    EReference getXMLPredicateExists_XqueryExpr();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLPredicateExists#getXqueryArgList <em>Xquery Arg List</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Xquery Arg List</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLPredicateExists#getXqueryArgList()
+     * @see #getXMLPredicateExists()
+     * @generated
+     */
+    EReference getXMLPredicateExists_XqueryArgList();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLPredicateValid <em>XML Predicate Valid</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Predicate Valid</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLPredicateValid
+     * @generated
+     */
+    EClass getXMLPredicateValid();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryExpression <em>XML Query Expression</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Query Expression</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryExpression
+     * @generated
+     */
+    EClass getXMLQueryExpression();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryExpression#getXqueryExprContent <em>Xquery Expr Content</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Xquery Expr Content</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryExpression#getXqueryExprContent()
+     * @see #getXMLQueryExpression()
+     * @generated
+     */
+    EAttribute getXMLQueryExpression_XqueryExprContent();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryExpression#getPredicateExists <em>Predicate Exists</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Predicate Exists</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryExpression#getPredicateExists()
+     * @see #getXMLQueryExpression()
+     * @generated
+     */
+    EReference getXMLQueryExpression_PredicateExists();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryExpression#getValueFunctionQuery <em>Value Function Query</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Value Function Query</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryExpression#getValueFunctionQuery()
+     * @see #getXMLQueryExpression()
+     * @generated
+     */
+    EReference getXMLQueryExpression_ValueFunctionQuery();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentList <em>XML Query Argument List</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Query Argument List</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentList
+     * @generated
+     */
+    EClass getXMLQueryArgumentList();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentList#getPassingMechanism <em>Passing Mechanism</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Passing Mechanism</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentList#getPassingMechanism()
+     * @see #getXMLQueryArgumentList()
+     * @generated
+     */
+    EAttribute getXMLQueryArgumentList_PassingMechanism();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentList#getPredicateExists <em>Predicate Exists</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Predicate Exists</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentList#getPredicateExists()
+     * @see #getXMLQueryArgumentList()
+     * @generated
+     */
+    EReference getXMLQueryArgumentList_PredicateExists();
+
+	/**
+     * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentList#getXqueryArgListChildren <em>Xquery Arg List Children</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference list '<em>Xquery Arg List Children</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentList#getXqueryArgListChildren()
+     * @see #getXMLQueryArgumentList()
+     * @generated
+     */
+    EReference getXMLQueryArgumentList_XqueryArgListChildren();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentList#getValueFunctionQuery <em>Value Function Query</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Value Function Query</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentList#getValueFunctionQuery()
+     * @see #getXMLQueryArgumentList()
+     * @generated
+     */
+    EReference getXMLQueryArgumentList_ValueFunctionQuery();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentList#getTableFunction <em>Table Function</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Table Function</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentList#getTableFunction()
+     * @see #getXMLQueryArgumentList()
+     * @generated
+     */
+    EReference getXMLQueryArgumentList_TableFunction();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentItem <em>XML Query Argument Item</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Query Argument Item</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentItem
+     * @generated
+     */
+    EClass getXMLQueryArgumentItem();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentItem#getPassingMechanism <em>Passing Mechanism</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Passing Mechanism</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentItem#getPassingMechanism()
+     * @see #getXMLQueryArgumentItem()
+     * @generated
+     */
+    EAttribute getXMLQueryArgumentItem_PassingMechanism();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentItem#getXqueryArgList <em>Xquery Arg List</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Xquery Arg List</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentItem#getXqueryArgList()
+     * @see #getXMLQueryArgumentItem()
+     * @generated
+     */
+    EReference getXMLQueryArgumentItem_XqueryArgList();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentItem#getValueExpr <em>Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Value Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentItem#getValueExpr()
+     * @see #getXMLQueryArgumentItem()
+     * @generated
+     */
+    EReference getXMLQueryArgumentItem_ValueExpr();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunction <em>XML Serialize Function</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Serialize Function</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunction
+     * @generated
+     */
+    EClass getXMLSerializeFunction();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunction#getContentOption <em>Content Option</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Content Option</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunction#getContentOption()
+     * @see #getXMLSerializeFunction()
+     * @generated
+     */
+    EAttribute getXMLSerializeFunction_ContentOption();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunction#getSerializeVersion <em>Serialize Version</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Serialize Version</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunction#getSerializeVersion()
+     * @see #getXMLSerializeFunction()
+     * @generated
+     */
+    EAttribute getXMLSerializeFunction_SerializeVersion();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunction#getDeclarationOption <em>Declaration Option</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Declaration Option</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunction#getDeclarationOption()
+     * @see #getXMLSerializeFunction()
+     * @generated
+     */
+    EAttribute getXMLSerializeFunction_DeclarationOption();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunction#getSerializeTarget <em>Serialize Target</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Serialize Target</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunction#getSerializeTarget()
+     * @see #getXMLSerializeFunction()
+     * @generated
+     */
+    EReference getXMLSerializeFunction_SerializeTarget();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunction#getSerializeEncoding <em>Serialize Encoding</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Serialize Encoding</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunction#getSerializeEncoding()
+     * @see #getXMLSerializeFunction()
+     * @generated
+     */
+    EReference getXMLSerializeFunction_SerializeEncoding();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunctionTarget <em>XML Serialize Function Target</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Serialize Function Target</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunctionTarget
+     * @generated
+     */
+    EClass getXMLSerializeFunctionTarget();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunctionTarget#getSerializeFunction <em>Serialize Function</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Serialize Function</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunctionTarget#getSerializeFunction()
+     * @see #getXMLSerializeFunctionTarget()
+     * @generated
+     */
+    EReference getXMLSerializeFunctionTarget_SerializeFunction();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunctionTarget#getValueExpr <em>Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Value Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunctionTarget#getValueExpr()
+     * @see #getXMLSerializeFunctionTarget()
+     * @generated
+     */
+    EReference getXMLSerializeFunctionTarget_ValueExpr();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLAggregateFunction <em>XML Aggregate Function</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Aggregate Function</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLAggregateFunction
+     * @generated
+     */
+    EClass getXMLAggregateFunction();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLAggregateFunction#getReturningOption <em>Returning Option</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Returning Option</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLAggregateFunction#getReturningOption()
+     * @see #getXMLAggregateFunction()
+     * @generated
+     */
+    EAttribute getXMLAggregateFunction_ReturningOption();
+
+	/**
+     * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLAggregateFunction#getSortSpecList <em>Sort Spec List</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference list '<em>Sort Spec List</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLAggregateFunction#getSortSpecList()
+     * @see #getXMLAggregateFunction()
+     * @generated
+     */
+    EReference getXMLAggregateFunction_SortSpecList();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionConcatContentItem <em>XML Value Function Concat Content Item</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Value Function Concat Content Item</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionConcatContentItem
+     * @generated
+     */
+    EClass getXMLValueFunctionConcatContentItem();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionConcatContentItem#getValueFunctionConcat <em>Value Function Concat</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Value Function Concat</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionConcatContentItem#getValueFunctionConcat()
+     * @see #getXMLValueFunctionConcatContentItem()
+     * @generated
+     */
+    EReference getXMLValueFunctionConcatContentItem_ValueFunctionConcat();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionConcatContentItem#getValueExpr <em>Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Value Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionConcatContentItem#getValueExpr()
+     * @see #getXMLValueFunctionConcatContentItem()
+     * @generated
+     */
+    EReference getXMLValueFunctionConcatContentItem_ValueExpr();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionCommentContent <em>XML Value Function Comment Content</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Value Function Comment Content</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionCommentContent
+     * @generated
+     */
+    EClass getXMLValueFunctionCommentContent();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionCommentContent#getValueFunctionComment <em>Value Function Comment</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Value Function Comment</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionCommentContent#getValueFunctionComment()
+     * @see #getXMLValueFunctionCommentContent()
+     * @generated
+     */
+    EReference getXMLValueFunctionCommentContent_ValueFunctionComment();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionCommentContent#getValueExpr <em>Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Value Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionCommentContent#getValueExpr()
+     * @see #getXMLValueFunctionCommentContent()
+     * @generated
+     */
+    EReference getXMLValueFunctionCommentContent_ValueExpr();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionDocumentContent <em>XML Value Function Document Content</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Value Function Document Content</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionDocumentContent
+     * @generated
+     */
+    EClass getXMLValueFunctionDocumentContent();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionDocumentContent#getValueFunctionDocument <em>Value Function Document</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Value Function Document</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionDocumentContent#getValueFunctionDocument()
+     * @see #getXMLValueFunctionDocumentContent()
+     * @generated
+     */
+    EReference getXMLValueFunctionDocumentContent_ValueFunctionDocument();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionDocumentContent#getValueExpr <em>Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Value Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionDocumentContent#getValueExpr()
+     * @see #getXMLValueFunctionDocumentContent()
+     * @generated
+     */
+    EReference getXMLValueFunctionDocumentContent_ValueExpr();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLAggregateSortSpecification <em>XML Aggregate Sort Specification</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Aggregate Sort Specification</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLAggregateSortSpecification
+     * @generated
+     */
+    EClass getXMLAggregateSortSpecification();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLAggregateSortSpecification#getAggregateFunction <em>Aggregate Function</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Aggregate Function</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLAggregateSortSpecification#getAggregateFunction()
+     * @see #getXMLAggregateSortSpecification()
+     * @generated
+     */
+    EReference getXMLAggregateSortSpecification_AggregateFunction();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLAggregateSortSpecification#getOrderBySpec <em>Order By Spec</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Order By Spec</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLAggregateSortSpecification#getOrderBySpec()
+     * @see #getXMLAggregateSortSpecification()
+     * @generated
+     */
+    EReference getXMLAggregateSortSpecification_OrderBySpec();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForestContentItem <em>XML Value Function Forest Content Item</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Value Function Forest Content Item</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForestContentItem
+     * @generated
+     */
+    EClass getXMLValueFunctionForestContentItem();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForestContentItem#getValueFunctionForest <em>Value Function Forest</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Value Function Forest</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForestContentItem#getValueFunctionForest()
+     * @see #getXMLValueFunctionForestContentItem()
+     * @generated
+     */
+    EReference getXMLValueFunctionForestContentItem_ValueFunctionForest();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForestContentItem#getValueExpr <em>Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Value Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForestContentItem#getValueExpr()
+     * @see #getXMLValueFunctionForestContentItem()
+     * @generated
+     */
+    EReference getXMLValueFunctionForestContentItem_ValueExpr();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionParseContent <em>XML Value Function Parse Content</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Value Function Parse Content</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionParseContent
+     * @generated
+     */
+    EClass getXMLValueFunctionParseContent();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionParseContent#getValueFunctionParse <em>Value Function Parse</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Value Function Parse</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionParseContent#getValueFunctionParse()
+     * @see #getXMLValueFunctionParseContent()
+     * @generated
+     */
+    EReference getXMLValueFunctionParseContent_ValueFunctionParse();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionParseContent#getValueExpr <em>Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Value Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionParseContent#getValueExpr()
+     * @see #getXMLValueFunctionParseContent()
+     * @generated
+     */
+    EReference getXMLValueFunctionParseContent_ValueExpr();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionPIContent <em>XML Value Function PI Content</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Value Function PI Content</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionPIContent
+     * @generated
+     */
+    EClass getXMLValueFunctionPIContent();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionPIContent#getValueFunctionPI <em>Value Function PI</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Value Function PI</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionPIContent#getValueFunctionPI()
+     * @see #getXMLValueFunctionPIContent()
+     * @generated
+     */
+    EReference getXMLValueFunctionPIContent_ValueFunctionPI();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionPIContent#getValueExpr <em>Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Value Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionPIContent#getValueExpr()
+     * @see #getXMLValueFunctionPIContent()
+     * @generated
+     */
+    EReference getXMLValueFunctionPIContent_ValueExpr();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableFunction <em>XML Table Function</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Table Function</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLTableFunction
+     * @generated
+     */
+    EClass getXMLTableFunction();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableFunction#getTableRowPattern <em>Table Row Pattern</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Table Row Pattern</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLTableFunction#getTableRowPattern()
+     * @see #getXMLTableFunction()
+     * @generated
+     */
+    EAttribute getXMLTableFunction_TableRowPattern();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableFunction#getXqueryArgList <em>Xquery Arg List</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Xquery Arg List</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLTableFunction#getXqueryArgList()
+     * @see #getXMLTableFunction()
+     * @generated
+     */
+    EReference getXMLTableFunction_XqueryArgList();
+
+	/**
+     * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableFunction#getColumnDefList <em>Column Def List</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference list '<em>Column Def List</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLTableFunction#getColumnDefList()
+     * @see #getXMLTableFunction()
+     * @generated
+     */
+    EReference getXMLTableFunction_ColumnDefList();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableFunction#getNamespacesDecl <em>Namespaces Decl</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Namespaces Decl</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLTableFunction#getNamespacesDecl()
+     * @see #getXMLTableFunction()
+     * @generated
+     */
+    EReference getXMLTableFunction_NamespacesDecl();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionTextContent <em>XML Value Function Text Content</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Value Function Text Content</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionTextContent
+     * @generated
+     */
+    EClass getXMLValueFunctionTextContent();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionTextContent#getValueFunctionText <em>Value Function Text</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Value Function Text</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionTextContent#getValueFunctionText()
+     * @see #getXMLValueFunctionTextContent()
+     * @generated
+     */
+    EReference getXMLValueFunctionTextContent_ValueFunctionText();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionTextContent#getValueExpr <em>Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Value Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionTextContent#getValueExpr()
+     * @see #getXMLValueFunctionTextContent()
+     * @generated
+     */
+    EReference getXMLValueFunctionTextContent_ValueExpr();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateContent <em>XML Value Function Validate Content</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Value Function Validate Content</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateContent
+     * @generated
+     */
+    EClass getXMLValueFunctionValidateContent();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateContent#getValueFunctionValidate <em>Value Function Validate</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Value Function Validate</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateContent#getValueFunctionValidate()
+     * @see #getXMLValueFunctionValidateContent()
+     * @generated
+     */
+    EReference getXMLValueFunctionValidateContent_ValueFunctionValidate();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateContent#getValueExpr <em>Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Value Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateContent#getValueExpr()
+     * @see #getXMLValueFunctionValidateContent()
+     * @generated
+     */
+    EReference getXMLValueFunctionValidateContent_ValueExpr();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionItem <em>XML Table Column Definition Item</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Table Column Definition Item</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionItem
+     * @generated
+     */
+    EClass getXMLTableColumnDefinitionItem();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionItem#getTableFunction <em>Table Function</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Table Function</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionItem#getTableFunction()
+     * @see #getXMLTableColumnDefinitionItem()
+     * @generated
+     */
+    EReference getXMLTableColumnDefinitionItem_TableFunction();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionRegular <em>XML Table Column Definition Regular</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Table Column Definition Regular</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionRegular
+     * @generated
+     */
+    EClass getXMLTableColumnDefinitionRegular();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionRegular#getDataType <em>Data Type</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Data Type</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionRegular#getDataType()
+     * @see #getXMLTableColumnDefinitionRegular()
+     * @generated
+     */
+    EReference getXMLTableColumnDefinitionRegular_DataType();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionRegular#getPassingOption <em>Passing Option</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Passing Option</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionRegular#getPassingOption()
+     * @see #getXMLTableColumnDefinitionRegular()
+     * @generated
+     */
+    EAttribute getXMLTableColumnDefinitionRegular_PassingOption();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionRegular#getTableColumnPattern <em>Table Column Pattern</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Table Column Pattern</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionRegular#getTableColumnPattern()
+     * @see #getXMLTableColumnDefinitionRegular()
+     * @generated
+     */
+    EAttribute getXMLTableColumnDefinitionRegular_TableColumnPattern();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionRegular#getColumnDefinitionDefault <em>Column Definition Default</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Column Definition Default</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionRegular#getColumnDefinitionDefault()
+     * @see #getXMLTableColumnDefinitionRegular()
+     * @generated
+     */
+    EReference getXMLTableColumnDefinitionRegular_ColumnDefinitionDefault();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionOrdinality <em>XML Table Column Definition Ordinality</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Table Column Definition Ordinality</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionOrdinality
+     * @generated
+     */
+    EClass getXMLTableColumnDefinitionOrdinality();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingTo <em>XML Value Function Validate According To</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Value Function Validate According To</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingTo
+     * @generated
+     */
+    EClass getXMLValueFunctionValidateAccordingTo();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingTo#getValueFunctionValidate <em>Value Function Validate</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Value Function Validate</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingTo#getValueFunctionValidate()
+     * @see #getXMLValueFunctionValidateAccordingTo()
+     * @generated
+     */
+    EReference getXMLValueFunctionValidateAccordingTo_ValueFunctionValidate();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingTo#getValidateElement <em>Validate Element</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Validate Element</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingTo#getValidateElement()
+     * @see #getXMLValueFunctionValidateAccordingTo()
+     * @generated
+     */
+    EReference getXMLValueFunctionValidateAccordingTo_ValidateElement();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingToURI <em>XML Value Function Validate According To URI</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Value Function Validate According To URI</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingToURI
+     * @generated
+     */
+    EClass getXMLValueFunctionValidateAccordingToURI();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingToURI#isNoNamespace <em>No Namespace</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>No Namespace</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingToURI#isNoNamespace()
+     * @see #getXMLValueFunctionValidateAccordingToURI()
+     * @generated
+     */
+    EAttribute getXMLValueFunctionValidateAccordingToURI_NoNamespace();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingToURI#getTargetNamespaceURI <em>Target Namespace URI</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Target Namespace URI</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingToURI#getTargetNamespaceURI()
+     * @see #getXMLValueFunctionValidateAccordingToURI()
+     * @generated
+     */
+    EAttribute getXMLValueFunctionValidateAccordingToURI_TargetNamespaceURI();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingToURI#getSchemaLocationURI <em>Schema Location URI</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Schema Location URI</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingToURI#getSchemaLocationURI()
+     * @see #getXMLValueFunctionValidateAccordingToURI()
+     * @generated
+     */
+    EAttribute getXMLValueFunctionValidateAccordingToURI_SchemaLocationURI();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingToIdentifier <em>XML Value Function Validate According To Identifier</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Value Function Validate According To Identifier</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingToIdentifier
+     * @generated
+     */
+    EClass getXMLValueFunctionValidateAccordingToIdentifier();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingToIdentifier#getSchemaName <em>Schema Name</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Schema Name</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingToIdentifier#getSchemaName()
+     * @see #getXMLValueFunctionValidateAccordingToIdentifier()
+     * @generated
+     */
+    EAttribute getXMLValueFunctionValidateAccordingToIdentifier_SchemaName();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingToIdentifier#getRegisteredXMLSchemaName <em>Registered XML Schema Name</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Registered XML Schema Name</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingToIdentifier#getRegisteredXMLSchemaName()
+     * @see #getXMLValueFunctionValidateAccordingToIdentifier()
+     * @generated
+     */
+    EAttribute getXMLValueFunctionValidateAccordingToIdentifier_RegisteredXMLSchemaName();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElementName <em>XML Value Function Validate Element Name</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Value Function Validate Element Name</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElementName
+     * @generated
+     */
+    EClass getXMLValueFunctionValidateElementName();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElementName#getValidateElement <em>Validate Element</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Validate Element</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElementName#getValidateElement()
+     * @see #getXMLValueFunctionValidateElementName()
+     * @generated
+     */
+    EReference getXMLValueFunctionValidateElementName_ValidateElement();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElementNamespace <em>XML Value Function Validate Element Namespace</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Value Function Validate Element Namespace</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElementNamespace
+     * @generated
+     */
+    EClass getXMLValueFunctionValidateElementNamespace();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElementNamespace#isNoNamespace <em>No Namespace</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>No Namespace</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElementNamespace#isNoNamespace()
+     * @see #getXMLValueFunctionValidateElementNamespace()
+     * @generated
+     */
+    EAttribute getXMLValueFunctionValidateElementNamespace_NoNamespace();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElementNamespace#getNamespaceURI <em>Namespace URI</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Namespace URI</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElementNamespace#getNamespaceURI()
+     * @see #getXMLValueFunctionValidateElementNamespace()
+     * @generated
+     */
+    EAttribute getXMLValueFunctionValidateElementNamespace_NamespaceURI();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElementNamespace#getValidateElement <em>Validate Element</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Validate Element</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElementNamespace#getValidateElement()
+     * @see #getXMLValueFunctionValidateElementNamespace()
+     * @generated
+     */
+    EReference getXMLValueFunctionValidateElementNamespace_ValidateElement();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespacesDeclaration <em>XML Namespaces Declaration</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Namespaces Declaration</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespacesDeclaration
+     * @generated
+     */
+    EClass getXMLNamespacesDeclaration();
+
+	/**
+     * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespacesDeclaration#getNamespaceDecltemList <em>Namespace Decltem List</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference list '<em>Namespace Decltem List</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespacesDeclaration#getNamespaceDecltemList()
+     * @see #getXMLNamespacesDeclaration()
+     * @generated
+     */
+    EReference getXMLNamespacesDeclaration_NamespaceDecltemList();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespacesDeclaration#getValueFunctionElement <em>Value Function Element</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Value Function Element</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespacesDeclaration#getValueFunctionElement()
+     * @see #getXMLNamespacesDeclaration()
+     * @generated
+     */
+    EReference getXMLNamespacesDeclaration_ValueFunctionElement();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespacesDeclaration#getValueFunctionForest <em>Value Function Forest</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Value Function Forest</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespacesDeclaration#getValueFunctionForest()
+     * @see #getXMLNamespacesDeclaration()
+     * @generated
+     */
+    EReference getXMLNamespacesDeclaration_ValueFunctionForest();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespacesDeclaration#getTableFunction <em>Table Function</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Table Function</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespacesDeclaration#getTableFunction()
+     * @see #getXMLNamespacesDeclaration()
+     * @generated
+     */
+    EReference getXMLNamespacesDeclaration_TableFunction();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLAttributesDeclaration <em>XML Attributes Declaration</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Attributes Declaration</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLAttributesDeclaration
+     * @generated
+     */
+    EClass getXMLAttributesDeclaration();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLAttributesDeclaration#getValueFunctionElement <em>Value Function Element</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Value Function Element</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLAttributesDeclaration#getValueFunctionElement()
+     * @see #getXMLAttributesDeclaration()
+     * @generated
+     */
+    EReference getXMLAttributesDeclaration_ValueFunctionElement();
+
+	/**
+     * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLAttributesDeclaration#getAttributeDeclItem <em>Attribute Decl Item</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference list '<em>Attribute Decl Item</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLAttributesDeclaration#getAttributeDeclItem()
+     * @see #getXMLAttributesDeclaration()
+     * @generated
+     */
+    EReference getXMLAttributesDeclaration_AttributeDeclItem();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElementContentList <em>XML Value Function Element Content List</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Value Function Element Content List</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElementContentList
+     * @generated
+     */
+    EClass getXMLValueFunctionElementContentList();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElementContentList#getNullHandlingOption <em>Null Handling Option</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Null Handling Option</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElementContentList#getNullHandlingOption()
+     * @see #getXMLValueFunctionElementContentList()
+     * @generated
+     */
+    EAttribute getXMLValueFunctionElementContentList_NullHandlingOption();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElementContentList#getValueFunctionElement <em>Value Function Element</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Value Function Element</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElementContentList#getValueFunctionElement()
+     * @see #getXMLValueFunctionElementContentList()
+     * @generated
+     */
+    EReference getXMLValueFunctionElementContentList_ValueFunctionElement();
+
+	/**
+     * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElementContentList#getElementContentListChildren <em>Element Content List Children</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference list '<em>Element Content List Children</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElementContentList#getElementContentListChildren()
+     * @see #getXMLValueFunctionElementContentList()
+     * @generated
+     */
+    EReference getXMLValueFunctionElementContentList_ElementContentListChildren();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQueryReturning <em>XML Value Function Query Returning</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Value Function Query Returning</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQueryReturning
+     * @generated
+     */
+    EClass getXMLValueFunctionQueryReturning();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQueryReturning#getReturningOption <em>Returning Option</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Returning Option</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQueryReturning#getReturningOption()
+     * @see #getXMLValueFunctionQueryReturning()
+     * @generated
+     */
+    EAttribute getXMLValueFunctionQueryReturning_ReturningOption();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQueryReturning#getPassingOption <em>Passing Option</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Passing Option</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQueryReturning#getPassingOption()
+     * @see #getXMLValueFunctionQueryReturning()
+     * @generated
+     */
+    EAttribute getXMLValueFunctionQueryReturning_PassingOption();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQueryReturning#getValueFunctionQuery <em>Value Function Query</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Value Function Query</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQueryReturning#getValueFunctionQuery()
+     * @see #getXMLValueFunctionQueryReturning()
+     * @generated
+     */
+    EReference getXMLValueFunctionQueryReturning_ValueFunctionQuery();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElement <em>XML Value Function Validate Element</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Value Function Validate Element</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElement
+     * @generated
+     */
+    EClass getXMLValueFunctionValidateElement();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElement#getValidateElementNamespace <em>Validate Element Namespace</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Validate Element Namespace</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElement#getValidateElementNamespace()
+     * @see #getXMLValueFunctionValidateElement()
+     * @generated
+     */
+    EReference getXMLValueFunctionValidateElement_ValidateElementNamespace();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElement#getValidateElementName <em>Validate Element Name</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Validate Element Name</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElement#getValidateElementName()
+     * @see #getXMLValueFunctionValidateElement()
+     * @generated
+     */
+    EReference getXMLValueFunctionValidateElement_ValidateElementName();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElement#getValidateAccordingTo <em>Validate According To</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Validate According To</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElement#getValidateAccordingTo()
+     * @see #getXMLValueFunctionValidateElement()
+     * @generated
+     */
+    EReference getXMLValueFunctionValidateElement_ValidateAccordingTo();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionDefault <em>XML Table Column Definition Default</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Table Column Definition Default</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionDefault
+     * @generated
+     */
+    EClass getXMLTableColumnDefinitionDefault();
+
+	/**
+     * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionDefault#getValueExpr <em>Value Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the containment reference '<em>Value Expr</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionDefault#getValueExpr()
+     * @see #getXMLTableColumnDefinitionDefault()
+     * @generated
+     */
+    EReference getXMLTableColumnDefinitionDefault_ValueExpr();
+
+	/**
+     * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionDefault#getColumnDefinitionRegular <em>Column Definition Regular</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the container reference '<em>Column Definition Regular</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionDefault#getColumnDefinitionRegular()
+     * @see #getXMLTableColumnDefinitionDefault()
+     * @generated
+     */
+    EReference getXMLTableColumnDefinitionDefault_ColumnDefinitionRegular();
+
+	/**
+     * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunctionEncoding <em>XML Serialize Function Encoding</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for class '<em>XML Serialize Function Encoding</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunctionEncoding
+     * @generated
+     */
+    EClass getXMLSerializeFunctionEncoding();
+
+	/**
+     * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunctionEncoding#getEncodingName <em>Encoding Name</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for the attribute '<em>Encoding Name</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunctionEncoding#getEncodingName()
+     * @see #getXMLSerializeFunctionEncoding()
+     * @generated
+     */
+    EAttribute getXMLSerializeFunctionEncoding_EncodingName();
+
+	/**
+     * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLPassingType <em>XML Passing Type</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for enum '<em>XML Passing Type</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLPassingType
+     * @generated
+     */
+    EEnum getXMLPassingType();
+
+	/**
+     * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLContentType <em>XML Content Type</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for enum '<em>XML Content Type</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLContentType
+     * @generated
+     */
+    EEnum getXMLContentType();
+
+	/**
+     * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLDeclarationType <em>XML Declaration Type</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for enum '<em>XML Declaration Type</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLDeclarationType
+     * @generated
+     */
+    EEnum getXMLDeclarationType();
+
+	/**
+     * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLReturningType <em>XML Returning Type</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for enum '<em>XML Returning Type</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLReturningType
+     * @generated
+     */
+    EEnum getXMLReturningType();
+
+	/**
+     * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLNullHandlingType <em>XML Null Handling Type</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for enum '<em>XML Null Handling Type</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLNullHandlingType
+     * @generated
+     */
+    EEnum getXMLNullHandlingType();
+
+	/**
+     * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLWhitespaceHandlingType <em>XML Whitespace Handling Type</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for enum '<em>XML Whitespace Handling Type</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLWhitespaceHandlingType
+     * @generated
+     */
+    EEnum getXMLWhitespaceHandlingType();
+
+	/**
+     * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLEmptyHandlingType <em>XML Empty Handling Type</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for enum '<em>XML Empty Handling Type</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLEmptyHandlingType
+     * @generated
+     */
+    EEnum getXMLEmptyHandlingType();
+
+	/**
+     * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLContentType2 <em>XML Content Type2</em>}'.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the meta object for enum '<em>XML Content Type2</em>'.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLContentType2
+     * @generated
+     */
+    EEnum getXMLContentType2();
+
+	/**
+     * Returns the factory that creates the instances of the model.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @return the factory that creates the instances of the model.
+     * @generated
+     */
+	SQLXMLQueryModelFactory getSQLXMLQueryModelFactory();
+
+	/**
+     * <!-- begin-user-doc -->
+	 * Defines literals for the meta objects that represent
+	 * <ul>
+	 *   <li>each class,</li>
+	 *   <li>each feature of each class,</li>
+	 *   <li>each enum,</li>
+	 *   <li>and each data type</li>
+	 * </ul>
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	interface Literals  {
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionConcatImpl <em>XML Value Function Concat</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionConcatImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionConcat()
+         * @generated
+         */
+		EClass XML_VALUE_FUNCTION_CONCAT = eINSTANCE.getXMLValueFunctionConcat();
+
+		/**
+         * The meta object literal for the '<em><b>Returning Option</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute XML_VALUE_FUNCTION_CONCAT__RETURNING_OPTION = eINSTANCE.getXMLValueFunctionConcat_ReturningOption();
+
+		/**
+         * The meta object literal for the '<em><b>Concat Content List</b></em>' containment reference list feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_VALUE_FUNCTION_CONCAT__CONCAT_CONTENT_LIST = eINSTANCE.getXMLValueFunctionConcat_ConcatContentList();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionImpl <em>XML Value Function</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunction()
+         * @generated
+         */
+		EClass XML_VALUE_FUNCTION = eINSTANCE.getXMLValueFunction();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLNamespaceDeclarationPrefixImpl <em>XML Namespace Declaration Prefix</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLNamespaceDeclarationPrefixImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLNamespaceDeclarationPrefix()
+         * @generated
+         */
+		EClass XML_NAMESPACE_DECLARATION_PREFIX = eINSTANCE.getXMLNamespaceDeclarationPrefix();
+
+		/**
+         * The meta object literal for the '<em><b>Prefix</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute XML_NAMESPACE_DECLARATION_PREFIX__PREFIX = eINSTANCE.getXMLNamespaceDeclarationPrefix_Prefix();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLNamespaceDeclarationDefaultImpl <em>XML Namespace Declaration Default</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLNamespaceDeclarationDefaultImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLNamespaceDeclarationDefault()
+         * @generated
+         */
+		EClass XML_NAMESPACE_DECLARATION_DEFAULT = eINSTANCE.getXMLNamespaceDeclarationDefault();
+
+		/**
+         * The meta object literal for the '<em><b>No Default</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute XML_NAMESPACE_DECLARATION_DEFAULT__NO_DEFAULT = eINSTANCE.getXMLNamespaceDeclarationDefault_NoDefault();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLAttributeDeclarationItemImpl <em>XML Attribute Declaration Item</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLAttributeDeclarationItemImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLAttributeDeclarationItem()
+         * @generated
+         */
+		EClass XML_ATTRIBUTE_DECLARATION_ITEM = eINSTANCE.getXMLAttributeDeclarationItem();
+
+		/**
+         * The meta object literal for the '<em><b>Value Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_ATTRIBUTE_DECLARATION_ITEM__VALUE_EXPR = eINSTANCE.getXMLAttributeDeclarationItem_ValueExpr();
+
+		/**
+         * The meta object literal for the '<em><b>Attributes Decl</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_ATTRIBUTE_DECLARATION_ITEM__ATTRIBUTES_DECL = eINSTANCE.getXMLAttributeDeclarationItem_AttributesDecl();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionElementImpl <em>XML Value Function Element</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionElementImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionElement()
+         * @generated
+         */
+		EClass XML_VALUE_FUNCTION_ELEMENT = eINSTANCE.getXMLValueFunctionElement();
+
+		/**
+         * The meta object literal for the '<em><b>Element Name</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute XML_VALUE_FUNCTION_ELEMENT__ELEMENT_NAME = eINSTANCE.getXMLValueFunctionElement_ElementName();
+
+		/**
+         * The meta object literal for the '<em><b>Returning Option</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute XML_VALUE_FUNCTION_ELEMENT__RETURNING_OPTION = eINSTANCE.getXMLValueFunctionElement_ReturningOption();
+
+		/**
+         * The meta object literal for the '<em><b>Namespaces Decl</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_VALUE_FUNCTION_ELEMENT__NAMESPACES_DECL = eINSTANCE.getXMLValueFunctionElement_NamespacesDecl();
+
+		/**
+         * The meta object literal for the '<em><b>Attributes Decl</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_VALUE_FUNCTION_ELEMENT__ATTRIBUTES_DECL = eINSTANCE.getXMLValueFunctionElement_AttributesDecl();
+
+		/**
+         * The meta object literal for the '<em><b>Element Content List</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_VALUE_FUNCTION_ELEMENT__ELEMENT_CONTENT_LIST = eINSTANCE.getXMLValueFunctionElement_ElementContentList();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLNamespaceDeclarationItemImpl <em>XML Namespace Declaration Item</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLNamespaceDeclarationItemImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLNamespaceDeclarationItem()
+         * @generated
+         */
+		EClass XML_NAMESPACE_DECLARATION_ITEM = eINSTANCE.getXMLNamespaceDeclarationItem();
+
+		/**
+         * The meta object literal for the '<em><b>Uri</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute XML_NAMESPACE_DECLARATION_ITEM__URI = eINSTANCE.getXMLNamespaceDeclarationItem_Uri();
+
+		/**
+         * The meta object literal for the '<em><b>Namespaces Decl</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_NAMESPACE_DECLARATION_ITEM__NAMESPACES_DECL = eINSTANCE.getXMLNamespaceDeclarationItem_NamespacesDecl();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionElementContentItemImpl <em>XML Value Function Element Content Item</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionElementContentItemImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionElementContentItem()
+         * @generated
+         */
+		EClass XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM = eINSTANCE.getXMLValueFunctionElementContentItem();
+
+		/**
+         * The meta object literal for the '<em><b>Value Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__VALUE_EXPR = eINSTANCE.getXMLValueFunctionElementContentItem_ValueExpr();
+
+		/**
+         * The meta object literal for the '<em><b>Element Content List</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__ELEMENT_CONTENT_LIST = eINSTANCE.getXMLValueFunctionElementContentItem_ElementContentList();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionForestImpl <em>XML Value Function Forest</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionForestImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionForest()
+         * @generated
+         */
+		EClass XML_VALUE_FUNCTION_FOREST = eINSTANCE.getXMLValueFunctionForest();
+
+		/**
+         * The meta object literal for the '<em><b>Null Handling Option</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute XML_VALUE_FUNCTION_FOREST__NULL_HANDLING_OPTION = eINSTANCE.getXMLValueFunctionForest_NullHandlingOption();
+
+		/**
+         * The meta object literal for the '<em><b>Returning Option</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute XML_VALUE_FUNCTION_FOREST__RETURNING_OPTION = eINSTANCE.getXMLValueFunctionForest_ReturningOption();
+
+		/**
+         * The meta object literal for the '<em><b>Forest Content List</b></em>' containment reference list feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_VALUE_FUNCTION_FOREST__FOREST_CONTENT_LIST = eINSTANCE.getXMLValueFunctionForest_ForestContentList();
+
+		/**
+         * The meta object literal for the '<em><b>Namespaces Decl</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_VALUE_FUNCTION_FOREST__NAMESPACES_DECL = eINSTANCE.getXMLValueFunctionForest_NamespacesDecl();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionCommentImpl <em>XML Value Function Comment</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionCommentImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionComment()
+         * @generated
+         */
+		EClass XML_VALUE_FUNCTION_COMMENT = eINSTANCE.getXMLValueFunctionComment();
+
+		/**
+         * The meta object literal for the '<em><b>Returning Option</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute XML_VALUE_FUNCTION_COMMENT__RETURNING_OPTION = eINSTANCE.getXMLValueFunctionComment_ReturningOption();
+
+		/**
+         * The meta object literal for the '<em><b>Comment Content</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_VALUE_FUNCTION_COMMENT__COMMENT_CONTENT = eINSTANCE.getXMLValueFunctionComment_CommentContent();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionDocumentImpl <em>XML Value Function Document</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionDocumentImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionDocument()
+         * @generated
+         */
+		EClass XML_VALUE_FUNCTION_DOCUMENT = eINSTANCE.getXMLValueFunctionDocument();
+
+		/**
+         * The meta object literal for the '<em><b>Returning Option</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute XML_VALUE_FUNCTION_DOCUMENT__RETURNING_OPTION = eINSTANCE.getXMLValueFunctionDocument_ReturningOption();
+
+		/**
+         * The meta object literal for the '<em><b>Document Content</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_VALUE_FUNCTION_DOCUMENT__DOCUMENT_CONTENT = eINSTANCE.getXMLValueFunctionDocument_DocumentContent();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionParseImpl <em>XML Value Function Parse</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionParseImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionParse()
+         * @generated
+         */
+		EClass XML_VALUE_FUNCTION_PARSE = eINSTANCE.getXMLValueFunctionParse();
+
+		/**
+         * The meta object literal for the '<em><b>Content Option</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute XML_VALUE_FUNCTION_PARSE__CONTENT_OPTION = eINSTANCE.getXMLValueFunctionParse_ContentOption();
+
+		/**
+         * The meta object literal for the '<em><b>Whitespace Handling Option</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute XML_VALUE_FUNCTION_PARSE__WHITESPACE_HANDLING_OPTION = eINSTANCE.getXMLValueFunctionParse_WhitespaceHandlingOption();
+
+		/**
+         * The meta object literal for the '<em><b>Parse Content</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_VALUE_FUNCTION_PARSE__PARSE_CONTENT = eINSTANCE.getXMLValueFunctionParse_ParseContent();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionPIImpl <em>XML Value Function PI</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionPIImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionPI()
+         * @generated
+         */
+		EClass XML_VALUE_FUNCTION_PI = eINSTANCE.getXMLValueFunctionPI();
+
+		/**
+         * The meta object literal for the '<em><b>Target Name</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute XML_VALUE_FUNCTION_PI__TARGET_NAME = eINSTANCE.getXMLValueFunctionPI_TargetName();
+
+		/**
+         * The meta object literal for the '<em><b>Returning Option</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute XML_VALUE_FUNCTION_PI__RETURNING_OPTION = eINSTANCE.getXMLValueFunctionPI_ReturningOption();
+
+		/**
+         * The meta object literal for the '<em><b>PI Content</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_VALUE_FUNCTION_PI__PI_CONTENT = eINSTANCE.getXMLValueFunctionPI_PIContent();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionQueryImpl <em>XML Value Function Query</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionQueryImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionQuery()
+         * @generated
+         */
+		EClass XML_VALUE_FUNCTION_QUERY = eINSTANCE.getXMLValueFunctionQuery();
+
+		/**
+         * The meta object literal for the '<em><b>Empty Handling Option</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute XML_VALUE_FUNCTION_QUERY__EMPTY_HANDLING_OPTION = eINSTANCE.getXMLValueFunctionQuery_EmptyHandlingOption();
+
+		/**
+         * The meta object literal for the '<em><b>Xquery Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_VALUE_FUNCTION_QUERY__XQUERY_EXPR = eINSTANCE.getXMLValueFunctionQuery_XqueryExpr();
+
+		/**
+         * The meta object literal for the '<em><b>Xquery Arg List</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_VALUE_FUNCTION_QUERY__XQUERY_ARG_LIST = eINSTANCE.getXMLValueFunctionQuery_XqueryArgList();
+
+		/**
+         * The meta object literal for the '<em><b>Query Returning</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_VALUE_FUNCTION_QUERY__QUERY_RETURNING = eINSTANCE.getXMLValueFunctionQuery_QueryReturning();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionTextImpl <em>XML Value Function Text</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionTextImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionText()
+         * @generated
+         */
+		EClass XML_VALUE_FUNCTION_TEXT = eINSTANCE.getXMLValueFunctionText();
+
+		/**
+         * The meta object literal for the '<em><b>Returning Option</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute XML_VALUE_FUNCTION_TEXT__RETURNING_OPTION = eINSTANCE.getXMLValueFunctionText_ReturningOption();
+
+		/**
+         * The meta object literal for the '<em><b>Text Content</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_VALUE_FUNCTION_TEXT__TEXT_CONTENT = eINSTANCE.getXMLValueFunctionText_TextContent();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateImpl <em>XML Value Function Validate</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionValidate()
+         * @generated
+         */
+		EClass XML_VALUE_FUNCTION_VALIDATE = eINSTANCE.getXMLValueFunctionValidate();
+
+		/**
+         * The meta object literal for the '<em><b>Content Option</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute XML_VALUE_FUNCTION_VALIDATE__CONTENT_OPTION = eINSTANCE.getXMLValueFunctionValidate_ContentOption();
+
+		/**
+         * The meta object literal for the '<em><b>Validate Content</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_VALUE_FUNCTION_VALIDATE__VALIDATE_CONTENT = eINSTANCE.getXMLValueFunctionValidate_ValidateContent();
+
+		/**
+         * The meta object literal for the '<em><b>Validate According To</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_VALUE_FUNCTION_VALIDATE__VALIDATE_ACCORDING_TO = eINSTANCE.getXMLValueFunctionValidate_ValidateAccordingTo();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueExpressionCastImpl <em>XML Value Expression Cast</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueExpressionCastImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueExpressionCast()
+         * @generated
+         */
+		EClass XML_VALUE_EXPRESSION_CAST = eINSTANCE.getXMLValueExpressionCast();
+
+		/**
+         * The meta object literal for the '<em><b>Passing Mechanism</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute XML_VALUE_EXPRESSION_CAST__PASSING_MECHANISM = eINSTANCE.getXMLValueExpressionCast_PassingMechanism();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLPredicateImpl <em>XML Predicate</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLPredicateImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLPredicate()
+         * @generated
+         */
+		EClass XML_PREDICATE = eINSTANCE.getXMLPredicate();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLPredicateContentImpl <em>XML Predicate Content</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLPredicateContentImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLPredicateContent()
+         * @generated
+         */
+		EClass XML_PREDICATE_CONTENT = eINSTANCE.getXMLPredicateContent();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLPredicateDocumentImpl <em>XML Predicate Document</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLPredicateDocumentImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLPredicateDocument()
+         * @generated
+         */
+		EClass XML_PREDICATE_DOCUMENT = eINSTANCE.getXMLPredicateDocument();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLPredicateExistsImpl <em>XML Predicate Exists</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLPredicateExistsImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLPredicateExists()
+         * @generated
+         */
+		EClass XML_PREDICATE_EXISTS = eINSTANCE.getXMLPredicateExists();
+
+		/**
+         * The meta object literal for the '<em><b>Xquery Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_PREDICATE_EXISTS__XQUERY_EXPR = eINSTANCE.getXMLPredicateExists_XqueryExpr();
+
+		/**
+         * The meta object literal for the '<em><b>Xquery Arg List</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_PREDICATE_EXISTS__XQUERY_ARG_LIST = eINSTANCE.getXMLPredicateExists_XqueryArgList();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLPredicateValidImpl <em>XML Predicate Valid</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLPredicateValidImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLPredicateValid()
+         * @generated
+         */
+		EClass XML_PREDICATE_VALID = eINSTANCE.getXMLPredicateValid();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLQueryExpressionImpl <em>XML Query Expression</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLQueryExpressionImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLQueryExpression()
+         * @generated
+         */
+		EClass XML_QUERY_EXPRESSION = eINSTANCE.getXMLQueryExpression();
+
+		/**
+         * The meta object literal for the '<em><b>Xquery Expr Content</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute XML_QUERY_EXPRESSION__XQUERY_EXPR_CONTENT = eINSTANCE.getXMLQueryExpression_XqueryExprContent();
+
+		/**
+         * The meta object literal for the '<em><b>Predicate Exists</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_QUERY_EXPRESSION__PREDICATE_EXISTS = eINSTANCE.getXMLQueryExpression_PredicateExists();
+
+		/**
+         * The meta object literal for the '<em><b>Value Function Query</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_QUERY_EXPRESSION__VALUE_FUNCTION_QUERY = eINSTANCE.getXMLQueryExpression_ValueFunctionQuery();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLQueryArgumentListImpl <em>XML Query Argument List</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLQueryArgumentListImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLQueryArgumentList()
+         * @generated
+         */
+		EClass XML_QUERY_ARGUMENT_LIST = eINSTANCE.getXMLQueryArgumentList();
+
+		/**
+         * The meta object literal for the '<em><b>Passing Mechanism</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute XML_QUERY_ARGUMENT_LIST__PASSING_MECHANISM = eINSTANCE.getXMLQueryArgumentList_PassingMechanism();
+
+		/**
+         * The meta object literal for the '<em><b>Predicate Exists</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_QUERY_ARGUMENT_LIST__PREDICATE_EXISTS = eINSTANCE.getXMLQueryArgumentList_PredicateExists();
+
+		/**
+         * The meta object literal for the '<em><b>Xquery Arg List Children</b></em>' containment reference list feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_QUERY_ARGUMENT_LIST__XQUERY_ARG_LIST_CHILDREN = eINSTANCE.getXMLQueryArgumentList_XqueryArgListChildren();
+
+		/**
+         * The meta object literal for the '<em><b>Value Function Query</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_QUERY_ARGUMENT_LIST__VALUE_FUNCTION_QUERY = eINSTANCE.getXMLQueryArgumentList_ValueFunctionQuery();
+
+		/**
+         * The meta object literal for the '<em><b>Table Function</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_QUERY_ARGUMENT_LIST__TABLE_FUNCTION = eINSTANCE.getXMLQueryArgumentList_TableFunction();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLQueryArgumentItemImpl <em>XML Query Argument Item</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLQueryArgumentItemImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLQueryArgumentItem()
+         * @generated
+         */
+		EClass XML_QUERY_ARGUMENT_ITEM = eINSTANCE.getXMLQueryArgumentItem();
+
+		/**
+         * The meta object literal for the '<em><b>Passing Mechanism</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute XML_QUERY_ARGUMENT_ITEM__PASSING_MECHANISM = eINSTANCE.getXMLQueryArgumentItem_PassingMechanism();
+
+		/**
+         * The meta object literal for the '<em><b>Xquery Arg List</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_QUERY_ARGUMENT_ITEM__XQUERY_ARG_LIST = eINSTANCE.getXMLQueryArgumentItem_XqueryArgList();
+
+		/**
+         * The meta object literal for the '<em><b>Value Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_QUERY_ARGUMENT_ITEM__VALUE_EXPR = eINSTANCE.getXMLQueryArgumentItem_ValueExpr();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLSerializeFunctionImpl <em>XML Serialize Function</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLSerializeFunctionImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLSerializeFunction()
+         * @generated
+         */
+		EClass XML_SERIALIZE_FUNCTION = eINSTANCE.getXMLSerializeFunction();
+
+		/**
+         * The meta object literal for the '<em><b>Content Option</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute XML_SERIALIZE_FUNCTION__CONTENT_OPTION = eINSTANCE.getXMLSerializeFunction_ContentOption();
+
+		/**
+         * The meta object literal for the '<em><b>Serialize Version</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute XML_SERIALIZE_FUNCTION__SERIALIZE_VERSION = eINSTANCE.getXMLSerializeFunction_SerializeVersion();
+
+		/**
+         * The meta object literal for the '<em><b>Declaration Option</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute XML_SERIALIZE_FUNCTION__DECLARATION_OPTION = eINSTANCE.getXMLSerializeFunction_DeclarationOption();
+
+		/**
+         * The meta object literal for the '<em><b>Serialize Target</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_SERIALIZE_FUNCTION__SERIALIZE_TARGET = eINSTANCE.getXMLSerializeFunction_SerializeTarget();
+
+		/**
+         * The meta object literal for the '<em><b>Serialize Encoding</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_SERIALIZE_FUNCTION__SERIALIZE_ENCODING = eINSTANCE.getXMLSerializeFunction_SerializeEncoding();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLSerializeFunctionTargetImpl <em>XML Serialize Function Target</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLSerializeFunctionTargetImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLSerializeFunctionTarget()
+         * @generated
+         */
+		EClass XML_SERIALIZE_FUNCTION_TARGET = eINSTANCE.getXMLSerializeFunctionTarget();
+
+		/**
+         * The meta object literal for the '<em><b>Serialize Function</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_SERIALIZE_FUNCTION_TARGET__SERIALIZE_FUNCTION = eINSTANCE.getXMLSerializeFunctionTarget_SerializeFunction();
+
+		/**
+         * The meta object literal for the '<em><b>Value Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_SERIALIZE_FUNCTION_TARGET__VALUE_EXPR = eINSTANCE.getXMLSerializeFunctionTarget_ValueExpr();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLAggregateFunctionImpl <em>XML Aggregate Function</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLAggregateFunctionImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLAggregateFunction()
+         * @generated
+         */
+		EClass XML_AGGREGATE_FUNCTION = eINSTANCE.getXMLAggregateFunction();
+
+		/**
+         * The meta object literal for the '<em><b>Returning Option</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute XML_AGGREGATE_FUNCTION__RETURNING_OPTION = eINSTANCE.getXMLAggregateFunction_ReturningOption();
+
+		/**
+         * The meta object literal for the '<em><b>Sort Spec List</b></em>' containment reference list feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_AGGREGATE_FUNCTION__SORT_SPEC_LIST = eINSTANCE.getXMLAggregateFunction_SortSpecList();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionConcatContentItemImpl <em>XML Value Function Concat Content Item</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionConcatContentItemImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionConcatContentItem()
+         * @generated
+         */
+		EClass XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM = eINSTANCE.getXMLValueFunctionConcatContentItem();
+
+		/**
+         * The meta object literal for the '<em><b>Value Function Concat</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__VALUE_FUNCTION_CONCAT = eINSTANCE.getXMLValueFunctionConcatContentItem_ValueFunctionConcat();
+
+		/**
+         * The meta object literal for the '<em><b>Value Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__VALUE_EXPR = eINSTANCE.getXMLValueFunctionConcatContentItem_ValueExpr();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionCommentContentImpl <em>XML Value Function Comment Content</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionCommentContentImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionCommentContent()
+         * @generated
+         */
+		EClass XML_VALUE_FUNCTION_COMMENT_CONTENT = eINSTANCE.getXMLValueFunctionCommentContent();
+
+		/**
+         * The meta object literal for the '<em><b>Value Function Comment</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_VALUE_FUNCTION_COMMENT_CONTENT__VALUE_FUNCTION_COMMENT = eINSTANCE.getXMLValueFunctionCommentContent_ValueFunctionComment();
+
+		/**
+         * The meta object literal for the '<em><b>Value Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_VALUE_FUNCTION_COMMENT_CONTENT__VALUE_EXPR = eINSTANCE.getXMLValueFunctionCommentContent_ValueExpr();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionDocumentContentImpl <em>XML Value Function Document Content</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionDocumentContentImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionDocumentContent()
+         * @generated
+         */
+		EClass XML_VALUE_FUNCTION_DOCUMENT_CONTENT = eINSTANCE.getXMLValueFunctionDocumentContent();
+
+		/**
+         * The meta object literal for the '<em><b>Value Function Document</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_VALUE_FUNCTION_DOCUMENT_CONTENT__VALUE_FUNCTION_DOCUMENT = eINSTANCE.getXMLValueFunctionDocumentContent_ValueFunctionDocument();
+
+		/**
+         * The meta object literal for the '<em><b>Value Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_VALUE_FUNCTION_DOCUMENT_CONTENT__VALUE_EXPR = eINSTANCE.getXMLValueFunctionDocumentContent_ValueExpr();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLAggregateSortSpecificationImpl <em>XML Aggregate Sort Specification</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLAggregateSortSpecificationImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLAggregateSortSpecification()
+         * @generated
+         */
+		EClass XML_AGGREGATE_SORT_SPECIFICATION = eINSTANCE.getXMLAggregateSortSpecification();
+
+		/**
+         * The meta object literal for the '<em><b>Aggregate Function</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_AGGREGATE_SORT_SPECIFICATION__AGGREGATE_FUNCTION = eINSTANCE.getXMLAggregateSortSpecification_AggregateFunction();
+
+		/**
+         * The meta object literal for the '<em><b>Order By Spec</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_AGGREGATE_SORT_SPECIFICATION__ORDER_BY_SPEC = eINSTANCE.getXMLAggregateSortSpecification_OrderBySpec();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionForestContentItemImpl <em>XML Value Function Forest Content Item</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionForestContentItemImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionForestContentItem()
+         * @generated
+         */
+		EClass XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM = eINSTANCE.getXMLValueFunctionForestContentItem();
+
+		/**
+         * The meta object literal for the '<em><b>Value Function Forest</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__VALUE_FUNCTION_FOREST = eINSTANCE.getXMLValueFunctionForestContentItem_ValueFunctionForest();
+
+		/**
+         * The meta object literal for the '<em><b>Value Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__VALUE_EXPR = eINSTANCE.getXMLValueFunctionForestContentItem_ValueExpr();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionParseContentImpl <em>XML Value Function Parse Content</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionParseContentImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionParseContent()
+         * @generated
+         */
+		EClass XML_VALUE_FUNCTION_PARSE_CONTENT = eINSTANCE.getXMLValueFunctionParseContent();
+
+		/**
+         * The meta object literal for the '<em><b>Value Function Parse</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_VALUE_FUNCTION_PARSE_CONTENT__VALUE_FUNCTION_PARSE = eINSTANCE.getXMLValueFunctionParseContent_ValueFunctionParse();
+
+		/**
+         * The meta object literal for the '<em><b>Value Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_VALUE_FUNCTION_PARSE_CONTENT__VALUE_EXPR = eINSTANCE.getXMLValueFunctionParseContent_ValueExpr();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionPIContentImpl <em>XML Value Function PI Content</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionPIContentImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionPIContent()
+         * @generated
+         */
+		EClass XML_VALUE_FUNCTION_PI_CONTENT = eINSTANCE.getXMLValueFunctionPIContent();
+
+		/**
+         * The meta object literal for the '<em><b>Value Function PI</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_VALUE_FUNCTION_PI_CONTENT__VALUE_FUNCTION_PI = eINSTANCE.getXMLValueFunctionPIContent_ValueFunctionPI();
+
+		/**
+         * The meta object literal for the '<em><b>Value Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_VALUE_FUNCTION_PI_CONTENT__VALUE_EXPR = eINSTANCE.getXMLValueFunctionPIContent_ValueExpr();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLTableFunctionImpl <em>XML Table Function</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLTableFunctionImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLTableFunction()
+         * @generated
+         */
+		EClass XML_TABLE_FUNCTION = eINSTANCE.getXMLTableFunction();
+
+		/**
+         * The meta object literal for the '<em><b>Table Row Pattern</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute XML_TABLE_FUNCTION__TABLE_ROW_PATTERN = eINSTANCE.getXMLTableFunction_TableRowPattern();
+
+		/**
+         * The meta object literal for the '<em><b>Xquery Arg List</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_TABLE_FUNCTION__XQUERY_ARG_LIST = eINSTANCE.getXMLTableFunction_XqueryArgList();
+
+		/**
+         * The meta object literal for the '<em><b>Column Def List</b></em>' containment reference list feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_TABLE_FUNCTION__COLUMN_DEF_LIST = eINSTANCE.getXMLTableFunction_ColumnDefList();
+
+		/**
+         * The meta object literal for the '<em><b>Namespaces Decl</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_TABLE_FUNCTION__NAMESPACES_DECL = eINSTANCE.getXMLTableFunction_NamespacesDecl();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionTextContentImpl <em>XML Value Function Text Content</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionTextContentImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionTextContent()
+         * @generated
+         */
+		EClass XML_VALUE_FUNCTION_TEXT_CONTENT = eINSTANCE.getXMLValueFunctionTextContent();
+
+		/**
+         * The meta object literal for the '<em><b>Value Function Text</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_VALUE_FUNCTION_TEXT_CONTENT__VALUE_FUNCTION_TEXT = eINSTANCE.getXMLValueFunctionTextContent_ValueFunctionText();
+
+		/**
+         * The meta object literal for the '<em><b>Value Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_VALUE_FUNCTION_TEXT_CONTENT__VALUE_EXPR = eINSTANCE.getXMLValueFunctionTextContent_ValueExpr();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateContentImpl <em>XML Value Function Validate Content</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateContentImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionValidateContent()
+         * @generated
+         */
+		EClass XML_VALUE_FUNCTION_VALIDATE_CONTENT = eINSTANCE.getXMLValueFunctionValidateContent();
+
+		/**
+         * The meta object literal for the '<em><b>Value Function Validate</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_VALUE_FUNCTION_VALIDATE_CONTENT__VALUE_FUNCTION_VALIDATE = eINSTANCE.getXMLValueFunctionValidateContent_ValueFunctionValidate();
+
+		/**
+         * The meta object literal for the '<em><b>Value Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_VALUE_FUNCTION_VALIDATE_CONTENT__VALUE_EXPR = eINSTANCE.getXMLValueFunctionValidateContent_ValueExpr();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLTableColumnDefinitionItemImpl <em>XML Table Column Definition Item</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLTableColumnDefinitionItemImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLTableColumnDefinitionItem()
+         * @generated
+         */
+		EClass XML_TABLE_COLUMN_DEFINITION_ITEM = eINSTANCE.getXMLTableColumnDefinitionItem();
+
+		/**
+         * The meta object literal for the '<em><b>Table Function</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_TABLE_COLUMN_DEFINITION_ITEM__TABLE_FUNCTION = eINSTANCE.getXMLTableColumnDefinitionItem_TableFunction();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLTableColumnDefinitionRegularImpl <em>XML Table Column Definition Regular</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLTableColumnDefinitionRegularImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLTableColumnDefinitionRegular()
+         * @generated
+         */
+		EClass XML_TABLE_COLUMN_DEFINITION_REGULAR = eINSTANCE.getXMLTableColumnDefinitionRegular();
+
+		/**
+         * The meta object literal for the '<em><b>Data Type</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_TABLE_COLUMN_DEFINITION_REGULAR__DATA_TYPE = eINSTANCE.getXMLTableColumnDefinitionRegular_DataType();
+
+		/**
+         * The meta object literal for the '<em><b>Passing Option</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute XML_TABLE_COLUMN_DEFINITION_REGULAR__PASSING_OPTION = eINSTANCE.getXMLTableColumnDefinitionRegular_PassingOption();
+
+		/**
+         * The meta object literal for the '<em><b>Table Column Pattern</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute XML_TABLE_COLUMN_DEFINITION_REGULAR__TABLE_COLUMN_PATTERN = eINSTANCE.getXMLTableColumnDefinitionRegular_TableColumnPattern();
+
+		/**
+         * The meta object literal for the '<em><b>Column Definition Default</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_TABLE_COLUMN_DEFINITION_REGULAR__COLUMN_DEFINITION_DEFAULT = eINSTANCE.getXMLTableColumnDefinitionRegular_ColumnDefinitionDefault();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLTableColumnDefinitionOrdinalityImpl <em>XML Table Column Definition Ordinality</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLTableColumnDefinitionOrdinalityImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLTableColumnDefinitionOrdinality()
+         * @generated
+         */
+		EClass XML_TABLE_COLUMN_DEFINITION_ORDINALITY = eINSTANCE.getXMLTableColumnDefinitionOrdinality();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateAccordingToImpl <em>XML Value Function Validate According To</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateAccordingToImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionValidateAccordingTo()
+         * @generated
+         */
+		EClass XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO = eINSTANCE.getXMLValueFunctionValidateAccordingTo();
+
+		/**
+         * The meta object literal for the '<em><b>Value Function Validate</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__VALUE_FUNCTION_VALIDATE = eINSTANCE.getXMLValueFunctionValidateAccordingTo_ValueFunctionValidate();
+
+		/**
+         * The meta object literal for the '<em><b>Validate Element</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__VALIDATE_ELEMENT = eINSTANCE.getXMLValueFunctionValidateAccordingTo_ValidateElement();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateAccordingToURIImpl <em>XML Value Function Validate According To URI</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateAccordingToURIImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionValidateAccordingToURI()
+         * @generated
+         */
+		EClass XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_URI = eINSTANCE.getXMLValueFunctionValidateAccordingToURI();
+
+		/**
+         * The meta object literal for the '<em><b>No Namespace</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_URI__NO_NAMESPACE = eINSTANCE.getXMLValueFunctionValidateAccordingToURI_NoNamespace();
+
+		/**
+         * The meta object literal for the '<em><b>Target Namespace URI</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_URI__TARGET_NAMESPACE_URI = eINSTANCE.getXMLValueFunctionValidateAccordingToURI_TargetNamespaceURI();
+
+		/**
+         * The meta object literal for the '<em><b>Schema Location URI</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_URI__SCHEMA_LOCATION_URI = eINSTANCE.getXMLValueFunctionValidateAccordingToURI_SchemaLocationURI();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateAccordingToIdentifierImpl <em>XML Value Function Validate According To Identifier</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateAccordingToIdentifierImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionValidateAccordingToIdentifier()
+         * @generated
+         */
+		EClass XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_IDENTIFIER = eINSTANCE.getXMLValueFunctionValidateAccordingToIdentifier();
+
+		/**
+         * The meta object literal for the '<em><b>Schema Name</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_IDENTIFIER__SCHEMA_NAME = eINSTANCE.getXMLValueFunctionValidateAccordingToIdentifier_SchemaName();
+
+		/**
+         * The meta object literal for the '<em><b>Registered XML Schema Name</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_IDENTIFIER__REGISTERED_XML_SCHEMA_NAME = eINSTANCE.getXMLValueFunctionValidateAccordingToIdentifier_RegisteredXMLSchemaName();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateElementNameImpl <em>XML Value Function Validate Element Name</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateElementNameImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionValidateElementName()
+         * @generated
+         */
+		EClass XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAME = eINSTANCE.getXMLValueFunctionValidateElementName();
+
+		/**
+         * The meta object literal for the '<em><b>Validate Element</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAME__VALIDATE_ELEMENT = eINSTANCE.getXMLValueFunctionValidateElementName_ValidateElement();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateElementNamespaceImpl <em>XML Value Function Validate Element Namespace</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateElementNamespaceImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionValidateElementNamespace()
+         * @generated
+         */
+		EClass XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAMESPACE = eINSTANCE.getXMLValueFunctionValidateElementNamespace();
+
+		/**
+         * The meta object literal for the '<em><b>No Namespace</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAMESPACE__NO_NAMESPACE = eINSTANCE.getXMLValueFunctionValidateElementNamespace_NoNamespace();
+
+		/**
+         * The meta object literal for the '<em><b>Namespace URI</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAMESPACE__NAMESPACE_URI = eINSTANCE.getXMLValueFunctionValidateElementNamespace_NamespaceURI();
+
+		/**
+         * The meta object literal for the '<em><b>Validate Element</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAMESPACE__VALIDATE_ELEMENT = eINSTANCE.getXMLValueFunctionValidateElementNamespace_ValidateElement();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLNamespacesDeclarationImpl <em>XML Namespaces Declaration</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLNamespacesDeclarationImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLNamespacesDeclaration()
+         * @generated
+         */
+		EClass XML_NAMESPACES_DECLARATION = eINSTANCE.getXMLNamespacesDeclaration();
+
+		/**
+         * The meta object literal for the '<em><b>Namespace Decltem List</b></em>' containment reference list feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_NAMESPACES_DECLARATION__NAMESPACE_DECLTEM_LIST = eINSTANCE.getXMLNamespacesDeclaration_NamespaceDecltemList();
+
+		/**
+         * The meta object literal for the '<em><b>Value Function Element</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_NAMESPACES_DECLARATION__VALUE_FUNCTION_ELEMENT = eINSTANCE.getXMLNamespacesDeclaration_ValueFunctionElement();
+
+		/**
+         * The meta object literal for the '<em><b>Value Function Forest</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_NAMESPACES_DECLARATION__VALUE_FUNCTION_FOREST = eINSTANCE.getXMLNamespacesDeclaration_ValueFunctionForest();
+
+		/**
+         * The meta object literal for the '<em><b>Table Function</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_NAMESPACES_DECLARATION__TABLE_FUNCTION = eINSTANCE.getXMLNamespacesDeclaration_TableFunction();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLAttributesDeclarationImpl <em>XML Attributes Declaration</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLAttributesDeclarationImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLAttributesDeclaration()
+         * @generated
+         */
+		EClass XML_ATTRIBUTES_DECLARATION = eINSTANCE.getXMLAttributesDeclaration();
+
+		/**
+         * The meta object literal for the '<em><b>Value Function Element</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_ATTRIBUTES_DECLARATION__VALUE_FUNCTION_ELEMENT = eINSTANCE.getXMLAttributesDeclaration_ValueFunctionElement();
+
+		/**
+         * The meta object literal for the '<em><b>Attribute Decl Item</b></em>' containment reference list feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_ATTRIBUTES_DECLARATION__ATTRIBUTE_DECL_ITEM = eINSTANCE.getXMLAttributesDeclaration_AttributeDeclItem();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionElementContentListImpl <em>XML Value Function Element Content List</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionElementContentListImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionElementContentList()
+         * @generated
+         */
+		EClass XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST = eINSTANCE.getXMLValueFunctionElementContentList();
+
+		/**
+         * The meta object literal for the '<em><b>Null Handling Option</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST__NULL_HANDLING_OPTION = eINSTANCE.getXMLValueFunctionElementContentList_NullHandlingOption();
+
+		/**
+         * The meta object literal for the '<em><b>Value Function Element</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST__VALUE_FUNCTION_ELEMENT = eINSTANCE.getXMLValueFunctionElementContentList_ValueFunctionElement();
+
+		/**
+         * The meta object literal for the '<em><b>Element Content List Children</b></em>' containment reference list feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST__ELEMENT_CONTENT_LIST_CHILDREN = eINSTANCE.getXMLValueFunctionElementContentList_ElementContentListChildren();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionQueryReturningImpl <em>XML Value Function Query Returning</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionQueryReturningImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionQueryReturning()
+         * @generated
+         */
+		EClass XML_VALUE_FUNCTION_QUERY_RETURNING = eINSTANCE.getXMLValueFunctionQueryReturning();
+
+		/**
+         * The meta object literal for the '<em><b>Returning Option</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute XML_VALUE_FUNCTION_QUERY_RETURNING__RETURNING_OPTION = eINSTANCE.getXMLValueFunctionQueryReturning_ReturningOption();
+
+		/**
+         * The meta object literal for the '<em><b>Passing Option</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute XML_VALUE_FUNCTION_QUERY_RETURNING__PASSING_OPTION = eINSTANCE.getXMLValueFunctionQueryReturning_PassingOption();
+
+		/**
+         * The meta object literal for the '<em><b>Value Function Query</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_VALUE_FUNCTION_QUERY_RETURNING__VALUE_FUNCTION_QUERY = eINSTANCE.getXMLValueFunctionQueryReturning_ValueFunctionQuery();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateElementImpl <em>XML Value Function Validate Element</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateElementImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLValueFunctionValidateElement()
+         * @generated
+         */
+		EClass XML_VALUE_FUNCTION_VALIDATE_ELEMENT = eINSTANCE.getXMLValueFunctionValidateElement();
+
+		/**
+         * The meta object literal for the '<em><b>Validate Element Namespace</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_VALUE_FUNCTION_VALIDATE_ELEMENT__VALIDATE_ELEMENT_NAMESPACE = eINSTANCE.getXMLValueFunctionValidateElement_ValidateElementNamespace();
+
+		/**
+         * The meta object literal for the '<em><b>Validate Element Name</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_VALUE_FUNCTION_VALIDATE_ELEMENT__VALIDATE_ELEMENT_NAME = eINSTANCE.getXMLValueFunctionValidateElement_ValidateElementName();
+
+		/**
+         * The meta object literal for the '<em><b>Validate According To</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_VALUE_FUNCTION_VALIDATE_ELEMENT__VALIDATE_ACCORDING_TO = eINSTANCE.getXMLValueFunctionValidateElement_ValidateAccordingTo();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLTableColumnDefinitionDefaultImpl <em>XML Table Column Definition Default</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLTableColumnDefinitionDefaultImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLTableColumnDefinitionDefault()
+         * @generated
+         */
+		EClass XML_TABLE_COLUMN_DEFINITION_DEFAULT = eINSTANCE.getXMLTableColumnDefinitionDefault();
+
+		/**
+         * The meta object literal for the '<em><b>Value Expr</b></em>' containment reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_TABLE_COLUMN_DEFINITION_DEFAULT__VALUE_EXPR = eINSTANCE.getXMLTableColumnDefinitionDefault_ValueExpr();
+
+		/**
+         * The meta object literal for the '<em><b>Column Definition Regular</b></em>' container reference feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EReference XML_TABLE_COLUMN_DEFINITION_DEFAULT__COLUMN_DEFINITION_REGULAR = eINSTANCE.getXMLTableColumnDefinitionDefault_ColumnDefinitionRegular();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLSerializeFunctionEncodingImpl <em>XML Serialize Function Encoding</em>}' class.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLSerializeFunctionEncodingImpl
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLSerializeFunctionEncoding()
+         * @generated
+         */
+		EClass XML_SERIALIZE_FUNCTION_ENCODING = eINSTANCE.getXMLSerializeFunctionEncoding();
+
+		/**
+         * The meta object literal for the '<em><b>Encoding Name</b></em>' attribute feature.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @generated
+         */
+		EAttribute XML_SERIALIZE_FUNCTION_ENCODING__ENCODING_NAME = eINSTANCE.getXMLSerializeFunctionEncoding_EncodingName();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLPassingType <em>XML Passing Type</em>}' enum.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLPassingType
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLPassingType()
+         * @generated
+         */
+		EEnum XML_PASSING_TYPE = eINSTANCE.getXMLPassingType();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLContentType <em>XML Content Type</em>}' enum.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLContentType
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLContentType()
+         * @generated
+         */
+		EEnum XML_CONTENT_TYPE = eINSTANCE.getXMLContentType();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLDeclarationType <em>XML Declaration Type</em>}' enum.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLDeclarationType
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLDeclarationType()
+         * @generated
+         */
+		EEnum XML_DECLARATION_TYPE = eINSTANCE.getXMLDeclarationType();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLReturningType <em>XML Returning Type</em>}' enum.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLReturningType
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLReturningType()
+         * @generated
+         */
+		EEnum XML_RETURNING_TYPE = eINSTANCE.getXMLReturningType();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLNullHandlingType <em>XML Null Handling Type</em>}' enum.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLNullHandlingType
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLNullHandlingType()
+         * @generated
+         */
+		EEnum XML_NULL_HANDLING_TYPE = eINSTANCE.getXMLNullHandlingType();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLWhitespaceHandlingType <em>XML Whitespace Handling Type</em>}' enum.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLWhitespaceHandlingType
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLWhitespaceHandlingType()
+         * @generated
+         */
+		EEnum XML_WHITESPACE_HANDLING_TYPE = eINSTANCE.getXMLWhitespaceHandlingType();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLEmptyHandlingType <em>XML Empty Handling Type</em>}' enum.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLEmptyHandlingType
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLEmptyHandlingType()
+         * @generated
+         */
+		EEnum XML_EMPTY_HANDLING_TYPE = eINSTANCE.getXMLEmptyHandlingType();
+
+		/**
+         * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLContentType2 <em>XML Content Type2</em>}' enum.
+         * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLContentType2
+         * @see org.eclipse.datatools.modelbase.sql.xml.query.impl.SQLXMLQueryModelPackageImpl#getXMLContentType2()
+         * @generated
+         */
+		EEnum XML_CONTENT_TYPE2 = eINSTANCE.getXMLContentType2();
+
+	}
+
+} //SQLXMLQueryPackage
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLAggregateFunction.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLAggregateFunction.java
new file mode 100644
index 0000000..16af811
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLAggregateFunction.java
@@ -0,0 +1,82 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLAggregateFunction.java,v 1.2 2005/12/22 22:21:18 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Aggregate Function</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Specifies a value computed from a collection of rows.  See ISO SQL/XML sec. 11.2.  The <XML value expression> clause is handled by the parameterList relationship in ValueExpressionFunction, but is restricted to a single element in this case.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLAggregateFunction#getReturningOption <em>Returning Option</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLAggregateFunction#getSortSpecList <em>Sort Spec List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLAggregateFunction()
+ * @model
+ * @generated
+ */
+public interface XMLAggregateFunction extends ValueExpressionFunction{
+	/**
+     * Returns the value of the '<em><b>Returning Option</b></em>' attribute.
+     * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.xml.query.XMLReturningType}.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Returning Option</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Returning Option</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLReturningType
+     * @see #setReturningOption(XMLReturningType)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLAggregateFunction_ReturningOption()
+     * @model
+     * @generated
+     */
+    XMLReturningType getReturningOption();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLAggregateFunction#getReturningOption <em>Returning Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Returning Option</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLReturningType
+     * @see #getReturningOption()
+     * @generated
+     */
+    void setReturningOption(XMLReturningType value);
+
+	/**
+     * Returns the value of the '<em><b>Sort Spec List</b></em>' containment reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.xml.query.XMLAggregateSortSpecification}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLAggregateSortSpecification#getAggregateFunction <em>Aggregate Function</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Sort Spec List</em>' containment reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Sort Spec List</em>' containment reference list.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLAggregateFunction_SortSpecList()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLAggregateSortSpecification#getAggregateFunction
+     * @model type="org.eclipse.datatools.modelbase.sql.xml.query.XMLAggregateSortSpecification" opposite="aggregateFunction" containment="true"
+     * @generated
+     */
+    EList getSortSpecList();
+
+} // XMLAggregateFunction
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLAggregateSortSpecification.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLAggregateSortSpecification.java
new file mode 100644
index 0000000..281ab2e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLAggregateSortSpecification.java
@@ -0,0 +1,88 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLAggregateSortSpecification.java,v 1.2 2005/12/22 22:21:18 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+import org.eclipse.datatools.modelbase.sql.query.OrderBySpecification;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Aggregate Sort Specification</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Specifies an ordering within the values returned by the aggregation function.  See ISO SQL/XML sec. 11.2.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLAggregateSortSpecification#getAggregateFunction <em>Aggregate Function</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLAggregateSortSpecification#getOrderBySpec <em>Order By Spec</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLAggregateSortSpecification()
+ * @model
+ * @generated
+ */
+public interface XMLAggregateSortSpecification extends SQLQueryObject{
+	/**
+     * Returns the value of the '<em><b>Aggregate Function</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLAggregateFunction#getSortSpecList <em>Sort Spec List</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Aggregate Function</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Aggregate Function</em>' container reference.
+     * @see #setAggregateFunction(XMLAggregateFunction)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLAggregateSortSpecification_AggregateFunction()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLAggregateFunction#getSortSpecList
+     * @model opposite="sortSpecList" required="true"
+     * @generated
+     */
+    XMLAggregateFunction getAggregateFunction();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLAggregateSortSpecification#getAggregateFunction <em>Aggregate Function</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Aggregate Function</em>' container reference.
+     * @see #getAggregateFunction()
+     * @generated
+     */
+    void setAggregateFunction(XMLAggregateFunction value);
+
+	/**
+     * Returns the value of the '<em><b>Order By Spec</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Order By Spec</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Order By Spec</em>' containment reference.
+     * @see #setOrderBySpec(OrderBySpecification)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLAggregateSortSpecification_OrderBySpec()
+     * @model containment="true" required="true"
+     * @generated
+     */
+    OrderBySpecification getOrderBySpec();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLAggregateSortSpecification#getOrderBySpec <em>Order By Spec</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Order By Spec</em>' containment reference.
+     * @see #getOrderBySpec()
+     * @generated
+     */
+    void setOrderBySpec(OrderBySpecification value);
+
+} // XMLAggregateSortSpecification
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLAttributeDeclarationItem.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLAttributeDeclarationItem.java
new file mode 100644
index 0000000..bfb8cd4
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLAttributeDeclarationItem.java
@@ -0,0 +1,83 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLAttributeDeclarationItem.java,v 1.2 2005/12/22 22:21:18 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Attribute Declaration Item</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLAttributeDeclarationItem#getValueExpr <em>Value Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLAttributeDeclarationItem#getAttributesDecl <em>Attributes Decl</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLAttributeDeclarationItem()
+ * @model
+ * @generated
+ */
+public interface XMLAttributeDeclarationItem extends QueryValueExpression{
+	/**
+     * Returns the value of the '<em><b>Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Expr</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Expr</em>' containment reference.
+     * @see #setValueExpr(QueryValueExpression)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLAttributeDeclarationItem_ValueExpr()
+     * @model containment="true" required="true"
+     * @generated
+     */
+    QueryValueExpression getValueExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLAttributeDeclarationItem#getValueExpr <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Expr</em>' containment reference.
+     * @see #getValueExpr()
+     * @generated
+     */
+    void setValueExpr(QueryValueExpression value);
+
+	/**
+     * Returns the value of the '<em><b>Attributes Decl</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLAttributesDeclaration#getAttributeDeclItem <em>Attribute Decl Item</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Attributes Decl</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Attributes Decl</em>' container reference.
+     * @see #setAttributesDecl(XMLAttributesDeclaration)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLAttributeDeclarationItem_AttributesDecl()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLAttributesDeclaration#getAttributeDeclItem
+     * @model opposite="attributeDeclItem" required="true"
+     * @generated
+     */
+    XMLAttributesDeclaration getAttributesDecl();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLAttributeDeclarationItem#getAttributesDecl <em>Attributes Decl</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Attributes Decl</em>' container reference.
+     * @see #getAttributesDecl()
+     * @generated
+     */
+    void setAttributesDecl(XMLAttributesDeclaration value);
+
+} // XMLAttributeDeclarationItem
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLAttributesDeclaration.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLAttributesDeclaration.java
new file mode 100644
index 0000000..4f96f41
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLAttributesDeclaration.java
@@ -0,0 +1,77 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLAttributesDeclaration.java,v 1.2 2005/12/22 22:21:18 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Attributes Declaration</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLAttributesDeclaration#getValueFunctionElement <em>Value Function Element</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLAttributesDeclaration#getAttributeDeclItem <em>Attribute Decl Item</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLAttributesDeclaration()
+ * @model
+ * @generated
+ */
+public interface XMLAttributesDeclaration extends EObject{
+	/**
+     * Returns the value of the '<em><b>Value Function Element</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElement#getAttributesDecl <em>Attributes Decl</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Function Element</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Function Element</em>' container reference.
+     * @see #setValueFunctionElement(XMLValueFunctionElement)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLAttributesDeclaration_ValueFunctionElement()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElement#getAttributesDecl
+     * @model opposite="attributesDecl" required="true"
+     * @generated
+     */
+    XMLValueFunctionElement getValueFunctionElement();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLAttributesDeclaration#getValueFunctionElement <em>Value Function Element</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Function Element</em>' container reference.
+     * @see #getValueFunctionElement()
+     * @generated
+     */
+    void setValueFunctionElement(XMLValueFunctionElement value);
+
+	/**
+     * Returns the value of the '<em><b>Attribute Decl Item</b></em>' containment reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.xml.query.XMLAttributeDeclarationItem}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLAttributeDeclarationItem#getAttributesDecl <em>Attributes Decl</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Attribute Decl Item</em>' containment reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Attribute Decl Item</em>' containment reference list.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLAttributesDeclaration_AttributeDeclItem()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLAttributeDeclarationItem#getAttributesDecl
+     * @model type="org.eclipse.datatools.modelbase.sql.xml.query.XMLAttributeDeclarationItem" opposite="attributesDecl" containment="true" required="true"
+     * @generated
+     */
+    EList getAttributeDeclItem();
+
+} // XMLAttributesDeclaration
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLContentType.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLContentType.java
new file mode 100644
index 0000000..eb6b3f1
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLContentType.java
@@ -0,0 +1,178 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLContentType.java,v 1.4 2007/02/08 17:04:22 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>XML Content Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLContentType()
+ * @model
+ * @generated
+ */
+public final class XMLContentType extends AbstractEnumerator {
+	/**
+     * The '<em><b>CONTENT</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #CONTENT_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int CONTENT = 0;
+
+	/**
+     * The '<em><b>DOCUMENT</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #DOCUMENT_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int DOCUMENT = 1;
+
+	/**
+     * The '<em><b>NONE</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #NONE_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int NONE = 2;
+
+	/**
+     * The '<em><b>CONTENT</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>CONTENT</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #CONTENT
+     * @generated
+     * @ordered
+     */
+    public static final XMLContentType CONTENT_LITERAL = new XMLContentType(CONTENT, "CONTENT", "CONTENT");
+
+	/**
+     * The '<em><b>DOCUMENT</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>DOCUMENT</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #DOCUMENT
+     * @generated
+     * @ordered
+     */
+    public static final XMLContentType DOCUMENT_LITERAL = new XMLContentType(DOCUMENT, "DOCUMENT", "DOCUMENT");
+
+	/**
+     * The '<em><b>NONE</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>NONE</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #NONE
+     * @generated
+     * @ordered
+     */
+    public static final XMLContentType NONE_LITERAL = new XMLContentType(NONE, "NONE", "NONE");
+
+	/**
+     * An array of all the '<em><b>XML Content Type</b></em>' enumerators.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private static final XMLContentType[] VALUES_ARRAY =
+		new XMLContentType[] {
+            CONTENT_LITERAL,
+            DOCUMENT_LITERAL,
+            NONE_LITERAL,
+        };
+
+	/**
+     * A public read-only list of all the '<em><b>XML Content Type</b></em>' enumerators.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+     * Returns the '<em><b>XML Content Type</b></em>' literal with the specified literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static XMLContentType get(String literal) {
+        for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+            XMLContentType result = VALUES_ARRAY[i];
+            if (result.toString().equals(literal)) {
+                return result;
+            }
+        }
+        return null;
+    }
+
+	/**
+     * Returns the '<em><b>XML Content Type</b></em>' literal with the specified name.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public static XMLContentType getByName(String name) {
+        for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+            XMLContentType result = VALUES_ARRAY[i];
+            if (result.getName().equals(name)) {
+                return result;
+            }
+        }
+        return null;
+    }
+
+	/**
+     * Returns the '<em><b>XML Content Type</b></em>' literal with the specified integer value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static XMLContentType get(int value) {
+        switch (value) {
+            case CONTENT: return CONTENT_LITERAL;
+            case DOCUMENT: return DOCUMENT_LITERAL;
+            case NONE: return NONE_LITERAL;
+        }
+        return null;
+    }
+
+	/**
+     * Only this class can construct instances.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private XMLContentType(int value, String name, String literal) {
+        super(value, name, literal);
+    }
+
+} //XMLContentType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLContentType2.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLContentType2.java
new file mode 100644
index 0000000..e561c44
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLContentType2.java
@@ -0,0 +1,205 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLContentType2.java,v 1.4 2007/02/08 17:04:22 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>XML Content Type2</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLContentType2()
+ * @model
+ * @generated
+ */
+public final class XMLContentType2 extends AbstractEnumerator {
+	/**
+     * The '<em><b>CONTENT</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #CONTENT_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int CONTENT = 0;
+
+	/**
+     * The '<em><b>DOCUMENT</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #DOCUMENT_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int DOCUMENT = 1;
+
+	/**
+     * The '<em><b>SEQUENCE</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #SEQUENCE_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int SEQUENCE = 2;
+
+	/**
+     * The '<em><b>NONE</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #NONE_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int NONE = 3;
+
+	/**
+     * The '<em><b>CONTENT</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>CONTENT</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #CONTENT
+     * @generated
+     * @ordered
+     */
+    public static final XMLContentType2 CONTENT_LITERAL = new XMLContentType2(CONTENT, "CONTENT", "CONTENT");
+
+	/**
+     * The '<em><b>DOCUMENT</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>DOCUMENT</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #DOCUMENT
+     * @generated
+     * @ordered
+     */
+    public static final XMLContentType2 DOCUMENT_LITERAL = new XMLContentType2(DOCUMENT, "DOCUMENT", "DOCUMENT");
+
+	/**
+     * The '<em><b>SEQUENCE</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>SEQUENCE</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #SEQUENCE
+     * @generated
+     * @ordered
+     */
+    public static final XMLContentType2 SEQUENCE_LITERAL = new XMLContentType2(SEQUENCE, "SEQUENCE", "SEQUENCE");
+
+	/**
+     * The '<em><b>NONE</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>NONE</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #NONE
+     * @generated
+     * @ordered
+     */
+    public static final XMLContentType2 NONE_LITERAL = new XMLContentType2(NONE, "NONE", "NONE");
+
+	/**
+     * An array of all the '<em><b>XML Content Type2</b></em>' enumerators.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private static final XMLContentType2[] VALUES_ARRAY =
+		new XMLContentType2[] {
+            CONTENT_LITERAL,
+            DOCUMENT_LITERAL,
+            SEQUENCE_LITERAL,
+            NONE_LITERAL,
+        };
+
+	/**
+     * A public read-only list of all the '<em><b>XML Content Type2</b></em>' enumerators.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+     * Returns the '<em><b>XML Content Type2</b></em>' literal with the specified literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static XMLContentType2 get(String literal) {
+        for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+            XMLContentType2 result = VALUES_ARRAY[i];
+            if (result.toString().equals(literal)) {
+                return result;
+            }
+        }
+        return null;
+    }
+
+	/**
+     * Returns the '<em><b>XML Content Type2</b></em>' literal with the specified name.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public static XMLContentType2 getByName(String name) {
+        for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+            XMLContentType2 result = VALUES_ARRAY[i];
+            if (result.getName().equals(name)) {
+                return result;
+            }
+        }
+        return null;
+    }
+
+	/**
+     * Returns the '<em><b>XML Content Type2</b></em>' literal with the specified integer value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static XMLContentType2 get(int value) {
+        switch (value) {
+            case CONTENT: return CONTENT_LITERAL;
+            case DOCUMENT: return DOCUMENT_LITERAL;
+            case SEQUENCE: return SEQUENCE_LITERAL;
+            case NONE: return NONE_LITERAL;
+        }
+        return null;
+    }
+
+	/**
+     * Only this class can construct instances.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private XMLContentType2(int value, String name, String literal) {
+        super(value, name, literal);
+    }
+
+} //XMLContentType2
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLDeclarationType.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLDeclarationType.java
new file mode 100644
index 0000000..bd81d6f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLDeclarationType.java
@@ -0,0 +1,178 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLDeclarationType.java,v 1.4 2007/02/08 17:04:22 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>XML Declaration Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLDeclarationType()
+ * @model
+ * @generated
+ */
+public final class XMLDeclarationType extends AbstractEnumerator {
+	/**
+     * The '<em><b>EXCLUDING XMLDECLARATION</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #EXCLUDING_XMLDECLARATION_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int EXCLUDING_XMLDECLARATION = 0;
+
+	/**
+     * The '<em><b>INCLUDING XMLDECLARATION</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #INCLUDING_XMLDECLARATION_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int INCLUDING_XMLDECLARATION = 1;
+
+	/**
+     * The '<em><b>NONE</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #NONE_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int NONE = 2;
+
+	/**
+     * The '<em><b>EXCLUDING XMLDECLARATION</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>EXCLUDING XMLDECLARATION</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #EXCLUDING_XMLDECLARATION
+     * @generated
+     * @ordered
+     */
+    public static final XMLDeclarationType EXCLUDING_XMLDECLARATION_LITERAL = new XMLDeclarationType(EXCLUDING_XMLDECLARATION, "EXCLUDING_XMLDECLARATION", "EXCLUDING_XMLDECLARATION");
+
+	/**
+     * The '<em><b>INCLUDING XMLDECLARATION</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>INCLUDING XMLDECLARATION</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #INCLUDING_XMLDECLARATION
+     * @generated
+     * @ordered
+     */
+    public static final XMLDeclarationType INCLUDING_XMLDECLARATION_LITERAL = new XMLDeclarationType(INCLUDING_XMLDECLARATION, "INCLUDING_XMLDECLARATION", "INCLUDING_XMLDECLARATION");
+
+	/**
+     * The '<em><b>NONE</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>NONE</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #NONE
+     * @generated
+     * @ordered
+     */
+    public static final XMLDeclarationType NONE_LITERAL = new XMLDeclarationType(NONE, "NONE", "NONE");
+
+	/**
+     * An array of all the '<em><b>XML Declaration Type</b></em>' enumerators.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private static final XMLDeclarationType[] VALUES_ARRAY =
+		new XMLDeclarationType[] {
+            EXCLUDING_XMLDECLARATION_LITERAL,
+            INCLUDING_XMLDECLARATION_LITERAL,
+            NONE_LITERAL,
+        };
+
+	/**
+     * A public read-only list of all the '<em><b>XML Declaration Type</b></em>' enumerators.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+     * Returns the '<em><b>XML Declaration Type</b></em>' literal with the specified literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static XMLDeclarationType get(String literal) {
+        for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+            XMLDeclarationType result = VALUES_ARRAY[i];
+            if (result.toString().equals(literal)) {
+                return result;
+            }
+        }
+        return null;
+    }
+
+	/**
+     * Returns the '<em><b>XML Declaration Type</b></em>' literal with the specified name.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public static XMLDeclarationType getByName(String name) {
+        for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+            XMLDeclarationType result = VALUES_ARRAY[i];
+            if (result.getName().equals(name)) {
+                return result;
+            }
+        }
+        return null;
+    }
+
+	/**
+     * Returns the '<em><b>XML Declaration Type</b></em>' literal with the specified integer value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static XMLDeclarationType get(int value) {
+        switch (value) {
+            case EXCLUDING_XMLDECLARATION: return EXCLUDING_XMLDECLARATION_LITERAL;
+            case INCLUDING_XMLDECLARATION: return INCLUDING_XMLDECLARATION_LITERAL;
+            case NONE: return NONE_LITERAL;
+        }
+        return null;
+    }
+
+	/**
+     * Only this class can construct instances.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private XMLDeclarationType(int value, String name, String literal) {
+        super(value, name, literal);
+    }
+
+} //XMLDeclarationType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLEmptyHandlingType.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLEmptyHandlingType.java
new file mode 100644
index 0000000..9b97273
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLEmptyHandlingType.java
@@ -0,0 +1,178 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLEmptyHandlingType.java,v 1.4 2007/02/08 17:04:22 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>XML Empty Handling Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLEmptyHandlingType()
+ * @model
+ * @generated
+ */
+public final class XMLEmptyHandlingType extends AbstractEnumerator {
+	/**
+     * The '<em><b>EMPTY ON EMPTY</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #EMPTY_ON_EMPTY_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int EMPTY_ON_EMPTY = 0;
+
+	/**
+     * The '<em><b>NULL ON EMPTY</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #NULL_ON_EMPTY_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int NULL_ON_EMPTY = 1;
+
+	/**
+     * The '<em><b>NONE</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #NONE_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int NONE = 2;
+
+	/**
+     * The '<em><b>EMPTY ON EMPTY</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>EMPTY ON EMPTY</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #EMPTY_ON_EMPTY
+     * @generated
+     * @ordered
+     */
+    public static final XMLEmptyHandlingType EMPTY_ON_EMPTY_LITERAL = new XMLEmptyHandlingType(EMPTY_ON_EMPTY, "EMPTY_ON_EMPTY", "EMPTY_ON_EMPTY");
+
+	/**
+     * The '<em><b>NULL ON EMPTY</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>NULL ON EMPTY</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #NULL_ON_EMPTY
+     * @generated
+     * @ordered
+     */
+    public static final XMLEmptyHandlingType NULL_ON_EMPTY_LITERAL = new XMLEmptyHandlingType(NULL_ON_EMPTY, "NULL_ON_EMPTY", "NULL_ON_EMPTY");
+
+	/**
+     * The '<em><b>NONE</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>NONE</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #NONE
+     * @generated
+     * @ordered
+     */
+    public static final XMLEmptyHandlingType NONE_LITERAL = new XMLEmptyHandlingType(NONE, "NONE", "NONE");
+
+	/**
+     * An array of all the '<em><b>XML Empty Handling Type</b></em>' enumerators.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private static final XMLEmptyHandlingType[] VALUES_ARRAY =
+		new XMLEmptyHandlingType[] {
+            EMPTY_ON_EMPTY_LITERAL,
+            NULL_ON_EMPTY_LITERAL,
+            NONE_LITERAL,
+        };
+
+	/**
+     * A public read-only list of all the '<em><b>XML Empty Handling Type</b></em>' enumerators.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+     * Returns the '<em><b>XML Empty Handling Type</b></em>' literal with the specified literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static XMLEmptyHandlingType get(String literal) {
+        for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+            XMLEmptyHandlingType result = VALUES_ARRAY[i];
+            if (result.toString().equals(literal)) {
+                return result;
+            }
+        }
+        return null;
+    }
+
+	/**
+     * Returns the '<em><b>XML Empty Handling Type</b></em>' literal with the specified name.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public static XMLEmptyHandlingType getByName(String name) {
+        for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+            XMLEmptyHandlingType result = VALUES_ARRAY[i];
+            if (result.getName().equals(name)) {
+                return result;
+            }
+        }
+        return null;
+    }
+
+	/**
+     * Returns the '<em><b>XML Empty Handling Type</b></em>' literal with the specified integer value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static XMLEmptyHandlingType get(int value) {
+        switch (value) {
+            case EMPTY_ON_EMPTY: return EMPTY_ON_EMPTY_LITERAL;
+            case NULL_ON_EMPTY: return NULL_ON_EMPTY_LITERAL;
+            case NONE: return NONE_LITERAL;
+        }
+        return null;
+    }
+
+	/**
+     * Only this class can construct instances.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private XMLEmptyHandlingType(int value, String name, String literal) {
+        super(value, name, literal);
+    }
+
+} //XMLEmptyHandlingType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLNamespaceDeclarationDefault.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLNamespaceDeclarationDefault.java
new file mode 100644
index 0000000..d61e8b5
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLNamespaceDeclarationDefault.java
@@ -0,0 +1,54 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLNamespaceDeclarationDefault.java,v 1.2 2005/12/22 22:21:18 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Namespace Declaration Default</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespaceDeclarationDefault#isNoDefault <em>No Default</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLNamespaceDeclarationDefault()
+ * @model
+ * @generated
+ */
+public interface XMLNamespaceDeclarationDefault extends XMLNamespaceDeclarationItem{
+	/**
+     * Returns the value of the '<em><b>No Default</b></em>' attribute.
+     * The default value is <code>"false"</code>.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>No Default</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>No Default</em>' attribute.
+     * @see #setNoDefault(boolean)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLNamespaceDeclarationDefault_NoDefault()
+     * @model default="false"
+     * @generated
+     */
+    boolean isNoDefault();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespaceDeclarationDefault#isNoDefault <em>No Default</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>No Default</em>' attribute.
+     * @see #isNoDefault()
+     * @generated
+     */
+    void setNoDefault(boolean value);
+
+} // XMLNamespaceDeclarationDefault
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLNamespaceDeclarationItem.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLNamespaceDeclarationItem.java
new file mode 100644
index 0000000..2defc40
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLNamespaceDeclarationItem.java
@@ -0,0 +1,83 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLNamespaceDeclarationItem.java,v 1.2 2005/12/22 22:21:19 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Namespace Declaration Item</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespaceDeclarationItem#getUri <em>Uri</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespaceDeclarationItem#getNamespacesDecl <em>Namespaces Decl</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLNamespaceDeclarationItem()
+ * @model
+ * @generated
+ */
+public interface XMLNamespaceDeclarationItem extends SQLQueryObject{
+	/**
+     * Returns the value of the '<em><b>Uri</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Uri</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Uri</em>' attribute.
+     * @see #setUri(String)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLNamespaceDeclarationItem_Uri()
+     * @model
+     * @generated
+     */
+    String getUri();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespaceDeclarationItem#getUri <em>Uri</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Uri</em>' attribute.
+     * @see #getUri()
+     * @generated
+     */
+    void setUri(String value);
+
+	/**
+     * Returns the value of the '<em><b>Namespaces Decl</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespacesDeclaration#getNamespaceDecltemList <em>Namespace Decltem List</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Namespaces Decl</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Namespaces Decl</em>' container reference.
+     * @see #setNamespacesDecl(XMLNamespacesDeclaration)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLNamespaceDeclarationItem_NamespacesDecl()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespacesDeclaration#getNamespaceDecltemList
+     * @model opposite="namespaceDecltemList" required="true"
+     * @generated
+     */
+    XMLNamespacesDeclaration getNamespacesDecl();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespaceDeclarationItem#getNamespacesDecl <em>Namespaces Decl</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Namespaces Decl</em>' container reference.
+     * @see #getNamespacesDecl()
+     * @generated
+     */
+    void setNamespacesDecl(XMLNamespacesDeclaration value);
+
+} // XMLNamespaceDeclarationItem
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLNamespaceDeclarationPrefix.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLNamespaceDeclarationPrefix.java
new file mode 100644
index 0000000..e0f3d73
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLNamespaceDeclarationPrefix.java
@@ -0,0 +1,53 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLNamespaceDeclarationPrefix.java,v 1.2 2005/12/22 22:21:18 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Namespace Declaration Prefix</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespaceDeclarationPrefix#getPrefix <em>Prefix</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLNamespaceDeclarationPrefix()
+ * @model
+ * @generated
+ */
+public interface XMLNamespaceDeclarationPrefix extends XMLNamespaceDeclarationItem{
+	/**
+     * Returns the value of the '<em><b>Prefix</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Prefix</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Prefix</em>' attribute.
+     * @see #setPrefix(String)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLNamespaceDeclarationPrefix_Prefix()
+     * @model
+     * @generated
+     */
+    String getPrefix();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespaceDeclarationPrefix#getPrefix <em>Prefix</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Prefix</em>' attribute.
+     * @see #getPrefix()
+     * @generated
+     */
+    void setPrefix(String value);
+
+} // XMLNamespaceDeclarationPrefix
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLNamespacesDeclaration.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLNamespacesDeclaration.java
new file mode 100644
index 0000000..cd1e9b8
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLNamespacesDeclaration.java
@@ -0,0 +1,135 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLNamespacesDeclaration.java,v 1.2 2005/12/22 22:21:18 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryObject;
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Namespaces Declaration</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespacesDeclaration#getNamespaceDecltemList <em>Namespace Decltem List</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespacesDeclaration#getValueFunctionElement <em>Value Function Element</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespacesDeclaration#getValueFunctionForest <em>Value Function Forest</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespacesDeclaration#getTableFunction <em>Table Function</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLNamespacesDeclaration()
+ * @model
+ * @generated
+ */
+public interface XMLNamespacesDeclaration extends SQLQueryObject{
+	/**
+     * Returns the value of the '<em><b>Namespace Decltem List</b></em>' containment reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespaceDeclarationItem}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespaceDeclarationItem#getNamespacesDecl <em>Namespaces Decl</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Namespace Decltem List</em>' containment reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Namespace Decltem List</em>' containment reference list.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLNamespacesDeclaration_NamespaceDecltemList()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespaceDeclarationItem#getNamespacesDecl
+     * @model type="org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespaceDeclarationItem" opposite="namespacesDecl" containment="true" required="true"
+     * @generated
+     */
+    EList getNamespaceDecltemList();
+
+	/**
+     * Returns the value of the '<em><b>Value Function Element</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElement#getNamespacesDecl <em>Namespaces Decl</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Function Element</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Function Element</em>' container reference.
+     * @see #setValueFunctionElement(XMLValueFunctionElement)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLNamespacesDeclaration_ValueFunctionElement()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElement#getNamespacesDecl
+     * @model opposite="namespacesDecl" required="true"
+     * @generated
+     */
+    XMLValueFunctionElement getValueFunctionElement();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespacesDeclaration#getValueFunctionElement <em>Value Function Element</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Function Element</em>' container reference.
+     * @see #getValueFunctionElement()
+     * @generated
+     */
+    void setValueFunctionElement(XMLValueFunctionElement value);
+
+	/**
+     * Returns the value of the '<em><b>Value Function Forest</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForest#getNamespacesDecl <em>Namespaces Decl</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Function Forest</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Function Forest</em>' container reference.
+     * @see #setValueFunctionForest(XMLValueFunctionForest)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLNamespacesDeclaration_ValueFunctionForest()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForest#getNamespacesDecl
+     * @model opposite="namespacesDecl" required="true"
+     * @generated
+     */
+    XMLValueFunctionForest getValueFunctionForest();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespacesDeclaration#getValueFunctionForest <em>Value Function Forest</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Function Forest</em>' container reference.
+     * @see #getValueFunctionForest()
+     * @generated
+     */
+    void setValueFunctionForest(XMLValueFunctionForest value);
+
+	/**
+     * Returns the value of the '<em><b>Table Function</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableFunction#getNamespacesDecl <em>Namespaces Decl</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Table Function</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Table Function</em>' container reference.
+     * @see #setTableFunction(XMLTableFunction)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLNamespacesDeclaration_TableFunction()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLTableFunction#getNamespacesDecl
+     * @model opposite="namespacesDecl" required="true"
+     * @generated
+     */
+    XMLTableFunction getTableFunction();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespacesDeclaration#getTableFunction <em>Table Function</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Table Function</em>' container reference.
+     * @see #getTableFunction()
+     * @generated
+     */
+    void setTableFunction(XMLTableFunction value);
+
+} // XMLNamespacesDeclaration
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLNullHandlingType.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLNullHandlingType.java
new file mode 100644
index 0000000..f674f4e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLNullHandlingType.java
@@ -0,0 +1,259 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLNullHandlingType.java,v 1.4 2007/02/08 17:04:22 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>XML Null Handling Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLNullHandlingType()
+ * @model
+ * @generated
+ */
+public final class XMLNullHandlingType extends AbstractEnumerator {
+	/**
+     * The '<em><b>ABSENT ON NULL</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #ABSENT_ON_NULL_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int ABSENT_ON_NULL = 0;
+
+	/**
+     * The '<em><b>EMPTY ON NULL</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #EMPTY_ON_NULL_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int EMPTY_ON_NULL = 1;
+
+	/**
+     * The '<em><b>NIL ON NO CONTENT</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #NIL_ON_NO_CONTENT_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int NIL_ON_NO_CONTENT = 2;
+
+	/**
+     * The '<em><b>NIL ON NULL</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #NIL_ON_NULL_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int NIL_ON_NULL = 3;
+
+	/**
+     * The '<em><b>NULL ON NULL</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #NULL_ON_NULL_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int NULL_ON_NULL = 4;
+
+	/**
+     * The '<em><b>NONE</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #NONE_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int NONE = 5;
+
+	/**
+     * The '<em><b>ABSENT ON NULL</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>ABSENT ON NULL</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #ABSENT_ON_NULL
+     * @generated
+     * @ordered
+     */
+    public static final XMLNullHandlingType ABSENT_ON_NULL_LITERAL = new XMLNullHandlingType(ABSENT_ON_NULL, "ABSENT_ON_NULL", "ABSENT_ON_NULL");
+
+	/**
+     * The '<em><b>EMPTY ON NULL</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>EMPTY ON NULL</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #EMPTY_ON_NULL
+     * @generated
+     * @ordered
+     */
+    public static final XMLNullHandlingType EMPTY_ON_NULL_LITERAL = new XMLNullHandlingType(EMPTY_ON_NULL, "EMPTY_ON_NULL", "EMPTY_ON_NULL");
+
+	/**
+     * The '<em><b>NIL ON NO CONTENT</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>NIL ON NO CONTENT</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #NIL_ON_NO_CONTENT
+     * @generated
+     * @ordered
+     */
+    public static final XMLNullHandlingType NIL_ON_NO_CONTENT_LITERAL = new XMLNullHandlingType(NIL_ON_NO_CONTENT, "NIL_ON_NO_CONTENT", "NIL_ON_NO_CONTENT");
+
+	/**
+     * The '<em><b>NIL ON NULL</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>NIL ON NULL</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #NIL_ON_NULL
+     * @generated
+     * @ordered
+     */
+    public static final XMLNullHandlingType NIL_ON_NULL_LITERAL = new XMLNullHandlingType(NIL_ON_NULL, "NIL_ON_NULL", "NIL_ON_NULL");
+
+	/**
+     * The '<em><b>NULL ON NULL</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>NULL ON NULL</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #NULL_ON_NULL
+     * @generated
+     * @ordered
+     */
+    public static final XMLNullHandlingType NULL_ON_NULL_LITERAL = new XMLNullHandlingType(NULL_ON_NULL, "NULL_ON_NULL", "NULL_ON_NULL");
+
+	/**
+     * The '<em><b>NONE</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>NONE</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #NONE
+     * @generated
+     * @ordered
+     */
+    public static final XMLNullHandlingType NONE_LITERAL = new XMLNullHandlingType(NONE, "NONE", "NONE");
+
+	/**
+     * An array of all the '<em><b>XML Null Handling Type</b></em>' enumerators.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private static final XMLNullHandlingType[] VALUES_ARRAY =
+		new XMLNullHandlingType[] {
+            ABSENT_ON_NULL_LITERAL,
+            EMPTY_ON_NULL_LITERAL,
+            NIL_ON_NO_CONTENT_LITERAL,
+            NIL_ON_NULL_LITERAL,
+            NULL_ON_NULL_LITERAL,
+            NONE_LITERAL,
+        };
+
+	/**
+     * A public read-only list of all the '<em><b>XML Null Handling Type</b></em>' enumerators.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+     * Returns the '<em><b>XML Null Handling Type</b></em>' literal with the specified literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static XMLNullHandlingType get(String literal) {
+        for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+            XMLNullHandlingType result = VALUES_ARRAY[i];
+            if (result.toString().equals(literal)) {
+                return result;
+            }
+        }
+        return null;
+    }
+
+	/**
+     * Returns the '<em><b>XML Null Handling Type</b></em>' literal with the specified name.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public static XMLNullHandlingType getByName(String name) {
+        for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+            XMLNullHandlingType result = VALUES_ARRAY[i];
+            if (result.getName().equals(name)) {
+                return result;
+            }
+        }
+        return null;
+    }
+
+	/**
+     * Returns the '<em><b>XML Null Handling Type</b></em>' literal with the specified integer value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static XMLNullHandlingType get(int value) {
+        switch (value) {
+            case ABSENT_ON_NULL: return ABSENT_ON_NULL_LITERAL;
+            case EMPTY_ON_NULL: return EMPTY_ON_NULL_LITERAL;
+            case NIL_ON_NO_CONTENT: return NIL_ON_NO_CONTENT_LITERAL;
+            case NIL_ON_NULL: return NIL_ON_NULL_LITERAL;
+            case NULL_ON_NULL: return NULL_ON_NULL_LITERAL;
+            case NONE: return NONE_LITERAL;
+        }
+        return null;
+    }
+
+	/**
+     * Only this class can construct instances.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private XMLNullHandlingType(int value, String name, String literal) {
+        super(value, name, literal);
+    }
+
+} //XMLNullHandlingType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLPassingType.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLPassingType.java
new file mode 100644
index 0000000..80ee481
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLPassingType.java
@@ -0,0 +1,181 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLPassingType.java,v 1.4 2007/02/08 17:04:22 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>XML Passing Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Represents the possible values for the XML passing mechanism clause.  A value of NONE indicates that the passing mechanism clause should be omitted.
+ * <!-- end-model-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLPassingType()
+ * @model
+ * @generated
+ */
+public final class XMLPassingType extends AbstractEnumerator {
+	/**
+     * The '<em><b>BY REF</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>BY REF</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #BY_REF_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int BY_REF = 0;
+
+	/**
+     * The '<em><b>BY VALUE</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>BY VALUE</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #BY_VALUE_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int BY_VALUE = 1;
+
+	/**
+     * The '<em><b>NONE</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #NONE_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int NONE = 2;
+
+	/**
+     * The '<em><b>BY REF</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #BY_REF
+     * @generated
+     * @ordered
+     */
+    public static final XMLPassingType BY_REF_LITERAL = new XMLPassingType(BY_REF, "BY_REF", "BY_REF");
+
+	/**
+     * The '<em><b>BY VALUE</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #BY_VALUE
+     * @generated
+     * @ordered
+     */
+    public static final XMLPassingType BY_VALUE_LITERAL = new XMLPassingType(BY_VALUE, "BY_VALUE", "BY_VALUE");
+
+	/**
+     * The '<em><b>NONE</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>NONE</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #NONE
+     * @generated
+     * @ordered
+     */
+    public static final XMLPassingType NONE_LITERAL = new XMLPassingType(NONE, "NONE", "NONE");
+
+	/**
+     * An array of all the '<em><b>XML Passing Type</b></em>' enumerators.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private static final XMLPassingType[] VALUES_ARRAY =
+		new XMLPassingType[] {
+            BY_REF_LITERAL,
+            BY_VALUE_LITERAL,
+            NONE_LITERAL,
+        };
+
+	/**
+     * A public read-only list of all the '<em><b>XML Passing Type</b></em>' enumerators.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+     * Returns the '<em><b>XML Passing Type</b></em>' literal with the specified literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static XMLPassingType get(String literal) {
+        for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+            XMLPassingType result = VALUES_ARRAY[i];
+            if (result.toString().equals(literal)) {
+                return result;
+            }
+        }
+        return null;
+    }
+
+	/**
+     * Returns the '<em><b>XML Passing Type</b></em>' literal with the specified name.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public static XMLPassingType getByName(String name) {
+        for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+            XMLPassingType result = VALUES_ARRAY[i];
+            if (result.getName().equals(name)) {
+                return result;
+            }
+        }
+        return null;
+    }
+
+	/**
+     * Returns the '<em><b>XML Passing Type</b></em>' literal with the specified integer value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static XMLPassingType get(int value) {
+        switch (value) {
+            case BY_REF: return BY_REF_LITERAL;
+            case BY_VALUE: return BY_VALUE_LITERAL;
+            case NONE: return NONE_LITERAL;
+        }
+        return null;
+    }
+
+	/**
+     * Only this class can construct instances.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private XMLPassingType(int value, String name, String literal) {
+        super(value, name, literal);
+    }
+
+} //XMLPassingType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLPredicate.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLPredicate.java
new file mode 100644
index 0000000..3614fb9
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLPredicate.java
@@ -0,0 +1,27 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLPredicate.java,v 1.1 2005/12/16 13:16:52 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+import org.eclipse.datatools.modelbase.sql.query.Predicate;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * An XMLPredicate specifies a condition involving an XML value expression that can be evaluated to return true or false.  See ISO SQL/XML sec. 8.1.
+ * 
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLPredicate()
+ * @model abstract="true"
+ * @generated
+ */
+public interface XMLPredicate extends Predicate {
+} // XMLPredicate
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLPredicateContent.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLPredicateContent.java
new file mode 100644
index 0000000..4d41f58
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLPredicateContent.java
@@ -0,0 +1,27 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLPredicateContent.java,v 1.1 2005/12/16 13:16:52 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Predicate Content</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Tests whether or not a given XML value represents an XML document.  See ISO SQL/XML sec. 8.2.
+ * 
+ * Note:  the elaboration of this element is TBD
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLPredicateContent()
+ * @model
+ * @generated
+ */
+public interface XMLPredicateContent extends XMLPredicate{
+} // XMLPredicateContent
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLPredicateDocument.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLPredicateDocument.java
new file mode 100644
index 0000000..8756351
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLPredicateDocument.java
@@ -0,0 +1,27 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLPredicateDocument.java,v 1.1 2005/12/16 13:16:53 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Predicate Document</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Tests whether or not a given XML value represents an XML document which contains exactly one XML element, zero or more XML comments, and zero or more XML processing instructions.  See ISO SQL/XML sec. 8.3.
+ * 
+ * Note: the elaboration of this element is TBD.
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLPredicateDocument()
+ * @model
+ * @generated
+ */
+public interface XMLPredicateDocument extends XMLPredicate{
+} // XMLPredicateDocument
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLPredicateExists.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLPredicateExists.java
new file mode 100644
index 0000000..c45a75f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLPredicateExists.java
@@ -0,0 +1,88 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLPredicateExists.java,v 1.2 2005/12/22 22:21:18 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Predicate Exists</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Tests whether or not a given XQuery expression represents an non-empty sequence.  See ISO SQL/XML sec. 8.4.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLPredicateExists#getXqueryExpr <em>Xquery Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLPredicateExists#getXqueryArgList <em>Xquery Arg List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLPredicateExists()
+ * @model
+ * @generated
+ */
+public interface XMLPredicateExists extends XMLPredicate{
+	/**
+     * Returns the value of the '<em><b>Xquery Expr</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryExpression#getPredicateExists <em>Predicate Exists</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Xquery Expr</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Xquery Expr</em>' containment reference.
+     * @see #setXqueryExpr(XMLQueryExpression)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLPredicateExists_XqueryExpr()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryExpression#getPredicateExists
+     * @model opposite="predicateExists" containment="true" required="true"
+     * @generated
+     */
+    XMLQueryExpression getXqueryExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLPredicateExists#getXqueryExpr <em>Xquery Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Xquery Expr</em>' containment reference.
+     * @see #getXqueryExpr()
+     * @generated
+     */
+    void setXqueryExpr(XMLQueryExpression value);
+
+	/**
+     * Returns the value of the '<em><b>Xquery Arg List</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentList#getPredicateExists <em>Predicate Exists</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Xquery Arg List</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Xquery Arg List</em>' containment reference.
+     * @see #setXqueryArgList(XMLQueryArgumentList)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLPredicateExists_XqueryArgList()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentList#getPredicateExists
+     * @model opposite="predicateExists" containment="true"
+     * @generated
+     */
+    XMLQueryArgumentList getXqueryArgList();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLPredicateExists#getXqueryArgList <em>Xquery Arg List</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Xquery Arg List</em>' containment reference.
+     * @see #getXqueryArgList()
+     * @generated
+     */
+    void setXqueryArgList(XMLQueryArgumentList value);
+
+} // XMLPredicateExists
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLPredicateValid.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLPredicateValid.java
new file mode 100644
index 0000000..5d6e31b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLPredicateValid.java
@@ -0,0 +1,27 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLPredicateValid.java,v 1.1 2005/12/16 13:16:52 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Predicate Valid</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Tests whether or not a given XML value is valid according to a registered XML schema.  See ISO SQL/XML sec. 8.5.
+ * 
+ * Note: the elaboration of this element is TBD.
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLPredicateValid()
+ * @model
+ * @generated
+ */
+public interface XMLPredicateValid extends XMLPredicate{
+} // XMLPredicateValid
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLQueryArgumentItem.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLQueryArgumentItem.java
new file mode 100644
index 0000000..45c54c5
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLQueryArgumentItem.java
@@ -0,0 +1,117 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLQueryArgumentItem.java,v 1.2 2005/12/22 22:21:18 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Query Argument Item</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Represents a single XML Query Argument within an XML Query Argument list.  The name attribute, if used, indicates that  this argument is an XML Query variable.  The attached value expression must resolve to an XML datatype.  See ISO SQL/XML sec. 6.17.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentItem#getPassingMechanism <em>Passing Mechanism</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentItem#getXqueryArgList <em>Xquery Arg List</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentItem#getValueExpr <em>Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLQueryArgumentItem()
+ * @model
+ * @generated
+ */
+public interface XMLQueryArgumentItem extends QueryValueExpression{
+	/**
+     * Returns the value of the '<em><b>Passing Mechanism</b></em>' attribute.
+     * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.xml.query.XMLPassingType}.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Passing Mechanism</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Passing Mechanism</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLPassingType
+     * @see #setPassingMechanism(XMLPassingType)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLQueryArgumentItem_PassingMechanism()
+     * @model
+     * @generated
+     */
+    XMLPassingType getPassingMechanism();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentItem#getPassingMechanism <em>Passing Mechanism</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Passing Mechanism</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLPassingType
+     * @see #getPassingMechanism()
+     * @generated
+     */
+    void setPassingMechanism(XMLPassingType value);
+
+	/**
+     * Returns the value of the '<em><b>Xquery Arg List</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentList#getXqueryArgListChildren <em>Xquery Arg List Children</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Xquery Arg List</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Xquery Arg List</em>' container reference.
+     * @see #setXqueryArgList(XMLQueryArgumentList)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLQueryArgumentItem_XqueryArgList()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentList#getXqueryArgListChildren
+     * @model opposite="xqueryArgListChildren" required="true"
+     * @generated
+     */
+    XMLQueryArgumentList getXqueryArgList();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentItem#getXqueryArgList <em>Xquery Arg List</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Xquery Arg List</em>' container reference.
+     * @see #getXqueryArgList()
+     * @generated
+     */
+    void setXqueryArgList(XMLQueryArgumentList value);
+
+	/**
+     * Returns the value of the '<em><b>Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Expr</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Expr</em>' containment reference.
+     * @see #setValueExpr(QueryValueExpression)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLQueryArgumentItem_ValueExpr()
+     * @model containment="true" required="true"
+     * @generated
+     */
+    QueryValueExpression getValueExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentItem#getValueExpr <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Expr</em>' containment reference.
+     * @see #getValueExpr()
+     * @generated
+     */
+    void setValueExpr(QueryValueExpression value);
+
+} // XMLQueryArgumentItem
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLQueryArgumentList.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLQueryArgumentList.java
new file mode 100644
index 0000000..5385071
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLQueryArgumentList.java
@@ -0,0 +1,169 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLQueryArgumentList.java,v 1.2 2005/12/22 22:21:18 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryObject;
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Query Argument List</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Represents an XML Query argument list.  See ISO SQL/XML sec. 6.17.  <note>The list is modelled as an explicit object rather than just as a list of XMLQueryArgument objects attached to the parent so that the list as whole can have an optional passing mechanism clause.</note>
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentList#getPassingMechanism <em>Passing Mechanism</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentList#getPredicateExists <em>Predicate Exists</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentList#getXqueryArgListChildren <em>Xquery Arg List Children</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentList#getValueFunctionQuery <em>Value Function Query</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentList#getTableFunction <em>Table Function</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLQueryArgumentList()
+ * @model
+ * @generated
+ */
+public interface XMLQueryArgumentList extends SQLQueryObject{
+	/**
+     * Returns the value of the '<em><b>Passing Mechanism</b></em>' attribute.
+     * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.xml.query.XMLPassingType}.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Passing Mechanism</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Passing Mechanism</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLPassingType
+     * @see #setPassingMechanism(XMLPassingType)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLQueryArgumentList_PassingMechanism()
+     * @model
+     * @generated
+     */
+    XMLPassingType getPassingMechanism();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentList#getPassingMechanism <em>Passing Mechanism</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Passing Mechanism</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLPassingType
+     * @see #getPassingMechanism()
+     * @generated
+     */
+    void setPassingMechanism(XMLPassingType value);
+
+	/**
+     * Returns the value of the '<em><b>Predicate Exists</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLPredicateExists#getXqueryArgList <em>Xquery Arg List</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Predicate Exists</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Predicate Exists</em>' container reference.
+     * @see #setPredicateExists(XMLPredicateExists)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLQueryArgumentList_PredicateExists()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLPredicateExists#getXqueryArgList
+     * @model opposite="xqueryArgList" required="true"
+     * @generated
+     */
+    XMLPredicateExists getPredicateExists();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentList#getPredicateExists <em>Predicate Exists</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Predicate Exists</em>' container reference.
+     * @see #getPredicateExists()
+     * @generated
+     */
+    void setPredicateExists(XMLPredicateExists value);
+
+	/**
+     * Returns the value of the '<em><b>Xquery Arg List Children</b></em>' containment reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentItem}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentItem#getXqueryArgList <em>Xquery Arg List</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Xquery Arg List Children</em>' containment reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Xquery Arg List Children</em>' containment reference list.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLQueryArgumentList_XqueryArgListChildren()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentItem#getXqueryArgList
+     * @model type="org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentItem" opposite="xqueryArgList" containment="true" required="true"
+     * @generated
+     */
+    EList getXqueryArgListChildren();
+
+	/**
+     * Returns the value of the '<em><b>Value Function Query</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQuery#getXqueryArgList <em>Xquery Arg List</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Function Query</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Function Query</em>' container reference.
+     * @see #setValueFunctionQuery(XMLValueFunctionQuery)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLQueryArgumentList_ValueFunctionQuery()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQuery#getXqueryArgList
+     * @model opposite="xqueryArgList" required="true"
+     * @generated
+     */
+    XMLValueFunctionQuery getValueFunctionQuery();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentList#getValueFunctionQuery <em>Value Function Query</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Function Query</em>' container reference.
+     * @see #getValueFunctionQuery()
+     * @generated
+     */
+    void setValueFunctionQuery(XMLValueFunctionQuery value);
+
+	/**
+     * Returns the value of the '<em><b>Table Function</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableFunction#getXqueryArgList <em>Xquery Arg List</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Table Function</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Table Function</em>' container reference.
+     * @see #setTableFunction(XMLTableFunction)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLQueryArgumentList_TableFunction()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLTableFunction#getXqueryArgList
+     * @model opposite="xqueryArgList" required="true"
+     * @generated
+     */
+    XMLTableFunction getTableFunction();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentList#getTableFunction <em>Table Function</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Table Function</em>' container reference.
+     * @see #getTableFunction()
+     * @generated
+     */
+    void setTableFunction(XMLTableFunction value);
+
+} // XMLQueryArgumentList
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLQueryExpression.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLQueryExpression.java
new file mode 100644
index 0000000..00d045b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLQueryExpression.java
@@ -0,0 +1,116 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLQueryExpression.java,v 1.2 2005/12/22 22:21:18 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Query Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Represents an XQuery expression.  The content of this element is a literal string which specifies an XML Query.  See ISO SQL/XML sec. 6.17.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryExpression#getXqueryExprContent <em>Xquery Expr Content</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryExpression#getPredicateExists <em>Predicate Exists</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryExpression#getValueFunctionQuery <em>Value Function Query</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLQueryExpression()
+ * @model
+ * @generated
+ */
+public interface XMLQueryExpression extends SQLQueryObject{
+	/**
+     * Returns the value of the '<em><b>Xquery Expr Content</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Xquery Expr Content</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Xquery Expr Content</em>' attribute.
+     * @see #setXqueryExprContent(String)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLQueryExpression_XqueryExprContent()
+     * @model
+     * @generated
+     */
+    String getXqueryExprContent();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryExpression#getXqueryExprContent <em>Xquery Expr Content</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Xquery Expr Content</em>' attribute.
+     * @see #getXqueryExprContent()
+     * @generated
+     */
+    void setXqueryExprContent(String value);
+
+	/**
+     * Returns the value of the '<em><b>Predicate Exists</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLPredicateExists#getXqueryExpr <em>Xquery Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Predicate Exists</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Predicate Exists</em>' container reference.
+     * @see #setPredicateExists(XMLPredicateExists)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLQueryExpression_PredicateExists()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLPredicateExists#getXqueryExpr
+     * @model opposite="xqueryExpr" required="true"
+     * @generated
+     */
+    XMLPredicateExists getPredicateExists();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryExpression#getPredicateExists <em>Predicate Exists</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Predicate Exists</em>' container reference.
+     * @see #getPredicateExists()
+     * @generated
+     */
+    void setPredicateExists(XMLPredicateExists value);
+
+	/**
+     * Returns the value of the '<em><b>Value Function Query</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQuery#getXqueryExpr <em>Xquery Expr</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Function Query</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Function Query</em>' container reference.
+     * @see #setValueFunctionQuery(XMLValueFunctionQuery)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLQueryExpression_ValueFunctionQuery()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQuery#getXqueryExpr
+     * @model opposite="xqueryExpr" required="true"
+     * @generated
+     */
+    XMLValueFunctionQuery getValueFunctionQuery();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryExpression#getValueFunctionQuery <em>Value Function Query</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Function Query</em>' container reference.
+     * @see #getValueFunctionQuery()
+     * @generated
+     */
+    void setValueFunctionQuery(XMLValueFunctionQuery value);
+
+} // XMLQueryExpression
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLReturningType.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLReturningType.java
new file mode 100644
index 0000000..d61bcf3
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLReturningType.java
@@ -0,0 +1,178 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLReturningType.java,v 1.4 2007/02/08 17:04:22 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>XML Returning Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLReturningType()
+ * @model
+ * @generated
+ */
+public final class XMLReturningType extends AbstractEnumerator {
+	/**
+     * The '<em><b>RETURNING CONTENT</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #RETURNING_CONTENT_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int RETURNING_CONTENT = 0;
+
+	/**
+     * The '<em><b>RETURNING SEQUENCE</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #RETURNING_SEQUENCE_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int RETURNING_SEQUENCE = 1;
+
+	/**
+     * The '<em><b>NONE</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #NONE_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int NONE = 2;
+
+	/**
+     * The '<em><b>RETURNING CONTENT</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>RETURNING CONTENT</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #RETURNING_CONTENT
+     * @generated
+     * @ordered
+     */
+    public static final XMLReturningType RETURNING_CONTENT_LITERAL = new XMLReturningType(RETURNING_CONTENT, "RETURNING_CONTENT", "RETURNING_CONTENT");
+
+	/**
+     * The '<em><b>RETURNING SEQUENCE</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>RETURNING SEQUENCE</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #RETURNING_SEQUENCE
+     * @generated
+     * @ordered
+     */
+    public static final XMLReturningType RETURNING_SEQUENCE_LITERAL = new XMLReturningType(RETURNING_SEQUENCE, "RETURNING_SEQUENCE", "RETURNING_SEQUENCE");
+
+	/**
+     * The '<em><b>NONE</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>NONE</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #NONE
+     * @generated
+     * @ordered
+     */
+    public static final XMLReturningType NONE_LITERAL = new XMLReturningType(NONE, "NONE", "NONE");
+
+	/**
+     * An array of all the '<em><b>XML Returning Type</b></em>' enumerators.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private static final XMLReturningType[] VALUES_ARRAY =
+		new XMLReturningType[] {
+            RETURNING_CONTENT_LITERAL,
+            RETURNING_SEQUENCE_LITERAL,
+            NONE_LITERAL,
+        };
+
+	/**
+     * A public read-only list of all the '<em><b>XML Returning Type</b></em>' enumerators.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+     * Returns the '<em><b>XML Returning Type</b></em>' literal with the specified literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static XMLReturningType get(String literal) {
+        for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+            XMLReturningType result = VALUES_ARRAY[i];
+            if (result.toString().equals(literal)) {
+                return result;
+            }
+        }
+        return null;
+    }
+
+	/**
+     * Returns the '<em><b>XML Returning Type</b></em>' literal with the specified name.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public static XMLReturningType getByName(String name) {
+        for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+            XMLReturningType result = VALUES_ARRAY[i];
+            if (result.getName().equals(name)) {
+                return result;
+            }
+        }
+        return null;
+    }
+
+	/**
+     * Returns the '<em><b>XML Returning Type</b></em>' literal with the specified integer value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static XMLReturningType get(int value) {
+        switch (value) {
+            case RETURNING_CONTENT: return RETURNING_CONTENT_LITERAL;
+            case RETURNING_SEQUENCE: return RETURNING_SEQUENCE_LITERAL;
+            case NONE: return NONE_LITERAL;
+        }
+        return null;
+    }
+
+	/**
+     * Only this class can construct instances.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private XMLReturningType(int value, String name, String literal) {
+        super(value, name, literal);
+    }
+
+} //XMLReturningType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLSerializeFunction.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLSerializeFunction.java
new file mode 100644
index 0000000..c5b4a9f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLSerializeFunction.java
@@ -0,0 +1,170 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLSerializeFunction.java,v 1.2 2005/12/22 22:21:18 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Serialize Function</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunction#getContentOption <em>Content Option</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunction#getSerializeVersion <em>Serialize Version</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunction#getDeclarationOption <em>Declaration Option</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunction#getSerializeTarget <em>Serialize Target</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunction#getSerializeEncoding <em>Serialize Encoding</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLSerializeFunction()
+ * @model
+ * @generated
+ */
+public interface XMLSerializeFunction extends ValueExpressionFunction{
+	/**
+     * Returns the value of the '<em><b>Content Option</b></em>' attribute.
+     * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.xml.query.XMLContentType}.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Content Option</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Content Option</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLContentType
+     * @see #setContentOption(XMLContentType)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLSerializeFunction_ContentOption()
+     * @model
+     * @generated
+     */
+    XMLContentType getContentOption();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunction#getContentOption <em>Content Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Content Option</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLContentType
+     * @see #getContentOption()
+     * @generated
+     */
+    void setContentOption(XMLContentType value);
+
+	/**
+     * Returns the value of the '<em><b>Serialize Version</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Serialize Version</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Serialize Version</em>' attribute.
+     * @see #setSerializeVersion(String)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLSerializeFunction_SerializeVersion()
+     * @model
+     * @generated
+     */
+    String getSerializeVersion();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunction#getSerializeVersion <em>Serialize Version</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Serialize Version</em>' attribute.
+     * @see #getSerializeVersion()
+     * @generated
+     */
+    void setSerializeVersion(String value);
+
+	/**
+     * Returns the value of the '<em><b>Declaration Option</b></em>' attribute.
+     * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.xml.query.XMLDeclarationType}.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Declaration Option</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Declaration Option</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLDeclarationType
+     * @see #setDeclarationOption(XMLDeclarationType)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLSerializeFunction_DeclarationOption()
+     * @model
+     * @generated
+     */
+    XMLDeclarationType getDeclarationOption();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunction#getDeclarationOption <em>Declaration Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Declaration Option</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLDeclarationType
+     * @see #getDeclarationOption()
+     * @generated
+     */
+    void setDeclarationOption(XMLDeclarationType value);
+
+	/**
+     * Returns the value of the '<em><b>Serialize Target</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunctionTarget#getSerializeFunction <em>Serialize Function</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Serialize Target</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Serialize Target</em>' containment reference.
+     * @see #setSerializeTarget(XMLSerializeFunctionTarget)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLSerializeFunction_SerializeTarget()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunctionTarget#getSerializeFunction
+     * @model opposite="serializeFunction" containment="true" required="true"
+     * @generated
+     */
+    XMLSerializeFunctionTarget getSerializeTarget();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunction#getSerializeTarget <em>Serialize Target</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Serialize Target</em>' containment reference.
+     * @see #getSerializeTarget()
+     * @generated
+     */
+    void setSerializeTarget(XMLSerializeFunctionTarget value);
+
+	/**
+     * Returns the value of the '<em><b>Serialize Encoding</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Serialize Encoding</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Serialize Encoding</em>' containment reference.
+     * @see #setSerializeEncoding(XMLSerializeFunctionEncoding)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLSerializeFunction_SerializeEncoding()
+     * @model containment="true"
+     * @generated
+     */
+    XMLSerializeFunctionEncoding getSerializeEncoding();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunction#getSerializeEncoding <em>Serialize Encoding</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Serialize Encoding</em>' containment reference.
+     * @see #getSerializeEncoding()
+     * @generated
+     */
+    void setSerializeEncoding(XMLSerializeFunctionEncoding value);
+
+} // XMLSerializeFunction
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLSerializeFunctionEncoding.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLSerializeFunctionEncoding.java
new file mode 100644
index 0000000..2440287
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLSerializeFunctionEncoding.java
@@ -0,0 +1,54 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLSerializeFunctionEncoding.java,v 1.2 2005/12/22 22:21:18 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Serialize Function Encoding</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunctionEncoding#getEncodingName <em>Encoding Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLSerializeFunctionEncoding()
+ * @model
+ * @generated
+ */
+public interface XMLSerializeFunctionEncoding extends SQLQueryObject{
+	/**
+     * Returns the value of the '<em><b>Encoding Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Encoding Name</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Encoding Name</em>' attribute.
+     * @see #setEncodingName(String)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLSerializeFunctionEncoding_EncodingName()
+     * @model
+     * @generated
+     */
+    String getEncodingName();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunctionEncoding#getEncodingName <em>Encoding Name</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Encoding Name</em>' attribute.
+     * @see #getEncodingName()
+     * @generated
+     */
+    void setEncodingName(String value);
+
+} // XMLSerializeFunctionEncoding
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLSerializeFunctionTarget.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLSerializeFunctionTarget.java
new file mode 100644
index 0000000..d08c242
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLSerializeFunctionTarget.java
@@ -0,0 +1,83 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLSerializeFunctionTarget.java,v 1.2 2005/12/22 22:21:18 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Serialize Function Target</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunctionTarget#getSerializeFunction <em>Serialize Function</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunctionTarget#getValueExpr <em>Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLSerializeFunctionTarget()
+ * @model
+ * @generated
+ */
+public interface XMLSerializeFunctionTarget extends QueryValueExpression{
+	/**
+     * Returns the value of the '<em><b>Serialize Function</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunction#getSerializeTarget <em>Serialize Target</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Serialize Function</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Serialize Function</em>' container reference.
+     * @see #setSerializeFunction(XMLSerializeFunction)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLSerializeFunctionTarget_SerializeFunction()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunction#getSerializeTarget
+     * @model opposite="serializeTarget" required="true"
+     * @generated
+     */
+    XMLSerializeFunction getSerializeFunction();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunctionTarget#getSerializeFunction <em>Serialize Function</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Serialize Function</em>' container reference.
+     * @see #getSerializeFunction()
+     * @generated
+     */
+    void setSerializeFunction(XMLSerializeFunction value);
+
+	/**
+     * Returns the value of the '<em><b>Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Expr</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Expr</em>' containment reference.
+     * @see #setValueExpr(QueryValueExpression)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLSerializeFunctionTarget_ValueExpr()
+     * @model containment="true" required="true"
+     * @generated
+     */
+    QueryValueExpression getValueExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunctionTarget#getValueExpr <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Expr</em>' containment reference.
+     * @see #getValueExpr()
+     * @generated
+     */
+    void setValueExpr(QueryValueExpression value);
+
+} // XMLSerializeFunctionTarget
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLTableColumnDefinitionDefault.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLTableColumnDefinitionDefault.java
new file mode 100644
index 0000000..a479fce
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLTableColumnDefinitionDefault.java
@@ -0,0 +1,83 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLTableColumnDefinitionDefault.java,v 1.2 2005/12/22 22:21:19 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Table Column Definition Default</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionDefault#getValueExpr <em>Value Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionDefault#getColumnDefinitionRegular <em>Column Definition Regular</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLTableColumnDefinitionDefault()
+ * @model
+ * @generated
+ */
+public interface XMLTableColumnDefinitionDefault extends QueryValueExpression{
+	/**
+     * Returns the value of the '<em><b>Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Expr</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Expr</em>' containment reference.
+     * @see #setValueExpr(QueryValueExpression)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLTableColumnDefinitionDefault_ValueExpr()
+     * @model containment="true" required="true"
+     * @generated
+     */
+    QueryValueExpression getValueExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionDefault#getValueExpr <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Expr</em>' containment reference.
+     * @see #getValueExpr()
+     * @generated
+     */
+    void setValueExpr(QueryValueExpression value);
+
+	/**
+     * Returns the value of the '<em><b>Column Definition Regular</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionRegular#getColumnDefinitionDefault <em>Column Definition Default</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Column Definition Regular</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Column Definition Regular</em>' container reference.
+     * @see #setColumnDefinitionRegular(XMLTableColumnDefinitionRegular)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLTableColumnDefinitionDefault_ColumnDefinitionRegular()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionRegular#getColumnDefinitionDefault
+     * @model opposite="columnDefinitionDefault" required="true"
+     * @generated
+     */
+    XMLTableColumnDefinitionRegular getColumnDefinitionRegular();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionDefault#getColumnDefinitionRegular <em>Column Definition Regular</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Column Definition Regular</em>' container reference.
+     * @see #getColumnDefinitionRegular()
+     * @generated
+     */
+    void setColumnDefinitionRegular(XMLTableColumnDefinitionRegular value);
+
+} // XMLTableColumnDefinitionDefault
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLTableColumnDefinitionItem.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLTableColumnDefinitionItem.java
new file mode 100644
index 0000000..9dd0dbf
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLTableColumnDefinitionItem.java
@@ -0,0 +1,56 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLTableColumnDefinitionItem.java,v 1.2 2005/12/22 22:21:18 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Table Column Definition Item</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionItem#getTableFunction <em>Table Function</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLTableColumnDefinitionItem()
+ * @model
+ * @generated
+ */
+public interface XMLTableColumnDefinitionItem extends SQLQueryObject{
+	/**
+     * Returns the value of the '<em><b>Table Function</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableFunction#getColumnDefList <em>Column Def List</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Table Function</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Table Function</em>' container reference.
+     * @see #setTableFunction(XMLTableFunction)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLTableColumnDefinitionItem_TableFunction()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLTableFunction#getColumnDefList
+     * @model opposite="columnDefList" required="true"
+     * @generated
+     */
+    XMLTableFunction getTableFunction();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionItem#getTableFunction <em>Table Function</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Table Function</em>' container reference.
+     * @see #getTableFunction()
+     * @generated
+     */
+    void setTableFunction(XMLTableFunction value);
+
+} // XMLTableColumnDefinitionItem
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLTableColumnDefinitionOrdinality.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLTableColumnDefinitionOrdinality.java
new file mode 100644
index 0000000..3310e32
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLTableColumnDefinitionOrdinality.java
@@ -0,0 +1,21 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLTableColumnDefinitionOrdinality.java,v 1.1 2005/12/16 13:16:52 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Table Column Definition Ordinality</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLTableColumnDefinitionOrdinality()
+ * @model
+ * @generated
+ */
+public interface XMLTableColumnDefinitionOrdinality extends XMLTableColumnDefinitionItem{
+} // XMLTableColumnDefinitionOrdinality
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLTableColumnDefinitionRegular.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLTableColumnDefinitionRegular.java
new file mode 100644
index 0000000..bd26085
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLTableColumnDefinitionRegular.java
@@ -0,0 +1,140 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLTableColumnDefinitionRegular.java,v 1.2 2005/12/22 22:21:18 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Table Column Definition Regular</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionRegular#getDataType <em>Data Type</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionRegular#getPassingOption <em>Passing Option</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionRegular#getTableColumnPattern <em>Table Column Pattern</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionRegular#getColumnDefinitionDefault <em>Column Definition Default</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLTableColumnDefinitionRegular()
+ * @model
+ * @generated
+ */
+public interface XMLTableColumnDefinitionRegular extends XMLTableColumnDefinitionItem{
+	/**
+     * Returns the value of the '<em><b>Data Type</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Data Type</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Data Type</em>' containment reference.
+     * @see #setDataType(DataType)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLTableColumnDefinitionRegular_DataType()
+     * @model containment="true"
+     * @generated
+     */
+    DataType getDataType();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionRegular#getDataType <em>Data Type</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Data Type</em>' containment reference.
+     * @see #getDataType()
+     * @generated
+     */
+    void setDataType(DataType value);
+
+	/**
+     * Returns the value of the '<em><b>Passing Option</b></em>' attribute.
+     * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.xml.query.XMLPassingType}.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Passing Option</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Passing Option</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLPassingType
+     * @see #setPassingOption(XMLPassingType)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLTableColumnDefinitionRegular_PassingOption()
+     * @model
+     * @generated
+     */
+    XMLPassingType getPassingOption();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionRegular#getPassingOption <em>Passing Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Passing Option</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLPassingType
+     * @see #getPassingOption()
+     * @generated
+     */
+    void setPassingOption(XMLPassingType value);
+
+	/**
+     * Returns the value of the '<em><b>Table Column Pattern</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Table Column Pattern</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Table Column Pattern</em>' attribute.
+     * @see #setTableColumnPattern(String)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLTableColumnDefinitionRegular_TableColumnPattern()
+     * @model
+     * @generated
+     */
+    String getTableColumnPattern();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionRegular#getTableColumnPattern <em>Table Column Pattern</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Table Column Pattern</em>' attribute.
+     * @see #getTableColumnPattern()
+     * @generated
+     */
+    void setTableColumnPattern(String value);
+
+	/**
+     * Returns the value of the '<em><b>Column Definition Default</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionDefault#getColumnDefinitionRegular <em>Column Definition Regular</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Column Definition Default</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Column Definition Default</em>' containment reference.
+     * @see #setColumnDefinitionDefault(XMLTableColumnDefinitionDefault)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLTableColumnDefinitionRegular_ColumnDefinitionDefault()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionDefault#getColumnDefinitionRegular
+     * @model opposite="columnDefinitionRegular" containment="true"
+     * @generated
+     */
+    XMLTableColumnDefinitionDefault getColumnDefinitionDefault();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionRegular#getColumnDefinitionDefault <em>Column Definition Default</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Column Definition Default</em>' containment reference.
+     * @see #getColumnDefinitionDefault()
+     * @generated
+     */
+    void setColumnDefinitionDefault(XMLTableColumnDefinitionDefault value);
+
+} // XMLTableColumnDefinitionRegular
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLTableFunction.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLTableFunction.java
new file mode 100644
index 0000000..97eec8a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLTableFunction.java
@@ -0,0 +1,133 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLTableFunction.java,v 1.2 2005/12/22 22:21:18 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+
+import org.eclipse.datatools.modelbase.sql.query.TableFunction;
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Table Function</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableFunction#getTableRowPattern <em>Table Row Pattern</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableFunction#getXqueryArgList <em>Xquery Arg List</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableFunction#getColumnDefList <em>Column Def List</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableFunction#getNamespacesDecl <em>Namespaces Decl</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLTableFunction()
+ * @model
+ * @generated
+ */
+public interface XMLTableFunction extends TableFunction{
+	/**
+     * Returns the value of the '<em><b>Table Row Pattern</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Table Row Pattern</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Table Row Pattern</em>' attribute.
+     * @see #setTableRowPattern(String)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLTableFunction_TableRowPattern()
+     * @model
+     * @generated
+     */
+    String getTableRowPattern();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableFunction#getTableRowPattern <em>Table Row Pattern</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Table Row Pattern</em>' attribute.
+     * @see #getTableRowPattern()
+     * @generated
+     */
+    void setTableRowPattern(String value);
+
+	/**
+     * Returns the value of the '<em><b>Xquery Arg List</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentList#getTableFunction <em>Table Function</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Xquery Arg List</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Xquery Arg List</em>' containment reference.
+     * @see #setXqueryArgList(XMLQueryArgumentList)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLTableFunction_XqueryArgList()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentList#getTableFunction
+     * @model opposite="tableFunction" containment="true"
+     * @generated
+     */
+    XMLQueryArgumentList getXqueryArgList();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableFunction#getXqueryArgList <em>Xquery Arg List</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Xquery Arg List</em>' containment reference.
+     * @see #getXqueryArgList()
+     * @generated
+     */
+    void setXqueryArgList(XMLQueryArgumentList value);
+
+	/**
+     * Returns the value of the '<em><b>Column Def List</b></em>' containment reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionItem}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionItem#getTableFunction <em>Table Function</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Column Def List</em>' containment reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Column Def List</em>' containment reference list.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLTableFunction_ColumnDefList()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionItem#getTableFunction
+     * @model type="org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionItem" opposite="tableFunction" containment="true" required="true"
+     * @generated
+     */
+    EList getColumnDefList();
+
+	/**
+     * Returns the value of the '<em><b>Namespaces Decl</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespacesDeclaration#getTableFunction <em>Table Function</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Namespaces Decl</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Namespaces Decl</em>' containment reference.
+     * @see #setNamespacesDecl(XMLNamespacesDeclaration)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLTableFunction_NamespacesDecl()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespacesDeclaration#getTableFunction
+     * @model opposite="tableFunction" containment="true"
+     * @generated
+     */
+    XMLNamespacesDeclaration getNamespacesDecl();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableFunction#getNamespacesDecl <em>Namespaces Decl</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Namespaces Decl</em>' containment reference.
+     * @see #getNamespacesDecl()
+     * @generated
+     */
+    void setNamespacesDecl(XMLNamespacesDeclaration value);
+
+} // XMLTableFunction
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueExpressionCast.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueExpressionCast.java
new file mode 100644
index 0000000..97af8cc
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueExpressionCast.java
@@ -0,0 +1,62 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueExpressionCast.java,v 1.2 2005/12/22 22:21:18 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Value Expression Cast</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Specifies a data conversion whose source or target is a value expressoin with an XML datatype.  See ISO SQL/XML sec. 6.5.  The <XML cast operand>is handled by the valueExpr relationship of the ValueExpressionCast.  <XML target operand> (which is a datatype) is handled by the datatype attribute of QueryValueeExpression.  The <null specification> is  handled by the ValueExpressionNullValue subtype of QueryValueExpression.
+ * 
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueExpressionCast#getPassingMechanism <em>Passing Mechanism</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueExpressionCast()
+ * @model
+ * @generated
+ */
+public interface XMLValueExpressionCast extends ValueExpressionCast{
+	/**
+     * Returns the value of the '<em><b>Passing Mechanism</b></em>' attribute.
+     * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.xml.query.XMLPassingType}.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Passing Mechanism</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Passing Mechanism</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLPassingType
+     * @see #setPassingMechanism(XMLPassingType)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueExpressionCast_PassingMechanism()
+     * @model
+     * @generated
+     */
+    XMLPassingType getPassingMechanism();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueExpressionCast#getPassingMechanism <em>Passing Mechanism</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Passing Mechanism</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLPassingType
+     * @see #getPassingMechanism()
+     * @generated
+     */
+    void setPassingMechanism(XMLPassingType value);
+
+} // XMLValueExpressionCast
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunction.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunction.java
new file mode 100644
index 0000000..0722b5d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunction.java
@@ -0,0 +1,26 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunction.java,v 1.1 2005/12/16 13:16:52 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Value Function</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Specifies a function that yields a value of type XML.  See ISO SQL/XML sec. 6.9.
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunction()
+ * @model abstract="true"
+ * @generated
+ */
+public interface XMLValueFunction extends ValueExpressionFunction {
+} // XMLValueFunction
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionComment.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionComment.java
new file mode 100644
index 0000000..9d9d5da
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionComment.java
@@ -0,0 +1,89 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionComment.java,v 1.2 2005/12/22 22:21:18 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Value Function Comment</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Generates an XML comment value from a string expression.  See ISO SQL/XML sec. 6.10.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionComment#getReturningOption <em>Returning Option</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionComment#getCommentContent <em>Comment Content</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionComment()
+ * @model
+ * @generated
+ */
+public interface XMLValueFunctionComment extends XMLValueFunction{
+	/**
+     * Returns the value of the '<em><b>Returning Option</b></em>' attribute.
+     * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.xml.query.XMLReturningType}.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Returning Option</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Returning Option</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLReturningType
+     * @see #setReturningOption(XMLReturningType)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionComment_ReturningOption()
+     * @model
+     * @generated
+     */
+    XMLReturningType getReturningOption();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionComment#getReturningOption <em>Returning Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Returning Option</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLReturningType
+     * @see #getReturningOption()
+     * @generated
+     */
+    void setReturningOption(XMLReturningType value);
+
+	/**
+     * Returns the value of the '<em><b>Comment Content</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionCommentContent#getValueFunctionComment <em>Value Function Comment</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Comment Content</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Comment Content</em>' containment reference.
+     * @see #setCommentContent(XMLValueFunctionCommentContent)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionComment_CommentContent()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionCommentContent#getValueFunctionComment
+     * @model opposite="valueFunctionComment" containment="true" required="true"
+     * @generated
+     */
+    XMLValueFunctionCommentContent getCommentContent();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionComment#getCommentContent <em>Comment Content</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Comment Content</em>' containment reference.
+     * @see #getCommentContent()
+     * @generated
+     */
+    void setCommentContent(XMLValueFunctionCommentContent value);
+
+} // XMLValueFunctionComment
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionCommentContent.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionCommentContent.java
new file mode 100644
index 0000000..94c984f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionCommentContent.java
@@ -0,0 +1,87 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionCommentContent.java,v 1.2 2005/12/22 22:21:18 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Value Function Comment Content</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Represents the <string value expression> within an <XML comment> function.  See ISO SQL/XML sec. 6.10.  Contains a value expression which must resolve to an string datatype.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionCommentContent#getValueFunctionComment <em>Value Function Comment</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionCommentContent#getValueExpr <em>Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionCommentContent()
+ * @model
+ * @generated
+ */
+public interface XMLValueFunctionCommentContent extends QueryValueExpression{
+	/**
+     * Returns the value of the '<em><b>Value Function Comment</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionComment#getCommentContent <em>Comment Content</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Function Comment</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Function Comment</em>' container reference.
+     * @see #setValueFunctionComment(XMLValueFunctionComment)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionCommentContent_ValueFunctionComment()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionComment#getCommentContent
+     * @model opposite="commentContent" required="true"
+     * @generated
+     */
+    XMLValueFunctionComment getValueFunctionComment();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionCommentContent#getValueFunctionComment <em>Value Function Comment</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Function Comment</em>' container reference.
+     * @see #getValueFunctionComment()
+     * @generated
+     */
+    void setValueFunctionComment(XMLValueFunctionComment value);
+
+	/**
+     * Returns the value of the '<em><b>Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Expr</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Expr</em>' containment reference.
+     * @see #setValueExpr(QueryValueExpression)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionCommentContent_ValueExpr()
+     * @model containment="true" required="true"
+     * @generated
+     */
+    QueryValueExpression getValueExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionCommentContent#getValueExpr <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Expr</em>' containment reference.
+     * @see #getValueExpr()
+     * @generated
+     */
+    void setValueExpr(QueryValueExpression value);
+
+} // XMLValueFunctionCommentContent
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionConcat.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionConcat.java
new file mode 100644
index 0000000..a8f3ce6
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionConcat.java
@@ -0,0 +1,80 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionConcat.java,v 1.2 2005/12/22 22:21:19 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Value Function Concat</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Generates an XML value which is the concatenation of a list of XML values.  See ISO SQL/XML sec. 6.11.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionConcat#getReturningOption <em>Returning Option</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionConcat#getConcatContentList <em>Concat Content List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionConcat()
+ * @model
+ * @generated
+ */
+public interface XMLValueFunctionConcat extends XMLValueFunction{
+	/**
+     * Returns the value of the '<em><b>Returning Option</b></em>' attribute.
+     * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.xml.query.XMLReturningType}.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Returning Option</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Returning Option</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLReturningType
+     * @see #setReturningOption(XMLReturningType)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionConcat_ReturningOption()
+     * @model
+     * @generated
+     */
+    XMLReturningType getReturningOption();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionConcat#getReturningOption <em>Returning Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Returning Option</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLReturningType
+     * @see #getReturningOption()
+     * @generated
+     */
+    void setReturningOption(XMLReturningType value);
+
+	/**
+     * Returns the value of the '<em><b>Concat Content List</b></em>' containment reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionConcatContentItem}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionConcatContentItem#getValueFunctionConcat <em>Value Function Concat</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Concat Content List</em>' containment reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Concat Content List</em>' containment reference list.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionConcat_ConcatContentList()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionConcatContentItem#getValueFunctionConcat
+     * @model type="org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionConcatContentItem" opposite="valueFunctionConcat" containment="true" required="true"
+     * @generated
+     */
+    EList getConcatContentList();
+
+} // XMLValueFunctionConcat
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionConcatContentItem.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionConcatContentItem.java
new file mode 100644
index 0000000..49e7134
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionConcatContentItem.java
@@ -0,0 +1,88 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionConcatContentItem.java,v 1.2 2005/12/22 22:21:19 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Value Function Concat Content Item</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Represents an XML value expression within an XMLCONCAT function.  See ISO SQL/XML sec. 6.11.  Contains a value expression which must resolve to an XML datatype.
+ * 
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionConcatContentItem#getValueFunctionConcat <em>Value Function Concat</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionConcatContentItem#getValueExpr <em>Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionConcatContentItem()
+ * @model
+ * @generated
+ */
+public interface XMLValueFunctionConcatContentItem extends QueryValueExpression{
+	/**
+     * Returns the value of the '<em><b>Value Function Concat</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionConcat#getConcatContentList <em>Concat Content List</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Function Concat</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Function Concat</em>' container reference.
+     * @see #setValueFunctionConcat(XMLValueFunctionConcat)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionConcatContentItem_ValueFunctionConcat()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionConcat#getConcatContentList
+     * @model opposite="concatContentList" required="true"
+     * @generated
+     */
+    XMLValueFunctionConcat getValueFunctionConcat();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionConcatContentItem#getValueFunctionConcat <em>Value Function Concat</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Function Concat</em>' container reference.
+     * @see #getValueFunctionConcat()
+     * @generated
+     */
+    void setValueFunctionConcat(XMLValueFunctionConcat value);
+
+	/**
+     * Returns the value of the '<em><b>Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Expr</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Expr</em>' containment reference.
+     * @see #setValueExpr(QueryValueExpression)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionConcatContentItem_ValueExpr()
+     * @model containment="true" required="true"
+     * @generated
+     */
+    QueryValueExpression getValueExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionConcatContentItem#getValueExpr <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Expr</em>' containment reference.
+     * @see #getValueExpr()
+     * @generated
+     */
+    void setValueExpr(QueryValueExpression value);
+
+} // XMLValueFunctionConcatContentItem
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionDocument.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionDocument.java
new file mode 100644
index 0000000..ac55ba1
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionDocument.java
@@ -0,0 +1,89 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionDocument.java,v 1.2 2005/12/22 22:21:18 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Value Function Document</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Generates an XML document node from an XML value expression.  See ISO SQL/XML sec. 6.12.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionDocument#getReturningOption <em>Returning Option</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionDocument#getDocumentContent <em>Document Content</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionDocument()
+ * @model
+ * @generated
+ */
+public interface XMLValueFunctionDocument extends XMLValueFunction{
+	/**
+     * Returns the value of the '<em><b>Returning Option</b></em>' attribute.
+     * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.xml.query.XMLReturningType}.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Returning Option</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Returning Option</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLReturningType
+     * @see #setReturningOption(XMLReturningType)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionDocument_ReturningOption()
+     * @model
+     * @generated
+     */
+    XMLReturningType getReturningOption();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionDocument#getReturningOption <em>Returning Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Returning Option</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLReturningType
+     * @see #getReturningOption()
+     * @generated
+     */
+    void setReturningOption(XMLReturningType value);
+
+	/**
+     * Returns the value of the '<em><b>Document Content</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionDocumentContent#getValueFunctionDocument <em>Value Function Document</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Document Content</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Document Content</em>' containment reference.
+     * @see #setDocumentContent(XMLValueFunctionDocumentContent)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionDocument_DocumentContent()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionDocumentContent#getValueFunctionDocument
+     * @model opposite="valueFunctionDocument" containment="true" required="true"
+     * @generated
+     */
+    XMLValueFunctionDocumentContent getDocumentContent();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionDocument#getDocumentContent <em>Document Content</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Document Content</em>' containment reference.
+     * @see #getDocumentContent()
+     * @generated
+     */
+    void setDocumentContent(XMLValueFunctionDocumentContent value);
+
+} // XMLValueFunctionDocument
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionDocumentContent.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionDocumentContent.java
new file mode 100644
index 0000000..6893f55
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionDocumentContent.java
@@ -0,0 +1,88 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionDocumentContent.java,v 1.2 2005/12/22 22:21:19 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Value Function Document Content</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Represents an <XML value expression> within an <XML document> function.  See ISO SQL/XML sec. 6.12.  The value expression contained by this element must resolve to an XML datatype.
+ * 
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionDocumentContent#getValueFunctionDocument <em>Value Function Document</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionDocumentContent#getValueExpr <em>Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionDocumentContent()
+ * @model
+ * @generated
+ */
+public interface XMLValueFunctionDocumentContent extends QueryValueExpression{
+	/**
+     * Returns the value of the '<em><b>Value Function Document</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionDocument#getDocumentContent <em>Document Content</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Function Document</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Function Document</em>' container reference.
+     * @see #setValueFunctionDocument(XMLValueFunctionDocument)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionDocumentContent_ValueFunctionDocument()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionDocument#getDocumentContent
+     * @model opposite="documentContent" required="true"
+     * @generated
+     */
+    XMLValueFunctionDocument getValueFunctionDocument();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionDocumentContent#getValueFunctionDocument <em>Value Function Document</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Function Document</em>' container reference.
+     * @see #getValueFunctionDocument()
+     * @generated
+     */
+    void setValueFunctionDocument(XMLValueFunctionDocument value);
+
+	/**
+     * Returns the value of the '<em><b>Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Expr</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Expr</em>' containment reference.
+     * @see #setValueExpr(QueryValueExpression)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionDocumentContent_ValueExpr()
+     * @model containment="true" required="true"
+     * @generated
+     */
+    QueryValueExpression getValueExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionDocumentContent#getValueExpr <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Expr</em>' containment reference.
+     * @see #getValueExpr()
+     * @generated
+     */
+    void setValueExpr(QueryValueExpression value);
+
+} // XMLValueFunctionDocumentContent
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionElement.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionElement.java
new file mode 100644
index 0000000..ac6f616
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionElement.java
@@ -0,0 +1,174 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionElement.java,v 1.2 2005/12/22 22:21:18 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Value Function Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Generates an XML element with a given element name, list of XML attributes, and list of content values.  See ISO SQL/XML sec. 6.13.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElement#getElementName <em>Element Name</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElement#getReturningOption <em>Returning Option</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElement#getNamespacesDecl <em>Namespaces Decl</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElement#getAttributesDecl <em>Attributes Decl</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElement#getElementContentList <em>Element Content List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionElement()
+ * @model
+ * @generated
+ */
+public interface XMLValueFunctionElement extends XMLValueFunction{
+	/**
+     * Returns the value of the '<em><b>Element Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Element Name</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Element Name</em>' attribute.
+     * @see #setElementName(String)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionElement_ElementName()
+     * @model
+     * @generated
+     */
+    String getElementName();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElement#getElementName <em>Element Name</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Element Name</em>' attribute.
+     * @see #getElementName()
+     * @generated
+     */
+    void setElementName(String value);
+
+	/**
+     * Returns the value of the '<em><b>Returning Option</b></em>' attribute.
+     * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.xml.query.XMLReturningType}.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Returning Option</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Returning Option</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLReturningType
+     * @see #setReturningOption(XMLReturningType)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionElement_ReturningOption()
+     * @model
+     * @generated
+     */
+    XMLReturningType getReturningOption();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElement#getReturningOption <em>Returning Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Returning Option</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLReturningType
+     * @see #getReturningOption()
+     * @generated
+     */
+    void setReturningOption(XMLReturningType value);
+
+	/**
+     * Returns the value of the '<em><b>Namespaces Decl</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespacesDeclaration#getValueFunctionElement <em>Value Function Element</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Namespaces Decl</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Namespaces Decl</em>' containment reference.
+     * @see #setNamespacesDecl(XMLNamespacesDeclaration)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionElement_NamespacesDecl()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespacesDeclaration#getValueFunctionElement
+     * @model opposite="valueFunctionElement" containment="true"
+     * @generated
+     */
+    XMLNamespacesDeclaration getNamespacesDecl();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElement#getNamespacesDecl <em>Namespaces Decl</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Namespaces Decl</em>' containment reference.
+     * @see #getNamespacesDecl()
+     * @generated
+     */
+    void setNamespacesDecl(XMLNamespacesDeclaration value);
+
+	/**
+     * Returns the value of the '<em><b>Attributes Decl</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLAttributesDeclaration#getValueFunctionElement <em>Value Function Element</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Attributes Decl</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Attributes Decl</em>' containment reference.
+     * @see #setAttributesDecl(XMLAttributesDeclaration)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionElement_AttributesDecl()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLAttributesDeclaration#getValueFunctionElement
+     * @model opposite="valueFunctionElement" containment="true"
+     * @generated
+     */
+    XMLAttributesDeclaration getAttributesDecl();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElement#getAttributesDecl <em>Attributes Decl</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Attributes Decl</em>' containment reference.
+     * @see #getAttributesDecl()
+     * @generated
+     */
+    void setAttributesDecl(XMLAttributesDeclaration value);
+
+	/**
+     * Returns the value of the '<em><b>Element Content List</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElementContentList#getValueFunctionElement <em>Value Function Element</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Element Content List</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Element Content List</em>' containment reference.
+     * @see #setElementContentList(XMLValueFunctionElementContentList)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionElement_ElementContentList()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElementContentList#getValueFunctionElement
+     * @model opposite="valueFunctionElement" containment="true"
+     * @generated
+     */
+    XMLValueFunctionElementContentList getElementContentList();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElement#getElementContentList <em>Element Content List</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Element Content List</em>' containment reference.
+     * @see #getElementContentList()
+     * @generated
+     */
+    void setElementContentList(XMLValueFunctionElementContentList value);
+
+} // XMLValueFunctionElement
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionElementContentItem.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionElementContentItem.java
new file mode 100644
index 0000000..fa3de99
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionElementContentItem.java
@@ -0,0 +1,83 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionElementContentItem.java,v 1.2 2005/12/22 22:21:18 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Value Function Element Content Item</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElementContentItem#getValueExpr <em>Value Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElementContentItem#getElementContentList <em>Element Content List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionElementContentItem()
+ * @model
+ * @generated
+ */
+public interface XMLValueFunctionElementContentItem extends QueryValueExpression{
+	/**
+     * Returns the value of the '<em><b>Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Expr</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Expr</em>' containment reference.
+     * @see #setValueExpr(QueryValueExpression)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionElementContentItem_ValueExpr()
+     * @model containment="true" required="true"
+     * @generated
+     */
+    QueryValueExpression getValueExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElementContentItem#getValueExpr <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Expr</em>' containment reference.
+     * @see #getValueExpr()
+     * @generated
+     */
+    void setValueExpr(QueryValueExpression value);
+
+	/**
+     * Returns the value of the '<em><b>Element Content List</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElementContentList#getElementContentListChildren <em>Element Content List Children</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Element Content List</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Element Content List</em>' container reference.
+     * @see #setElementContentList(XMLValueFunctionElementContentList)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionElementContentItem_ElementContentList()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElementContentList#getElementContentListChildren
+     * @model opposite="elementContentListChildren" required="true"
+     * @generated
+     */
+    XMLValueFunctionElementContentList getElementContentList();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElementContentItem#getElementContentList <em>Element Content List</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Element Content List</em>' container reference.
+     * @see #getElementContentList()
+     * @generated
+     */
+    void setElementContentList(XMLValueFunctionElementContentList value);
+
+} // XMLValueFunctionElementContentItem
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionElementContentList.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionElementContentList.java
new file mode 100644
index 0000000..395105b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionElementContentList.java
@@ -0,0 +1,107 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionElementContentList.java,v 1.2 2005/12/22 22:21:19 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryObject;
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Value Function Element Content List</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElementContentList#getNullHandlingOption <em>Null Handling Option</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElementContentList#getValueFunctionElement <em>Value Function Element</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElementContentList#getElementContentListChildren <em>Element Content List Children</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionElementContentList()
+ * @model
+ * @generated
+ */
+public interface XMLValueFunctionElementContentList extends SQLQueryObject{
+	/**
+     * Returns the value of the '<em><b>Null Handling Option</b></em>' attribute.
+     * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.xml.query.XMLNullHandlingType}.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Null Handling Option</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Null Handling Option</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLNullHandlingType
+     * @see #setNullHandlingOption(XMLNullHandlingType)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionElementContentList_NullHandlingOption()
+     * @model
+     * @generated
+     */
+    XMLNullHandlingType getNullHandlingOption();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElementContentList#getNullHandlingOption <em>Null Handling Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Null Handling Option</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLNullHandlingType
+     * @see #getNullHandlingOption()
+     * @generated
+     */
+    void setNullHandlingOption(XMLNullHandlingType value);
+
+	/**
+     * Returns the value of the '<em><b>Value Function Element</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElement#getElementContentList <em>Element Content List</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Function Element</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Function Element</em>' container reference.
+     * @see #setValueFunctionElement(XMLValueFunctionElement)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionElementContentList_ValueFunctionElement()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElement#getElementContentList
+     * @model opposite="elementContentList" required="true"
+     * @generated
+     */
+    XMLValueFunctionElement getValueFunctionElement();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElementContentList#getValueFunctionElement <em>Value Function Element</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Function Element</em>' container reference.
+     * @see #getValueFunctionElement()
+     * @generated
+     */
+    void setValueFunctionElement(XMLValueFunctionElement value);
+
+	/**
+     * Returns the value of the '<em><b>Element Content List Children</b></em>' containment reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElementContentItem}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElementContentItem#getElementContentList <em>Element Content List</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Element Content List Children</em>' containment reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Element Content List Children</em>' containment reference list.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionElementContentList_ElementContentListChildren()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElementContentItem#getElementContentList
+     * @model type="org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElementContentItem" opposite="elementContentList" containment="true"
+     * @generated
+     */
+    EList getElementContentListChildren();
+
+} // XMLValueFunctionElementContentList
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionForest.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionForest.java
new file mode 100644
index 0000000..da36650
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionForest.java
@@ -0,0 +1,139 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionForest.java,v 1.2 2005/12/22 22:21:18 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Value Function Forest</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Generates an XML value containing a sequence of XML elements.  See ISO SQL/XML sec. 6.14.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForest#getNullHandlingOption <em>Null Handling Option</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForest#getReturningOption <em>Returning Option</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForest#getForestContentList <em>Forest Content List</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForest#getNamespacesDecl <em>Namespaces Decl</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionForest()
+ * @model
+ * @generated
+ */
+public interface XMLValueFunctionForest extends XMLValueFunction{
+	/**
+     * Returns the value of the '<em><b>Null Handling Option</b></em>' attribute.
+     * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.xml.query.XMLNullHandlingType}.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Null Handling Option</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Null Handling Option</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLNullHandlingType
+     * @see #setNullHandlingOption(XMLNullHandlingType)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionForest_NullHandlingOption()
+     * @model
+     * @generated
+     */
+    XMLNullHandlingType getNullHandlingOption();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForest#getNullHandlingOption <em>Null Handling Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Null Handling Option</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLNullHandlingType
+     * @see #getNullHandlingOption()
+     * @generated
+     */
+    void setNullHandlingOption(XMLNullHandlingType value);
+
+	/**
+     * Returns the value of the '<em><b>Returning Option</b></em>' attribute.
+     * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.xml.query.XMLReturningType}.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Returning Option</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Returning Option</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLReturningType
+     * @see #setReturningOption(XMLReturningType)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionForest_ReturningOption()
+     * @model
+     * @generated
+     */
+    XMLReturningType getReturningOption();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForest#getReturningOption <em>Returning Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Returning Option</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLReturningType
+     * @see #getReturningOption()
+     * @generated
+     */
+    void setReturningOption(XMLReturningType value);
+
+	/**
+     * Returns the value of the '<em><b>Forest Content List</b></em>' containment reference list.
+     * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForestContentItem}.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForestContentItem#getValueFunctionForest <em>Value Function Forest</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Forest Content List</em>' containment reference list isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Forest Content List</em>' containment reference list.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionForest_ForestContentList()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForestContentItem#getValueFunctionForest
+     * @model type="org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForestContentItem" opposite="valueFunctionForest" containment="true"
+     * @generated
+     */
+    EList getForestContentList();
+
+	/**
+     * Returns the value of the '<em><b>Namespaces Decl</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespacesDeclaration#getValueFunctionForest <em>Value Function Forest</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Namespaces Decl</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Namespaces Decl</em>' containment reference.
+     * @see #setNamespacesDecl(XMLNamespacesDeclaration)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionForest_NamespacesDecl()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespacesDeclaration#getValueFunctionForest
+     * @model opposite="valueFunctionForest" containment="true"
+     * @generated
+     */
+    XMLNamespacesDeclaration getNamespacesDecl();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForest#getNamespacesDecl <em>Namespaces Decl</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Namespaces Decl</em>' containment reference.
+     * @see #getNamespacesDecl()
+     * @generated
+     */
+    void setNamespacesDecl(XMLNamespacesDeclaration value);
+
+} // XMLValueFunctionForest
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionForestContentItem.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionForestContentItem.java
new file mode 100644
index 0000000..579579d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionForestContentItem.java
@@ -0,0 +1,83 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionForestContentItem.java,v 1.2 2005/12/22 22:21:18 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Value Function Forest Content Item</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForestContentItem#getValueFunctionForest <em>Value Function Forest</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForestContentItem#getValueExpr <em>Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionForestContentItem()
+ * @model
+ * @generated
+ */
+public interface XMLValueFunctionForestContentItem extends QueryValueExpression{
+	/**
+     * Returns the value of the '<em><b>Value Function Forest</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForest#getForestContentList <em>Forest Content List</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Function Forest</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Function Forest</em>' container reference.
+     * @see #setValueFunctionForest(XMLValueFunctionForest)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionForestContentItem_ValueFunctionForest()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForest#getForestContentList
+     * @model opposite="forestContentList" required="true"
+     * @generated
+     */
+    XMLValueFunctionForest getValueFunctionForest();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForestContentItem#getValueFunctionForest <em>Value Function Forest</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Function Forest</em>' container reference.
+     * @see #getValueFunctionForest()
+     * @generated
+     */
+    void setValueFunctionForest(XMLValueFunctionForest value);
+
+	/**
+     * Returns the value of the '<em><b>Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Expr</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Expr</em>' containment reference.
+     * @see #setValueExpr(QueryValueExpression)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionForestContentItem_ValueExpr()
+     * @model containment="true" required="true"
+     * @generated
+     */
+    QueryValueExpression getValueExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForestContentItem#getValueExpr <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Expr</em>' containment reference.
+     * @see #getValueExpr()
+     * @generated
+     */
+    void setValueExpr(QueryValueExpression value);
+
+} // XMLValueFunctionForestContentItem
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionPI.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionPI.java
new file mode 100644
index 0000000..f1824fb
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionPI.java
@@ -0,0 +1,116 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionPI.java,v 1.2 2005/12/22 22:21:18 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Value Function PI</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Generates an XML value consisting of an XML processing instruction based on the given string expression.  See ISO SQL/XML sec. 6.16.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionPI#getTargetName <em>Target Name</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionPI#getReturningOption <em>Returning Option</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionPI#getPIContent <em>PI Content</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionPI()
+ * @model
+ * @generated
+ */
+public interface XMLValueFunctionPI extends XMLValueFunction{
+	/**
+     * Returns the value of the '<em><b>Target Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Target Name</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Target Name</em>' attribute.
+     * @see #setTargetName(String)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionPI_TargetName()
+     * @model
+     * @generated
+     */
+    String getTargetName();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionPI#getTargetName <em>Target Name</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Target Name</em>' attribute.
+     * @see #getTargetName()
+     * @generated
+     */
+    void setTargetName(String value);
+
+	/**
+     * Returns the value of the '<em><b>Returning Option</b></em>' attribute.
+     * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.xml.query.XMLReturningType}.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Returning Option</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Returning Option</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLReturningType
+     * @see #setReturningOption(XMLReturningType)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionPI_ReturningOption()
+     * @model
+     * @generated
+     */
+    XMLReturningType getReturningOption();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionPI#getReturningOption <em>Returning Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Returning Option</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLReturningType
+     * @see #getReturningOption()
+     * @generated
+     */
+    void setReturningOption(XMLReturningType value);
+
+	/**
+     * Returns the value of the '<em><b>PI Content</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionPIContent#getValueFunctionPI <em>Value Function PI</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>PI Content</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>PI Content</em>' containment reference.
+     * @see #setPIContent(XMLValueFunctionPIContent)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionPI_PIContent()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionPIContent#getValueFunctionPI
+     * @model opposite="valueFunctionPI" containment="true"
+     * @generated
+     */
+    XMLValueFunctionPIContent getPIContent();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionPI#getPIContent <em>PI Content</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>PI Content</em>' containment reference.
+     * @see #getPIContent()
+     * @generated
+     */
+    void setPIContent(XMLValueFunctionPIContent value);
+
+} // XMLValueFunctionPI
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionPIContent.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionPIContent.java
new file mode 100644
index 0000000..60eb8b2
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionPIContent.java
@@ -0,0 +1,83 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionPIContent.java,v 1.2 2005/12/22 22:21:18 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Value Function PI Content</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionPIContent#getValueFunctionPI <em>Value Function PI</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionPIContent#getValueExpr <em>Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionPIContent()
+ * @model
+ * @generated
+ */
+public interface XMLValueFunctionPIContent extends QueryValueExpression{
+	/**
+     * Returns the value of the '<em><b>Value Function PI</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionPI#getPIContent <em>PI Content</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Function PI</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Function PI</em>' container reference.
+     * @see #setValueFunctionPI(XMLValueFunctionPI)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionPIContent_ValueFunctionPI()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionPI#getPIContent
+     * @model opposite="PIContent" required="true"
+     * @generated
+     */
+    XMLValueFunctionPI getValueFunctionPI();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionPIContent#getValueFunctionPI <em>Value Function PI</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Function PI</em>' container reference.
+     * @see #getValueFunctionPI()
+     * @generated
+     */
+    void setValueFunctionPI(XMLValueFunctionPI value);
+
+	/**
+     * Returns the value of the '<em><b>Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Expr</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Expr</em>' containment reference.
+     * @see #setValueExpr(QueryValueExpression)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionPIContent_ValueExpr()
+     * @model containment="true" required="true"
+     * @generated
+     */
+    QueryValueExpression getValueExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionPIContent#getValueExpr <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Expr</em>' containment reference.
+     * @see #getValueExpr()
+     * @generated
+     */
+    void setValueExpr(QueryValueExpression value);
+
+} // XMLValueFunctionPIContent
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionParse.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionParse.java
new file mode 100644
index 0000000..da80b57
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionParse.java
@@ -0,0 +1,119 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionParse.java,v 1.2 2005/12/22 22:21:18 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Value Function Parse</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Generates an XML value by performing a non-validating parse of a given string expression.  See ISO SQL/XML sec. 6.15.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionParse#getContentOption <em>Content Option</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionParse#getWhitespaceHandlingOption <em>Whitespace Handling Option</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionParse#getParseContent <em>Parse Content</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionParse()
+ * @model
+ * @generated
+ */
+public interface XMLValueFunctionParse extends XMLValueFunction{
+	/**
+     * Returns the value of the '<em><b>Content Option</b></em>' attribute.
+     * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.xml.query.XMLContentType}.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Content Option</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Content Option</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLContentType
+     * @see #setContentOption(XMLContentType)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionParse_ContentOption()
+     * @model
+     * @generated
+     */
+    XMLContentType getContentOption();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionParse#getContentOption <em>Content Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Content Option</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLContentType
+     * @see #getContentOption()
+     * @generated
+     */
+    void setContentOption(XMLContentType value);
+
+	/**
+     * Returns the value of the '<em><b>Whitespace Handling Option</b></em>' attribute.
+     * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.xml.query.XMLWhitespaceHandlingType}.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Whitespace Handling Option</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Whitespace Handling Option</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLWhitespaceHandlingType
+     * @see #setWhitespaceHandlingOption(XMLWhitespaceHandlingType)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionParse_WhitespaceHandlingOption()
+     * @model
+     * @generated
+     */
+    XMLWhitespaceHandlingType getWhitespaceHandlingOption();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionParse#getWhitespaceHandlingOption <em>Whitespace Handling Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Whitespace Handling Option</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLWhitespaceHandlingType
+     * @see #getWhitespaceHandlingOption()
+     * @generated
+     */
+    void setWhitespaceHandlingOption(XMLWhitespaceHandlingType value);
+
+	/**
+     * Returns the value of the '<em><b>Parse Content</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionParseContent#getValueFunctionParse <em>Value Function Parse</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Parse Content</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Parse Content</em>' containment reference.
+     * @see #setParseContent(XMLValueFunctionParseContent)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionParse_ParseContent()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionParseContent#getValueFunctionParse
+     * @model opposite="valueFunctionParse" containment="true" required="true"
+     * @generated
+     */
+    XMLValueFunctionParseContent getParseContent();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionParse#getParseContent <em>Parse Content</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Parse Content</em>' containment reference.
+     * @see #getParseContent()
+     * @generated
+     */
+    void setParseContent(XMLValueFunctionParseContent value);
+
+} // XMLValueFunctionParse
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionParseContent.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionParseContent.java
new file mode 100644
index 0000000..a45daf8
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionParseContent.java
@@ -0,0 +1,83 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionParseContent.java,v 1.2 2005/12/22 22:21:19 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Value Function Parse Content</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionParseContent#getValueFunctionParse <em>Value Function Parse</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionParseContent#getValueExpr <em>Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionParseContent()
+ * @model
+ * @generated
+ */
+public interface XMLValueFunctionParseContent extends QueryValueExpression{
+	/**
+     * Returns the value of the '<em><b>Value Function Parse</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionParse#getParseContent <em>Parse Content</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Function Parse</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Function Parse</em>' container reference.
+     * @see #setValueFunctionParse(XMLValueFunctionParse)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionParseContent_ValueFunctionParse()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionParse#getParseContent
+     * @model opposite="parseContent" required="true"
+     * @generated
+     */
+    XMLValueFunctionParse getValueFunctionParse();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionParseContent#getValueFunctionParse <em>Value Function Parse</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Function Parse</em>' container reference.
+     * @see #getValueFunctionParse()
+     * @generated
+     */
+    void setValueFunctionParse(XMLValueFunctionParse value);
+
+	/**
+     * Returns the value of the '<em><b>Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Expr</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Expr</em>' containment reference.
+     * @see #setValueExpr(QueryValueExpression)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionParseContent_ValueExpr()
+     * @model containment="true" required="true"
+     * @generated
+     */
+    QueryValueExpression getValueExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionParseContent#getValueExpr <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Expr</em>' containment reference.
+     * @see #getValueExpr()
+     * @generated
+     */
+    void setValueExpr(QueryValueExpression value);
+
+} // XMLValueFunctionParseContent
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionQuery.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionQuery.java
new file mode 100644
index 0000000..bf0e817
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionQuery.java
@@ -0,0 +1,147 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionQuery.java,v 1.2 2005/12/22 22:21:19 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Value Function Query</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Generates an XML value as the result of evaluating a given XQuery expression.  See ISO SQL/XML sec. 6.17.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQuery#getEmptyHandlingOption <em>Empty Handling Option</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQuery#getXqueryExpr <em>Xquery Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQuery#getXqueryArgList <em>Xquery Arg List</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQuery#getQueryReturning <em>Query Returning</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionQuery()
+ * @model
+ * @generated
+ */
+public interface XMLValueFunctionQuery extends XMLValueFunction{
+	/**
+     * Returns the value of the '<em><b>Empty Handling Option</b></em>' attribute.
+     * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.xml.query.XMLEmptyHandlingType}.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Empty Handling Option</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Empty Handling Option</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLEmptyHandlingType
+     * @see #setEmptyHandlingOption(XMLEmptyHandlingType)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionQuery_EmptyHandlingOption()
+     * @model
+     * @generated
+     */
+    XMLEmptyHandlingType getEmptyHandlingOption();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQuery#getEmptyHandlingOption <em>Empty Handling Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Empty Handling Option</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLEmptyHandlingType
+     * @see #getEmptyHandlingOption()
+     * @generated
+     */
+    void setEmptyHandlingOption(XMLEmptyHandlingType value);
+
+	/**
+     * Returns the value of the '<em><b>Xquery Expr</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryExpression#getValueFunctionQuery <em>Value Function Query</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Xquery Expr</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Xquery Expr</em>' containment reference.
+     * @see #setXqueryExpr(XMLQueryExpression)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionQuery_XqueryExpr()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryExpression#getValueFunctionQuery
+     * @model opposite="valueFunctionQuery" containment="true" required="true"
+     * @generated
+     */
+    XMLQueryExpression getXqueryExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQuery#getXqueryExpr <em>Xquery Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Xquery Expr</em>' containment reference.
+     * @see #getXqueryExpr()
+     * @generated
+     */
+    void setXqueryExpr(XMLQueryExpression value);
+
+	/**
+     * Returns the value of the '<em><b>Xquery Arg List</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentList#getValueFunctionQuery <em>Value Function Query</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Xquery Arg List</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Xquery Arg List</em>' containment reference.
+     * @see #setXqueryArgList(XMLQueryArgumentList)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionQuery_XqueryArgList()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentList#getValueFunctionQuery
+     * @model opposite="valueFunctionQuery" containment="true"
+     * @generated
+     */
+    XMLQueryArgumentList getXqueryArgList();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQuery#getXqueryArgList <em>Xquery Arg List</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Xquery Arg List</em>' containment reference.
+     * @see #getXqueryArgList()
+     * @generated
+     */
+    void setXqueryArgList(XMLQueryArgumentList value);
+
+	/**
+     * Returns the value of the '<em><b>Query Returning</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQueryReturning#getValueFunctionQuery <em>Value Function Query</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Query Returning</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Query Returning</em>' containment reference.
+     * @see #setQueryReturning(XMLValueFunctionQueryReturning)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionQuery_QueryReturning()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQueryReturning#getValueFunctionQuery
+     * @model opposite="valueFunctionQuery" containment="true"
+     * @generated
+     */
+    XMLValueFunctionQueryReturning getQueryReturning();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQuery#getQueryReturning <em>Query Returning</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Query Returning</em>' containment reference.
+     * @see #getQueryReturning()
+     * @generated
+     */
+    void setQueryReturning(XMLValueFunctionQueryReturning value);
+
+} // XMLValueFunctionQuery
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionQueryReturning.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionQueryReturning.java
new file mode 100644
index 0000000..9bca0bc
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionQueryReturning.java
@@ -0,0 +1,116 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionQueryReturning.java,v 1.2 2005/12/22 22:21:18 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Value Function Query Returning</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQueryReturning#getReturningOption <em>Returning Option</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQueryReturning#getPassingOption <em>Passing Option</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQueryReturning#getValueFunctionQuery <em>Value Function Query</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionQueryReturning()
+ * @model
+ * @generated
+ */
+public interface XMLValueFunctionQueryReturning extends SQLQueryObject{
+	/**
+     * Returns the value of the '<em><b>Returning Option</b></em>' attribute.
+     * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.xml.query.XMLReturningType}.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Returning Option</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Returning Option</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLReturningType
+     * @see #setReturningOption(XMLReturningType)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionQueryReturning_ReturningOption()
+     * @model
+     * @generated
+     */
+    XMLReturningType getReturningOption();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQueryReturning#getReturningOption <em>Returning Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Returning Option</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLReturningType
+     * @see #getReturningOption()
+     * @generated
+     */
+    void setReturningOption(XMLReturningType value);
+
+	/**
+     * Returns the value of the '<em><b>Passing Option</b></em>' attribute.
+     * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.xml.query.XMLPassingType}.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Passing Option</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Passing Option</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLPassingType
+     * @see #setPassingOption(XMLPassingType)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionQueryReturning_PassingOption()
+     * @model
+     * @generated
+     */
+    XMLPassingType getPassingOption();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQueryReturning#getPassingOption <em>Passing Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Passing Option</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLPassingType
+     * @see #getPassingOption()
+     * @generated
+     */
+    void setPassingOption(XMLPassingType value);
+
+	/**
+     * Returns the value of the '<em><b>Value Function Query</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQuery#getQueryReturning <em>Query Returning</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Function Query</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Function Query</em>' container reference.
+     * @see #setValueFunctionQuery(XMLValueFunctionQuery)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionQueryReturning_ValueFunctionQuery()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQuery#getQueryReturning
+     * @model opposite="queryReturning" required="true"
+     * @generated
+     */
+    XMLValueFunctionQuery getValueFunctionQuery();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQueryReturning#getValueFunctionQuery <em>Value Function Query</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Function Query</em>' container reference.
+     * @see #getValueFunctionQuery()
+     * @generated
+     */
+    void setValueFunctionQuery(XMLValueFunctionQuery value);
+
+} // XMLValueFunctionQueryReturning
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionText.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionText.java
new file mode 100644
index 0000000..916076e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionText.java
@@ -0,0 +1,89 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionText.java,v 1.2 2005/12/22 22:21:19 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Value Function Text</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Generates an XML value consisting of a XML text element from a given string expression.  See ISO SQL/XML sec. 6.18.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionText#getReturningOption <em>Returning Option</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionText#getTextContent <em>Text Content</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionText()
+ * @model
+ * @generated
+ */
+public interface XMLValueFunctionText extends XMLValueFunction{
+	/**
+     * Returns the value of the '<em><b>Returning Option</b></em>' attribute.
+     * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.xml.query.XMLReturningType}.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Returning Option</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Returning Option</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLReturningType
+     * @see #setReturningOption(XMLReturningType)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionText_ReturningOption()
+     * @model
+     * @generated
+     */
+    XMLReturningType getReturningOption();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionText#getReturningOption <em>Returning Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Returning Option</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLReturningType
+     * @see #getReturningOption()
+     * @generated
+     */
+    void setReturningOption(XMLReturningType value);
+
+	/**
+     * Returns the value of the '<em><b>Text Content</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionTextContent#getValueFunctionText <em>Value Function Text</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Text Content</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Text Content</em>' containment reference.
+     * @see #setTextContent(XMLValueFunctionTextContent)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionText_TextContent()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionTextContent#getValueFunctionText
+     * @model opposite="valueFunctionText" containment="true" required="true"
+     * @generated
+     */
+    XMLValueFunctionTextContent getTextContent();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionText#getTextContent <em>Text Content</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Text Content</em>' containment reference.
+     * @see #getTextContent()
+     * @generated
+     */
+    void setTextContent(XMLValueFunctionTextContent value);
+
+} // XMLValueFunctionText
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionTextContent.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionTextContent.java
new file mode 100644
index 0000000..7750c7d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionTextContent.java
@@ -0,0 +1,83 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionTextContent.java,v 1.2 2005/12/22 22:21:19 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Value Function Text Content</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionTextContent#getValueFunctionText <em>Value Function Text</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionTextContent#getValueExpr <em>Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionTextContent()
+ * @model
+ * @generated
+ */
+public interface XMLValueFunctionTextContent extends QueryValueExpression{
+	/**
+     * Returns the value of the '<em><b>Value Function Text</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionText#getTextContent <em>Text Content</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Function Text</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Function Text</em>' container reference.
+     * @see #setValueFunctionText(XMLValueFunctionText)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionTextContent_ValueFunctionText()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionText#getTextContent
+     * @model opposite="textContent" required="true"
+     * @generated
+     */
+    XMLValueFunctionText getValueFunctionText();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionTextContent#getValueFunctionText <em>Value Function Text</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Function Text</em>' container reference.
+     * @see #getValueFunctionText()
+     * @generated
+     */
+    void setValueFunctionText(XMLValueFunctionText value);
+
+	/**
+     * Returns the value of the '<em><b>Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Expr</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Expr</em>' containment reference.
+     * @see #setValueExpr(QueryValueExpression)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionTextContent_ValueExpr()
+     * @model containment="true" required="true"
+     * @generated
+     */
+    QueryValueExpression getValueExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionTextContent#getValueExpr <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Expr</em>' containment reference.
+     * @see #getValueExpr()
+     * @generated
+     */
+    void setValueExpr(QueryValueExpression value);
+
+} // XMLValueFunctionTextContent
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionValidate.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionValidate.java
new file mode 100644
index 0000000..e0f65ff
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionValidate.java
@@ -0,0 +1,118 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionValidate.java,v 1.2 2005/12/22 22:21:18 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Value Function Validate</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Generates an XML value by performing a parse of an XML  expression according to a given XML schema.  See ISO SQL/XML sec. 6.19.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidate#getContentOption <em>Content Option</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidate#getValidateContent <em>Validate Content</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidate#getValidateAccordingTo <em>Validate According To</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionValidate()
+ * @model
+ * @generated
+ */
+public interface XMLValueFunctionValidate extends XMLValueFunction{
+	/**
+     * Returns the value of the '<em><b>Content Option</b></em>' attribute.
+     * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.xml.query.XMLContentType2}.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Content Option</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Content Option</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLContentType2
+     * @see #setContentOption(XMLContentType2)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionValidate_ContentOption()
+     * @model
+     * @generated
+     */
+    XMLContentType2 getContentOption();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidate#getContentOption <em>Content Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Content Option</em>' attribute.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLContentType2
+     * @see #getContentOption()
+     * @generated
+     */
+    void setContentOption(XMLContentType2 value);
+
+	/**
+     * Returns the value of the '<em><b>Validate Content</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateContent#getValueFunctionValidate <em>Value Function Validate</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Validate Content</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Validate Content</em>' containment reference.
+     * @see #setValidateContent(XMLValueFunctionValidateContent)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionValidate_ValidateContent()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateContent#getValueFunctionValidate
+     * @model opposite="valueFunctionValidate" containment="true" required="true"
+     * @generated
+     */
+    XMLValueFunctionValidateContent getValidateContent();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidate#getValidateContent <em>Validate Content</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Validate Content</em>' containment reference.
+     * @see #getValidateContent()
+     * @generated
+     */
+    void setValidateContent(XMLValueFunctionValidateContent value);
+
+	/**
+     * Returns the value of the '<em><b>Validate According To</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingTo#getValueFunctionValidate <em>Value Function Validate</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Validate According To</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Validate According To</em>' containment reference.
+     * @see #setValidateAccordingTo(XMLValueFunctionValidateAccordingTo)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionValidate_ValidateAccordingTo()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingTo#getValueFunctionValidate
+     * @model opposite="valueFunctionValidate" containment="true"
+     * @generated
+     */
+    XMLValueFunctionValidateAccordingTo getValidateAccordingTo();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidate#getValidateAccordingTo <em>Validate According To</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Validate According To</em>' containment reference.
+     * @see #getValidateAccordingTo()
+     * @generated
+     */
+    void setValidateAccordingTo(XMLValueFunctionValidateAccordingTo value);
+
+} // XMLValueFunctionValidate
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionValidateAccordingTo.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionValidateAccordingTo.java
new file mode 100644
index 0000000..231e8a6
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionValidateAccordingTo.java
@@ -0,0 +1,85 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionValidateAccordingTo.java,v 1.2 2005/12/22 22:21:18 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Value Function Validate According To</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingTo#getValueFunctionValidate <em>Value Function Validate</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingTo#getValidateElement <em>Validate Element</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionValidateAccordingTo()
+ * @model
+ * @generated
+ */
+public interface XMLValueFunctionValidateAccordingTo extends SQLQueryObject{
+	/**
+     * Returns the value of the '<em><b>Value Function Validate</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidate#getValidateAccordingTo <em>Validate According To</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Function Validate</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Function Validate</em>' container reference.
+     * @see #setValueFunctionValidate(XMLValueFunctionValidate)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionValidateAccordingTo_ValueFunctionValidate()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidate#getValidateAccordingTo
+     * @model opposite="validateAccordingTo" required="true"
+     * @generated
+     */
+    XMLValueFunctionValidate getValueFunctionValidate();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingTo#getValueFunctionValidate <em>Value Function Validate</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Function Validate</em>' container reference.
+     * @see #getValueFunctionValidate()
+     * @generated
+     */
+    void setValueFunctionValidate(XMLValueFunctionValidate value);
+
+	/**
+     * Returns the value of the '<em><b>Validate Element</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElement#getValidateAccordingTo <em>Validate According To</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Validate Element</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Validate Element</em>' containment reference.
+     * @see #setValidateElement(XMLValueFunctionValidateElement)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionValidateAccordingTo_ValidateElement()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElement#getValidateAccordingTo
+     * @model opposite="validateAccordingTo" containment="true"
+     * @generated
+     */
+    XMLValueFunctionValidateElement getValidateElement();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingTo#getValidateElement <em>Validate Element</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Validate Element</em>' containment reference.
+     * @see #getValidateElement()
+     * @generated
+     */
+    void setValidateElement(XMLValueFunctionValidateElement value);
+
+} // XMLValueFunctionValidateAccordingTo
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionValidateAccordingToIdentifier.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionValidateAccordingToIdentifier.java
new file mode 100644
index 0000000..caf585c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionValidateAccordingToIdentifier.java
@@ -0,0 +1,80 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionValidateAccordingToIdentifier.java,v 1.2 2005/12/22 22:21:18 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Value Function Validate According To Identifier</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingToIdentifier#getSchemaName <em>Schema Name</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingToIdentifier#getRegisteredXMLSchemaName <em>Registered XML Schema Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionValidateAccordingToIdentifier()
+ * @model
+ * @generated
+ */
+public interface XMLValueFunctionValidateAccordingToIdentifier extends XMLValueFunctionValidateAccordingTo{
+	/**
+     * Returns the value of the '<em><b>Schema Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Schema Name</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Schema Name</em>' attribute.
+     * @see #setSchemaName(String)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionValidateAccordingToIdentifier_SchemaName()
+     * @model
+     * @generated
+     */
+    String getSchemaName();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingToIdentifier#getSchemaName <em>Schema Name</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Schema Name</em>' attribute.
+     * @see #getSchemaName()
+     * @generated
+     */
+    void setSchemaName(String value);
+
+	/**
+     * Returns the value of the '<em><b>Registered XML Schema Name</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Registered XML Schema Name</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Registered XML Schema Name</em>' attribute.
+     * @see #setRegisteredXMLSchemaName(String)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionValidateAccordingToIdentifier_RegisteredXMLSchemaName()
+     * @model
+     * @generated
+     */
+    String getRegisteredXMLSchemaName();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingToIdentifier#getRegisteredXMLSchemaName <em>Registered XML Schema Name</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Registered XML Schema Name</em>' attribute.
+     * @see #getRegisteredXMLSchemaName()
+     * @generated
+     */
+    void setRegisteredXMLSchemaName(String value);
+
+} // XMLValueFunctionValidateAccordingToIdentifier
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionValidateAccordingToURI.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionValidateAccordingToURI.java
new file mode 100644
index 0000000..12a3c91
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionValidateAccordingToURI.java
@@ -0,0 +1,108 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionValidateAccordingToURI.java,v 1.2 2005/12/22 22:21:19 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Value Function Validate According To URI</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingToURI#isNoNamespace <em>No Namespace</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingToURI#getTargetNamespaceURI <em>Target Namespace URI</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingToURI#getSchemaLocationURI <em>Schema Location URI</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionValidateAccordingToURI()
+ * @model
+ * @generated
+ */
+public interface XMLValueFunctionValidateAccordingToURI extends XMLValueFunctionValidateAccordingTo{
+	/**
+     * Returns the value of the '<em><b>No Namespace</b></em>' attribute.
+     * The default value is <code>"false"</code>.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>No Namespace</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>No Namespace</em>' attribute.
+     * @see #setNoNamespace(boolean)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionValidateAccordingToURI_NoNamespace()
+     * @model default="false"
+     * @generated
+     */
+    boolean isNoNamespace();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingToURI#isNoNamespace <em>No Namespace</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>No Namespace</em>' attribute.
+     * @see #isNoNamespace()
+     * @generated
+     */
+    void setNoNamespace(boolean value);
+
+	/**
+     * Returns the value of the '<em><b>Target Namespace URI</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Target Namespace URI</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Target Namespace URI</em>' attribute.
+     * @see #setTargetNamespaceURI(String)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionValidateAccordingToURI_TargetNamespaceURI()
+     * @model
+     * @generated
+     */
+    String getTargetNamespaceURI();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingToURI#getTargetNamespaceURI <em>Target Namespace URI</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Target Namespace URI</em>' attribute.
+     * @see #getTargetNamespaceURI()
+     * @generated
+     */
+    void setTargetNamespaceURI(String value);
+
+	/**
+     * Returns the value of the '<em><b>Schema Location URI</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Schema Location URI</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Schema Location URI</em>' attribute.
+     * @see #setSchemaLocationURI(String)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionValidateAccordingToURI_SchemaLocationURI()
+     * @model
+     * @generated
+     */
+    String getSchemaLocationURI();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingToURI#getSchemaLocationURI <em>Schema Location URI</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Schema Location URI</em>' attribute.
+     * @see #getSchemaLocationURI()
+     * @generated
+     */
+    void setSchemaLocationURI(String value);
+
+} // XMLValueFunctionValidateAccordingToURI
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionValidateContent.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionValidateContent.java
new file mode 100644
index 0000000..2c6595c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionValidateContent.java
@@ -0,0 +1,83 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionValidateContent.java,v 1.2 2005/12/22 22:21:18 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Value Function Validate Content</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateContent#getValueFunctionValidate <em>Value Function Validate</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateContent#getValueExpr <em>Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionValidateContent()
+ * @model
+ * @generated
+ */
+public interface XMLValueFunctionValidateContent extends QueryValueExpression{
+	/**
+     * Returns the value of the '<em><b>Value Function Validate</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidate#getValidateContent <em>Validate Content</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Function Validate</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Function Validate</em>' container reference.
+     * @see #setValueFunctionValidate(XMLValueFunctionValidate)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionValidateContent_ValueFunctionValidate()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidate#getValidateContent
+     * @model opposite="validateContent" required="true"
+     * @generated
+     */
+    XMLValueFunctionValidate getValueFunctionValidate();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateContent#getValueFunctionValidate <em>Value Function Validate</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Function Validate</em>' container reference.
+     * @see #getValueFunctionValidate()
+     * @generated
+     */
+    void setValueFunctionValidate(XMLValueFunctionValidate value);
+
+	/**
+     * Returns the value of the '<em><b>Value Expr</b></em>' containment reference.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Value Expr</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Value Expr</em>' containment reference.
+     * @see #setValueExpr(QueryValueExpression)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionValidateContent_ValueExpr()
+     * @model containment="true" required="true"
+     * @generated
+     */
+    QueryValueExpression getValueExpr();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateContent#getValueExpr <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Value Expr</em>' containment reference.
+     * @see #getValueExpr()
+     * @generated
+     */
+    void setValueExpr(QueryValueExpression value);
+
+} // XMLValueFunctionValidateContent
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionValidateElement.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionValidateElement.java
new file mode 100644
index 0000000..b65a87c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionValidateElement.java
@@ -0,0 +1,114 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionValidateElement.java,v 1.2 2005/12/22 22:21:18 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Value Function Validate Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElement#getValidateElementNamespace <em>Validate Element Namespace</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElement#getValidateElementName <em>Validate Element Name</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElement#getValidateAccordingTo <em>Validate According To</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionValidateElement()
+ * @model
+ * @generated
+ */
+public interface XMLValueFunctionValidateElement extends SQLQueryObject{
+	/**
+     * Returns the value of the '<em><b>Validate Element Namespace</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElementNamespace#getValidateElement <em>Validate Element</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Validate Element Namespace</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Validate Element Namespace</em>' containment reference.
+     * @see #setValidateElementNamespace(XMLValueFunctionValidateElementNamespace)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionValidateElement_ValidateElementNamespace()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElementNamespace#getValidateElement
+     * @model opposite="validateElement" containment="true"
+     * @generated
+     */
+    XMLValueFunctionValidateElementNamespace getValidateElementNamespace();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElement#getValidateElementNamespace <em>Validate Element Namespace</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Validate Element Namespace</em>' containment reference.
+     * @see #getValidateElementNamespace()
+     * @generated
+     */
+    void setValidateElementNamespace(XMLValueFunctionValidateElementNamespace value);
+
+	/**
+     * Returns the value of the '<em><b>Validate Element Name</b></em>' containment reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElementName#getValidateElement <em>Validate Element</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Validate Element Name</em>' containment reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Validate Element Name</em>' containment reference.
+     * @see #setValidateElementName(XMLValueFunctionValidateElementName)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionValidateElement_ValidateElementName()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElementName#getValidateElement
+     * @model opposite="validateElement" containment="true"
+     * @generated
+     */
+    XMLValueFunctionValidateElementName getValidateElementName();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElement#getValidateElementName <em>Validate Element Name</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Validate Element Name</em>' containment reference.
+     * @see #getValidateElementName()
+     * @generated
+     */
+    void setValidateElementName(XMLValueFunctionValidateElementName value);
+
+	/**
+     * Returns the value of the '<em><b>Validate According To</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingTo#getValidateElement <em>Validate Element</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Validate According To</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Validate According To</em>' container reference.
+     * @see #setValidateAccordingTo(XMLValueFunctionValidateAccordingTo)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionValidateElement_ValidateAccordingTo()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingTo#getValidateElement
+     * @model opposite="validateElement" required="true"
+     * @generated
+     */
+    XMLValueFunctionValidateAccordingTo getValidateAccordingTo();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElement#getValidateAccordingTo <em>Validate According To</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Validate According To</em>' container reference.
+     * @see #getValidateAccordingTo()
+     * @generated
+     */
+    void setValidateAccordingTo(XMLValueFunctionValidateAccordingTo value);
+
+} // XMLValueFunctionValidateElement
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionValidateElementName.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionValidateElementName.java
new file mode 100644
index 0000000..a75a983
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionValidateElementName.java
@@ -0,0 +1,56 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionValidateElementName.java,v 1.2 2005/12/22 22:21:19 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Value Function Validate Element Name</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElementName#getValidateElement <em>Validate Element</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionValidateElementName()
+ * @model
+ * @generated
+ */
+public interface XMLValueFunctionValidateElementName extends SQLQueryObject{
+	/**
+     * Returns the value of the '<em><b>Validate Element</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElement#getValidateElementName <em>Validate Element Name</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Validate Element</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Validate Element</em>' container reference.
+     * @see #setValidateElement(XMLValueFunctionValidateElement)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionValidateElementName_ValidateElement()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElement#getValidateElementName
+     * @model opposite="validateElementName" required="true"
+     * @generated
+     */
+    XMLValueFunctionValidateElement getValidateElement();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElementName#getValidateElement <em>Validate Element</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Validate Element</em>' container reference.
+     * @see #getValidateElement()
+     * @generated
+     */
+    void setValidateElement(XMLValueFunctionValidateElement value);
+
+} // XMLValueFunctionValidateElementName
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionValidateElementNamespace.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionValidateElementNamespace.java
new file mode 100644
index 0000000..7611a85
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLValueFunctionValidateElementNamespace.java
@@ -0,0 +1,111 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionValidateElementNamespace.java,v 1.2 2005/12/22 22:21:18 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Value Function Validate Element Namespace</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElementNamespace#isNoNamespace <em>No Namespace</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElementNamespace#getNamespaceURI <em>Namespace URI</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElementNamespace#getValidateElement <em>Validate Element</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionValidateElementNamespace()
+ * @model
+ * @generated
+ */
+public interface XMLValueFunctionValidateElementNamespace extends SQLQueryObject{
+	/**
+     * Returns the value of the '<em><b>No Namespace</b></em>' attribute.
+     * The default value is <code>"false"</code>.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>No Namespace</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>No Namespace</em>' attribute.
+     * @see #setNoNamespace(boolean)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionValidateElementNamespace_NoNamespace()
+     * @model default="false"
+     * @generated
+     */
+    boolean isNoNamespace();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElementNamespace#isNoNamespace <em>No Namespace</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>No Namespace</em>' attribute.
+     * @see #isNoNamespace()
+     * @generated
+     */
+    void setNoNamespace(boolean value);
+
+	/**
+     * Returns the value of the '<em><b>Namespace URI</b></em>' attribute.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Namespace URI</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Namespace URI</em>' attribute.
+     * @see #setNamespaceURI(String)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionValidateElementNamespace_NamespaceURI()
+     * @model
+     * @generated
+     */
+    String getNamespaceURI();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElementNamespace#getNamespaceURI <em>Namespace URI</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Namespace URI</em>' attribute.
+     * @see #getNamespaceURI()
+     * @generated
+     */
+    void setNamespaceURI(String value);
+
+	/**
+     * Returns the value of the '<em><b>Validate Element</b></em>' container reference.
+     * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElement#getValidateElementNamespace <em>Validate Element Namespace</em>}'.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Validate Element</em>' container reference isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @return the value of the '<em>Validate Element</em>' container reference.
+     * @see #setValidateElement(XMLValueFunctionValidateElement)
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLValueFunctionValidateElementNamespace_ValidateElement()
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElement#getValidateElementNamespace
+     * @model opposite="validateElementNamespace" required="true"
+     * @generated
+     */
+    XMLValueFunctionValidateElement getValidateElement();
+
+	/**
+     * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElementNamespace#getValidateElement <em>Validate Element</em>}' container reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param value the new value of the '<em>Validate Element</em>' container reference.
+     * @see #getValidateElement()
+     * @generated
+     */
+    void setValidateElement(XMLValueFunctionValidateElement value);
+
+} // XMLValueFunctionValidateElementNamespace
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLWhitespaceHandlingType.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLWhitespaceHandlingType.java
new file mode 100644
index 0000000..43730fb
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/XMLWhitespaceHandlingType.java
@@ -0,0 +1,178 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLWhitespaceHandlingType.java,v 1.4 2007/02/08 17:04:22 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>XML Whitespace Handling Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#getXMLWhitespaceHandlingType()
+ * @model
+ * @generated
+ */
+public final class XMLWhitespaceHandlingType extends AbstractEnumerator {
+	/**
+     * The '<em><b>PRESERE WHITESPACE</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #PRESERE_WHITESPACE_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int PRESERE_WHITESPACE = 0;
+
+	/**
+     * The '<em><b>STRIP WHITESPACE</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #STRIP_WHITESPACE_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int STRIP_WHITESPACE = 1;
+
+	/**
+     * The '<em><b>NONE</b></em>' literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #NONE_LITERAL
+     * @model
+     * @generated
+     * @ordered
+     */
+    public static final int NONE = 2;
+
+	/**
+     * The '<em><b>PRESERE WHITESPACE</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>PRESERE WHITESPACE</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #PRESERE_WHITESPACE
+     * @generated
+     * @ordered
+     */
+    public static final XMLWhitespaceHandlingType PRESERE_WHITESPACE_LITERAL = new XMLWhitespaceHandlingType(PRESERE_WHITESPACE, "PRESERE_WHITESPACE", "PRESERE_WHITESPACE");
+
+	/**
+     * The '<em><b>STRIP WHITESPACE</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>STRIP WHITESPACE</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #STRIP_WHITESPACE
+     * @generated
+     * @ordered
+     */
+    public static final XMLWhitespaceHandlingType STRIP_WHITESPACE_LITERAL = new XMLWhitespaceHandlingType(STRIP_WHITESPACE, "STRIP_WHITESPACE", "STRIP_WHITESPACE");
+
+	/**
+     * The '<em><b>NONE</b></em>' literal object.
+     * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of '<em><b>NONE</b></em>' literal object isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+     * @see #NONE
+     * @generated
+     * @ordered
+     */
+    public static final XMLWhitespaceHandlingType NONE_LITERAL = new XMLWhitespaceHandlingType(NONE, "NONE", "NONE");
+
+	/**
+     * An array of all the '<em><b>XML Whitespace Handling Type</b></em>' enumerators.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private static final XMLWhitespaceHandlingType[] VALUES_ARRAY =
+		new XMLWhitespaceHandlingType[] {
+            PRESERE_WHITESPACE_LITERAL,
+            STRIP_WHITESPACE_LITERAL,
+            NONE_LITERAL,
+        };
+
+	/**
+     * A public read-only list of all the '<em><b>XML Whitespace Handling Type</b></em>' enumerators.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+     * Returns the '<em><b>XML Whitespace Handling Type</b></em>' literal with the specified literal value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static XMLWhitespaceHandlingType get(String literal) {
+        for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+            XMLWhitespaceHandlingType result = VALUES_ARRAY[i];
+            if (result.toString().equals(literal)) {
+                return result;
+            }
+        }
+        return null;
+    }
+
+	/**
+     * Returns the '<em><b>XML Whitespace Handling Type</b></em>' literal with the specified name.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public static XMLWhitespaceHandlingType getByName(String name) {
+        for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+            XMLWhitespaceHandlingType result = VALUES_ARRAY[i];
+            if (result.getName().equals(name)) {
+                return result;
+            }
+        }
+        return null;
+    }
+
+	/**
+     * Returns the '<em><b>XML Whitespace Handling Type</b></em>' literal with the specified integer value.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public static XMLWhitespaceHandlingType get(int value) {
+        switch (value) {
+            case PRESERE_WHITESPACE: return PRESERE_WHITESPACE_LITERAL;
+            case STRIP_WHITESPACE: return STRIP_WHITESPACE_LITERAL;
+            case NONE: return NONE_LITERAL;
+        }
+        return null;
+    }
+
+	/**
+     * Only this class can construct instances.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	private XMLWhitespaceHandlingType(int value, String name, String literal) {
+        super(value, name, literal);
+    }
+
+} //XMLWhitespaceHandlingType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/SQLXMLQueryModelFactoryImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/SQLXMLQueryModelFactoryImpl.java
new file mode 100644
index 0000000..18e4d25
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/SQLXMLQueryModelFactoryImpl.java
@@ -0,0 +1,865 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SQLXMLQueryModelFactoryImpl.java,v 1.2 2007/02/08 17:04:21 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+
+import org.eclipse.datatools.modelbase.sql.xml.query.*;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SQLXMLQueryModelFactoryImpl extends EFactoryImpl implements SQLXMLQueryModelFactory {
+	/**
+     * Creates the default factory implementation.
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public static SQLXMLQueryModelFactory init() {
+        try {
+            SQLXMLQueryModelFactory theSQLXMLQueryModelFactory = (SQLXMLQueryModelFactory)EPackage.Registry.INSTANCE.getEFactory("http:///org/eclipse/datatools/modelbase/sql/xml/query/SQLXMLQueryModel.ecore"); 
+            if (theSQLXMLQueryModelFactory != null) {
+                return theSQLXMLQueryModelFactory;
+            }
+        }
+        catch (Exception exception) {
+            EcorePlugin.INSTANCE.log(exception);
+        }
+        return new SQLXMLQueryModelFactoryImpl();
+    }
+
+	/**
+     * Creates an instance of the factory.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public SQLXMLQueryModelFactoryImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EObject create(EClass eClass) {
+        switch (eClass.getClassifierID()) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_CONCAT: return createXMLValueFunctionConcat();
+            case SQLXMLQueryModelPackage.XML_NAMESPACE_DECLARATION_PREFIX: return createXMLNamespaceDeclarationPrefix();
+            case SQLXMLQueryModelPackage.XML_NAMESPACE_DECLARATION_DEFAULT: return createXMLNamespaceDeclarationDefault();
+            case SQLXMLQueryModelPackage.XML_ATTRIBUTE_DECLARATION_ITEM: return createXMLAttributeDeclarationItem();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT: return createXMLValueFunctionElement();
+            case SQLXMLQueryModelPackage.XML_NAMESPACE_DECLARATION_ITEM: return createXMLNamespaceDeclarationItem();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM: return createXMLValueFunctionElementContentItem();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST: return createXMLValueFunctionForest();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_COMMENT: return createXMLValueFunctionComment();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_DOCUMENT: return createXMLValueFunctionDocument();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PARSE: return createXMLValueFunctionParse();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PI: return createXMLValueFunctionPI();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY: return createXMLValueFunctionQuery();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_TEXT: return createXMLValueFunctionText();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE: return createXMLValueFunctionValidate();
+            case SQLXMLQueryModelPackage.XML_VALUE_EXPRESSION_CAST: return createXMLValueExpressionCast();
+            case SQLXMLQueryModelPackage.XML_PREDICATE_CONTENT: return createXMLPredicateContent();
+            case SQLXMLQueryModelPackage.XML_PREDICATE_DOCUMENT: return createXMLPredicateDocument();
+            case SQLXMLQueryModelPackage.XML_PREDICATE_EXISTS: return createXMLPredicateExists();
+            case SQLXMLQueryModelPackage.XML_PREDICATE_VALID: return createXMLPredicateValid();
+            case SQLXMLQueryModelPackage.XML_QUERY_EXPRESSION: return createXMLQueryExpression();
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST: return createXMLQueryArgumentList();
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_ITEM: return createXMLQueryArgumentItem();
+            case SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION: return createXMLSerializeFunction();
+            case SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION_TARGET: return createXMLSerializeFunctionTarget();
+            case SQLXMLQueryModelPackage.XML_AGGREGATE_FUNCTION: return createXMLAggregateFunction();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM: return createXMLValueFunctionConcatContentItem();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_COMMENT_CONTENT: return createXMLValueFunctionCommentContent();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_DOCUMENT_CONTENT: return createXMLValueFunctionDocumentContent();
+            case SQLXMLQueryModelPackage.XML_AGGREGATE_SORT_SPECIFICATION: return createXMLAggregateSortSpecification();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM: return createXMLValueFunctionForestContentItem();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PARSE_CONTENT: return createXMLValueFunctionParseContent();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PI_CONTENT: return createXMLValueFunctionPIContent();
+            case SQLXMLQueryModelPackage.XML_TABLE_FUNCTION: return createXMLTableFunction();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_TEXT_CONTENT: return createXMLValueFunctionTextContent();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_CONTENT: return createXMLValueFunctionValidateContent();
+            case SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_ITEM: return createXMLTableColumnDefinitionItem();
+            case SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_REGULAR: return createXMLTableColumnDefinitionRegular();
+            case SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_ORDINALITY: return createXMLTableColumnDefinitionOrdinality();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO: return createXMLValueFunctionValidateAccordingTo();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_URI: return createXMLValueFunctionValidateAccordingToURI();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_IDENTIFIER: return createXMLValueFunctionValidateAccordingToIdentifier();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAME: return createXMLValueFunctionValidateElementName();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAMESPACE: return createXMLValueFunctionValidateElementNamespace();
+            case SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION: return createXMLNamespacesDeclaration();
+            case SQLXMLQueryModelPackage.XML_ATTRIBUTES_DECLARATION: return createXMLAttributesDeclaration();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST: return createXMLValueFunctionElementContentList();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY_RETURNING: return createXMLValueFunctionQueryReturning();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT: return createXMLValueFunctionValidateElement();
+            case SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_DEFAULT: return createXMLTableColumnDefinitionDefault();
+            case SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION_ENCODING: return createXMLSerializeFunctionEncoding();
+            default:
+                throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+        }
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public Object createFromString(EDataType eDataType, String initialValue) {
+        switch (eDataType.getClassifierID()) {
+            case SQLXMLQueryModelPackage.XML_PASSING_TYPE:
+                return createXMLPassingTypeFromString(eDataType, initialValue);
+            case SQLXMLQueryModelPackage.XML_CONTENT_TYPE:
+                return createXMLContentTypeFromString(eDataType, initialValue);
+            case SQLXMLQueryModelPackage.XML_DECLARATION_TYPE:
+                return createXMLDeclarationTypeFromString(eDataType, initialValue);
+            case SQLXMLQueryModelPackage.XML_RETURNING_TYPE:
+                return createXMLReturningTypeFromString(eDataType, initialValue);
+            case SQLXMLQueryModelPackage.XML_NULL_HANDLING_TYPE:
+                return createXMLNullHandlingTypeFromString(eDataType, initialValue);
+            case SQLXMLQueryModelPackage.XML_WHITESPACE_HANDLING_TYPE:
+                return createXMLWhitespaceHandlingTypeFromString(eDataType, initialValue);
+            case SQLXMLQueryModelPackage.XML_EMPTY_HANDLING_TYPE:
+                return createXMLEmptyHandlingTypeFromString(eDataType, initialValue);
+            case SQLXMLQueryModelPackage.XML_CONTENT_TYPE2:
+                return createXMLContentType2FromString(eDataType, initialValue);
+            default:
+                throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+        }
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String convertToString(EDataType eDataType, Object instanceValue) {
+        switch (eDataType.getClassifierID()) {
+            case SQLXMLQueryModelPackage.XML_PASSING_TYPE:
+                return convertXMLPassingTypeToString(eDataType, instanceValue);
+            case SQLXMLQueryModelPackage.XML_CONTENT_TYPE:
+                return convertXMLContentTypeToString(eDataType, instanceValue);
+            case SQLXMLQueryModelPackage.XML_DECLARATION_TYPE:
+                return convertXMLDeclarationTypeToString(eDataType, instanceValue);
+            case SQLXMLQueryModelPackage.XML_RETURNING_TYPE:
+                return convertXMLReturningTypeToString(eDataType, instanceValue);
+            case SQLXMLQueryModelPackage.XML_NULL_HANDLING_TYPE:
+                return convertXMLNullHandlingTypeToString(eDataType, instanceValue);
+            case SQLXMLQueryModelPackage.XML_WHITESPACE_HANDLING_TYPE:
+                return convertXMLWhitespaceHandlingTypeToString(eDataType, instanceValue);
+            case SQLXMLQueryModelPackage.XML_EMPTY_HANDLING_TYPE:
+                return convertXMLEmptyHandlingTypeToString(eDataType, instanceValue);
+            case SQLXMLQueryModelPackage.XML_CONTENT_TYPE2:
+                return convertXMLContentType2ToString(eDataType, instanceValue);
+            default:
+                throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+        }
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionConcat createXMLValueFunctionConcat() {
+        XMLValueFunctionConcatImpl xmlValueFunctionConcat = new XMLValueFunctionConcatImpl();
+        return xmlValueFunctionConcat;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLNamespaceDeclarationPrefix createXMLNamespaceDeclarationPrefix() {
+        XMLNamespaceDeclarationPrefixImpl xmlNamespaceDeclarationPrefix = new XMLNamespaceDeclarationPrefixImpl();
+        return xmlNamespaceDeclarationPrefix;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLNamespaceDeclarationDefault createXMLNamespaceDeclarationDefault() {
+        XMLNamespaceDeclarationDefaultImpl xmlNamespaceDeclarationDefault = new XMLNamespaceDeclarationDefaultImpl();
+        return xmlNamespaceDeclarationDefault;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLAttributeDeclarationItem createXMLAttributeDeclarationItem() {
+        XMLAttributeDeclarationItemImpl xmlAttributeDeclarationItem = new XMLAttributeDeclarationItemImpl();
+        return xmlAttributeDeclarationItem;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionElement createXMLValueFunctionElement() {
+        XMLValueFunctionElementImpl xmlValueFunctionElement = new XMLValueFunctionElementImpl();
+        return xmlValueFunctionElement;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLNamespaceDeclarationItem createXMLNamespaceDeclarationItem() {
+        XMLNamespaceDeclarationItemImpl xmlNamespaceDeclarationItem = new XMLNamespaceDeclarationItemImpl();
+        return xmlNamespaceDeclarationItem;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionElementContentItem createXMLValueFunctionElementContentItem() {
+        XMLValueFunctionElementContentItemImpl xmlValueFunctionElementContentItem = new XMLValueFunctionElementContentItemImpl();
+        return xmlValueFunctionElementContentItem;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionForest createXMLValueFunctionForest() {
+        XMLValueFunctionForestImpl xmlValueFunctionForest = new XMLValueFunctionForestImpl();
+        return xmlValueFunctionForest;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionComment createXMLValueFunctionComment() {
+        XMLValueFunctionCommentImpl xmlValueFunctionComment = new XMLValueFunctionCommentImpl();
+        return xmlValueFunctionComment;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionDocument createXMLValueFunctionDocument() {
+        XMLValueFunctionDocumentImpl xmlValueFunctionDocument = new XMLValueFunctionDocumentImpl();
+        return xmlValueFunctionDocument;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionParse createXMLValueFunctionParse() {
+        XMLValueFunctionParseImpl xmlValueFunctionParse = new XMLValueFunctionParseImpl();
+        return xmlValueFunctionParse;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionPI createXMLValueFunctionPI() {
+        XMLValueFunctionPIImpl xmlValueFunctionPI = new XMLValueFunctionPIImpl();
+        return xmlValueFunctionPI;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionQuery createXMLValueFunctionQuery() {
+        XMLValueFunctionQueryImpl xmlValueFunctionQuery = new XMLValueFunctionQueryImpl();
+        return xmlValueFunctionQuery;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionText createXMLValueFunctionText() {
+        XMLValueFunctionTextImpl xmlValueFunctionText = new XMLValueFunctionTextImpl();
+        return xmlValueFunctionText;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionValidate createXMLValueFunctionValidate() {
+        XMLValueFunctionValidateImpl xmlValueFunctionValidate = new XMLValueFunctionValidateImpl();
+        return xmlValueFunctionValidate;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueExpressionCast createXMLValueExpressionCast() {
+        XMLValueExpressionCastImpl xmlValueExpressionCast = new XMLValueExpressionCastImpl();
+        return xmlValueExpressionCast;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLPredicateContent createXMLPredicateContent() {
+        XMLPredicateContentImpl xmlPredicateContent = new XMLPredicateContentImpl();
+        return xmlPredicateContent;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLPredicateDocument createXMLPredicateDocument() {
+        XMLPredicateDocumentImpl xmlPredicateDocument = new XMLPredicateDocumentImpl();
+        return xmlPredicateDocument;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLPredicateExists createXMLPredicateExists() {
+        XMLPredicateExistsImpl xmlPredicateExists = new XMLPredicateExistsImpl();
+        return xmlPredicateExists;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLPredicateValid createXMLPredicateValid() {
+        XMLPredicateValidImpl xmlPredicateValid = new XMLPredicateValidImpl();
+        return xmlPredicateValid;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLQueryExpression createXMLQueryExpression() {
+        XMLQueryExpressionImpl xmlQueryExpression = new XMLQueryExpressionImpl();
+        return xmlQueryExpression;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLQueryArgumentList createXMLQueryArgumentList() {
+        XMLQueryArgumentListImpl xmlQueryArgumentList = new XMLQueryArgumentListImpl();
+        return xmlQueryArgumentList;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLQueryArgumentItem createXMLQueryArgumentItem() {
+        XMLQueryArgumentItemImpl xmlQueryArgumentItem = new XMLQueryArgumentItemImpl();
+        return xmlQueryArgumentItem;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLSerializeFunction createXMLSerializeFunction() {
+        XMLSerializeFunctionImpl xmlSerializeFunction = new XMLSerializeFunctionImpl();
+        return xmlSerializeFunction;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLSerializeFunctionTarget createXMLSerializeFunctionTarget() {
+        XMLSerializeFunctionTargetImpl xmlSerializeFunctionTarget = new XMLSerializeFunctionTargetImpl();
+        return xmlSerializeFunctionTarget;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLAggregateFunction createXMLAggregateFunction() {
+        XMLAggregateFunctionImpl xmlAggregateFunction = new XMLAggregateFunctionImpl();
+        return xmlAggregateFunction;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionConcatContentItem createXMLValueFunctionConcatContentItem() {
+        XMLValueFunctionConcatContentItemImpl xmlValueFunctionConcatContentItem = new XMLValueFunctionConcatContentItemImpl();
+        return xmlValueFunctionConcatContentItem;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionCommentContent createXMLValueFunctionCommentContent() {
+        XMLValueFunctionCommentContentImpl xmlValueFunctionCommentContent = new XMLValueFunctionCommentContentImpl();
+        return xmlValueFunctionCommentContent;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionDocumentContent createXMLValueFunctionDocumentContent() {
+        XMLValueFunctionDocumentContentImpl xmlValueFunctionDocumentContent = new XMLValueFunctionDocumentContentImpl();
+        return xmlValueFunctionDocumentContent;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLAggregateSortSpecification createXMLAggregateSortSpecification() {
+        XMLAggregateSortSpecificationImpl xmlAggregateSortSpecification = new XMLAggregateSortSpecificationImpl();
+        return xmlAggregateSortSpecification;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionForestContentItem createXMLValueFunctionForestContentItem() {
+        XMLValueFunctionForestContentItemImpl xmlValueFunctionForestContentItem = new XMLValueFunctionForestContentItemImpl();
+        return xmlValueFunctionForestContentItem;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionParseContent createXMLValueFunctionParseContent() {
+        XMLValueFunctionParseContentImpl xmlValueFunctionParseContent = new XMLValueFunctionParseContentImpl();
+        return xmlValueFunctionParseContent;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionPIContent createXMLValueFunctionPIContent() {
+        XMLValueFunctionPIContentImpl xmlValueFunctionPIContent = new XMLValueFunctionPIContentImpl();
+        return xmlValueFunctionPIContent;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLTableFunction createXMLTableFunction() {
+        XMLTableFunctionImpl xmlTableFunction = new XMLTableFunctionImpl();
+        return xmlTableFunction;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionTextContent createXMLValueFunctionTextContent() {
+        XMLValueFunctionTextContentImpl xmlValueFunctionTextContent = new XMLValueFunctionTextContentImpl();
+        return xmlValueFunctionTextContent;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionValidateContent createXMLValueFunctionValidateContent() {
+        XMLValueFunctionValidateContentImpl xmlValueFunctionValidateContent = new XMLValueFunctionValidateContentImpl();
+        return xmlValueFunctionValidateContent;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLTableColumnDefinitionItem createXMLTableColumnDefinitionItem() {
+        XMLTableColumnDefinitionItemImpl xmlTableColumnDefinitionItem = new XMLTableColumnDefinitionItemImpl();
+        return xmlTableColumnDefinitionItem;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLTableColumnDefinitionRegular createXMLTableColumnDefinitionRegular() {
+        XMLTableColumnDefinitionRegularImpl xmlTableColumnDefinitionRegular = new XMLTableColumnDefinitionRegularImpl();
+        return xmlTableColumnDefinitionRegular;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLTableColumnDefinitionOrdinality createXMLTableColumnDefinitionOrdinality() {
+        XMLTableColumnDefinitionOrdinalityImpl xmlTableColumnDefinitionOrdinality = new XMLTableColumnDefinitionOrdinalityImpl();
+        return xmlTableColumnDefinitionOrdinality;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionValidateAccordingTo createXMLValueFunctionValidateAccordingTo() {
+        XMLValueFunctionValidateAccordingToImpl xmlValueFunctionValidateAccordingTo = new XMLValueFunctionValidateAccordingToImpl();
+        return xmlValueFunctionValidateAccordingTo;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionValidateAccordingToURI createXMLValueFunctionValidateAccordingToURI() {
+        XMLValueFunctionValidateAccordingToURIImpl xmlValueFunctionValidateAccordingToURI = new XMLValueFunctionValidateAccordingToURIImpl();
+        return xmlValueFunctionValidateAccordingToURI;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionValidateAccordingToIdentifier createXMLValueFunctionValidateAccordingToIdentifier() {
+        XMLValueFunctionValidateAccordingToIdentifierImpl xmlValueFunctionValidateAccordingToIdentifier = new XMLValueFunctionValidateAccordingToIdentifierImpl();
+        return xmlValueFunctionValidateAccordingToIdentifier;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionValidateElementName createXMLValueFunctionValidateElementName() {
+        XMLValueFunctionValidateElementNameImpl xmlValueFunctionValidateElementName = new XMLValueFunctionValidateElementNameImpl();
+        return xmlValueFunctionValidateElementName;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionValidateElementNamespace createXMLValueFunctionValidateElementNamespace() {
+        XMLValueFunctionValidateElementNamespaceImpl xmlValueFunctionValidateElementNamespace = new XMLValueFunctionValidateElementNamespaceImpl();
+        return xmlValueFunctionValidateElementNamespace;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLNamespacesDeclaration createXMLNamespacesDeclaration() {
+        XMLNamespacesDeclarationImpl xmlNamespacesDeclaration = new XMLNamespacesDeclarationImpl();
+        return xmlNamespacesDeclaration;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLAttributesDeclaration createXMLAttributesDeclaration() {
+        XMLAttributesDeclarationImpl xmlAttributesDeclaration = new XMLAttributesDeclarationImpl();
+        return xmlAttributesDeclaration;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionElementContentList createXMLValueFunctionElementContentList() {
+        XMLValueFunctionElementContentListImpl xmlValueFunctionElementContentList = new XMLValueFunctionElementContentListImpl();
+        return xmlValueFunctionElementContentList;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionQueryReturning createXMLValueFunctionQueryReturning() {
+        XMLValueFunctionQueryReturningImpl xmlValueFunctionQueryReturning = new XMLValueFunctionQueryReturningImpl();
+        return xmlValueFunctionQueryReturning;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionValidateElement createXMLValueFunctionValidateElement() {
+        XMLValueFunctionValidateElementImpl xmlValueFunctionValidateElement = new XMLValueFunctionValidateElementImpl();
+        return xmlValueFunctionValidateElement;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLTableColumnDefinitionDefault createXMLTableColumnDefinitionDefault() {
+        XMLTableColumnDefinitionDefaultImpl xmlTableColumnDefinitionDefault = new XMLTableColumnDefinitionDefaultImpl();
+        return xmlTableColumnDefinitionDefault;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLSerializeFunctionEncoding createXMLSerializeFunctionEncoding() {
+        XMLSerializeFunctionEncodingImpl xmlSerializeFunctionEncoding = new XMLSerializeFunctionEncodingImpl();
+        return xmlSerializeFunctionEncoding;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public XMLPassingType createXMLPassingTypeFromString(EDataType eDataType, String initialValue) {
+        XMLPassingType result = XMLPassingType.get(initialValue);
+        if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+        return result;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public String convertXMLPassingTypeToString(EDataType eDataType, Object instanceValue) {
+        return instanceValue == null ? null : instanceValue.toString();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public XMLContentType createXMLContentTypeFromString(EDataType eDataType, String initialValue) {
+        XMLContentType result = XMLContentType.get(initialValue);
+        if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+        return result;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public String convertXMLContentTypeToString(EDataType eDataType, Object instanceValue) {
+        return instanceValue == null ? null : instanceValue.toString();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public XMLDeclarationType createXMLDeclarationTypeFromString(EDataType eDataType, String initialValue) {
+        XMLDeclarationType result = XMLDeclarationType.get(initialValue);
+        if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+        return result;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public String convertXMLDeclarationTypeToString(EDataType eDataType, Object instanceValue) {
+        return instanceValue == null ? null : instanceValue.toString();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public XMLReturningType createXMLReturningTypeFromString(EDataType eDataType, String initialValue) {
+        XMLReturningType result = XMLReturningType.get(initialValue);
+        if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+        return result;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public String convertXMLReturningTypeToString(EDataType eDataType, Object instanceValue) {
+        return instanceValue == null ? null : instanceValue.toString();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public XMLNullHandlingType createXMLNullHandlingTypeFromString(EDataType eDataType, String initialValue) {
+        XMLNullHandlingType result = XMLNullHandlingType.get(initialValue);
+        if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+        return result;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public String convertXMLNullHandlingTypeToString(EDataType eDataType, Object instanceValue) {
+        return instanceValue == null ? null : instanceValue.toString();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public XMLWhitespaceHandlingType createXMLWhitespaceHandlingTypeFromString(EDataType eDataType, String initialValue) {
+        XMLWhitespaceHandlingType result = XMLWhitespaceHandlingType.get(initialValue);
+        if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+        return result;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public String convertXMLWhitespaceHandlingTypeToString(EDataType eDataType, Object instanceValue) {
+        return instanceValue == null ? null : instanceValue.toString();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public XMLEmptyHandlingType createXMLEmptyHandlingTypeFromString(EDataType eDataType, String initialValue) {
+        XMLEmptyHandlingType result = XMLEmptyHandlingType.get(initialValue);
+        if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+        return result;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public String convertXMLEmptyHandlingTypeToString(EDataType eDataType, Object instanceValue) {
+        return instanceValue == null ? null : instanceValue.toString();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public XMLContentType2 createXMLContentType2FromString(EDataType eDataType, String initialValue) {
+        XMLContentType2 result = XMLContentType2.get(initialValue);
+        if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+        return result;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public String convertXMLContentType2ToString(EDataType eDataType, Object instanceValue) {
+        return instanceValue == null ? null : instanceValue.toString();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public SQLXMLQueryModelPackage getSQLXMLQueryModelPackage() {
+        return (SQLXMLQueryModelPackage)getEPackage();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @deprecated
+     * @generated
+     */
+    public static SQLXMLQueryModelPackage getPackage() {
+        return SQLXMLQueryModelPackage.eINSTANCE;
+    }
+
+} //SQLXMLQueryFactoryImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/SQLXMLQueryModelPackageImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/SQLXMLQueryModelPackageImpl.java
new file mode 100644
index 0000000..eeaf974
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/SQLXMLQueryModelPackageImpl.java
@@ -0,0 +1,2823 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SQLXMLQueryModelPackageImpl.java,v 1.3 2008/07/07 19:55:14 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+import org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage;
+
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;
+
+import org.eclipse.datatools.modelbase.sql.accesscontrol.impl.SQLAccessControlPackageImpl;
+import org.eclipse.datatools.modelbase.sql.constraints.impl.SQLConstraintsPackageImpl;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsPackage;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl;
+import org.eclipse.datatools.modelbase.sql.expressions.impl.SQLExpressionsPackageImpl;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+
+import org.eclipse.datatools.modelbase.sql.statements.SQLStatementsPackage;
+
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+
+import org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryModelPackageImpl;
+import org.eclipse.datatools.modelbase.sql.routines.impl.SQLRoutinesPackageImpl;
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLSchemaPackageImpl;
+import org.eclipse.datatools.modelbase.sql.statements.impl.SQLStatementsPackageImpl;
+import org.eclipse.datatools.modelbase.sql.tables.impl.SQLTablesPackageImpl;
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelFactory;
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLAggregateFunction;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLAggregateSortSpecification;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLAttributeDeclarationItem;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLAttributesDeclaration;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLContentType;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLContentType2;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLDeclarationType;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLEmptyHandlingType;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespaceDeclarationDefault;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespaceDeclarationItem;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespaceDeclarationPrefix;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespacesDeclaration;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLNullHandlingType;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLPassingType;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLPredicate;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLPredicateContent;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLPredicateDocument;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLPredicateExists;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLPredicateValid;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentItem;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentList;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryExpression;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLReturningType;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunction;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunctionEncoding;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunctionTarget;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionDefault;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionItem;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionOrdinality;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionRegular;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLTableFunction;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunction;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionComment;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionCommentContent;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionConcat;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionConcatContentItem;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionDocument;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionDocumentContent;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElement;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElementContentItem;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElementContentList;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForest;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForestContentItem;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionPI;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionPIContent;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionParse;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionParseContent;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQuery;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQueryReturning;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionText;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionTextContent;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidate;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingTo;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingToIdentifier;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingToURI;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateContent;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElement;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElementName;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElementNamespace;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLWhitespaceHandlingType;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcorePackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.emf.ecore.impl.EcorePackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SQLXMLQueryModelPackageImpl extends EPackageImpl implements SQLXMLQueryModelPackage {
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlValueFunctionConcatEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlValueFunctionEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlNamespaceDeclarationPrefixEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlNamespaceDeclarationDefaultEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlAttributeDeclarationItemEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlValueFunctionElementEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlNamespaceDeclarationItemEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlValueFunctionElementContentItemEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlValueFunctionForestEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlValueFunctionCommentEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlValueFunctionDocumentEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlValueFunctionParseEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlValueFunctionPIEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlValueFunctionQueryEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlValueFunctionTextEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlValueFunctionValidateEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlValueExpressionCastEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlPredicateEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlPredicateContentEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlPredicateDocumentEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlPredicateExistsEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlPredicateValidEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlQueryExpressionEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlQueryArgumentListEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlQueryArgumentItemEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlSerializeFunctionEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlSerializeFunctionTargetEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlAggregateFunctionEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlValueFunctionConcatContentItemEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlValueFunctionCommentContentEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlValueFunctionDocumentContentEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlAggregateSortSpecificationEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlValueFunctionForestContentItemEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlValueFunctionParseContentEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlValueFunctionPIContentEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlTableFunctionEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlValueFunctionTextContentEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlValueFunctionValidateContentEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlTableColumnDefinitionItemEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlTableColumnDefinitionRegularEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlTableColumnDefinitionOrdinalityEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlValueFunctionValidateAccordingToEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlValueFunctionValidateAccordingToURIEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlValueFunctionValidateAccordingToIdentifierEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlValueFunctionValidateElementNameEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlValueFunctionValidateElementNamespaceEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlNamespacesDeclarationEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlAttributesDeclarationEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlValueFunctionElementContentListEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlValueFunctionQueryReturningEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlValueFunctionValidateElementEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlTableColumnDefinitionDefaultEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EClass xmlSerializeFunctionEncodingEClass = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EEnum xmlPassingTypeEEnum = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EEnum xmlContentTypeEEnum = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EEnum xmlDeclarationTypeEEnum = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EEnum xmlReturningTypeEEnum = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EEnum xmlNullHandlingTypeEEnum = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EEnum xmlWhitespaceHandlingTypeEEnum = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EEnum xmlEmptyHandlingTypeEEnum = null;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private EEnum xmlContentType2EEnum = null;
+
+	/**
+     * Creates an instance of the model <b>Package</b>, registered with
+     * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+     * package URI value.
+     * <p>Note: the correct way to create the package is via the static
+     * factory method {@link #init init()}, which also performs
+     * initialization of the package, or returns the registered package,
+     * if one already exists.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see org.eclipse.emf.ecore.EPackage.Registry
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage#eNS_URI
+     * @see #init()
+     * @generated
+     */
+    private SQLXMLQueryModelPackageImpl() {
+        super(eNS_URI, SQLXMLQueryModelFactory.eINSTANCE);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private static boolean isInited = false;
+
+	/**
+     * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+     * 
+     * <p>This method is used to initialize {@link SQLXMLQueryModelPackage#eINSTANCE} when that field is accessed.
+     * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #eNS_URI
+     * @see #createPackageContents()
+     * @see #initializePackageContents()
+     * @generated
+     */
+    public static SQLXMLQueryModelPackage init() {
+        if (isInited) return (SQLXMLQueryModelPackage)EPackage.Registry.INSTANCE.getEPackage(SQLXMLQueryModelPackage.eNS_URI);
+
+        // Obtain or create and register package
+        SQLXMLQueryModelPackageImpl theSQLXMLQueryModelPackage = (SQLXMLQueryModelPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof SQLXMLQueryModelPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new SQLXMLQueryModelPackageImpl());
+
+        isInited = true;
+
+        // Initialize simple dependencies
+        SQLQueryModelPackage.eINSTANCE.eClass();
+
+        // Create package meta-data objects
+        theSQLXMLQueryModelPackage.createPackageContents();
+
+        // Initialize created meta-data
+        theSQLXMLQueryModelPackage.initializePackageContents();
+
+        // Mark meta-data to indicate it can't be changed
+        theSQLXMLQueryModelPackage.freeze();
+
+  
+        // Update the registry and return the package
+        EPackage.Registry.INSTANCE.put(SQLXMLQueryModelPackage.eNS_URI, theSQLXMLQueryModelPackage);
+        return theSQLXMLQueryModelPackage;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLValueFunctionConcat() {
+        return xmlValueFunctionConcatEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EAttribute getXMLValueFunctionConcat_ReturningOption() {
+        return (EAttribute)xmlValueFunctionConcatEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLValueFunctionConcat_ConcatContentList() {
+        return (EReference)xmlValueFunctionConcatEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLValueFunction() {
+        return xmlValueFunctionEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLNamespaceDeclarationPrefix() {
+        return xmlNamespaceDeclarationPrefixEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EAttribute getXMLNamespaceDeclarationPrefix_Prefix() {
+        return (EAttribute)xmlNamespaceDeclarationPrefixEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLNamespaceDeclarationDefault() {
+        return xmlNamespaceDeclarationDefaultEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EAttribute getXMLNamespaceDeclarationDefault_NoDefault() {
+        return (EAttribute)xmlNamespaceDeclarationDefaultEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLAttributeDeclarationItem() {
+        return xmlAttributeDeclarationItemEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLAttributeDeclarationItem_ValueExpr() {
+        return (EReference)xmlAttributeDeclarationItemEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLAttributeDeclarationItem_AttributesDecl() {
+        return (EReference)xmlAttributeDeclarationItemEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLValueFunctionElement() {
+        return xmlValueFunctionElementEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EAttribute getXMLValueFunctionElement_ElementName() {
+        return (EAttribute)xmlValueFunctionElementEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EAttribute getXMLValueFunctionElement_ReturningOption() {
+        return (EAttribute)xmlValueFunctionElementEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLValueFunctionElement_NamespacesDecl() {
+        return (EReference)xmlValueFunctionElementEClass.getEStructuralFeatures().get(2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLValueFunctionElement_AttributesDecl() {
+        return (EReference)xmlValueFunctionElementEClass.getEStructuralFeatures().get(3);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLValueFunctionElement_ElementContentList() {
+        return (EReference)xmlValueFunctionElementEClass.getEStructuralFeatures().get(4);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLNamespaceDeclarationItem() {
+        return xmlNamespaceDeclarationItemEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EAttribute getXMLNamespaceDeclarationItem_Uri() {
+        return (EAttribute)xmlNamespaceDeclarationItemEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLNamespaceDeclarationItem_NamespacesDecl() {
+        return (EReference)xmlNamespaceDeclarationItemEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLValueFunctionElementContentItem() {
+        return xmlValueFunctionElementContentItemEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLValueFunctionElementContentItem_ValueExpr() {
+        return (EReference)xmlValueFunctionElementContentItemEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLValueFunctionElementContentItem_ElementContentList() {
+        return (EReference)xmlValueFunctionElementContentItemEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLValueFunctionForest() {
+        return xmlValueFunctionForestEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EAttribute getXMLValueFunctionForest_NullHandlingOption() {
+        return (EAttribute)xmlValueFunctionForestEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EAttribute getXMLValueFunctionForest_ReturningOption() {
+        return (EAttribute)xmlValueFunctionForestEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLValueFunctionForest_ForestContentList() {
+        return (EReference)xmlValueFunctionForestEClass.getEStructuralFeatures().get(2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLValueFunctionForest_NamespacesDecl() {
+        return (EReference)xmlValueFunctionForestEClass.getEStructuralFeatures().get(3);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLValueFunctionComment() {
+        return xmlValueFunctionCommentEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EAttribute getXMLValueFunctionComment_ReturningOption() {
+        return (EAttribute)xmlValueFunctionCommentEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLValueFunctionComment_CommentContent() {
+        return (EReference)xmlValueFunctionCommentEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLValueFunctionDocument() {
+        return xmlValueFunctionDocumentEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EAttribute getXMLValueFunctionDocument_ReturningOption() {
+        return (EAttribute)xmlValueFunctionDocumentEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLValueFunctionDocument_DocumentContent() {
+        return (EReference)xmlValueFunctionDocumentEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLValueFunctionParse() {
+        return xmlValueFunctionParseEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EAttribute getXMLValueFunctionParse_ContentOption() {
+        return (EAttribute)xmlValueFunctionParseEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EAttribute getXMLValueFunctionParse_WhitespaceHandlingOption() {
+        return (EAttribute)xmlValueFunctionParseEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLValueFunctionParse_ParseContent() {
+        return (EReference)xmlValueFunctionParseEClass.getEStructuralFeatures().get(2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLValueFunctionPI() {
+        return xmlValueFunctionPIEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EAttribute getXMLValueFunctionPI_TargetName() {
+        return (EAttribute)xmlValueFunctionPIEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EAttribute getXMLValueFunctionPI_ReturningOption() {
+        return (EAttribute)xmlValueFunctionPIEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLValueFunctionPI_PIContent() {
+        return (EReference)xmlValueFunctionPIEClass.getEStructuralFeatures().get(2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLValueFunctionQuery() {
+        return xmlValueFunctionQueryEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EAttribute getXMLValueFunctionQuery_EmptyHandlingOption() {
+        return (EAttribute)xmlValueFunctionQueryEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLValueFunctionQuery_XqueryExpr() {
+        return (EReference)xmlValueFunctionQueryEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLValueFunctionQuery_XqueryArgList() {
+        return (EReference)xmlValueFunctionQueryEClass.getEStructuralFeatures().get(2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLValueFunctionQuery_QueryReturning() {
+        return (EReference)xmlValueFunctionQueryEClass.getEStructuralFeatures().get(3);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLValueFunctionText() {
+        return xmlValueFunctionTextEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EAttribute getXMLValueFunctionText_ReturningOption() {
+        return (EAttribute)xmlValueFunctionTextEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLValueFunctionText_TextContent() {
+        return (EReference)xmlValueFunctionTextEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLValueFunctionValidate() {
+        return xmlValueFunctionValidateEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EAttribute getXMLValueFunctionValidate_ContentOption() {
+        return (EAttribute)xmlValueFunctionValidateEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLValueFunctionValidate_ValidateContent() {
+        return (EReference)xmlValueFunctionValidateEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLValueFunctionValidate_ValidateAccordingTo() {
+        return (EReference)xmlValueFunctionValidateEClass.getEStructuralFeatures().get(2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLValueExpressionCast() {
+        return xmlValueExpressionCastEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EAttribute getXMLValueExpressionCast_PassingMechanism() {
+        return (EAttribute)xmlValueExpressionCastEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLPredicate() {
+        return xmlPredicateEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLPredicateContent() {
+        return xmlPredicateContentEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLPredicateDocument() {
+        return xmlPredicateDocumentEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLPredicateExists() {
+        return xmlPredicateExistsEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLPredicateExists_XqueryExpr() {
+        return (EReference)xmlPredicateExistsEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLPredicateExists_XqueryArgList() {
+        return (EReference)xmlPredicateExistsEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLPredicateValid() {
+        return xmlPredicateValidEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLQueryExpression() {
+        return xmlQueryExpressionEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EAttribute getXMLQueryExpression_XqueryExprContent() {
+        return (EAttribute)xmlQueryExpressionEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLQueryExpression_PredicateExists() {
+        return (EReference)xmlQueryExpressionEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLQueryExpression_ValueFunctionQuery() {
+        return (EReference)xmlQueryExpressionEClass.getEStructuralFeatures().get(2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLQueryArgumentList() {
+        return xmlQueryArgumentListEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EAttribute getXMLQueryArgumentList_PassingMechanism() {
+        return (EAttribute)xmlQueryArgumentListEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLQueryArgumentList_PredicateExists() {
+        return (EReference)xmlQueryArgumentListEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLQueryArgumentList_XqueryArgListChildren() {
+        return (EReference)xmlQueryArgumentListEClass.getEStructuralFeatures().get(2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLQueryArgumentList_ValueFunctionQuery() {
+        return (EReference)xmlQueryArgumentListEClass.getEStructuralFeatures().get(3);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLQueryArgumentList_TableFunction() {
+        return (EReference)xmlQueryArgumentListEClass.getEStructuralFeatures().get(4);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLQueryArgumentItem() {
+        return xmlQueryArgumentItemEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EAttribute getXMLQueryArgumentItem_PassingMechanism() {
+        return (EAttribute)xmlQueryArgumentItemEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLQueryArgumentItem_XqueryArgList() {
+        return (EReference)xmlQueryArgumentItemEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLQueryArgumentItem_ValueExpr() {
+        return (EReference)xmlQueryArgumentItemEClass.getEStructuralFeatures().get(2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLSerializeFunction() {
+        return xmlSerializeFunctionEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EAttribute getXMLSerializeFunction_ContentOption() {
+        return (EAttribute)xmlSerializeFunctionEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EAttribute getXMLSerializeFunction_SerializeVersion() {
+        return (EAttribute)xmlSerializeFunctionEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EAttribute getXMLSerializeFunction_DeclarationOption() {
+        return (EAttribute)xmlSerializeFunctionEClass.getEStructuralFeatures().get(2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLSerializeFunction_SerializeTarget() {
+        return (EReference)xmlSerializeFunctionEClass.getEStructuralFeatures().get(3);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLSerializeFunction_SerializeEncoding() {
+        return (EReference)xmlSerializeFunctionEClass.getEStructuralFeatures().get(4);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLSerializeFunctionTarget() {
+        return xmlSerializeFunctionTargetEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLSerializeFunctionTarget_SerializeFunction() {
+        return (EReference)xmlSerializeFunctionTargetEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLSerializeFunctionTarget_ValueExpr() {
+        return (EReference)xmlSerializeFunctionTargetEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLAggregateFunction() {
+        return xmlAggregateFunctionEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EAttribute getXMLAggregateFunction_ReturningOption() {
+        return (EAttribute)xmlAggregateFunctionEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLAggregateFunction_SortSpecList() {
+        return (EReference)xmlAggregateFunctionEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLValueFunctionConcatContentItem() {
+        return xmlValueFunctionConcatContentItemEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLValueFunctionConcatContentItem_ValueFunctionConcat() {
+        return (EReference)xmlValueFunctionConcatContentItemEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLValueFunctionConcatContentItem_ValueExpr() {
+        return (EReference)xmlValueFunctionConcatContentItemEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLValueFunctionCommentContent() {
+        return xmlValueFunctionCommentContentEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLValueFunctionCommentContent_ValueFunctionComment() {
+        return (EReference)xmlValueFunctionCommentContentEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLValueFunctionCommentContent_ValueExpr() {
+        return (EReference)xmlValueFunctionCommentContentEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLValueFunctionDocumentContent() {
+        return xmlValueFunctionDocumentContentEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLValueFunctionDocumentContent_ValueFunctionDocument() {
+        return (EReference)xmlValueFunctionDocumentContentEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLValueFunctionDocumentContent_ValueExpr() {
+        return (EReference)xmlValueFunctionDocumentContentEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLAggregateSortSpecification() {
+        return xmlAggregateSortSpecificationEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLAggregateSortSpecification_AggregateFunction() {
+        return (EReference)xmlAggregateSortSpecificationEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLAggregateSortSpecification_OrderBySpec() {
+        return (EReference)xmlAggregateSortSpecificationEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLValueFunctionForestContentItem() {
+        return xmlValueFunctionForestContentItemEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLValueFunctionForestContentItem_ValueFunctionForest() {
+        return (EReference)xmlValueFunctionForestContentItemEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLValueFunctionForestContentItem_ValueExpr() {
+        return (EReference)xmlValueFunctionForestContentItemEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLValueFunctionParseContent() {
+        return xmlValueFunctionParseContentEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLValueFunctionParseContent_ValueFunctionParse() {
+        return (EReference)xmlValueFunctionParseContentEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLValueFunctionParseContent_ValueExpr() {
+        return (EReference)xmlValueFunctionParseContentEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLValueFunctionPIContent() {
+        return xmlValueFunctionPIContentEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLValueFunctionPIContent_ValueFunctionPI() {
+        return (EReference)xmlValueFunctionPIContentEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLValueFunctionPIContent_ValueExpr() {
+        return (EReference)xmlValueFunctionPIContentEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLTableFunction() {
+        return xmlTableFunctionEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EAttribute getXMLTableFunction_TableRowPattern() {
+        return (EAttribute)xmlTableFunctionEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLTableFunction_XqueryArgList() {
+        return (EReference)xmlTableFunctionEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLTableFunction_ColumnDefList() {
+        return (EReference)xmlTableFunctionEClass.getEStructuralFeatures().get(2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLTableFunction_NamespacesDecl() {
+        return (EReference)xmlTableFunctionEClass.getEStructuralFeatures().get(3);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLValueFunctionTextContent() {
+        return xmlValueFunctionTextContentEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLValueFunctionTextContent_ValueFunctionText() {
+        return (EReference)xmlValueFunctionTextContentEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLValueFunctionTextContent_ValueExpr() {
+        return (EReference)xmlValueFunctionTextContentEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLValueFunctionValidateContent() {
+        return xmlValueFunctionValidateContentEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLValueFunctionValidateContent_ValueFunctionValidate() {
+        return (EReference)xmlValueFunctionValidateContentEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLValueFunctionValidateContent_ValueExpr() {
+        return (EReference)xmlValueFunctionValidateContentEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLTableColumnDefinitionItem() {
+        return xmlTableColumnDefinitionItemEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLTableColumnDefinitionItem_TableFunction() {
+        return (EReference)xmlTableColumnDefinitionItemEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLTableColumnDefinitionRegular() {
+        return xmlTableColumnDefinitionRegularEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLTableColumnDefinitionRegular_DataType() {
+        return (EReference)xmlTableColumnDefinitionRegularEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EAttribute getXMLTableColumnDefinitionRegular_PassingOption() {
+        return (EAttribute)xmlTableColumnDefinitionRegularEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EAttribute getXMLTableColumnDefinitionRegular_TableColumnPattern() {
+        return (EAttribute)xmlTableColumnDefinitionRegularEClass.getEStructuralFeatures().get(2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLTableColumnDefinitionRegular_ColumnDefinitionDefault() {
+        return (EReference)xmlTableColumnDefinitionRegularEClass.getEStructuralFeatures().get(3);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLTableColumnDefinitionOrdinality() {
+        return xmlTableColumnDefinitionOrdinalityEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLValueFunctionValidateAccordingTo() {
+        return xmlValueFunctionValidateAccordingToEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLValueFunctionValidateAccordingTo_ValueFunctionValidate() {
+        return (EReference)xmlValueFunctionValidateAccordingToEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLValueFunctionValidateAccordingTo_ValidateElement() {
+        return (EReference)xmlValueFunctionValidateAccordingToEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLValueFunctionValidateAccordingToURI() {
+        return xmlValueFunctionValidateAccordingToURIEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EAttribute getXMLValueFunctionValidateAccordingToURI_NoNamespace() {
+        return (EAttribute)xmlValueFunctionValidateAccordingToURIEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EAttribute getXMLValueFunctionValidateAccordingToURI_TargetNamespaceURI() {
+        return (EAttribute)xmlValueFunctionValidateAccordingToURIEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EAttribute getXMLValueFunctionValidateAccordingToURI_SchemaLocationURI() {
+        return (EAttribute)xmlValueFunctionValidateAccordingToURIEClass.getEStructuralFeatures().get(2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLValueFunctionValidateAccordingToIdentifier() {
+        return xmlValueFunctionValidateAccordingToIdentifierEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EAttribute getXMLValueFunctionValidateAccordingToIdentifier_SchemaName() {
+        return (EAttribute)xmlValueFunctionValidateAccordingToIdentifierEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EAttribute getXMLValueFunctionValidateAccordingToIdentifier_RegisteredXMLSchemaName() {
+        return (EAttribute)xmlValueFunctionValidateAccordingToIdentifierEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLValueFunctionValidateElementName() {
+        return xmlValueFunctionValidateElementNameEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLValueFunctionValidateElementName_ValidateElement() {
+        return (EReference)xmlValueFunctionValidateElementNameEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLValueFunctionValidateElementNamespace() {
+        return xmlValueFunctionValidateElementNamespaceEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EAttribute getXMLValueFunctionValidateElementNamespace_NoNamespace() {
+        return (EAttribute)xmlValueFunctionValidateElementNamespaceEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EAttribute getXMLValueFunctionValidateElementNamespace_NamespaceURI() {
+        return (EAttribute)xmlValueFunctionValidateElementNamespaceEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLValueFunctionValidateElementNamespace_ValidateElement() {
+        return (EReference)xmlValueFunctionValidateElementNamespaceEClass.getEStructuralFeatures().get(2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLNamespacesDeclaration() {
+        return xmlNamespacesDeclarationEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLNamespacesDeclaration_NamespaceDecltemList() {
+        return (EReference)xmlNamespacesDeclarationEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLNamespacesDeclaration_ValueFunctionElement() {
+        return (EReference)xmlNamespacesDeclarationEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLNamespacesDeclaration_ValueFunctionForest() {
+        return (EReference)xmlNamespacesDeclarationEClass.getEStructuralFeatures().get(2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLNamespacesDeclaration_TableFunction() {
+        return (EReference)xmlNamespacesDeclarationEClass.getEStructuralFeatures().get(3);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLAttributesDeclaration() {
+        return xmlAttributesDeclarationEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLAttributesDeclaration_ValueFunctionElement() {
+        return (EReference)xmlAttributesDeclarationEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLAttributesDeclaration_AttributeDeclItem() {
+        return (EReference)xmlAttributesDeclarationEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLValueFunctionElementContentList() {
+        return xmlValueFunctionElementContentListEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EAttribute getXMLValueFunctionElementContentList_NullHandlingOption() {
+        return (EAttribute)xmlValueFunctionElementContentListEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLValueFunctionElementContentList_ValueFunctionElement() {
+        return (EReference)xmlValueFunctionElementContentListEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLValueFunctionElementContentList_ElementContentListChildren() {
+        return (EReference)xmlValueFunctionElementContentListEClass.getEStructuralFeatures().get(2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLValueFunctionQueryReturning() {
+        return xmlValueFunctionQueryReturningEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EAttribute getXMLValueFunctionQueryReturning_ReturningOption() {
+        return (EAttribute)xmlValueFunctionQueryReturningEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EAttribute getXMLValueFunctionQueryReturning_PassingOption() {
+        return (EAttribute)xmlValueFunctionQueryReturningEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLValueFunctionQueryReturning_ValueFunctionQuery() {
+        return (EReference)xmlValueFunctionQueryReturningEClass.getEStructuralFeatures().get(2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLValueFunctionValidateElement() {
+        return xmlValueFunctionValidateElementEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLValueFunctionValidateElement_ValidateElementNamespace() {
+        return (EReference)xmlValueFunctionValidateElementEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLValueFunctionValidateElement_ValidateElementName() {
+        return (EReference)xmlValueFunctionValidateElementEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLValueFunctionValidateElement_ValidateAccordingTo() {
+        return (EReference)xmlValueFunctionValidateElementEClass.getEStructuralFeatures().get(2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLTableColumnDefinitionDefault() {
+        return xmlTableColumnDefinitionDefaultEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLTableColumnDefinitionDefault_ValueExpr() {
+        return (EReference)xmlTableColumnDefinitionDefaultEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EReference getXMLTableColumnDefinitionDefault_ColumnDefinitionRegular() {
+        return (EReference)xmlTableColumnDefinitionDefaultEClass.getEStructuralFeatures().get(1);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EClass getXMLSerializeFunctionEncoding() {
+        return xmlSerializeFunctionEncodingEClass;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EAttribute getXMLSerializeFunctionEncoding_EncodingName() {
+        return (EAttribute)xmlSerializeFunctionEncodingEClass.getEStructuralFeatures().get(0);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EEnum getXMLPassingType() {
+        return xmlPassingTypeEEnum;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EEnum getXMLContentType() {
+        return xmlContentTypeEEnum;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EEnum getXMLDeclarationType() {
+        return xmlDeclarationTypeEEnum;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EEnum getXMLReturningType() {
+        return xmlReturningTypeEEnum;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EEnum getXMLNullHandlingType() {
+        return xmlNullHandlingTypeEEnum;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EEnum getXMLWhitespaceHandlingType() {
+        return xmlWhitespaceHandlingTypeEEnum;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EEnum getXMLEmptyHandlingType() {
+        return xmlEmptyHandlingTypeEEnum;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EEnum getXMLContentType2() {
+        return xmlContentType2EEnum;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public SQLXMLQueryModelFactory getSQLXMLQueryModelFactory() {
+        return (SQLXMLQueryModelFactory)getEFactoryInstance();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private boolean isCreated = false;
+
+	/**
+     * Creates the meta-model objects for the package.  This method is
+     * guarded to have no affect on any invocation but its first.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void createPackageContents() {
+        if (isCreated) return;
+        isCreated = true;
+
+        // Create classes and their features
+        xmlValueFunctionConcatEClass = createEClass(XML_VALUE_FUNCTION_CONCAT);
+        createEAttribute(xmlValueFunctionConcatEClass, XML_VALUE_FUNCTION_CONCAT__RETURNING_OPTION);
+        createEReference(xmlValueFunctionConcatEClass, XML_VALUE_FUNCTION_CONCAT__CONCAT_CONTENT_LIST);
+
+        xmlValueFunctionEClass = createEClass(XML_VALUE_FUNCTION);
+
+        xmlNamespaceDeclarationPrefixEClass = createEClass(XML_NAMESPACE_DECLARATION_PREFIX);
+        createEAttribute(xmlNamespaceDeclarationPrefixEClass, XML_NAMESPACE_DECLARATION_PREFIX__PREFIX);
+
+        xmlNamespaceDeclarationDefaultEClass = createEClass(XML_NAMESPACE_DECLARATION_DEFAULT);
+        createEAttribute(xmlNamespaceDeclarationDefaultEClass, XML_NAMESPACE_DECLARATION_DEFAULT__NO_DEFAULT);
+
+        xmlAttributeDeclarationItemEClass = createEClass(XML_ATTRIBUTE_DECLARATION_ITEM);
+        createEReference(xmlAttributeDeclarationItemEClass, XML_ATTRIBUTE_DECLARATION_ITEM__VALUE_EXPR);
+        createEReference(xmlAttributeDeclarationItemEClass, XML_ATTRIBUTE_DECLARATION_ITEM__ATTRIBUTES_DECL);
+
+        xmlValueFunctionElementEClass = createEClass(XML_VALUE_FUNCTION_ELEMENT);
+        createEAttribute(xmlValueFunctionElementEClass, XML_VALUE_FUNCTION_ELEMENT__ELEMENT_NAME);
+        createEAttribute(xmlValueFunctionElementEClass, XML_VALUE_FUNCTION_ELEMENT__RETURNING_OPTION);
+        createEReference(xmlValueFunctionElementEClass, XML_VALUE_FUNCTION_ELEMENT__NAMESPACES_DECL);
+        createEReference(xmlValueFunctionElementEClass, XML_VALUE_FUNCTION_ELEMENT__ATTRIBUTES_DECL);
+        createEReference(xmlValueFunctionElementEClass, XML_VALUE_FUNCTION_ELEMENT__ELEMENT_CONTENT_LIST);
+
+        xmlNamespaceDeclarationItemEClass = createEClass(XML_NAMESPACE_DECLARATION_ITEM);
+        createEAttribute(xmlNamespaceDeclarationItemEClass, XML_NAMESPACE_DECLARATION_ITEM__URI);
+        createEReference(xmlNamespaceDeclarationItemEClass, XML_NAMESPACE_DECLARATION_ITEM__NAMESPACES_DECL);
+
+        xmlValueFunctionElementContentItemEClass = createEClass(XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM);
+        createEReference(xmlValueFunctionElementContentItemEClass, XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__VALUE_EXPR);
+        createEReference(xmlValueFunctionElementContentItemEClass, XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__ELEMENT_CONTENT_LIST);
+
+        xmlValueFunctionForestEClass = createEClass(XML_VALUE_FUNCTION_FOREST);
+        createEAttribute(xmlValueFunctionForestEClass, XML_VALUE_FUNCTION_FOREST__NULL_HANDLING_OPTION);
+        createEAttribute(xmlValueFunctionForestEClass, XML_VALUE_FUNCTION_FOREST__RETURNING_OPTION);
+        createEReference(xmlValueFunctionForestEClass, XML_VALUE_FUNCTION_FOREST__FOREST_CONTENT_LIST);
+        createEReference(xmlValueFunctionForestEClass, XML_VALUE_FUNCTION_FOREST__NAMESPACES_DECL);
+
+        xmlValueFunctionCommentEClass = createEClass(XML_VALUE_FUNCTION_COMMENT);
+        createEAttribute(xmlValueFunctionCommentEClass, XML_VALUE_FUNCTION_COMMENT__RETURNING_OPTION);
+        createEReference(xmlValueFunctionCommentEClass, XML_VALUE_FUNCTION_COMMENT__COMMENT_CONTENT);
+
+        xmlValueFunctionDocumentEClass = createEClass(XML_VALUE_FUNCTION_DOCUMENT);
+        createEAttribute(xmlValueFunctionDocumentEClass, XML_VALUE_FUNCTION_DOCUMENT__RETURNING_OPTION);
+        createEReference(xmlValueFunctionDocumentEClass, XML_VALUE_FUNCTION_DOCUMENT__DOCUMENT_CONTENT);
+
+        xmlValueFunctionParseEClass = createEClass(XML_VALUE_FUNCTION_PARSE);
+        createEAttribute(xmlValueFunctionParseEClass, XML_VALUE_FUNCTION_PARSE__CONTENT_OPTION);
+        createEAttribute(xmlValueFunctionParseEClass, XML_VALUE_FUNCTION_PARSE__WHITESPACE_HANDLING_OPTION);
+        createEReference(xmlValueFunctionParseEClass, XML_VALUE_FUNCTION_PARSE__PARSE_CONTENT);
+
+        xmlValueFunctionPIEClass = createEClass(XML_VALUE_FUNCTION_PI);
+        createEAttribute(xmlValueFunctionPIEClass, XML_VALUE_FUNCTION_PI__TARGET_NAME);
+        createEAttribute(xmlValueFunctionPIEClass, XML_VALUE_FUNCTION_PI__RETURNING_OPTION);
+        createEReference(xmlValueFunctionPIEClass, XML_VALUE_FUNCTION_PI__PI_CONTENT);
+
+        xmlValueFunctionQueryEClass = createEClass(XML_VALUE_FUNCTION_QUERY);
+        createEAttribute(xmlValueFunctionQueryEClass, XML_VALUE_FUNCTION_QUERY__EMPTY_HANDLING_OPTION);
+        createEReference(xmlValueFunctionQueryEClass, XML_VALUE_FUNCTION_QUERY__XQUERY_EXPR);
+        createEReference(xmlValueFunctionQueryEClass, XML_VALUE_FUNCTION_QUERY__XQUERY_ARG_LIST);
+        createEReference(xmlValueFunctionQueryEClass, XML_VALUE_FUNCTION_QUERY__QUERY_RETURNING);
+
+        xmlValueFunctionTextEClass = createEClass(XML_VALUE_FUNCTION_TEXT);
+        createEAttribute(xmlValueFunctionTextEClass, XML_VALUE_FUNCTION_TEXT__RETURNING_OPTION);
+        createEReference(xmlValueFunctionTextEClass, XML_VALUE_FUNCTION_TEXT__TEXT_CONTENT);
+
+        xmlValueFunctionValidateEClass = createEClass(XML_VALUE_FUNCTION_VALIDATE);
+        createEAttribute(xmlValueFunctionValidateEClass, XML_VALUE_FUNCTION_VALIDATE__CONTENT_OPTION);
+        createEReference(xmlValueFunctionValidateEClass, XML_VALUE_FUNCTION_VALIDATE__VALIDATE_CONTENT);
+        createEReference(xmlValueFunctionValidateEClass, XML_VALUE_FUNCTION_VALIDATE__VALIDATE_ACCORDING_TO);
+
+        xmlValueExpressionCastEClass = createEClass(XML_VALUE_EXPRESSION_CAST);
+        createEAttribute(xmlValueExpressionCastEClass, XML_VALUE_EXPRESSION_CAST__PASSING_MECHANISM);
+
+        xmlPredicateEClass = createEClass(XML_PREDICATE);
+
+        xmlPredicateContentEClass = createEClass(XML_PREDICATE_CONTENT);
+
+        xmlPredicateDocumentEClass = createEClass(XML_PREDICATE_DOCUMENT);
+
+        xmlPredicateExistsEClass = createEClass(XML_PREDICATE_EXISTS);
+        createEReference(xmlPredicateExistsEClass, XML_PREDICATE_EXISTS__XQUERY_EXPR);
+        createEReference(xmlPredicateExistsEClass, XML_PREDICATE_EXISTS__XQUERY_ARG_LIST);
+
+        xmlPredicateValidEClass = createEClass(XML_PREDICATE_VALID);
+
+        xmlQueryExpressionEClass = createEClass(XML_QUERY_EXPRESSION);
+        createEAttribute(xmlQueryExpressionEClass, XML_QUERY_EXPRESSION__XQUERY_EXPR_CONTENT);
+        createEReference(xmlQueryExpressionEClass, XML_QUERY_EXPRESSION__PREDICATE_EXISTS);
+        createEReference(xmlQueryExpressionEClass, XML_QUERY_EXPRESSION__VALUE_FUNCTION_QUERY);
+
+        xmlQueryArgumentListEClass = createEClass(XML_QUERY_ARGUMENT_LIST);
+        createEAttribute(xmlQueryArgumentListEClass, XML_QUERY_ARGUMENT_LIST__PASSING_MECHANISM);
+        createEReference(xmlQueryArgumentListEClass, XML_QUERY_ARGUMENT_LIST__PREDICATE_EXISTS);
+        createEReference(xmlQueryArgumentListEClass, XML_QUERY_ARGUMENT_LIST__XQUERY_ARG_LIST_CHILDREN);
+        createEReference(xmlQueryArgumentListEClass, XML_QUERY_ARGUMENT_LIST__VALUE_FUNCTION_QUERY);
+        createEReference(xmlQueryArgumentListEClass, XML_QUERY_ARGUMENT_LIST__TABLE_FUNCTION);
+
+        xmlQueryArgumentItemEClass = createEClass(XML_QUERY_ARGUMENT_ITEM);
+        createEAttribute(xmlQueryArgumentItemEClass, XML_QUERY_ARGUMENT_ITEM__PASSING_MECHANISM);
+        createEReference(xmlQueryArgumentItemEClass, XML_QUERY_ARGUMENT_ITEM__XQUERY_ARG_LIST);
+        createEReference(xmlQueryArgumentItemEClass, XML_QUERY_ARGUMENT_ITEM__VALUE_EXPR);
+
+        xmlSerializeFunctionEClass = createEClass(XML_SERIALIZE_FUNCTION);
+        createEAttribute(xmlSerializeFunctionEClass, XML_SERIALIZE_FUNCTION__CONTENT_OPTION);
+        createEAttribute(xmlSerializeFunctionEClass, XML_SERIALIZE_FUNCTION__SERIALIZE_VERSION);
+        createEAttribute(xmlSerializeFunctionEClass, XML_SERIALIZE_FUNCTION__DECLARATION_OPTION);
+        createEReference(xmlSerializeFunctionEClass, XML_SERIALIZE_FUNCTION__SERIALIZE_TARGET);
+        createEReference(xmlSerializeFunctionEClass, XML_SERIALIZE_FUNCTION__SERIALIZE_ENCODING);
+
+        xmlSerializeFunctionTargetEClass = createEClass(XML_SERIALIZE_FUNCTION_TARGET);
+        createEReference(xmlSerializeFunctionTargetEClass, XML_SERIALIZE_FUNCTION_TARGET__SERIALIZE_FUNCTION);
+        createEReference(xmlSerializeFunctionTargetEClass, XML_SERIALIZE_FUNCTION_TARGET__VALUE_EXPR);
+
+        xmlAggregateFunctionEClass = createEClass(XML_AGGREGATE_FUNCTION);
+        createEAttribute(xmlAggregateFunctionEClass, XML_AGGREGATE_FUNCTION__RETURNING_OPTION);
+        createEReference(xmlAggregateFunctionEClass, XML_AGGREGATE_FUNCTION__SORT_SPEC_LIST);
+
+        xmlValueFunctionConcatContentItemEClass = createEClass(XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM);
+        createEReference(xmlValueFunctionConcatContentItemEClass, XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__VALUE_FUNCTION_CONCAT);
+        createEReference(xmlValueFunctionConcatContentItemEClass, XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__VALUE_EXPR);
+
+        xmlValueFunctionCommentContentEClass = createEClass(XML_VALUE_FUNCTION_COMMENT_CONTENT);
+        createEReference(xmlValueFunctionCommentContentEClass, XML_VALUE_FUNCTION_COMMENT_CONTENT__VALUE_FUNCTION_COMMENT);
+        createEReference(xmlValueFunctionCommentContentEClass, XML_VALUE_FUNCTION_COMMENT_CONTENT__VALUE_EXPR);
+
+        xmlValueFunctionDocumentContentEClass = createEClass(XML_VALUE_FUNCTION_DOCUMENT_CONTENT);
+        createEReference(xmlValueFunctionDocumentContentEClass, XML_VALUE_FUNCTION_DOCUMENT_CONTENT__VALUE_FUNCTION_DOCUMENT);
+        createEReference(xmlValueFunctionDocumentContentEClass, XML_VALUE_FUNCTION_DOCUMENT_CONTENT__VALUE_EXPR);
+
+        xmlAggregateSortSpecificationEClass = createEClass(XML_AGGREGATE_SORT_SPECIFICATION);
+        createEReference(xmlAggregateSortSpecificationEClass, XML_AGGREGATE_SORT_SPECIFICATION__AGGREGATE_FUNCTION);
+        createEReference(xmlAggregateSortSpecificationEClass, XML_AGGREGATE_SORT_SPECIFICATION__ORDER_BY_SPEC);
+
+        xmlValueFunctionForestContentItemEClass = createEClass(XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM);
+        createEReference(xmlValueFunctionForestContentItemEClass, XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__VALUE_FUNCTION_FOREST);
+        createEReference(xmlValueFunctionForestContentItemEClass, XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__VALUE_EXPR);
+
+        xmlValueFunctionParseContentEClass = createEClass(XML_VALUE_FUNCTION_PARSE_CONTENT);
+        createEReference(xmlValueFunctionParseContentEClass, XML_VALUE_FUNCTION_PARSE_CONTENT__VALUE_FUNCTION_PARSE);
+        createEReference(xmlValueFunctionParseContentEClass, XML_VALUE_FUNCTION_PARSE_CONTENT__VALUE_EXPR);
+
+        xmlValueFunctionPIContentEClass = createEClass(XML_VALUE_FUNCTION_PI_CONTENT);
+        createEReference(xmlValueFunctionPIContentEClass, XML_VALUE_FUNCTION_PI_CONTENT__VALUE_FUNCTION_PI);
+        createEReference(xmlValueFunctionPIContentEClass, XML_VALUE_FUNCTION_PI_CONTENT__VALUE_EXPR);
+
+        xmlTableFunctionEClass = createEClass(XML_TABLE_FUNCTION);
+        createEAttribute(xmlTableFunctionEClass, XML_TABLE_FUNCTION__TABLE_ROW_PATTERN);
+        createEReference(xmlTableFunctionEClass, XML_TABLE_FUNCTION__XQUERY_ARG_LIST);
+        createEReference(xmlTableFunctionEClass, XML_TABLE_FUNCTION__COLUMN_DEF_LIST);
+        createEReference(xmlTableFunctionEClass, XML_TABLE_FUNCTION__NAMESPACES_DECL);
+
+        xmlValueFunctionTextContentEClass = createEClass(XML_VALUE_FUNCTION_TEXT_CONTENT);
+        createEReference(xmlValueFunctionTextContentEClass, XML_VALUE_FUNCTION_TEXT_CONTENT__VALUE_FUNCTION_TEXT);
+        createEReference(xmlValueFunctionTextContentEClass, XML_VALUE_FUNCTION_TEXT_CONTENT__VALUE_EXPR);
+
+        xmlValueFunctionValidateContentEClass = createEClass(XML_VALUE_FUNCTION_VALIDATE_CONTENT);
+        createEReference(xmlValueFunctionValidateContentEClass, XML_VALUE_FUNCTION_VALIDATE_CONTENT__VALUE_FUNCTION_VALIDATE);
+        createEReference(xmlValueFunctionValidateContentEClass, XML_VALUE_FUNCTION_VALIDATE_CONTENT__VALUE_EXPR);
+
+        xmlTableColumnDefinitionItemEClass = createEClass(XML_TABLE_COLUMN_DEFINITION_ITEM);
+        createEReference(xmlTableColumnDefinitionItemEClass, XML_TABLE_COLUMN_DEFINITION_ITEM__TABLE_FUNCTION);
+
+        xmlTableColumnDefinitionRegularEClass = createEClass(XML_TABLE_COLUMN_DEFINITION_REGULAR);
+        createEReference(xmlTableColumnDefinitionRegularEClass, XML_TABLE_COLUMN_DEFINITION_REGULAR__DATA_TYPE);
+        createEAttribute(xmlTableColumnDefinitionRegularEClass, XML_TABLE_COLUMN_DEFINITION_REGULAR__PASSING_OPTION);
+        createEAttribute(xmlTableColumnDefinitionRegularEClass, XML_TABLE_COLUMN_DEFINITION_REGULAR__TABLE_COLUMN_PATTERN);
+        createEReference(xmlTableColumnDefinitionRegularEClass, XML_TABLE_COLUMN_DEFINITION_REGULAR__COLUMN_DEFINITION_DEFAULT);
+
+        xmlTableColumnDefinitionOrdinalityEClass = createEClass(XML_TABLE_COLUMN_DEFINITION_ORDINALITY);
+
+        xmlValueFunctionValidateAccordingToEClass = createEClass(XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO);
+        createEReference(xmlValueFunctionValidateAccordingToEClass, XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__VALUE_FUNCTION_VALIDATE);
+        createEReference(xmlValueFunctionValidateAccordingToEClass, XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__VALIDATE_ELEMENT);
+
+        xmlValueFunctionValidateAccordingToURIEClass = createEClass(XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_URI);
+        createEAttribute(xmlValueFunctionValidateAccordingToURIEClass, XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_URI__NO_NAMESPACE);
+        createEAttribute(xmlValueFunctionValidateAccordingToURIEClass, XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_URI__TARGET_NAMESPACE_URI);
+        createEAttribute(xmlValueFunctionValidateAccordingToURIEClass, XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_URI__SCHEMA_LOCATION_URI);
+
+        xmlValueFunctionValidateAccordingToIdentifierEClass = createEClass(XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_IDENTIFIER);
+        createEAttribute(xmlValueFunctionValidateAccordingToIdentifierEClass, XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_IDENTIFIER__SCHEMA_NAME);
+        createEAttribute(xmlValueFunctionValidateAccordingToIdentifierEClass, XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_IDENTIFIER__REGISTERED_XML_SCHEMA_NAME);
+
+        xmlValueFunctionValidateElementNameEClass = createEClass(XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAME);
+        createEReference(xmlValueFunctionValidateElementNameEClass, XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAME__VALIDATE_ELEMENT);
+
+        xmlValueFunctionValidateElementNamespaceEClass = createEClass(XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAMESPACE);
+        createEAttribute(xmlValueFunctionValidateElementNamespaceEClass, XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAMESPACE__NO_NAMESPACE);
+        createEAttribute(xmlValueFunctionValidateElementNamespaceEClass, XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAMESPACE__NAMESPACE_URI);
+        createEReference(xmlValueFunctionValidateElementNamespaceEClass, XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAMESPACE__VALIDATE_ELEMENT);
+
+        xmlNamespacesDeclarationEClass = createEClass(XML_NAMESPACES_DECLARATION);
+        createEReference(xmlNamespacesDeclarationEClass, XML_NAMESPACES_DECLARATION__NAMESPACE_DECLTEM_LIST);
+        createEReference(xmlNamespacesDeclarationEClass, XML_NAMESPACES_DECLARATION__VALUE_FUNCTION_ELEMENT);
+        createEReference(xmlNamespacesDeclarationEClass, XML_NAMESPACES_DECLARATION__VALUE_FUNCTION_FOREST);
+        createEReference(xmlNamespacesDeclarationEClass, XML_NAMESPACES_DECLARATION__TABLE_FUNCTION);
+
+        xmlAttributesDeclarationEClass = createEClass(XML_ATTRIBUTES_DECLARATION);
+        createEReference(xmlAttributesDeclarationEClass, XML_ATTRIBUTES_DECLARATION__VALUE_FUNCTION_ELEMENT);
+        createEReference(xmlAttributesDeclarationEClass, XML_ATTRIBUTES_DECLARATION__ATTRIBUTE_DECL_ITEM);
+
+        xmlValueFunctionElementContentListEClass = createEClass(XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST);
+        createEAttribute(xmlValueFunctionElementContentListEClass, XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST__NULL_HANDLING_OPTION);
+        createEReference(xmlValueFunctionElementContentListEClass, XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST__VALUE_FUNCTION_ELEMENT);
+        createEReference(xmlValueFunctionElementContentListEClass, XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST__ELEMENT_CONTENT_LIST_CHILDREN);
+
+        xmlValueFunctionQueryReturningEClass = createEClass(XML_VALUE_FUNCTION_QUERY_RETURNING);
+        createEAttribute(xmlValueFunctionQueryReturningEClass, XML_VALUE_FUNCTION_QUERY_RETURNING__RETURNING_OPTION);
+        createEAttribute(xmlValueFunctionQueryReturningEClass, XML_VALUE_FUNCTION_QUERY_RETURNING__PASSING_OPTION);
+        createEReference(xmlValueFunctionQueryReturningEClass, XML_VALUE_FUNCTION_QUERY_RETURNING__VALUE_FUNCTION_QUERY);
+
+        xmlValueFunctionValidateElementEClass = createEClass(XML_VALUE_FUNCTION_VALIDATE_ELEMENT);
+        createEReference(xmlValueFunctionValidateElementEClass, XML_VALUE_FUNCTION_VALIDATE_ELEMENT__VALIDATE_ELEMENT_NAMESPACE);
+        createEReference(xmlValueFunctionValidateElementEClass, XML_VALUE_FUNCTION_VALIDATE_ELEMENT__VALIDATE_ELEMENT_NAME);
+        createEReference(xmlValueFunctionValidateElementEClass, XML_VALUE_FUNCTION_VALIDATE_ELEMENT__VALIDATE_ACCORDING_TO);
+
+        xmlTableColumnDefinitionDefaultEClass = createEClass(XML_TABLE_COLUMN_DEFINITION_DEFAULT);
+        createEReference(xmlTableColumnDefinitionDefaultEClass, XML_TABLE_COLUMN_DEFINITION_DEFAULT__VALUE_EXPR);
+        createEReference(xmlTableColumnDefinitionDefaultEClass, XML_TABLE_COLUMN_DEFINITION_DEFAULT__COLUMN_DEFINITION_REGULAR);
+
+        xmlSerializeFunctionEncodingEClass = createEClass(XML_SERIALIZE_FUNCTION_ENCODING);
+        createEAttribute(xmlSerializeFunctionEncodingEClass, XML_SERIALIZE_FUNCTION_ENCODING__ENCODING_NAME);
+
+        // Create enums
+        xmlPassingTypeEEnum = createEEnum(XML_PASSING_TYPE);
+        xmlContentTypeEEnum = createEEnum(XML_CONTENT_TYPE);
+        xmlDeclarationTypeEEnum = createEEnum(XML_DECLARATION_TYPE);
+        xmlReturningTypeEEnum = createEEnum(XML_RETURNING_TYPE);
+        xmlNullHandlingTypeEEnum = createEEnum(XML_NULL_HANDLING_TYPE);
+        xmlWhitespaceHandlingTypeEEnum = createEEnum(XML_WHITESPACE_HANDLING_TYPE);
+        xmlEmptyHandlingTypeEEnum = createEEnum(XML_EMPTY_HANDLING_TYPE);
+        xmlContentType2EEnum = createEEnum(XML_CONTENT_TYPE2);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    private boolean isInitialized = false;
+
+	/**
+     * Complete the initialization of the package and its meta-model.  This
+     * method is guarded to have no affect on any invocation but its first.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void initializePackageContents() {
+        if (isInitialized) return;
+        isInitialized = true;
+
+        // Initialize package
+        setName(eNAME);
+        setNsPrefix(eNS_PREFIX);
+        setNsURI(eNS_URI);
+
+        // Obtain other dependent packages
+        SQLQueryModelPackage theSQLQueryModelPackage = (SQLQueryModelPackage)EPackage.Registry.INSTANCE.getEPackage(SQLQueryModelPackage.eNS_URI);
+        SQLDataTypesPackage theSQLDataTypesPackage = (SQLDataTypesPackage)EPackage.Registry.INSTANCE.getEPackage(SQLDataTypesPackage.eNS_URI);
+
+        // Add supertypes to classes
+        xmlValueFunctionConcatEClass.getESuperTypes().add(this.getXMLValueFunction());
+        xmlValueFunctionEClass.getESuperTypes().add(theSQLQueryModelPackage.getValueExpressionFunction());
+        xmlNamespaceDeclarationPrefixEClass.getESuperTypes().add(this.getXMLNamespaceDeclarationItem());
+        xmlNamespaceDeclarationDefaultEClass.getESuperTypes().add(this.getXMLNamespaceDeclarationItem());
+        xmlAttributeDeclarationItemEClass.getESuperTypes().add(theSQLQueryModelPackage.getQueryValueExpression());
+        xmlValueFunctionElementEClass.getESuperTypes().add(this.getXMLValueFunction());
+        xmlNamespaceDeclarationItemEClass.getESuperTypes().add(theSQLQueryModelPackage.getSQLQueryObject());
+        xmlValueFunctionElementContentItemEClass.getESuperTypes().add(theSQLQueryModelPackage.getQueryValueExpression());
+        xmlValueFunctionForestEClass.getESuperTypes().add(this.getXMLValueFunction());
+        xmlValueFunctionCommentEClass.getESuperTypes().add(this.getXMLValueFunction());
+        xmlValueFunctionDocumentEClass.getESuperTypes().add(this.getXMLValueFunction());
+        xmlValueFunctionParseEClass.getESuperTypes().add(this.getXMLValueFunction());
+        xmlValueFunctionPIEClass.getESuperTypes().add(this.getXMLValueFunction());
+        xmlValueFunctionQueryEClass.getESuperTypes().add(this.getXMLValueFunction());
+        xmlValueFunctionTextEClass.getESuperTypes().add(this.getXMLValueFunction());
+        xmlValueFunctionValidateEClass.getESuperTypes().add(this.getXMLValueFunction());
+        xmlValueExpressionCastEClass.getESuperTypes().add(theSQLQueryModelPackage.getValueExpressionCast());
+        xmlPredicateEClass.getESuperTypes().add(theSQLQueryModelPackage.getPredicate());
+        xmlPredicateContentEClass.getESuperTypes().add(this.getXMLPredicate());
+        xmlPredicateDocumentEClass.getESuperTypes().add(this.getXMLPredicate());
+        xmlPredicateExistsEClass.getESuperTypes().add(this.getXMLPredicate());
+        xmlPredicateValidEClass.getESuperTypes().add(this.getXMLPredicate());
+        xmlQueryExpressionEClass.getESuperTypes().add(theSQLQueryModelPackage.getSQLQueryObject());
+        xmlQueryArgumentListEClass.getESuperTypes().add(theSQLQueryModelPackage.getSQLQueryObject());
+        xmlQueryArgumentItemEClass.getESuperTypes().add(theSQLQueryModelPackage.getQueryValueExpression());
+        xmlSerializeFunctionEClass.getESuperTypes().add(theSQLQueryModelPackage.getValueExpressionFunction());
+        xmlSerializeFunctionTargetEClass.getESuperTypes().add(theSQLQueryModelPackage.getQueryValueExpression());
+        xmlAggregateFunctionEClass.getESuperTypes().add(theSQLQueryModelPackage.getValueExpressionFunction());
+        xmlValueFunctionConcatContentItemEClass.getESuperTypes().add(theSQLQueryModelPackage.getQueryValueExpression());
+        xmlValueFunctionCommentContentEClass.getESuperTypes().add(theSQLQueryModelPackage.getQueryValueExpression());
+        xmlValueFunctionDocumentContentEClass.getESuperTypes().add(theSQLQueryModelPackage.getQueryValueExpression());
+        xmlAggregateSortSpecificationEClass.getESuperTypes().add(theSQLQueryModelPackage.getSQLQueryObject());
+        xmlValueFunctionForestContentItemEClass.getESuperTypes().add(theSQLQueryModelPackage.getQueryValueExpression());
+        xmlValueFunctionParseContentEClass.getESuperTypes().add(theSQLQueryModelPackage.getQueryValueExpression());
+        xmlValueFunctionPIContentEClass.getESuperTypes().add(theSQLQueryModelPackage.getQueryValueExpression());
+        xmlTableFunctionEClass.getESuperTypes().add(theSQLQueryModelPackage.getTableFunction());
+        xmlValueFunctionTextContentEClass.getESuperTypes().add(theSQLQueryModelPackage.getQueryValueExpression());
+        xmlValueFunctionValidateContentEClass.getESuperTypes().add(theSQLQueryModelPackage.getQueryValueExpression());
+        xmlTableColumnDefinitionItemEClass.getESuperTypes().add(theSQLQueryModelPackage.getSQLQueryObject());
+        xmlTableColumnDefinitionRegularEClass.getESuperTypes().add(this.getXMLTableColumnDefinitionItem());
+        xmlTableColumnDefinitionOrdinalityEClass.getESuperTypes().add(this.getXMLTableColumnDefinitionItem());
+        xmlValueFunctionValidateAccordingToEClass.getESuperTypes().add(theSQLQueryModelPackage.getSQLQueryObject());
+        xmlValueFunctionValidateAccordingToURIEClass.getESuperTypes().add(this.getXMLValueFunctionValidateAccordingTo());
+        xmlValueFunctionValidateAccordingToIdentifierEClass.getESuperTypes().add(this.getXMLValueFunctionValidateAccordingTo());
+        xmlValueFunctionValidateElementNameEClass.getESuperTypes().add(theSQLQueryModelPackage.getSQLQueryObject());
+        xmlValueFunctionValidateElementNamespaceEClass.getESuperTypes().add(theSQLQueryModelPackage.getSQLQueryObject());
+        xmlNamespacesDeclarationEClass.getESuperTypes().add(theSQLQueryModelPackage.getSQLQueryObject());
+        xmlValueFunctionElementContentListEClass.getESuperTypes().add(theSQLQueryModelPackage.getSQLQueryObject());
+        xmlValueFunctionQueryReturningEClass.getESuperTypes().add(theSQLQueryModelPackage.getSQLQueryObject());
+        xmlValueFunctionValidateElementEClass.getESuperTypes().add(theSQLQueryModelPackage.getSQLQueryObject());
+        xmlTableColumnDefinitionDefaultEClass.getESuperTypes().add(theSQLQueryModelPackage.getQueryValueExpression());
+        xmlSerializeFunctionEncodingEClass.getESuperTypes().add(theSQLQueryModelPackage.getSQLQueryObject());
+
+        // Initialize classes and features; add operations and parameters
+        initEClass(xmlValueFunctionConcatEClass, XMLValueFunctionConcat.class, "XMLValueFunctionConcat", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getXMLValueFunctionConcat_ReturningOption(), this.getXMLReturningType(), "returningOption", null, 0, 1, XMLValueFunctionConcat.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLValueFunctionConcat_ConcatContentList(), this.getXMLValueFunctionConcatContentItem(), this.getXMLValueFunctionConcatContentItem_ValueFunctionConcat(), "concatContentList", null, 1, -1, XMLValueFunctionConcat.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(xmlValueFunctionEClass, XMLValueFunction.class, "XMLValueFunction", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+        initEClass(xmlNamespaceDeclarationPrefixEClass, XMLNamespaceDeclarationPrefix.class, "XMLNamespaceDeclarationPrefix", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getXMLNamespaceDeclarationPrefix_Prefix(), ecorePackage.getEString(), "prefix", null, 0, 1, XMLNamespaceDeclarationPrefix.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(xmlNamespaceDeclarationDefaultEClass, XMLNamespaceDeclarationDefault.class, "XMLNamespaceDeclarationDefault", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getXMLNamespaceDeclarationDefault_NoDefault(), ecorePackage.getEBoolean(), "noDefault", "false", 0, 1, XMLNamespaceDeclarationDefault.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(xmlAttributeDeclarationItemEClass, XMLAttributeDeclarationItem.class, "XMLAttributeDeclarationItem", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getXMLAttributeDeclarationItem_ValueExpr(), theSQLQueryModelPackage.getQueryValueExpression(), null, "valueExpr", null, 1, 1, XMLAttributeDeclarationItem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLAttributeDeclarationItem_AttributesDecl(), this.getXMLAttributesDeclaration(), this.getXMLAttributesDeclaration_AttributeDeclItem(), "attributesDecl", null, 1, 1, XMLAttributeDeclarationItem.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(xmlValueFunctionElementEClass, XMLValueFunctionElement.class, "XMLValueFunctionElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getXMLValueFunctionElement_ElementName(), ecorePackage.getEString(), "elementName", null, 0, 1, XMLValueFunctionElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEAttribute(getXMLValueFunctionElement_ReturningOption(), this.getXMLReturningType(), "returningOption", null, 0, 1, XMLValueFunctionElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLValueFunctionElement_NamespacesDecl(), this.getXMLNamespacesDeclaration(), this.getXMLNamespacesDeclaration_ValueFunctionElement(), "namespacesDecl", null, 0, 1, XMLValueFunctionElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLValueFunctionElement_AttributesDecl(), this.getXMLAttributesDeclaration(), this.getXMLAttributesDeclaration_ValueFunctionElement(), "attributesDecl", null, 0, 1, XMLValueFunctionElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLValueFunctionElement_ElementContentList(), this.getXMLValueFunctionElementContentList(), this.getXMLValueFunctionElementContentList_ValueFunctionElement(), "elementContentList", null, 0, 1, XMLValueFunctionElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(xmlNamespaceDeclarationItemEClass, XMLNamespaceDeclarationItem.class, "XMLNamespaceDeclarationItem", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getXMLNamespaceDeclarationItem_Uri(), ecorePackage.getEString(), "uri", null, 0, 1, XMLNamespaceDeclarationItem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLNamespaceDeclarationItem_NamespacesDecl(), this.getXMLNamespacesDeclaration(), this.getXMLNamespacesDeclaration_NamespaceDecltemList(), "namespacesDecl", null, 1, 1, XMLNamespaceDeclarationItem.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(xmlValueFunctionElementContentItemEClass, XMLValueFunctionElementContentItem.class, "XMLValueFunctionElementContentItem", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getXMLValueFunctionElementContentItem_ValueExpr(), theSQLQueryModelPackage.getQueryValueExpression(), null, "valueExpr", null, 1, 1, XMLValueFunctionElementContentItem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLValueFunctionElementContentItem_ElementContentList(), this.getXMLValueFunctionElementContentList(), this.getXMLValueFunctionElementContentList_ElementContentListChildren(), "elementContentList", null, 1, 1, XMLValueFunctionElementContentItem.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(xmlValueFunctionForestEClass, XMLValueFunctionForest.class, "XMLValueFunctionForest", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getXMLValueFunctionForest_NullHandlingOption(), this.getXMLNullHandlingType(), "nullHandlingOption", null, 0, 1, XMLValueFunctionForest.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEAttribute(getXMLValueFunctionForest_ReturningOption(), this.getXMLReturningType(), "returningOption", null, 0, 1, XMLValueFunctionForest.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLValueFunctionForest_ForestContentList(), this.getXMLValueFunctionForestContentItem(), this.getXMLValueFunctionForestContentItem_ValueFunctionForest(), "forestContentList", null, 0, -1, XMLValueFunctionForest.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLValueFunctionForest_NamespacesDecl(), this.getXMLNamespacesDeclaration(), this.getXMLNamespacesDeclaration_ValueFunctionForest(), "namespacesDecl", null, 0, 1, XMLValueFunctionForest.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(xmlValueFunctionCommentEClass, XMLValueFunctionComment.class, "XMLValueFunctionComment", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getXMLValueFunctionComment_ReturningOption(), this.getXMLReturningType(), "returningOption", null, 0, 1, XMLValueFunctionComment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLValueFunctionComment_CommentContent(), this.getXMLValueFunctionCommentContent(), this.getXMLValueFunctionCommentContent_ValueFunctionComment(), "commentContent", null, 1, 1, XMLValueFunctionComment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(xmlValueFunctionDocumentEClass, XMLValueFunctionDocument.class, "XMLValueFunctionDocument", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getXMLValueFunctionDocument_ReturningOption(), this.getXMLReturningType(), "returningOption", null, 0, 1, XMLValueFunctionDocument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLValueFunctionDocument_DocumentContent(), this.getXMLValueFunctionDocumentContent(), this.getXMLValueFunctionDocumentContent_ValueFunctionDocument(), "documentContent", null, 1, 1, XMLValueFunctionDocument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(xmlValueFunctionParseEClass, XMLValueFunctionParse.class, "XMLValueFunctionParse", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getXMLValueFunctionParse_ContentOption(), this.getXMLContentType(), "contentOption", null, 0, 1, XMLValueFunctionParse.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEAttribute(getXMLValueFunctionParse_WhitespaceHandlingOption(), this.getXMLWhitespaceHandlingType(), "whitespaceHandlingOption", null, 0, 1, XMLValueFunctionParse.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLValueFunctionParse_ParseContent(), this.getXMLValueFunctionParseContent(), this.getXMLValueFunctionParseContent_ValueFunctionParse(), "parseContent", null, 1, 1, XMLValueFunctionParse.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(xmlValueFunctionPIEClass, XMLValueFunctionPI.class, "XMLValueFunctionPI", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getXMLValueFunctionPI_TargetName(), ecorePackage.getEString(), "targetName", null, 0, 1, XMLValueFunctionPI.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEAttribute(getXMLValueFunctionPI_ReturningOption(), this.getXMLReturningType(), "returningOption", null, 0, 1, XMLValueFunctionPI.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLValueFunctionPI_PIContent(), this.getXMLValueFunctionPIContent(), this.getXMLValueFunctionPIContent_ValueFunctionPI(), "PIContent", null, 0, 1, XMLValueFunctionPI.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(xmlValueFunctionQueryEClass, XMLValueFunctionQuery.class, "XMLValueFunctionQuery", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getXMLValueFunctionQuery_EmptyHandlingOption(), this.getXMLEmptyHandlingType(), "emptyHandlingOption", null, 0, 1, XMLValueFunctionQuery.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLValueFunctionQuery_XqueryExpr(), this.getXMLQueryExpression(), this.getXMLQueryExpression_ValueFunctionQuery(), "xqueryExpr", null, 1, 1, XMLValueFunctionQuery.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLValueFunctionQuery_XqueryArgList(), this.getXMLQueryArgumentList(), this.getXMLQueryArgumentList_ValueFunctionQuery(), "xqueryArgList", null, 0, 1, XMLValueFunctionQuery.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLValueFunctionQuery_QueryReturning(), this.getXMLValueFunctionQueryReturning(), this.getXMLValueFunctionQueryReturning_ValueFunctionQuery(), "queryReturning", null, 0, 1, XMLValueFunctionQuery.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(xmlValueFunctionTextEClass, XMLValueFunctionText.class, "XMLValueFunctionText", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getXMLValueFunctionText_ReturningOption(), this.getXMLReturningType(), "returningOption", null, 0, 1, XMLValueFunctionText.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLValueFunctionText_TextContent(), this.getXMLValueFunctionTextContent(), this.getXMLValueFunctionTextContent_ValueFunctionText(), "textContent", null, 1, 1, XMLValueFunctionText.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(xmlValueFunctionValidateEClass, XMLValueFunctionValidate.class, "XMLValueFunctionValidate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getXMLValueFunctionValidate_ContentOption(), this.getXMLContentType2(), "contentOption", null, 0, 1, XMLValueFunctionValidate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLValueFunctionValidate_ValidateContent(), this.getXMLValueFunctionValidateContent(), this.getXMLValueFunctionValidateContent_ValueFunctionValidate(), "validateContent", null, 1, 1, XMLValueFunctionValidate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLValueFunctionValidate_ValidateAccordingTo(), this.getXMLValueFunctionValidateAccordingTo(), this.getXMLValueFunctionValidateAccordingTo_ValueFunctionValidate(), "validateAccordingTo", null, 0, 1, XMLValueFunctionValidate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(xmlValueExpressionCastEClass, XMLValueExpressionCast.class, "XMLValueExpressionCast", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getXMLValueExpressionCast_PassingMechanism(), this.getXMLPassingType(), "passingMechanism", null, 0, 1, XMLValueExpressionCast.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(xmlPredicateEClass, XMLPredicate.class, "XMLPredicate", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+        initEClass(xmlPredicateContentEClass, XMLPredicateContent.class, "XMLPredicateContent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+        initEClass(xmlPredicateDocumentEClass, XMLPredicateDocument.class, "XMLPredicateDocument", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+        initEClass(xmlPredicateExistsEClass, XMLPredicateExists.class, "XMLPredicateExists", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getXMLPredicateExists_XqueryExpr(), this.getXMLQueryExpression(), this.getXMLQueryExpression_PredicateExists(), "xqueryExpr", null, 1, 1, XMLPredicateExists.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLPredicateExists_XqueryArgList(), this.getXMLQueryArgumentList(), this.getXMLQueryArgumentList_PredicateExists(), "xqueryArgList", null, 0, 1, XMLPredicateExists.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(xmlPredicateValidEClass, XMLPredicateValid.class, "XMLPredicateValid", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+        initEClass(xmlQueryExpressionEClass, XMLQueryExpression.class, "XMLQueryExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getXMLQueryExpression_XqueryExprContent(), ecorePackage.getEString(), "xqueryExprContent", null, 0, 1, XMLQueryExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLQueryExpression_PredicateExists(), this.getXMLPredicateExists(), this.getXMLPredicateExists_XqueryExpr(), "predicateExists", null, 1, 1, XMLQueryExpression.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLQueryExpression_ValueFunctionQuery(), this.getXMLValueFunctionQuery(), this.getXMLValueFunctionQuery_XqueryExpr(), "valueFunctionQuery", null, 1, 1, XMLQueryExpression.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(xmlQueryArgumentListEClass, XMLQueryArgumentList.class, "XMLQueryArgumentList", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getXMLQueryArgumentList_PassingMechanism(), this.getXMLPassingType(), "passingMechanism", null, 0, 1, XMLQueryArgumentList.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLQueryArgumentList_PredicateExists(), this.getXMLPredicateExists(), this.getXMLPredicateExists_XqueryArgList(), "predicateExists", null, 1, 1, XMLQueryArgumentList.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLQueryArgumentList_XqueryArgListChildren(), this.getXMLQueryArgumentItem(), this.getXMLQueryArgumentItem_XqueryArgList(), "xqueryArgListChildren", null, 1, -1, XMLQueryArgumentList.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLQueryArgumentList_ValueFunctionQuery(), this.getXMLValueFunctionQuery(), this.getXMLValueFunctionQuery_XqueryArgList(), "valueFunctionQuery", null, 1, 1, XMLQueryArgumentList.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLQueryArgumentList_TableFunction(), this.getXMLTableFunction(), this.getXMLTableFunction_XqueryArgList(), "tableFunction", null, 1, 1, XMLQueryArgumentList.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(xmlQueryArgumentItemEClass, XMLQueryArgumentItem.class, "XMLQueryArgumentItem", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getXMLQueryArgumentItem_PassingMechanism(), this.getXMLPassingType(), "passingMechanism", null, 0, 1, XMLQueryArgumentItem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLQueryArgumentItem_XqueryArgList(), this.getXMLQueryArgumentList(), this.getXMLQueryArgumentList_XqueryArgListChildren(), "xqueryArgList", null, 1, 1, XMLQueryArgumentItem.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLQueryArgumentItem_ValueExpr(), theSQLQueryModelPackage.getQueryValueExpression(), null, "valueExpr", null, 1, 1, XMLQueryArgumentItem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(xmlSerializeFunctionEClass, XMLSerializeFunction.class, "XMLSerializeFunction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getXMLSerializeFunction_ContentOption(), this.getXMLContentType(), "contentOption", null, 0, 1, XMLSerializeFunction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEAttribute(getXMLSerializeFunction_SerializeVersion(), ecorePackage.getEString(), "serializeVersion", null, 0, 1, XMLSerializeFunction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEAttribute(getXMLSerializeFunction_DeclarationOption(), this.getXMLDeclarationType(), "declarationOption", null, 0, 1, XMLSerializeFunction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLSerializeFunction_SerializeTarget(), this.getXMLSerializeFunctionTarget(), this.getXMLSerializeFunctionTarget_SerializeFunction(), "serializeTarget", null, 1, 1, XMLSerializeFunction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLSerializeFunction_SerializeEncoding(), this.getXMLSerializeFunctionEncoding(), null, "serializeEncoding", null, 0, 1, XMLSerializeFunction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(xmlSerializeFunctionTargetEClass, XMLSerializeFunctionTarget.class, "XMLSerializeFunctionTarget", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getXMLSerializeFunctionTarget_SerializeFunction(), this.getXMLSerializeFunction(), this.getXMLSerializeFunction_SerializeTarget(), "serializeFunction", null, 1, 1, XMLSerializeFunctionTarget.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLSerializeFunctionTarget_ValueExpr(), theSQLQueryModelPackage.getQueryValueExpression(), null, "valueExpr", null, 1, 1, XMLSerializeFunctionTarget.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(xmlAggregateFunctionEClass, XMLAggregateFunction.class, "XMLAggregateFunction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getXMLAggregateFunction_ReturningOption(), this.getXMLReturningType(), "returningOption", null, 0, 1, XMLAggregateFunction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLAggregateFunction_SortSpecList(), this.getXMLAggregateSortSpecification(), this.getXMLAggregateSortSpecification_AggregateFunction(), "sortSpecList", null, 0, -1, XMLAggregateFunction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(xmlValueFunctionConcatContentItemEClass, XMLValueFunctionConcatContentItem.class, "XMLValueFunctionConcatContentItem", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getXMLValueFunctionConcatContentItem_ValueFunctionConcat(), this.getXMLValueFunctionConcat(), this.getXMLValueFunctionConcat_ConcatContentList(), "valueFunctionConcat", null, 1, 1, XMLValueFunctionConcatContentItem.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLValueFunctionConcatContentItem_ValueExpr(), theSQLQueryModelPackage.getQueryValueExpression(), null, "valueExpr", null, 1, 1, XMLValueFunctionConcatContentItem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(xmlValueFunctionCommentContentEClass, XMLValueFunctionCommentContent.class, "XMLValueFunctionCommentContent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getXMLValueFunctionCommentContent_ValueFunctionComment(), this.getXMLValueFunctionComment(), this.getXMLValueFunctionComment_CommentContent(), "valueFunctionComment", null, 1, 1, XMLValueFunctionCommentContent.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLValueFunctionCommentContent_ValueExpr(), theSQLQueryModelPackage.getQueryValueExpression(), null, "valueExpr", null, 1, 1, XMLValueFunctionCommentContent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(xmlValueFunctionDocumentContentEClass, XMLValueFunctionDocumentContent.class, "XMLValueFunctionDocumentContent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getXMLValueFunctionDocumentContent_ValueFunctionDocument(), this.getXMLValueFunctionDocument(), this.getXMLValueFunctionDocument_DocumentContent(), "valueFunctionDocument", null, 1, 1, XMLValueFunctionDocumentContent.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLValueFunctionDocumentContent_ValueExpr(), theSQLQueryModelPackage.getQueryValueExpression(), null, "valueExpr", null, 1, 1, XMLValueFunctionDocumentContent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(xmlAggregateSortSpecificationEClass, XMLAggregateSortSpecification.class, "XMLAggregateSortSpecification", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getXMLAggregateSortSpecification_AggregateFunction(), this.getXMLAggregateFunction(), this.getXMLAggregateFunction_SortSpecList(), "aggregateFunction", null, 1, 1, XMLAggregateSortSpecification.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLAggregateSortSpecification_OrderBySpec(), theSQLQueryModelPackage.getOrderBySpecification(), null, "orderBySpec", null, 1, 1, XMLAggregateSortSpecification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(xmlValueFunctionForestContentItemEClass, XMLValueFunctionForestContentItem.class, "XMLValueFunctionForestContentItem", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getXMLValueFunctionForestContentItem_ValueFunctionForest(), this.getXMLValueFunctionForest(), this.getXMLValueFunctionForest_ForestContentList(), "valueFunctionForest", null, 1, 1, XMLValueFunctionForestContentItem.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLValueFunctionForestContentItem_ValueExpr(), theSQLQueryModelPackage.getQueryValueExpression(), null, "valueExpr", null, 1, 1, XMLValueFunctionForestContentItem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(xmlValueFunctionParseContentEClass, XMLValueFunctionParseContent.class, "XMLValueFunctionParseContent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getXMLValueFunctionParseContent_ValueFunctionParse(), this.getXMLValueFunctionParse(), this.getXMLValueFunctionParse_ParseContent(), "valueFunctionParse", null, 1, 1, XMLValueFunctionParseContent.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLValueFunctionParseContent_ValueExpr(), theSQLQueryModelPackage.getQueryValueExpression(), null, "valueExpr", null, 1, 1, XMLValueFunctionParseContent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(xmlValueFunctionPIContentEClass, XMLValueFunctionPIContent.class, "XMLValueFunctionPIContent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getXMLValueFunctionPIContent_ValueFunctionPI(), this.getXMLValueFunctionPI(), this.getXMLValueFunctionPI_PIContent(), "valueFunctionPI", null, 1, 1, XMLValueFunctionPIContent.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLValueFunctionPIContent_ValueExpr(), theSQLQueryModelPackage.getQueryValueExpression(), null, "valueExpr", null, 1, 1, XMLValueFunctionPIContent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(xmlTableFunctionEClass, XMLTableFunction.class, "XMLTableFunction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getXMLTableFunction_TableRowPattern(), ecorePackage.getEString(), "tableRowPattern", null, 0, 1, XMLTableFunction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLTableFunction_XqueryArgList(), this.getXMLQueryArgumentList(), this.getXMLQueryArgumentList_TableFunction(), "xqueryArgList", null, 0, 1, XMLTableFunction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLTableFunction_ColumnDefList(), this.getXMLTableColumnDefinitionItem(), this.getXMLTableColumnDefinitionItem_TableFunction(), "columnDefList", null, 1, -1, XMLTableFunction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLTableFunction_NamespacesDecl(), this.getXMLNamespacesDeclaration(), this.getXMLNamespacesDeclaration_TableFunction(), "namespacesDecl", null, 0, 1, XMLTableFunction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(xmlValueFunctionTextContentEClass, XMLValueFunctionTextContent.class, "XMLValueFunctionTextContent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getXMLValueFunctionTextContent_ValueFunctionText(), this.getXMLValueFunctionText(), this.getXMLValueFunctionText_TextContent(), "valueFunctionText", null, 1, 1, XMLValueFunctionTextContent.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLValueFunctionTextContent_ValueExpr(), theSQLQueryModelPackage.getQueryValueExpression(), null, "valueExpr", null, 1, 1, XMLValueFunctionTextContent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(xmlValueFunctionValidateContentEClass, XMLValueFunctionValidateContent.class, "XMLValueFunctionValidateContent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getXMLValueFunctionValidateContent_ValueFunctionValidate(), this.getXMLValueFunctionValidate(), this.getXMLValueFunctionValidate_ValidateContent(), "valueFunctionValidate", null, 1, 1, XMLValueFunctionValidateContent.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLValueFunctionValidateContent_ValueExpr(), theSQLQueryModelPackage.getQueryValueExpression(), null, "valueExpr", null, 1, 1, XMLValueFunctionValidateContent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(xmlTableColumnDefinitionItemEClass, XMLTableColumnDefinitionItem.class, "XMLTableColumnDefinitionItem", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getXMLTableColumnDefinitionItem_TableFunction(), this.getXMLTableFunction(), this.getXMLTableFunction_ColumnDefList(), "tableFunction", null, 1, 1, XMLTableColumnDefinitionItem.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(xmlTableColumnDefinitionRegularEClass, XMLTableColumnDefinitionRegular.class, "XMLTableColumnDefinitionRegular", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getXMLTableColumnDefinitionRegular_DataType(), theSQLDataTypesPackage.getDataType(), null, "dataType", null, 0, 1, XMLTableColumnDefinitionRegular.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEAttribute(getXMLTableColumnDefinitionRegular_PassingOption(), this.getXMLPassingType(), "passingOption", null, 0, 1, XMLTableColumnDefinitionRegular.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEAttribute(getXMLTableColumnDefinitionRegular_TableColumnPattern(), ecorePackage.getEString(), "tableColumnPattern", null, 0, 1, XMLTableColumnDefinitionRegular.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLTableColumnDefinitionRegular_ColumnDefinitionDefault(), this.getXMLTableColumnDefinitionDefault(), this.getXMLTableColumnDefinitionDefault_ColumnDefinitionRegular(), "columnDefinitionDefault", null, 0, 1, XMLTableColumnDefinitionRegular.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(xmlTableColumnDefinitionOrdinalityEClass, XMLTableColumnDefinitionOrdinality.class, "XMLTableColumnDefinitionOrdinality", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+        initEClass(xmlValueFunctionValidateAccordingToEClass, XMLValueFunctionValidateAccordingTo.class, "XMLValueFunctionValidateAccordingTo", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getXMLValueFunctionValidateAccordingTo_ValueFunctionValidate(), this.getXMLValueFunctionValidate(), this.getXMLValueFunctionValidate_ValidateAccordingTo(), "valueFunctionValidate", null, 1, 1, XMLValueFunctionValidateAccordingTo.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLValueFunctionValidateAccordingTo_ValidateElement(), this.getXMLValueFunctionValidateElement(), this.getXMLValueFunctionValidateElement_ValidateAccordingTo(), "validateElement", null, 0, 1, XMLValueFunctionValidateAccordingTo.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(xmlValueFunctionValidateAccordingToURIEClass, XMLValueFunctionValidateAccordingToURI.class, "XMLValueFunctionValidateAccordingToURI", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getXMLValueFunctionValidateAccordingToURI_NoNamespace(), ecorePackage.getEBoolean(), "noNamespace", "false", 0, 1, XMLValueFunctionValidateAccordingToURI.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEAttribute(getXMLValueFunctionValidateAccordingToURI_TargetNamespaceURI(), ecorePackage.getEString(), "targetNamespaceURI", null, 0, 1, XMLValueFunctionValidateAccordingToURI.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEAttribute(getXMLValueFunctionValidateAccordingToURI_SchemaLocationURI(), ecorePackage.getEString(), "schemaLocationURI", null, 0, 1, XMLValueFunctionValidateAccordingToURI.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(xmlValueFunctionValidateAccordingToIdentifierEClass, XMLValueFunctionValidateAccordingToIdentifier.class, "XMLValueFunctionValidateAccordingToIdentifier", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getXMLValueFunctionValidateAccordingToIdentifier_SchemaName(), ecorePackage.getEString(), "schemaName", null, 0, 1, XMLValueFunctionValidateAccordingToIdentifier.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEAttribute(getXMLValueFunctionValidateAccordingToIdentifier_RegisteredXMLSchemaName(), ecorePackage.getEString(), "registeredXMLSchemaName", null, 0, 1, XMLValueFunctionValidateAccordingToIdentifier.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(xmlValueFunctionValidateElementNameEClass, XMLValueFunctionValidateElementName.class, "XMLValueFunctionValidateElementName", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getXMLValueFunctionValidateElementName_ValidateElement(), this.getXMLValueFunctionValidateElement(), this.getXMLValueFunctionValidateElement_ValidateElementName(), "validateElement", null, 1, 1, XMLValueFunctionValidateElementName.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(xmlValueFunctionValidateElementNamespaceEClass, XMLValueFunctionValidateElementNamespace.class, "XMLValueFunctionValidateElementNamespace", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getXMLValueFunctionValidateElementNamespace_NoNamespace(), ecorePackage.getEBoolean(), "noNamespace", "false", 0, 1, XMLValueFunctionValidateElementNamespace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEAttribute(getXMLValueFunctionValidateElementNamespace_NamespaceURI(), ecorePackage.getEString(), "namespaceURI", null, 0, 1, XMLValueFunctionValidateElementNamespace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLValueFunctionValidateElementNamespace_ValidateElement(), this.getXMLValueFunctionValidateElement(), this.getXMLValueFunctionValidateElement_ValidateElementNamespace(), "validateElement", null, 1, 1, XMLValueFunctionValidateElementNamespace.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(xmlNamespacesDeclarationEClass, XMLNamespacesDeclaration.class, "XMLNamespacesDeclaration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getXMLNamespacesDeclaration_NamespaceDecltemList(), this.getXMLNamespaceDeclarationItem(), this.getXMLNamespaceDeclarationItem_NamespacesDecl(), "namespaceDecltemList", null, 1, -1, XMLNamespacesDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLNamespacesDeclaration_ValueFunctionElement(), this.getXMLValueFunctionElement(), this.getXMLValueFunctionElement_NamespacesDecl(), "valueFunctionElement", null, 1, 1, XMLNamespacesDeclaration.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLNamespacesDeclaration_ValueFunctionForest(), this.getXMLValueFunctionForest(), this.getXMLValueFunctionForest_NamespacesDecl(), "valueFunctionForest", null, 1, 1, XMLNamespacesDeclaration.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLNamespacesDeclaration_TableFunction(), this.getXMLTableFunction(), this.getXMLTableFunction_NamespacesDecl(), "tableFunction", null, 1, 1, XMLNamespacesDeclaration.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(xmlAttributesDeclarationEClass, XMLAttributesDeclaration.class, "XMLAttributesDeclaration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getXMLAttributesDeclaration_ValueFunctionElement(), this.getXMLValueFunctionElement(), this.getXMLValueFunctionElement_AttributesDecl(), "valueFunctionElement", null, 1, 1, XMLAttributesDeclaration.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLAttributesDeclaration_AttributeDeclItem(), this.getXMLAttributeDeclarationItem(), this.getXMLAttributeDeclarationItem_AttributesDecl(), "attributeDeclItem", null, 1, -1, XMLAttributesDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(xmlValueFunctionElementContentListEClass, XMLValueFunctionElementContentList.class, "XMLValueFunctionElementContentList", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getXMLValueFunctionElementContentList_NullHandlingOption(), this.getXMLNullHandlingType(), "nullHandlingOption", null, 0, 1, XMLValueFunctionElementContentList.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLValueFunctionElementContentList_ValueFunctionElement(), this.getXMLValueFunctionElement(), this.getXMLValueFunctionElement_ElementContentList(), "valueFunctionElement", null, 1, 1, XMLValueFunctionElementContentList.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLValueFunctionElementContentList_ElementContentListChildren(), this.getXMLValueFunctionElementContentItem(), this.getXMLValueFunctionElementContentItem_ElementContentList(), "elementContentListChildren", null, 0, -1, XMLValueFunctionElementContentList.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(xmlValueFunctionQueryReturningEClass, XMLValueFunctionQueryReturning.class, "XMLValueFunctionQueryReturning", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getXMLValueFunctionQueryReturning_ReturningOption(), this.getXMLReturningType(), "returningOption", null, 0, 1, XMLValueFunctionQueryReturning.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEAttribute(getXMLValueFunctionQueryReturning_PassingOption(), this.getXMLPassingType(), "passingOption", null, 0, 1, XMLValueFunctionQueryReturning.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLValueFunctionQueryReturning_ValueFunctionQuery(), this.getXMLValueFunctionQuery(), this.getXMLValueFunctionQuery_QueryReturning(), "valueFunctionQuery", null, 1, 1, XMLValueFunctionQueryReturning.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(xmlValueFunctionValidateElementEClass, XMLValueFunctionValidateElement.class, "XMLValueFunctionValidateElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getXMLValueFunctionValidateElement_ValidateElementNamespace(), this.getXMLValueFunctionValidateElementNamespace(), this.getXMLValueFunctionValidateElementNamespace_ValidateElement(), "validateElementNamespace", null, 0, 1, XMLValueFunctionValidateElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLValueFunctionValidateElement_ValidateElementName(), this.getXMLValueFunctionValidateElementName(), this.getXMLValueFunctionValidateElementName_ValidateElement(), "validateElementName", null, 0, 1, XMLValueFunctionValidateElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLValueFunctionValidateElement_ValidateAccordingTo(), this.getXMLValueFunctionValidateAccordingTo(), this.getXMLValueFunctionValidateAccordingTo_ValidateElement(), "validateAccordingTo", null, 1, 1, XMLValueFunctionValidateElement.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(xmlTableColumnDefinitionDefaultEClass, XMLTableColumnDefinitionDefault.class, "XMLTableColumnDefinitionDefault", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEReference(getXMLTableColumnDefinitionDefault_ValueExpr(), theSQLQueryModelPackage.getQueryValueExpression(), null, "valueExpr", null, 1, 1, XMLTableColumnDefinitionDefault.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+        initEReference(getXMLTableColumnDefinitionDefault_ColumnDefinitionRegular(), this.getXMLTableColumnDefinitionRegular(), this.getXMLTableColumnDefinitionRegular_ColumnDefinitionDefault(), "columnDefinitionRegular", null, 1, 1, XMLTableColumnDefinitionDefault.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        initEClass(xmlSerializeFunctionEncodingEClass, XMLSerializeFunctionEncoding.class, "XMLSerializeFunctionEncoding", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+        initEAttribute(getXMLSerializeFunctionEncoding_EncodingName(), ecorePackage.getEString(), "encodingName", null, 0, 1, XMLSerializeFunctionEncoding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+        // Initialize enums and add enum literals
+        initEEnum(xmlPassingTypeEEnum, XMLPassingType.class, "XMLPassingType");
+        addEEnumLiteral(xmlPassingTypeEEnum, XMLPassingType.BY_REF_LITERAL);
+        addEEnumLiteral(xmlPassingTypeEEnum, XMLPassingType.BY_VALUE_LITERAL);
+        addEEnumLiteral(xmlPassingTypeEEnum, XMLPassingType.NONE_LITERAL);
+
+        initEEnum(xmlContentTypeEEnum, XMLContentType.class, "XMLContentType");
+        addEEnumLiteral(xmlContentTypeEEnum, XMLContentType.CONTENT_LITERAL);
+        addEEnumLiteral(xmlContentTypeEEnum, XMLContentType.DOCUMENT_LITERAL);
+        addEEnumLiteral(xmlContentTypeEEnum, XMLContentType.NONE_LITERAL);
+
+        initEEnum(xmlDeclarationTypeEEnum, XMLDeclarationType.class, "XMLDeclarationType");
+        addEEnumLiteral(xmlDeclarationTypeEEnum, XMLDeclarationType.EXCLUDING_XMLDECLARATION_LITERAL);
+        addEEnumLiteral(xmlDeclarationTypeEEnum, XMLDeclarationType.INCLUDING_XMLDECLARATION_LITERAL);
+        addEEnumLiteral(xmlDeclarationTypeEEnum, XMLDeclarationType.NONE_LITERAL);
+
+        initEEnum(xmlReturningTypeEEnum, XMLReturningType.class, "XMLReturningType");
+        addEEnumLiteral(xmlReturningTypeEEnum, XMLReturningType.RETURNING_CONTENT_LITERAL);
+        addEEnumLiteral(xmlReturningTypeEEnum, XMLReturningType.RETURNING_SEQUENCE_LITERAL);
+        addEEnumLiteral(xmlReturningTypeEEnum, XMLReturningType.NONE_LITERAL);
+
+        initEEnum(xmlNullHandlingTypeEEnum, XMLNullHandlingType.class, "XMLNullHandlingType");
+        addEEnumLiteral(xmlNullHandlingTypeEEnum, XMLNullHandlingType.ABSENT_ON_NULL_LITERAL);
+        addEEnumLiteral(xmlNullHandlingTypeEEnum, XMLNullHandlingType.EMPTY_ON_NULL_LITERAL);
+        addEEnumLiteral(xmlNullHandlingTypeEEnum, XMLNullHandlingType.NIL_ON_NO_CONTENT_LITERAL);
+        addEEnumLiteral(xmlNullHandlingTypeEEnum, XMLNullHandlingType.NIL_ON_NULL_LITERAL);
+        addEEnumLiteral(xmlNullHandlingTypeEEnum, XMLNullHandlingType.NULL_ON_NULL_LITERAL);
+        addEEnumLiteral(xmlNullHandlingTypeEEnum, XMLNullHandlingType.NONE_LITERAL);
+
+        initEEnum(xmlWhitespaceHandlingTypeEEnum, XMLWhitespaceHandlingType.class, "XMLWhitespaceHandlingType");
+        addEEnumLiteral(xmlWhitespaceHandlingTypeEEnum, XMLWhitespaceHandlingType.PRESERE_WHITESPACE_LITERAL);
+        addEEnumLiteral(xmlWhitespaceHandlingTypeEEnum, XMLWhitespaceHandlingType.STRIP_WHITESPACE_LITERAL);
+        addEEnumLiteral(xmlWhitespaceHandlingTypeEEnum, XMLWhitespaceHandlingType.NONE_LITERAL);
+
+        initEEnum(xmlEmptyHandlingTypeEEnum, XMLEmptyHandlingType.class, "XMLEmptyHandlingType");
+        addEEnumLiteral(xmlEmptyHandlingTypeEEnum, XMLEmptyHandlingType.EMPTY_ON_EMPTY_LITERAL);
+        addEEnumLiteral(xmlEmptyHandlingTypeEEnum, XMLEmptyHandlingType.NULL_ON_EMPTY_LITERAL);
+        addEEnumLiteral(xmlEmptyHandlingTypeEEnum, XMLEmptyHandlingType.NONE_LITERAL);
+
+        initEEnum(xmlContentType2EEnum, XMLContentType2.class, "XMLContentType2");
+        addEEnumLiteral(xmlContentType2EEnum, XMLContentType2.CONTENT_LITERAL);
+        addEEnumLiteral(xmlContentType2EEnum, XMLContentType2.DOCUMENT_LITERAL);
+        addEEnumLiteral(xmlContentType2EEnum, XMLContentType2.SEQUENCE_LITERAL);
+        addEEnumLiteral(xmlContentType2EEnum, XMLContentType2.NONE_LITERAL);
+
+        // Create resource
+        createResource(eNS_URI);
+    }
+
+} //SQLXMLQueryPackageImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLAggregateFunctionImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLAggregateFunctionImpl.java
new file mode 100644
index 0000000..3a740cb
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLAggregateFunctionImpl.java
@@ -0,0 +1,255 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLAggregateFunctionImpl.java,v 1.5 2007/02/08 17:04:20 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+import org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionFunctionImpl;
+import org.eclipse.datatools.modelbase.sql.routines.Function;
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLAggregateFunction;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLAggregateSortSpecification;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLReturningType;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Aggregate Function</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLAggregateFunctionImpl#getReturningOption <em>Returning Option</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLAggregateFunctionImpl#getSortSpecList <em>Sort Spec List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLAggregateFunctionImpl extends ValueExpressionFunctionImpl implements XMLAggregateFunction {
+	/**
+     * The default value of the '{@link #getReturningOption() <em>Returning Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getReturningOption()
+     * @generated
+     * @ordered
+     */
+    protected static final XMLReturningType RETURNING_OPTION_EDEFAULT = XMLReturningType.RETURNING_CONTENT_LITERAL;
+
+	/**
+     * The cached value of the '{@link #getReturningOption() <em>Returning Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getReturningOption()
+     * @generated
+     * @ordered
+     */
+    protected XMLReturningType returningOption = RETURNING_OPTION_EDEFAULT;
+
+	/**
+     * The cached value of the '{@link #getSortSpecList() <em>Sort Spec List</em>}' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getSortSpecList()
+     * @generated
+     * @ordered
+     */
+    protected EList sortSpecList;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLAggregateFunctionImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_AGGREGATE_FUNCTION;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLReturningType getReturningOption() {
+        return returningOption;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setReturningOption(XMLReturningType newReturningOption) {
+        XMLReturningType oldReturningOption = returningOption;
+        returningOption = newReturningOption == null ? RETURNING_OPTION_EDEFAULT : newReturningOption;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_AGGREGATE_FUNCTION__RETURNING_OPTION, oldReturningOption, returningOption));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getSortSpecList() {
+        if (sortSpecList == null) {
+            sortSpecList = new EObjectContainmentWithInverseEList(XMLAggregateSortSpecification.class, this, SQLXMLQueryModelPackage.XML_AGGREGATE_FUNCTION__SORT_SPEC_LIST, SQLXMLQueryModelPackage.XML_AGGREGATE_SORT_SPECIFICATION__AGGREGATE_FUNCTION);
+        }
+        return sortSpecList;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_AGGREGATE_FUNCTION__SORT_SPEC_LIST:
+                return ((InternalEList)getSortSpecList()).basicAdd(otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_AGGREGATE_FUNCTION__SORT_SPEC_LIST:
+                return ((InternalEList)getSortSpecList()).basicRemove(otherEnd, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_AGGREGATE_FUNCTION__RETURNING_OPTION:
+                return getReturningOption();
+            case SQLXMLQueryModelPackage.XML_AGGREGATE_FUNCTION__SORT_SPEC_LIST:
+                return getSortSpecList();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_AGGREGATE_FUNCTION__RETURNING_OPTION:
+                setReturningOption((XMLReturningType)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_AGGREGATE_FUNCTION__SORT_SPEC_LIST:
+                getSortSpecList().clear();
+                getSortSpecList().addAll((Collection)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_AGGREGATE_FUNCTION__RETURNING_OPTION:
+                setReturningOption(RETURNING_OPTION_EDEFAULT);
+                return;
+            case SQLXMLQueryModelPackage.XML_AGGREGATE_FUNCTION__SORT_SPEC_LIST:
+                getSortSpecList().clear();
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_AGGREGATE_FUNCTION__RETURNING_OPTION:
+                return returningOption != RETURNING_OPTION_EDEFAULT;
+            case SQLXMLQueryModelPackage.XML_AGGREGATE_FUNCTION__SORT_SPEC_LIST:
+                return sortSpecList != null && !sortSpecList.isEmpty();
+        }
+        return super.eIsSet(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (returningOption: ");
+        result.append(returningOption);
+        result.append(')');
+        return result.toString();
+    }
+
+} //XMLAggregateFunctionImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLAggregateSortSpecificationImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLAggregateSortSpecificationImpl.java
new file mode 100644
index 0000000..dfdac34
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLAggregateSortSpecificationImpl.java
@@ -0,0 +1,265 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLAggregateSortSpecificationImpl.java,v 1.4 2008/07/07 19:55:14 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.OrderBySpecification;
+import org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryObjectImpl;
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLAggregateFunction;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLAggregateSortSpecification;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Aggregate Sort Specification</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLAggregateSortSpecificationImpl#getAggregateFunction <em>Aggregate Function</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLAggregateSortSpecificationImpl#getOrderBySpec <em>Order By Spec</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLAggregateSortSpecificationImpl extends SQLQueryObjectImpl implements XMLAggregateSortSpecification {
+	/**
+     * The cached value of the '{@link #getOrderBySpec() <em>Order By Spec</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getOrderBySpec()
+     * @generated
+     * @ordered
+     */
+    protected OrderBySpecification orderBySpec;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLAggregateSortSpecificationImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_AGGREGATE_SORT_SPECIFICATION;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLAggregateFunction getAggregateFunction() {
+        if (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_AGGREGATE_SORT_SPECIFICATION__AGGREGATE_FUNCTION) return null;
+        return (XMLAggregateFunction)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetAggregateFunction(XMLAggregateFunction newAggregateFunction, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newAggregateFunction, SQLXMLQueryModelPackage.XML_AGGREGATE_SORT_SPECIFICATION__AGGREGATE_FUNCTION, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setAggregateFunction(XMLAggregateFunction newAggregateFunction) {
+        if (newAggregateFunction != eInternalContainer() || (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_AGGREGATE_SORT_SPECIFICATION__AGGREGATE_FUNCTION && newAggregateFunction != null)) {
+            if (EcoreUtil.isAncestor(this, newAggregateFunction))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newAggregateFunction != null)
+                msgs = ((InternalEObject)newAggregateFunction).eInverseAdd(this, SQLXMLQueryModelPackage.XML_AGGREGATE_FUNCTION__SORT_SPEC_LIST, XMLAggregateFunction.class, msgs);
+            msgs = basicSetAggregateFunction(newAggregateFunction, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_AGGREGATE_SORT_SPECIFICATION__AGGREGATE_FUNCTION, newAggregateFunction, newAggregateFunction));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public OrderBySpecification getOrderBySpec() {
+        return orderBySpec;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetOrderBySpec(OrderBySpecification newOrderBySpec, NotificationChain msgs) {
+        OrderBySpecification oldOrderBySpec = orderBySpec;
+        orderBySpec = newOrderBySpec;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_AGGREGATE_SORT_SPECIFICATION__ORDER_BY_SPEC, oldOrderBySpec, newOrderBySpec);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setOrderBySpec(OrderBySpecification newOrderBySpec) {
+        if (newOrderBySpec != orderBySpec) {
+            NotificationChain msgs = null;
+            if (orderBySpec != null)
+                msgs = ((InternalEObject)orderBySpec).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_AGGREGATE_SORT_SPECIFICATION__ORDER_BY_SPEC, null, msgs);
+            if (newOrderBySpec != null)
+                msgs = ((InternalEObject)newOrderBySpec).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_AGGREGATE_SORT_SPECIFICATION__ORDER_BY_SPEC, null, msgs);
+            msgs = basicSetOrderBySpec(newOrderBySpec, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_AGGREGATE_SORT_SPECIFICATION__ORDER_BY_SPEC, newOrderBySpec, newOrderBySpec));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_AGGREGATE_SORT_SPECIFICATION__AGGREGATE_FUNCTION:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetAggregateFunction((XMLAggregateFunction)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_AGGREGATE_SORT_SPECIFICATION__AGGREGATE_FUNCTION:
+                return basicSetAggregateFunction(null, msgs);
+            case SQLXMLQueryModelPackage.XML_AGGREGATE_SORT_SPECIFICATION__ORDER_BY_SPEC:
+                return basicSetOrderBySpec(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLXMLQueryModelPackage.XML_AGGREGATE_SORT_SPECIFICATION__AGGREGATE_FUNCTION:
+                return eInternalContainer().eInverseRemove(this, SQLXMLQueryModelPackage.XML_AGGREGATE_FUNCTION__SORT_SPEC_LIST, XMLAggregateFunction.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_AGGREGATE_SORT_SPECIFICATION__AGGREGATE_FUNCTION:
+                return getAggregateFunction();
+            case SQLXMLQueryModelPackage.XML_AGGREGATE_SORT_SPECIFICATION__ORDER_BY_SPEC:
+                return getOrderBySpec();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_AGGREGATE_SORT_SPECIFICATION__AGGREGATE_FUNCTION:
+                setAggregateFunction((XMLAggregateFunction)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_AGGREGATE_SORT_SPECIFICATION__ORDER_BY_SPEC:
+                setOrderBySpec((OrderBySpecification)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_AGGREGATE_SORT_SPECIFICATION__AGGREGATE_FUNCTION:
+                setAggregateFunction((XMLAggregateFunction)null);
+                return;
+            case SQLXMLQueryModelPackage.XML_AGGREGATE_SORT_SPECIFICATION__ORDER_BY_SPEC:
+                setOrderBySpec((OrderBySpecification)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_AGGREGATE_SORT_SPECIFICATION__AGGREGATE_FUNCTION:
+                return getAggregateFunction() != null;
+            case SQLXMLQueryModelPackage.XML_AGGREGATE_SORT_SPECIFICATION__ORDER_BY_SPEC:
+                return orderBySpec != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //XMLAggregateSortSpecificationImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLAttributeDeclarationItemImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLAttributeDeclarationItemImpl.java
new file mode 100644
index 0000000..cb2d910
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLAttributeDeclarationItemImpl.java
@@ -0,0 +1,292 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLAttributeDeclarationItemImpl.java,v 1.4 2008/07/07 19:55:14 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+import org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl;
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLAttributeDeclarationItem;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLAttributesDeclaration;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Attribute Declaration Item</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLAttributeDeclarationItemImpl#getValueExpr <em>Value Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLAttributeDeclarationItemImpl#getAttributesDecl <em>Attributes Decl</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLAttributeDeclarationItemImpl extends QueryValueExpressionImpl implements XMLAttributeDeclarationItem {
+	/**
+     * The cached value of the '{@link #getValueExpr() <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getValueExpr()
+     * @generated
+     * @ordered
+     */
+    protected QueryValueExpression valueExpr;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLAttributeDeclarationItemImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_ATTRIBUTE_DECLARATION_ITEM;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryValueExpression getValueExpr() {
+        return valueExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetValueExpr(QueryValueExpression newValueExpr, NotificationChain msgs) {
+        QueryValueExpression oldValueExpr = valueExpr;
+        valueExpr = newValueExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_ATTRIBUTE_DECLARATION_ITEM__VALUE_EXPR, oldValueExpr, newValueExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueExpr(QueryValueExpression newValueExpr) {
+        if (newValueExpr != valueExpr) {
+            NotificationChain msgs = null;
+            if (valueExpr != null)
+                msgs = ((InternalEObject)valueExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_ATTRIBUTE_DECLARATION_ITEM__VALUE_EXPR, null, msgs);
+            if (newValueExpr != null)
+                msgs = ((InternalEObject)newValueExpr).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_ATTRIBUTE_DECLARATION_ITEM__VALUE_EXPR, null, msgs);
+            msgs = basicSetValueExpr(newValueExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_ATTRIBUTE_DECLARATION_ITEM__VALUE_EXPR, newValueExpr, newValueExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLAttributesDeclaration getAttributesDecl() {
+        if (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_ATTRIBUTE_DECLARATION_ITEM__ATTRIBUTES_DECL) return null;
+        return (XMLAttributesDeclaration)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetAttributesDecl(XMLAttributesDeclaration newAttributesDecl, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newAttributesDecl, SQLXMLQueryModelPackage.XML_ATTRIBUTE_DECLARATION_ITEM__ATTRIBUTES_DECL, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setAttributesDecl(XMLAttributesDeclaration newAttributesDecl) {
+        if (newAttributesDecl != eInternalContainer() || (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_ATTRIBUTE_DECLARATION_ITEM__ATTRIBUTES_DECL && newAttributesDecl != null)) {
+            if (EcoreUtil.isAncestor(this, newAttributesDecl))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newAttributesDecl != null)
+                msgs = ((InternalEObject)newAttributesDecl).eInverseAdd(this, SQLXMLQueryModelPackage.XML_ATTRIBUTES_DECLARATION__ATTRIBUTE_DECL_ITEM, XMLAttributesDeclaration.class, msgs);
+            msgs = basicSetAttributesDecl(newAttributesDecl, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_ATTRIBUTE_DECLARATION_ITEM__ATTRIBUTES_DECL, newAttributesDecl, newAttributesDecl));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_ATTRIBUTE_DECLARATION_ITEM__ATTRIBUTES_DECL:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetAttributesDecl((XMLAttributesDeclaration)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_ATTRIBUTE_DECLARATION_ITEM__VALUE_EXPR:
+                return basicSetValueExpr(null, msgs);
+            case SQLXMLQueryModelPackage.XML_ATTRIBUTE_DECLARATION_ITEM__ATTRIBUTES_DECL:
+                return basicSetAttributesDecl(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLXMLQueryModelPackage.XML_ATTRIBUTE_DECLARATION_ITEM__ATTRIBUTES_DECL:
+                return eInternalContainer().eInverseRemove(this, SQLXMLQueryModelPackage.XML_ATTRIBUTES_DECLARATION__ATTRIBUTE_DECL_ITEM, XMLAttributesDeclaration.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_ATTRIBUTE_DECLARATION_ITEM__VALUE_EXPR:
+                return getValueExpr();
+            case SQLXMLQueryModelPackage.XML_ATTRIBUTE_DECLARATION_ITEM__ATTRIBUTES_DECL:
+                return getAttributesDecl();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_ATTRIBUTE_DECLARATION_ITEM__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_ATTRIBUTE_DECLARATION_ITEM__ATTRIBUTES_DECL:
+                setAttributesDecl((XMLAttributesDeclaration)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_ATTRIBUTE_DECLARATION_ITEM__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)null);
+                return;
+            case SQLXMLQueryModelPackage.XML_ATTRIBUTE_DECLARATION_ITEM__ATTRIBUTES_DECL:
+                setAttributesDecl((XMLAttributesDeclaration)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_ATTRIBUTE_DECLARATION_ITEM__VALUE_EXPR:
+                return valueExpr != null;
+            case SQLXMLQueryModelPackage.XML_ATTRIBUTE_DECLARATION_ITEM__ATTRIBUTES_DECL:
+                return getAttributesDecl() != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //XMLAttributeDeclarationItemImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLAttributesDeclarationImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLAttributesDeclarationImpl.java
new file mode 100644
index 0000000..71e6715
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLAttributesDeclarationImpl.java
@@ -0,0 +1,238 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLAttributesDeclarationImpl.java,v 1.4 2008/07/07 19:55:14 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLAttributeDeclarationItem;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLAttributesDeclaration;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElement;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Attributes Declaration</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLAttributesDeclarationImpl#getValueFunctionElement <em>Value Function Element</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLAttributesDeclarationImpl#getAttributeDeclItem <em>Attribute Decl Item</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLAttributesDeclarationImpl extends EObjectImpl implements XMLAttributesDeclaration {
+	/**
+     * The cached value of the '{@link #getAttributeDeclItem() <em>Attribute Decl Item</em>}' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getAttributeDeclItem()
+     * @generated
+     * @ordered
+     */
+    protected EList attributeDeclItem;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLAttributesDeclarationImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_ATTRIBUTES_DECLARATION;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionElement getValueFunctionElement() {
+        if (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_ATTRIBUTES_DECLARATION__VALUE_FUNCTION_ELEMENT) return null;
+        return (XMLValueFunctionElement)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetValueFunctionElement(XMLValueFunctionElement newValueFunctionElement, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newValueFunctionElement, SQLXMLQueryModelPackage.XML_ATTRIBUTES_DECLARATION__VALUE_FUNCTION_ELEMENT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueFunctionElement(XMLValueFunctionElement newValueFunctionElement) {
+        if (newValueFunctionElement != eInternalContainer() || (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_ATTRIBUTES_DECLARATION__VALUE_FUNCTION_ELEMENT && newValueFunctionElement != null)) {
+            if (EcoreUtil.isAncestor(this, newValueFunctionElement))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newValueFunctionElement != null)
+                msgs = ((InternalEObject)newValueFunctionElement).eInverseAdd(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT__ATTRIBUTES_DECL, XMLValueFunctionElement.class, msgs);
+            msgs = basicSetValueFunctionElement(newValueFunctionElement, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_ATTRIBUTES_DECLARATION__VALUE_FUNCTION_ELEMENT, newValueFunctionElement, newValueFunctionElement));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getAttributeDeclItem() {
+        if (attributeDeclItem == null) {
+            attributeDeclItem = new EObjectContainmentWithInverseEList(XMLAttributeDeclarationItem.class, this, SQLXMLQueryModelPackage.XML_ATTRIBUTES_DECLARATION__ATTRIBUTE_DECL_ITEM, SQLXMLQueryModelPackage.XML_ATTRIBUTE_DECLARATION_ITEM__ATTRIBUTES_DECL);
+        }
+        return attributeDeclItem;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_ATTRIBUTES_DECLARATION__VALUE_FUNCTION_ELEMENT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetValueFunctionElement((XMLValueFunctionElement)otherEnd, msgs);
+            case SQLXMLQueryModelPackage.XML_ATTRIBUTES_DECLARATION__ATTRIBUTE_DECL_ITEM:
+                return ((InternalEList)getAttributeDeclItem()).basicAdd(otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_ATTRIBUTES_DECLARATION__VALUE_FUNCTION_ELEMENT:
+                return basicSetValueFunctionElement(null, msgs);
+            case SQLXMLQueryModelPackage.XML_ATTRIBUTES_DECLARATION__ATTRIBUTE_DECL_ITEM:
+                return ((InternalEList)getAttributeDeclItem()).basicRemove(otherEnd, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLXMLQueryModelPackage.XML_ATTRIBUTES_DECLARATION__VALUE_FUNCTION_ELEMENT:
+                return eInternalContainer().eInverseRemove(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT__ATTRIBUTES_DECL, XMLValueFunctionElement.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_ATTRIBUTES_DECLARATION__VALUE_FUNCTION_ELEMENT:
+                return getValueFunctionElement();
+            case SQLXMLQueryModelPackage.XML_ATTRIBUTES_DECLARATION__ATTRIBUTE_DECL_ITEM:
+                return getAttributeDeclItem();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_ATTRIBUTES_DECLARATION__VALUE_FUNCTION_ELEMENT:
+                setValueFunctionElement((XMLValueFunctionElement)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_ATTRIBUTES_DECLARATION__ATTRIBUTE_DECL_ITEM:
+                getAttributeDeclItem().clear();
+                getAttributeDeclItem().addAll((Collection)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_ATTRIBUTES_DECLARATION__VALUE_FUNCTION_ELEMENT:
+                setValueFunctionElement((XMLValueFunctionElement)null);
+                return;
+            case SQLXMLQueryModelPackage.XML_ATTRIBUTES_DECLARATION__ATTRIBUTE_DECL_ITEM:
+                getAttributeDeclItem().clear();
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_ATTRIBUTES_DECLARATION__VALUE_FUNCTION_ELEMENT:
+                return getValueFunctionElement() != null;
+            case SQLXMLQueryModelPackage.XML_ATTRIBUTES_DECLARATION__ATTRIBUTE_DECL_ITEM:
+                return attributeDeclItem != null && !attributeDeclItem.isEmpty();
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //XMLAttributesDeclarationImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLNamespaceDeclarationDefaultImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLNamespaceDeclarationDefaultImpl.java
new file mode 100644
index 0000000..13c2fb2
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLNamespaceDeclarationDefaultImpl.java
@@ -0,0 +1,167 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLNamespaceDeclarationDefaultImpl.java,v 1.5 2007/02/08 17:04:21 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespaceDeclarationDefault;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespacesDeclaration;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Namespace Declaration Default</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLNamespaceDeclarationDefaultImpl#isNoDefault <em>No Default</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLNamespaceDeclarationDefaultImpl extends XMLNamespaceDeclarationItemImpl implements XMLNamespaceDeclarationDefault {
+	/**
+     * The default value of the '{@link #isNoDefault() <em>No Default</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #isNoDefault()
+     * @generated
+     * @ordered
+     */
+    protected static final boolean NO_DEFAULT_EDEFAULT = false;
+
+	/**
+     * The cached value of the '{@link #isNoDefault() <em>No Default</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #isNoDefault()
+     * @generated
+     * @ordered
+     */
+    protected boolean noDefault = NO_DEFAULT_EDEFAULT;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLNamespaceDeclarationDefaultImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_NAMESPACE_DECLARATION_DEFAULT;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public boolean isNoDefault() {
+        return noDefault;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setNoDefault(boolean newNoDefault) {
+        boolean oldNoDefault = noDefault;
+        noDefault = newNoDefault;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_NAMESPACE_DECLARATION_DEFAULT__NO_DEFAULT, oldNoDefault, noDefault));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_NAMESPACE_DECLARATION_DEFAULT__NO_DEFAULT:
+                return isNoDefault() ? Boolean.TRUE : Boolean.FALSE;
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_NAMESPACE_DECLARATION_DEFAULT__NO_DEFAULT:
+                setNoDefault(((Boolean)newValue).booleanValue());
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_NAMESPACE_DECLARATION_DEFAULT__NO_DEFAULT:
+                setNoDefault(NO_DEFAULT_EDEFAULT);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_NAMESPACE_DECLARATION_DEFAULT__NO_DEFAULT:
+                return noDefault != NO_DEFAULT_EDEFAULT;
+        }
+        return super.eIsSet(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (noDefault: ");
+        result.append(noDefault);
+        result.append(')');
+        return result.toString();
+    }
+
+} //XMLNamespaceDeclarationDefaultImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLNamespaceDeclarationItemImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLNamespaceDeclarationItemImpl.java
new file mode 100644
index 0000000..abe5411
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLNamespaceDeclarationItemImpl.java
@@ -0,0 +1,264 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLNamespaceDeclarationItemImpl.java,v 1.4 2008/07/07 19:55:14 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryObjectImpl;
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespaceDeclarationItem;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespacesDeclaration;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Namespace Declaration Item</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLNamespaceDeclarationItemImpl#getUri <em>Uri</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLNamespaceDeclarationItemImpl#getNamespacesDecl <em>Namespaces Decl</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLNamespaceDeclarationItemImpl extends SQLQueryObjectImpl implements XMLNamespaceDeclarationItem {
+	/**
+     * The default value of the '{@link #getUri() <em>Uri</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getUri()
+     * @generated
+     * @ordered
+     */
+    protected static final String URI_EDEFAULT = null;
+
+	/**
+     * The cached value of the '{@link #getUri() <em>Uri</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getUri()
+     * @generated
+     * @ordered
+     */
+    protected String uri = URI_EDEFAULT;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLNamespaceDeclarationItemImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_NAMESPACE_DECLARATION_ITEM;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String getUri() {
+        return uri;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setUri(String newUri) {
+        String oldUri = uri;
+        uri = newUri;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_NAMESPACE_DECLARATION_ITEM__URI, oldUri, uri));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLNamespacesDeclaration getNamespacesDecl() {
+        if (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_NAMESPACE_DECLARATION_ITEM__NAMESPACES_DECL) return null;
+        return (XMLNamespacesDeclaration)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetNamespacesDecl(XMLNamespacesDeclaration newNamespacesDecl, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newNamespacesDecl, SQLXMLQueryModelPackage.XML_NAMESPACE_DECLARATION_ITEM__NAMESPACES_DECL, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setNamespacesDecl(XMLNamespacesDeclaration newNamespacesDecl) {
+        if (newNamespacesDecl != eInternalContainer() || (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_NAMESPACE_DECLARATION_ITEM__NAMESPACES_DECL && newNamespacesDecl != null)) {
+            if (EcoreUtil.isAncestor(this, newNamespacesDecl))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newNamespacesDecl != null)
+                msgs = ((InternalEObject)newNamespacesDecl).eInverseAdd(this, SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__NAMESPACE_DECLTEM_LIST, XMLNamespacesDeclaration.class, msgs);
+            msgs = basicSetNamespacesDecl(newNamespacesDecl, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_NAMESPACE_DECLARATION_ITEM__NAMESPACES_DECL, newNamespacesDecl, newNamespacesDecl));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_NAMESPACE_DECLARATION_ITEM__NAMESPACES_DECL:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetNamespacesDecl((XMLNamespacesDeclaration)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_NAMESPACE_DECLARATION_ITEM__NAMESPACES_DECL:
+                return basicSetNamespacesDecl(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLXMLQueryModelPackage.XML_NAMESPACE_DECLARATION_ITEM__NAMESPACES_DECL:
+                return eInternalContainer().eInverseRemove(this, SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__NAMESPACE_DECLTEM_LIST, XMLNamespacesDeclaration.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_NAMESPACE_DECLARATION_ITEM__URI:
+                return getUri();
+            case SQLXMLQueryModelPackage.XML_NAMESPACE_DECLARATION_ITEM__NAMESPACES_DECL:
+                return getNamespacesDecl();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_NAMESPACE_DECLARATION_ITEM__URI:
+                setUri((String)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_NAMESPACE_DECLARATION_ITEM__NAMESPACES_DECL:
+                setNamespacesDecl((XMLNamespacesDeclaration)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_NAMESPACE_DECLARATION_ITEM__URI:
+                setUri(URI_EDEFAULT);
+                return;
+            case SQLXMLQueryModelPackage.XML_NAMESPACE_DECLARATION_ITEM__NAMESPACES_DECL:
+                setNamespacesDecl((XMLNamespacesDeclaration)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_NAMESPACE_DECLARATION_ITEM__URI:
+                return URI_EDEFAULT == null ? uri != null : !URI_EDEFAULT.equals(uri);
+            case SQLXMLQueryModelPackage.XML_NAMESPACE_DECLARATION_ITEM__NAMESPACES_DECL:
+                return getNamespacesDecl() != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (uri: ");
+        result.append(uri);
+        result.append(')');
+        return result.toString();
+    }
+
+} //XMLNamespaceDeclarationItemImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLNamespaceDeclarationPrefixImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLNamespaceDeclarationPrefixImpl.java
new file mode 100644
index 0000000..eebb50b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLNamespaceDeclarationPrefixImpl.java
@@ -0,0 +1,167 @@
+/**
+ * </copyright>
+ *
+ * $Id: XMLNamespaceDeclarationPrefixImpl.java,v 1.5 2007/02/08 17:04:21 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespaceDeclarationPrefix;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespacesDeclaration;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Namespace Declaration Prefix</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLNamespaceDeclarationPrefixImpl#getPrefix <em>Prefix</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLNamespaceDeclarationPrefixImpl extends XMLNamespaceDeclarationItemImpl implements XMLNamespaceDeclarationPrefix {
+	/**
+     * The default value of the '{@link #getPrefix() <em>Prefix</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getPrefix()
+     * @generated
+     * @ordered
+     */
+    protected static final String PREFIX_EDEFAULT = null;
+
+	/**
+     * The cached value of the '{@link #getPrefix() <em>Prefix</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getPrefix()
+     * @generated
+     * @ordered
+     */
+    protected String prefix = PREFIX_EDEFAULT;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLNamespaceDeclarationPrefixImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_NAMESPACE_DECLARATION_PREFIX;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String getPrefix() {
+        return prefix;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setPrefix(String newPrefix) {
+        String oldPrefix = prefix;
+        prefix = newPrefix;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_NAMESPACE_DECLARATION_PREFIX__PREFIX, oldPrefix, prefix));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_NAMESPACE_DECLARATION_PREFIX__PREFIX:
+                return getPrefix();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_NAMESPACE_DECLARATION_PREFIX__PREFIX:
+                setPrefix((String)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_NAMESPACE_DECLARATION_PREFIX__PREFIX:
+                setPrefix(PREFIX_EDEFAULT);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_NAMESPACE_DECLARATION_PREFIX__PREFIX:
+                return PREFIX_EDEFAULT == null ? prefix != null : !PREFIX_EDEFAULT.equals(prefix);
+        }
+        return super.eIsSet(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (prefix: ");
+        result.append(prefix);
+        result.append(')');
+        return result.toString();
+    }
+
+} //XMLNamespaceDeclarationPrefixImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLNamespacesDeclarationImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLNamespacesDeclarationImpl.java
new file mode 100644
index 0000000..dab6c0e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLNamespacesDeclarationImpl.java
@@ -0,0 +1,361 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLNamespacesDeclarationImpl.java,v 1.4 2008/07/07 19:55:15 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryObjectImpl;
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespaceDeclarationItem;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespacesDeclaration;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLTableFunction;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElement;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForest;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Namespaces Declaration</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLNamespacesDeclarationImpl#getNamespaceDecltemList <em>Namespace Decltem List</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLNamespacesDeclarationImpl#getValueFunctionElement <em>Value Function Element</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLNamespacesDeclarationImpl#getValueFunctionForest <em>Value Function Forest</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLNamespacesDeclarationImpl#getTableFunction <em>Table Function</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLNamespacesDeclarationImpl extends SQLQueryObjectImpl implements XMLNamespacesDeclaration {
+	/**
+     * The cached value of the '{@link #getNamespaceDecltemList() <em>Namespace Decltem List</em>}' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getNamespaceDecltemList()
+     * @generated
+     * @ordered
+     */
+    protected EList namespaceDecltemList;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLNamespacesDeclarationImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_NAMESPACES_DECLARATION;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getNamespaceDecltemList() {
+        if (namespaceDecltemList == null) {
+            namespaceDecltemList = new EObjectContainmentWithInverseEList(XMLNamespaceDeclarationItem.class, this, SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__NAMESPACE_DECLTEM_LIST, SQLXMLQueryModelPackage.XML_NAMESPACE_DECLARATION_ITEM__NAMESPACES_DECL);
+        }
+        return namespaceDecltemList;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionElement getValueFunctionElement() {
+        if (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__VALUE_FUNCTION_ELEMENT) return null;
+        return (XMLValueFunctionElement)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetValueFunctionElement(XMLValueFunctionElement newValueFunctionElement, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newValueFunctionElement, SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__VALUE_FUNCTION_ELEMENT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueFunctionElement(XMLValueFunctionElement newValueFunctionElement) {
+        if (newValueFunctionElement != eInternalContainer() || (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__VALUE_FUNCTION_ELEMENT && newValueFunctionElement != null)) {
+            if (EcoreUtil.isAncestor(this, newValueFunctionElement))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newValueFunctionElement != null)
+                msgs = ((InternalEObject)newValueFunctionElement).eInverseAdd(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT__NAMESPACES_DECL, XMLValueFunctionElement.class, msgs);
+            msgs = basicSetValueFunctionElement(newValueFunctionElement, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__VALUE_FUNCTION_ELEMENT, newValueFunctionElement, newValueFunctionElement));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionForest getValueFunctionForest() {
+        if (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__VALUE_FUNCTION_FOREST) return null;
+        return (XMLValueFunctionForest)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetValueFunctionForest(XMLValueFunctionForest newValueFunctionForest, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newValueFunctionForest, SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__VALUE_FUNCTION_FOREST, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueFunctionForest(XMLValueFunctionForest newValueFunctionForest) {
+        if (newValueFunctionForest != eInternalContainer() || (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__VALUE_FUNCTION_FOREST && newValueFunctionForest != null)) {
+            if (EcoreUtil.isAncestor(this, newValueFunctionForest))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newValueFunctionForest != null)
+                msgs = ((InternalEObject)newValueFunctionForest).eInverseAdd(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST__NAMESPACES_DECL, XMLValueFunctionForest.class, msgs);
+            msgs = basicSetValueFunctionForest(newValueFunctionForest, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__VALUE_FUNCTION_FOREST, newValueFunctionForest, newValueFunctionForest));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLTableFunction getTableFunction() {
+        if (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__TABLE_FUNCTION) return null;
+        return (XMLTableFunction)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetTableFunction(XMLTableFunction newTableFunction, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newTableFunction, SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__TABLE_FUNCTION, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setTableFunction(XMLTableFunction newTableFunction) {
+        if (newTableFunction != eInternalContainer() || (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__TABLE_FUNCTION && newTableFunction != null)) {
+            if (EcoreUtil.isAncestor(this, newTableFunction))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newTableFunction != null)
+                msgs = ((InternalEObject)newTableFunction).eInverseAdd(this, SQLXMLQueryModelPackage.XML_TABLE_FUNCTION__NAMESPACES_DECL, XMLTableFunction.class, msgs);
+            msgs = basicSetTableFunction(newTableFunction, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__TABLE_FUNCTION, newTableFunction, newTableFunction));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__NAMESPACE_DECLTEM_LIST:
+                return ((InternalEList)getNamespaceDecltemList()).basicAdd(otherEnd, msgs);
+            case SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__VALUE_FUNCTION_ELEMENT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetValueFunctionElement((XMLValueFunctionElement)otherEnd, msgs);
+            case SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__VALUE_FUNCTION_FOREST:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetValueFunctionForest((XMLValueFunctionForest)otherEnd, msgs);
+            case SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__TABLE_FUNCTION:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetTableFunction((XMLTableFunction)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__NAMESPACE_DECLTEM_LIST:
+                return ((InternalEList)getNamespaceDecltemList()).basicRemove(otherEnd, msgs);
+            case SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__VALUE_FUNCTION_ELEMENT:
+                return basicSetValueFunctionElement(null, msgs);
+            case SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__VALUE_FUNCTION_FOREST:
+                return basicSetValueFunctionForest(null, msgs);
+            case SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__TABLE_FUNCTION:
+                return basicSetTableFunction(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__VALUE_FUNCTION_ELEMENT:
+                return eInternalContainer().eInverseRemove(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT__NAMESPACES_DECL, XMLValueFunctionElement.class, msgs);
+            case SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__VALUE_FUNCTION_FOREST:
+                return eInternalContainer().eInverseRemove(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST__NAMESPACES_DECL, XMLValueFunctionForest.class, msgs);
+            case SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__TABLE_FUNCTION:
+                return eInternalContainer().eInverseRemove(this, SQLXMLQueryModelPackage.XML_TABLE_FUNCTION__NAMESPACES_DECL, XMLTableFunction.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__NAMESPACE_DECLTEM_LIST:
+                return getNamespaceDecltemList();
+            case SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__VALUE_FUNCTION_ELEMENT:
+                return getValueFunctionElement();
+            case SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__VALUE_FUNCTION_FOREST:
+                return getValueFunctionForest();
+            case SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__TABLE_FUNCTION:
+                return getTableFunction();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__NAMESPACE_DECLTEM_LIST:
+                getNamespaceDecltemList().clear();
+                getNamespaceDecltemList().addAll((Collection)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__VALUE_FUNCTION_ELEMENT:
+                setValueFunctionElement((XMLValueFunctionElement)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__VALUE_FUNCTION_FOREST:
+                setValueFunctionForest((XMLValueFunctionForest)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__TABLE_FUNCTION:
+                setTableFunction((XMLTableFunction)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__NAMESPACE_DECLTEM_LIST:
+                getNamespaceDecltemList().clear();
+                return;
+            case SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__VALUE_FUNCTION_ELEMENT:
+                setValueFunctionElement((XMLValueFunctionElement)null);
+                return;
+            case SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__VALUE_FUNCTION_FOREST:
+                setValueFunctionForest((XMLValueFunctionForest)null);
+                return;
+            case SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__TABLE_FUNCTION:
+                setTableFunction((XMLTableFunction)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__NAMESPACE_DECLTEM_LIST:
+                return namespaceDecltemList != null && !namespaceDecltemList.isEmpty();
+            case SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__VALUE_FUNCTION_ELEMENT:
+                return getValueFunctionElement() != null;
+            case SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__VALUE_FUNCTION_FOREST:
+                return getValueFunctionForest() != null;
+            case SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__TABLE_FUNCTION:
+                return getTableFunction() != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //XMLNamespacesDeclarationImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLPredicateContentImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLPredicateContentImpl.java
new file mode 100644
index 0000000..080df55
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLPredicateContentImpl.java
@@ -0,0 +1,61 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLPredicateContentImpl.java,v 1.5 2007/02/08 17:04:20 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionNested;
+import org.eclipse.datatools.modelbase.sql.query.TableJoined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLPredicateContent;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Predicate Content</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLPredicateContentImpl extends XMLPredicateImpl implements XMLPredicateContent {
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLPredicateContentImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_PREDICATE_CONTENT;
+    }
+
+} //XMLPredicateContentImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLPredicateDocumentImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLPredicateDocumentImpl.java
new file mode 100644
index 0000000..95c002c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLPredicateDocumentImpl.java
@@ -0,0 +1,61 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLPredicateDocumentImpl.java,v 1.5 2007/02/08 17:04:20 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionNested;
+import org.eclipse.datatools.modelbase.sql.query.TableJoined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLPredicateDocument;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Predicate Document</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLPredicateDocumentImpl extends XMLPredicateImpl implements XMLPredicateDocument {
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLPredicateDocumentImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_PREDICATE_DOCUMENT;
+    }
+
+} //XMLPredicateDocumentImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLPredicateExistsImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLPredicateExistsImpl.java
new file mode 100644
index 0000000..473b80d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLPredicateExistsImpl.java
@@ -0,0 +1,270 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLPredicateExistsImpl.java,v 1.5 2007/02/08 17:04:21 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionNested;
+import org.eclipse.datatools.modelbase.sql.query.TableJoined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLPredicateExists;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentList;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryExpression;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Predicate Exists</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLPredicateExistsImpl#getXqueryExpr <em>Xquery Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLPredicateExistsImpl#getXqueryArgList <em>Xquery Arg List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLPredicateExistsImpl extends XMLPredicateImpl implements XMLPredicateExists {
+	/**
+     * The cached value of the '{@link #getXqueryExpr() <em>Xquery Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getXqueryExpr()
+     * @generated
+     * @ordered
+     */
+    protected XMLQueryExpression xqueryExpr;
+
+	/**
+     * The cached value of the '{@link #getXqueryArgList() <em>Xquery Arg List</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getXqueryArgList()
+     * @generated
+     * @ordered
+     */
+    protected XMLQueryArgumentList xqueryArgList;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLPredicateExistsImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_PREDICATE_EXISTS;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLQueryExpression getXqueryExpr() {
+        return xqueryExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetXqueryExpr(XMLQueryExpression newXqueryExpr, NotificationChain msgs) {
+        XMLQueryExpression oldXqueryExpr = xqueryExpr;
+        xqueryExpr = newXqueryExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_PREDICATE_EXISTS__XQUERY_EXPR, oldXqueryExpr, newXqueryExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setXqueryExpr(XMLQueryExpression newXqueryExpr) {
+        if (newXqueryExpr != xqueryExpr) {
+            NotificationChain msgs = null;
+            if (xqueryExpr != null)
+                msgs = ((InternalEObject)xqueryExpr).eInverseRemove(this, SQLXMLQueryModelPackage.XML_QUERY_EXPRESSION__PREDICATE_EXISTS, XMLQueryExpression.class, msgs);
+            if (newXqueryExpr != null)
+                msgs = ((InternalEObject)newXqueryExpr).eInverseAdd(this, SQLXMLQueryModelPackage.XML_QUERY_EXPRESSION__PREDICATE_EXISTS, XMLQueryExpression.class, msgs);
+            msgs = basicSetXqueryExpr(newXqueryExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_PREDICATE_EXISTS__XQUERY_EXPR, newXqueryExpr, newXqueryExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLQueryArgumentList getXqueryArgList() {
+        return xqueryArgList;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetXqueryArgList(XMLQueryArgumentList newXqueryArgList, NotificationChain msgs) {
+        XMLQueryArgumentList oldXqueryArgList = xqueryArgList;
+        xqueryArgList = newXqueryArgList;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_PREDICATE_EXISTS__XQUERY_ARG_LIST, oldXqueryArgList, newXqueryArgList);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setXqueryArgList(XMLQueryArgumentList newXqueryArgList) {
+        if (newXqueryArgList != xqueryArgList) {
+            NotificationChain msgs = null;
+            if (xqueryArgList != null)
+                msgs = ((InternalEObject)xqueryArgList).eInverseRemove(this, SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__PREDICATE_EXISTS, XMLQueryArgumentList.class, msgs);
+            if (newXqueryArgList != null)
+                msgs = ((InternalEObject)newXqueryArgList).eInverseAdd(this, SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__PREDICATE_EXISTS, XMLQueryArgumentList.class, msgs);
+            msgs = basicSetXqueryArgList(newXqueryArgList, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_PREDICATE_EXISTS__XQUERY_ARG_LIST, newXqueryArgList, newXqueryArgList));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_PREDICATE_EXISTS__XQUERY_EXPR:
+                if (xqueryExpr != null)
+                    msgs = ((InternalEObject)xqueryExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_PREDICATE_EXISTS__XQUERY_EXPR, null, msgs);
+                return basicSetXqueryExpr((XMLQueryExpression)otherEnd, msgs);
+            case SQLXMLQueryModelPackage.XML_PREDICATE_EXISTS__XQUERY_ARG_LIST:
+                if (xqueryArgList != null)
+                    msgs = ((InternalEObject)xqueryArgList).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_PREDICATE_EXISTS__XQUERY_ARG_LIST, null, msgs);
+                return basicSetXqueryArgList((XMLQueryArgumentList)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_PREDICATE_EXISTS__XQUERY_EXPR:
+                return basicSetXqueryExpr(null, msgs);
+            case SQLXMLQueryModelPackage.XML_PREDICATE_EXISTS__XQUERY_ARG_LIST:
+                return basicSetXqueryArgList(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_PREDICATE_EXISTS__XQUERY_EXPR:
+                return getXqueryExpr();
+            case SQLXMLQueryModelPackage.XML_PREDICATE_EXISTS__XQUERY_ARG_LIST:
+                return getXqueryArgList();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_PREDICATE_EXISTS__XQUERY_EXPR:
+                setXqueryExpr((XMLQueryExpression)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_PREDICATE_EXISTS__XQUERY_ARG_LIST:
+                setXqueryArgList((XMLQueryArgumentList)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_PREDICATE_EXISTS__XQUERY_EXPR:
+                setXqueryExpr((XMLQueryExpression)null);
+                return;
+            case SQLXMLQueryModelPackage.XML_PREDICATE_EXISTS__XQUERY_ARG_LIST:
+                setXqueryArgList((XMLQueryArgumentList)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_PREDICATE_EXISTS__XQUERY_EXPR:
+                return xqueryExpr != null;
+            case SQLXMLQueryModelPackage.XML_PREDICATE_EXISTS__XQUERY_ARG_LIST:
+                return xqueryArgList != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //XMLPredicateExistsImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLPredicateImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLPredicateImpl.java
new file mode 100644
index 0000000..811c93e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLPredicateImpl.java
@@ -0,0 +1,60 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLPredicateImpl.java,v 1.5 2007/02/08 17:04:21 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionNested;
+import org.eclipse.datatools.modelbase.sql.query.TableJoined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+
+import org.eclipse.datatools.modelbase.sql.query.impl.PredicateImpl;
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLPredicate;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class XMLPredicateImpl extends PredicateImpl implements XMLPredicate {
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLPredicateImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_PREDICATE;
+    }
+
+} //XMLPredicateImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLPredicateValidImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLPredicateValidImpl.java
new file mode 100644
index 0000000..ea2c49f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLPredicateValidImpl.java
@@ -0,0 +1,59 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLPredicateValidImpl.java,v 1.5 2007/02/08 17:04:20 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryDeleteStatement;
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryUpdateStatement;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionCombined;
+import org.eclipse.datatools.modelbase.sql.query.SearchConditionNested;
+import org.eclipse.datatools.modelbase.sql.query.TableJoined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLPredicateValid;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Predicate Valid</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLPredicateValidImpl extends XMLPredicateImpl implements XMLPredicateValid {
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLPredicateValidImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_PREDICATE_VALID;
+    }
+
+} //XMLPredicateValidImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLQueryArgumentItemImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLQueryArgumentItemImpl.java
new file mode 100644
index 0000000..361bca6
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLQueryArgumentItemImpl.java
@@ -0,0 +1,360 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLQueryArgumentItemImpl.java,v 1.4 2008/07/07 19:55:15 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+import org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl;
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLPassingType;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentItem;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentList;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Query Argument Item</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLQueryArgumentItemImpl#getPassingMechanism <em>Passing Mechanism</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLQueryArgumentItemImpl#getXqueryArgList <em>Xquery Arg List</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLQueryArgumentItemImpl#getValueExpr <em>Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLQueryArgumentItemImpl extends QueryValueExpressionImpl implements XMLQueryArgumentItem {
+	/**
+     * The default value of the '{@link #getPassingMechanism() <em>Passing Mechanism</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getPassingMechanism()
+     * @generated
+     * @ordered
+     */
+    protected static final XMLPassingType PASSING_MECHANISM_EDEFAULT = XMLPassingType.BY_REF_LITERAL;
+
+	/**
+     * The cached value of the '{@link #getPassingMechanism() <em>Passing Mechanism</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getPassingMechanism()
+     * @generated
+     * @ordered
+     */
+    protected XMLPassingType passingMechanism = PASSING_MECHANISM_EDEFAULT;
+
+	/**
+     * The cached value of the '{@link #getValueExpr() <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getValueExpr()
+     * @generated
+     * @ordered
+     */
+    protected QueryValueExpression valueExpr;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLQueryArgumentItemImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_QUERY_ARGUMENT_ITEM;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLPassingType getPassingMechanism() {
+        return passingMechanism;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setPassingMechanism(XMLPassingType newPassingMechanism) {
+        XMLPassingType oldPassingMechanism = passingMechanism;
+        passingMechanism = newPassingMechanism == null ? PASSING_MECHANISM_EDEFAULT : newPassingMechanism;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_ITEM__PASSING_MECHANISM, oldPassingMechanism, passingMechanism));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLQueryArgumentList getXqueryArgList() {
+        if (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_ITEM__XQUERY_ARG_LIST) return null;
+        return (XMLQueryArgumentList)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetXqueryArgList(XMLQueryArgumentList newXqueryArgList, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newXqueryArgList, SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_ITEM__XQUERY_ARG_LIST, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setXqueryArgList(XMLQueryArgumentList newXqueryArgList) {
+        if (newXqueryArgList != eInternalContainer() || (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_ITEM__XQUERY_ARG_LIST && newXqueryArgList != null)) {
+            if (EcoreUtil.isAncestor(this, newXqueryArgList))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newXqueryArgList != null)
+                msgs = ((InternalEObject)newXqueryArgList).eInverseAdd(this, SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__XQUERY_ARG_LIST_CHILDREN, XMLQueryArgumentList.class, msgs);
+            msgs = basicSetXqueryArgList(newXqueryArgList, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_ITEM__XQUERY_ARG_LIST, newXqueryArgList, newXqueryArgList));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryValueExpression getValueExpr() {
+        return valueExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetValueExpr(QueryValueExpression newValueExpr, NotificationChain msgs) {
+        QueryValueExpression oldValueExpr = valueExpr;
+        valueExpr = newValueExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_ITEM__VALUE_EXPR, oldValueExpr, newValueExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueExpr(QueryValueExpression newValueExpr) {
+        if (newValueExpr != valueExpr) {
+            NotificationChain msgs = null;
+            if (valueExpr != null)
+                msgs = ((InternalEObject)valueExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_ITEM__VALUE_EXPR, null, msgs);
+            if (newValueExpr != null)
+                msgs = ((InternalEObject)newValueExpr).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_ITEM__VALUE_EXPR, null, msgs);
+            msgs = basicSetValueExpr(newValueExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_ITEM__VALUE_EXPR, newValueExpr, newValueExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_ITEM__XQUERY_ARG_LIST:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetXqueryArgList((XMLQueryArgumentList)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_ITEM__XQUERY_ARG_LIST:
+                return basicSetXqueryArgList(null, msgs);
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_ITEM__VALUE_EXPR:
+                return basicSetValueExpr(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_ITEM__XQUERY_ARG_LIST:
+                return eInternalContainer().eInverseRemove(this, SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__XQUERY_ARG_LIST_CHILDREN, XMLQueryArgumentList.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_ITEM__PASSING_MECHANISM:
+                return getPassingMechanism();
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_ITEM__XQUERY_ARG_LIST:
+                return getXqueryArgList();
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_ITEM__VALUE_EXPR:
+                return getValueExpr();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_ITEM__PASSING_MECHANISM:
+                setPassingMechanism((XMLPassingType)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_ITEM__XQUERY_ARG_LIST:
+                setXqueryArgList((XMLQueryArgumentList)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_ITEM__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_ITEM__PASSING_MECHANISM:
+                setPassingMechanism(PASSING_MECHANISM_EDEFAULT);
+                return;
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_ITEM__XQUERY_ARG_LIST:
+                setXqueryArgList((XMLQueryArgumentList)null);
+                return;
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_ITEM__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_ITEM__PASSING_MECHANISM:
+                return passingMechanism != PASSING_MECHANISM_EDEFAULT;
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_ITEM__XQUERY_ARG_LIST:
+                return getXqueryArgList() != null;
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_ITEM__VALUE_EXPR:
+                return valueExpr != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (passingMechanism: ");
+        result.append(passingMechanism);
+        result.append(')');
+        return result.toString();
+    }
+
+} //XMLQueryArgumentItemImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLQueryArgumentListImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLQueryArgumentListImpl.java
new file mode 100644
index 0000000..61d1e41
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLQueryArgumentListImpl.java
@@ -0,0 +1,429 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLQueryArgumentListImpl.java,v 1.4 2008/07/07 19:55:15 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryObjectImpl;
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLPassingType;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLPredicateExists;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentItem;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentList;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLTableFunction;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQuery;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Query Argument List</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLQueryArgumentListImpl#getPassingMechanism <em>Passing Mechanism</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLQueryArgumentListImpl#getPredicateExists <em>Predicate Exists</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLQueryArgumentListImpl#getXqueryArgListChildren <em>Xquery Arg List Children</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLQueryArgumentListImpl#getValueFunctionQuery <em>Value Function Query</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLQueryArgumentListImpl#getTableFunction <em>Table Function</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLQueryArgumentListImpl extends SQLQueryObjectImpl implements XMLQueryArgumentList {
+	/**
+     * The default value of the '{@link #getPassingMechanism() <em>Passing Mechanism</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getPassingMechanism()
+     * @generated
+     * @ordered
+     */
+    protected static final XMLPassingType PASSING_MECHANISM_EDEFAULT = XMLPassingType.BY_REF_LITERAL;
+
+	/**
+     * The cached value of the '{@link #getPassingMechanism() <em>Passing Mechanism</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getPassingMechanism()
+     * @generated
+     * @ordered
+     */
+    protected XMLPassingType passingMechanism = PASSING_MECHANISM_EDEFAULT;
+
+	/**
+     * The cached value of the '{@link #getXqueryArgListChildren() <em>Xquery Arg List Children</em>}' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getXqueryArgListChildren()
+     * @generated
+     * @ordered
+     */
+    protected EList xqueryArgListChildren;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLQueryArgumentListImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_QUERY_ARGUMENT_LIST;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLPassingType getPassingMechanism() {
+        return passingMechanism;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setPassingMechanism(XMLPassingType newPassingMechanism) {
+        XMLPassingType oldPassingMechanism = passingMechanism;
+        passingMechanism = newPassingMechanism == null ? PASSING_MECHANISM_EDEFAULT : newPassingMechanism;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__PASSING_MECHANISM, oldPassingMechanism, passingMechanism));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLPredicateExists getPredicateExists() {
+        if (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__PREDICATE_EXISTS) return null;
+        return (XMLPredicateExists)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetPredicateExists(XMLPredicateExists newPredicateExists, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newPredicateExists, SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__PREDICATE_EXISTS, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setPredicateExists(XMLPredicateExists newPredicateExists) {
+        if (newPredicateExists != eInternalContainer() || (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__PREDICATE_EXISTS && newPredicateExists != null)) {
+            if (EcoreUtil.isAncestor(this, newPredicateExists))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newPredicateExists != null)
+                msgs = ((InternalEObject)newPredicateExists).eInverseAdd(this, SQLXMLQueryModelPackage.XML_PREDICATE_EXISTS__XQUERY_ARG_LIST, XMLPredicateExists.class, msgs);
+            msgs = basicSetPredicateExists(newPredicateExists, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__PREDICATE_EXISTS, newPredicateExists, newPredicateExists));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getXqueryArgListChildren() {
+        if (xqueryArgListChildren == null) {
+            xqueryArgListChildren = new EObjectContainmentWithInverseEList(XMLQueryArgumentItem.class, this, SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__XQUERY_ARG_LIST_CHILDREN, SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_ITEM__XQUERY_ARG_LIST);
+        }
+        return xqueryArgListChildren;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionQuery getValueFunctionQuery() {
+        if (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__VALUE_FUNCTION_QUERY) return null;
+        return (XMLValueFunctionQuery)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetValueFunctionQuery(XMLValueFunctionQuery newValueFunctionQuery, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newValueFunctionQuery, SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__VALUE_FUNCTION_QUERY, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueFunctionQuery(XMLValueFunctionQuery newValueFunctionQuery) {
+        if (newValueFunctionQuery != eInternalContainer() || (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__VALUE_FUNCTION_QUERY && newValueFunctionQuery != null)) {
+            if (EcoreUtil.isAncestor(this, newValueFunctionQuery))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newValueFunctionQuery != null)
+                msgs = ((InternalEObject)newValueFunctionQuery).eInverseAdd(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY__XQUERY_ARG_LIST, XMLValueFunctionQuery.class, msgs);
+            msgs = basicSetValueFunctionQuery(newValueFunctionQuery, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__VALUE_FUNCTION_QUERY, newValueFunctionQuery, newValueFunctionQuery));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLTableFunction getTableFunction() {
+        if (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__TABLE_FUNCTION) return null;
+        return (XMLTableFunction)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetTableFunction(XMLTableFunction newTableFunction, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newTableFunction, SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__TABLE_FUNCTION, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setTableFunction(XMLTableFunction newTableFunction) {
+        if (newTableFunction != eInternalContainer() || (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__TABLE_FUNCTION && newTableFunction != null)) {
+            if (EcoreUtil.isAncestor(this, newTableFunction))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newTableFunction != null)
+                msgs = ((InternalEObject)newTableFunction).eInverseAdd(this, SQLXMLQueryModelPackage.XML_TABLE_FUNCTION__XQUERY_ARG_LIST, XMLTableFunction.class, msgs);
+            msgs = basicSetTableFunction(newTableFunction, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__TABLE_FUNCTION, newTableFunction, newTableFunction));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__PREDICATE_EXISTS:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetPredicateExists((XMLPredicateExists)otherEnd, msgs);
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__XQUERY_ARG_LIST_CHILDREN:
+                return ((InternalEList)getXqueryArgListChildren()).basicAdd(otherEnd, msgs);
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__VALUE_FUNCTION_QUERY:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetValueFunctionQuery((XMLValueFunctionQuery)otherEnd, msgs);
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__TABLE_FUNCTION:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetTableFunction((XMLTableFunction)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__PREDICATE_EXISTS:
+                return basicSetPredicateExists(null, msgs);
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__XQUERY_ARG_LIST_CHILDREN:
+                return ((InternalEList)getXqueryArgListChildren()).basicRemove(otherEnd, msgs);
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__VALUE_FUNCTION_QUERY:
+                return basicSetValueFunctionQuery(null, msgs);
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__TABLE_FUNCTION:
+                return basicSetTableFunction(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__PREDICATE_EXISTS:
+                return eInternalContainer().eInverseRemove(this, SQLXMLQueryModelPackage.XML_PREDICATE_EXISTS__XQUERY_ARG_LIST, XMLPredicateExists.class, msgs);
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__VALUE_FUNCTION_QUERY:
+                return eInternalContainer().eInverseRemove(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY__XQUERY_ARG_LIST, XMLValueFunctionQuery.class, msgs);
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__TABLE_FUNCTION:
+                return eInternalContainer().eInverseRemove(this, SQLXMLQueryModelPackage.XML_TABLE_FUNCTION__XQUERY_ARG_LIST, XMLTableFunction.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__PASSING_MECHANISM:
+                return getPassingMechanism();
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__PREDICATE_EXISTS:
+                return getPredicateExists();
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__XQUERY_ARG_LIST_CHILDREN:
+                return getXqueryArgListChildren();
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__VALUE_FUNCTION_QUERY:
+                return getValueFunctionQuery();
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__TABLE_FUNCTION:
+                return getTableFunction();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__PASSING_MECHANISM:
+                setPassingMechanism((XMLPassingType)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__PREDICATE_EXISTS:
+                setPredicateExists((XMLPredicateExists)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__XQUERY_ARG_LIST_CHILDREN:
+                getXqueryArgListChildren().clear();
+                getXqueryArgListChildren().addAll((Collection)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__VALUE_FUNCTION_QUERY:
+                setValueFunctionQuery((XMLValueFunctionQuery)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__TABLE_FUNCTION:
+                setTableFunction((XMLTableFunction)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__PASSING_MECHANISM:
+                setPassingMechanism(PASSING_MECHANISM_EDEFAULT);
+                return;
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__PREDICATE_EXISTS:
+                setPredicateExists((XMLPredicateExists)null);
+                return;
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__XQUERY_ARG_LIST_CHILDREN:
+                getXqueryArgListChildren().clear();
+                return;
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__VALUE_FUNCTION_QUERY:
+                setValueFunctionQuery((XMLValueFunctionQuery)null);
+                return;
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__TABLE_FUNCTION:
+                setTableFunction((XMLTableFunction)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__PASSING_MECHANISM:
+                return passingMechanism != PASSING_MECHANISM_EDEFAULT;
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__PREDICATE_EXISTS:
+                return getPredicateExists() != null;
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__XQUERY_ARG_LIST_CHILDREN:
+                return xqueryArgListChildren != null && !xqueryArgListChildren.isEmpty();
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__VALUE_FUNCTION_QUERY:
+                return getValueFunctionQuery() != null;
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__TABLE_FUNCTION:
+                return getTableFunction() != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (passingMechanism: ");
+        result.append(passingMechanism);
+        result.append(')');
+        return result.toString();
+    }
+
+} //XMLQueryArgumentListImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLQueryExpressionImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLQueryExpressionImpl.java
new file mode 100644
index 0000000..ce1d70c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLQueryExpressionImpl.java
@@ -0,0 +1,325 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLQueryExpressionImpl.java,v 1.4 2008/07/07 19:55:15 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryObjectImpl;
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLPredicateExists;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryExpression;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQuery;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Query Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLQueryExpressionImpl#getXqueryExprContent <em>Xquery Expr Content</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLQueryExpressionImpl#getPredicateExists <em>Predicate Exists</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLQueryExpressionImpl#getValueFunctionQuery <em>Value Function Query</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLQueryExpressionImpl extends SQLQueryObjectImpl implements XMLQueryExpression {
+	/**
+     * The default value of the '{@link #getXqueryExprContent() <em>Xquery Expr Content</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getXqueryExprContent()
+     * @generated
+     * @ordered
+     */
+    protected static final String XQUERY_EXPR_CONTENT_EDEFAULT = null;
+
+	/**
+     * The cached value of the '{@link #getXqueryExprContent() <em>Xquery Expr Content</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getXqueryExprContent()
+     * @generated
+     * @ordered
+     */
+    protected String xqueryExprContent = XQUERY_EXPR_CONTENT_EDEFAULT;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLQueryExpressionImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_QUERY_EXPRESSION;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String getXqueryExprContent() {
+        return xqueryExprContent;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setXqueryExprContent(String newXqueryExprContent) {
+        String oldXqueryExprContent = xqueryExprContent;
+        xqueryExprContent = newXqueryExprContent;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_QUERY_EXPRESSION__XQUERY_EXPR_CONTENT, oldXqueryExprContent, xqueryExprContent));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLPredicateExists getPredicateExists() {
+        if (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_QUERY_EXPRESSION__PREDICATE_EXISTS) return null;
+        return (XMLPredicateExists)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetPredicateExists(XMLPredicateExists newPredicateExists, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newPredicateExists, SQLXMLQueryModelPackage.XML_QUERY_EXPRESSION__PREDICATE_EXISTS, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setPredicateExists(XMLPredicateExists newPredicateExists) {
+        if (newPredicateExists != eInternalContainer() || (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_QUERY_EXPRESSION__PREDICATE_EXISTS && newPredicateExists != null)) {
+            if (EcoreUtil.isAncestor(this, newPredicateExists))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newPredicateExists != null)
+                msgs = ((InternalEObject)newPredicateExists).eInverseAdd(this, SQLXMLQueryModelPackage.XML_PREDICATE_EXISTS__XQUERY_EXPR, XMLPredicateExists.class, msgs);
+            msgs = basicSetPredicateExists(newPredicateExists, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_QUERY_EXPRESSION__PREDICATE_EXISTS, newPredicateExists, newPredicateExists));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionQuery getValueFunctionQuery() {
+        if (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_QUERY_EXPRESSION__VALUE_FUNCTION_QUERY) return null;
+        return (XMLValueFunctionQuery)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetValueFunctionQuery(XMLValueFunctionQuery newValueFunctionQuery, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newValueFunctionQuery, SQLXMLQueryModelPackage.XML_QUERY_EXPRESSION__VALUE_FUNCTION_QUERY, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueFunctionQuery(XMLValueFunctionQuery newValueFunctionQuery) {
+        if (newValueFunctionQuery != eInternalContainer() || (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_QUERY_EXPRESSION__VALUE_FUNCTION_QUERY && newValueFunctionQuery != null)) {
+            if (EcoreUtil.isAncestor(this, newValueFunctionQuery))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newValueFunctionQuery != null)
+                msgs = ((InternalEObject)newValueFunctionQuery).eInverseAdd(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY__XQUERY_EXPR, XMLValueFunctionQuery.class, msgs);
+            msgs = basicSetValueFunctionQuery(newValueFunctionQuery, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_QUERY_EXPRESSION__VALUE_FUNCTION_QUERY, newValueFunctionQuery, newValueFunctionQuery));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_QUERY_EXPRESSION__PREDICATE_EXISTS:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetPredicateExists((XMLPredicateExists)otherEnd, msgs);
+            case SQLXMLQueryModelPackage.XML_QUERY_EXPRESSION__VALUE_FUNCTION_QUERY:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetValueFunctionQuery((XMLValueFunctionQuery)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_QUERY_EXPRESSION__PREDICATE_EXISTS:
+                return basicSetPredicateExists(null, msgs);
+            case SQLXMLQueryModelPackage.XML_QUERY_EXPRESSION__VALUE_FUNCTION_QUERY:
+                return basicSetValueFunctionQuery(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLXMLQueryModelPackage.XML_QUERY_EXPRESSION__PREDICATE_EXISTS:
+                return eInternalContainer().eInverseRemove(this, SQLXMLQueryModelPackage.XML_PREDICATE_EXISTS__XQUERY_EXPR, XMLPredicateExists.class, msgs);
+            case SQLXMLQueryModelPackage.XML_QUERY_EXPRESSION__VALUE_FUNCTION_QUERY:
+                return eInternalContainer().eInverseRemove(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY__XQUERY_EXPR, XMLValueFunctionQuery.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_QUERY_EXPRESSION__XQUERY_EXPR_CONTENT:
+                return getXqueryExprContent();
+            case SQLXMLQueryModelPackage.XML_QUERY_EXPRESSION__PREDICATE_EXISTS:
+                return getPredicateExists();
+            case SQLXMLQueryModelPackage.XML_QUERY_EXPRESSION__VALUE_FUNCTION_QUERY:
+                return getValueFunctionQuery();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_QUERY_EXPRESSION__XQUERY_EXPR_CONTENT:
+                setXqueryExprContent((String)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_QUERY_EXPRESSION__PREDICATE_EXISTS:
+                setPredicateExists((XMLPredicateExists)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_QUERY_EXPRESSION__VALUE_FUNCTION_QUERY:
+                setValueFunctionQuery((XMLValueFunctionQuery)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_QUERY_EXPRESSION__XQUERY_EXPR_CONTENT:
+                setXqueryExprContent(XQUERY_EXPR_CONTENT_EDEFAULT);
+                return;
+            case SQLXMLQueryModelPackage.XML_QUERY_EXPRESSION__PREDICATE_EXISTS:
+                setPredicateExists((XMLPredicateExists)null);
+                return;
+            case SQLXMLQueryModelPackage.XML_QUERY_EXPRESSION__VALUE_FUNCTION_QUERY:
+                setValueFunctionQuery((XMLValueFunctionQuery)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_QUERY_EXPRESSION__XQUERY_EXPR_CONTENT:
+                return XQUERY_EXPR_CONTENT_EDEFAULT == null ? xqueryExprContent != null : !XQUERY_EXPR_CONTENT_EDEFAULT.equals(xqueryExprContent);
+            case SQLXMLQueryModelPackage.XML_QUERY_EXPRESSION__PREDICATE_EXISTS:
+                return getPredicateExists() != null;
+            case SQLXMLQueryModelPackage.XML_QUERY_EXPRESSION__VALUE_FUNCTION_QUERY:
+                return getValueFunctionQuery() != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (xqueryExprContent: ");
+        result.append(xqueryExprContent);
+        result.append(')');
+        return result.toString();
+    }
+
+} //XMLQueryExpressionImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLSerializeFunctionEncodingImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLSerializeFunctionEncodingImpl.java
new file mode 100644
index 0000000..842f3f0
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLSerializeFunctionEncodingImpl.java
@@ -0,0 +1,167 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLSerializeFunctionEncodingImpl.java,v 1.5 2007/02/08 17:04:20 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryObjectImpl;
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunctionEncoding;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Serialize Function Encoding</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLSerializeFunctionEncodingImpl#getEncodingName <em>Encoding Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLSerializeFunctionEncodingImpl extends SQLQueryObjectImpl implements XMLSerializeFunctionEncoding {
+	/**
+     * The default value of the '{@link #getEncodingName() <em>Encoding Name</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getEncodingName()
+     * @generated
+     * @ordered
+     */
+    protected static final String ENCODING_NAME_EDEFAULT = null;
+
+	/**
+     * The cached value of the '{@link #getEncodingName() <em>Encoding Name</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getEncodingName()
+     * @generated
+     * @ordered
+     */
+    protected String encodingName = ENCODING_NAME_EDEFAULT;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLSerializeFunctionEncodingImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_SERIALIZE_FUNCTION_ENCODING;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String getEncodingName() {
+        return encodingName;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setEncodingName(String newEncodingName) {
+        String oldEncodingName = encodingName;
+        encodingName = newEncodingName;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION_ENCODING__ENCODING_NAME, oldEncodingName, encodingName));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION_ENCODING__ENCODING_NAME:
+                return getEncodingName();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION_ENCODING__ENCODING_NAME:
+                setEncodingName((String)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION_ENCODING__ENCODING_NAME:
+                setEncodingName(ENCODING_NAME_EDEFAULT);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION_ENCODING__ENCODING_NAME:
+                return ENCODING_NAME_EDEFAULT == null ? encodingName != null : !ENCODING_NAME_EDEFAULT.equals(encodingName);
+        }
+        return super.eIsSet(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (encodingName: ");
+        result.append(encodingName);
+        result.append(')');
+        return result.toString();
+    }
+
+} //XMLSerializeFunctionEncodingImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLSerializeFunctionImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLSerializeFunctionImpl.java
new file mode 100644
index 0000000..6ce3fcb
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLSerializeFunctionImpl.java
@@ -0,0 +1,461 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLSerializeFunctionImpl.java,v 1.5 2007/02/08 17:04:21 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+import org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionFunctionImpl;
+import org.eclipse.datatools.modelbase.sql.routines.Function;
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLContentType;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLDeclarationType;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunction;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunctionEncoding;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunctionTarget;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Serialize Function</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLSerializeFunctionImpl#getContentOption <em>Content Option</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLSerializeFunctionImpl#getSerializeVersion <em>Serialize Version</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLSerializeFunctionImpl#getDeclarationOption <em>Declaration Option</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLSerializeFunctionImpl#getSerializeTarget <em>Serialize Target</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLSerializeFunctionImpl#getSerializeEncoding <em>Serialize Encoding</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLSerializeFunctionImpl extends ValueExpressionFunctionImpl implements XMLSerializeFunction {
+	/**
+     * The default value of the '{@link #getContentOption() <em>Content Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getContentOption()
+     * @generated
+     * @ordered
+     */
+    protected static final XMLContentType CONTENT_OPTION_EDEFAULT = XMLContentType.CONTENT_LITERAL;
+
+	/**
+     * The cached value of the '{@link #getContentOption() <em>Content Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getContentOption()
+     * @generated
+     * @ordered
+     */
+    protected XMLContentType contentOption = CONTENT_OPTION_EDEFAULT;
+
+	/**
+     * The default value of the '{@link #getSerializeVersion() <em>Serialize Version</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getSerializeVersion()
+     * @generated
+     * @ordered
+     */
+    protected static final String SERIALIZE_VERSION_EDEFAULT = null;
+
+	/**
+     * The cached value of the '{@link #getSerializeVersion() <em>Serialize Version</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getSerializeVersion()
+     * @generated
+     * @ordered
+     */
+    protected String serializeVersion = SERIALIZE_VERSION_EDEFAULT;
+
+	/**
+     * The default value of the '{@link #getDeclarationOption() <em>Declaration Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getDeclarationOption()
+     * @generated
+     * @ordered
+     */
+    protected static final XMLDeclarationType DECLARATION_OPTION_EDEFAULT = XMLDeclarationType.EXCLUDING_XMLDECLARATION_LITERAL;
+
+	/**
+     * The cached value of the '{@link #getDeclarationOption() <em>Declaration Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getDeclarationOption()
+     * @generated
+     * @ordered
+     */
+    protected XMLDeclarationType declarationOption = DECLARATION_OPTION_EDEFAULT;
+
+	/**
+     * The cached value of the '{@link #getSerializeTarget() <em>Serialize Target</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getSerializeTarget()
+     * @generated
+     * @ordered
+     */
+    protected XMLSerializeFunctionTarget serializeTarget;
+
+	/**
+     * The cached value of the '{@link #getSerializeEncoding() <em>Serialize Encoding</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getSerializeEncoding()
+     * @generated
+     * @ordered
+     */
+    protected XMLSerializeFunctionEncoding serializeEncoding;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLSerializeFunctionImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_SERIALIZE_FUNCTION;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLContentType getContentOption() {
+        return contentOption;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setContentOption(XMLContentType newContentOption) {
+        XMLContentType oldContentOption = contentOption;
+        contentOption = newContentOption == null ? CONTENT_OPTION_EDEFAULT : newContentOption;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION__CONTENT_OPTION, oldContentOption, contentOption));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String getSerializeVersion() {
+        return serializeVersion;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setSerializeVersion(String newSerializeVersion) {
+        String oldSerializeVersion = serializeVersion;
+        serializeVersion = newSerializeVersion;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION__SERIALIZE_VERSION, oldSerializeVersion, serializeVersion));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLDeclarationType getDeclarationOption() {
+        return declarationOption;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setDeclarationOption(XMLDeclarationType newDeclarationOption) {
+        XMLDeclarationType oldDeclarationOption = declarationOption;
+        declarationOption = newDeclarationOption == null ? DECLARATION_OPTION_EDEFAULT : newDeclarationOption;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION__DECLARATION_OPTION, oldDeclarationOption, declarationOption));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLSerializeFunctionTarget getSerializeTarget() {
+        return serializeTarget;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetSerializeTarget(XMLSerializeFunctionTarget newSerializeTarget, NotificationChain msgs) {
+        XMLSerializeFunctionTarget oldSerializeTarget = serializeTarget;
+        serializeTarget = newSerializeTarget;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION__SERIALIZE_TARGET, oldSerializeTarget, newSerializeTarget);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setSerializeTarget(XMLSerializeFunctionTarget newSerializeTarget) {
+        if (newSerializeTarget != serializeTarget) {
+            NotificationChain msgs = null;
+            if (serializeTarget != null)
+                msgs = ((InternalEObject)serializeTarget).eInverseRemove(this, SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION_TARGET__SERIALIZE_FUNCTION, XMLSerializeFunctionTarget.class, msgs);
+            if (newSerializeTarget != null)
+                msgs = ((InternalEObject)newSerializeTarget).eInverseAdd(this, SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION_TARGET__SERIALIZE_FUNCTION, XMLSerializeFunctionTarget.class, msgs);
+            msgs = basicSetSerializeTarget(newSerializeTarget, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION__SERIALIZE_TARGET, newSerializeTarget, newSerializeTarget));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLSerializeFunctionEncoding getSerializeEncoding() {
+        return serializeEncoding;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetSerializeEncoding(XMLSerializeFunctionEncoding newSerializeEncoding, NotificationChain msgs) {
+        XMLSerializeFunctionEncoding oldSerializeEncoding = serializeEncoding;
+        serializeEncoding = newSerializeEncoding;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION__SERIALIZE_ENCODING, oldSerializeEncoding, newSerializeEncoding);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setSerializeEncoding(XMLSerializeFunctionEncoding newSerializeEncoding) {
+        if (newSerializeEncoding != serializeEncoding) {
+            NotificationChain msgs = null;
+            if (serializeEncoding != null)
+                msgs = ((InternalEObject)serializeEncoding).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION__SERIALIZE_ENCODING, null, msgs);
+            if (newSerializeEncoding != null)
+                msgs = ((InternalEObject)newSerializeEncoding).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION__SERIALIZE_ENCODING, null, msgs);
+            msgs = basicSetSerializeEncoding(newSerializeEncoding, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION__SERIALIZE_ENCODING, newSerializeEncoding, newSerializeEncoding));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION__SERIALIZE_TARGET:
+                if (serializeTarget != null)
+                    msgs = ((InternalEObject)serializeTarget).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION__SERIALIZE_TARGET, null, msgs);
+                return basicSetSerializeTarget((XMLSerializeFunctionTarget)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION__SERIALIZE_TARGET:
+                return basicSetSerializeTarget(null, msgs);
+            case SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION__SERIALIZE_ENCODING:
+                return basicSetSerializeEncoding(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION__CONTENT_OPTION:
+                return getContentOption();
+            case SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION__SERIALIZE_VERSION:
+                return getSerializeVersion();
+            case SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION__DECLARATION_OPTION:
+                return getDeclarationOption();
+            case SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION__SERIALIZE_TARGET:
+                return getSerializeTarget();
+            case SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION__SERIALIZE_ENCODING:
+                return getSerializeEncoding();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION__CONTENT_OPTION:
+                setContentOption((XMLContentType)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION__SERIALIZE_VERSION:
+                setSerializeVersion((String)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION__DECLARATION_OPTION:
+                setDeclarationOption((XMLDeclarationType)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION__SERIALIZE_TARGET:
+                setSerializeTarget((XMLSerializeFunctionTarget)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION__SERIALIZE_ENCODING:
+                setSerializeEncoding((XMLSerializeFunctionEncoding)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION__CONTENT_OPTION:
+                setContentOption(CONTENT_OPTION_EDEFAULT);
+                return;
+            case SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION__SERIALIZE_VERSION:
+                setSerializeVersion(SERIALIZE_VERSION_EDEFAULT);
+                return;
+            case SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION__DECLARATION_OPTION:
+                setDeclarationOption(DECLARATION_OPTION_EDEFAULT);
+                return;
+            case SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION__SERIALIZE_TARGET:
+                setSerializeTarget((XMLSerializeFunctionTarget)null);
+                return;
+            case SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION__SERIALIZE_ENCODING:
+                setSerializeEncoding((XMLSerializeFunctionEncoding)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION__CONTENT_OPTION:
+                return contentOption != CONTENT_OPTION_EDEFAULT;
+            case SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION__SERIALIZE_VERSION:
+                return SERIALIZE_VERSION_EDEFAULT == null ? serializeVersion != null : !SERIALIZE_VERSION_EDEFAULT.equals(serializeVersion);
+            case SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION__DECLARATION_OPTION:
+                return declarationOption != DECLARATION_OPTION_EDEFAULT;
+            case SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION__SERIALIZE_TARGET:
+                return serializeTarget != null;
+            case SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION__SERIALIZE_ENCODING:
+                return serializeEncoding != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (contentOption: ");
+        result.append(contentOption);
+        result.append(", serializeVersion: ");
+        result.append(serializeVersion);
+        result.append(", declarationOption: ");
+        result.append(declarationOption);
+        result.append(')');
+        return result.toString();
+    }
+
+} //XMLSerializeFunctionImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLSerializeFunctionTargetImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLSerializeFunctionTargetImpl.java
new file mode 100644
index 0000000..2135e18
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLSerializeFunctionTargetImpl.java
@@ -0,0 +1,285 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLSerializeFunctionTargetImpl.java,v 1.5 2008/07/07 19:55:15 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+import org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl;
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunction;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunctionTarget;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Serialize Function Target</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLSerializeFunctionTargetImpl#getSerializeFunction <em>Serialize Function</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLSerializeFunctionTargetImpl#getValueExpr <em>Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLSerializeFunctionTargetImpl extends QueryValueExpressionImpl implements XMLSerializeFunctionTarget {
+	/**
+     * The cached value of the '{@link #getValueExpr() <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getValueExpr()
+     * @generated
+     * @ordered
+     */
+    protected QueryValueExpression valueExpr;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLSerializeFunctionTargetImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_SERIALIZE_FUNCTION_TARGET;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLSerializeFunction getSerializeFunction() {
+        if (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION_TARGET__SERIALIZE_FUNCTION) return null;
+        return (XMLSerializeFunction)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetSerializeFunction(XMLSerializeFunction newSerializeFunction, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newSerializeFunction, SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION_TARGET__SERIALIZE_FUNCTION, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setSerializeFunction(XMLSerializeFunction newSerializeFunction) {
+        if (newSerializeFunction != eInternalContainer() || (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION_TARGET__SERIALIZE_FUNCTION && newSerializeFunction != null)) {
+            if (EcoreUtil.isAncestor(this, newSerializeFunction))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newSerializeFunction != null)
+                msgs = ((InternalEObject)newSerializeFunction).eInverseAdd(this, SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION__SERIALIZE_TARGET, XMLSerializeFunction.class, msgs);
+            msgs = basicSetSerializeFunction(newSerializeFunction, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION_TARGET__SERIALIZE_FUNCTION, newSerializeFunction, newSerializeFunction));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryValueExpression getValueExpr() {
+        return valueExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetValueExpr(QueryValueExpression newValueExpr, NotificationChain msgs) {
+        QueryValueExpression oldValueExpr = valueExpr;
+        valueExpr = newValueExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION_TARGET__VALUE_EXPR, oldValueExpr, newValueExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueExpr(QueryValueExpression newValueExpr) {
+        if (newValueExpr != valueExpr) {
+            NotificationChain msgs = null;
+            if (valueExpr != null)
+                msgs = ((InternalEObject)valueExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION_TARGET__VALUE_EXPR, null, msgs);
+            if (newValueExpr != null)
+                msgs = ((InternalEObject)newValueExpr).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION_TARGET__VALUE_EXPR, null, msgs);
+            msgs = basicSetValueExpr(newValueExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION_TARGET__VALUE_EXPR, newValueExpr, newValueExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION_TARGET__SERIALIZE_FUNCTION:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetSerializeFunction((XMLSerializeFunction)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION_TARGET__SERIALIZE_FUNCTION:
+                return basicSetSerializeFunction(null, msgs);
+            case SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION_TARGET__VALUE_EXPR:
+                return basicSetValueExpr(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION_TARGET__SERIALIZE_FUNCTION:
+                return eInternalContainer().eInverseRemove(this, SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION__SERIALIZE_TARGET, XMLSerializeFunction.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION_TARGET__SERIALIZE_FUNCTION:
+                return getSerializeFunction();
+            case SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION_TARGET__VALUE_EXPR:
+                return getValueExpr();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION_TARGET__SERIALIZE_FUNCTION:
+                setSerializeFunction((XMLSerializeFunction)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION_TARGET__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION_TARGET__SERIALIZE_FUNCTION:
+                setSerializeFunction((XMLSerializeFunction)null);
+                return;
+            case SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION_TARGET__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION_TARGET__SERIALIZE_FUNCTION:
+                return getSerializeFunction() != null;
+            case SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION_TARGET__VALUE_EXPR:
+                return valueExpr != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //XMLSerializeFunctionTargetImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLTableColumnDefinitionDefaultImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLTableColumnDefinitionDefaultImpl.java
new file mode 100644
index 0000000..d027a93
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLTableColumnDefinitionDefaultImpl.java
@@ -0,0 +1,292 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLTableColumnDefinitionDefaultImpl.java,v 1.4 2008/07/07 19:55:14 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+import org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl;
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionDefault;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionRegular;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Table Column Definition Default</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLTableColumnDefinitionDefaultImpl#getValueExpr <em>Value Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLTableColumnDefinitionDefaultImpl#getColumnDefinitionRegular <em>Column Definition Regular</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLTableColumnDefinitionDefaultImpl extends QueryValueExpressionImpl implements XMLTableColumnDefinitionDefault {
+	/**
+     * The cached value of the '{@link #getValueExpr() <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getValueExpr()
+     * @generated
+     * @ordered
+     */
+    protected QueryValueExpression valueExpr;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLTableColumnDefinitionDefaultImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_TABLE_COLUMN_DEFINITION_DEFAULT;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryValueExpression getValueExpr() {
+        return valueExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetValueExpr(QueryValueExpression newValueExpr, NotificationChain msgs) {
+        QueryValueExpression oldValueExpr = valueExpr;
+        valueExpr = newValueExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_DEFAULT__VALUE_EXPR, oldValueExpr, newValueExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueExpr(QueryValueExpression newValueExpr) {
+        if (newValueExpr != valueExpr) {
+            NotificationChain msgs = null;
+            if (valueExpr != null)
+                msgs = ((InternalEObject)valueExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_DEFAULT__VALUE_EXPR, null, msgs);
+            if (newValueExpr != null)
+                msgs = ((InternalEObject)newValueExpr).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_DEFAULT__VALUE_EXPR, null, msgs);
+            msgs = basicSetValueExpr(newValueExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_DEFAULT__VALUE_EXPR, newValueExpr, newValueExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLTableColumnDefinitionRegular getColumnDefinitionRegular() {
+        if (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_DEFAULT__COLUMN_DEFINITION_REGULAR) return null;
+        return (XMLTableColumnDefinitionRegular)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetColumnDefinitionRegular(XMLTableColumnDefinitionRegular newColumnDefinitionRegular, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newColumnDefinitionRegular, SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_DEFAULT__COLUMN_DEFINITION_REGULAR, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setColumnDefinitionRegular(XMLTableColumnDefinitionRegular newColumnDefinitionRegular) {
+        if (newColumnDefinitionRegular != eInternalContainer() || (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_DEFAULT__COLUMN_DEFINITION_REGULAR && newColumnDefinitionRegular != null)) {
+            if (EcoreUtil.isAncestor(this, newColumnDefinitionRegular))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newColumnDefinitionRegular != null)
+                msgs = ((InternalEObject)newColumnDefinitionRegular).eInverseAdd(this, SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_REGULAR__COLUMN_DEFINITION_DEFAULT, XMLTableColumnDefinitionRegular.class, msgs);
+            msgs = basicSetColumnDefinitionRegular(newColumnDefinitionRegular, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_DEFAULT__COLUMN_DEFINITION_REGULAR, newColumnDefinitionRegular, newColumnDefinitionRegular));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_DEFAULT__COLUMN_DEFINITION_REGULAR:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetColumnDefinitionRegular((XMLTableColumnDefinitionRegular)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_DEFAULT__VALUE_EXPR:
+                return basicSetValueExpr(null, msgs);
+            case SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_DEFAULT__COLUMN_DEFINITION_REGULAR:
+                return basicSetColumnDefinitionRegular(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_DEFAULT__COLUMN_DEFINITION_REGULAR:
+                return eInternalContainer().eInverseRemove(this, SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_REGULAR__COLUMN_DEFINITION_DEFAULT, XMLTableColumnDefinitionRegular.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_DEFAULT__VALUE_EXPR:
+                return getValueExpr();
+            case SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_DEFAULT__COLUMN_DEFINITION_REGULAR:
+                return getColumnDefinitionRegular();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_DEFAULT__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_DEFAULT__COLUMN_DEFINITION_REGULAR:
+                setColumnDefinitionRegular((XMLTableColumnDefinitionRegular)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_DEFAULT__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)null);
+                return;
+            case SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_DEFAULT__COLUMN_DEFINITION_REGULAR:
+                setColumnDefinitionRegular((XMLTableColumnDefinitionRegular)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_DEFAULT__VALUE_EXPR:
+                return valueExpr != null;
+            case SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_DEFAULT__COLUMN_DEFINITION_REGULAR:
+                return getColumnDefinitionRegular() != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //XMLTableColumnDefinitionDefaultImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLTableColumnDefinitionItemImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLTableColumnDefinitionItemImpl.java
new file mode 100644
index 0000000..369e9fc
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLTableColumnDefinitionItemImpl.java
@@ -0,0 +1,197 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLTableColumnDefinitionItemImpl.java,v 1.4 2008/07/07 19:55:15 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryObjectImpl;
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionItem;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLTableFunction;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Table Column Definition Item</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLTableColumnDefinitionItemImpl#getTableFunction <em>Table Function</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLTableColumnDefinitionItemImpl extends SQLQueryObjectImpl implements XMLTableColumnDefinitionItem {
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLTableColumnDefinitionItemImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_TABLE_COLUMN_DEFINITION_ITEM;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLTableFunction getTableFunction() {
+        if (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_ITEM__TABLE_FUNCTION) return null;
+        return (XMLTableFunction)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetTableFunction(XMLTableFunction newTableFunction, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newTableFunction, SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_ITEM__TABLE_FUNCTION, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setTableFunction(XMLTableFunction newTableFunction) {
+        if (newTableFunction != eInternalContainer() || (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_ITEM__TABLE_FUNCTION && newTableFunction != null)) {
+            if (EcoreUtil.isAncestor(this, newTableFunction))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newTableFunction != null)
+                msgs = ((InternalEObject)newTableFunction).eInverseAdd(this, SQLXMLQueryModelPackage.XML_TABLE_FUNCTION__COLUMN_DEF_LIST, XMLTableFunction.class, msgs);
+            msgs = basicSetTableFunction(newTableFunction, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_ITEM__TABLE_FUNCTION, newTableFunction, newTableFunction));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_ITEM__TABLE_FUNCTION:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetTableFunction((XMLTableFunction)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_ITEM__TABLE_FUNCTION:
+                return basicSetTableFunction(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_ITEM__TABLE_FUNCTION:
+                return eInternalContainer().eInverseRemove(this, SQLXMLQueryModelPackage.XML_TABLE_FUNCTION__COLUMN_DEF_LIST, XMLTableFunction.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_ITEM__TABLE_FUNCTION:
+                return getTableFunction();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_ITEM__TABLE_FUNCTION:
+                setTableFunction((XMLTableFunction)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_ITEM__TABLE_FUNCTION:
+                setTableFunction((XMLTableFunction)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_ITEM__TABLE_FUNCTION:
+                return getTableFunction() != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //XMLTableColumnDefinitionItemImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLTableColumnDefinitionOrdinalityImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLTableColumnDefinitionOrdinalityImpl.java
new file mode 100644
index 0000000..fab1867
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLTableColumnDefinitionOrdinalityImpl.java
@@ -0,0 +1,52 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLTableColumnDefinitionOrdinalityImpl.java,v 1.5 2007/02/08 17:04:21 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionOrdinality;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLTableFunction;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Table Column Definition Ordinality</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLTableColumnDefinitionOrdinalityImpl extends XMLTableColumnDefinitionItemImpl implements XMLTableColumnDefinitionOrdinality {
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLTableColumnDefinitionOrdinalityImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_TABLE_COLUMN_DEFINITION_ORDINALITY;
+    }
+
+} //XMLTableColumnDefinitionOrdinalityImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLTableColumnDefinitionRegularImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLTableColumnDefinitionRegularImpl.java
new file mode 100644
index 0000000..6293960
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLTableColumnDefinitionRegularImpl.java
@@ -0,0 +1,384 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLTableColumnDefinitionRegularImpl.java,v 1.4 2007/02/08 17:04:20 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLPassingType;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionDefault;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionRegular;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLTableFunction;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Table Column Definition Regular</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLTableColumnDefinitionRegularImpl#getDataType <em>Data Type</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLTableColumnDefinitionRegularImpl#getPassingOption <em>Passing Option</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLTableColumnDefinitionRegularImpl#getTableColumnPattern <em>Table Column Pattern</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLTableColumnDefinitionRegularImpl#getColumnDefinitionDefault <em>Column Definition Default</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLTableColumnDefinitionRegularImpl extends XMLTableColumnDefinitionItemImpl implements XMLTableColumnDefinitionRegular {
+	/**
+     * The cached value of the '{@link #getDataType() <em>Data Type</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getDataType()
+     * @generated
+     * @ordered
+     */
+    protected DataType dataType;
+
+	/**
+     * The default value of the '{@link #getPassingOption() <em>Passing Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getPassingOption()
+     * @generated
+     * @ordered
+     */
+    protected static final XMLPassingType PASSING_OPTION_EDEFAULT = XMLPassingType.BY_REF_LITERAL;
+
+	/**
+     * The cached value of the '{@link #getPassingOption() <em>Passing Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getPassingOption()
+     * @generated
+     * @ordered
+     */
+    protected XMLPassingType passingOption = PASSING_OPTION_EDEFAULT;
+
+	/**
+     * The default value of the '{@link #getTableColumnPattern() <em>Table Column Pattern</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getTableColumnPattern()
+     * @generated
+     * @ordered
+     */
+    protected static final String TABLE_COLUMN_PATTERN_EDEFAULT = null;
+
+	/**
+     * The cached value of the '{@link #getTableColumnPattern() <em>Table Column Pattern</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getTableColumnPattern()
+     * @generated
+     * @ordered
+     */
+    protected String tableColumnPattern = TABLE_COLUMN_PATTERN_EDEFAULT;
+
+	/**
+     * The cached value of the '{@link #getColumnDefinitionDefault() <em>Column Definition Default</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getColumnDefinitionDefault()
+     * @generated
+     * @ordered
+     */
+    protected XMLTableColumnDefinitionDefault columnDefinitionDefault;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLTableColumnDefinitionRegularImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_TABLE_COLUMN_DEFINITION_REGULAR;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public DataType getDataType() {
+        return dataType;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetDataType(DataType newDataType, NotificationChain msgs) {
+        DataType oldDataType = dataType;
+        dataType = newDataType;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_REGULAR__DATA_TYPE, oldDataType, newDataType);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setDataType(DataType newDataType) {
+        if (newDataType != dataType) {
+            NotificationChain msgs = null;
+            if (dataType != null)
+                msgs = ((InternalEObject)dataType).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_REGULAR__DATA_TYPE, null, msgs);
+            if (newDataType != null)
+                msgs = ((InternalEObject)newDataType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_REGULAR__DATA_TYPE, null, msgs);
+            msgs = basicSetDataType(newDataType, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_REGULAR__DATA_TYPE, newDataType, newDataType));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLPassingType getPassingOption() {
+        return passingOption;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setPassingOption(XMLPassingType newPassingOption) {
+        XMLPassingType oldPassingOption = passingOption;
+        passingOption = newPassingOption == null ? PASSING_OPTION_EDEFAULT : newPassingOption;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_REGULAR__PASSING_OPTION, oldPassingOption, passingOption));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String getTableColumnPattern() {
+        return tableColumnPattern;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setTableColumnPattern(String newTableColumnPattern) {
+        String oldTableColumnPattern = tableColumnPattern;
+        tableColumnPattern = newTableColumnPattern;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_REGULAR__TABLE_COLUMN_PATTERN, oldTableColumnPattern, tableColumnPattern));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLTableColumnDefinitionDefault getColumnDefinitionDefault() {
+        return columnDefinitionDefault;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetColumnDefinitionDefault(XMLTableColumnDefinitionDefault newColumnDefinitionDefault, NotificationChain msgs) {
+        XMLTableColumnDefinitionDefault oldColumnDefinitionDefault = columnDefinitionDefault;
+        columnDefinitionDefault = newColumnDefinitionDefault;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_REGULAR__COLUMN_DEFINITION_DEFAULT, oldColumnDefinitionDefault, newColumnDefinitionDefault);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setColumnDefinitionDefault(XMLTableColumnDefinitionDefault newColumnDefinitionDefault) {
+        if (newColumnDefinitionDefault != columnDefinitionDefault) {
+            NotificationChain msgs = null;
+            if (columnDefinitionDefault != null)
+                msgs = ((InternalEObject)columnDefinitionDefault).eInverseRemove(this, SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_DEFAULT__COLUMN_DEFINITION_REGULAR, XMLTableColumnDefinitionDefault.class, msgs);
+            if (newColumnDefinitionDefault != null)
+                msgs = ((InternalEObject)newColumnDefinitionDefault).eInverseAdd(this, SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_DEFAULT__COLUMN_DEFINITION_REGULAR, XMLTableColumnDefinitionDefault.class, msgs);
+            msgs = basicSetColumnDefinitionDefault(newColumnDefinitionDefault, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_REGULAR__COLUMN_DEFINITION_DEFAULT, newColumnDefinitionDefault, newColumnDefinitionDefault));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_REGULAR__COLUMN_DEFINITION_DEFAULT:
+                if (columnDefinitionDefault != null)
+                    msgs = ((InternalEObject)columnDefinitionDefault).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_REGULAR__COLUMN_DEFINITION_DEFAULT, null, msgs);
+                return basicSetColumnDefinitionDefault((XMLTableColumnDefinitionDefault)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_REGULAR__DATA_TYPE:
+                return basicSetDataType(null, msgs);
+            case SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_REGULAR__COLUMN_DEFINITION_DEFAULT:
+                return basicSetColumnDefinitionDefault(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_REGULAR__DATA_TYPE:
+                return getDataType();
+            case SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_REGULAR__PASSING_OPTION:
+                return getPassingOption();
+            case SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_REGULAR__TABLE_COLUMN_PATTERN:
+                return getTableColumnPattern();
+            case SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_REGULAR__COLUMN_DEFINITION_DEFAULT:
+                return getColumnDefinitionDefault();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_REGULAR__DATA_TYPE:
+                setDataType((DataType)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_REGULAR__PASSING_OPTION:
+                setPassingOption((XMLPassingType)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_REGULAR__TABLE_COLUMN_PATTERN:
+                setTableColumnPattern((String)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_REGULAR__COLUMN_DEFINITION_DEFAULT:
+                setColumnDefinitionDefault((XMLTableColumnDefinitionDefault)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_REGULAR__DATA_TYPE:
+                setDataType((DataType)null);
+                return;
+            case SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_REGULAR__PASSING_OPTION:
+                setPassingOption(PASSING_OPTION_EDEFAULT);
+                return;
+            case SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_REGULAR__TABLE_COLUMN_PATTERN:
+                setTableColumnPattern(TABLE_COLUMN_PATTERN_EDEFAULT);
+                return;
+            case SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_REGULAR__COLUMN_DEFINITION_DEFAULT:
+                setColumnDefinitionDefault((XMLTableColumnDefinitionDefault)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_REGULAR__DATA_TYPE:
+                return dataType != null;
+            case SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_REGULAR__PASSING_OPTION:
+                return passingOption != PASSING_OPTION_EDEFAULT;
+            case SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_REGULAR__TABLE_COLUMN_PATTERN:
+                return TABLE_COLUMN_PATTERN_EDEFAULT == null ? tableColumnPattern != null : !TABLE_COLUMN_PATTERN_EDEFAULT.equals(tableColumnPattern);
+            case SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_REGULAR__COLUMN_DEFINITION_DEFAULT:
+                return columnDefinitionDefault != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (passingOption: ");
+        result.append(passingOption);
+        result.append(", tableColumnPattern: ");
+        result.append(tableColumnPattern);
+        result.append(')');
+        return result.toString();
+    }
+
+} //XMLTableColumnDefinitionRegularImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLTableFunctionImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLTableFunctionImpl.java
new file mode 100644
index 0000000..b653644
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLTableFunctionImpl.java
@@ -0,0 +1,374 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLTableFunctionImpl.java,v 1.5 2007/02/08 17:04:21 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.QuerySelect;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.TableCorrelation;
+import org.eclipse.datatools.modelbase.sql.query.TableJoined;
+import org.eclipse.datatools.modelbase.sql.query.TableNested;
+import org.eclipse.datatools.modelbase.sql.query.impl.TableFunctionImpl;
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespacesDeclaration;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentList;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionItem;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLTableFunction;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Table Function</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLTableFunctionImpl#getTableRowPattern <em>Table Row Pattern</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLTableFunctionImpl#getXqueryArgList <em>Xquery Arg List</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLTableFunctionImpl#getColumnDefList <em>Column Def List</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLTableFunctionImpl#getNamespacesDecl <em>Namespaces Decl</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLTableFunctionImpl extends TableFunctionImpl implements XMLTableFunction {
+	/**
+     * The default value of the '{@link #getTableRowPattern() <em>Table Row Pattern</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getTableRowPattern()
+     * @generated
+     * @ordered
+     */
+    protected static final String TABLE_ROW_PATTERN_EDEFAULT = null;
+
+	/**
+     * The cached value of the '{@link #getTableRowPattern() <em>Table Row Pattern</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getTableRowPattern()
+     * @generated
+     * @ordered
+     */
+    protected String tableRowPattern = TABLE_ROW_PATTERN_EDEFAULT;
+
+	/**
+     * The cached value of the '{@link #getXqueryArgList() <em>Xquery Arg List</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getXqueryArgList()
+     * @generated
+     * @ordered
+     */
+    protected XMLQueryArgumentList xqueryArgList;
+
+	/**
+     * The cached value of the '{@link #getColumnDefList() <em>Column Def List</em>}' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getColumnDefList()
+     * @generated
+     * @ordered
+     */
+    protected EList columnDefList;
+
+	/**
+     * The cached value of the '{@link #getNamespacesDecl() <em>Namespaces Decl</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getNamespacesDecl()
+     * @generated
+     * @ordered
+     */
+    protected XMLNamespacesDeclaration namespacesDecl;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLTableFunctionImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_TABLE_FUNCTION;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String getTableRowPattern() {
+        return tableRowPattern;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setTableRowPattern(String newTableRowPattern) {
+        String oldTableRowPattern = tableRowPattern;
+        tableRowPattern = newTableRowPattern;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_TABLE_FUNCTION__TABLE_ROW_PATTERN, oldTableRowPattern, tableRowPattern));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLQueryArgumentList getXqueryArgList() {
+        return xqueryArgList;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetXqueryArgList(XMLQueryArgumentList newXqueryArgList, NotificationChain msgs) {
+        XMLQueryArgumentList oldXqueryArgList = xqueryArgList;
+        xqueryArgList = newXqueryArgList;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_TABLE_FUNCTION__XQUERY_ARG_LIST, oldXqueryArgList, newXqueryArgList);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setXqueryArgList(XMLQueryArgumentList newXqueryArgList) {
+        if (newXqueryArgList != xqueryArgList) {
+            NotificationChain msgs = null;
+            if (xqueryArgList != null)
+                msgs = ((InternalEObject)xqueryArgList).eInverseRemove(this, SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__TABLE_FUNCTION, XMLQueryArgumentList.class, msgs);
+            if (newXqueryArgList != null)
+                msgs = ((InternalEObject)newXqueryArgList).eInverseAdd(this, SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__TABLE_FUNCTION, XMLQueryArgumentList.class, msgs);
+            msgs = basicSetXqueryArgList(newXqueryArgList, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_TABLE_FUNCTION__XQUERY_ARG_LIST, newXqueryArgList, newXqueryArgList));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getColumnDefList() {
+        if (columnDefList == null) {
+            columnDefList = new EObjectContainmentWithInverseEList(XMLTableColumnDefinitionItem.class, this, SQLXMLQueryModelPackage.XML_TABLE_FUNCTION__COLUMN_DEF_LIST, SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_ITEM__TABLE_FUNCTION);
+        }
+        return columnDefList;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLNamespacesDeclaration getNamespacesDecl() {
+        return namespacesDecl;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetNamespacesDecl(XMLNamespacesDeclaration newNamespacesDecl, NotificationChain msgs) {
+        XMLNamespacesDeclaration oldNamespacesDecl = namespacesDecl;
+        namespacesDecl = newNamespacesDecl;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_TABLE_FUNCTION__NAMESPACES_DECL, oldNamespacesDecl, newNamespacesDecl);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setNamespacesDecl(XMLNamespacesDeclaration newNamespacesDecl) {
+        if (newNamespacesDecl != namespacesDecl) {
+            NotificationChain msgs = null;
+            if (namespacesDecl != null)
+                msgs = ((InternalEObject)namespacesDecl).eInverseRemove(this, SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__TABLE_FUNCTION, XMLNamespacesDeclaration.class, msgs);
+            if (newNamespacesDecl != null)
+                msgs = ((InternalEObject)newNamespacesDecl).eInverseAdd(this, SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__TABLE_FUNCTION, XMLNamespacesDeclaration.class, msgs);
+            msgs = basicSetNamespacesDecl(newNamespacesDecl, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_TABLE_FUNCTION__NAMESPACES_DECL, newNamespacesDecl, newNamespacesDecl));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_TABLE_FUNCTION__XQUERY_ARG_LIST:
+                if (xqueryArgList != null)
+                    msgs = ((InternalEObject)xqueryArgList).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_TABLE_FUNCTION__XQUERY_ARG_LIST, null, msgs);
+                return basicSetXqueryArgList((XMLQueryArgumentList)otherEnd, msgs);
+            case SQLXMLQueryModelPackage.XML_TABLE_FUNCTION__COLUMN_DEF_LIST:
+                return ((InternalEList)getColumnDefList()).basicAdd(otherEnd, msgs);
+            case SQLXMLQueryModelPackage.XML_TABLE_FUNCTION__NAMESPACES_DECL:
+                if (namespacesDecl != null)
+                    msgs = ((InternalEObject)namespacesDecl).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_TABLE_FUNCTION__NAMESPACES_DECL, null, msgs);
+                return basicSetNamespacesDecl((XMLNamespacesDeclaration)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_TABLE_FUNCTION__XQUERY_ARG_LIST:
+                return basicSetXqueryArgList(null, msgs);
+            case SQLXMLQueryModelPackage.XML_TABLE_FUNCTION__COLUMN_DEF_LIST:
+                return ((InternalEList)getColumnDefList()).basicRemove(otherEnd, msgs);
+            case SQLXMLQueryModelPackage.XML_TABLE_FUNCTION__NAMESPACES_DECL:
+                return basicSetNamespacesDecl(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_TABLE_FUNCTION__TABLE_ROW_PATTERN:
+                return getTableRowPattern();
+            case SQLXMLQueryModelPackage.XML_TABLE_FUNCTION__XQUERY_ARG_LIST:
+                return getXqueryArgList();
+            case SQLXMLQueryModelPackage.XML_TABLE_FUNCTION__COLUMN_DEF_LIST:
+                return getColumnDefList();
+            case SQLXMLQueryModelPackage.XML_TABLE_FUNCTION__NAMESPACES_DECL:
+                return getNamespacesDecl();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_TABLE_FUNCTION__TABLE_ROW_PATTERN:
+                setTableRowPattern((String)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_TABLE_FUNCTION__XQUERY_ARG_LIST:
+                setXqueryArgList((XMLQueryArgumentList)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_TABLE_FUNCTION__COLUMN_DEF_LIST:
+                getColumnDefList().clear();
+                getColumnDefList().addAll((Collection)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_TABLE_FUNCTION__NAMESPACES_DECL:
+                setNamespacesDecl((XMLNamespacesDeclaration)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_TABLE_FUNCTION__TABLE_ROW_PATTERN:
+                setTableRowPattern(TABLE_ROW_PATTERN_EDEFAULT);
+                return;
+            case SQLXMLQueryModelPackage.XML_TABLE_FUNCTION__XQUERY_ARG_LIST:
+                setXqueryArgList((XMLQueryArgumentList)null);
+                return;
+            case SQLXMLQueryModelPackage.XML_TABLE_FUNCTION__COLUMN_DEF_LIST:
+                getColumnDefList().clear();
+                return;
+            case SQLXMLQueryModelPackage.XML_TABLE_FUNCTION__NAMESPACES_DECL:
+                setNamespacesDecl((XMLNamespacesDeclaration)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_TABLE_FUNCTION__TABLE_ROW_PATTERN:
+                return TABLE_ROW_PATTERN_EDEFAULT == null ? tableRowPattern != null : !TABLE_ROW_PATTERN_EDEFAULT.equals(tableRowPattern);
+            case SQLXMLQueryModelPackage.XML_TABLE_FUNCTION__XQUERY_ARG_LIST:
+                return xqueryArgList != null;
+            case SQLXMLQueryModelPackage.XML_TABLE_FUNCTION__COLUMN_DEF_LIST:
+                return columnDefList != null && !columnDefList.isEmpty();
+            case SQLXMLQueryModelPackage.XML_TABLE_FUNCTION__NAMESPACES_DECL:
+                return namespacesDecl != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (tableRowPattern: ");
+        result.append(tableRowPattern);
+        result.append(')');
+        return result.toString();
+    }
+
+} //XMLTableFunctionImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueExpressionCastImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueExpressionCastImpl.java
new file mode 100644
index 0000000..6393118
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueExpressionCastImpl.java
@@ -0,0 +1,195 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueExpressionCastImpl.java,v 1.5 2007/02/08 17:04:21 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+import org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionCastImpl;
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLPassingType;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueExpressionCast;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Value Expression Cast</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueExpressionCastImpl#getPassingMechanism <em>Passing Mechanism</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLValueExpressionCastImpl extends ValueExpressionCastImpl implements XMLValueExpressionCast {
+	/**
+     * The default value of the '{@link #getPassingMechanism() <em>Passing Mechanism</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getPassingMechanism()
+     * @generated
+     * @ordered
+     */
+    protected static final XMLPassingType PASSING_MECHANISM_EDEFAULT = XMLPassingType.BY_REF_LITERAL;
+
+	/**
+     * The cached value of the '{@link #getPassingMechanism() <em>Passing Mechanism</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getPassingMechanism()
+     * @generated
+     * @ordered
+     */
+    protected XMLPassingType passingMechanism = PASSING_MECHANISM_EDEFAULT;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLValueExpressionCastImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_VALUE_EXPRESSION_CAST;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLPassingType getPassingMechanism() {
+        return passingMechanism;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setPassingMechanism(XMLPassingType newPassingMechanism) {
+        XMLPassingType oldPassingMechanism = passingMechanism;
+        passingMechanism = newPassingMechanism == null ? PASSING_MECHANISM_EDEFAULT : newPassingMechanism;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_EXPRESSION_CAST__PASSING_MECHANISM, oldPassingMechanism, passingMechanism));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_EXPRESSION_CAST__PASSING_MECHANISM:
+                return getPassingMechanism();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_EXPRESSION_CAST__PASSING_MECHANISM:
+                setPassingMechanism((XMLPassingType)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_EXPRESSION_CAST__PASSING_MECHANISM:
+                setPassingMechanism(PASSING_MECHANISM_EDEFAULT);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_EXPRESSION_CAST__PASSING_MECHANISM:
+                return passingMechanism != PASSING_MECHANISM_EDEFAULT;
+        }
+        return super.eIsSet(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (passingMechanism: ");
+        result.append(passingMechanism);
+        result.append(')');
+        return result.toString();
+    }
+
+} //XMLValueExpressionCastImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionCommentContentImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionCommentContentImpl.java
new file mode 100644
index 0000000..5490807
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionCommentContentImpl.java
@@ -0,0 +1,292 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionCommentContentImpl.java,v 1.4 2008/07/07 19:55:14 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+import org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl;
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionComment;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionCommentContent;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Value Function Comment Content</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionCommentContentImpl#getValueFunctionComment <em>Value Function Comment</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionCommentContentImpl#getValueExpr <em>Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLValueFunctionCommentContentImpl extends QueryValueExpressionImpl implements XMLValueFunctionCommentContent {
+	/**
+     * The cached value of the '{@link #getValueExpr() <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getValueExpr()
+     * @generated
+     * @ordered
+     */
+    protected QueryValueExpression valueExpr;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLValueFunctionCommentContentImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_VALUE_FUNCTION_COMMENT_CONTENT;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionComment getValueFunctionComment() {
+        if (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_COMMENT_CONTENT__VALUE_FUNCTION_COMMENT) return null;
+        return (XMLValueFunctionComment)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetValueFunctionComment(XMLValueFunctionComment newValueFunctionComment, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newValueFunctionComment, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_COMMENT_CONTENT__VALUE_FUNCTION_COMMENT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueFunctionComment(XMLValueFunctionComment newValueFunctionComment) {
+        if (newValueFunctionComment != eInternalContainer() || (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_COMMENT_CONTENT__VALUE_FUNCTION_COMMENT && newValueFunctionComment != null)) {
+            if (EcoreUtil.isAncestor(this, newValueFunctionComment))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newValueFunctionComment != null)
+                msgs = ((InternalEObject)newValueFunctionComment).eInverseAdd(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_COMMENT__COMMENT_CONTENT, XMLValueFunctionComment.class, msgs);
+            msgs = basicSetValueFunctionComment(newValueFunctionComment, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_COMMENT_CONTENT__VALUE_FUNCTION_COMMENT, newValueFunctionComment, newValueFunctionComment));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryValueExpression getValueExpr() {
+        return valueExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetValueExpr(QueryValueExpression newValueExpr, NotificationChain msgs) {
+        QueryValueExpression oldValueExpr = valueExpr;
+        valueExpr = newValueExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_COMMENT_CONTENT__VALUE_EXPR, oldValueExpr, newValueExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueExpr(QueryValueExpression newValueExpr) {
+        if (newValueExpr != valueExpr) {
+            NotificationChain msgs = null;
+            if (valueExpr != null)
+                msgs = ((InternalEObject)valueExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_COMMENT_CONTENT__VALUE_EXPR, null, msgs);
+            if (newValueExpr != null)
+                msgs = ((InternalEObject)newValueExpr).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_COMMENT_CONTENT__VALUE_EXPR, null, msgs);
+            msgs = basicSetValueExpr(newValueExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_COMMENT_CONTENT__VALUE_EXPR, newValueExpr, newValueExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_COMMENT_CONTENT__VALUE_FUNCTION_COMMENT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetValueFunctionComment((XMLValueFunctionComment)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_COMMENT_CONTENT__VALUE_FUNCTION_COMMENT:
+                return basicSetValueFunctionComment(null, msgs);
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_COMMENT_CONTENT__VALUE_EXPR:
+                return basicSetValueExpr(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_COMMENT_CONTENT__VALUE_FUNCTION_COMMENT:
+                return eInternalContainer().eInverseRemove(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_COMMENT__COMMENT_CONTENT, XMLValueFunctionComment.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_COMMENT_CONTENT__VALUE_FUNCTION_COMMENT:
+                return getValueFunctionComment();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_COMMENT_CONTENT__VALUE_EXPR:
+                return getValueExpr();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_COMMENT_CONTENT__VALUE_FUNCTION_COMMENT:
+                setValueFunctionComment((XMLValueFunctionComment)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_COMMENT_CONTENT__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_COMMENT_CONTENT__VALUE_FUNCTION_COMMENT:
+                setValueFunctionComment((XMLValueFunctionComment)null);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_COMMENT_CONTENT__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_COMMENT_CONTENT__VALUE_FUNCTION_COMMENT:
+                return getValueFunctionComment() != null;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_COMMENT_CONTENT__VALUE_EXPR:
+                return valueExpr != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //XMLValueFunctionCommentContentImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionCommentImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionCommentImpl.java
new file mode 100644
index 0000000..7202100
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionCommentImpl.java
@@ -0,0 +1,284 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionCommentImpl.java,v 1.5 2007/02/08 17:04:20 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+import org.eclipse.datatools.modelbase.sql.routines.Function;
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLReturningType;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionComment;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionCommentContent;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Value Function Comment</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionCommentImpl#getReturningOption <em>Returning Option</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionCommentImpl#getCommentContent <em>Comment Content</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLValueFunctionCommentImpl extends XMLValueFunctionImpl implements XMLValueFunctionComment {
+	/**
+     * The default value of the '{@link #getReturningOption() <em>Returning Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getReturningOption()
+     * @generated
+     * @ordered
+     */
+    protected static final XMLReturningType RETURNING_OPTION_EDEFAULT = XMLReturningType.RETURNING_CONTENT_LITERAL;
+
+	/**
+     * The cached value of the '{@link #getReturningOption() <em>Returning Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getReturningOption()
+     * @generated
+     * @ordered
+     */
+    protected XMLReturningType returningOption = RETURNING_OPTION_EDEFAULT;
+
+	/**
+     * The cached value of the '{@link #getCommentContent() <em>Comment Content</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getCommentContent()
+     * @generated
+     * @ordered
+     */
+    protected XMLValueFunctionCommentContent commentContent;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLValueFunctionCommentImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_VALUE_FUNCTION_COMMENT;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLReturningType getReturningOption() {
+        return returningOption;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setReturningOption(XMLReturningType newReturningOption) {
+        XMLReturningType oldReturningOption = returningOption;
+        returningOption = newReturningOption == null ? RETURNING_OPTION_EDEFAULT : newReturningOption;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_COMMENT__RETURNING_OPTION, oldReturningOption, returningOption));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionCommentContent getCommentContent() {
+        return commentContent;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetCommentContent(XMLValueFunctionCommentContent newCommentContent, NotificationChain msgs) {
+        XMLValueFunctionCommentContent oldCommentContent = commentContent;
+        commentContent = newCommentContent;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_COMMENT__COMMENT_CONTENT, oldCommentContent, newCommentContent);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setCommentContent(XMLValueFunctionCommentContent newCommentContent) {
+        if (newCommentContent != commentContent) {
+            NotificationChain msgs = null;
+            if (commentContent != null)
+                msgs = ((InternalEObject)commentContent).eInverseRemove(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_COMMENT_CONTENT__VALUE_FUNCTION_COMMENT, XMLValueFunctionCommentContent.class, msgs);
+            if (newCommentContent != null)
+                msgs = ((InternalEObject)newCommentContent).eInverseAdd(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_COMMENT_CONTENT__VALUE_FUNCTION_COMMENT, XMLValueFunctionCommentContent.class, msgs);
+            msgs = basicSetCommentContent(newCommentContent, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_COMMENT__COMMENT_CONTENT, newCommentContent, newCommentContent));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_COMMENT__COMMENT_CONTENT:
+                if (commentContent != null)
+                    msgs = ((InternalEObject)commentContent).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_COMMENT__COMMENT_CONTENT, null, msgs);
+                return basicSetCommentContent((XMLValueFunctionCommentContent)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_COMMENT__COMMENT_CONTENT:
+                return basicSetCommentContent(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_COMMENT__RETURNING_OPTION:
+                return getReturningOption();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_COMMENT__COMMENT_CONTENT:
+                return getCommentContent();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_COMMENT__RETURNING_OPTION:
+                setReturningOption((XMLReturningType)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_COMMENT__COMMENT_CONTENT:
+                setCommentContent((XMLValueFunctionCommentContent)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_COMMENT__RETURNING_OPTION:
+                setReturningOption(RETURNING_OPTION_EDEFAULT);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_COMMENT__COMMENT_CONTENT:
+                setCommentContent((XMLValueFunctionCommentContent)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_COMMENT__RETURNING_OPTION:
+                return returningOption != RETURNING_OPTION_EDEFAULT;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_COMMENT__COMMENT_CONTENT:
+                return commentContent != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (returningOption: ");
+        result.append(returningOption);
+        result.append(')');
+        return result.toString();
+    }
+
+} //XMLValueFunctionCommentImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionConcatContentItemImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionConcatContentItemImpl.java
new file mode 100644
index 0000000..2d91f30
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionConcatContentItemImpl.java
@@ -0,0 +1,292 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionConcatContentItemImpl.java,v 1.4 2008/07/07 19:55:15 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+import org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl;
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionConcat;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionConcatContentItem;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Value Function Concat Content Item</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionConcatContentItemImpl#getValueFunctionConcat <em>Value Function Concat</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionConcatContentItemImpl#getValueExpr <em>Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLValueFunctionConcatContentItemImpl extends QueryValueExpressionImpl implements XMLValueFunctionConcatContentItem {
+	/**
+     * The cached value of the '{@link #getValueExpr() <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getValueExpr()
+     * @generated
+     * @ordered
+     */
+    protected QueryValueExpression valueExpr;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLValueFunctionConcatContentItemImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionConcat getValueFunctionConcat() {
+        if (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__VALUE_FUNCTION_CONCAT) return null;
+        return (XMLValueFunctionConcat)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetValueFunctionConcat(XMLValueFunctionConcat newValueFunctionConcat, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newValueFunctionConcat, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__VALUE_FUNCTION_CONCAT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueFunctionConcat(XMLValueFunctionConcat newValueFunctionConcat) {
+        if (newValueFunctionConcat != eInternalContainer() || (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__VALUE_FUNCTION_CONCAT && newValueFunctionConcat != null)) {
+            if (EcoreUtil.isAncestor(this, newValueFunctionConcat))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newValueFunctionConcat != null)
+                msgs = ((InternalEObject)newValueFunctionConcat).eInverseAdd(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_CONCAT__CONCAT_CONTENT_LIST, XMLValueFunctionConcat.class, msgs);
+            msgs = basicSetValueFunctionConcat(newValueFunctionConcat, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__VALUE_FUNCTION_CONCAT, newValueFunctionConcat, newValueFunctionConcat));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryValueExpression getValueExpr() {
+        return valueExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetValueExpr(QueryValueExpression newValueExpr, NotificationChain msgs) {
+        QueryValueExpression oldValueExpr = valueExpr;
+        valueExpr = newValueExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__VALUE_EXPR, oldValueExpr, newValueExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueExpr(QueryValueExpression newValueExpr) {
+        if (newValueExpr != valueExpr) {
+            NotificationChain msgs = null;
+            if (valueExpr != null)
+                msgs = ((InternalEObject)valueExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__VALUE_EXPR, null, msgs);
+            if (newValueExpr != null)
+                msgs = ((InternalEObject)newValueExpr).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__VALUE_EXPR, null, msgs);
+            msgs = basicSetValueExpr(newValueExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__VALUE_EXPR, newValueExpr, newValueExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__VALUE_FUNCTION_CONCAT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetValueFunctionConcat((XMLValueFunctionConcat)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__VALUE_FUNCTION_CONCAT:
+                return basicSetValueFunctionConcat(null, msgs);
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__VALUE_EXPR:
+                return basicSetValueExpr(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__VALUE_FUNCTION_CONCAT:
+                return eInternalContainer().eInverseRemove(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_CONCAT__CONCAT_CONTENT_LIST, XMLValueFunctionConcat.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__VALUE_FUNCTION_CONCAT:
+                return getValueFunctionConcat();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__VALUE_EXPR:
+                return getValueExpr();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__VALUE_FUNCTION_CONCAT:
+                setValueFunctionConcat((XMLValueFunctionConcat)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__VALUE_FUNCTION_CONCAT:
+                setValueFunctionConcat((XMLValueFunctionConcat)null);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__VALUE_FUNCTION_CONCAT:
+                return getValueFunctionConcat() != null;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__VALUE_EXPR:
+                return valueExpr != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //XMLValueFunctionConcatContentItemImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionConcatImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionConcatImpl.java
new file mode 100644
index 0000000..d2604c5
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionConcatImpl.java
@@ -0,0 +1,254 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionConcatImpl.java,v 1.5 2007/02/08 17:04:21 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+import org.eclipse.datatools.modelbase.sql.routines.Function;
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLReturningType;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionConcat;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionConcatContentItem;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Value Function Concat</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionConcatImpl#getReturningOption <em>Returning Option</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionConcatImpl#getConcatContentList <em>Concat Content List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLValueFunctionConcatImpl extends XMLValueFunctionImpl implements XMLValueFunctionConcat {
+	/**
+     * The default value of the '{@link #getReturningOption() <em>Returning Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getReturningOption()
+     * @generated
+     * @ordered
+     */
+    protected static final XMLReturningType RETURNING_OPTION_EDEFAULT = XMLReturningType.RETURNING_CONTENT_LITERAL;
+
+	/**
+     * The cached value of the '{@link #getReturningOption() <em>Returning Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getReturningOption()
+     * @generated
+     * @ordered
+     */
+    protected XMLReturningType returningOption = RETURNING_OPTION_EDEFAULT;
+
+	/**
+     * The cached value of the '{@link #getConcatContentList() <em>Concat Content List</em>}' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getConcatContentList()
+     * @generated
+     * @ordered
+     */
+    protected EList concatContentList;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLValueFunctionConcatImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_VALUE_FUNCTION_CONCAT;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLReturningType getReturningOption() {
+        return returningOption;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setReturningOption(XMLReturningType newReturningOption) {
+        XMLReturningType oldReturningOption = returningOption;
+        returningOption = newReturningOption == null ? RETURNING_OPTION_EDEFAULT : newReturningOption;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_CONCAT__RETURNING_OPTION, oldReturningOption, returningOption));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getConcatContentList() {
+        if (concatContentList == null) {
+            concatContentList = new EObjectContainmentWithInverseEList(XMLValueFunctionConcatContentItem.class, this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_CONCAT__CONCAT_CONTENT_LIST, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM__VALUE_FUNCTION_CONCAT);
+        }
+        return concatContentList;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_CONCAT__CONCAT_CONTENT_LIST:
+                return ((InternalEList)getConcatContentList()).basicAdd(otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_CONCAT__CONCAT_CONTENT_LIST:
+                return ((InternalEList)getConcatContentList()).basicRemove(otherEnd, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_CONCAT__RETURNING_OPTION:
+                return getReturningOption();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_CONCAT__CONCAT_CONTENT_LIST:
+                return getConcatContentList();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_CONCAT__RETURNING_OPTION:
+                setReturningOption((XMLReturningType)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_CONCAT__CONCAT_CONTENT_LIST:
+                getConcatContentList().clear();
+                getConcatContentList().addAll((Collection)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_CONCAT__RETURNING_OPTION:
+                setReturningOption(RETURNING_OPTION_EDEFAULT);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_CONCAT__CONCAT_CONTENT_LIST:
+                getConcatContentList().clear();
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_CONCAT__RETURNING_OPTION:
+                return returningOption != RETURNING_OPTION_EDEFAULT;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_CONCAT__CONCAT_CONTENT_LIST:
+                return concatContentList != null && !concatContentList.isEmpty();
+        }
+        return super.eIsSet(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (returningOption: ");
+        result.append(returningOption);
+        result.append(')');
+        return result.toString();
+    }
+
+} //XMLValueFunctionConcatImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionDocumentContentImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionDocumentContentImpl.java
new file mode 100644
index 0000000..6f36eaf
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionDocumentContentImpl.java
@@ -0,0 +1,292 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionDocumentContentImpl.java,v 1.4 2008/07/07 19:55:14 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+import org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl;
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionDocument;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionDocumentContent;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Value Function Document Content</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionDocumentContentImpl#getValueFunctionDocument <em>Value Function Document</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionDocumentContentImpl#getValueExpr <em>Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLValueFunctionDocumentContentImpl extends QueryValueExpressionImpl implements XMLValueFunctionDocumentContent {
+	/**
+     * The cached value of the '{@link #getValueExpr() <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getValueExpr()
+     * @generated
+     * @ordered
+     */
+    protected QueryValueExpression valueExpr;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLValueFunctionDocumentContentImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_VALUE_FUNCTION_DOCUMENT_CONTENT;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionDocument getValueFunctionDocument() {
+        if (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_DOCUMENT_CONTENT__VALUE_FUNCTION_DOCUMENT) return null;
+        return (XMLValueFunctionDocument)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetValueFunctionDocument(XMLValueFunctionDocument newValueFunctionDocument, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newValueFunctionDocument, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_DOCUMENT_CONTENT__VALUE_FUNCTION_DOCUMENT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueFunctionDocument(XMLValueFunctionDocument newValueFunctionDocument) {
+        if (newValueFunctionDocument != eInternalContainer() || (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_DOCUMENT_CONTENT__VALUE_FUNCTION_DOCUMENT && newValueFunctionDocument != null)) {
+            if (EcoreUtil.isAncestor(this, newValueFunctionDocument))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newValueFunctionDocument != null)
+                msgs = ((InternalEObject)newValueFunctionDocument).eInverseAdd(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_DOCUMENT__DOCUMENT_CONTENT, XMLValueFunctionDocument.class, msgs);
+            msgs = basicSetValueFunctionDocument(newValueFunctionDocument, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_DOCUMENT_CONTENT__VALUE_FUNCTION_DOCUMENT, newValueFunctionDocument, newValueFunctionDocument));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryValueExpression getValueExpr() {
+        return valueExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetValueExpr(QueryValueExpression newValueExpr, NotificationChain msgs) {
+        QueryValueExpression oldValueExpr = valueExpr;
+        valueExpr = newValueExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_DOCUMENT_CONTENT__VALUE_EXPR, oldValueExpr, newValueExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueExpr(QueryValueExpression newValueExpr) {
+        if (newValueExpr != valueExpr) {
+            NotificationChain msgs = null;
+            if (valueExpr != null)
+                msgs = ((InternalEObject)valueExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_DOCUMENT_CONTENT__VALUE_EXPR, null, msgs);
+            if (newValueExpr != null)
+                msgs = ((InternalEObject)newValueExpr).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_DOCUMENT_CONTENT__VALUE_EXPR, null, msgs);
+            msgs = basicSetValueExpr(newValueExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_DOCUMENT_CONTENT__VALUE_EXPR, newValueExpr, newValueExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_DOCUMENT_CONTENT__VALUE_FUNCTION_DOCUMENT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetValueFunctionDocument((XMLValueFunctionDocument)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_DOCUMENT_CONTENT__VALUE_FUNCTION_DOCUMENT:
+                return basicSetValueFunctionDocument(null, msgs);
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_DOCUMENT_CONTENT__VALUE_EXPR:
+                return basicSetValueExpr(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_DOCUMENT_CONTENT__VALUE_FUNCTION_DOCUMENT:
+                return eInternalContainer().eInverseRemove(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_DOCUMENT__DOCUMENT_CONTENT, XMLValueFunctionDocument.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_DOCUMENT_CONTENT__VALUE_FUNCTION_DOCUMENT:
+                return getValueFunctionDocument();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_DOCUMENT_CONTENT__VALUE_EXPR:
+                return getValueExpr();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_DOCUMENT_CONTENT__VALUE_FUNCTION_DOCUMENT:
+                setValueFunctionDocument((XMLValueFunctionDocument)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_DOCUMENT_CONTENT__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_DOCUMENT_CONTENT__VALUE_FUNCTION_DOCUMENT:
+                setValueFunctionDocument((XMLValueFunctionDocument)null);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_DOCUMENT_CONTENT__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_DOCUMENT_CONTENT__VALUE_FUNCTION_DOCUMENT:
+                return getValueFunctionDocument() != null;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_DOCUMENT_CONTENT__VALUE_EXPR:
+                return valueExpr != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //XMLValueFunctionDocumentContentImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionDocumentImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionDocumentImpl.java
new file mode 100644
index 0000000..37e33b0
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionDocumentImpl.java
@@ -0,0 +1,284 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionDocumentImpl.java,v 1.5 2007/02/08 17:04:21 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+import org.eclipse.datatools.modelbase.sql.routines.Function;
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLReturningType;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionDocument;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionDocumentContent;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Value Function Document</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionDocumentImpl#getReturningOption <em>Returning Option</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionDocumentImpl#getDocumentContent <em>Document Content</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLValueFunctionDocumentImpl extends XMLValueFunctionImpl implements XMLValueFunctionDocument {
+	/**
+     * The default value of the '{@link #getReturningOption() <em>Returning Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getReturningOption()
+     * @generated
+     * @ordered
+     */
+    protected static final XMLReturningType RETURNING_OPTION_EDEFAULT = XMLReturningType.RETURNING_CONTENT_LITERAL;
+
+	/**
+     * The cached value of the '{@link #getReturningOption() <em>Returning Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getReturningOption()
+     * @generated
+     * @ordered
+     */
+    protected XMLReturningType returningOption = RETURNING_OPTION_EDEFAULT;
+
+	/**
+     * The cached value of the '{@link #getDocumentContent() <em>Document Content</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getDocumentContent()
+     * @generated
+     * @ordered
+     */
+    protected XMLValueFunctionDocumentContent documentContent;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLValueFunctionDocumentImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_VALUE_FUNCTION_DOCUMENT;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLReturningType getReturningOption() {
+        return returningOption;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setReturningOption(XMLReturningType newReturningOption) {
+        XMLReturningType oldReturningOption = returningOption;
+        returningOption = newReturningOption == null ? RETURNING_OPTION_EDEFAULT : newReturningOption;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_DOCUMENT__RETURNING_OPTION, oldReturningOption, returningOption));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionDocumentContent getDocumentContent() {
+        return documentContent;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetDocumentContent(XMLValueFunctionDocumentContent newDocumentContent, NotificationChain msgs) {
+        XMLValueFunctionDocumentContent oldDocumentContent = documentContent;
+        documentContent = newDocumentContent;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_DOCUMENT__DOCUMENT_CONTENT, oldDocumentContent, newDocumentContent);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setDocumentContent(XMLValueFunctionDocumentContent newDocumentContent) {
+        if (newDocumentContent != documentContent) {
+            NotificationChain msgs = null;
+            if (documentContent != null)
+                msgs = ((InternalEObject)documentContent).eInverseRemove(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_DOCUMENT_CONTENT__VALUE_FUNCTION_DOCUMENT, XMLValueFunctionDocumentContent.class, msgs);
+            if (newDocumentContent != null)
+                msgs = ((InternalEObject)newDocumentContent).eInverseAdd(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_DOCUMENT_CONTENT__VALUE_FUNCTION_DOCUMENT, XMLValueFunctionDocumentContent.class, msgs);
+            msgs = basicSetDocumentContent(newDocumentContent, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_DOCUMENT__DOCUMENT_CONTENT, newDocumentContent, newDocumentContent));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_DOCUMENT__DOCUMENT_CONTENT:
+                if (documentContent != null)
+                    msgs = ((InternalEObject)documentContent).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_DOCUMENT__DOCUMENT_CONTENT, null, msgs);
+                return basicSetDocumentContent((XMLValueFunctionDocumentContent)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_DOCUMENT__DOCUMENT_CONTENT:
+                return basicSetDocumentContent(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_DOCUMENT__RETURNING_OPTION:
+                return getReturningOption();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_DOCUMENT__DOCUMENT_CONTENT:
+                return getDocumentContent();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_DOCUMENT__RETURNING_OPTION:
+                setReturningOption((XMLReturningType)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_DOCUMENT__DOCUMENT_CONTENT:
+                setDocumentContent((XMLValueFunctionDocumentContent)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_DOCUMENT__RETURNING_OPTION:
+                setReturningOption(RETURNING_OPTION_EDEFAULT);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_DOCUMENT__DOCUMENT_CONTENT:
+                setDocumentContent((XMLValueFunctionDocumentContent)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_DOCUMENT__RETURNING_OPTION:
+                return returningOption != RETURNING_OPTION_EDEFAULT;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_DOCUMENT__DOCUMENT_CONTENT:
+                return documentContent != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (returningOption: ");
+        result.append(returningOption);
+        result.append(')');
+        return result.toString();
+    }
+
+} //XMLValueFunctionDocumentImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionElementContentItemImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionElementContentItemImpl.java
new file mode 100644
index 0000000..cf1e902
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionElementContentItemImpl.java
@@ -0,0 +1,292 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionElementContentItemImpl.java,v 1.4 2008/07/07 19:55:15 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+import org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl;
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElementContentItem;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElementContentList;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Value Function Element Content Item</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionElementContentItemImpl#getValueExpr <em>Value Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionElementContentItemImpl#getElementContentList <em>Element Content List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLValueFunctionElementContentItemImpl extends QueryValueExpressionImpl implements XMLValueFunctionElementContentItem {
+	/**
+     * The cached value of the '{@link #getValueExpr() <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getValueExpr()
+     * @generated
+     * @ordered
+     */
+    protected QueryValueExpression valueExpr;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLValueFunctionElementContentItemImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryValueExpression getValueExpr() {
+        return valueExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetValueExpr(QueryValueExpression newValueExpr, NotificationChain msgs) {
+        QueryValueExpression oldValueExpr = valueExpr;
+        valueExpr = newValueExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__VALUE_EXPR, oldValueExpr, newValueExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueExpr(QueryValueExpression newValueExpr) {
+        if (newValueExpr != valueExpr) {
+            NotificationChain msgs = null;
+            if (valueExpr != null)
+                msgs = ((InternalEObject)valueExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__VALUE_EXPR, null, msgs);
+            if (newValueExpr != null)
+                msgs = ((InternalEObject)newValueExpr).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__VALUE_EXPR, null, msgs);
+            msgs = basicSetValueExpr(newValueExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__VALUE_EXPR, newValueExpr, newValueExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionElementContentList getElementContentList() {
+        if (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__ELEMENT_CONTENT_LIST) return null;
+        return (XMLValueFunctionElementContentList)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetElementContentList(XMLValueFunctionElementContentList newElementContentList, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newElementContentList, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__ELEMENT_CONTENT_LIST, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setElementContentList(XMLValueFunctionElementContentList newElementContentList) {
+        if (newElementContentList != eInternalContainer() || (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__ELEMENT_CONTENT_LIST && newElementContentList != null)) {
+            if (EcoreUtil.isAncestor(this, newElementContentList))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newElementContentList != null)
+                msgs = ((InternalEObject)newElementContentList).eInverseAdd(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST__ELEMENT_CONTENT_LIST_CHILDREN, XMLValueFunctionElementContentList.class, msgs);
+            msgs = basicSetElementContentList(newElementContentList, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__ELEMENT_CONTENT_LIST, newElementContentList, newElementContentList));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__ELEMENT_CONTENT_LIST:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetElementContentList((XMLValueFunctionElementContentList)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__VALUE_EXPR:
+                return basicSetValueExpr(null, msgs);
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__ELEMENT_CONTENT_LIST:
+                return basicSetElementContentList(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__ELEMENT_CONTENT_LIST:
+                return eInternalContainer().eInverseRemove(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST__ELEMENT_CONTENT_LIST_CHILDREN, XMLValueFunctionElementContentList.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__VALUE_EXPR:
+                return getValueExpr();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__ELEMENT_CONTENT_LIST:
+                return getElementContentList();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__ELEMENT_CONTENT_LIST:
+                setElementContentList((XMLValueFunctionElementContentList)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)null);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__ELEMENT_CONTENT_LIST:
+                setElementContentList((XMLValueFunctionElementContentList)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__VALUE_EXPR:
+                return valueExpr != null;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__ELEMENT_CONTENT_LIST:
+                return getElementContentList() != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //XMLValueFunctionElementContentItemImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionElementContentListImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionElementContentListImpl.java
new file mode 100644
index 0000000..e498eb5
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionElementContentListImpl.java
@@ -0,0 +1,307 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionElementContentListImpl.java,v 1.4 2008/07/07 19:55:15 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryObjectImpl;
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLNullHandlingType;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElement;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElementContentItem;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElementContentList;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Value Function Element Content List</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionElementContentListImpl#getNullHandlingOption <em>Null Handling Option</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionElementContentListImpl#getValueFunctionElement <em>Value Function Element</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionElementContentListImpl#getElementContentListChildren <em>Element Content List Children</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLValueFunctionElementContentListImpl extends SQLQueryObjectImpl implements XMLValueFunctionElementContentList {
+	/**
+     * The default value of the '{@link #getNullHandlingOption() <em>Null Handling Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getNullHandlingOption()
+     * @generated
+     * @ordered
+     */
+    protected static final XMLNullHandlingType NULL_HANDLING_OPTION_EDEFAULT = XMLNullHandlingType.ABSENT_ON_NULL_LITERAL;
+
+	/**
+     * The cached value of the '{@link #getNullHandlingOption() <em>Null Handling Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getNullHandlingOption()
+     * @generated
+     * @ordered
+     */
+    protected XMLNullHandlingType nullHandlingOption = NULL_HANDLING_OPTION_EDEFAULT;
+
+	/**
+     * The cached value of the '{@link #getElementContentListChildren() <em>Element Content List Children</em>}' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getElementContentListChildren()
+     * @generated
+     * @ordered
+     */
+    protected EList elementContentListChildren;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLValueFunctionElementContentListImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLNullHandlingType getNullHandlingOption() {
+        return nullHandlingOption;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setNullHandlingOption(XMLNullHandlingType newNullHandlingOption) {
+        XMLNullHandlingType oldNullHandlingOption = nullHandlingOption;
+        nullHandlingOption = newNullHandlingOption == null ? NULL_HANDLING_OPTION_EDEFAULT : newNullHandlingOption;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST__NULL_HANDLING_OPTION, oldNullHandlingOption, nullHandlingOption));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionElement getValueFunctionElement() {
+        if (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST__VALUE_FUNCTION_ELEMENT) return null;
+        return (XMLValueFunctionElement)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetValueFunctionElement(XMLValueFunctionElement newValueFunctionElement, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newValueFunctionElement, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST__VALUE_FUNCTION_ELEMENT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueFunctionElement(XMLValueFunctionElement newValueFunctionElement) {
+        if (newValueFunctionElement != eInternalContainer() || (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST__VALUE_FUNCTION_ELEMENT && newValueFunctionElement != null)) {
+            if (EcoreUtil.isAncestor(this, newValueFunctionElement))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newValueFunctionElement != null)
+                msgs = ((InternalEObject)newValueFunctionElement).eInverseAdd(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT__ELEMENT_CONTENT_LIST, XMLValueFunctionElement.class, msgs);
+            msgs = basicSetValueFunctionElement(newValueFunctionElement, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST__VALUE_FUNCTION_ELEMENT, newValueFunctionElement, newValueFunctionElement));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getElementContentListChildren() {
+        if (elementContentListChildren == null) {
+            elementContentListChildren = new EObjectContainmentWithInverseEList(XMLValueFunctionElementContentItem.class, this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST__ELEMENT_CONTENT_LIST_CHILDREN, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM__ELEMENT_CONTENT_LIST);
+        }
+        return elementContentListChildren;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST__VALUE_FUNCTION_ELEMENT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetValueFunctionElement((XMLValueFunctionElement)otherEnd, msgs);
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST__ELEMENT_CONTENT_LIST_CHILDREN:
+                return ((InternalEList)getElementContentListChildren()).basicAdd(otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST__VALUE_FUNCTION_ELEMENT:
+                return basicSetValueFunctionElement(null, msgs);
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST__ELEMENT_CONTENT_LIST_CHILDREN:
+                return ((InternalEList)getElementContentListChildren()).basicRemove(otherEnd, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST__VALUE_FUNCTION_ELEMENT:
+                return eInternalContainer().eInverseRemove(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT__ELEMENT_CONTENT_LIST, XMLValueFunctionElement.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST__NULL_HANDLING_OPTION:
+                return getNullHandlingOption();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST__VALUE_FUNCTION_ELEMENT:
+                return getValueFunctionElement();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST__ELEMENT_CONTENT_LIST_CHILDREN:
+                return getElementContentListChildren();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST__NULL_HANDLING_OPTION:
+                setNullHandlingOption((XMLNullHandlingType)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST__VALUE_FUNCTION_ELEMENT:
+                setValueFunctionElement((XMLValueFunctionElement)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST__ELEMENT_CONTENT_LIST_CHILDREN:
+                getElementContentListChildren().clear();
+                getElementContentListChildren().addAll((Collection)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST__NULL_HANDLING_OPTION:
+                setNullHandlingOption(NULL_HANDLING_OPTION_EDEFAULT);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST__VALUE_FUNCTION_ELEMENT:
+                setValueFunctionElement((XMLValueFunctionElement)null);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST__ELEMENT_CONTENT_LIST_CHILDREN:
+                getElementContentListChildren().clear();
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST__NULL_HANDLING_OPTION:
+                return nullHandlingOption != NULL_HANDLING_OPTION_EDEFAULT;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST__VALUE_FUNCTION_ELEMENT:
+                return getValueFunctionElement() != null;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST__ELEMENT_CONTENT_LIST_CHILDREN:
+                return elementContentListChildren != null && !elementContentListChildren.isEmpty();
+        }
+        return super.eIsSet(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (nullHandlingOption: ");
+        result.append(nullHandlingOption);
+        result.append(')');
+        return result.toString();
+    }
+
+} //XMLValueFunctionElementContentListImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionElementImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionElementImpl.java
new file mode 100644
index 0000000..75c0711
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionElementImpl.java
@@ -0,0 +1,480 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionElementImpl.java,v 1.5 2007/02/08 17:04:21 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+import org.eclipse.datatools.modelbase.sql.routines.Function;
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLAttributesDeclaration;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespacesDeclaration;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLReturningType;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElement;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElementContentList;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Value Function Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionElementImpl#getElementName <em>Element Name</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionElementImpl#getReturningOption <em>Returning Option</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionElementImpl#getNamespacesDecl <em>Namespaces Decl</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionElementImpl#getAttributesDecl <em>Attributes Decl</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionElementImpl#getElementContentList <em>Element Content List</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLValueFunctionElementImpl extends XMLValueFunctionImpl implements XMLValueFunctionElement {
+	/**
+     * The default value of the '{@link #getElementName() <em>Element Name</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getElementName()
+     * @generated
+     * @ordered
+     */
+    protected static final String ELEMENT_NAME_EDEFAULT = null;
+
+	/**
+     * The cached value of the '{@link #getElementName() <em>Element Name</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getElementName()
+     * @generated
+     * @ordered
+     */
+    protected String elementName = ELEMENT_NAME_EDEFAULT;
+
+	/**
+     * The default value of the '{@link #getReturningOption() <em>Returning Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getReturningOption()
+     * @generated
+     * @ordered
+     */
+    protected static final XMLReturningType RETURNING_OPTION_EDEFAULT = XMLReturningType.RETURNING_CONTENT_LITERAL;
+
+	/**
+     * The cached value of the '{@link #getReturningOption() <em>Returning Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getReturningOption()
+     * @generated
+     * @ordered
+     */
+    protected XMLReturningType returningOption = RETURNING_OPTION_EDEFAULT;
+
+	/**
+     * The cached value of the '{@link #getNamespacesDecl() <em>Namespaces Decl</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getNamespacesDecl()
+     * @generated
+     * @ordered
+     */
+    protected XMLNamespacesDeclaration namespacesDecl;
+
+	/**
+     * The cached value of the '{@link #getAttributesDecl() <em>Attributes Decl</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getAttributesDecl()
+     * @generated
+     * @ordered
+     */
+    protected XMLAttributesDeclaration attributesDecl;
+
+	/**
+     * The cached value of the '{@link #getElementContentList() <em>Element Content List</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getElementContentList()
+     * @generated
+     * @ordered
+     */
+    protected XMLValueFunctionElementContentList elementContentList;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLValueFunctionElementImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_VALUE_FUNCTION_ELEMENT;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String getElementName() {
+        return elementName;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setElementName(String newElementName) {
+        String oldElementName = elementName;
+        elementName = newElementName;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT__ELEMENT_NAME, oldElementName, elementName));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLReturningType getReturningOption() {
+        return returningOption;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setReturningOption(XMLReturningType newReturningOption) {
+        XMLReturningType oldReturningOption = returningOption;
+        returningOption = newReturningOption == null ? RETURNING_OPTION_EDEFAULT : newReturningOption;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT__RETURNING_OPTION, oldReturningOption, returningOption));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLNamespacesDeclaration getNamespacesDecl() {
+        return namespacesDecl;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetNamespacesDecl(XMLNamespacesDeclaration newNamespacesDecl, NotificationChain msgs) {
+        XMLNamespacesDeclaration oldNamespacesDecl = namespacesDecl;
+        namespacesDecl = newNamespacesDecl;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT__NAMESPACES_DECL, oldNamespacesDecl, newNamespacesDecl);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setNamespacesDecl(XMLNamespacesDeclaration newNamespacesDecl) {
+        if (newNamespacesDecl != namespacesDecl) {
+            NotificationChain msgs = null;
+            if (namespacesDecl != null)
+                msgs = ((InternalEObject)namespacesDecl).eInverseRemove(this, SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__VALUE_FUNCTION_ELEMENT, XMLNamespacesDeclaration.class, msgs);
+            if (newNamespacesDecl != null)
+                msgs = ((InternalEObject)newNamespacesDecl).eInverseAdd(this, SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__VALUE_FUNCTION_ELEMENT, XMLNamespacesDeclaration.class, msgs);
+            msgs = basicSetNamespacesDecl(newNamespacesDecl, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT__NAMESPACES_DECL, newNamespacesDecl, newNamespacesDecl));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLAttributesDeclaration getAttributesDecl() {
+        return attributesDecl;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetAttributesDecl(XMLAttributesDeclaration newAttributesDecl, NotificationChain msgs) {
+        XMLAttributesDeclaration oldAttributesDecl = attributesDecl;
+        attributesDecl = newAttributesDecl;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT__ATTRIBUTES_DECL, oldAttributesDecl, newAttributesDecl);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setAttributesDecl(XMLAttributesDeclaration newAttributesDecl) {
+        if (newAttributesDecl != attributesDecl) {
+            NotificationChain msgs = null;
+            if (attributesDecl != null)
+                msgs = ((InternalEObject)attributesDecl).eInverseRemove(this, SQLXMLQueryModelPackage.XML_ATTRIBUTES_DECLARATION__VALUE_FUNCTION_ELEMENT, XMLAttributesDeclaration.class, msgs);
+            if (newAttributesDecl != null)
+                msgs = ((InternalEObject)newAttributesDecl).eInverseAdd(this, SQLXMLQueryModelPackage.XML_ATTRIBUTES_DECLARATION__VALUE_FUNCTION_ELEMENT, XMLAttributesDeclaration.class, msgs);
+            msgs = basicSetAttributesDecl(newAttributesDecl, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT__ATTRIBUTES_DECL, newAttributesDecl, newAttributesDecl));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionElementContentList getElementContentList() {
+        return elementContentList;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetElementContentList(XMLValueFunctionElementContentList newElementContentList, NotificationChain msgs) {
+        XMLValueFunctionElementContentList oldElementContentList = elementContentList;
+        elementContentList = newElementContentList;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT__ELEMENT_CONTENT_LIST, oldElementContentList, newElementContentList);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setElementContentList(XMLValueFunctionElementContentList newElementContentList) {
+        if (newElementContentList != elementContentList) {
+            NotificationChain msgs = null;
+            if (elementContentList != null)
+                msgs = ((InternalEObject)elementContentList).eInverseRemove(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST__VALUE_FUNCTION_ELEMENT, XMLValueFunctionElementContentList.class, msgs);
+            if (newElementContentList != null)
+                msgs = ((InternalEObject)newElementContentList).eInverseAdd(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST__VALUE_FUNCTION_ELEMENT, XMLValueFunctionElementContentList.class, msgs);
+            msgs = basicSetElementContentList(newElementContentList, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT__ELEMENT_CONTENT_LIST, newElementContentList, newElementContentList));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT__NAMESPACES_DECL:
+                if (namespacesDecl != null)
+                    msgs = ((InternalEObject)namespacesDecl).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT__NAMESPACES_DECL, null, msgs);
+                return basicSetNamespacesDecl((XMLNamespacesDeclaration)otherEnd, msgs);
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT__ATTRIBUTES_DECL:
+                if (attributesDecl != null)
+                    msgs = ((InternalEObject)attributesDecl).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT__ATTRIBUTES_DECL, null, msgs);
+                return basicSetAttributesDecl((XMLAttributesDeclaration)otherEnd, msgs);
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT__ELEMENT_CONTENT_LIST:
+                if (elementContentList != null)
+                    msgs = ((InternalEObject)elementContentList).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT__ELEMENT_CONTENT_LIST, null, msgs);
+                return basicSetElementContentList((XMLValueFunctionElementContentList)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT__NAMESPACES_DECL:
+                return basicSetNamespacesDecl(null, msgs);
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT__ATTRIBUTES_DECL:
+                return basicSetAttributesDecl(null, msgs);
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT__ELEMENT_CONTENT_LIST:
+                return basicSetElementContentList(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT__ELEMENT_NAME:
+                return getElementName();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT__RETURNING_OPTION:
+                return getReturningOption();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT__NAMESPACES_DECL:
+                return getNamespacesDecl();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT__ATTRIBUTES_DECL:
+                return getAttributesDecl();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT__ELEMENT_CONTENT_LIST:
+                return getElementContentList();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT__ELEMENT_NAME:
+                setElementName((String)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT__RETURNING_OPTION:
+                setReturningOption((XMLReturningType)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT__NAMESPACES_DECL:
+                setNamespacesDecl((XMLNamespacesDeclaration)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT__ATTRIBUTES_DECL:
+                setAttributesDecl((XMLAttributesDeclaration)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT__ELEMENT_CONTENT_LIST:
+                setElementContentList((XMLValueFunctionElementContentList)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT__ELEMENT_NAME:
+                setElementName(ELEMENT_NAME_EDEFAULT);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT__RETURNING_OPTION:
+                setReturningOption(RETURNING_OPTION_EDEFAULT);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT__NAMESPACES_DECL:
+                setNamespacesDecl((XMLNamespacesDeclaration)null);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT__ATTRIBUTES_DECL:
+                setAttributesDecl((XMLAttributesDeclaration)null);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT__ELEMENT_CONTENT_LIST:
+                setElementContentList((XMLValueFunctionElementContentList)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT__ELEMENT_NAME:
+                return ELEMENT_NAME_EDEFAULT == null ? elementName != null : !ELEMENT_NAME_EDEFAULT.equals(elementName);
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT__RETURNING_OPTION:
+                return returningOption != RETURNING_OPTION_EDEFAULT;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT__NAMESPACES_DECL:
+                return namespacesDecl != null;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT__ATTRIBUTES_DECL:
+                return attributesDecl != null;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT__ELEMENT_CONTENT_LIST:
+                return elementContentList != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (elementName: ");
+        result.append(elementName);
+        result.append(", returningOption: ");
+        result.append(returningOption);
+        result.append(')');
+        return result.toString();
+    }
+
+} //XMLValueFunctionElementImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionForestContentItemImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionForestContentItemImpl.java
new file mode 100644
index 0000000..6b8006c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionForestContentItemImpl.java
@@ -0,0 +1,292 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionForestContentItemImpl.java,v 1.4 2008/07/07 19:55:15 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+import org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl;
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForest;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForestContentItem;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Value Function Forest Content Item</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionForestContentItemImpl#getValueFunctionForest <em>Value Function Forest</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionForestContentItemImpl#getValueExpr <em>Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLValueFunctionForestContentItemImpl extends QueryValueExpressionImpl implements XMLValueFunctionForestContentItem {
+	/**
+     * The cached value of the '{@link #getValueExpr() <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getValueExpr()
+     * @generated
+     * @ordered
+     */
+    protected QueryValueExpression valueExpr;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLValueFunctionForestContentItemImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionForest getValueFunctionForest() {
+        if (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__VALUE_FUNCTION_FOREST) return null;
+        return (XMLValueFunctionForest)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetValueFunctionForest(XMLValueFunctionForest newValueFunctionForest, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newValueFunctionForest, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__VALUE_FUNCTION_FOREST, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueFunctionForest(XMLValueFunctionForest newValueFunctionForest) {
+        if (newValueFunctionForest != eInternalContainer() || (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__VALUE_FUNCTION_FOREST && newValueFunctionForest != null)) {
+            if (EcoreUtil.isAncestor(this, newValueFunctionForest))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newValueFunctionForest != null)
+                msgs = ((InternalEObject)newValueFunctionForest).eInverseAdd(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST__FOREST_CONTENT_LIST, XMLValueFunctionForest.class, msgs);
+            msgs = basicSetValueFunctionForest(newValueFunctionForest, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__VALUE_FUNCTION_FOREST, newValueFunctionForest, newValueFunctionForest));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryValueExpression getValueExpr() {
+        return valueExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetValueExpr(QueryValueExpression newValueExpr, NotificationChain msgs) {
+        QueryValueExpression oldValueExpr = valueExpr;
+        valueExpr = newValueExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__VALUE_EXPR, oldValueExpr, newValueExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueExpr(QueryValueExpression newValueExpr) {
+        if (newValueExpr != valueExpr) {
+            NotificationChain msgs = null;
+            if (valueExpr != null)
+                msgs = ((InternalEObject)valueExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__VALUE_EXPR, null, msgs);
+            if (newValueExpr != null)
+                msgs = ((InternalEObject)newValueExpr).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__VALUE_EXPR, null, msgs);
+            msgs = basicSetValueExpr(newValueExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__VALUE_EXPR, newValueExpr, newValueExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__VALUE_FUNCTION_FOREST:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetValueFunctionForest((XMLValueFunctionForest)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__VALUE_FUNCTION_FOREST:
+                return basicSetValueFunctionForest(null, msgs);
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__VALUE_EXPR:
+                return basicSetValueExpr(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__VALUE_FUNCTION_FOREST:
+                return eInternalContainer().eInverseRemove(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST__FOREST_CONTENT_LIST, XMLValueFunctionForest.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__VALUE_FUNCTION_FOREST:
+                return getValueFunctionForest();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__VALUE_EXPR:
+                return getValueExpr();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__VALUE_FUNCTION_FOREST:
+                setValueFunctionForest((XMLValueFunctionForest)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__VALUE_FUNCTION_FOREST:
+                setValueFunctionForest((XMLValueFunctionForest)null);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__VALUE_FUNCTION_FOREST:
+                return getValueFunctionForest() != null;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__VALUE_EXPR:
+                return valueExpr != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //XMLValueFunctionForestContentItemImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionForestImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionForestImpl.java
new file mode 100644
index 0000000..5be0fd9
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionForestImpl.java
@@ -0,0 +1,380 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionForestImpl.java,v 1.5 2007/02/08 17:04:20 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+import org.eclipse.datatools.modelbase.sql.routines.Function;
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespacesDeclaration;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLNullHandlingType;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLReturningType;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForest;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForestContentItem;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Value Function Forest</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionForestImpl#getNullHandlingOption <em>Null Handling Option</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionForestImpl#getReturningOption <em>Returning Option</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionForestImpl#getForestContentList <em>Forest Content List</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionForestImpl#getNamespacesDecl <em>Namespaces Decl</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLValueFunctionForestImpl extends XMLValueFunctionImpl implements XMLValueFunctionForest {
+	/**
+     * The default value of the '{@link #getNullHandlingOption() <em>Null Handling Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getNullHandlingOption()
+     * @generated
+     * @ordered
+     */
+    protected static final XMLNullHandlingType NULL_HANDLING_OPTION_EDEFAULT = XMLNullHandlingType.ABSENT_ON_NULL_LITERAL;
+
+	/**
+     * The cached value of the '{@link #getNullHandlingOption() <em>Null Handling Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getNullHandlingOption()
+     * @generated
+     * @ordered
+     */
+    protected XMLNullHandlingType nullHandlingOption = NULL_HANDLING_OPTION_EDEFAULT;
+
+	/**
+     * The default value of the '{@link #getReturningOption() <em>Returning Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getReturningOption()
+     * @generated
+     * @ordered
+     */
+    protected static final XMLReturningType RETURNING_OPTION_EDEFAULT = XMLReturningType.RETURNING_CONTENT_LITERAL;
+
+	/**
+     * The cached value of the '{@link #getReturningOption() <em>Returning Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getReturningOption()
+     * @generated
+     * @ordered
+     */
+    protected XMLReturningType returningOption = RETURNING_OPTION_EDEFAULT;
+
+	/**
+     * The cached value of the '{@link #getForestContentList() <em>Forest Content List</em>}' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getForestContentList()
+     * @generated
+     * @ordered
+     */
+    protected EList forestContentList;
+
+	/**
+     * The cached value of the '{@link #getNamespacesDecl() <em>Namespaces Decl</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getNamespacesDecl()
+     * @generated
+     * @ordered
+     */
+    protected XMLNamespacesDeclaration namespacesDecl;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLValueFunctionForestImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_VALUE_FUNCTION_FOREST;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLNullHandlingType getNullHandlingOption() {
+        return nullHandlingOption;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setNullHandlingOption(XMLNullHandlingType newNullHandlingOption) {
+        XMLNullHandlingType oldNullHandlingOption = nullHandlingOption;
+        nullHandlingOption = newNullHandlingOption == null ? NULL_HANDLING_OPTION_EDEFAULT : newNullHandlingOption;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST__NULL_HANDLING_OPTION, oldNullHandlingOption, nullHandlingOption));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLReturningType getReturningOption() {
+        return returningOption;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setReturningOption(XMLReturningType newReturningOption) {
+        XMLReturningType oldReturningOption = returningOption;
+        returningOption = newReturningOption == null ? RETURNING_OPTION_EDEFAULT : newReturningOption;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST__RETURNING_OPTION, oldReturningOption, returningOption));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public EList getForestContentList() {
+        if (forestContentList == null) {
+            forestContentList = new EObjectContainmentWithInverseEList(XMLValueFunctionForestContentItem.class, this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST__FOREST_CONTENT_LIST, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM__VALUE_FUNCTION_FOREST);
+        }
+        return forestContentList;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLNamespacesDeclaration getNamespacesDecl() {
+        return namespacesDecl;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetNamespacesDecl(XMLNamespacesDeclaration newNamespacesDecl, NotificationChain msgs) {
+        XMLNamespacesDeclaration oldNamespacesDecl = namespacesDecl;
+        namespacesDecl = newNamespacesDecl;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST__NAMESPACES_DECL, oldNamespacesDecl, newNamespacesDecl);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setNamespacesDecl(XMLNamespacesDeclaration newNamespacesDecl) {
+        if (newNamespacesDecl != namespacesDecl) {
+            NotificationChain msgs = null;
+            if (namespacesDecl != null)
+                msgs = ((InternalEObject)namespacesDecl).eInverseRemove(this, SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__VALUE_FUNCTION_FOREST, XMLNamespacesDeclaration.class, msgs);
+            if (newNamespacesDecl != null)
+                msgs = ((InternalEObject)newNamespacesDecl).eInverseAdd(this, SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION__VALUE_FUNCTION_FOREST, XMLNamespacesDeclaration.class, msgs);
+            msgs = basicSetNamespacesDecl(newNamespacesDecl, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST__NAMESPACES_DECL, newNamespacesDecl, newNamespacesDecl));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST__FOREST_CONTENT_LIST:
+                return ((InternalEList)getForestContentList()).basicAdd(otherEnd, msgs);
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST__NAMESPACES_DECL:
+                if (namespacesDecl != null)
+                    msgs = ((InternalEObject)namespacesDecl).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST__NAMESPACES_DECL, null, msgs);
+                return basicSetNamespacesDecl((XMLNamespacesDeclaration)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST__FOREST_CONTENT_LIST:
+                return ((InternalEList)getForestContentList()).basicRemove(otherEnd, msgs);
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST__NAMESPACES_DECL:
+                return basicSetNamespacesDecl(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST__NULL_HANDLING_OPTION:
+                return getNullHandlingOption();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST__RETURNING_OPTION:
+                return getReturningOption();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST__FOREST_CONTENT_LIST:
+                return getForestContentList();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST__NAMESPACES_DECL:
+                return getNamespacesDecl();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST__NULL_HANDLING_OPTION:
+                setNullHandlingOption((XMLNullHandlingType)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST__RETURNING_OPTION:
+                setReturningOption((XMLReturningType)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST__FOREST_CONTENT_LIST:
+                getForestContentList().clear();
+                getForestContentList().addAll((Collection)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST__NAMESPACES_DECL:
+                setNamespacesDecl((XMLNamespacesDeclaration)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST__NULL_HANDLING_OPTION:
+                setNullHandlingOption(NULL_HANDLING_OPTION_EDEFAULT);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST__RETURNING_OPTION:
+                setReturningOption(RETURNING_OPTION_EDEFAULT);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST__FOREST_CONTENT_LIST:
+                getForestContentList().clear();
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST__NAMESPACES_DECL:
+                setNamespacesDecl((XMLNamespacesDeclaration)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST__NULL_HANDLING_OPTION:
+                return nullHandlingOption != NULL_HANDLING_OPTION_EDEFAULT;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST__RETURNING_OPTION:
+                return returningOption != RETURNING_OPTION_EDEFAULT;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST__FOREST_CONTENT_LIST:
+                return forestContentList != null && !forestContentList.isEmpty();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST__NAMESPACES_DECL:
+                return namespacesDecl != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (nullHandlingOption: ");
+        result.append(nullHandlingOption);
+        result.append(", returningOption: ");
+        result.append(returningOption);
+        result.append(')');
+        return result.toString();
+    }
+
+} //XMLValueFunctionForestImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionImpl.java
new file mode 100644
index 0000000..a0a05d4
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionImpl.java
@@ -0,0 +1,81 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionImpl.java,v 1.5 2007/02/08 17:04:21 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+
+import org.eclipse.datatools.modelbase.sql.query.impl.ValueExpressionFunctionImpl;
+import org.eclipse.datatools.modelbase.sql.routines.Function;
+
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunction;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Value Function</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class XMLValueFunctionImpl extends ValueExpressionFunctionImpl implements XMLValueFunction {
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLValueFunctionImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_VALUE_FUNCTION;
+    }
+
+} //XMLValueFunctionImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionPIContentImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionPIContentImpl.java
new file mode 100644
index 0000000..7974163
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionPIContentImpl.java
@@ -0,0 +1,292 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionPIContentImpl.java,v 1.4 2008/07/07 19:55:15 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+import org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl;
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionPI;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionPIContent;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Value Function PI Content</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionPIContentImpl#getValueFunctionPI <em>Value Function PI</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionPIContentImpl#getValueExpr <em>Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLValueFunctionPIContentImpl extends QueryValueExpressionImpl implements XMLValueFunctionPIContent {
+	/**
+     * The cached value of the '{@link #getValueExpr() <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getValueExpr()
+     * @generated
+     * @ordered
+     */
+    protected QueryValueExpression valueExpr;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLValueFunctionPIContentImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_VALUE_FUNCTION_PI_CONTENT;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionPI getValueFunctionPI() {
+        if (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PI_CONTENT__VALUE_FUNCTION_PI) return null;
+        return (XMLValueFunctionPI)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetValueFunctionPI(XMLValueFunctionPI newValueFunctionPI, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newValueFunctionPI, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PI_CONTENT__VALUE_FUNCTION_PI, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueFunctionPI(XMLValueFunctionPI newValueFunctionPI) {
+        if (newValueFunctionPI != eInternalContainer() || (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PI_CONTENT__VALUE_FUNCTION_PI && newValueFunctionPI != null)) {
+            if (EcoreUtil.isAncestor(this, newValueFunctionPI))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newValueFunctionPI != null)
+                msgs = ((InternalEObject)newValueFunctionPI).eInverseAdd(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PI__PI_CONTENT, XMLValueFunctionPI.class, msgs);
+            msgs = basicSetValueFunctionPI(newValueFunctionPI, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PI_CONTENT__VALUE_FUNCTION_PI, newValueFunctionPI, newValueFunctionPI));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryValueExpression getValueExpr() {
+        return valueExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetValueExpr(QueryValueExpression newValueExpr, NotificationChain msgs) {
+        QueryValueExpression oldValueExpr = valueExpr;
+        valueExpr = newValueExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PI_CONTENT__VALUE_EXPR, oldValueExpr, newValueExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueExpr(QueryValueExpression newValueExpr) {
+        if (newValueExpr != valueExpr) {
+            NotificationChain msgs = null;
+            if (valueExpr != null)
+                msgs = ((InternalEObject)valueExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PI_CONTENT__VALUE_EXPR, null, msgs);
+            if (newValueExpr != null)
+                msgs = ((InternalEObject)newValueExpr).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PI_CONTENT__VALUE_EXPR, null, msgs);
+            msgs = basicSetValueExpr(newValueExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PI_CONTENT__VALUE_EXPR, newValueExpr, newValueExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PI_CONTENT__VALUE_FUNCTION_PI:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetValueFunctionPI((XMLValueFunctionPI)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PI_CONTENT__VALUE_FUNCTION_PI:
+                return basicSetValueFunctionPI(null, msgs);
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PI_CONTENT__VALUE_EXPR:
+                return basicSetValueExpr(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PI_CONTENT__VALUE_FUNCTION_PI:
+                return eInternalContainer().eInverseRemove(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PI__PI_CONTENT, XMLValueFunctionPI.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PI_CONTENT__VALUE_FUNCTION_PI:
+                return getValueFunctionPI();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PI_CONTENT__VALUE_EXPR:
+                return getValueExpr();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PI_CONTENT__VALUE_FUNCTION_PI:
+                setValueFunctionPI((XMLValueFunctionPI)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PI_CONTENT__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PI_CONTENT__VALUE_FUNCTION_PI:
+                setValueFunctionPI((XMLValueFunctionPI)null);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PI_CONTENT__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PI_CONTENT__VALUE_FUNCTION_PI:
+                return getValueFunctionPI() != null;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PI_CONTENT__VALUE_EXPR:
+                return valueExpr != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //XMLValueFunctionPIContentImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionPIImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionPIImpl.java
new file mode 100644
index 0000000..10afadc
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionPIImpl.java
@@ -0,0 +1,338 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionPIImpl.java,v 1.5 2007/02/08 17:04:21 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+import org.eclipse.datatools.modelbase.sql.routines.Function;
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLReturningType;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionPI;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionPIContent;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Value Function PI</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionPIImpl#getTargetName <em>Target Name</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionPIImpl#getReturningOption <em>Returning Option</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionPIImpl#getPIContent <em>PI Content</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLValueFunctionPIImpl extends XMLValueFunctionImpl implements XMLValueFunctionPI {
+	/**
+     * The default value of the '{@link #getTargetName() <em>Target Name</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getTargetName()
+     * @generated
+     * @ordered
+     */
+    protected static final String TARGET_NAME_EDEFAULT = null;
+
+	/**
+     * The cached value of the '{@link #getTargetName() <em>Target Name</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getTargetName()
+     * @generated
+     * @ordered
+     */
+    protected String targetName = TARGET_NAME_EDEFAULT;
+
+	/**
+     * The default value of the '{@link #getReturningOption() <em>Returning Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getReturningOption()
+     * @generated
+     * @ordered
+     */
+    protected static final XMLReturningType RETURNING_OPTION_EDEFAULT = XMLReturningType.RETURNING_CONTENT_LITERAL;
+
+	/**
+     * The cached value of the '{@link #getReturningOption() <em>Returning Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getReturningOption()
+     * @generated
+     * @ordered
+     */
+    protected XMLReturningType returningOption = RETURNING_OPTION_EDEFAULT;
+
+	/**
+     * The cached value of the '{@link #getPIContent() <em>PI Content</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getPIContent()
+     * @generated
+     * @ordered
+     */
+    protected XMLValueFunctionPIContent piContent;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLValueFunctionPIImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_VALUE_FUNCTION_PI;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String getTargetName() {
+        return targetName;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setTargetName(String newTargetName) {
+        String oldTargetName = targetName;
+        targetName = newTargetName;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PI__TARGET_NAME, oldTargetName, targetName));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLReturningType getReturningOption() {
+        return returningOption;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setReturningOption(XMLReturningType newReturningOption) {
+        XMLReturningType oldReturningOption = returningOption;
+        returningOption = newReturningOption == null ? RETURNING_OPTION_EDEFAULT : newReturningOption;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PI__RETURNING_OPTION, oldReturningOption, returningOption));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionPIContent getPIContent() {
+        return piContent;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetPIContent(XMLValueFunctionPIContent newPIContent, NotificationChain msgs) {
+        XMLValueFunctionPIContent oldPIContent = piContent;
+        piContent = newPIContent;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PI__PI_CONTENT, oldPIContent, newPIContent);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setPIContent(XMLValueFunctionPIContent newPIContent) {
+        if (newPIContent != piContent) {
+            NotificationChain msgs = null;
+            if (piContent != null)
+                msgs = ((InternalEObject)piContent).eInverseRemove(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PI_CONTENT__VALUE_FUNCTION_PI, XMLValueFunctionPIContent.class, msgs);
+            if (newPIContent != null)
+                msgs = ((InternalEObject)newPIContent).eInverseAdd(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PI_CONTENT__VALUE_FUNCTION_PI, XMLValueFunctionPIContent.class, msgs);
+            msgs = basicSetPIContent(newPIContent, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PI__PI_CONTENT, newPIContent, newPIContent));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PI__PI_CONTENT:
+                if (piContent != null)
+                    msgs = ((InternalEObject)piContent).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PI__PI_CONTENT, null, msgs);
+                return basicSetPIContent((XMLValueFunctionPIContent)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PI__PI_CONTENT:
+                return basicSetPIContent(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PI__TARGET_NAME:
+                return getTargetName();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PI__RETURNING_OPTION:
+                return getReturningOption();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PI__PI_CONTENT:
+                return getPIContent();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PI__TARGET_NAME:
+                setTargetName((String)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PI__RETURNING_OPTION:
+                setReturningOption((XMLReturningType)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PI__PI_CONTENT:
+                setPIContent((XMLValueFunctionPIContent)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PI__TARGET_NAME:
+                setTargetName(TARGET_NAME_EDEFAULT);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PI__RETURNING_OPTION:
+                setReturningOption(RETURNING_OPTION_EDEFAULT);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PI__PI_CONTENT:
+                setPIContent((XMLValueFunctionPIContent)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PI__TARGET_NAME:
+                return TARGET_NAME_EDEFAULT == null ? targetName != null : !TARGET_NAME_EDEFAULT.equals(targetName);
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PI__RETURNING_OPTION:
+                return returningOption != RETURNING_OPTION_EDEFAULT;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PI__PI_CONTENT:
+                return piContent != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (targetName: ");
+        result.append(targetName);
+        result.append(", returningOption: ");
+        result.append(returningOption);
+        result.append(')');
+        return result.toString();
+    }
+
+} //XMLValueFunctionPIImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionParseContentImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionParseContentImpl.java
new file mode 100644
index 0000000..f685f54
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionParseContentImpl.java
@@ -0,0 +1,292 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionParseContentImpl.java,v 1.4 2008/07/07 19:55:15 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+import org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl;
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionParse;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionParseContent;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Value Function Parse Content</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionParseContentImpl#getValueFunctionParse <em>Value Function Parse</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionParseContentImpl#getValueExpr <em>Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLValueFunctionParseContentImpl extends QueryValueExpressionImpl implements XMLValueFunctionParseContent {
+	/**
+     * The cached value of the '{@link #getValueExpr() <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getValueExpr()
+     * @generated
+     * @ordered
+     */
+    protected QueryValueExpression valueExpr;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLValueFunctionParseContentImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_VALUE_FUNCTION_PARSE_CONTENT;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionParse getValueFunctionParse() {
+        if (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PARSE_CONTENT__VALUE_FUNCTION_PARSE) return null;
+        return (XMLValueFunctionParse)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetValueFunctionParse(XMLValueFunctionParse newValueFunctionParse, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newValueFunctionParse, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PARSE_CONTENT__VALUE_FUNCTION_PARSE, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueFunctionParse(XMLValueFunctionParse newValueFunctionParse) {
+        if (newValueFunctionParse != eInternalContainer() || (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PARSE_CONTENT__VALUE_FUNCTION_PARSE && newValueFunctionParse != null)) {
+            if (EcoreUtil.isAncestor(this, newValueFunctionParse))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newValueFunctionParse != null)
+                msgs = ((InternalEObject)newValueFunctionParse).eInverseAdd(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PARSE__PARSE_CONTENT, XMLValueFunctionParse.class, msgs);
+            msgs = basicSetValueFunctionParse(newValueFunctionParse, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PARSE_CONTENT__VALUE_FUNCTION_PARSE, newValueFunctionParse, newValueFunctionParse));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryValueExpression getValueExpr() {
+        return valueExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetValueExpr(QueryValueExpression newValueExpr, NotificationChain msgs) {
+        QueryValueExpression oldValueExpr = valueExpr;
+        valueExpr = newValueExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PARSE_CONTENT__VALUE_EXPR, oldValueExpr, newValueExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueExpr(QueryValueExpression newValueExpr) {
+        if (newValueExpr != valueExpr) {
+            NotificationChain msgs = null;
+            if (valueExpr != null)
+                msgs = ((InternalEObject)valueExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PARSE_CONTENT__VALUE_EXPR, null, msgs);
+            if (newValueExpr != null)
+                msgs = ((InternalEObject)newValueExpr).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PARSE_CONTENT__VALUE_EXPR, null, msgs);
+            msgs = basicSetValueExpr(newValueExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PARSE_CONTENT__VALUE_EXPR, newValueExpr, newValueExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PARSE_CONTENT__VALUE_FUNCTION_PARSE:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetValueFunctionParse((XMLValueFunctionParse)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PARSE_CONTENT__VALUE_FUNCTION_PARSE:
+                return basicSetValueFunctionParse(null, msgs);
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PARSE_CONTENT__VALUE_EXPR:
+                return basicSetValueExpr(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PARSE_CONTENT__VALUE_FUNCTION_PARSE:
+                return eInternalContainer().eInverseRemove(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PARSE__PARSE_CONTENT, XMLValueFunctionParse.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PARSE_CONTENT__VALUE_FUNCTION_PARSE:
+                return getValueFunctionParse();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PARSE_CONTENT__VALUE_EXPR:
+                return getValueExpr();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PARSE_CONTENT__VALUE_FUNCTION_PARSE:
+                setValueFunctionParse((XMLValueFunctionParse)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PARSE_CONTENT__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PARSE_CONTENT__VALUE_FUNCTION_PARSE:
+                setValueFunctionParse((XMLValueFunctionParse)null);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PARSE_CONTENT__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PARSE_CONTENT__VALUE_FUNCTION_PARSE:
+                return getValueFunctionParse() != null;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PARSE_CONTENT__VALUE_EXPR:
+                return valueExpr != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //XMLValueFunctionParseContentImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionParseImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionParseImpl.java
new file mode 100644
index 0000000..0f8343f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionParseImpl.java
@@ -0,0 +1,339 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionParseImpl.java,v 1.5 2007/02/08 17:04:21 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+import org.eclipse.datatools.modelbase.sql.routines.Function;
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLContentType;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionParse;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionParseContent;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLWhitespaceHandlingType;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Value Function Parse</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionParseImpl#getContentOption <em>Content Option</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionParseImpl#getWhitespaceHandlingOption <em>Whitespace Handling Option</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionParseImpl#getParseContent <em>Parse Content</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLValueFunctionParseImpl extends XMLValueFunctionImpl implements XMLValueFunctionParse {
+	/**
+     * The default value of the '{@link #getContentOption() <em>Content Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getContentOption()
+     * @generated
+     * @ordered
+     */
+    protected static final XMLContentType CONTENT_OPTION_EDEFAULT = XMLContentType.CONTENT_LITERAL;
+
+	/**
+     * The cached value of the '{@link #getContentOption() <em>Content Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getContentOption()
+     * @generated
+     * @ordered
+     */
+    protected XMLContentType contentOption = CONTENT_OPTION_EDEFAULT;
+
+	/**
+     * The default value of the '{@link #getWhitespaceHandlingOption() <em>Whitespace Handling Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getWhitespaceHandlingOption()
+     * @generated
+     * @ordered
+     */
+    protected static final XMLWhitespaceHandlingType WHITESPACE_HANDLING_OPTION_EDEFAULT = XMLWhitespaceHandlingType.PRESERE_WHITESPACE_LITERAL;
+
+	/**
+     * The cached value of the '{@link #getWhitespaceHandlingOption() <em>Whitespace Handling Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getWhitespaceHandlingOption()
+     * @generated
+     * @ordered
+     */
+    protected XMLWhitespaceHandlingType whitespaceHandlingOption = WHITESPACE_HANDLING_OPTION_EDEFAULT;
+
+	/**
+     * The cached value of the '{@link #getParseContent() <em>Parse Content</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getParseContent()
+     * @generated
+     * @ordered
+     */
+    protected XMLValueFunctionParseContent parseContent;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLValueFunctionParseImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_VALUE_FUNCTION_PARSE;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLContentType getContentOption() {
+        return contentOption;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setContentOption(XMLContentType newContentOption) {
+        XMLContentType oldContentOption = contentOption;
+        contentOption = newContentOption == null ? CONTENT_OPTION_EDEFAULT : newContentOption;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PARSE__CONTENT_OPTION, oldContentOption, contentOption));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLWhitespaceHandlingType getWhitespaceHandlingOption() {
+        return whitespaceHandlingOption;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setWhitespaceHandlingOption(XMLWhitespaceHandlingType newWhitespaceHandlingOption) {
+        XMLWhitespaceHandlingType oldWhitespaceHandlingOption = whitespaceHandlingOption;
+        whitespaceHandlingOption = newWhitespaceHandlingOption == null ? WHITESPACE_HANDLING_OPTION_EDEFAULT : newWhitespaceHandlingOption;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PARSE__WHITESPACE_HANDLING_OPTION, oldWhitespaceHandlingOption, whitespaceHandlingOption));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionParseContent getParseContent() {
+        return parseContent;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetParseContent(XMLValueFunctionParseContent newParseContent, NotificationChain msgs) {
+        XMLValueFunctionParseContent oldParseContent = parseContent;
+        parseContent = newParseContent;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PARSE__PARSE_CONTENT, oldParseContent, newParseContent);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setParseContent(XMLValueFunctionParseContent newParseContent) {
+        if (newParseContent != parseContent) {
+            NotificationChain msgs = null;
+            if (parseContent != null)
+                msgs = ((InternalEObject)parseContent).eInverseRemove(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PARSE_CONTENT__VALUE_FUNCTION_PARSE, XMLValueFunctionParseContent.class, msgs);
+            if (newParseContent != null)
+                msgs = ((InternalEObject)newParseContent).eInverseAdd(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PARSE_CONTENT__VALUE_FUNCTION_PARSE, XMLValueFunctionParseContent.class, msgs);
+            msgs = basicSetParseContent(newParseContent, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PARSE__PARSE_CONTENT, newParseContent, newParseContent));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PARSE__PARSE_CONTENT:
+                if (parseContent != null)
+                    msgs = ((InternalEObject)parseContent).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PARSE__PARSE_CONTENT, null, msgs);
+                return basicSetParseContent((XMLValueFunctionParseContent)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PARSE__PARSE_CONTENT:
+                return basicSetParseContent(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PARSE__CONTENT_OPTION:
+                return getContentOption();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PARSE__WHITESPACE_HANDLING_OPTION:
+                return getWhitespaceHandlingOption();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PARSE__PARSE_CONTENT:
+                return getParseContent();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PARSE__CONTENT_OPTION:
+                setContentOption((XMLContentType)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PARSE__WHITESPACE_HANDLING_OPTION:
+                setWhitespaceHandlingOption((XMLWhitespaceHandlingType)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PARSE__PARSE_CONTENT:
+                setParseContent((XMLValueFunctionParseContent)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PARSE__CONTENT_OPTION:
+                setContentOption(CONTENT_OPTION_EDEFAULT);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PARSE__WHITESPACE_HANDLING_OPTION:
+                setWhitespaceHandlingOption(WHITESPACE_HANDLING_OPTION_EDEFAULT);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PARSE__PARSE_CONTENT:
+                setParseContent((XMLValueFunctionParseContent)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PARSE__CONTENT_OPTION:
+                return contentOption != CONTENT_OPTION_EDEFAULT;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PARSE__WHITESPACE_HANDLING_OPTION:
+                return whitespaceHandlingOption != WHITESPACE_HANDLING_OPTION_EDEFAULT;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PARSE__PARSE_CONTENT:
+                return parseContent != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (contentOption: ");
+        result.append(contentOption);
+        result.append(", whitespaceHandlingOption: ");
+        result.append(whitespaceHandlingOption);
+        result.append(')');
+        return result.toString();
+    }
+
+} //XMLValueFunctionParseImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionQueryImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionQueryImpl.java
new file mode 100644
index 0000000..4a430ab
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionQueryImpl.java
@@ -0,0 +1,426 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionQueryImpl.java,v 1.5 2007/02/08 17:04:21 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+import org.eclipse.datatools.modelbase.sql.routines.Function;
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLEmptyHandlingType;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentList;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryExpression;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQuery;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQueryReturning;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Value Function Query</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionQueryImpl#getEmptyHandlingOption <em>Empty Handling Option</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionQueryImpl#getXqueryExpr <em>Xquery Expr</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionQueryImpl#getXqueryArgList <em>Xquery Arg List</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionQueryImpl#getQueryReturning <em>Query Returning</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLValueFunctionQueryImpl extends XMLValueFunctionImpl implements XMLValueFunctionQuery {
+	/**
+     * The default value of the '{@link #getEmptyHandlingOption() <em>Empty Handling Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getEmptyHandlingOption()
+     * @generated
+     * @ordered
+     */
+    protected static final XMLEmptyHandlingType EMPTY_HANDLING_OPTION_EDEFAULT = XMLEmptyHandlingType.EMPTY_ON_EMPTY_LITERAL;
+
+	/**
+     * The cached value of the '{@link #getEmptyHandlingOption() <em>Empty Handling Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getEmptyHandlingOption()
+     * @generated
+     * @ordered
+     */
+    protected XMLEmptyHandlingType emptyHandlingOption = EMPTY_HANDLING_OPTION_EDEFAULT;
+
+	/**
+     * The cached value of the '{@link #getXqueryExpr() <em>Xquery Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getXqueryExpr()
+     * @generated
+     * @ordered
+     */
+    protected XMLQueryExpression xqueryExpr;
+
+	/**
+     * The cached value of the '{@link #getXqueryArgList() <em>Xquery Arg List</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getXqueryArgList()
+     * @generated
+     * @ordered
+     */
+    protected XMLQueryArgumentList xqueryArgList;
+
+	/**
+     * The cached value of the '{@link #getQueryReturning() <em>Query Returning</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getQueryReturning()
+     * @generated
+     * @ordered
+     */
+    protected XMLValueFunctionQueryReturning queryReturning;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLValueFunctionQueryImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_VALUE_FUNCTION_QUERY;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLEmptyHandlingType getEmptyHandlingOption() {
+        return emptyHandlingOption;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setEmptyHandlingOption(XMLEmptyHandlingType newEmptyHandlingOption) {
+        XMLEmptyHandlingType oldEmptyHandlingOption = emptyHandlingOption;
+        emptyHandlingOption = newEmptyHandlingOption == null ? EMPTY_HANDLING_OPTION_EDEFAULT : newEmptyHandlingOption;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY__EMPTY_HANDLING_OPTION, oldEmptyHandlingOption, emptyHandlingOption));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLQueryExpression getXqueryExpr() {
+        return xqueryExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetXqueryExpr(XMLQueryExpression newXqueryExpr, NotificationChain msgs) {
+        XMLQueryExpression oldXqueryExpr = xqueryExpr;
+        xqueryExpr = newXqueryExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY__XQUERY_EXPR, oldXqueryExpr, newXqueryExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setXqueryExpr(XMLQueryExpression newXqueryExpr) {
+        if (newXqueryExpr != xqueryExpr) {
+            NotificationChain msgs = null;
+            if (xqueryExpr != null)
+                msgs = ((InternalEObject)xqueryExpr).eInverseRemove(this, SQLXMLQueryModelPackage.XML_QUERY_EXPRESSION__VALUE_FUNCTION_QUERY, XMLQueryExpression.class, msgs);
+            if (newXqueryExpr != null)
+                msgs = ((InternalEObject)newXqueryExpr).eInverseAdd(this, SQLXMLQueryModelPackage.XML_QUERY_EXPRESSION__VALUE_FUNCTION_QUERY, XMLQueryExpression.class, msgs);
+            msgs = basicSetXqueryExpr(newXqueryExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY__XQUERY_EXPR, newXqueryExpr, newXqueryExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLQueryArgumentList getXqueryArgList() {
+        return xqueryArgList;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetXqueryArgList(XMLQueryArgumentList newXqueryArgList, NotificationChain msgs) {
+        XMLQueryArgumentList oldXqueryArgList = xqueryArgList;
+        xqueryArgList = newXqueryArgList;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY__XQUERY_ARG_LIST, oldXqueryArgList, newXqueryArgList);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setXqueryArgList(XMLQueryArgumentList newXqueryArgList) {
+        if (newXqueryArgList != xqueryArgList) {
+            NotificationChain msgs = null;
+            if (xqueryArgList != null)
+                msgs = ((InternalEObject)xqueryArgList).eInverseRemove(this, SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__VALUE_FUNCTION_QUERY, XMLQueryArgumentList.class, msgs);
+            if (newXqueryArgList != null)
+                msgs = ((InternalEObject)newXqueryArgList).eInverseAdd(this, SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST__VALUE_FUNCTION_QUERY, XMLQueryArgumentList.class, msgs);
+            msgs = basicSetXqueryArgList(newXqueryArgList, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY__XQUERY_ARG_LIST, newXqueryArgList, newXqueryArgList));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionQueryReturning getQueryReturning() {
+        return queryReturning;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetQueryReturning(XMLValueFunctionQueryReturning newQueryReturning, NotificationChain msgs) {
+        XMLValueFunctionQueryReturning oldQueryReturning = queryReturning;
+        queryReturning = newQueryReturning;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY__QUERY_RETURNING, oldQueryReturning, newQueryReturning);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setQueryReturning(XMLValueFunctionQueryReturning newQueryReturning) {
+        if (newQueryReturning != queryReturning) {
+            NotificationChain msgs = null;
+            if (queryReturning != null)
+                msgs = ((InternalEObject)queryReturning).eInverseRemove(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY_RETURNING__VALUE_FUNCTION_QUERY, XMLValueFunctionQueryReturning.class, msgs);
+            if (newQueryReturning != null)
+                msgs = ((InternalEObject)newQueryReturning).eInverseAdd(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY_RETURNING__VALUE_FUNCTION_QUERY, XMLValueFunctionQueryReturning.class, msgs);
+            msgs = basicSetQueryReturning(newQueryReturning, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY__QUERY_RETURNING, newQueryReturning, newQueryReturning));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY__XQUERY_EXPR:
+                if (xqueryExpr != null)
+                    msgs = ((InternalEObject)xqueryExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY__XQUERY_EXPR, null, msgs);
+                return basicSetXqueryExpr((XMLQueryExpression)otherEnd, msgs);
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY__XQUERY_ARG_LIST:
+                if (xqueryArgList != null)
+                    msgs = ((InternalEObject)xqueryArgList).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY__XQUERY_ARG_LIST, null, msgs);
+                return basicSetXqueryArgList((XMLQueryArgumentList)otherEnd, msgs);
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY__QUERY_RETURNING:
+                if (queryReturning != null)
+                    msgs = ((InternalEObject)queryReturning).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY__QUERY_RETURNING, null, msgs);
+                return basicSetQueryReturning((XMLValueFunctionQueryReturning)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY__XQUERY_EXPR:
+                return basicSetXqueryExpr(null, msgs);
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY__XQUERY_ARG_LIST:
+                return basicSetXqueryArgList(null, msgs);
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY__QUERY_RETURNING:
+                return basicSetQueryReturning(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY__EMPTY_HANDLING_OPTION:
+                return getEmptyHandlingOption();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY__XQUERY_EXPR:
+                return getXqueryExpr();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY__XQUERY_ARG_LIST:
+                return getXqueryArgList();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY__QUERY_RETURNING:
+                return getQueryReturning();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY__EMPTY_HANDLING_OPTION:
+                setEmptyHandlingOption((XMLEmptyHandlingType)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY__XQUERY_EXPR:
+                setXqueryExpr((XMLQueryExpression)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY__XQUERY_ARG_LIST:
+                setXqueryArgList((XMLQueryArgumentList)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY__QUERY_RETURNING:
+                setQueryReturning((XMLValueFunctionQueryReturning)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY__EMPTY_HANDLING_OPTION:
+                setEmptyHandlingOption(EMPTY_HANDLING_OPTION_EDEFAULT);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY__XQUERY_EXPR:
+                setXqueryExpr((XMLQueryExpression)null);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY__XQUERY_ARG_LIST:
+                setXqueryArgList((XMLQueryArgumentList)null);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY__QUERY_RETURNING:
+                setQueryReturning((XMLValueFunctionQueryReturning)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY__EMPTY_HANDLING_OPTION:
+                return emptyHandlingOption != EMPTY_HANDLING_OPTION_EDEFAULT;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY__XQUERY_EXPR:
+                return xqueryExpr != null;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY__XQUERY_ARG_LIST:
+                return xqueryArgList != null;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY__QUERY_RETURNING:
+                return queryReturning != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (emptyHandlingOption: ");
+        result.append(emptyHandlingOption);
+        result.append(')');
+        return result.toString();
+    }
+
+} //XMLValueFunctionQueryImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionQueryReturningImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionQueryReturningImpl.java
new file mode 100644
index 0000000..a18e14d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionQueryReturningImpl.java
@@ -0,0 +1,320 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionQueryReturningImpl.java,v 1.4 2008/07/07 19:55:15 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryObjectImpl;
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLPassingType;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLReturningType;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQuery;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQueryReturning;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Value Function Query Returning</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionQueryReturningImpl#getReturningOption <em>Returning Option</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionQueryReturningImpl#getPassingOption <em>Passing Option</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionQueryReturningImpl#getValueFunctionQuery <em>Value Function Query</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLValueFunctionQueryReturningImpl extends SQLQueryObjectImpl implements XMLValueFunctionQueryReturning {
+	/**
+     * The default value of the '{@link #getReturningOption() <em>Returning Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getReturningOption()
+     * @generated
+     * @ordered
+     */
+    protected static final XMLReturningType RETURNING_OPTION_EDEFAULT = XMLReturningType.RETURNING_CONTENT_LITERAL;
+
+	/**
+     * The cached value of the '{@link #getReturningOption() <em>Returning Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getReturningOption()
+     * @generated
+     * @ordered
+     */
+    protected XMLReturningType returningOption = RETURNING_OPTION_EDEFAULT;
+
+	/**
+     * The default value of the '{@link #getPassingOption() <em>Passing Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getPassingOption()
+     * @generated
+     * @ordered
+     */
+    protected static final XMLPassingType PASSING_OPTION_EDEFAULT = XMLPassingType.BY_REF_LITERAL;
+
+	/**
+     * The cached value of the '{@link #getPassingOption() <em>Passing Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getPassingOption()
+     * @generated
+     * @ordered
+     */
+    protected XMLPassingType passingOption = PASSING_OPTION_EDEFAULT;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLValueFunctionQueryReturningImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_VALUE_FUNCTION_QUERY_RETURNING;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLReturningType getReturningOption() {
+        return returningOption;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setReturningOption(XMLReturningType newReturningOption) {
+        XMLReturningType oldReturningOption = returningOption;
+        returningOption = newReturningOption == null ? RETURNING_OPTION_EDEFAULT : newReturningOption;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY_RETURNING__RETURNING_OPTION, oldReturningOption, returningOption));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLPassingType getPassingOption() {
+        return passingOption;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setPassingOption(XMLPassingType newPassingOption) {
+        XMLPassingType oldPassingOption = passingOption;
+        passingOption = newPassingOption == null ? PASSING_OPTION_EDEFAULT : newPassingOption;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY_RETURNING__PASSING_OPTION, oldPassingOption, passingOption));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionQuery getValueFunctionQuery() {
+        if (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY_RETURNING__VALUE_FUNCTION_QUERY) return null;
+        return (XMLValueFunctionQuery)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetValueFunctionQuery(XMLValueFunctionQuery newValueFunctionQuery, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newValueFunctionQuery, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY_RETURNING__VALUE_FUNCTION_QUERY, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueFunctionQuery(XMLValueFunctionQuery newValueFunctionQuery) {
+        if (newValueFunctionQuery != eInternalContainer() || (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY_RETURNING__VALUE_FUNCTION_QUERY && newValueFunctionQuery != null)) {
+            if (EcoreUtil.isAncestor(this, newValueFunctionQuery))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newValueFunctionQuery != null)
+                msgs = ((InternalEObject)newValueFunctionQuery).eInverseAdd(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY__QUERY_RETURNING, XMLValueFunctionQuery.class, msgs);
+            msgs = basicSetValueFunctionQuery(newValueFunctionQuery, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY_RETURNING__VALUE_FUNCTION_QUERY, newValueFunctionQuery, newValueFunctionQuery));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY_RETURNING__VALUE_FUNCTION_QUERY:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetValueFunctionQuery((XMLValueFunctionQuery)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY_RETURNING__VALUE_FUNCTION_QUERY:
+                return basicSetValueFunctionQuery(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY_RETURNING__VALUE_FUNCTION_QUERY:
+                return eInternalContainer().eInverseRemove(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY__QUERY_RETURNING, XMLValueFunctionQuery.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY_RETURNING__RETURNING_OPTION:
+                return getReturningOption();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY_RETURNING__PASSING_OPTION:
+                return getPassingOption();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY_RETURNING__VALUE_FUNCTION_QUERY:
+                return getValueFunctionQuery();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY_RETURNING__RETURNING_OPTION:
+                setReturningOption((XMLReturningType)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY_RETURNING__PASSING_OPTION:
+                setPassingOption((XMLPassingType)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY_RETURNING__VALUE_FUNCTION_QUERY:
+                setValueFunctionQuery((XMLValueFunctionQuery)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY_RETURNING__RETURNING_OPTION:
+                setReturningOption(RETURNING_OPTION_EDEFAULT);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY_RETURNING__PASSING_OPTION:
+                setPassingOption(PASSING_OPTION_EDEFAULT);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY_RETURNING__VALUE_FUNCTION_QUERY:
+                setValueFunctionQuery((XMLValueFunctionQuery)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY_RETURNING__RETURNING_OPTION:
+                return returningOption != RETURNING_OPTION_EDEFAULT;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY_RETURNING__PASSING_OPTION:
+                return passingOption != PASSING_OPTION_EDEFAULT;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY_RETURNING__VALUE_FUNCTION_QUERY:
+                return getValueFunctionQuery() != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (returningOption: ");
+        result.append(returningOption);
+        result.append(", passingOption: ");
+        result.append(passingOption);
+        result.append(')');
+        return result.toString();
+    }
+
+} //XMLValueFunctionQueryReturningImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionTextContentImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionTextContentImpl.java
new file mode 100644
index 0000000..6c612d0
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionTextContentImpl.java
@@ -0,0 +1,292 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionTextContentImpl.java,v 1.4 2008/07/07 19:55:15 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+import org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl;
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionText;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionTextContent;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Value Function Text Content</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionTextContentImpl#getValueFunctionText <em>Value Function Text</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionTextContentImpl#getValueExpr <em>Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLValueFunctionTextContentImpl extends QueryValueExpressionImpl implements XMLValueFunctionTextContent {
+	/**
+     * The cached value of the '{@link #getValueExpr() <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getValueExpr()
+     * @generated
+     * @ordered
+     */
+    protected QueryValueExpression valueExpr;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLValueFunctionTextContentImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_VALUE_FUNCTION_TEXT_CONTENT;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionText getValueFunctionText() {
+        if (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_TEXT_CONTENT__VALUE_FUNCTION_TEXT) return null;
+        return (XMLValueFunctionText)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetValueFunctionText(XMLValueFunctionText newValueFunctionText, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newValueFunctionText, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_TEXT_CONTENT__VALUE_FUNCTION_TEXT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueFunctionText(XMLValueFunctionText newValueFunctionText) {
+        if (newValueFunctionText != eInternalContainer() || (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_TEXT_CONTENT__VALUE_FUNCTION_TEXT && newValueFunctionText != null)) {
+            if (EcoreUtil.isAncestor(this, newValueFunctionText))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newValueFunctionText != null)
+                msgs = ((InternalEObject)newValueFunctionText).eInverseAdd(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_TEXT__TEXT_CONTENT, XMLValueFunctionText.class, msgs);
+            msgs = basicSetValueFunctionText(newValueFunctionText, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_TEXT_CONTENT__VALUE_FUNCTION_TEXT, newValueFunctionText, newValueFunctionText));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryValueExpression getValueExpr() {
+        return valueExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetValueExpr(QueryValueExpression newValueExpr, NotificationChain msgs) {
+        QueryValueExpression oldValueExpr = valueExpr;
+        valueExpr = newValueExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_TEXT_CONTENT__VALUE_EXPR, oldValueExpr, newValueExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueExpr(QueryValueExpression newValueExpr) {
+        if (newValueExpr != valueExpr) {
+            NotificationChain msgs = null;
+            if (valueExpr != null)
+                msgs = ((InternalEObject)valueExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_TEXT_CONTENT__VALUE_EXPR, null, msgs);
+            if (newValueExpr != null)
+                msgs = ((InternalEObject)newValueExpr).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_TEXT_CONTENT__VALUE_EXPR, null, msgs);
+            msgs = basicSetValueExpr(newValueExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_TEXT_CONTENT__VALUE_EXPR, newValueExpr, newValueExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_TEXT_CONTENT__VALUE_FUNCTION_TEXT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetValueFunctionText((XMLValueFunctionText)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_TEXT_CONTENT__VALUE_FUNCTION_TEXT:
+                return basicSetValueFunctionText(null, msgs);
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_TEXT_CONTENT__VALUE_EXPR:
+                return basicSetValueExpr(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_TEXT_CONTENT__VALUE_FUNCTION_TEXT:
+                return eInternalContainer().eInverseRemove(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_TEXT__TEXT_CONTENT, XMLValueFunctionText.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_TEXT_CONTENT__VALUE_FUNCTION_TEXT:
+                return getValueFunctionText();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_TEXT_CONTENT__VALUE_EXPR:
+                return getValueExpr();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_TEXT_CONTENT__VALUE_FUNCTION_TEXT:
+                setValueFunctionText((XMLValueFunctionText)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_TEXT_CONTENT__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_TEXT_CONTENT__VALUE_FUNCTION_TEXT:
+                setValueFunctionText((XMLValueFunctionText)null);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_TEXT_CONTENT__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_TEXT_CONTENT__VALUE_FUNCTION_TEXT:
+                return getValueFunctionText() != null;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_TEXT_CONTENT__VALUE_EXPR:
+                return valueExpr != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //XMLValueFunctionTextContentImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionTextImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionTextImpl.java
new file mode 100644
index 0000000..5780650
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionTextImpl.java
@@ -0,0 +1,284 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionTextImpl.java,v 1.5 2007/02/08 17:04:21 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+import org.eclipse.datatools.modelbase.sql.routines.Function;
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLReturningType;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionText;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionTextContent;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Value Function Text</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionTextImpl#getReturningOption <em>Returning Option</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionTextImpl#getTextContent <em>Text Content</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLValueFunctionTextImpl extends XMLValueFunctionImpl implements XMLValueFunctionText {
+	/**
+     * The default value of the '{@link #getReturningOption() <em>Returning Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getReturningOption()
+     * @generated
+     * @ordered
+     */
+    protected static final XMLReturningType RETURNING_OPTION_EDEFAULT = XMLReturningType.RETURNING_CONTENT_LITERAL;
+
+	/**
+     * The cached value of the '{@link #getReturningOption() <em>Returning Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getReturningOption()
+     * @generated
+     * @ordered
+     */
+    protected XMLReturningType returningOption = RETURNING_OPTION_EDEFAULT;
+
+	/**
+     * The cached value of the '{@link #getTextContent() <em>Text Content</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getTextContent()
+     * @generated
+     * @ordered
+     */
+    protected XMLValueFunctionTextContent textContent;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLValueFunctionTextImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_VALUE_FUNCTION_TEXT;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLReturningType getReturningOption() {
+        return returningOption;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setReturningOption(XMLReturningType newReturningOption) {
+        XMLReturningType oldReturningOption = returningOption;
+        returningOption = newReturningOption == null ? RETURNING_OPTION_EDEFAULT : newReturningOption;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_TEXT__RETURNING_OPTION, oldReturningOption, returningOption));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionTextContent getTextContent() {
+        return textContent;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetTextContent(XMLValueFunctionTextContent newTextContent, NotificationChain msgs) {
+        XMLValueFunctionTextContent oldTextContent = textContent;
+        textContent = newTextContent;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_TEXT__TEXT_CONTENT, oldTextContent, newTextContent);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setTextContent(XMLValueFunctionTextContent newTextContent) {
+        if (newTextContent != textContent) {
+            NotificationChain msgs = null;
+            if (textContent != null)
+                msgs = ((InternalEObject)textContent).eInverseRemove(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_TEXT_CONTENT__VALUE_FUNCTION_TEXT, XMLValueFunctionTextContent.class, msgs);
+            if (newTextContent != null)
+                msgs = ((InternalEObject)newTextContent).eInverseAdd(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_TEXT_CONTENT__VALUE_FUNCTION_TEXT, XMLValueFunctionTextContent.class, msgs);
+            msgs = basicSetTextContent(newTextContent, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_TEXT__TEXT_CONTENT, newTextContent, newTextContent));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_TEXT__TEXT_CONTENT:
+                if (textContent != null)
+                    msgs = ((InternalEObject)textContent).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_TEXT__TEXT_CONTENT, null, msgs);
+                return basicSetTextContent((XMLValueFunctionTextContent)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_TEXT__TEXT_CONTENT:
+                return basicSetTextContent(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_TEXT__RETURNING_OPTION:
+                return getReturningOption();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_TEXT__TEXT_CONTENT:
+                return getTextContent();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_TEXT__RETURNING_OPTION:
+                setReturningOption((XMLReturningType)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_TEXT__TEXT_CONTENT:
+                setTextContent((XMLValueFunctionTextContent)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_TEXT__RETURNING_OPTION:
+                setReturningOption(RETURNING_OPTION_EDEFAULT);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_TEXT__TEXT_CONTENT:
+                setTextContent((XMLValueFunctionTextContent)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_TEXT__RETURNING_OPTION:
+                return returningOption != RETURNING_OPTION_EDEFAULT;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_TEXT__TEXT_CONTENT:
+                return textContent != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (returningOption: ");
+        result.append(returningOption);
+        result.append(')');
+        return result.toString();
+    }
+
+} //XMLValueFunctionTextImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionValidateAccordingToIdentifierImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionValidateAccordingToIdentifierImpl.java
new file mode 100644
index 0000000..b1da839
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionValidateAccordingToIdentifierImpl.java
@@ -0,0 +1,222 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionValidateAccordingToIdentifierImpl.java,v 1.5 2007/02/08 17:04:21 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidate;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingToIdentifier;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElement;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Value Function Validate According To Identifier</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateAccordingToIdentifierImpl#getSchemaName <em>Schema Name</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateAccordingToIdentifierImpl#getRegisteredXMLSchemaName <em>Registered XML Schema Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLValueFunctionValidateAccordingToIdentifierImpl extends XMLValueFunctionValidateAccordingToImpl implements XMLValueFunctionValidateAccordingToIdentifier {
+	/**
+     * The default value of the '{@link #getSchemaName() <em>Schema Name</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getSchemaName()
+     * @generated
+     * @ordered
+     */
+    protected static final String SCHEMA_NAME_EDEFAULT = null;
+
+	/**
+     * The cached value of the '{@link #getSchemaName() <em>Schema Name</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getSchemaName()
+     * @generated
+     * @ordered
+     */
+    protected String schemaName = SCHEMA_NAME_EDEFAULT;
+
+	/**
+     * The default value of the '{@link #getRegisteredXMLSchemaName() <em>Registered XML Schema Name</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getRegisteredXMLSchemaName()
+     * @generated
+     * @ordered
+     */
+    protected static final String REGISTERED_XML_SCHEMA_NAME_EDEFAULT = null;
+
+	/**
+     * The cached value of the '{@link #getRegisteredXMLSchemaName() <em>Registered XML Schema Name</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getRegisteredXMLSchemaName()
+     * @generated
+     * @ordered
+     */
+    protected String registeredXMLSchemaName = REGISTERED_XML_SCHEMA_NAME_EDEFAULT;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLValueFunctionValidateAccordingToIdentifierImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_IDENTIFIER;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String getSchemaName() {
+        return schemaName;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setSchemaName(String newSchemaName) {
+        String oldSchemaName = schemaName;
+        schemaName = newSchemaName;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_IDENTIFIER__SCHEMA_NAME, oldSchemaName, schemaName));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String getRegisteredXMLSchemaName() {
+        return registeredXMLSchemaName;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setRegisteredXMLSchemaName(String newRegisteredXMLSchemaName) {
+        String oldRegisteredXMLSchemaName = registeredXMLSchemaName;
+        registeredXMLSchemaName = newRegisteredXMLSchemaName;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_IDENTIFIER__REGISTERED_XML_SCHEMA_NAME, oldRegisteredXMLSchemaName, registeredXMLSchemaName));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_IDENTIFIER__SCHEMA_NAME:
+                return getSchemaName();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_IDENTIFIER__REGISTERED_XML_SCHEMA_NAME:
+                return getRegisteredXMLSchemaName();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_IDENTIFIER__SCHEMA_NAME:
+                setSchemaName((String)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_IDENTIFIER__REGISTERED_XML_SCHEMA_NAME:
+                setRegisteredXMLSchemaName((String)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_IDENTIFIER__SCHEMA_NAME:
+                setSchemaName(SCHEMA_NAME_EDEFAULT);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_IDENTIFIER__REGISTERED_XML_SCHEMA_NAME:
+                setRegisteredXMLSchemaName(REGISTERED_XML_SCHEMA_NAME_EDEFAULT);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_IDENTIFIER__SCHEMA_NAME:
+                return SCHEMA_NAME_EDEFAULT == null ? schemaName != null : !SCHEMA_NAME_EDEFAULT.equals(schemaName);
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_IDENTIFIER__REGISTERED_XML_SCHEMA_NAME:
+                return REGISTERED_XML_SCHEMA_NAME_EDEFAULT == null ? registeredXMLSchemaName != null : !REGISTERED_XML_SCHEMA_NAME_EDEFAULT.equals(registeredXMLSchemaName);
+        }
+        return super.eIsSet(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (schemaName: ");
+        result.append(schemaName);
+        result.append(", registeredXMLSchemaName: ");
+        result.append(registeredXMLSchemaName);
+        result.append(')');
+        return result.toString();
+    }
+
+} //XMLValueFunctionValidateAccordingToIdentifierImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionValidateAccordingToImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionValidateAccordingToImpl.java
new file mode 100644
index 0000000..e191cd3
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionValidateAccordingToImpl.java
@@ -0,0 +1,263 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionValidateAccordingToImpl.java,v 1.5 2008/07/07 19:55:14 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryObjectImpl;
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidate;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingTo;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElement;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Value Function Validate According To</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateAccordingToImpl#getValueFunctionValidate <em>Value Function Validate</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateAccordingToImpl#getValidateElement <em>Validate Element</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLValueFunctionValidateAccordingToImpl extends SQLQueryObjectImpl implements XMLValueFunctionValidateAccordingTo {
+	/**
+     * The cached value of the '{@link #getValidateElement() <em>Validate Element</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getValidateElement()
+     * @generated
+     * @ordered
+     */
+    protected XMLValueFunctionValidateElement validateElement;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLValueFunctionValidateAccordingToImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionValidate getValueFunctionValidate() {
+        if (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__VALUE_FUNCTION_VALIDATE) return null;
+        return (XMLValueFunctionValidate)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetValueFunctionValidate(XMLValueFunctionValidate newValueFunctionValidate, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newValueFunctionValidate, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__VALUE_FUNCTION_VALIDATE, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueFunctionValidate(XMLValueFunctionValidate newValueFunctionValidate) {
+        if (newValueFunctionValidate != eInternalContainer() || (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__VALUE_FUNCTION_VALIDATE && newValueFunctionValidate != null)) {
+            if (EcoreUtil.isAncestor(this, newValueFunctionValidate))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newValueFunctionValidate != null)
+                msgs = ((InternalEObject)newValueFunctionValidate).eInverseAdd(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE__VALIDATE_ACCORDING_TO, XMLValueFunctionValidate.class, msgs);
+            msgs = basicSetValueFunctionValidate(newValueFunctionValidate, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__VALUE_FUNCTION_VALIDATE, newValueFunctionValidate, newValueFunctionValidate));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionValidateElement getValidateElement() {
+        return validateElement;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetValidateElement(XMLValueFunctionValidateElement newValidateElement, NotificationChain msgs) {
+        XMLValueFunctionValidateElement oldValidateElement = validateElement;
+        validateElement = newValidateElement;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__VALIDATE_ELEMENT, oldValidateElement, newValidateElement);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValidateElement(XMLValueFunctionValidateElement newValidateElement) {
+        if (newValidateElement != validateElement) {
+            NotificationChain msgs = null;
+            if (validateElement != null)
+                msgs = ((InternalEObject)validateElement).eInverseRemove(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT__VALIDATE_ACCORDING_TO, XMLValueFunctionValidateElement.class, msgs);
+            if (newValidateElement != null)
+                msgs = ((InternalEObject)newValidateElement).eInverseAdd(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT__VALIDATE_ACCORDING_TO, XMLValueFunctionValidateElement.class, msgs);
+            msgs = basicSetValidateElement(newValidateElement, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__VALIDATE_ELEMENT, newValidateElement, newValidateElement));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__VALUE_FUNCTION_VALIDATE:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetValueFunctionValidate((XMLValueFunctionValidate)otherEnd, msgs);
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__VALIDATE_ELEMENT:
+                if (validateElement != null)
+                    msgs = ((InternalEObject)validateElement).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__VALIDATE_ELEMENT, null, msgs);
+                return basicSetValidateElement((XMLValueFunctionValidateElement)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__VALUE_FUNCTION_VALIDATE:
+                return basicSetValueFunctionValidate(null, msgs);
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__VALIDATE_ELEMENT:
+                return basicSetValidateElement(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__VALUE_FUNCTION_VALIDATE:
+                return eInternalContainer().eInverseRemove(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE__VALIDATE_ACCORDING_TO, XMLValueFunctionValidate.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__VALUE_FUNCTION_VALIDATE:
+                return getValueFunctionValidate();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__VALIDATE_ELEMENT:
+                return getValidateElement();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__VALUE_FUNCTION_VALIDATE:
+                setValueFunctionValidate((XMLValueFunctionValidate)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__VALIDATE_ELEMENT:
+                setValidateElement((XMLValueFunctionValidateElement)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__VALUE_FUNCTION_VALIDATE:
+                setValueFunctionValidate((XMLValueFunctionValidate)null);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__VALIDATE_ELEMENT:
+                setValidateElement((XMLValueFunctionValidateElement)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__VALUE_FUNCTION_VALIDATE:
+                return getValueFunctionValidate() != null;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__VALIDATE_ELEMENT:
+                return validateElement != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //XMLValueFunctionValidateAccordingToImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionValidateAccordingToURIImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionValidateAccordingToURIImpl.java
new file mode 100644
index 0000000..aaa5e10
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionValidateAccordingToURIImpl.java
@@ -0,0 +1,276 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionValidateAccordingToURIImpl.java,v 1.5 2007/02/08 17:04:21 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidate;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingToURI;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElement;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Value Function Validate According To URI</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateAccordingToURIImpl#isNoNamespace <em>No Namespace</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateAccordingToURIImpl#getTargetNamespaceURI <em>Target Namespace URI</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateAccordingToURIImpl#getSchemaLocationURI <em>Schema Location URI</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLValueFunctionValidateAccordingToURIImpl extends XMLValueFunctionValidateAccordingToImpl implements XMLValueFunctionValidateAccordingToURI {
+	/**
+     * The default value of the '{@link #isNoNamespace() <em>No Namespace</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #isNoNamespace()
+     * @generated
+     * @ordered
+     */
+    protected static final boolean NO_NAMESPACE_EDEFAULT = false;
+
+	/**
+     * The cached value of the '{@link #isNoNamespace() <em>No Namespace</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #isNoNamespace()
+     * @generated
+     * @ordered
+     */
+    protected boolean noNamespace = NO_NAMESPACE_EDEFAULT;
+
+	/**
+     * The default value of the '{@link #getTargetNamespaceURI() <em>Target Namespace URI</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getTargetNamespaceURI()
+     * @generated
+     * @ordered
+     */
+    protected static final String TARGET_NAMESPACE_URI_EDEFAULT = null;
+
+	/**
+     * The cached value of the '{@link #getTargetNamespaceURI() <em>Target Namespace URI</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getTargetNamespaceURI()
+     * @generated
+     * @ordered
+     */
+    protected String targetNamespaceURI = TARGET_NAMESPACE_URI_EDEFAULT;
+
+	/**
+     * The default value of the '{@link #getSchemaLocationURI() <em>Schema Location URI</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getSchemaLocationURI()
+     * @generated
+     * @ordered
+     */
+    protected static final String SCHEMA_LOCATION_URI_EDEFAULT = null;
+
+	/**
+     * The cached value of the '{@link #getSchemaLocationURI() <em>Schema Location URI</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getSchemaLocationURI()
+     * @generated
+     * @ordered
+     */
+    protected String schemaLocationURI = SCHEMA_LOCATION_URI_EDEFAULT;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLValueFunctionValidateAccordingToURIImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_URI;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public boolean isNoNamespace() {
+        return noNamespace;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setNoNamespace(boolean newNoNamespace) {
+        boolean oldNoNamespace = noNamespace;
+        noNamespace = newNoNamespace;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_URI__NO_NAMESPACE, oldNoNamespace, noNamespace));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String getTargetNamespaceURI() {
+        return targetNamespaceURI;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setTargetNamespaceURI(String newTargetNamespaceURI) {
+        String oldTargetNamespaceURI = targetNamespaceURI;
+        targetNamespaceURI = newTargetNamespaceURI;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_URI__TARGET_NAMESPACE_URI, oldTargetNamespaceURI, targetNamespaceURI));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String getSchemaLocationURI() {
+        return schemaLocationURI;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setSchemaLocationURI(String newSchemaLocationURI) {
+        String oldSchemaLocationURI = schemaLocationURI;
+        schemaLocationURI = newSchemaLocationURI;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_URI__SCHEMA_LOCATION_URI, oldSchemaLocationURI, schemaLocationURI));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_URI__NO_NAMESPACE:
+                return isNoNamespace() ? Boolean.TRUE : Boolean.FALSE;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_URI__TARGET_NAMESPACE_URI:
+                return getTargetNamespaceURI();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_URI__SCHEMA_LOCATION_URI:
+                return getSchemaLocationURI();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_URI__NO_NAMESPACE:
+                setNoNamespace(((Boolean)newValue).booleanValue());
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_URI__TARGET_NAMESPACE_URI:
+                setTargetNamespaceURI((String)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_URI__SCHEMA_LOCATION_URI:
+                setSchemaLocationURI((String)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_URI__NO_NAMESPACE:
+                setNoNamespace(NO_NAMESPACE_EDEFAULT);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_URI__TARGET_NAMESPACE_URI:
+                setTargetNamespaceURI(TARGET_NAMESPACE_URI_EDEFAULT);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_URI__SCHEMA_LOCATION_URI:
+                setSchemaLocationURI(SCHEMA_LOCATION_URI_EDEFAULT);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_URI__NO_NAMESPACE:
+                return noNamespace != NO_NAMESPACE_EDEFAULT;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_URI__TARGET_NAMESPACE_URI:
+                return TARGET_NAMESPACE_URI_EDEFAULT == null ? targetNamespaceURI != null : !TARGET_NAMESPACE_URI_EDEFAULT.equals(targetNamespaceURI);
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_URI__SCHEMA_LOCATION_URI:
+                return SCHEMA_LOCATION_URI_EDEFAULT == null ? schemaLocationURI != null : !SCHEMA_LOCATION_URI_EDEFAULT.equals(schemaLocationURI);
+        }
+        return super.eIsSet(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (noNamespace: ");
+        result.append(noNamespace);
+        result.append(", targetNamespaceURI: ");
+        result.append(targetNamespaceURI);
+        result.append(", schemaLocationURI: ");
+        result.append(schemaLocationURI);
+        result.append(')');
+        return result.toString();
+    }
+
+} //XMLValueFunctionValidateAccordingToURIImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionValidateContentImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionValidateContentImpl.java
new file mode 100644
index 0000000..97d2998
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionValidateContentImpl.java
@@ -0,0 +1,292 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionValidateContentImpl.java,v 1.4 2008/07/07 19:55:14 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+import org.eclipse.datatools.modelbase.sql.query.impl.QueryValueExpressionImpl;
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidate;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateContent;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Value Function Validate Content</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateContentImpl#getValueFunctionValidate <em>Value Function Validate</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateContentImpl#getValueExpr <em>Value Expr</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLValueFunctionValidateContentImpl extends QueryValueExpressionImpl implements XMLValueFunctionValidateContent {
+	/**
+     * The cached value of the '{@link #getValueExpr() <em>Value Expr</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getValueExpr()
+     * @generated
+     * @ordered
+     */
+    protected QueryValueExpression valueExpr;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLValueFunctionValidateContentImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_VALUE_FUNCTION_VALIDATE_CONTENT;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionValidate getValueFunctionValidate() {
+        if (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_CONTENT__VALUE_FUNCTION_VALIDATE) return null;
+        return (XMLValueFunctionValidate)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetValueFunctionValidate(XMLValueFunctionValidate newValueFunctionValidate, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newValueFunctionValidate, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_CONTENT__VALUE_FUNCTION_VALIDATE, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueFunctionValidate(XMLValueFunctionValidate newValueFunctionValidate) {
+        if (newValueFunctionValidate != eInternalContainer() || (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_CONTENT__VALUE_FUNCTION_VALIDATE && newValueFunctionValidate != null)) {
+            if (EcoreUtil.isAncestor(this, newValueFunctionValidate))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newValueFunctionValidate != null)
+                msgs = ((InternalEObject)newValueFunctionValidate).eInverseAdd(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE__VALIDATE_CONTENT, XMLValueFunctionValidate.class, msgs);
+            msgs = basicSetValueFunctionValidate(newValueFunctionValidate, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_CONTENT__VALUE_FUNCTION_VALIDATE, newValueFunctionValidate, newValueFunctionValidate));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public QueryValueExpression getValueExpr() {
+        return valueExpr;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetValueExpr(QueryValueExpression newValueExpr, NotificationChain msgs) {
+        QueryValueExpression oldValueExpr = valueExpr;
+        valueExpr = newValueExpr;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_CONTENT__VALUE_EXPR, oldValueExpr, newValueExpr);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValueExpr(QueryValueExpression newValueExpr) {
+        if (newValueExpr != valueExpr) {
+            NotificationChain msgs = null;
+            if (valueExpr != null)
+                msgs = ((InternalEObject)valueExpr).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_CONTENT__VALUE_EXPR, null, msgs);
+            if (newValueExpr != null)
+                msgs = ((InternalEObject)newValueExpr).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_CONTENT__VALUE_EXPR, null, msgs);
+            msgs = basicSetValueExpr(newValueExpr, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_CONTENT__VALUE_EXPR, newValueExpr, newValueExpr));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_CONTENT__VALUE_FUNCTION_VALIDATE:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetValueFunctionValidate((XMLValueFunctionValidate)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_CONTENT__VALUE_FUNCTION_VALIDATE:
+                return basicSetValueFunctionValidate(null, msgs);
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_CONTENT__VALUE_EXPR:
+                return basicSetValueExpr(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_CONTENT__VALUE_FUNCTION_VALIDATE:
+                return eInternalContainer().eInverseRemove(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE__VALIDATE_CONTENT, XMLValueFunctionValidate.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_CONTENT__VALUE_FUNCTION_VALIDATE:
+                return getValueFunctionValidate();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_CONTENT__VALUE_EXPR:
+                return getValueExpr();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_CONTENT__VALUE_FUNCTION_VALIDATE:
+                setValueFunctionValidate((XMLValueFunctionValidate)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_CONTENT__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_CONTENT__VALUE_FUNCTION_VALIDATE:
+                setValueFunctionValidate((XMLValueFunctionValidate)null);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_CONTENT__VALUE_EXPR:
+                setValueExpr((QueryValueExpression)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_CONTENT__VALUE_FUNCTION_VALIDATE:
+                return getValueFunctionValidate() != null;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_CONTENT__VALUE_EXPR:
+                return valueExpr != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //XMLValueFunctionValidateContentImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionValidateElementImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionValidateElementImpl.java
new file mode 100644
index 0000000..0d27b1a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionValidateElementImpl.java
@@ -0,0 +1,339 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionValidateElementImpl.java,v 1.4 2008/07/07 19:55:15 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryObjectImpl;
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingTo;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElement;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElementName;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElementNamespace;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Value Function Validate Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateElementImpl#getValidateElementNamespace <em>Validate Element Namespace</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateElementImpl#getValidateElementName <em>Validate Element Name</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateElementImpl#getValidateAccordingTo <em>Validate According To</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLValueFunctionValidateElementImpl extends SQLQueryObjectImpl implements XMLValueFunctionValidateElement {
+	/**
+     * The cached value of the '{@link #getValidateElementNamespace() <em>Validate Element Namespace</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getValidateElementNamespace()
+     * @generated
+     * @ordered
+     */
+    protected XMLValueFunctionValidateElementNamespace validateElementNamespace;
+
+	/**
+     * The cached value of the '{@link #getValidateElementName() <em>Validate Element Name</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getValidateElementName()
+     * @generated
+     * @ordered
+     */
+    protected XMLValueFunctionValidateElementName validateElementName;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLValueFunctionValidateElementImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_VALUE_FUNCTION_VALIDATE_ELEMENT;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionValidateElementNamespace getValidateElementNamespace() {
+        return validateElementNamespace;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetValidateElementNamespace(XMLValueFunctionValidateElementNamespace newValidateElementNamespace, NotificationChain msgs) {
+        XMLValueFunctionValidateElementNamespace oldValidateElementNamespace = validateElementNamespace;
+        validateElementNamespace = newValidateElementNamespace;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT__VALIDATE_ELEMENT_NAMESPACE, oldValidateElementNamespace, newValidateElementNamespace);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValidateElementNamespace(XMLValueFunctionValidateElementNamespace newValidateElementNamespace) {
+        if (newValidateElementNamespace != validateElementNamespace) {
+            NotificationChain msgs = null;
+            if (validateElementNamespace != null)
+                msgs = ((InternalEObject)validateElementNamespace).eInverseRemove(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAMESPACE__VALIDATE_ELEMENT, XMLValueFunctionValidateElementNamespace.class, msgs);
+            if (newValidateElementNamespace != null)
+                msgs = ((InternalEObject)newValidateElementNamespace).eInverseAdd(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAMESPACE__VALIDATE_ELEMENT, XMLValueFunctionValidateElementNamespace.class, msgs);
+            msgs = basicSetValidateElementNamespace(newValidateElementNamespace, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT__VALIDATE_ELEMENT_NAMESPACE, newValidateElementNamespace, newValidateElementNamespace));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionValidateElementName getValidateElementName() {
+        return validateElementName;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetValidateElementName(XMLValueFunctionValidateElementName newValidateElementName, NotificationChain msgs) {
+        XMLValueFunctionValidateElementName oldValidateElementName = validateElementName;
+        validateElementName = newValidateElementName;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT__VALIDATE_ELEMENT_NAME, oldValidateElementName, newValidateElementName);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValidateElementName(XMLValueFunctionValidateElementName newValidateElementName) {
+        if (newValidateElementName != validateElementName) {
+            NotificationChain msgs = null;
+            if (validateElementName != null)
+                msgs = ((InternalEObject)validateElementName).eInverseRemove(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAME__VALIDATE_ELEMENT, XMLValueFunctionValidateElementName.class, msgs);
+            if (newValidateElementName != null)
+                msgs = ((InternalEObject)newValidateElementName).eInverseAdd(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAME__VALIDATE_ELEMENT, XMLValueFunctionValidateElementName.class, msgs);
+            msgs = basicSetValidateElementName(newValidateElementName, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT__VALIDATE_ELEMENT_NAME, newValidateElementName, newValidateElementName));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionValidateAccordingTo getValidateAccordingTo() {
+        if (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT__VALIDATE_ACCORDING_TO) return null;
+        return (XMLValueFunctionValidateAccordingTo)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetValidateAccordingTo(XMLValueFunctionValidateAccordingTo newValidateAccordingTo, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newValidateAccordingTo, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT__VALIDATE_ACCORDING_TO, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValidateAccordingTo(XMLValueFunctionValidateAccordingTo newValidateAccordingTo) {
+        if (newValidateAccordingTo != eInternalContainer() || (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT__VALIDATE_ACCORDING_TO && newValidateAccordingTo != null)) {
+            if (EcoreUtil.isAncestor(this, newValidateAccordingTo))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newValidateAccordingTo != null)
+                msgs = ((InternalEObject)newValidateAccordingTo).eInverseAdd(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__VALIDATE_ELEMENT, XMLValueFunctionValidateAccordingTo.class, msgs);
+            msgs = basicSetValidateAccordingTo(newValidateAccordingTo, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT__VALIDATE_ACCORDING_TO, newValidateAccordingTo, newValidateAccordingTo));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT__VALIDATE_ELEMENT_NAMESPACE:
+                if (validateElementNamespace != null)
+                    msgs = ((InternalEObject)validateElementNamespace).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT__VALIDATE_ELEMENT_NAMESPACE, null, msgs);
+                return basicSetValidateElementNamespace((XMLValueFunctionValidateElementNamespace)otherEnd, msgs);
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT__VALIDATE_ELEMENT_NAME:
+                if (validateElementName != null)
+                    msgs = ((InternalEObject)validateElementName).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT__VALIDATE_ELEMENT_NAME, null, msgs);
+                return basicSetValidateElementName((XMLValueFunctionValidateElementName)otherEnd, msgs);
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT__VALIDATE_ACCORDING_TO:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetValidateAccordingTo((XMLValueFunctionValidateAccordingTo)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT__VALIDATE_ELEMENT_NAMESPACE:
+                return basicSetValidateElementNamespace(null, msgs);
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT__VALIDATE_ELEMENT_NAME:
+                return basicSetValidateElementName(null, msgs);
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT__VALIDATE_ACCORDING_TO:
+                return basicSetValidateAccordingTo(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT__VALIDATE_ACCORDING_TO:
+                return eInternalContainer().eInverseRemove(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__VALIDATE_ELEMENT, XMLValueFunctionValidateAccordingTo.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT__VALIDATE_ELEMENT_NAMESPACE:
+                return getValidateElementNamespace();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT__VALIDATE_ELEMENT_NAME:
+                return getValidateElementName();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT__VALIDATE_ACCORDING_TO:
+                return getValidateAccordingTo();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT__VALIDATE_ELEMENT_NAMESPACE:
+                setValidateElementNamespace((XMLValueFunctionValidateElementNamespace)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT__VALIDATE_ELEMENT_NAME:
+                setValidateElementName((XMLValueFunctionValidateElementName)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT__VALIDATE_ACCORDING_TO:
+                setValidateAccordingTo((XMLValueFunctionValidateAccordingTo)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT__VALIDATE_ELEMENT_NAMESPACE:
+                setValidateElementNamespace((XMLValueFunctionValidateElementNamespace)null);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT__VALIDATE_ELEMENT_NAME:
+                setValidateElementName((XMLValueFunctionValidateElementName)null);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT__VALIDATE_ACCORDING_TO:
+                setValidateAccordingTo((XMLValueFunctionValidateAccordingTo)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT__VALIDATE_ELEMENT_NAMESPACE:
+                return validateElementNamespace != null;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT__VALIDATE_ELEMENT_NAME:
+                return validateElementName != null;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT__VALIDATE_ACCORDING_TO:
+                return getValidateAccordingTo() != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //XMLValueFunctionValidateElementImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionValidateElementNameImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionValidateElementNameImpl.java
new file mode 100644
index 0000000..5108816
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionValidateElementNameImpl.java
@@ -0,0 +1,192 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionValidateElementNameImpl.java,v 1.5 2008/07/07 19:55:14 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryObjectImpl;
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElement;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElementName;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Value Function Validate Element Name</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateElementNameImpl#getValidateElement <em>Validate Element</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLValueFunctionValidateElementNameImpl extends SQLQueryObjectImpl implements XMLValueFunctionValidateElementName {
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLValueFunctionValidateElementNameImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAME;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionValidateElement getValidateElement() {
+        if (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAME__VALIDATE_ELEMENT) return null;
+        return (XMLValueFunctionValidateElement)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetValidateElement(XMLValueFunctionValidateElement newValidateElement, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newValidateElement, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAME__VALIDATE_ELEMENT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValidateElement(XMLValueFunctionValidateElement newValidateElement) {
+        if (newValidateElement != eInternalContainer() || (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAME__VALIDATE_ELEMENT && newValidateElement != null)) {
+            if (EcoreUtil.isAncestor(this, newValidateElement))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newValidateElement != null)
+                msgs = ((InternalEObject)newValidateElement).eInverseAdd(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT__VALIDATE_ELEMENT_NAME, XMLValueFunctionValidateElement.class, msgs);
+            msgs = basicSetValidateElement(newValidateElement, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAME__VALIDATE_ELEMENT, newValidateElement, newValidateElement));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAME__VALIDATE_ELEMENT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetValidateElement((XMLValueFunctionValidateElement)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAME__VALIDATE_ELEMENT:
+                return basicSetValidateElement(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAME__VALIDATE_ELEMENT:
+                return eInternalContainer().eInverseRemove(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT__VALIDATE_ELEMENT_NAME, XMLValueFunctionValidateElement.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAME__VALIDATE_ELEMENT:
+                return getValidateElement();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAME__VALIDATE_ELEMENT:
+                setValidateElement((XMLValueFunctionValidateElement)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAME__VALIDATE_ELEMENT:
+                setValidateElement((XMLValueFunctionValidateElement)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAME__VALIDATE_ELEMENT:
+                return getValidateElement() != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+} //XMLValueFunctionValidateElementNameImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionValidateElementNamespaceImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionValidateElementNamespaceImpl.java
new file mode 100644
index 0000000..4689c52
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionValidateElementNamespaceImpl.java
@@ -0,0 +1,313 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionValidateElementNamespaceImpl.java,v 1.5 2008/07/07 19:55:14 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.query.impl.SQLQueryObjectImpl;
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElement;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElementNamespace;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Value Function Validate Element Namespace</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateElementNamespaceImpl#isNoNamespace <em>No Namespace</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateElementNamespaceImpl#getNamespaceURI <em>Namespace URI</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateElementNamespaceImpl#getValidateElement <em>Validate Element</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLValueFunctionValidateElementNamespaceImpl extends SQLQueryObjectImpl implements XMLValueFunctionValidateElementNamespace {
+	/**
+     * The default value of the '{@link #isNoNamespace() <em>No Namespace</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #isNoNamespace()
+     * @generated
+     * @ordered
+     */
+    protected static final boolean NO_NAMESPACE_EDEFAULT = false;
+
+	/**
+     * The cached value of the '{@link #isNoNamespace() <em>No Namespace</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #isNoNamespace()
+     * @generated
+     * @ordered
+     */
+    protected boolean noNamespace = NO_NAMESPACE_EDEFAULT;
+
+	/**
+     * The default value of the '{@link #getNamespaceURI() <em>Namespace URI</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getNamespaceURI()
+     * @generated
+     * @ordered
+     */
+    protected static final String NAMESPACE_URI_EDEFAULT = null;
+
+	/**
+     * The cached value of the '{@link #getNamespaceURI() <em>Namespace URI</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getNamespaceURI()
+     * @generated
+     * @ordered
+     */
+    protected String namespaceURI = NAMESPACE_URI_EDEFAULT;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLValueFunctionValidateElementNamespaceImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAMESPACE;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public boolean isNoNamespace() {
+        return noNamespace;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setNoNamespace(boolean newNoNamespace) {
+        boolean oldNoNamespace = noNamespace;
+        noNamespace = newNoNamespace;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAMESPACE__NO_NAMESPACE, oldNoNamespace, noNamespace));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String getNamespaceURI() {
+        return namespaceURI;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setNamespaceURI(String newNamespaceURI) {
+        String oldNamespaceURI = namespaceURI;
+        namespaceURI = newNamespaceURI;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAMESPACE__NAMESPACE_URI, oldNamespaceURI, namespaceURI));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionValidateElement getValidateElement() {
+        if (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAMESPACE__VALIDATE_ELEMENT) return null;
+        return (XMLValueFunctionValidateElement)eContainer();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain basicSetValidateElement(XMLValueFunctionValidateElement newValidateElement, NotificationChain msgs) {
+        msgs = eBasicSetContainer((InternalEObject)newValidateElement, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAMESPACE__VALIDATE_ELEMENT, msgs);
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValidateElement(XMLValueFunctionValidateElement newValidateElement) {
+        if (newValidateElement != eInternalContainer() || (eContainerFeatureID() != SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAMESPACE__VALIDATE_ELEMENT && newValidateElement != null)) {
+            if (EcoreUtil.isAncestor(this, newValidateElement))
+                throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+            NotificationChain msgs = null;
+            if (eInternalContainer() != null)
+                msgs = eBasicRemoveFromContainer(msgs);
+            if (newValidateElement != null)
+                msgs = ((InternalEObject)newValidateElement).eInverseAdd(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT__VALIDATE_ELEMENT_NAMESPACE, XMLValueFunctionValidateElement.class, msgs);
+            msgs = basicSetValidateElement(newValidateElement, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAMESPACE__VALIDATE_ELEMENT, newValidateElement, newValidateElement));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAMESPACE__VALIDATE_ELEMENT:
+                if (eInternalContainer() != null)
+                    msgs = eBasicRemoveFromContainer(msgs);
+                return basicSetValidateElement((XMLValueFunctionValidateElement)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAMESPACE__VALIDATE_ELEMENT:
+                return basicSetValidateElement(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+        switch (eContainerFeatureID()) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAMESPACE__VALIDATE_ELEMENT:
+                return eInternalContainer().eInverseRemove(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT__VALIDATE_ELEMENT_NAMESPACE, XMLValueFunctionValidateElement.class, msgs);
+        }
+        return super.eBasicRemoveFromContainerFeature(msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAMESPACE__NO_NAMESPACE:
+                return isNoNamespace() ? Boolean.TRUE : Boolean.FALSE;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAMESPACE__NAMESPACE_URI:
+                return getNamespaceURI();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAMESPACE__VALIDATE_ELEMENT:
+                return getValidateElement();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAMESPACE__NO_NAMESPACE:
+                setNoNamespace(((Boolean)newValue).booleanValue());
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAMESPACE__NAMESPACE_URI:
+                setNamespaceURI((String)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAMESPACE__VALIDATE_ELEMENT:
+                setValidateElement((XMLValueFunctionValidateElement)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAMESPACE__NO_NAMESPACE:
+                setNoNamespace(NO_NAMESPACE_EDEFAULT);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAMESPACE__NAMESPACE_URI:
+                setNamespaceURI(NAMESPACE_URI_EDEFAULT);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAMESPACE__VALIDATE_ELEMENT:
+                setValidateElement((XMLValueFunctionValidateElement)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAMESPACE__NO_NAMESPACE:
+                return noNamespace != NO_NAMESPACE_EDEFAULT;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAMESPACE__NAMESPACE_URI:
+                return NAMESPACE_URI_EDEFAULT == null ? namespaceURI != null : !NAMESPACE_URI_EDEFAULT.equals(namespaceURI);
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAMESPACE__VALIDATE_ELEMENT:
+                return getValidateElement() != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (noNamespace: ");
+        result.append(noNamespace);
+        result.append(", namespaceURI: ");
+        result.append(namespaceURI);
+        result.append(')');
+        return result.toString();
+    }
+
+} //XMLValueFunctionValidateElementNamespaceImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionValidateImpl.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionValidateImpl.java
new file mode 100644
index 0000000..3abfafc
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/impl/XMLValueFunctionValidateImpl.java
@@ -0,0 +1,355 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: XMLValueFunctionValidateImpl.java,v 1.5 2007/02/08 17:04:20 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.query.GroupingExpression;
+import org.eclipse.datatools.modelbase.sql.query.OrderByValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBasic;
+import org.eclipse.datatools.modelbase.sql.query.PredicateBetween;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueList;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateInValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateIsNull;
+import org.eclipse.datatools.modelbase.sql.query.PredicateLike;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedRowSelect;
+import org.eclipse.datatools.modelbase.sql.query.PredicateQuantifiedValueSelect;
+import org.eclipse.datatools.modelbase.sql.query.ResultColumn;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.query.UpdateSourceExprList;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseElse;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearchContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimpleContent;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCombined;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionLabeledDuration;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionNested;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionUnaryOperator;
+import org.eclipse.datatools.modelbase.sql.query.ValuesRow;
+import org.eclipse.datatools.modelbase.sql.routines.Function;
+import org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLContentType2;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidate;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingTo;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateContent;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Value Function Validate</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateImpl#getContentOption <em>Content Option</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateImpl#getValidateContent <em>Validate Content</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.xml.query.impl.XMLValueFunctionValidateImpl#getValidateAccordingTo <em>Validate According To</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLValueFunctionValidateImpl extends XMLValueFunctionImpl implements XMLValueFunctionValidate {
+	/**
+     * The default value of the '{@link #getContentOption() <em>Content Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getContentOption()
+     * @generated
+     * @ordered
+     */
+    protected static final XMLContentType2 CONTENT_OPTION_EDEFAULT = XMLContentType2.CONTENT_LITERAL;
+
+	/**
+     * The cached value of the '{@link #getContentOption() <em>Content Option</em>}' attribute.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getContentOption()
+     * @generated
+     * @ordered
+     */
+    protected XMLContentType2 contentOption = CONTENT_OPTION_EDEFAULT;
+
+	/**
+     * The cached value of the '{@link #getValidateContent() <em>Validate Content</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getValidateContent()
+     * @generated
+     * @ordered
+     */
+    protected XMLValueFunctionValidateContent validateContent;
+
+	/**
+     * The cached value of the '{@link #getValidateAccordingTo() <em>Validate According To</em>}' containment reference.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getValidateAccordingTo()
+     * @generated
+     * @ordered
+     */
+    protected XMLValueFunctionValidateAccordingTo validateAccordingTo;
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected XMLValueFunctionValidateImpl() {
+        super();
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected EClass eStaticClass() {
+        return SQLXMLQueryModelPackage.Literals.XML_VALUE_FUNCTION_VALIDATE;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLContentType2 getContentOption() {
+        return contentOption;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setContentOption(XMLContentType2 newContentOption) {
+        XMLContentType2 oldContentOption = contentOption;
+        contentOption = newContentOption == null ? CONTENT_OPTION_EDEFAULT : newContentOption;
+        if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE__CONTENT_OPTION, oldContentOption, contentOption));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionValidateContent getValidateContent() {
+        return validateContent;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetValidateContent(XMLValueFunctionValidateContent newValidateContent, NotificationChain msgs) {
+        XMLValueFunctionValidateContent oldValidateContent = validateContent;
+        validateContent = newValidateContent;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE__VALIDATE_CONTENT, oldValidateContent, newValidateContent);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValidateContent(XMLValueFunctionValidateContent newValidateContent) {
+        if (newValidateContent != validateContent) {
+            NotificationChain msgs = null;
+            if (validateContent != null)
+                msgs = ((InternalEObject)validateContent).eInverseRemove(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_CONTENT__VALUE_FUNCTION_VALIDATE, XMLValueFunctionValidateContent.class, msgs);
+            if (newValidateContent != null)
+                msgs = ((InternalEObject)newValidateContent).eInverseAdd(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_CONTENT__VALUE_FUNCTION_VALIDATE, XMLValueFunctionValidateContent.class, msgs);
+            msgs = basicSetValidateContent(newValidateContent, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE__VALIDATE_CONTENT, newValidateContent, newValidateContent));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public XMLValueFunctionValidateAccordingTo getValidateAccordingTo() {
+        return validateAccordingTo;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetValidateAccordingTo(XMLValueFunctionValidateAccordingTo newValidateAccordingTo, NotificationChain msgs) {
+        XMLValueFunctionValidateAccordingTo oldValidateAccordingTo = validateAccordingTo;
+        validateAccordingTo = newValidateAccordingTo;
+        if (eNotificationRequired()) {
+            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE__VALIDATE_ACCORDING_TO, oldValidateAccordingTo, newValidateAccordingTo);
+            if (msgs == null) msgs = notification; else msgs.add(notification);
+        }
+        return msgs;
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public void setValidateAccordingTo(XMLValueFunctionValidateAccordingTo newValidateAccordingTo) {
+        if (newValidateAccordingTo != validateAccordingTo) {
+            NotificationChain msgs = null;
+            if (validateAccordingTo != null)
+                msgs = ((InternalEObject)validateAccordingTo).eInverseRemove(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__VALUE_FUNCTION_VALIDATE, XMLValueFunctionValidateAccordingTo.class, msgs);
+            if (newValidateAccordingTo != null)
+                msgs = ((InternalEObject)newValidateAccordingTo).eInverseAdd(this, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO__VALUE_FUNCTION_VALIDATE, XMLValueFunctionValidateAccordingTo.class, msgs);
+            msgs = basicSetValidateAccordingTo(newValidateAccordingTo, msgs);
+            if (msgs != null) msgs.dispatch();
+        }
+        else if (eNotificationRequired())
+            eNotify(new ENotificationImpl(this, Notification.SET, SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE__VALIDATE_ACCORDING_TO, newValidateAccordingTo, newValidateAccordingTo));
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE__VALIDATE_CONTENT:
+                if (validateContent != null)
+                    msgs = ((InternalEObject)validateContent).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE__VALIDATE_CONTENT, null, msgs);
+                return basicSetValidateContent((XMLValueFunctionValidateContent)otherEnd, msgs);
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE__VALIDATE_ACCORDING_TO:
+                if (validateAccordingTo != null)
+                    msgs = ((InternalEObject)validateAccordingTo).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE__VALIDATE_ACCORDING_TO, null, msgs);
+                return basicSetValidateAccordingTo((XMLValueFunctionValidateAccordingTo)otherEnd, msgs);
+        }
+        return super.eInverseAdd(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE__VALIDATE_CONTENT:
+                return basicSetValidateContent(null, msgs);
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE__VALIDATE_ACCORDING_TO:
+                return basicSetValidateAccordingTo(null, msgs);
+        }
+        return super.eInverseRemove(otherEnd, featureID, msgs);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE__CONTENT_OPTION:
+                return getContentOption();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE__VALIDATE_CONTENT:
+                return getValidateContent();
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE__VALIDATE_ACCORDING_TO:
+                return getValidateAccordingTo();
+        }
+        return super.eGet(featureID, resolve, coreType);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eSet(int featureID, Object newValue) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE__CONTENT_OPTION:
+                setContentOption((XMLContentType2)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE__VALIDATE_CONTENT:
+                setValidateContent((XMLValueFunctionValidateContent)newValue);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE__VALIDATE_ACCORDING_TO:
+                setValidateAccordingTo((XMLValueFunctionValidateAccordingTo)newValue);
+                return;
+        }
+        super.eSet(featureID, newValue);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public void eUnset(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE__CONTENT_OPTION:
+                setContentOption(CONTENT_OPTION_EDEFAULT);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE__VALIDATE_CONTENT:
+                setValidateContent((XMLValueFunctionValidateContent)null);
+                return;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE__VALIDATE_ACCORDING_TO:
+                setValidateAccordingTo((XMLValueFunctionValidateAccordingTo)null);
+                return;
+        }
+        super.eUnset(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+     * @generated
+     */
+	public boolean eIsSet(int featureID) {
+        switch (featureID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE__CONTENT_OPTION:
+                return contentOption != CONTENT_OPTION_EDEFAULT;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE__VALIDATE_CONTENT:
+                return validateContent != null;
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE__VALIDATE_ACCORDING_TO:
+                return validateAccordingTo != null;
+        }
+        return super.eIsSet(featureID);
+    }
+
+	/**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public String toString() {
+        if (eIsProxy()) return super.toString();
+
+        StringBuffer result = new StringBuffer(super.toString());
+        result.append(" (contentOption: ");
+        result.append(contentOption);
+        result.append(')');
+        return result.toString();
+    }
+
+} //XMLValueFunctionValidateImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/util/SQLXMLQueryModelAdapterFactory.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/util/SQLXMLQueryModelAdapterFactory.java
new file mode 100644
index 0000000..d881caa
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/util/SQLXMLQueryModelAdapterFactory.java
@@ -0,0 +1,1277 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SQLXMLQueryModelAdapterFactory.java,v 1.1 2005/12/22 22:21:19 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.util;
+
+
+
+import org.eclipse.datatools.modelbase.sql.query.Predicate;
+import org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition;
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryObject;
+import org.eclipse.datatools.modelbase.sql.query.TableExpression;
+import org.eclipse.datatools.modelbase.sql.query.TableFunction;
+import org.eclipse.datatools.modelbase.sql.query.TableReference;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionAtomic;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.xml.query.*;
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EModelElement;
+import org.eclipse.emf.ecore.ENamedElement;
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.datatools.modelbase.sql.expressions.SearchCondition;
+import org.eclipse.datatools.modelbase.sql.expressions.ValueExpression;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage
+ * @generated
+ */
+public class SQLXMLQueryModelAdapterFactory extends AdapterFactoryImpl {
+	/**
+     * The cached model package.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected static SQLXMLQueryModelPackage modelPackage;
+
+	/**
+     * Creates an instance of the adapter factory.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public SQLXMLQueryModelAdapterFactory() {
+        if (modelPackage == null) {
+            modelPackage = SQLXMLQueryModelPackage.eINSTANCE;
+        }
+    }
+
+	/**
+     * Returns whether this factory is applicable for the type of the object.
+     * <!-- begin-user-doc -->
+     * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+     * <!-- end-user-doc -->
+     * @return whether this factory is applicable for the type of the object.
+     * @generated
+     */
+    public boolean isFactoryForType(Object object) {
+        if (object == modelPackage) {
+            return true;
+        }
+        if (object instanceof EObject) {
+            return ((EObject)object).eClass().getEPackage() == modelPackage;
+        }
+        return false;
+    }
+
+	/**
+     * The switch that delegates to the <code>createXXX</code> methods.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected SQLXMLQueryModelSwitch modelSwitch =
+		new SQLXMLQueryModelSwitch() {
+            public Object caseXMLValueFunctionConcat(XMLValueFunctionConcat object) {
+                return createXMLValueFunctionConcatAdapter();
+            }
+            public Object caseXMLValueFunction(XMLValueFunction object) {
+                return createXMLValueFunctionAdapter();
+            }
+            public Object caseXMLNamespaceDeclarationPrefix(XMLNamespaceDeclarationPrefix object) {
+                return createXMLNamespaceDeclarationPrefixAdapter();
+            }
+            public Object caseXMLNamespaceDeclarationDefault(XMLNamespaceDeclarationDefault object) {
+                return createXMLNamespaceDeclarationDefaultAdapter();
+            }
+            public Object caseXMLAttributeDeclarationItem(XMLAttributeDeclarationItem object) {
+                return createXMLAttributeDeclarationItemAdapter();
+            }
+            public Object caseXMLValueFunctionElement(XMLValueFunctionElement object) {
+                return createXMLValueFunctionElementAdapter();
+            }
+            public Object caseXMLNamespaceDeclarationItem(XMLNamespaceDeclarationItem object) {
+                return createXMLNamespaceDeclarationItemAdapter();
+            }
+            public Object caseXMLValueFunctionElementContentItem(XMLValueFunctionElementContentItem object) {
+                return createXMLValueFunctionElementContentItemAdapter();
+            }
+            public Object caseXMLValueFunctionForest(XMLValueFunctionForest object) {
+                return createXMLValueFunctionForestAdapter();
+            }
+            public Object caseXMLValueFunctionComment(XMLValueFunctionComment object) {
+                return createXMLValueFunctionCommentAdapter();
+            }
+            public Object caseXMLValueFunctionDocument(XMLValueFunctionDocument object) {
+                return createXMLValueFunctionDocumentAdapter();
+            }
+            public Object caseXMLValueFunctionParse(XMLValueFunctionParse object) {
+                return createXMLValueFunctionParseAdapter();
+            }
+            public Object caseXMLValueFunctionPI(XMLValueFunctionPI object) {
+                return createXMLValueFunctionPIAdapter();
+            }
+            public Object caseXMLValueFunctionQuery(XMLValueFunctionQuery object) {
+                return createXMLValueFunctionQueryAdapter();
+            }
+            public Object caseXMLValueFunctionText(XMLValueFunctionText object) {
+                return createXMLValueFunctionTextAdapter();
+            }
+            public Object caseXMLValueFunctionValidate(XMLValueFunctionValidate object) {
+                return createXMLValueFunctionValidateAdapter();
+            }
+            public Object caseXMLValueExpressionCast(XMLValueExpressionCast object) {
+                return createXMLValueExpressionCastAdapter();
+            }
+            public Object caseXMLPredicate(XMLPredicate object) {
+                return createXMLPredicateAdapter();
+            }
+            public Object caseXMLPredicateContent(XMLPredicateContent object) {
+                return createXMLPredicateContentAdapter();
+            }
+            public Object caseXMLPredicateDocument(XMLPredicateDocument object) {
+                return createXMLPredicateDocumentAdapter();
+            }
+            public Object caseXMLPredicateExists(XMLPredicateExists object) {
+                return createXMLPredicateExistsAdapter();
+            }
+            public Object caseXMLPredicateValid(XMLPredicateValid object) {
+                return createXMLPredicateValidAdapter();
+            }
+            public Object caseXMLQueryExpression(XMLQueryExpression object) {
+                return createXMLQueryExpressionAdapter();
+            }
+            public Object caseXMLQueryArgumentList(XMLQueryArgumentList object) {
+                return createXMLQueryArgumentListAdapter();
+            }
+            public Object caseXMLQueryArgumentItem(XMLQueryArgumentItem object) {
+                return createXMLQueryArgumentItemAdapter();
+            }
+            public Object caseXMLSerializeFunction(XMLSerializeFunction object) {
+                return createXMLSerializeFunctionAdapter();
+            }
+            public Object caseXMLSerializeFunctionTarget(XMLSerializeFunctionTarget object) {
+                return createXMLSerializeFunctionTargetAdapter();
+            }
+            public Object caseXMLAggregateFunction(XMLAggregateFunction object) {
+                return createXMLAggregateFunctionAdapter();
+            }
+            public Object caseXMLValueFunctionConcatContentItem(XMLValueFunctionConcatContentItem object) {
+                return createXMLValueFunctionConcatContentItemAdapter();
+            }
+            public Object caseXMLValueFunctionCommentContent(XMLValueFunctionCommentContent object) {
+                return createXMLValueFunctionCommentContentAdapter();
+            }
+            public Object caseXMLValueFunctionDocumentContent(XMLValueFunctionDocumentContent object) {
+                return createXMLValueFunctionDocumentContentAdapter();
+            }
+            public Object caseXMLAggregateSortSpecification(XMLAggregateSortSpecification object) {
+                return createXMLAggregateSortSpecificationAdapter();
+            }
+            public Object caseXMLValueFunctionForestContentItem(XMLValueFunctionForestContentItem object) {
+                return createXMLValueFunctionForestContentItemAdapter();
+            }
+            public Object caseXMLValueFunctionParseContent(XMLValueFunctionParseContent object) {
+                return createXMLValueFunctionParseContentAdapter();
+            }
+            public Object caseXMLValueFunctionPIContent(XMLValueFunctionPIContent object) {
+                return createXMLValueFunctionPIContentAdapter();
+            }
+            public Object caseXMLTableFunction(XMLTableFunction object) {
+                return createXMLTableFunctionAdapter();
+            }
+            public Object caseXMLValueFunctionTextContent(XMLValueFunctionTextContent object) {
+                return createXMLValueFunctionTextContentAdapter();
+            }
+            public Object caseXMLValueFunctionValidateContent(XMLValueFunctionValidateContent object) {
+                return createXMLValueFunctionValidateContentAdapter();
+            }
+            public Object caseXMLTableColumnDefinitionItem(XMLTableColumnDefinitionItem object) {
+                return createXMLTableColumnDefinitionItemAdapter();
+            }
+            public Object caseXMLTableColumnDefinitionRegular(XMLTableColumnDefinitionRegular object) {
+                return createXMLTableColumnDefinitionRegularAdapter();
+            }
+            public Object caseXMLTableColumnDefinitionOrdinality(XMLTableColumnDefinitionOrdinality object) {
+                return createXMLTableColumnDefinitionOrdinalityAdapter();
+            }
+            public Object caseXMLValueFunctionValidateAccordingTo(XMLValueFunctionValidateAccordingTo object) {
+                return createXMLValueFunctionValidateAccordingToAdapter();
+            }
+            public Object caseXMLValueFunctionValidateAccordingToURI(XMLValueFunctionValidateAccordingToURI object) {
+                return createXMLValueFunctionValidateAccordingToURIAdapter();
+            }
+            public Object caseXMLValueFunctionValidateAccordingToIdentifier(XMLValueFunctionValidateAccordingToIdentifier object) {
+                return createXMLValueFunctionValidateAccordingToIdentifierAdapter();
+            }
+            public Object caseXMLValueFunctionValidateElementName(XMLValueFunctionValidateElementName object) {
+                return createXMLValueFunctionValidateElementNameAdapter();
+            }
+            public Object caseXMLValueFunctionValidateElementNamespace(XMLValueFunctionValidateElementNamespace object) {
+                return createXMLValueFunctionValidateElementNamespaceAdapter();
+            }
+            public Object caseXMLNamespacesDeclaration(XMLNamespacesDeclaration object) {
+                return createXMLNamespacesDeclarationAdapter();
+            }
+            public Object caseXMLAttributesDeclaration(XMLAttributesDeclaration object) {
+                return createXMLAttributesDeclarationAdapter();
+            }
+            public Object caseXMLValueFunctionElementContentList(XMLValueFunctionElementContentList object) {
+                return createXMLValueFunctionElementContentListAdapter();
+            }
+            public Object caseXMLValueFunctionQueryReturning(XMLValueFunctionQueryReturning object) {
+                return createXMLValueFunctionQueryReturningAdapter();
+            }
+            public Object caseXMLValueFunctionValidateElement(XMLValueFunctionValidateElement object) {
+                return createXMLValueFunctionValidateElementAdapter();
+            }
+            public Object caseXMLTableColumnDefinitionDefault(XMLTableColumnDefinitionDefault object) {
+                return createXMLTableColumnDefinitionDefaultAdapter();
+            }
+            public Object caseXMLSerializeFunctionEncoding(XMLSerializeFunctionEncoding object) {
+                return createXMLSerializeFunctionEncodingAdapter();
+            }
+            public Object caseEModelElement(EModelElement object) {
+                return createEModelElementAdapter();
+            }
+            public Object caseENamedElement(ENamedElement object) {
+                return createENamedElementAdapter();
+            }
+            public Object caseSQLObject(SQLObject object) {
+                return createSQLObjectAdapter();
+            }
+            public Object caseSQLQueryObject(SQLQueryObject object) {
+                return createSQLQueryObjectAdapter();
+            }
+            public Object caseValueExpression(ValueExpression object) {
+                return createValueExpressionAdapter();
+            }
+            public Object caseQueryValueExpression(QueryValueExpression object) {
+                return createQueryValueExpressionAdapter();
+            }
+            public Object caseValueExpressionAtomic(ValueExpressionAtomic object) {
+                return createValueExpressionAtomicAdapter();
+            }
+            public Object caseValueExpressionFunction(ValueExpressionFunction object) {
+                return createValueExpressionFunctionAdapter();
+            }
+            public Object caseValueExpressionCast(ValueExpressionCast object) {
+                return createValueExpressionCastAdapter();
+            }
+            public Object caseSearchCondition(SearchCondition object) {
+                return createSearchConditionAdapter();
+            }
+            public Object caseQuerySearchCondition(QuerySearchCondition object) {
+                return createQuerySearchConditionAdapter();
+            }
+            public Object casePredicate(Predicate object) {
+                return createPredicateAdapter();
+            }
+            public Object caseTableReference(TableReference object) {
+                return createTableReferenceAdapter();
+            }
+            public Object caseTableExpression(TableExpression object) {
+                return createTableExpressionAdapter();
+            }
+            public Object caseTableFunction(TableFunction object) {
+                return createTableFunctionAdapter();
+            }
+            public Object defaultCase(EObject object) {
+                return createEObjectAdapter();
+            }
+        };
+
+	/**
+     * Creates an adapter for the <code>target</code>.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @param target the object to adapt.
+     * @return the adapter for the <code>target</code>.
+     * @generated
+     */
+    public Adapter createAdapter(Notifier target) {
+        return (Adapter)modelSwitch.doSwitch((EObject)target);
+    }
+
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionConcat <em>XML Value Function Concat</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionConcat
+     * @generated
+     */
+    public Adapter createXMLValueFunctionConcatAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunction <em>XML Value Function</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunction
+     * @generated
+     */
+    public Adapter createXMLValueFunctionAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespaceDeclarationPrefix <em>XML Namespace Declaration Prefix</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespaceDeclarationPrefix
+     * @generated
+     */
+    public Adapter createXMLNamespaceDeclarationPrefixAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespaceDeclarationDefault <em>XML Namespace Declaration Default</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespaceDeclarationDefault
+     * @generated
+     */
+    public Adapter createXMLNamespaceDeclarationDefaultAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLAttributeDeclarationItem <em>XML Attribute Declaration Item</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLAttributeDeclarationItem
+     * @generated
+     */
+    public Adapter createXMLAttributeDeclarationItemAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElement <em>XML Value Function Element</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElement
+     * @generated
+     */
+    public Adapter createXMLValueFunctionElementAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespaceDeclarationItem <em>XML Namespace Declaration Item</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespaceDeclarationItem
+     * @generated
+     */
+    public Adapter createXMLNamespaceDeclarationItemAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElementContentItem <em>XML Value Function Element Content Item</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElementContentItem
+     * @generated
+     */
+    public Adapter createXMLValueFunctionElementContentItemAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForest <em>XML Value Function Forest</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForest
+     * @generated
+     */
+    public Adapter createXMLValueFunctionForestAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionComment <em>XML Value Function Comment</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionComment
+     * @generated
+     */
+    public Adapter createXMLValueFunctionCommentAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionDocument <em>XML Value Function Document</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionDocument
+     * @generated
+     */
+    public Adapter createXMLValueFunctionDocumentAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionParse <em>XML Value Function Parse</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionParse
+     * @generated
+     */
+    public Adapter createXMLValueFunctionParseAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionPI <em>XML Value Function PI</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionPI
+     * @generated
+     */
+    public Adapter createXMLValueFunctionPIAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQuery <em>XML Value Function Query</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQuery
+     * @generated
+     */
+    public Adapter createXMLValueFunctionQueryAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionText <em>XML Value Function Text</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionText
+     * @generated
+     */
+    public Adapter createXMLValueFunctionTextAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidate <em>XML Value Function Validate</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidate
+     * @generated
+     */
+    public Adapter createXMLValueFunctionValidateAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueExpressionCast <em>XML Value Expression Cast</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueExpressionCast
+     * @generated
+     */
+    public Adapter createXMLValueExpressionCastAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLPredicate <em>XML Predicate</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLPredicate
+     * @generated
+     */
+    public Adapter createXMLPredicateAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLPredicateContent <em>XML Predicate Content</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLPredicateContent
+     * @generated
+     */
+    public Adapter createXMLPredicateContentAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLPredicateDocument <em>XML Predicate Document</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLPredicateDocument
+     * @generated
+     */
+    public Adapter createXMLPredicateDocumentAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLPredicateExists <em>XML Predicate Exists</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLPredicateExists
+     * @generated
+     */
+    public Adapter createXMLPredicateExistsAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLPredicateValid <em>XML Predicate Valid</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLPredicateValid
+     * @generated
+     */
+    public Adapter createXMLPredicateValidAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryExpression <em>XML Query Expression</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryExpression
+     * @generated
+     */
+    public Adapter createXMLQueryExpressionAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentList <em>XML Query Argument List</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentList
+     * @generated
+     */
+    public Adapter createXMLQueryArgumentListAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentItem <em>XML Query Argument Item</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentItem
+     * @generated
+     */
+    public Adapter createXMLQueryArgumentItemAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunction <em>XML Serialize Function</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunction
+     * @generated
+     */
+    public Adapter createXMLSerializeFunctionAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunctionTarget <em>XML Serialize Function Target</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunctionTarget
+     * @generated
+     */
+    public Adapter createXMLSerializeFunctionTargetAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLAggregateFunction <em>XML Aggregate Function</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLAggregateFunction
+     * @generated
+     */
+    public Adapter createXMLAggregateFunctionAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionConcatContentItem <em>XML Value Function Concat Content Item</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionConcatContentItem
+     * @generated
+     */
+    public Adapter createXMLValueFunctionConcatContentItemAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionCommentContent <em>XML Value Function Comment Content</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionCommentContent
+     * @generated
+     */
+    public Adapter createXMLValueFunctionCommentContentAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionDocumentContent <em>XML Value Function Document Content</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionDocumentContent
+     * @generated
+     */
+    public Adapter createXMLValueFunctionDocumentContentAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLAggregateSortSpecification <em>XML Aggregate Sort Specification</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLAggregateSortSpecification
+     * @generated
+     */
+    public Adapter createXMLAggregateSortSpecificationAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForestContentItem <em>XML Value Function Forest Content Item</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForestContentItem
+     * @generated
+     */
+    public Adapter createXMLValueFunctionForestContentItemAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionParseContent <em>XML Value Function Parse Content</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionParseContent
+     * @generated
+     */
+    public Adapter createXMLValueFunctionParseContentAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionPIContent <em>XML Value Function PI Content</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionPIContent
+     * @generated
+     */
+    public Adapter createXMLValueFunctionPIContentAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableFunction <em>XML Table Function</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLTableFunction
+     * @generated
+     */
+    public Adapter createXMLTableFunctionAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionTextContent <em>XML Value Function Text Content</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionTextContent
+     * @generated
+     */
+    public Adapter createXMLValueFunctionTextContentAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateContent <em>XML Value Function Validate Content</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateContent
+     * @generated
+     */
+    public Adapter createXMLValueFunctionValidateContentAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionItem <em>XML Table Column Definition Item</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionItem
+     * @generated
+     */
+    public Adapter createXMLTableColumnDefinitionItemAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionRegular <em>XML Table Column Definition Regular</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionRegular
+     * @generated
+     */
+    public Adapter createXMLTableColumnDefinitionRegularAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionOrdinality <em>XML Table Column Definition Ordinality</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionOrdinality
+     * @generated
+     */
+    public Adapter createXMLTableColumnDefinitionOrdinalityAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingTo <em>XML Value Function Validate According To</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingTo
+     * @generated
+     */
+    public Adapter createXMLValueFunctionValidateAccordingToAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingToURI <em>XML Value Function Validate According To URI</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingToURI
+     * @generated
+     */
+    public Adapter createXMLValueFunctionValidateAccordingToURIAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingToIdentifier <em>XML Value Function Validate According To Identifier</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingToIdentifier
+     * @generated
+     */
+    public Adapter createXMLValueFunctionValidateAccordingToIdentifierAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElementName <em>XML Value Function Validate Element Name</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElementName
+     * @generated
+     */
+    public Adapter createXMLValueFunctionValidateElementNameAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElementNamespace <em>XML Value Function Validate Element Namespace</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElementNamespace
+     * @generated
+     */
+    public Adapter createXMLValueFunctionValidateElementNamespaceAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespacesDeclaration <em>XML Namespaces Declaration</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespacesDeclaration
+     * @generated
+     */
+    public Adapter createXMLNamespacesDeclarationAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLAttributesDeclaration <em>XML Attributes Declaration</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLAttributesDeclaration
+     * @generated
+     */
+    public Adapter createXMLAttributesDeclarationAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElementContentList <em>XML Value Function Element Content List</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElementContentList
+     * @generated
+     */
+    public Adapter createXMLValueFunctionElementContentListAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQueryReturning <em>XML Value Function Query Returning</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQueryReturning
+     * @generated
+     */
+    public Adapter createXMLValueFunctionQueryReturningAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElement <em>XML Value Function Validate Element</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElement
+     * @generated
+     */
+    public Adapter createXMLValueFunctionValidateElementAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionDefault <em>XML Table Column Definition Default</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionDefault
+     * @generated
+     */
+    public Adapter createXMLTableColumnDefinitionDefaultAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunctionEncoding <em>XML Serialize Function Encoding</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunctionEncoding
+     * @generated
+     */
+    public Adapter createXMLSerializeFunctionEncodingAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecore.EModelElement <em>EModel Element</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.emf.ecore.EModelElement
+     * @generated
+     */
+    public Adapter createEModelElementAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecore.ENamedElement <em>ENamed Element</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.emf.ecore.ENamedElement
+     * @generated
+     */
+    public Adapter createENamedElementAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.schema.SQLObject <em>SQL Object</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.schema.SQLObject
+     * @generated
+     */
+    public Adapter createSQLObjectAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.SQLQueryObject <em>SQL Query Object</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.SQLQueryObject
+     * @generated
+     */
+    public Adapter createSQLQueryObjectAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.expressions.ValueExpression <em>Value Expression</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.expressions.ValueExpression
+     * @generated
+     */
+    public Adapter createValueExpressionAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.QueryValueExpression <em>Query Value Expression</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.QueryValueExpression
+     * @generated
+     */
+    public Adapter createQueryValueExpressionAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionAtomic <em>Value Expression Atomic</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionAtomic
+     * @generated
+     */
+    public Adapter createValueExpressionAtomicAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction <em>Value Expression Function</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction
+     * @generated
+     */
+    public Adapter createValueExpressionFunctionAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast <em>Value Expression Cast</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast
+     * @generated
+     */
+    public Adapter createValueExpressionCastAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.expressions.SearchCondition <em>Search Condition</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.expressions.SearchCondition
+     * @generated
+     */
+    public Adapter createSearchConditionAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition <em>Query Search Condition</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition
+     * @generated
+     */
+    public Adapter createQuerySearchConditionAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.Predicate <em>Predicate</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.Predicate
+     * @generated
+     */
+    public Adapter createPredicateAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.TableReference <em>Table Reference</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.TableReference
+     * @generated
+     */
+    public Adapter createTableReferenceAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.TableExpression <em>Table Expression</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.TableExpression
+     * @generated
+     */
+    public Adapter createTableExpressionAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.query.TableFunction <em>Table Function</em>}'.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null so that we can easily ignore cases;
+     * it's useful to ignore a case when inheritance will catch all the cases anyway.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @see org.eclipse.datatools.modelbase.sql.query.TableFunction
+     * @generated
+     */
+    public Adapter createTableFunctionAdapter() {
+        return null;
+    }
+
+	/**
+     * Creates a new adapter for the default case.
+     * <!-- begin-user-doc -->
+     * This default implementation returns null.
+     * <!-- end-user-doc -->
+     * @return the new adapter.
+     * @generated
+     */
+    public Adapter createEObjectAdapter() {
+        return null;
+    }
+
+} //SQLXMLQueryAdapterFactory
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/util/SQLXMLQueryModelPlugin.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/util/SQLXMLQueryModelPlugin.java
new file mode 100644
index 0000000..af513b2
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/util/SQLXMLQueryModelPlugin.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.util;
+
+import org.eclipse.datatools.modelbase.sql.query.util.SQLQueryModelPlugin;
+
+/**
+ * This is the main plugin class for the SQL/XML Query Model. 
+ * 
+ * @author bpayton
+ */
+public class SQLXMLQueryModelPlugin extends SQLQueryModelPlugin {
+
+    /**
+     * Constructs an instance of this class.  This is the default constructor.
+     * The super constructor is invoked to perform plugin start-up registrations.
+     * (These are needed for the SQL Source Writer to work properly.)
+     */
+    public SQLXMLQueryModelPlugin() {
+        super();
+    }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/util/SQLXMLQueryModelSwitch.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/util/SQLXMLQueryModelSwitch.java
new file mode 100644
index 0000000..9ac2f2c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/util/SQLXMLQueryModelSwitch.java
@@ -0,0 +1,1793 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SQLXMLQueryModelSwitch.java,v 1.1 2005/12/22 22:21:19 bpayton Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.util;
+
+
+
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.Predicate;
+import org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition;
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.SQLQueryObject;
+import org.eclipse.datatools.modelbase.sql.query.TableExpression;
+import org.eclipse.datatools.modelbase.sql.query.TableFunction;
+import org.eclipse.datatools.modelbase.sql.query.TableReference;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionAtomic;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionFunction;
+import org.eclipse.datatools.modelbase.sql.xml.query.*;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EModelElement;
+import org.eclipse.emf.ecore.ENamedElement;
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.datatools.modelbase.sql.expressions.SearchCondition;
+import org.eclipse.datatools.modelbase.sql.expressions.ValueExpression;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.xml.query.SQLXMLQueryModelPackage
+ * @generated
+ */
+public class SQLXMLQueryModelSwitch {
+	/**
+     * The cached model package
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    protected static SQLXMLQueryModelPackage modelPackage;
+
+	/**
+     * Creates an instance of the switch.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public SQLXMLQueryModelSwitch() {
+        if (modelPackage == null) {
+            modelPackage = SQLXMLQueryModelPackage.eINSTANCE;
+        }
+    }
+
+	/**
+     * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the first non-null result returned by a <code>caseXXX</code> call.
+     * @generated
+     */
+    public Object doSwitch(EObject theEObject) {
+        return doSwitch(theEObject.eClass(), theEObject);
+    }
+
+	/**
+     * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the first non-null result returned by a <code>caseXXX</code> call.
+     * @generated
+     */
+    protected Object doSwitch(EClass theEClass, EObject theEObject) {
+        if (theEClass.eContainer() == modelPackage) {
+            return doSwitch(theEClass.getClassifierID(), theEObject);
+        }
+        else {
+            List eSuperTypes = theEClass.getESuperTypes();
+            return
+                eSuperTypes.isEmpty() ?
+                    defaultCase(theEObject) :
+                    doSwitch((EClass)eSuperTypes.get(0), theEObject);
+        }
+    }
+
+	/**
+     * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @return the first non-null result returned by a <code>caseXXX</code> call.
+     * @generated
+     */
+    protected Object doSwitch(int classifierID, EObject theEObject) {
+        switch (classifierID) {
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_CONCAT: {
+                XMLValueFunctionConcat xmlValueFunctionConcat = (XMLValueFunctionConcat)theEObject;
+                Object result = caseXMLValueFunctionConcat(xmlValueFunctionConcat);
+                if (result == null) result = caseXMLValueFunction(xmlValueFunctionConcat);
+                if (result == null) result = caseValueExpressionFunction(xmlValueFunctionConcat);
+                if (result == null) result = caseValueExpressionAtomic(xmlValueFunctionConcat);
+                if (result == null) result = caseQueryValueExpression(xmlValueFunctionConcat);
+                if (result == null) result = caseSQLQueryObject(xmlValueFunctionConcat);
+                if (result == null) result = caseValueExpression(xmlValueFunctionConcat);
+                if (result == null) result = caseSQLObject(xmlValueFunctionConcat);
+                if (result == null) result = caseENamedElement(xmlValueFunctionConcat);
+                if (result == null) result = caseEModelElement(xmlValueFunctionConcat);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION: {
+                XMLValueFunction xmlValueFunction = (XMLValueFunction)theEObject;
+                Object result = caseXMLValueFunction(xmlValueFunction);
+                if (result == null) result = caseValueExpressionFunction(xmlValueFunction);
+                if (result == null) result = caseValueExpressionAtomic(xmlValueFunction);
+                if (result == null) result = caseQueryValueExpression(xmlValueFunction);
+                if (result == null) result = caseSQLQueryObject(xmlValueFunction);
+                if (result == null) result = caseValueExpression(xmlValueFunction);
+                if (result == null) result = caseSQLObject(xmlValueFunction);
+                if (result == null) result = caseENamedElement(xmlValueFunction);
+                if (result == null) result = caseEModelElement(xmlValueFunction);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_NAMESPACE_DECLARATION_PREFIX: {
+                XMLNamespaceDeclarationPrefix xmlNamespaceDeclarationPrefix = (XMLNamespaceDeclarationPrefix)theEObject;
+                Object result = caseXMLNamespaceDeclarationPrefix(xmlNamespaceDeclarationPrefix);
+                if (result == null) result = caseXMLNamespaceDeclarationItem(xmlNamespaceDeclarationPrefix);
+                if (result == null) result = caseSQLQueryObject(xmlNamespaceDeclarationPrefix);
+                if (result == null) result = caseSQLObject(xmlNamespaceDeclarationPrefix);
+                if (result == null) result = caseENamedElement(xmlNamespaceDeclarationPrefix);
+                if (result == null) result = caseEModelElement(xmlNamespaceDeclarationPrefix);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_NAMESPACE_DECLARATION_DEFAULT: {
+                XMLNamespaceDeclarationDefault xmlNamespaceDeclarationDefault = (XMLNamespaceDeclarationDefault)theEObject;
+                Object result = caseXMLNamespaceDeclarationDefault(xmlNamespaceDeclarationDefault);
+                if (result == null) result = caseXMLNamespaceDeclarationItem(xmlNamespaceDeclarationDefault);
+                if (result == null) result = caseSQLQueryObject(xmlNamespaceDeclarationDefault);
+                if (result == null) result = caseSQLObject(xmlNamespaceDeclarationDefault);
+                if (result == null) result = caseENamedElement(xmlNamespaceDeclarationDefault);
+                if (result == null) result = caseEModelElement(xmlNamespaceDeclarationDefault);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_ATTRIBUTE_DECLARATION_ITEM: {
+                XMLAttributeDeclarationItem xmlAttributeDeclarationItem = (XMLAttributeDeclarationItem)theEObject;
+                Object result = caseXMLAttributeDeclarationItem(xmlAttributeDeclarationItem);
+                if (result == null) result = caseQueryValueExpression(xmlAttributeDeclarationItem);
+                if (result == null) result = caseSQLQueryObject(xmlAttributeDeclarationItem);
+                if (result == null) result = caseValueExpression(xmlAttributeDeclarationItem);
+                if (result == null) result = caseSQLObject(xmlAttributeDeclarationItem);
+                if (result == null) result = caseENamedElement(xmlAttributeDeclarationItem);
+                if (result == null) result = caseEModelElement(xmlAttributeDeclarationItem);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT: {
+                XMLValueFunctionElement xmlValueFunctionElement = (XMLValueFunctionElement)theEObject;
+                Object result = caseXMLValueFunctionElement(xmlValueFunctionElement);
+                if (result == null) result = caseXMLValueFunction(xmlValueFunctionElement);
+                if (result == null) result = caseValueExpressionFunction(xmlValueFunctionElement);
+                if (result == null) result = caseValueExpressionAtomic(xmlValueFunctionElement);
+                if (result == null) result = caseQueryValueExpression(xmlValueFunctionElement);
+                if (result == null) result = caseSQLQueryObject(xmlValueFunctionElement);
+                if (result == null) result = caseValueExpression(xmlValueFunctionElement);
+                if (result == null) result = caseSQLObject(xmlValueFunctionElement);
+                if (result == null) result = caseENamedElement(xmlValueFunctionElement);
+                if (result == null) result = caseEModelElement(xmlValueFunctionElement);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_NAMESPACE_DECLARATION_ITEM: {
+                XMLNamespaceDeclarationItem xmlNamespaceDeclarationItem = (XMLNamespaceDeclarationItem)theEObject;
+                Object result = caseXMLNamespaceDeclarationItem(xmlNamespaceDeclarationItem);
+                if (result == null) result = caseSQLQueryObject(xmlNamespaceDeclarationItem);
+                if (result == null) result = caseSQLObject(xmlNamespaceDeclarationItem);
+                if (result == null) result = caseENamedElement(xmlNamespaceDeclarationItem);
+                if (result == null) result = caseEModelElement(xmlNamespaceDeclarationItem);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_ITEM: {
+                XMLValueFunctionElementContentItem xmlValueFunctionElementContentItem = (XMLValueFunctionElementContentItem)theEObject;
+                Object result = caseXMLValueFunctionElementContentItem(xmlValueFunctionElementContentItem);
+                if (result == null) result = caseQueryValueExpression(xmlValueFunctionElementContentItem);
+                if (result == null) result = caseSQLQueryObject(xmlValueFunctionElementContentItem);
+                if (result == null) result = caseValueExpression(xmlValueFunctionElementContentItem);
+                if (result == null) result = caseSQLObject(xmlValueFunctionElementContentItem);
+                if (result == null) result = caseENamedElement(xmlValueFunctionElementContentItem);
+                if (result == null) result = caseEModelElement(xmlValueFunctionElementContentItem);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST: {
+                XMLValueFunctionForest xmlValueFunctionForest = (XMLValueFunctionForest)theEObject;
+                Object result = caseXMLValueFunctionForest(xmlValueFunctionForest);
+                if (result == null) result = caseXMLValueFunction(xmlValueFunctionForest);
+                if (result == null) result = caseValueExpressionFunction(xmlValueFunctionForest);
+                if (result == null) result = caseValueExpressionAtomic(xmlValueFunctionForest);
+                if (result == null) result = caseQueryValueExpression(xmlValueFunctionForest);
+                if (result == null) result = caseSQLQueryObject(xmlValueFunctionForest);
+                if (result == null) result = caseValueExpression(xmlValueFunctionForest);
+                if (result == null) result = caseSQLObject(xmlValueFunctionForest);
+                if (result == null) result = caseENamedElement(xmlValueFunctionForest);
+                if (result == null) result = caseEModelElement(xmlValueFunctionForest);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_COMMENT: {
+                XMLValueFunctionComment xmlValueFunctionComment = (XMLValueFunctionComment)theEObject;
+                Object result = caseXMLValueFunctionComment(xmlValueFunctionComment);
+                if (result == null) result = caseXMLValueFunction(xmlValueFunctionComment);
+                if (result == null) result = caseValueExpressionFunction(xmlValueFunctionComment);
+                if (result == null) result = caseValueExpressionAtomic(xmlValueFunctionComment);
+                if (result == null) result = caseQueryValueExpression(xmlValueFunctionComment);
+                if (result == null) result = caseSQLQueryObject(xmlValueFunctionComment);
+                if (result == null) result = caseValueExpression(xmlValueFunctionComment);
+                if (result == null) result = caseSQLObject(xmlValueFunctionComment);
+                if (result == null) result = caseENamedElement(xmlValueFunctionComment);
+                if (result == null) result = caseEModelElement(xmlValueFunctionComment);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_DOCUMENT: {
+                XMLValueFunctionDocument xmlValueFunctionDocument = (XMLValueFunctionDocument)theEObject;
+                Object result = caseXMLValueFunctionDocument(xmlValueFunctionDocument);
+                if (result == null) result = caseXMLValueFunction(xmlValueFunctionDocument);
+                if (result == null) result = caseValueExpressionFunction(xmlValueFunctionDocument);
+                if (result == null) result = caseValueExpressionAtomic(xmlValueFunctionDocument);
+                if (result == null) result = caseQueryValueExpression(xmlValueFunctionDocument);
+                if (result == null) result = caseSQLQueryObject(xmlValueFunctionDocument);
+                if (result == null) result = caseValueExpression(xmlValueFunctionDocument);
+                if (result == null) result = caseSQLObject(xmlValueFunctionDocument);
+                if (result == null) result = caseENamedElement(xmlValueFunctionDocument);
+                if (result == null) result = caseEModelElement(xmlValueFunctionDocument);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PARSE: {
+                XMLValueFunctionParse xmlValueFunctionParse = (XMLValueFunctionParse)theEObject;
+                Object result = caseXMLValueFunctionParse(xmlValueFunctionParse);
+                if (result == null) result = caseXMLValueFunction(xmlValueFunctionParse);
+                if (result == null) result = caseValueExpressionFunction(xmlValueFunctionParse);
+                if (result == null) result = caseValueExpressionAtomic(xmlValueFunctionParse);
+                if (result == null) result = caseQueryValueExpression(xmlValueFunctionParse);
+                if (result == null) result = caseSQLQueryObject(xmlValueFunctionParse);
+                if (result == null) result = caseValueExpression(xmlValueFunctionParse);
+                if (result == null) result = caseSQLObject(xmlValueFunctionParse);
+                if (result == null) result = caseENamedElement(xmlValueFunctionParse);
+                if (result == null) result = caseEModelElement(xmlValueFunctionParse);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PI: {
+                XMLValueFunctionPI xmlValueFunctionPI = (XMLValueFunctionPI)theEObject;
+                Object result = caseXMLValueFunctionPI(xmlValueFunctionPI);
+                if (result == null) result = caseXMLValueFunction(xmlValueFunctionPI);
+                if (result == null) result = caseValueExpressionFunction(xmlValueFunctionPI);
+                if (result == null) result = caseValueExpressionAtomic(xmlValueFunctionPI);
+                if (result == null) result = caseQueryValueExpression(xmlValueFunctionPI);
+                if (result == null) result = caseSQLQueryObject(xmlValueFunctionPI);
+                if (result == null) result = caseValueExpression(xmlValueFunctionPI);
+                if (result == null) result = caseSQLObject(xmlValueFunctionPI);
+                if (result == null) result = caseENamedElement(xmlValueFunctionPI);
+                if (result == null) result = caseEModelElement(xmlValueFunctionPI);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY: {
+                XMLValueFunctionQuery xmlValueFunctionQuery = (XMLValueFunctionQuery)theEObject;
+                Object result = caseXMLValueFunctionQuery(xmlValueFunctionQuery);
+                if (result == null) result = caseXMLValueFunction(xmlValueFunctionQuery);
+                if (result == null) result = caseValueExpressionFunction(xmlValueFunctionQuery);
+                if (result == null) result = caseValueExpressionAtomic(xmlValueFunctionQuery);
+                if (result == null) result = caseQueryValueExpression(xmlValueFunctionQuery);
+                if (result == null) result = caseSQLQueryObject(xmlValueFunctionQuery);
+                if (result == null) result = caseValueExpression(xmlValueFunctionQuery);
+                if (result == null) result = caseSQLObject(xmlValueFunctionQuery);
+                if (result == null) result = caseENamedElement(xmlValueFunctionQuery);
+                if (result == null) result = caseEModelElement(xmlValueFunctionQuery);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_TEXT: {
+                XMLValueFunctionText xmlValueFunctionText = (XMLValueFunctionText)theEObject;
+                Object result = caseXMLValueFunctionText(xmlValueFunctionText);
+                if (result == null) result = caseXMLValueFunction(xmlValueFunctionText);
+                if (result == null) result = caseValueExpressionFunction(xmlValueFunctionText);
+                if (result == null) result = caseValueExpressionAtomic(xmlValueFunctionText);
+                if (result == null) result = caseQueryValueExpression(xmlValueFunctionText);
+                if (result == null) result = caseSQLQueryObject(xmlValueFunctionText);
+                if (result == null) result = caseValueExpression(xmlValueFunctionText);
+                if (result == null) result = caseSQLObject(xmlValueFunctionText);
+                if (result == null) result = caseENamedElement(xmlValueFunctionText);
+                if (result == null) result = caseEModelElement(xmlValueFunctionText);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE: {
+                XMLValueFunctionValidate xmlValueFunctionValidate = (XMLValueFunctionValidate)theEObject;
+                Object result = caseXMLValueFunctionValidate(xmlValueFunctionValidate);
+                if (result == null) result = caseXMLValueFunction(xmlValueFunctionValidate);
+                if (result == null) result = caseValueExpressionFunction(xmlValueFunctionValidate);
+                if (result == null) result = caseValueExpressionAtomic(xmlValueFunctionValidate);
+                if (result == null) result = caseQueryValueExpression(xmlValueFunctionValidate);
+                if (result == null) result = caseSQLQueryObject(xmlValueFunctionValidate);
+                if (result == null) result = caseValueExpression(xmlValueFunctionValidate);
+                if (result == null) result = caseSQLObject(xmlValueFunctionValidate);
+                if (result == null) result = caseENamedElement(xmlValueFunctionValidate);
+                if (result == null) result = caseEModelElement(xmlValueFunctionValidate);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_VALUE_EXPRESSION_CAST: {
+                XMLValueExpressionCast xmlValueExpressionCast = (XMLValueExpressionCast)theEObject;
+                Object result = caseXMLValueExpressionCast(xmlValueExpressionCast);
+                if (result == null) result = caseValueExpressionCast(xmlValueExpressionCast);
+                if (result == null) result = caseValueExpressionAtomic(xmlValueExpressionCast);
+                if (result == null) result = caseQueryValueExpression(xmlValueExpressionCast);
+                if (result == null) result = caseSQLQueryObject(xmlValueExpressionCast);
+                if (result == null) result = caseValueExpression(xmlValueExpressionCast);
+                if (result == null) result = caseSQLObject(xmlValueExpressionCast);
+                if (result == null) result = caseENamedElement(xmlValueExpressionCast);
+                if (result == null) result = caseEModelElement(xmlValueExpressionCast);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_PREDICATE: {
+                XMLPredicate xmlPredicate = (XMLPredicate)theEObject;
+                Object result = caseXMLPredicate(xmlPredicate);
+                if (result == null) result = casePredicate(xmlPredicate);
+                if (result == null) result = caseQuerySearchCondition(xmlPredicate);
+                if (result == null) result = caseSQLQueryObject(xmlPredicate);
+                if (result == null) result = caseSearchCondition(xmlPredicate);
+                if (result == null) result = caseSQLObject(xmlPredicate);
+                if (result == null) result = caseENamedElement(xmlPredicate);
+                if (result == null) result = caseEModelElement(xmlPredicate);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_PREDICATE_CONTENT: {
+                XMLPredicateContent xmlPredicateContent = (XMLPredicateContent)theEObject;
+                Object result = caseXMLPredicateContent(xmlPredicateContent);
+                if (result == null) result = caseXMLPredicate(xmlPredicateContent);
+                if (result == null) result = casePredicate(xmlPredicateContent);
+                if (result == null) result = caseQuerySearchCondition(xmlPredicateContent);
+                if (result == null) result = caseSQLQueryObject(xmlPredicateContent);
+                if (result == null) result = caseSearchCondition(xmlPredicateContent);
+                if (result == null) result = caseSQLObject(xmlPredicateContent);
+                if (result == null) result = caseENamedElement(xmlPredicateContent);
+                if (result == null) result = caseEModelElement(xmlPredicateContent);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_PREDICATE_DOCUMENT: {
+                XMLPredicateDocument xmlPredicateDocument = (XMLPredicateDocument)theEObject;
+                Object result = caseXMLPredicateDocument(xmlPredicateDocument);
+                if (result == null) result = caseXMLPredicate(xmlPredicateDocument);
+                if (result == null) result = casePredicate(xmlPredicateDocument);
+                if (result == null) result = caseQuerySearchCondition(xmlPredicateDocument);
+                if (result == null) result = caseSQLQueryObject(xmlPredicateDocument);
+                if (result == null) result = caseSearchCondition(xmlPredicateDocument);
+                if (result == null) result = caseSQLObject(xmlPredicateDocument);
+                if (result == null) result = caseENamedElement(xmlPredicateDocument);
+                if (result == null) result = caseEModelElement(xmlPredicateDocument);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_PREDICATE_EXISTS: {
+                XMLPredicateExists xmlPredicateExists = (XMLPredicateExists)theEObject;
+                Object result = caseXMLPredicateExists(xmlPredicateExists);
+                if (result == null) result = caseXMLPredicate(xmlPredicateExists);
+                if (result == null) result = casePredicate(xmlPredicateExists);
+                if (result == null) result = caseQuerySearchCondition(xmlPredicateExists);
+                if (result == null) result = caseSQLQueryObject(xmlPredicateExists);
+                if (result == null) result = caseSearchCondition(xmlPredicateExists);
+                if (result == null) result = caseSQLObject(xmlPredicateExists);
+                if (result == null) result = caseENamedElement(xmlPredicateExists);
+                if (result == null) result = caseEModelElement(xmlPredicateExists);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_PREDICATE_VALID: {
+                XMLPredicateValid xmlPredicateValid = (XMLPredicateValid)theEObject;
+                Object result = caseXMLPredicateValid(xmlPredicateValid);
+                if (result == null) result = caseXMLPredicate(xmlPredicateValid);
+                if (result == null) result = casePredicate(xmlPredicateValid);
+                if (result == null) result = caseQuerySearchCondition(xmlPredicateValid);
+                if (result == null) result = caseSQLQueryObject(xmlPredicateValid);
+                if (result == null) result = caseSearchCondition(xmlPredicateValid);
+                if (result == null) result = caseSQLObject(xmlPredicateValid);
+                if (result == null) result = caseENamedElement(xmlPredicateValid);
+                if (result == null) result = caseEModelElement(xmlPredicateValid);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_QUERY_EXPRESSION: {
+                XMLQueryExpression xmlQueryExpression = (XMLQueryExpression)theEObject;
+                Object result = caseXMLQueryExpression(xmlQueryExpression);
+                if (result == null) result = caseSQLQueryObject(xmlQueryExpression);
+                if (result == null) result = caseSQLObject(xmlQueryExpression);
+                if (result == null) result = caseENamedElement(xmlQueryExpression);
+                if (result == null) result = caseEModelElement(xmlQueryExpression);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_LIST: {
+                XMLQueryArgumentList xmlQueryArgumentList = (XMLQueryArgumentList)theEObject;
+                Object result = caseXMLQueryArgumentList(xmlQueryArgumentList);
+                if (result == null) result = caseSQLQueryObject(xmlQueryArgumentList);
+                if (result == null) result = caseSQLObject(xmlQueryArgumentList);
+                if (result == null) result = caseENamedElement(xmlQueryArgumentList);
+                if (result == null) result = caseEModelElement(xmlQueryArgumentList);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_QUERY_ARGUMENT_ITEM: {
+                XMLQueryArgumentItem xmlQueryArgumentItem = (XMLQueryArgumentItem)theEObject;
+                Object result = caseXMLQueryArgumentItem(xmlQueryArgumentItem);
+                if (result == null) result = caseQueryValueExpression(xmlQueryArgumentItem);
+                if (result == null) result = caseSQLQueryObject(xmlQueryArgumentItem);
+                if (result == null) result = caseValueExpression(xmlQueryArgumentItem);
+                if (result == null) result = caseSQLObject(xmlQueryArgumentItem);
+                if (result == null) result = caseENamedElement(xmlQueryArgumentItem);
+                if (result == null) result = caseEModelElement(xmlQueryArgumentItem);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION: {
+                XMLSerializeFunction xmlSerializeFunction = (XMLSerializeFunction)theEObject;
+                Object result = caseXMLSerializeFunction(xmlSerializeFunction);
+                if (result == null) result = caseValueExpressionFunction(xmlSerializeFunction);
+                if (result == null) result = caseValueExpressionAtomic(xmlSerializeFunction);
+                if (result == null) result = caseQueryValueExpression(xmlSerializeFunction);
+                if (result == null) result = caseSQLQueryObject(xmlSerializeFunction);
+                if (result == null) result = caseValueExpression(xmlSerializeFunction);
+                if (result == null) result = caseSQLObject(xmlSerializeFunction);
+                if (result == null) result = caseENamedElement(xmlSerializeFunction);
+                if (result == null) result = caseEModelElement(xmlSerializeFunction);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION_TARGET: {
+                XMLSerializeFunctionTarget xmlSerializeFunctionTarget = (XMLSerializeFunctionTarget)theEObject;
+                Object result = caseXMLSerializeFunctionTarget(xmlSerializeFunctionTarget);
+                if (result == null) result = caseQueryValueExpression(xmlSerializeFunctionTarget);
+                if (result == null) result = caseSQLQueryObject(xmlSerializeFunctionTarget);
+                if (result == null) result = caseValueExpression(xmlSerializeFunctionTarget);
+                if (result == null) result = caseSQLObject(xmlSerializeFunctionTarget);
+                if (result == null) result = caseENamedElement(xmlSerializeFunctionTarget);
+                if (result == null) result = caseEModelElement(xmlSerializeFunctionTarget);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_AGGREGATE_FUNCTION: {
+                XMLAggregateFunction xmlAggregateFunction = (XMLAggregateFunction)theEObject;
+                Object result = caseXMLAggregateFunction(xmlAggregateFunction);
+                if (result == null) result = caseValueExpressionFunction(xmlAggregateFunction);
+                if (result == null) result = caseValueExpressionAtomic(xmlAggregateFunction);
+                if (result == null) result = caseQueryValueExpression(xmlAggregateFunction);
+                if (result == null) result = caseSQLQueryObject(xmlAggregateFunction);
+                if (result == null) result = caseValueExpression(xmlAggregateFunction);
+                if (result == null) result = caseSQLObject(xmlAggregateFunction);
+                if (result == null) result = caseENamedElement(xmlAggregateFunction);
+                if (result == null) result = caseEModelElement(xmlAggregateFunction);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_CONCAT_CONTENT_ITEM: {
+                XMLValueFunctionConcatContentItem xmlValueFunctionConcatContentItem = (XMLValueFunctionConcatContentItem)theEObject;
+                Object result = caseXMLValueFunctionConcatContentItem(xmlValueFunctionConcatContentItem);
+                if (result == null) result = caseQueryValueExpression(xmlValueFunctionConcatContentItem);
+                if (result == null) result = caseSQLQueryObject(xmlValueFunctionConcatContentItem);
+                if (result == null) result = caseValueExpression(xmlValueFunctionConcatContentItem);
+                if (result == null) result = caseSQLObject(xmlValueFunctionConcatContentItem);
+                if (result == null) result = caseENamedElement(xmlValueFunctionConcatContentItem);
+                if (result == null) result = caseEModelElement(xmlValueFunctionConcatContentItem);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_COMMENT_CONTENT: {
+                XMLValueFunctionCommentContent xmlValueFunctionCommentContent = (XMLValueFunctionCommentContent)theEObject;
+                Object result = caseXMLValueFunctionCommentContent(xmlValueFunctionCommentContent);
+                if (result == null) result = caseQueryValueExpression(xmlValueFunctionCommentContent);
+                if (result == null) result = caseSQLQueryObject(xmlValueFunctionCommentContent);
+                if (result == null) result = caseValueExpression(xmlValueFunctionCommentContent);
+                if (result == null) result = caseSQLObject(xmlValueFunctionCommentContent);
+                if (result == null) result = caseENamedElement(xmlValueFunctionCommentContent);
+                if (result == null) result = caseEModelElement(xmlValueFunctionCommentContent);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_DOCUMENT_CONTENT: {
+                XMLValueFunctionDocumentContent xmlValueFunctionDocumentContent = (XMLValueFunctionDocumentContent)theEObject;
+                Object result = caseXMLValueFunctionDocumentContent(xmlValueFunctionDocumentContent);
+                if (result == null) result = caseQueryValueExpression(xmlValueFunctionDocumentContent);
+                if (result == null) result = caseSQLQueryObject(xmlValueFunctionDocumentContent);
+                if (result == null) result = caseValueExpression(xmlValueFunctionDocumentContent);
+                if (result == null) result = caseSQLObject(xmlValueFunctionDocumentContent);
+                if (result == null) result = caseENamedElement(xmlValueFunctionDocumentContent);
+                if (result == null) result = caseEModelElement(xmlValueFunctionDocumentContent);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_AGGREGATE_SORT_SPECIFICATION: {
+                XMLAggregateSortSpecification xmlAggregateSortSpecification = (XMLAggregateSortSpecification)theEObject;
+                Object result = caseXMLAggregateSortSpecification(xmlAggregateSortSpecification);
+                if (result == null) result = caseSQLQueryObject(xmlAggregateSortSpecification);
+                if (result == null) result = caseSQLObject(xmlAggregateSortSpecification);
+                if (result == null) result = caseENamedElement(xmlAggregateSortSpecification);
+                if (result == null) result = caseEModelElement(xmlAggregateSortSpecification);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_FOREST_CONTENT_ITEM: {
+                XMLValueFunctionForestContentItem xmlValueFunctionForestContentItem = (XMLValueFunctionForestContentItem)theEObject;
+                Object result = caseXMLValueFunctionForestContentItem(xmlValueFunctionForestContentItem);
+                if (result == null) result = caseQueryValueExpression(xmlValueFunctionForestContentItem);
+                if (result == null) result = caseSQLQueryObject(xmlValueFunctionForestContentItem);
+                if (result == null) result = caseValueExpression(xmlValueFunctionForestContentItem);
+                if (result == null) result = caseSQLObject(xmlValueFunctionForestContentItem);
+                if (result == null) result = caseENamedElement(xmlValueFunctionForestContentItem);
+                if (result == null) result = caseEModelElement(xmlValueFunctionForestContentItem);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PARSE_CONTENT: {
+                XMLValueFunctionParseContent xmlValueFunctionParseContent = (XMLValueFunctionParseContent)theEObject;
+                Object result = caseXMLValueFunctionParseContent(xmlValueFunctionParseContent);
+                if (result == null) result = caseQueryValueExpression(xmlValueFunctionParseContent);
+                if (result == null) result = caseSQLQueryObject(xmlValueFunctionParseContent);
+                if (result == null) result = caseValueExpression(xmlValueFunctionParseContent);
+                if (result == null) result = caseSQLObject(xmlValueFunctionParseContent);
+                if (result == null) result = caseENamedElement(xmlValueFunctionParseContent);
+                if (result == null) result = caseEModelElement(xmlValueFunctionParseContent);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_PI_CONTENT: {
+                XMLValueFunctionPIContent xmlValueFunctionPIContent = (XMLValueFunctionPIContent)theEObject;
+                Object result = caseXMLValueFunctionPIContent(xmlValueFunctionPIContent);
+                if (result == null) result = caseQueryValueExpression(xmlValueFunctionPIContent);
+                if (result == null) result = caseSQLQueryObject(xmlValueFunctionPIContent);
+                if (result == null) result = caseValueExpression(xmlValueFunctionPIContent);
+                if (result == null) result = caseSQLObject(xmlValueFunctionPIContent);
+                if (result == null) result = caseENamedElement(xmlValueFunctionPIContent);
+                if (result == null) result = caseEModelElement(xmlValueFunctionPIContent);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_TABLE_FUNCTION: {
+                XMLTableFunction xmlTableFunction = (XMLTableFunction)theEObject;
+                Object result = caseXMLTableFunction(xmlTableFunction);
+                if (result == null) result = caseTableFunction(xmlTableFunction);
+                if (result == null) result = caseTableExpression(xmlTableFunction);
+                if (result == null) result = caseTableReference(xmlTableFunction);
+                if (result == null) result = caseSQLQueryObject(xmlTableFunction);
+                if (result == null) result = caseSQLObject(xmlTableFunction);
+                if (result == null) result = caseENamedElement(xmlTableFunction);
+                if (result == null) result = caseEModelElement(xmlTableFunction);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_TEXT_CONTENT: {
+                XMLValueFunctionTextContent xmlValueFunctionTextContent = (XMLValueFunctionTextContent)theEObject;
+                Object result = caseXMLValueFunctionTextContent(xmlValueFunctionTextContent);
+                if (result == null) result = caseQueryValueExpression(xmlValueFunctionTextContent);
+                if (result == null) result = caseSQLQueryObject(xmlValueFunctionTextContent);
+                if (result == null) result = caseValueExpression(xmlValueFunctionTextContent);
+                if (result == null) result = caseSQLObject(xmlValueFunctionTextContent);
+                if (result == null) result = caseENamedElement(xmlValueFunctionTextContent);
+                if (result == null) result = caseEModelElement(xmlValueFunctionTextContent);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_CONTENT: {
+                XMLValueFunctionValidateContent xmlValueFunctionValidateContent = (XMLValueFunctionValidateContent)theEObject;
+                Object result = caseXMLValueFunctionValidateContent(xmlValueFunctionValidateContent);
+                if (result == null) result = caseQueryValueExpression(xmlValueFunctionValidateContent);
+                if (result == null) result = caseSQLQueryObject(xmlValueFunctionValidateContent);
+                if (result == null) result = caseValueExpression(xmlValueFunctionValidateContent);
+                if (result == null) result = caseSQLObject(xmlValueFunctionValidateContent);
+                if (result == null) result = caseENamedElement(xmlValueFunctionValidateContent);
+                if (result == null) result = caseEModelElement(xmlValueFunctionValidateContent);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_ITEM: {
+                XMLTableColumnDefinitionItem xmlTableColumnDefinitionItem = (XMLTableColumnDefinitionItem)theEObject;
+                Object result = caseXMLTableColumnDefinitionItem(xmlTableColumnDefinitionItem);
+                if (result == null) result = caseSQLQueryObject(xmlTableColumnDefinitionItem);
+                if (result == null) result = caseSQLObject(xmlTableColumnDefinitionItem);
+                if (result == null) result = caseENamedElement(xmlTableColumnDefinitionItem);
+                if (result == null) result = caseEModelElement(xmlTableColumnDefinitionItem);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_REGULAR: {
+                XMLTableColumnDefinitionRegular xmlTableColumnDefinitionRegular = (XMLTableColumnDefinitionRegular)theEObject;
+                Object result = caseXMLTableColumnDefinitionRegular(xmlTableColumnDefinitionRegular);
+                if (result == null) result = caseXMLTableColumnDefinitionItem(xmlTableColumnDefinitionRegular);
+                if (result == null) result = caseSQLQueryObject(xmlTableColumnDefinitionRegular);
+                if (result == null) result = caseSQLObject(xmlTableColumnDefinitionRegular);
+                if (result == null) result = caseENamedElement(xmlTableColumnDefinitionRegular);
+                if (result == null) result = caseEModelElement(xmlTableColumnDefinitionRegular);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_ORDINALITY: {
+                XMLTableColumnDefinitionOrdinality xmlTableColumnDefinitionOrdinality = (XMLTableColumnDefinitionOrdinality)theEObject;
+                Object result = caseXMLTableColumnDefinitionOrdinality(xmlTableColumnDefinitionOrdinality);
+                if (result == null) result = caseXMLTableColumnDefinitionItem(xmlTableColumnDefinitionOrdinality);
+                if (result == null) result = caseSQLQueryObject(xmlTableColumnDefinitionOrdinality);
+                if (result == null) result = caseSQLObject(xmlTableColumnDefinitionOrdinality);
+                if (result == null) result = caseENamedElement(xmlTableColumnDefinitionOrdinality);
+                if (result == null) result = caseEModelElement(xmlTableColumnDefinitionOrdinality);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO: {
+                XMLValueFunctionValidateAccordingTo xmlValueFunctionValidateAccordingTo = (XMLValueFunctionValidateAccordingTo)theEObject;
+                Object result = caseXMLValueFunctionValidateAccordingTo(xmlValueFunctionValidateAccordingTo);
+                if (result == null) result = caseSQLQueryObject(xmlValueFunctionValidateAccordingTo);
+                if (result == null) result = caseSQLObject(xmlValueFunctionValidateAccordingTo);
+                if (result == null) result = caseENamedElement(xmlValueFunctionValidateAccordingTo);
+                if (result == null) result = caseEModelElement(xmlValueFunctionValidateAccordingTo);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_URI: {
+                XMLValueFunctionValidateAccordingToURI xmlValueFunctionValidateAccordingToURI = (XMLValueFunctionValidateAccordingToURI)theEObject;
+                Object result = caseXMLValueFunctionValidateAccordingToURI(xmlValueFunctionValidateAccordingToURI);
+                if (result == null) result = caseXMLValueFunctionValidateAccordingTo(xmlValueFunctionValidateAccordingToURI);
+                if (result == null) result = caseSQLQueryObject(xmlValueFunctionValidateAccordingToURI);
+                if (result == null) result = caseSQLObject(xmlValueFunctionValidateAccordingToURI);
+                if (result == null) result = caseENamedElement(xmlValueFunctionValidateAccordingToURI);
+                if (result == null) result = caseEModelElement(xmlValueFunctionValidateAccordingToURI);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ACCORDING_TO_IDENTIFIER: {
+                XMLValueFunctionValidateAccordingToIdentifier xmlValueFunctionValidateAccordingToIdentifier = (XMLValueFunctionValidateAccordingToIdentifier)theEObject;
+                Object result = caseXMLValueFunctionValidateAccordingToIdentifier(xmlValueFunctionValidateAccordingToIdentifier);
+                if (result == null) result = caseXMLValueFunctionValidateAccordingTo(xmlValueFunctionValidateAccordingToIdentifier);
+                if (result == null) result = caseSQLQueryObject(xmlValueFunctionValidateAccordingToIdentifier);
+                if (result == null) result = caseSQLObject(xmlValueFunctionValidateAccordingToIdentifier);
+                if (result == null) result = caseENamedElement(xmlValueFunctionValidateAccordingToIdentifier);
+                if (result == null) result = caseEModelElement(xmlValueFunctionValidateAccordingToIdentifier);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAME: {
+                XMLValueFunctionValidateElementName xmlValueFunctionValidateElementName = (XMLValueFunctionValidateElementName)theEObject;
+                Object result = caseXMLValueFunctionValidateElementName(xmlValueFunctionValidateElementName);
+                if (result == null) result = caseSQLQueryObject(xmlValueFunctionValidateElementName);
+                if (result == null) result = caseSQLObject(xmlValueFunctionValidateElementName);
+                if (result == null) result = caseENamedElement(xmlValueFunctionValidateElementName);
+                if (result == null) result = caseEModelElement(xmlValueFunctionValidateElementName);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT_NAMESPACE: {
+                XMLValueFunctionValidateElementNamespace xmlValueFunctionValidateElementNamespace = (XMLValueFunctionValidateElementNamespace)theEObject;
+                Object result = caseXMLValueFunctionValidateElementNamespace(xmlValueFunctionValidateElementNamespace);
+                if (result == null) result = caseSQLQueryObject(xmlValueFunctionValidateElementNamespace);
+                if (result == null) result = caseSQLObject(xmlValueFunctionValidateElementNamespace);
+                if (result == null) result = caseENamedElement(xmlValueFunctionValidateElementNamespace);
+                if (result == null) result = caseEModelElement(xmlValueFunctionValidateElementNamespace);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_NAMESPACES_DECLARATION: {
+                XMLNamespacesDeclaration xmlNamespacesDeclaration = (XMLNamespacesDeclaration)theEObject;
+                Object result = caseXMLNamespacesDeclaration(xmlNamespacesDeclaration);
+                if (result == null) result = caseSQLQueryObject(xmlNamespacesDeclaration);
+                if (result == null) result = caseSQLObject(xmlNamespacesDeclaration);
+                if (result == null) result = caseENamedElement(xmlNamespacesDeclaration);
+                if (result == null) result = caseEModelElement(xmlNamespacesDeclaration);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_ATTRIBUTES_DECLARATION: {
+                XMLAttributesDeclaration xmlAttributesDeclaration = (XMLAttributesDeclaration)theEObject;
+                Object result = caseXMLAttributesDeclaration(xmlAttributesDeclaration);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_ELEMENT_CONTENT_LIST: {
+                XMLValueFunctionElementContentList xmlValueFunctionElementContentList = (XMLValueFunctionElementContentList)theEObject;
+                Object result = caseXMLValueFunctionElementContentList(xmlValueFunctionElementContentList);
+                if (result == null) result = caseSQLQueryObject(xmlValueFunctionElementContentList);
+                if (result == null) result = caseSQLObject(xmlValueFunctionElementContentList);
+                if (result == null) result = caseENamedElement(xmlValueFunctionElementContentList);
+                if (result == null) result = caseEModelElement(xmlValueFunctionElementContentList);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_QUERY_RETURNING: {
+                XMLValueFunctionQueryReturning xmlValueFunctionQueryReturning = (XMLValueFunctionQueryReturning)theEObject;
+                Object result = caseXMLValueFunctionQueryReturning(xmlValueFunctionQueryReturning);
+                if (result == null) result = caseSQLQueryObject(xmlValueFunctionQueryReturning);
+                if (result == null) result = caseSQLObject(xmlValueFunctionQueryReturning);
+                if (result == null) result = caseENamedElement(xmlValueFunctionQueryReturning);
+                if (result == null) result = caseEModelElement(xmlValueFunctionQueryReturning);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_VALUE_FUNCTION_VALIDATE_ELEMENT: {
+                XMLValueFunctionValidateElement xmlValueFunctionValidateElement = (XMLValueFunctionValidateElement)theEObject;
+                Object result = caseXMLValueFunctionValidateElement(xmlValueFunctionValidateElement);
+                if (result == null) result = caseSQLQueryObject(xmlValueFunctionValidateElement);
+                if (result == null) result = caseSQLObject(xmlValueFunctionValidateElement);
+                if (result == null) result = caseENamedElement(xmlValueFunctionValidateElement);
+                if (result == null) result = caseEModelElement(xmlValueFunctionValidateElement);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_TABLE_COLUMN_DEFINITION_DEFAULT: {
+                XMLTableColumnDefinitionDefault xmlTableColumnDefinitionDefault = (XMLTableColumnDefinitionDefault)theEObject;
+                Object result = caseXMLTableColumnDefinitionDefault(xmlTableColumnDefinitionDefault);
+                if (result == null) result = caseQueryValueExpression(xmlTableColumnDefinitionDefault);
+                if (result == null) result = caseSQLQueryObject(xmlTableColumnDefinitionDefault);
+                if (result == null) result = caseValueExpression(xmlTableColumnDefinitionDefault);
+                if (result == null) result = caseSQLObject(xmlTableColumnDefinitionDefault);
+                if (result == null) result = caseENamedElement(xmlTableColumnDefinitionDefault);
+                if (result == null) result = caseEModelElement(xmlTableColumnDefinitionDefault);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            case SQLXMLQueryModelPackage.XML_SERIALIZE_FUNCTION_ENCODING: {
+                XMLSerializeFunctionEncoding xmlSerializeFunctionEncoding = (XMLSerializeFunctionEncoding)theEObject;
+                Object result = caseXMLSerializeFunctionEncoding(xmlSerializeFunctionEncoding);
+                if (result == null) result = caseSQLQueryObject(xmlSerializeFunctionEncoding);
+                if (result == null) result = caseSQLObject(xmlSerializeFunctionEncoding);
+                if (result == null) result = caseENamedElement(xmlSerializeFunctionEncoding);
+                if (result == null) result = caseEModelElement(xmlSerializeFunctionEncoding);
+                if (result == null) result = defaultCase(theEObject);
+                return result;
+            }
+            default: return defaultCase(theEObject);
+        }
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Value Function Concat</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Value Function Concat</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLValueFunctionConcat(XMLValueFunctionConcat object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Value Function</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Value Function</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLValueFunction(XMLValueFunction object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Namespace Declaration Prefix</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Namespace Declaration Prefix</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLNamespaceDeclarationPrefix(XMLNamespaceDeclarationPrefix object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Namespace Declaration Default</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Namespace Declaration Default</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLNamespaceDeclarationDefault(XMLNamespaceDeclarationDefault object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Attribute Declaration Item</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Attribute Declaration Item</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLAttributeDeclarationItem(XMLAttributeDeclarationItem object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Value Function Element</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Value Function Element</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLValueFunctionElement(XMLValueFunctionElement object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Namespace Declaration Item</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Namespace Declaration Item</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLNamespaceDeclarationItem(XMLNamespaceDeclarationItem object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Value Function Element Content Item</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Value Function Element Content Item</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLValueFunctionElementContentItem(XMLValueFunctionElementContentItem object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Value Function Forest</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Value Function Forest</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLValueFunctionForest(XMLValueFunctionForest object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Value Function Comment</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Value Function Comment</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLValueFunctionComment(XMLValueFunctionComment object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Value Function Document</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Value Function Document</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLValueFunctionDocument(XMLValueFunctionDocument object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Value Function Parse</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Value Function Parse</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLValueFunctionParse(XMLValueFunctionParse object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Value Function PI</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Value Function PI</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLValueFunctionPI(XMLValueFunctionPI object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Value Function Query</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Value Function Query</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLValueFunctionQuery(XMLValueFunctionQuery object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Value Function Text</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Value Function Text</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLValueFunctionText(XMLValueFunctionText object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Value Function Validate</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Value Function Validate</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLValueFunctionValidate(XMLValueFunctionValidate object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Value Expression Cast</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Value Expression Cast</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLValueExpressionCast(XMLValueExpressionCast object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Predicate</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Predicate</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLPredicate(XMLPredicate object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Predicate Content</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Predicate Content</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLPredicateContent(XMLPredicateContent object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Predicate Document</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Predicate Document</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLPredicateDocument(XMLPredicateDocument object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Predicate Exists</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Predicate Exists</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLPredicateExists(XMLPredicateExists object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Predicate Valid</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Predicate Valid</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLPredicateValid(XMLPredicateValid object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Query Expression</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Query Expression</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLQueryExpression(XMLQueryExpression object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Query Argument List</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Query Argument List</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLQueryArgumentList(XMLQueryArgumentList object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Query Argument Item</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Query Argument Item</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLQueryArgumentItem(XMLQueryArgumentItem object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Serialize Function</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Serialize Function</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLSerializeFunction(XMLSerializeFunction object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Serialize Function Target</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Serialize Function Target</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLSerializeFunctionTarget(XMLSerializeFunctionTarget object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Aggregate Function</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Aggregate Function</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLAggregateFunction(XMLAggregateFunction object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Value Function Concat Content Item</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Value Function Concat Content Item</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLValueFunctionConcatContentItem(XMLValueFunctionConcatContentItem object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Value Function Comment Content</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Value Function Comment Content</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLValueFunctionCommentContent(XMLValueFunctionCommentContent object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Value Function Document Content</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Value Function Document Content</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLValueFunctionDocumentContent(XMLValueFunctionDocumentContent object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Aggregate Sort Specification</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Aggregate Sort Specification</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLAggregateSortSpecification(XMLAggregateSortSpecification object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Value Function Forest Content Item</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Value Function Forest Content Item</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLValueFunctionForestContentItem(XMLValueFunctionForestContentItem object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Value Function Parse Content</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Value Function Parse Content</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLValueFunctionParseContent(XMLValueFunctionParseContent object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Value Function PI Content</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Value Function PI Content</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLValueFunctionPIContent(XMLValueFunctionPIContent object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Table Function</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Table Function</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLTableFunction(XMLTableFunction object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Value Function Text Content</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Value Function Text Content</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLValueFunctionTextContent(XMLValueFunctionTextContent object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Value Function Validate Content</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Value Function Validate Content</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLValueFunctionValidateContent(XMLValueFunctionValidateContent object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Table Column Definition Item</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Table Column Definition Item</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLTableColumnDefinitionItem(XMLTableColumnDefinitionItem object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Table Column Definition Regular</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Table Column Definition Regular</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLTableColumnDefinitionRegular(XMLTableColumnDefinitionRegular object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Table Column Definition Ordinality</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Table Column Definition Ordinality</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLTableColumnDefinitionOrdinality(XMLTableColumnDefinitionOrdinality object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Value Function Validate According To</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Value Function Validate According To</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLValueFunctionValidateAccordingTo(XMLValueFunctionValidateAccordingTo object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Value Function Validate According To URI</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Value Function Validate According To URI</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLValueFunctionValidateAccordingToURI(XMLValueFunctionValidateAccordingToURI object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Value Function Validate According To Identifier</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Value Function Validate According To Identifier</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLValueFunctionValidateAccordingToIdentifier(XMLValueFunctionValidateAccordingToIdentifier object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Value Function Validate Element Name</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Value Function Validate Element Name</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLValueFunctionValidateElementName(XMLValueFunctionValidateElementName object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Value Function Validate Element Namespace</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Value Function Validate Element Namespace</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLValueFunctionValidateElementNamespace(XMLValueFunctionValidateElementNamespace object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Namespaces Declaration</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Namespaces Declaration</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLNamespacesDeclaration(XMLNamespacesDeclaration object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Attributes Declaration</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Attributes Declaration</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLAttributesDeclaration(XMLAttributesDeclaration object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Value Function Element Content List</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Value Function Element Content List</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLValueFunctionElementContentList(XMLValueFunctionElementContentList object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Value Function Query Returning</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Value Function Query Returning</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLValueFunctionQueryReturning(XMLValueFunctionQueryReturning object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Value Function Validate Element</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Value Function Validate Element</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLValueFunctionValidateElement(XMLValueFunctionValidateElement object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Table Column Definition Default</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Table Column Definition Default</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLTableColumnDefinitionDefault(XMLTableColumnDefinitionDefault object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>XML Serialize Function Encoding</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>XML Serialize Function Encoding</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseXMLSerializeFunctionEncoding(XMLSerializeFunctionEncoding object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>EModel Element</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>EModel Element</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseEModelElement(EModelElement object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>ENamed Element</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>ENamed Element</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseENamedElement(ENamedElement object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>SQL Object</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>SQL Object</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseSQLObject(SQLObject object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>SQL Query Object</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>SQL Query Object</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseSQLQueryObject(SQLQueryObject object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Value Expression</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Value Expression</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseValueExpression(ValueExpression object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Query Value Expression</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Query Value Expression</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseQueryValueExpression(QueryValueExpression object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Value Expression Atomic</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Value Expression Atomic</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseValueExpressionAtomic(ValueExpressionAtomic object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Value Expression Function</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Value Expression Function</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseValueExpressionFunction(ValueExpressionFunction object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Value Expression Cast</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Value Expression Cast</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseValueExpressionCast(ValueExpressionCast object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Search Condition</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Search Condition</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseSearchCondition(SearchCondition object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Query Search Condition</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Query Search Condition</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseQuerySearchCondition(QuerySearchCondition object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Predicate</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Predicate</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object casePredicate(Predicate object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Table Reference</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Table Reference</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseTableReference(TableReference object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Table Expression</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Table Expression</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseTableExpression(TableExpression object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>Table Function</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>Table Function</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+     * @generated
+     */
+    public Object caseTableFunction(TableFunction object) {
+        return null;
+    }
+
+	/**
+     * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+     * <!-- begin-user-doc -->
+     * This implementation returns null;
+     * returning a non-null result will terminate the switch, but this is the last case anyway.
+     * <!-- end-user-doc -->
+     * @param object the target of the switch.
+     * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+     * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+     * @generated
+     */
+    public Object defaultCase(EObject object) {
+        return null;
+    }
+
+} //SQLXMLQuerySwitch
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/util/SQLXMLQuerySourceWriter.java b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/util/SQLXMLQuerySourceWriter.java
new file mode 100644
index 0000000..eff761e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql.xml.query/src/org/eclipse/datatools/modelbase/sql/xml/query/util/SQLXMLQuerySourceWriter.java
@@ -0,0 +1,1315 @@
+/*
+ * Copyright (c) 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ */
+package org.eclipse.datatools.modelbase.sql.xml.query.util;
+
+
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
+import org.eclipse.datatools.modelbase.sql.query.helper.StatementHelper;
+import org.eclipse.datatools.modelbase.sql.query.util.SQLQuerySourceWriter;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLAggregateFunction;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLAggregateSortSpecification;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLAttributeDeclarationItem;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLAttributesDeclaration;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLContentType;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLContentType2;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLDeclarationType;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLEmptyHandlingType;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespaceDeclarationDefault;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespaceDeclarationItem;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespaceDeclarationPrefix;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespacesDeclaration;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLNullHandlingType;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLPassingType;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLPredicateExists;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentItem;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentList;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryExpression;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLReturningType;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunction;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunctionEncoding;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunctionTarget;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionDefault;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionOrdinality;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionRegular;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLTableFunction;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueExpressionCast;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionComment;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionCommentContent;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionConcat;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionConcatContentItem;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionDocument;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionDocumentContent;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElement;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElementContentItem;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElementContentList;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForest;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForestContentItem;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionPI;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionPIContent;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionParse;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionParseContent;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQuery;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQueryReturning;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionText;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionTextContent;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidate;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingToIdentifier;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingToURI;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateContent;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElement;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElementName;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElementNamespace;
+import org.eclipse.datatools.modelbase.sql.xml.query.XMLWhitespaceHandlingType;
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.XMLDataType;
+
+
+
+/**
+ * SQL source generator for XML extension to SQL Query model.
+ * 
+ * @author ckadner
+ */
+public class SQLXMLQuerySourceWriter extends SQLQuerySourceWriter {
+    
+    /**
+     * String constant for {@link XMLContentType#CONTENT} and {@link XMLContentType2#CONTENT}
+     */
+    protected final  String XML_CONTENT_TYPE_CONTENT            = "CONTENT";
+
+    /**
+     * String constant for {@link XMLContentType#DOCUMENT} and {@link XMLContentType2#DOCUMENT}
+     */
+    protected final  String XML_CONTENT_TYPE_DOCUMENT           = "DOCUMENT";
+
+    /**
+     * String constant for {@link XMLContentType2#SEQUENCE}, value: "SEQUENCE"
+     */
+    protected final  String XML_CONTENT_TYPE_SEQUENCE           = "SEQUENCE";
+
+        
+    
+ /*   *//**
+     * String constant for {@link XMLNullHandlingType#ABSENT_ON_NULL}
+     *//*
+    protected final  String XML_CONTENT_OPTION_ABSENT_ON_NULL   = "ABSENT ON NULL";
+    
+    *//**
+     * String constant for {@link XMLNullHandlingType#EMPTY_ON_NULL}
+     *//*
+    protected final  String XML_CONTENT_OPTION_EMPTY_ON_NULL    = "EMPTY ON NULL";
+    
+    *//**
+     * String constant for {@link XMLNullHandlingType#NIL_ON_NO_CONTENT}
+     *//*
+    protected final  String XML_CONTENT_OPTION_NIL_ON_NO_CONTENT = "NIL ON NO CONTENT";
+
+    *//**
+     * String constant for {@link XMLNullHandlingType#NIL_ON_NULL}
+     *//*
+    protected final  String XML_CONTENT_OPTION_NIL_ON_NULL      = "NIL ON NULL";
+
+    *//**
+     * String constant for {@link XMLNullHandlingType#NULL_ON_NULL}
+     *//*
+    protected final  String XML_CONTENT_OPTION_NULL_ON_NULL     = "NULL ON NULL";
+        
+*/    /**
+     * String constant for {@link XMLDeclarationType#INCLUDING_XMLDECLARATION}
+     */
+    protected final  String XML_DECLARATION_TYPE_INCLUDING      = "INCLUDING XMLDECLARATION";
+    
+    /**
+     * String constant for {@link XMLDeclarationType#EXCLUDING_XMLDECLARATION}
+     */
+    protected final  String XML_DECLARATION_TYPE_EXCLUDING      = "EXCLUDING XMLDECLARATION";
+
+    /**
+     * String constant for {@link XMLEmptyHandlingType#EMPTY_ON_EMPTY}
+     */
+    protected final  String XML_EMPTY_HANDLING_TYPE_EMPTY_ON_EMPTY = "EMPTY ON EMPTY";
+    
+    /**
+     * String constant for {@link XMLEmptyHandlingType#NULL_ON_EMPTY}
+     */
+    protected final  String XML_EMPTY_HANDLING_TYPE_NULL_ON_EMPTY = "NULL ON EMPTY";
+    
+    /**
+     * String constant for {@link XMLNullHandlingType#ABSENT_ON_NULL}
+     */
+    protected final  String XML_NULL_HANDLING_TYPE_ABSENT_ON_NULL = "ABSENT ON NULL";
+
+    /**
+     * String constant for {@link XMLNullHandlingType#EMPTY_ON_NULL}
+     */
+
+    protected final  String XML_NULL_HANDLING_TYPE_EMPTY_ON_NULL = "EMPTY ON NULL";
+    
+    /**
+     * String constant for {@link XMLNullHandlingType#NIL_ON_NO_CONTENT}
+     */
+    protected final  String XML_NULL_HANDLING_TYPE_NIL_ON_NO_CONTENT = "NIL ON NO CONTENT";
+
+    /**
+     * String constant for {@link XMLNullHandlingType#NIL_ON_NULL
+     */
+    protected final  String XML_NULL_HANDLING_TYPE_NIL_ON_NULL = "NIL ON NULL";
+    
+    /**
+     * String constant for {@link XMLNullHandlingType#NULL_ON_NULL
+     */
+    protected final  String XML_NULL_HANDLING_TYPE_NULL_ON_NULL = "NULL ON NULL";
+    
+    /**
+     * String constant for {@link XMLPassingType#BY_REF}
+     */
+    protected final  String BY_REF        = "BY REF";
+
+    /**
+     * String constant for {@link XMLPassingType#BY_VALUE}
+     */
+    protected final  String BY_VALUE      = "BY VALUE";
+    
+    /**
+     * String constant for {@link XMLReturningType#RETURNING_CONTENT}
+     */
+    protected final  String XML_RETURNING_TYPE_CONTENT          = "RETURNING CONTENT";
+
+    /**
+     * String constant for {@link XMLReturningType#RETURNING_SEQUENCE}
+     */
+    protected final  String XML_RETURNING_TYPE_SEQUENCE         = "RETURNING SEQUENCE";
+
+    /**
+     * String constant for {@link XMLWhitespaceHandlingType#PRESERE_WHITESPACE}
+     */
+    protected final  String XML_WHITESPACE_PRESERVE             = "PRESERVE WHITESPACE";
+    
+    /**
+     * String constant for {@link XMLWhitespaceHandlingType#STRIP_WHITESPACE}
+     */
+    protected final  String XML_WHITESPACE_STRIP                = "STRIP WHITESPACE";
+    
+    
+    
+    
+
+    /** String constant, value: "ACCORDING TO XMLSCHEMA" */
+    protected final  String ACCORDING_TO_XMLSCHEMA = "ACCORDING TO XMLSCHEMA"; 
+   
+    /** String constant, value: "COLUMNS" */
+    protected final  String COLUMNS               = "COLUMNS"; 
+    
+    /** String constant, value: "CONTENT" */
+    protected final  String CONTENT               = "CONTENT"; 
+
+    /** String constant, value: "ELEMENT" */
+    protected final  String ELEMENT               = "ELEMENT"; 
+
+    /** String constant, value: "ENCODING" */
+    protected final  String ENCODING              = "ENCODING"; 
+
+    /** String constant, value: "FOR ORDINALITY" */
+    protected final  String FOR_ORDINALITY        = "FOR ORDINALITY"; 
+
+    /** String constant, value: "ID" */
+    protected final  String ID                    = "ID"; 
+    
+    /** String constant "LOCATION" */
+    protected final  String LOCATION              = "LOCATION";
+    
+    /** String constant "NAME" */
+    protected final  String NAME                  = "NAME";
+
+    /** String constant "NAMESPACE" */
+    protected final  String NAMESPACE             = "NAMESPACE";
+
+    /** String constant "NO DEFAULT" */
+    protected final  String NO_DEFAULT            = "NO DEFAULT";
+    
+    /** String constant "NO NAMESPACE" */
+    protected final  String NO_NAMESPACE          = "NO NAMESPACE";
+
+    /** String constant "OPTION" */
+    protected final  String OPTION                = "OPTION";
+
+    /** String constant "PASSING" */
+    protected final  String PASSING               = "PASSING";
+    
+    /** String constant "PATH" */
+    protected final  String PATH                  = "PATH";
+
+    /** String constant "RETURNING" */
+    protected final  String RETURNING             = "RETURNING";
+    
+    /** String constant "URI" */
+    protected final  String URI                   = "URI";
+            
+    /** String constant "VERSION" */
+    protected final  String VERSION               = "VERSION";
+    
+    /** String constant, value: "XMLAGG" */
+    protected final  String XMLAGG                = "XMLAGG"; 
+ 
+    /** String constant, value: "XMLATTRIBUTES" */
+    protected final  String XMLATTRIBUTES         = "XMLATTRIBUTES";
+
+    /** String constant, value: "XMLCAST" */
+    protected final  String XMLCAST               = "XMLCAST"; 
+ 
+    /** String constant, value: "XMLCONCAT" */
+    protected final  String XMLCONCAT             = "XMLCONCAT"; 
+
+    /** String constant, value: "XMLCOMMENT" */
+    protected final  String XMLCOMMENT            = "XMLCOMMENT"; 
+
+    /** String constant, value: "XMLELEMENT" */
+    protected final  String XMLELEMENT            = "XMLELEMENT";
+
+    /** String constant, value: "XMLEXISTS" */
+    protected final  String XMLEXISTS            = "XMLEXISTS";
+
+    /** String constant, value: "XMLDOCUMENT" */
+    protected final  String XMLDOCUMENT           = "XMLDOCUMENT";
+
+    /** String constant, value: "XMLFOREST" */
+    protected final  String XMLFOREST             = "XMLFOREST";
+ 
+    /** String constant, value: "XMLNAMESPACES" */
+    protected final  String XMLNAMESPACES         = "XMLNAMESPACES"; 
+ 
+    /** String constant, value: "XMLPARSE" */
+    protected final  String XMLPARSE              = "XMLPARSE";
+    
+    /** String constant, value: "XMLPI" */
+    protected final  String XMLPI              = "XMLPI";
+
+    /** String constant, value: "XMLQUERY" */
+    protected final  String XMLQUERY              = "XMLQUERY";
+    
+    /** String constant, value: "XMLSERIALIZE" */
+    protected final  String XMLSERIALIZE          = "XMLSERIALIZE";
+    
+    /** String constant, value: "XMLTABLE" */
+    protected final  String XMLTABLE              = "XMLTABLE";
+    
+    /** String constant, value: "XMLTEXT" */
+    protected final  String XMLTEXT               = "XMLTEXT";
+    
+    /** String constant, value: "XMLVALIDATE" */
+    protected final  String XMLVALIDATE           = "XMLVALIDATE";
+
+    
+    /* ****************** XML Data Type ****************** */
+    
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.datatypes.XMLDataType#getSQL()
+     */
+    protected void appendSpecificSQL(XMLDataType dataType, StringBuffer sb)
+    {
+    	appendSpecificSQL(dataType.getPrimitiveType(), sb);
+    }
+    
+    /* ****************** XML enumeration types ****************** */
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLContentType#getSQL()
+     */
+    protected void appendSpecificSQL(XMLContentType contentType, StringBuffer sb) {
+        int type = contentType.getValue();
+        switch(type){
+            case XMLContentType.CONTENT:
+                sb.append(XML_CONTENT_TYPE_CONTENT);
+                break;
+            case XMLContentType.DOCUMENT:
+                sb.append(XML_CONTENT_TYPE_DOCUMENT);
+                break;
+            default:
+                break;
+        }
+    }
+
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLContentType2#getSQL()
+     */
+    protected void appendSpecificSQL(XMLContentType2 contentType, StringBuffer sb) {
+        int type = contentType.getValue();
+        switch(type){
+            case XMLContentType2.CONTENT:
+                sb.append(XML_CONTENT_TYPE_CONTENT);
+                break;
+            case XMLContentType2.DOCUMENT:
+                sb.append(XML_CONTENT_TYPE_DOCUMENT);
+                break;
+            case XMLContentType2.SEQUENCE:
+                sb.append(XML_CONTENT_TYPE_SEQUENCE);
+                break;
+            default:
+                break;
+        }
+    }
+    
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLDeclarationType#getSQL()
+     */
+    protected void appendSpecificSQL(XMLDeclarationType declarationType, StringBuffer sb) {
+        int type = declarationType.getValue();
+        switch(type){
+            case XMLDeclarationType.INCLUDING_XMLDECLARATION:
+                sb.append(XML_DECLARATION_TYPE_INCLUDING);
+                break;
+            case XMLDeclarationType.EXCLUDING_XMLDECLARATION:
+                sb.append(XML_DECLARATION_TYPE_EXCLUDING);
+                break;
+            default:
+                break;
+        }
+    }
+ 
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XXMLEmptyHandlingType#getSQL()
+     */
+    protected void appendSpecificSQL(XMLEmptyHandlingType emptyHandlingType, StringBuffer sb) {
+        int type = emptyHandlingType.getValue();
+        switch(type){
+            case XMLEmptyHandlingType.EMPTY_ON_EMPTY:
+                sb.append(XML_EMPTY_HANDLING_TYPE_EMPTY_ON_EMPTY);
+                break;
+            case XMLEmptyHandlingType.NULL_ON_EMPTY:
+                sb.append(XML_EMPTY_HANDLING_TYPE_NULL_ON_EMPTY);
+                break;
+            default:
+                break;
+        }
+    }
+ 
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLPassingType#getSQL()
+     */
+    protected void appendSpecificSQL(XMLPassingType passingType, StringBuffer sb)
+    {
+        int type = passingType.getValue();
+        switch(type){
+            case(XMLPassingType.BY_REF):
+                sb.append(BY_REF);
+                break;
+            case(XMLPassingType.BY_VALUE):
+                sb.append(BY_VALUE);
+                break;
+            case(XMLPassingType.NONE):
+                break;
+            default:
+                break;
+        }
+    }
+    
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLReturningType#getSQL()
+     */
+    protected void appendSpecificSQL(XMLReturningType returningType, StringBuffer sb) {
+        int type = returningType.getValue();
+        switch (type) {
+            case XMLReturningType.RETURNING_CONTENT:
+                sb.append(XML_RETURNING_TYPE_CONTENT);
+                break;
+            case XMLReturningType.RETURNING_SEQUENCE:
+                sb.append(XML_RETURNING_TYPE_SEQUENCE);
+                break;
+            default:
+                break;
+        }
+        
+    }
+  
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLNullHandlingType#getSQL()
+     */
+    protected void appendSpecificSQL(XMLNullHandlingType nullHandlingType, StringBuffer sb) {
+        int type = nullHandlingType.getValue();
+        switch (type) {
+            case XMLNullHandlingType.ABSENT_ON_NULL:
+                sb.append(XML_NULL_HANDLING_TYPE_ABSENT_ON_NULL);
+                break;
+            case XMLNullHandlingType.EMPTY_ON_NULL:
+                sb.append(XML_NULL_HANDLING_TYPE_EMPTY_ON_NULL);
+                break;
+            case XMLNullHandlingType.NIL_ON_NO_CONTENT:
+                sb.append(XML_NULL_HANDLING_TYPE_NIL_ON_NO_CONTENT);
+                break;
+            case XMLNullHandlingType.NIL_ON_NULL:
+                sb.append(XML_NULL_HANDLING_TYPE_NIL_ON_NULL);
+                break;
+            case XMLNullHandlingType.NULL_ON_NULL:
+                sb.append(XML_NULL_HANDLING_TYPE_NULL_ON_NULL);
+                break;
+            default:
+                break;
+        }
+        
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLWhitespaceHandlingType#getSQL()
+     */
+    protected void appendSpecificSQL(XMLWhitespaceHandlingType whiteSpaceHandlingType, StringBuffer sb) {
+        int type = whiteSpaceHandlingType.getValue();
+        switch(type){
+            case XMLWhitespaceHandlingType.PRESERE_WHITESPACE:
+                sb.append(XML_WHITESPACE_PRESERVE);
+                break;
+            case XMLWhitespaceHandlingType.STRIP_WHITESPACE:
+                sb.append(XML_WHITESPACE_STRIP);
+                break;
+            default:
+                break;
+        }
+    }
+  
+    
+    /* ****************** XML value functions ****************** */
+    
+    /**
+     * @see com#ibm.db.models.sql.xml.query.XMLAggregateFunction#getSQL()
+     */
+    protected void appendSpecificSQL(XMLAggregateFunction aggFunction, StringBuffer sb) {
+        appendKeyword(sb, XMLAGG);
+        appendSymbol(sb, PAREN_LEFT);
+        appendSQLForSQLObjectList(aggFunction.getParameterList(),sb);
+        
+        /* Add the optional ORDER BY list. */
+        List sortSpecList = aggFunction.getSortSpecList();
+        if (sortSpecList != null && !sortSpecList.isEmpty()){
+            appendSpace(sb);
+            appendKeyword(sb, ORDER_BY);
+            appendSpace(sb);
+            appendSQLForSQLObjectList(aggFunction.getSortSpecList(),sb);
+        }
+        
+        /* The RETURNING clause is also optional, so only add it when the Returning Type is something 
+         * other than NONE. */
+        XMLReturningType type = aggFunction.getReturningOption();
+        if (type != XMLReturningType.NONE_LITERAL) {
+            appendSpace(sb);
+            appendSpecificSQL(type,sb);
+        }
+        appendSymbol(sb, PAREN_RIGHT);
+    }
+    
+    /**
+     * @see com#ibm.db.models.sql.xml.query.XMLAggregateSortSpecification#getSQL()
+     */
+    protected void appendSpecificSQL(XMLAggregateSortSpecification sortSpec, StringBuffer sb) {
+        appendSQL(sortSpec.getOrderBySpec(),sb);
+    }
+
+
+    
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLAttributesDeclaration#getSQL()
+     */
+    protected void appendSpecificSQL(XMLAttributesDeclaration attributesDecl, StringBuffer sb) {
+        List list =  attributesDecl.getAttributeDeclItem();
+        if(!list.isEmpty()){
+            sb.append(XMLATTRIBUTES);
+            sb.append(PAREN_LEFT);
+            appendSQLForSQLObjectList(list, sb);
+            sb.append(PAREN_RIGHT);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLAttributesDeclaration#getSQL()
+     */
+    protected void appendSpecificSQL(XMLAttributeDeclarationItem attributesDeclItem, StringBuffer sb) {
+        appendSQL(attributesDeclItem.getValueExpr(),sb);
+        if(attributesDeclItem.getName()!= null){
+            sb.append(SPACE);
+            sb.append(AS);
+            sb.append(SPACE);
+            sb.append(attributesDeclItem.getName());
+        }
+    }
+    
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElement#getSQL()
+     */
+    protected void appendSpecificSQL(XMLValueFunctionElement elementFunction, StringBuffer sb) {
+        int indent = getLastLineIndent(sb)+2;
+        
+        // break onto new line if necessary
+        if (!isLastLineEmpty(sb)) {
+            sb.append(NEW_LINE);
+            appendSpace(sb, indent);
+        }
+        
+        sb.append(XMLELEMENT);
+        sb.append(SPACE);
+        sb.append(PAREN_LEFT);
+        sb.append(NAME);
+        sb.append(SPACE);
+        sb.append(elementFunction.getElementName());
+        
+        if(elementFunction.getNamespacesDecl() != null){
+            sb.append(COMMA);
+            appendWithConditionalLineBreaks(elementFunction.getNamespacesDecl(), sb, indent, displayWidth);
+        }
+        
+        if(elementFunction.getAttributesDecl() != null){
+            sb.append(COMMA);
+            sb.append(SPACE);
+            appendSpecificSQL(elementFunction.getAttributesDecl(),sb);
+        }
+        
+        XMLValueFunctionElementContentList elementContentList = elementFunction.getElementContentList();
+        if(elementContentList != null){
+	        appendSQL(elementContentList,sb);
+        }
+
+        XMLReturningType returningOption = elementFunction.getReturningOption();
+        if(returningOption != XMLReturningType.NONE_LITERAL){
+        	sb.append(SPACE);
+        	appendSpecificSQL(returningOption,sb);
+        }
+        sb.append(PAREN_RIGHT);
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLExists#getSQL()
+     */
+    protected void appendSpecificSQL(XMLPredicateExists existsPredicate, StringBuffer sb) {
+    	sb.append(XMLEXISTS);
+    	sb.append(PAREN_LEFT);
+    	XMLQueryExpression queryExpr = existsPredicate.getXqueryExpr();
+    	appendSQL(queryExpr,sb);
+    	XMLQueryArgumentList argList = existsPredicate.getXqueryArgList();
+    	if(argList != null){
+    		sb.append(SPACE);
+    		appendSQL(argList,sb);
+    	}
+    	sb.append(PAREN_RIGHT);
+    	
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForest#getSQL()
+     */
+    protected void appendSpecificSQL(XMLValueFunctionForest forestFunction, StringBuffer sb) {
+    	sb.append(XMLFOREST);
+    	sb.append(PAREN_LEFT);
+
+    	XMLNamespacesDeclaration namespacesDecl = forestFunction.getNamespacesDecl();
+    	if(namespacesDecl != null){
+    		sb.append(SPACE);
+    		appendSQL(namespacesDecl,sb);
+            sb.append(COMMA);
+            sb.append(SPACE);
+    	}
+    	List  contentItemList = forestFunction.getForestContentList();
+    	appendSQLForSQLObjectList(contentItemList,sb);
+
+    	XMLNullHandlingType nullHandlingType = forestFunction.getNullHandlingOption();
+    	if(nullHandlingType != XMLNullHandlingType.NONE_LITERAL){
+    		sb.append(SPACE);
+    		sb.append(OPTION);
+    		sb.append(SPACE);
+    		appendSpecificSQL(nullHandlingType,sb);
+    	}
+    	
+    	XMLReturningType returningType = forestFunction.getReturningOption();
+    	if(returningType != XMLReturningType.NONE_LITERAL){
+            sb.append(SPACE);
+            appendSpecificSQL(returningType, sb);
+    	}
+    	sb.append(PAREN_RIGHT);
+    }   
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionForestContentItem#getSQL()
+     */
+    protected void appendSpecificSQL(XMLValueFunctionForestContentItem forestContentItem, StringBuffer sb) {
+    	appendSQL(forestContentItem.getValueExpr(),sb);
+    	String name = forestContentItem.getName();
+    	if(name != null){
+    		sb.append(SPACE);
+    		sb.append(AS);
+    		sb.append(SPACE);
+    		sb.append(name);
+    	}
+    }
+    
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespacesDeclaration#getSQL()
+     */
+    protected void appendSpecificSQL(XMLNamespacesDeclaration namespaceDecl, StringBuffer sb) {
+            List declItemList = namespaceDecl.getNamespaceDecltemList();
+            if(!declItemList.isEmpty()){
+                sb.append(XMLNAMESPACES);
+                sb.append(PAREN_LEFT);
+                appendSQLForSQLObjectList(declItemList, sb);
+                sb.append(PAREN_RIGHT);
+            }
+    }
+
+    //TODO DOC: in SourceWriter never work with instanceof in appendSpecificSQL
+    //          methods with general SQLObject types, cause the reflection will
+    //          allways look for methods with the specific SQLQueryObject type
+    //          e.g. don't:   appendSpecificSQL(XMLNamespaceDeclarationItem item...) {
+    //                          ...if (item instanceof XMLNamespaceDeclarationItemDefault) ...},
+    //               instead: appendSpecificSQL(XMLNamespaceDeclarationItemDefault...)
+    //               and:     appendSpecificSQL(XMLNamespaceDeclarationItemPrefix...)
+    /**
+     * @deprecated used instead {@link }
+     */
+    protected void appendSpecificSQL(XMLNamespaceDeclarationItem namespaceDecItem, StringBuffer sb) {
+        if(namespaceDecItem instanceof XMLNamespaceDeclarationPrefix){
+            sb.append(namespaceDecItem.getUri());
+            sb.append(SPACE);
+            sb.append(AS);
+            sb.append(SPACE);
+            sb.append(((XMLNamespaceDeclarationPrefix)namespaceDecItem).getPrefix());
+        }
+        else if(namespaceDecItem instanceof XMLNamespaceDeclarationDefault){
+            if(((XMLNamespaceDeclarationDefault)namespaceDecItem).isNoDefault()){
+                sb.append(DEFAULT);
+                sb.append(SPACE);
+                sb.append(namespaceDecItem.getUri());
+            }
+            else{
+                sb.append(NO_DEFAULT);
+            }
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespaceDeclarationDefault#getSQL()
+     */
+    protected void appendSpecificSQL(XMLNamespaceDeclarationDefault namespaceDefault, StringBuffer sb) {
+        if (!namespaceDefault.isNoDefault()) {
+            sb.append(DEFAULT);
+            sb.append(SPACE);
+            sb.append(namespaceDefault.getUri());
+        }
+        else{
+            sb.append(NO_DEFAULT);
+        }
+    }
+    
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLNamespaceDeclarationPrefix#getSQL()
+     */
+    protected void appendSpecificSQL(XMLNamespaceDeclarationPrefix namespacePrefix, StringBuffer sb) {
+        sb.append(namespacePrefix.getUri());
+        sb.append(SPACE);
+        sb.append(AS);
+        sb.append(SPACE);
+        sb.append(namespacePrefix.getPrefix());
+    }
+    
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElementContentItem#getSQL()
+     */
+    protected void appendSpecificSQL(XMLValueFunctionElementContentItem elementContent, StringBuffer sb) {
+        QueryValueExpression expr = elementContent.getValueExpr();
+        appendSQL(expr,sb);
+    }
+    
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionElementContentList#getSQL()
+     */
+    protected void appendSpecificSQL(XMLValueFunctionElementContentList elementContentList, StringBuffer sb) {
+        if(elementContentList != null){
+            List contentListChildren = elementContentList.getElementContentListChildren();
+            if(! contentListChildren.isEmpty()){
+                sb.append(COMMA);
+                sb.append(SPACE);
+            	appendSQLForSQLObjectList(contentListChildren, sb);
+            }
+            XMLNullHandlingType nullType = elementContentList.getNullHandlingOption();
+            if(nullType != XMLNullHandlingType.NONE_LITERAL){
+            	sb.append(SPACE);
+            	sb.append(OPTION);
+            	sb.append(SPACE);
+            	appendSpecificSQL(nullType,sb);
+            }
+        }
+    }
+    
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunction#getSQL()
+     */
+    protected void appendSpecificSQL(XMLSerializeFunction xmlSerializeFunction, StringBuffer sb)
+    {
+        DataType asDataType = xmlSerializeFunction.getDataType();
+        String serializeVersion = xmlSerializeFunction.getSerializeVersion();
+        XMLDeclarationType declType = xmlSerializeFunction.getDeclarationOption();
+        XMLSerializeFunctionEncoding serializeEncoding = xmlSerializeFunction.getSerializeEncoding();
+
+        int indent = getLastLineIndent(sb) + STANDARD_INDENT;
+       
+        sb.append(XMLSERIALIZE);
+        sb.append(PAREN_LEFT);
+        appendSpecificSQL(xmlSerializeFunction.getContentOption(), sb);
+        
+        indentOnNewLine(sb, indent);
+        
+        appendSQL(xmlSerializeFunction.getSerializeTarget(), sb);
+        sb.append(SPACE);
+        sb.append(AS);
+        sb.append(SPACE);
+
+        if (asDataType == null) {
+            asDataType = xmlSerializeFunction.getSerializeTarget().getDataType();
+        }
+        appendSQL(asDataType,sb);
+
+        indentOnNewLine(sb, indent);
+
+        if (serializeEncoding != null && serializeEncoding.getEncodingName() != null) {
+            sb.append(SPACE);
+            sb.append(ENCODING);
+            sb.append(SPACE);
+            sb.append(serializeEncoding.getEncodingName());
+        }
+        
+        if (serializeVersion != null) {
+            sb.append(SPACE);
+            sb.append(VERSION);
+            sb.append(SPACE);
+            sb.append(serializeVersion);
+        }
+        
+        if (declType != null && declType != XMLDeclarationType.NONE_LITERAL) {
+            sb.append(SPACE);
+            appendSpecificSQL(declType, sb);
+        }
+        
+        sb.append(PAREN_RIGHT);
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLSerializeFunction#getSQL()
+     */
+    protected void appendSpecificSQL(XMLSerializeFunctionTarget xmlSerializeFunctionTarget, StringBuffer sb)
+    {
+        appendSQL(xmlSerializeFunctionTarget.getValueExpr(), sb);
+
+    }
+
+    
+    
+    
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentItem#getSQL()
+     */
+    protected void appendSpecificSQL(XMLQueryArgumentItem xQueryArgument, StringBuffer sb)
+    {
+        appendSQL(xQueryArgument.getValueExpr(), sb);
+        String variableName = xQueryArgument.getName();
+        if (variableName != null) {
+            sb.append(SPACE);
+            sb.append(AS);
+            sb.append(SPACE);
+            sb.append(variableName);
+        }
+        
+        XMLPassingType passingMechanism = xQueryArgument.getPassingMechanism();
+        if (passingMechanism != XMLPassingType.NONE_LITERAL) {
+            sb.append(SPACE);
+            appendSpecificSQL(passingMechanism, sb);
+        }
+    }    
+    
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryArgumentList#getSQL()
+     */
+    protected void appendSpecificSQL(XMLQueryArgumentList xQueryArgList, StringBuffer sb)
+    {
+        sb.append(PASSING);
+        sb.append(SPACE);
+        appendSpecificSQL(xQueryArgList.getPassingMechanism(), sb);
+        sb.append(SPACE);
+        appendSQLForSQLObjectList(xQueryArgList.getXqueryArgListChildren(), sb);
+    }    
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLQueryExpression#getSQL()
+     */
+    protected void appendSpecificSQL(XMLQueryExpression queryExpr, StringBuffer sb)
+    {
+        sb.append(queryExpr.getXqueryExprContent());
+    }    
+    
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueExpressionCast#getSQL()
+     */
+    protected void appendSpecificSQL(XMLValueExpressionCast xmlCastExpr, StringBuffer sb)
+    {
+        StringBuffer sbCast = new StringBuffer();
+
+        sbCast.append(XMLCAST);
+        sbCast.append(SPACE);
+        sbCast.append(PAREN_LEFT);
+        appendSQL(xmlCastExpr.getValueExpr(),sbCast);
+        sbCast.append(SPACE);
+        sbCast.append(AS);
+        sbCast.append(SPACE);
+        appendSQL(xmlCastExpr.getDataType(),sbCast);
+        XMLPassingType passingMechanism = xmlCastExpr.getPassingMechanism();
+        if (passingMechanism != XMLPassingType.NONE_LITERAL) {
+	        sbCast.append(SPACE);
+	        appendSpecificSQL(xmlCastExpr.getPassingMechanism(),sbCast);
+        }
+        sbCast.append(PAREN_RIGHT);
+        wrapSQL(xmlCastExpr, sbCast);
+        sb.append(sbCast);
+
+
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionCommentContent#getSQL()
+     */
+    protected void appendSpecificSQL(XMLValueFunctionComment commentFunction, StringBuffer sb)
+    {
+        sb.append(XMLCOMMENT);
+        sb.append(PAREN_LEFT);
+        XMLValueFunctionCommentContent content = commentFunction.getCommentContent();
+        if(content != null){
+            appendSQL(content.getValueExpr(),sb);
+        }
+        sb.append(SPACE);
+        appendSpecificSQL(commentFunction.getReturningOption(),sb);
+        sb.append(PAREN_RIGHT);
+    }    
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionConcat#getSQL()
+     */
+    protected void appendSpecificSQL(XMLValueFunctionConcat concatFunction, StringBuffer sb)
+    {
+        sb.append(XMLCONCAT);
+        sb.append(PAREN_LEFT);
+        appendSQLForSQLObjectList(concatFunction.getConcatContentList(), sb);
+        sb.append(SPACE);
+        appendSpecificSQL(concatFunction.getReturningOption(),sb);
+        sb.append(PAREN_RIGHT);
+    }    
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionConcatContentItem#getSQL()
+     */
+    protected void appendSpecificSQL(XMLValueFunctionConcatContentItem concatItem, StringBuffer sb){
+        appendSQL(concatItem.getValueExpr(),sb);
+    }
+    
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionDocument#getSQL()
+     */
+    protected void appendSpecificSQL(XMLValueFunctionDocument documentFunction, StringBuffer sb){
+    		sb.append(XMLDOCUMENT);
+    		sb.append(PAREN_LEFT);
+    		XMLValueFunctionDocumentContent docContent = documentFunction.getDocumentContent();
+    		if(docContent != null){
+    			appendSQL(docContent.getValueExpr(),sb);
+    		}
+            XMLReturningType returningType = documentFunction.getReturningOption();
+            if (returningType != XMLReturningType.NONE_LITERAL) {
+                sb.append(SPACE);
+                appendSpecificSQL(returningType, sb);
+            }
+    		sb.append(PAREN_RIGHT);            
+    }
+    
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionParse#getSQL()
+     */
+    protected void appendSpecificSQL(XMLValueFunctionParse parseFunction, StringBuffer sb)
+    {
+        int indent = getLastLineIndent(sb) + STANDARD_INDENT;
+        
+        sb.append(XMLPARSE);
+        sb.append(PAREN_LEFT);
+        appendSpecificSQL(parseFunction.getContentOption(), sb);
+        sb.append(SPACE);
+        
+        StringBuffer contentSB = new StringBuffer();
+        appendSQL(parseFunction.getParseContent(), contentSB);
+        indentSQL(contentSB, indent);
+        sb.append(contentSB);
+        
+        XMLWhitespaceHandlingType whitespaceHandlingOption = parseFunction.getWhitespaceHandlingOption();
+        if (whitespaceHandlingOption != XMLWhitespaceHandlingType.NONE_LITERAL) {
+            indentOnNewLine(sb, indent);
+            appendSpecificSQL(whitespaceHandlingOption,sb);
+        }
+        
+        sb.append(PAREN_RIGHT);
+    }
+    
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionPI#getSQL()
+     */
+    protected void appendSpecificSQL(XMLValueFunctionPI piFunction, StringBuffer sb)
+    {
+    	sb.append(XMLPI);
+    	sb.append(PAREN_LEFT);
+    	sb.append(NAME);
+    	sb.append(SPACE);
+    	sb.append(piFunction.getTargetName());
+    	
+    	XMLValueFunctionPIContent piContent = piFunction.getPIContent();
+    	if(piContent != null){
+    		sb.append(COMMA);
+    		sb.append(SPACE);
+    		appendSQL(piContent.getValueExpr(),sb);
+    	}
+    	
+    	XMLReturningType returningType = piFunction.getReturningOption();
+    	if(returningType != XMLReturningType.NONE_LITERAL){
+    		sb.append(SPACE);
+    		appendSpecificSQL(returningType,sb);
+    	}
+    	sb.append(PAREN_RIGHT);
+    	
+    }
+    
+    /**
+     * @see XMLValueFunctionParseContent#getSQL()
+     */
+    protected void appendSpecificSQL(XMLValueFunctionParseContent parseContent, StringBuffer sb)
+    {
+        appendSQL(parseContent.getValueExpr(), sb);
+    }
+
+    
+    /**
+     * @see XMLValueFunctionQuery#getSQL()
+     */
+    protected void appendSpecificSQL(XMLValueFunctionQuery queryFunction, StringBuffer sb)
+    {
+        sb.append(XMLQUERY);
+        sb.append(PAREN_LEFT);
+        appendSQL(queryFunction.getXqueryExpr(), sb);
+        
+//        XMLQUERY 
+//        _LPAREN 
+//        <xQuery_expression>
+//        <opt_xml_query_argument_list> 
+        
+//        <opt_xml_returning_clause_opt_mechanism>
+//        <xml_query_empty_handling_option>
+//        _RPAREN
+
+        XMLQueryArgumentList xqueryArgList = queryFunction.getXqueryArgList();
+        if (xqueryArgList != null) {
+            sb.append(SPACE);
+            appendSQL(xqueryArgList, sb);
+        }
+        
+        XMLValueFunctionQueryReturning returningClause = queryFunction.getQueryReturning();
+        if (returningClause != null) {
+            sb.append(SPACE);
+            appendSQL(returningClause, sb);
+        }
+        
+        XMLEmptyHandlingType emptyHandlingOption = queryFunction.getEmptyHandlingOption();
+        if (emptyHandlingOption != XMLEmptyHandlingType.NONE_LITERAL) {
+            sb.append(SPACE);
+            appendSpecificSQL(emptyHandlingOption, sb);
+        }
+        
+        sb.append(PAREN_RIGHT);
+    }
+    
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionQueryReturning#getSQL()
+     */
+    protected void appendSpecificSQL(XMLValueFunctionQueryReturning queryReturning, StringBuffer sb)
+    {
+        // RETURNING <content_or_sequence>
+        appendSpecificSQL(queryReturning.getReturningOption(), sb);
+
+        // PASSING BY <value_or_ref>
+        XMLPassingType passingOption = queryReturning.getPassingOption();
+        if (passingOption != XMLPassingType.NONE_LITERAL) {
+            sb.append(SPACE);
+            appendSpecificSQL(passingOption, sb);
+        }
+    }    
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionDefault#getSQL()
+     */
+    protected void appendSpecificSQL(XMLTableColumnDefinitionDefault columnDefinitionDefault, StringBuffer sb)
+    {
+        sb.append(DEFAULT);
+        sb.append(SPACE);
+        appendSQL(columnDefinitionDefault.getValueExpr(), sb);
+    }    
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionOrdinality#getSQL()
+     */
+    protected void appendSpecificSQL(XMLTableColumnDefinitionOrdinality columnDefinitionOrdinality, StringBuffer sb)
+    {
+        //<column_name> FOR ORDINALITY
+        String columnName = columnDefinitionOrdinality.getName();
+        columnName = StatementHelper.convertCatalogIdentifierToSQLFormat(columnName, getDelimitedIdentifierQuote());
+        sb.append(columnName);
+        sb.append(SPACE);
+        sb.append(FOR_ORDINALITY);
+    }
+    
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLTableColumnDefinitionRegular#getSQL()
+     */
+    protected void appendSpecificSQL(XMLTableColumnDefinitionRegular columnDefinitionRegular, StringBuffer sb)
+    {
+        //<column_name> <datatype> <opt_value_or_ref> <opt_default_clause> <opt_xml_table_column_pattern>
+        String columnName = columnDefinitionRegular.getName();
+        columnName = StatementHelper.convertCatalogIdentifierToSQLFormat(columnName, getDelimitedIdentifierQuote());
+        sb.append(columnName);
+        sb.append(SPACE);
+        appendSQL(columnDefinitionRegular.getDataType(), sb);
+        
+        XMLPassingType passingOption = columnDefinitionRegular.getPassingOption();
+        if (passingOption != XMLPassingType.NONE_LITERAL) {
+            sb.append(SPACE);
+            appendSpecificSQL(passingOption, sb);
+        }
+
+        XMLTableColumnDefinitionDefault defaultClause = columnDefinitionRegular.getColumnDefinitionDefault();
+        if (defaultClause != null) {
+            sb.append(SPACE);
+            appendSQL(defaultClause, sb);
+        }
+        
+        String tableColumnPattern = columnDefinitionRegular.getTableColumnPattern();
+        if (tableColumnPattern != null) {
+            sb.append(SPACE);
+            sb.append(PATH);
+            sb.append(SPACE);
+            sb.append(tableColumnPattern);
+        }
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLTableFunction#getSQL()
+     */
+    protected void appendSpecificSQL(XMLTableFunction tableFunction, StringBuffer sb)
+    {
+        // XMLTABLE _LPAREN  <opt_xml_namespace_declaration_commalast>
+        //     <xml_table_row_pattern>
+        //     <opt_xml_table_argument_list>
+        //     COLUMNS <xml_table_column_definition_list>
+        //     _RPAREN
+        sb.append(XMLTABLE);
+        sb.append(PAREN_LEFT);
+        XMLNamespacesDeclaration namespacesDecl = tableFunction.getNamespacesDecl();
+        if (namespacesDecl != null) {
+            appendSQL(namespacesDecl, sb);
+            sb.append(COMMA);
+            sb.append(SPACE);
+        }
+        
+        sb.append(tableFunction.getTableRowPattern());
+        
+        XMLQueryArgumentList xQueryArgList = tableFunction.getXqueryArgList();
+        if (xQueryArgList != null) {
+            sb.append(SPACE);
+            appendSQL(xQueryArgList, sb);
+        }
+        
+        sb.append(SPACE);
+        sb.append(COLUMNS);
+        sb.append(SPACE);
+        appendSQLForSQLObjectList(tableFunction.getColumnDefList(), sb);
+        
+        sb.append(PAREN_RIGHT);
+        
+        if (tableFunction.getTableCorrelation() != null)
+        {
+            sb.append(SPACE);
+            sb.append(AS);
+            sb.append(SPACE);
+            appendSQL(tableFunction.getTableCorrelation(),sb);
+        }
+
+    }    
+    
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionText#getSQL()
+     */
+    protected void appendSpecificSQL(XMLValueFunctionText textFunction, StringBuffer sb)
+    {
+        // XMLTEXT _LPAREN <string_value_expression> <opt_xml_returning_clause> _RPAREN
+        sb.append(XMLTEXT);
+        sb.append(PAREN_LEFT);
+        appendSQL(textFunction.getTextContent(), sb);
+
+        XMLReturningType returningType = textFunction.getReturningOption();
+        if (returningType != XMLReturningType.NONE_LITERAL) {
+            sb.append(SPACE);
+            appendSpecificSQL(returningType, sb);
+        }
+        sb.append(PAREN_RIGHT);
+    }    
+    
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionTextContent#getSQL()
+     */
+    protected void appendSpecificSQL(XMLValueFunctionTextContent textContent, StringBuffer sb)
+    {
+        appendSQL(textContent.getValueExpr(), sb);
+    }    
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidate#getSQL()
+     */
+    protected void appendSpecificSQL(XMLValueFunctionValidate validateFunction, StringBuffer sb)
+    {
+        int indent = getLastLineIndent(sb) + STANDARD_INDENT;
+        
+        sb.append(XMLVALIDATE);
+        sb.append(PAREN_LEFT);
+        appendSpecificSQL(validateFunction.getContentOption(), sb);
+        
+        sb.append(NEW_LINE);
+        appendSpace(sb, indent);
+        appendSQL(validateFunction.getValidateContent(), sb);
+        
+        if (validateFunction.getValidateAccordingTo() != null) {
+            indentOnNewLine(sb, indent);
+            appendSQL(validateFunction.getValidateAccordingTo(), sb);
+        }
+        sb.append(PAREN_RIGHT);
+        
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingToIdentifier#getSQL()
+     */
+    protected void appendSpecificSQL(XMLValueFunctionValidateAccordingToIdentifier accordingToIdentifier, StringBuffer sb)
+    {
+        sb.append(ACCORDING_TO_XMLSCHEMA);
+        sb.append(SPACE);
+        sb.append(ID);
+        sb.append(SPACE);
+        
+        String schemaName = accordingToIdentifier.getSchemaName();
+        String registeredXMLSchemaName = accordingToIdentifier.getRegisteredXMLSchemaName();        
+        
+        if (schemaName != null) {
+            schemaName = StatementHelper.convertCatalogIdentifierToSQLFormat(schemaName, getDelimitedIdentifierQuote());
+            sb.append(schemaName);
+            sb.append(DOT);
+        }
+        registeredXMLSchemaName = StatementHelper.convertCatalogIdentifierToSQLFormat(registeredXMLSchemaName, getDelimitedIdentifierQuote());
+        sb.append(registeredXMLSchemaName);
+        
+        XMLValueFunctionValidateElement optValidateElement = accordingToIdentifier.getValidateElement();
+        if (optValidateElement != null) {
+            sb.append(SPACE);
+            appendSQL(optValidateElement, sb);
+        }
+    }    
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateAccordingToURI#getSQL()
+     */
+    protected void appendSpecificSQL(XMLValueFunctionValidateAccordingToURI accordingToURI, StringBuffer sb)
+    {
+        sb.append(ACCORDING_TO_XMLSCHEMA);
+        sb.append(SPACE);
+        if (accordingToURI.isNoNamespace()) {
+            sb.append(NO_NAMESPACE);
+        }
+        else {
+            sb.append(URI);
+            sb.append(SPACE);
+            sb.append(accordingToURI.getTargetNamespaceURI());
+        }
+        
+        String schemaLocationURI = accordingToURI.getSchemaLocationURI();
+        if (schemaLocationURI != null) {
+            sb.append(SPACE);
+            sb.append(LOCATION);
+            sb.append(SPACE);
+            sb.append(schemaLocationURI);
+        }
+        
+        // ... <opt_xml_valid_element_clause>
+        XMLValueFunctionValidateElement optValidateElement = accordingToURI.getValidateElement();
+        if (optValidateElement != null) {
+            sb.append(SPACE);
+            appendSQL(optValidateElement, sb);
+        }
+    }    
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateContent#getSQL()
+     */
+    protected void appendSpecificSQL(XMLValueFunctionValidateContent validateFunctionContent, StringBuffer sb)
+    {
+        appendSQL(validateFunctionContent.getValueExpr(), sb);
+    }
+
+    /**
+     * @see org.eclipse.datatools.modelbase.sql.xml.query.XMLValueFunctionValidateElement#getSQL()
+     */
+    protected void appendSpecificSQL(XMLValueFunctionValidateElement validateElement, StringBuffer sb)
+    {
+        XMLValueFunctionValidateElementNamespace validateElementNamespace = validateElement.getValidateElementNamespace();
+        XMLValueFunctionValidateElementName validateElementName = validateElement.getValidateElementName();
+        
+        if (validateElementNamespace != null) {
+            appendSpecificSQL(validateElementNamespace, sb);
+            if (validateElementName != null) {
+                sb.append(SPACE);
+            }
+        }
+        
+        if (validateElementName != null) {
+            appendSQL(validateElementName, sb);
+        }
+        
+    }
+
+    /**
+     * @see XMLValueFunctionValidateElementName#getSQL()
+     */
+    protected void appendSpecificSQL(XMLValueFunctionValidateElementName validateElementName, StringBuffer sb) {
+        sb.append(ELEMENT);
+        sb.append(SPACE);
+        sb.append(validateElementName.getName());
+    }    
+
+    /**
+     * @see XMLValueFunctionValidateElementNamespace#getSQL()
+     */
+    protected void appendSpecificSQL(XMLValueFunctionValidateElementNamespace validateElementNS, StringBuffer sb) {
+        if (validateElementNS.isNoNamespace()) {
+            sb.append(NO_NAMESPACE);
+        }
+        else {
+            sb.append(NAMESPACE);
+            sb.append(SPACE);
+            sb.append(validateElementNS.getNamespaceURI());
+        }
+    }
+
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/.classpath b/plugins/org.eclipse.datatools.modelbase.sql/.classpath
new file mode 100644
index 0000000..45f024e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<classpath>

+	<classpathentry kind="src" path="src"/>

+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>

+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

+	<classpathentry kind="output" path="bin"/>

+</classpath>

diff --git a/plugins/org.eclipse.datatools.modelbase.sql/.gitignore b/plugins/org.eclipse.datatools.modelbase.sql/.gitignore
new file mode 100644
index 0000000..023385a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/.gitignore
@@ -0,0 +1,4 @@
+bin
+temp.folder
+build.xml
+sqlmodel.jar
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/.project b/plugins/org.eclipse.datatools.modelbase.sql/.project
new file mode 100644
index 0000000..a17ec25
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/.project
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.datatools.modelbase.sql</name>
+	<comment></comment>
+	<projects>
+		<project>org.eclipse.core.runtime.compatibility</project>
+		<project>org.eclipse.emf.ecore</project>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.datatools.modelbase.sql/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..b1ba78e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+#Tue Feb 17 15:37:21 PST 2009
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/.template b/plugins/org.eclipse.datatools.modelbase.sql/.template
new file mode 100644
index 0000000..f3bcd41
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/.template
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<form>

+   <p/><p><b>Tips on working with this plug-in project</b></p><li>For the view of the new plug-in at a glance, go to the <img href="pageImage"/><a href="OverviewPage">Overview</a>.</li><li>You can test the contributions of this plug-in by launching another instance of the workbench. On the <b>Run</b> menu, click <b>Run As</b> and choose <img href="runTimeWorkbenchImage"/><a href="action.run">Run-time Workbench</a> from the available choices.</li><li>You can add more functionality to this plug-in by adding extensions using the <a href="action.newExtension">New Extension Wizard</a>.</li><li>The plug-in project contains Java code that you can debug. Place breakpoints in Java classes. On the <b>Run</b> menu, select <b>Debug As</b> and choose <img href="runTimeWorkbenchImage"/><a href="action.debug">Run-time Workbench</a> from the available choices.</li>

+</form>

diff --git a/plugins/org.eclipse.datatools.modelbase.sql/META-INF/MANIFEST.MF b/plugins/org.eclipse.datatools.modelbase.sql/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..784df9d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/META-INF/MANIFEST.MF
@@ -0,0 +1,37 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.datatools.modelbase.sql; singleton:=true
+Bundle-Version: 1.2.1.qualifier
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Export-Package: org.eclipse.datatools.modelbase.sql.accesscontrol,
+ org.eclipse.datatools.modelbase.sql.accesscontrol.impl,
+ org.eclipse.datatools.modelbase.sql.accesscontrol.util,
+ org.eclipse.datatools.modelbase.sql.constraints,
+ org.eclipse.datatools.modelbase.sql.constraints.impl,
+ org.eclipse.datatools.modelbase.sql.constraints.util,
+ org.eclipse.datatools.modelbase.sql.datatypes,
+ org.eclipse.datatools.modelbase.sql.datatypes.impl,
+ org.eclipse.datatools.modelbase.sql.datatypes.util,
+ org.eclipse.datatools.modelbase.sql.expressions,
+ org.eclipse.datatools.modelbase.sql.expressions.impl,
+ org.eclipse.datatools.modelbase.sql.expressions.util,
+ org.eclipse.datatools.modelbase.sql.routines,
+ org.eclipse.datatools.modelbase.sql.routines.impl,
+ org.eclipse.datatools.modelbase.sql.routines.util,
+ org.eclipse.datatools.modelbase.sql.schema,
+ org.eclipse.datatools.modelbase.sql.schema.helper,
+ org.eclipse.datatools.modelbase.sql.schema.impl,
+ org.eclipse.datatools.modelbase.sql.schema.util,
+ org.eclipse.datatools.modelbase.sql.statements,
+ org.eclipse.datatools.modelbase.sql.statements.impl,
+ org.eclipse.datatools.modelbase.sql.statements.util,
+ org.eclipse.datatools.modelbase.sql.tables,
+ org.eclipse.datatools.modelbase.sql.tables.helper,
+ org.eclipse.datatools.modelbase.sql.tables.impl,
+ org.eclipse.datatools.modelbase.sql.tables.util
+Require-Bundle: org.eclipse.emf.ecore;visibility:=reexport
+Eclipse-LazyStart: true
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/about.html b/plugins/org.eclipse.datatools.modelbase.sql/about.html
new file mode 100644
index 0000000..d0a7cc2
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 15, 2009</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/about.ini b/plugins/org.eclipse.datatools.modelbase.sql/about.ini
new file mode 100644
index 0000000..76a0356
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/about.ini
@@ -0,0 +1,27 @@
+# about.ini
+# contains information about a feature
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# "%key" are externalized strings defined in about.properties
+# This file does not need to be translated.
+
+# Property "aboutText" contains blurb for "About" dialog (translated)
+aboutText=%blurb
+
+# Property "windowImage" contains path to window icon (16x16)
+# needed for primary features only
+
+# Property "featureImage" contains path to feature image (32x32)
+featureImage=eclipse32.png
+
+# Property "aboutImage" contains path to product image (500x330 or 115x164)
+# needed for primary features only
+
+# Property "appName" contains name of the application (not translated)
+# needed for primary features only
+
+# Property "welcomePerspective" contains the id of the perspective in which the
+# welcome page is to be opened.
+# optional
+
+# Property "tipsAndTricksHref" contains the Help topic href to a tips and tricks page 
+# optional
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/about.mappings b/plugins/org.eclipse.datatools.modelbase.sql/about.mappings
new file mode 100644
index 0000000..d2aa0db
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/about.mappings
@@ -0,0 +1,6 @@
+# about.mappings
+# contains fill-ins for about.properties
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file does not need to be translated.
+
+0=@BUILD@
\ No newline at end of file
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/about.properties b/plugins/org.eclipse.datatools.modelbase.sql/about.properties
new file mode 100644
index 0000000..28496ea
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/about.properties
@@ -0,0 +1,19 @@
+###############################################################################
+# Copyright (c) 2006 Sybase, Inc. and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#     Sybase, Inc. - initial API and implementation
+###############################################################################
+blurb=Eclipse Data Tools Platform Model Base\n\
+\n\
+Visit http://www.eclipse.org/datatools\n\
+\n\
+Copyright (c) 2017 Eclipse Contributors\n\
+All rights reserved. This program and the accompanying materials\n\
+are made available under the terms of the Eclipse Public License v1.0\n\
+which accompanies this distribution, and is available at\n\
+http://www.eclipse.org/legal/epl-v10.html
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/build.properties b/plugins/org.eclipse.datatools.modelbase.sql/build.properties
new file mode 100644
index 0000000..a0d4bbf
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/build.properties
@@ -0,0 +1,34 @@
+###############################################################################
+# Copyright (c) 2001, 2004 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+# 
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               plugin.xml,\
+               about.html,\
+               plugin.properties,\
+               about.ini,\
+               about.mappings,\
+               about.properties,\
+               build.properties,\
+               eclipse32.gif,\
+               eclipse32.png,\
+               model/
+
+src.dir =		src/
+plugin.version =	1.0.0.200706071
+javadoc.dir =		doc/api/
+download.dir =		./download/
+javac.source =		1.5
+javac.target =		1.5
+src.includes = about.html,\
+               model/
+
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/build.xml b/plugins/org.eclipse.datatools.modelbase.sql/build.xml
new file mode 100644
index 0000000..4c8756c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/build.xml
@@ -0,0 +1,163 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ *************************************************************************
+ * Copyright (c) 2005 Sybase, Inc. and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *  Sybase, Inc.  - initial API and implementation
+ *  
+ ***************************************************************************
+ -->
+<project name="org.eclipse.datatools.modelbase.sql" default="build.jars" basedir=".">
+	<import file="../org.eclipse.datatools.build/common_build.xml" optional="true"/>
+	<property name="module.name" value="org.eclipse.datatools.modelbase.sql"/>
+	<property name="basews" value="${ws}"/>
+	<property name="baseos" value="${os}"/>
+	<property name="basearch" value="${arch}"/>
+	<property name="basenl" value="${nl}"/>
+	<property name="eclipse.home" location="."/>
+	<property file="build.properties"/>
+	<!-- JavaDoc settings -->
+	<property name="javadocWindowTitle" value="DTP SQL Model"/>
+	<property name="javadocDocTitle" value="DTP SQL Model API (Internal)"/>
+	<property name="javadocPackages" value="org.eclipse.datatools.modelbase.sql.*"/>
+	<property name="javadocFooter" value="&lt;i>Copyright &#169;  2005 IBM Corporation and others. All rights reserved. &lt;/i>"/>
+	<!-- Compiler settings. -->
+	<property name="javacFailOnError" value="true"/>
+	<property name="javacDebugInfo" value="on"/>
+	<property name="javacVerbose" value="true"/>
+	<property name="javacSource" value="${javac.source}"/>
+	<property name="javacTarget" value="${javac.target}"/>
+	<property name="compilerArg" value=""/>
+	<path id="path_bootclasspath">
+		<fileset dir="${java.home}/lib">
+			<include name="*.jar"/>
+		</fileset>
+		<fileset dir="${eclipse.home}/plugins">
+			<!-- Include jared EMF plug-ins -->
+			<include name="org.eclipse.emf.ecore_*.jar"/>
+			<include name="org.eclipse.emf.common_*.jar"/>
+			<include name="org.eclipse.emf.ecore.sdo_*.jar"/>
+			<include name="org.eclipse.emf.commonj.sdo_*.jar"/>
+			<include name="org.eclipse.emf.ecore.xmi_*.jar"/>
+			<include name="org.eclipse.emf.ecore.change_*.jar"/>
+			<!-- Include expanded EMF plug-ins -->
+			<include name="org.eclipse.emf.ecore_*/org.eclipse.emf.ecore*.jar"/>
+			<include name="org.eclipse.emf.common_*/org.eclipse.emf.common*.jar"/>
+			<include name="org.eclipse.emf.ecore.sdo_*/org.eclipse.emf.ecore.sdo*.jar"/>
+			<include name="org.eclipse.emf.commonj.sdo_*/org.eclipse.emf.commonj.sdo*.jar"/>
+			<include name="org.eclipse.emf.ecore.xmi_*/org.eclipse.emf.ecore.xmi*.jar"/>
+			<include name="org.eclipse.emf.ecore.change_*/org.eclipse.emf.ecore.change*.jar"/>
+		</fileset>
+	</path>
+	<property name="bootclasspath" refid="path_bootclasspath"/>
+	<target name="init" depends="properties">
+		<condition property="pluginTemp" value="${buildTempFolder}/plugins">
+			<isset property="buildTempFolder"/>
+		</condition>
+		<property name="pluginTemp" value="${basedir}"/>
+		<condition property="build.result.folder" value="${pluginTemp}/${module.name}">
+			<isset property="buildTempFolder"/>
+		</condition>
+		<property name="build.result.folder" value="${basedir}"/>
+		<property name="temp.folder" value="${basedir}/temp.folder"/>
+		<property name="plugin.destination" value="${basedir}"/>
+	</target>
+	<target name="properties" if="eclipse.running">
+		<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
+	</target>
+	<target name="build.update.jar" depends="init" description="Build the plug-in: org.eclipse.datatools.modelbase.sql for an update site.">
+		<delete dir="${temp.folder}"/>
+		<mkdir dir="${temp.folder}"/>
+		<antcall target="build.jars"/>
+		<antcall target="gather.bin.parts">
+			<param name="destination.temp.folder" value="${temp.folder}/"/>
+		</antcall>
+		<zip destfile="${plugin.destination}/${module.name}_${plugin.version}.jar" basedir="${temp.folder}/${module.name}_${plugin.version}" filesonly="false" whenempty="skip" update="false"/>
+		<delete dir="${temp.folder}"/>
+	</target>
+	<target name="sqlmodel.jar" depends="init" unless="sqlmodel.jar" description="Create jar: org.eclipse.datatools.modelbase.sql sqlmodel.jar.">
+		<delete dir="${temp.folder}/sqlmodel.jar.bin"/>
+		<mkdir dir="${temp.folder}/sqlmodel.jar.bin"/>
+		<!-- compile the source code -->
+		<javac destdir="${temp.folder}/sqlmodel.jar.bin" failonerror="${javacFailOnError}" verbose="${javacVerbose}" debug="${javacDebugInfo}" includeAntRuntime="no" bootclasspath="${bootclasspath}" source="${javacSource}" target="${javacTarget}">
+			<compilerarg line="${compilerArg}"/>
+			<classpath refid="path_bootclasspath"/>
+			<src path="src/"/>
+		</javac>
+		<!-- Copy necessary resources -->
+		<copy todir="${temp.folder}/sqlmodel.jar.bin" failonerror="true" overwrite="false">
+			<fileset dir="src/" excludes="**/*.java, **/package.htm*,null"/>
+		</copy>
+		<mkdir dir="${build.result.folder}"/>
+		<jar destfile="${build.result.folder}/sqlmodel.jar" basedir="${temp.folder}/sqlmodel.jar.bin"/>
+		<delete dir="${temp.folder}/sqlmodel.jar.bin"/>
+	</target>
+	<target name="sqlmodelsrc.zip" depends="init" unless="sqlmodelsrc.zip">
+		<mkdir dir="${build.result.folder}"/>
+		<zip destfile="${build.result.folder}/sqlmodelsrc.zip" filesonly="false" whenempty="skip" update="false">
+			<fileset dir="src/" includes="**/*.java"/>
+		</zip>
+	</target>
+	<target name="build.jars" depends="init" description="Build all the jars for the plug-in: org.eclipse.datatools.modelbase.sql.">
+		<available property="sqlmodel.jar" file="${build.result.folder}/sqlmodel.jar"/>
+		<antcall target="sqlmodel.jar"/>
+	</target>
+	<target name="build.sources" depends="init">
+		<available property="sqlmodelsrc.zip" file="${build.result.folder}/sqlmodelsrc.zip"/>
+		<antcall target="sqlmodelsrc.zip"/>
+	</target>
+	<target name="gather.bin.parts" depends="init" if="destination.temp.folder">
+		<mkdir dir="${destination.temp.folder}/${module.name}_${plugin.version}"/>
+		<copy todir="${destination.temp.folder}/${module.name}_${plugin.version}" failonerror="true" overwrite="false">
+			<fileset dir="${build.result.folder}" includes="sqlmodel.jar"/>
+		</copy>
+		<copy todir="${destination.temp.folder}/${module.name}_${plugin.version}" failonerror="true" overwrite="false">
+			<fileset dir="${basedir}" includes="plugin.xml,META-INF/,sqlmodel.jar,plugin.properties,about.html"/>
+		</copy>
+		<copy todir="${destination.temp.folder}/${module.name}_${plugin.version}" failonerror="false" overwrite="false">
+			<fileset dir="${basedir}" includes="sqlmodelsrc.zip"/>
+		</copy>
+	</target>
+	<target name="build.zips" depends="init"/>
+	<target name="gather.sources" depends="init" if="destination.temp.folder">
+		<mkdir dir="${destination.temp.folder}/${module.name}_${plugin.version}"/>
+		<copy file="${build.result.folder}/sqlmodelsrc.zip" todir="${destination.temp.folder}/${module.name}_${plugin.version}" failonerror="false" overwrite="false"/>
+	</target>
+	<target name="gather.logs" depends="init" if="destination.temp.folder">
+		<mkdir dir="${destination.temp.folder}/${module.name}_${plugin.version}"/>
+		<copy file="${temp.folder}/sqlmodel.jar.bin.log" todir="${destination.temp.folder}/${module.name}_${plugin.version}" failonerror="false" overwrite="false"/>
+	</target>
+	<target name="clean" depends="init" description="Clean the plug-in: org.eclipse.datatools.modelbase.sql of all the zips, jars and logs created.">
+		<delete file="${build.result.folder}/sqlmodel.jar"/>
+		<delete file="${build.result.folder}/sqlmodelsrc.zip"/>
+		<delete file="${plugin.destination}/${module.name}_${plugin.version}.jar"/>
+		<delete file="${plugin.destination}/${module.name}_${plugin.version}.zip"/>
+		<delete dir="${temp.folder}"/>
+	</target>
+	<target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+		<eclipse.convertPath fileSystemPath="C:/V3/3.1/eclipse/workspace-dtp/org.eclipse.datatools.modelbase.sql" property="resourcePath"/>
+		<eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+	</target>
+	<target name="zip.plugin" depends="init" description="Create a zip containing all the elements for the plug-in: org.eclipse.datatools.modelbase.sql.">
+		<delete dir="${temp.folder}"/>
+		<mkdir dir="${temp.folder}"/>
+		<antcall target="build.jars"/>
+		<antcall target="build.sources"/>
+		<antcall target="gather.bin.parts">
+			<param name="destination.temp.folder" value="${temp.folder}/"/>
+		</antcall>
+		<antcall target="gather.sources">
+			<param name="destination.temp.folder" value="${temp.folder}/"/>
+		</antcall>
+		<delete>
+			<fileset dir="${temp.folder}" includes="**/*.bin.log"/>
+		</delete>
+		<zip destfile="${plugin.destination}/${module.name}_${plugin.version}.zip" basedir="${temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+		<delete dir="${temp.folder}"/>
+	</target>
+</project>
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/eclipse32.gif b/plugins/org.eclipse.datatools.modelbase.sql/eclipse32.gif
new file mode 100644
index 0000000..811eccb
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/eclipse32.gif
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/eclipse32.png b/plugins/org.eclipse.datatools.modelbase.sql/eclipse32.png
new file mode 100644
index 0000000..568fac1
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/eclipse32.png
Binary files differ
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/model/.gitignore b/plugins/org.eclipse.datatools.modelbase.sql/model/.gitignore
new file mode 100644
index 0000000..5235f3b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/model/.gitignore
@@ -0,0 +1,2 @@
+/SQLModel-Constraints.ca~
+/SQLModel.md~
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel-AccessControl.cat b/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel-AccessControl.cat
new file mode 100644
index 0000000..deb887e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel-AccessControl.cat
@@ -0,0 +1,2637 @@
+

+(object Petal

+    version    	47

+    _written   	"Rose 8.0.0303.1400"

+    charSet    	0)

+

+(object Class_Category "AccessControl"

+    is_unit    	TRUE

+    is_loaded  	TRUE

+    attributes 	(list Attribute_Set

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"packageName"

+	    value      	(value Text "accesscontrol"))

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"nsPrefix"

+	    value      	(value Text "SQLAccessControl"))

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"nsURI"

+	    value      	(value Text "http:///org/eclipse/datatools/modelbase/sql/accesscontrol.ecore"))

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"basePackage"

+	    value      	(value Text "org.eclipse.datatools.modelbase.sql"))

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"prefix"

+	    value      	(value Text "SQLAccessControl")))

+    quid       	"407D7B39011B"

+    exportControl 	"Public"

+    logical_models 	(list unit_reference_list

+	(object Class "AuthorizationIdentifier"

+	    quid       	"407D7FA3017A"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 4.34.1 Authorization Identifiers"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"407D8033002D"

+		    supplier   	"Logical View::SQLModel::Schema::SQLObject"

+		    quidu      	"3E9B3EB5002B"))

+	    abstract   	TRUE)

+	(object Class "Privilege"

+	    quid       	"407D806B013C"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 4.34.2 Privileges"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"421D5E4E009D"

+		    supplier   	"Logical View::SQLModel::Schema::SQLObject"

+		    quidu      	"3E9B3EB5002B"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "grantable"

+		    quid       	"407D807A0184"

+		    type       	"boolean"

+		    exportControl 	"Public")

+		(object ClassAttribute "action"

+		    quid       	"407D80880328"

+		    type       	"String"

+		    exportControl 	"Public")

+		(object ClassAttribute "withHierarchy"

+		    quid       	"4631437C0365"

+		    type       	"boolean"

+		    exportControl 	"Public")))

+	(object Class "Group"

+	    quid       	"407D80CF03C1"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 4.34.1 Authorization Identifiers"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"407D81390215"

+		    supplier   	"Logical View::SQLModel::AccessControl::AuthorizationIdentifier"

+		    quidu      	"407D7FA3017A")))

+	(object Class "User"

+	    quid       	"407D80DD00FA"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 4.34.1 Authorization Identifiers"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"407D81430219"

+		    supplier   	"Logical View::SQLModel::AccessControl::AuthorizationIdentifier"

+		    quidu      	"407D7FA3017A")))

+	(object Class "Role"

+	    quid       	"407D810501F2"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 4.34.3 Roles"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"407D814B0012"

+		    supplier   	"Logical View::SQLModel::AccessControl::AuthorizationIdentifier"

+		    quidu      	"407D7FA3017A")))

+	(object Class "RoleAuthorization"

+	    quid       	"407D811200EC"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 4.34.3 Roles"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"421D5EF10296"

+		    supplier   	"Logical View::SQLModel::Schema::SQLObject"

+		    quidu      	"3E9B3EB5002B"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "grantable"

+		    quid       	"407F064800B4"

+		    type       	"boolean"

+		    exportControl 	"Public")))

+	(object Association "$UNNAMED$0"

+	    quid       	"407D83950281"

+	    roles      	(list role_list

+		(object Role "owner"

+		    quid       	"407D839802AE"

+		    label      	"owner"

+		    supplier   	"Logical View::SQLModel::AccessControl::AuthorizationIdentifier"

+		    quidu      	"407D7FA3017A"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE)

+		(object Role "ownedSchema"

+		    quid       	"407D839802B8"

+		    label      	"ownedSchema"

+		    supplier   	"Logical View::SQLModel::Schema::Schema"

+		    quidu      	"3ED523C20089"

+		    client_cardinality 	(value cardinality "0..n")

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$1"

+	    quid       	"407D841002EC"

+	    roles      	(list role_list

+		(object Role "authorizationIds"

+		    quid       	"407D8415005E"

+		    label      	"authorizationIds"

+		    supplier   	"Logical View::SQLModel::AccessControl::AuthorizationIdentifier"

+		    quidu      	"407D7FA3017A"

+		    client_cardinality 	(value cardinality "0..n")

+		    Containment 	"By Reference"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$2"

+		    quid       	"407D84150068"

+		    supplier   	"Logical View::SQLModel::Schema::Database"

+		    quidu      	"3FFDB2AD0234"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$3"

+	    quid       	"407D848A005D"

+	    roles      	(list role_list

+		(object Role "roleAuthorization"

+		    quid       	"407D848C0218"

+		    label      	"roleAuthorization"

+		    supplier   	"Logical View::SQLModel::AccessControl::RoleAuthorization"

+		    quidu      	"407D811200EC"

+		    client_cardinality 	(value cardinality "1..n")

+		    is_navigable 	TRUE)

+		(object Role "role"

+		    quid       	"407D848C0222"

+		    label      	"role"

+		    supplier   	"Logical View::SQLModel::AccessControl::Role"

+		    quidu      	"407D810501F2"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$4"

+	    quid       	"407D84F00077"

+	    roles      	(list role_list

+		(object Role "grantee"

+		    quid       	"407D84F202F1"

+		    label      	"grantee"

+		    supplier   	"Logical View::SQLModel::AccessControl::AuthorizationIdentifier"

+		    quidu      	"407D7FA3017A"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE)

+		(object Role "receivedRoleAuthorization"

+		    quid       	"407D84F202FB"

+		    label      	"receivedRoleAuthorization"

+		    supplier   	"Logical View::SQLModel::AccessControl::RoleAuthorization"

+		    quidu      	"407D811200EC"

+		    client_cardinality 	(value cardinality "0..n")

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$5"

+	    quid       	"407D855C0217"

+	    roles      	(list role_list

+		(object Role "grantor"

+		    quid       	"407D855F01D5"

+		    label      	"grantor"

+		    supplier   	"Logical View::SQLModel::AccessControl::AuthorizationIdentifier"

+		    quidu      	"407D7FA3017A"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE)

+		(object Role "grantedRoleAuthorization"

+		    quid       	"407D855F01D7"

+		    label      	"grantedRoleAuthorization"

+		    supplier   	"Logical View::SQLModel::AccessControl::RoleAuthorization"

+		    quidu      	"407D811200EC"

+		    client_cardinality 	(value cardinality "0..n")

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$6"

+	    quid       	"407D860900FE"

+	    roles      	(list role_list

+		(object Role "grantedPrivilege"

+		    quid       	"407D860D01EA"

+		    label      	"grantedPrivilege"

+		    supplier   	"Logical View::SQLModel::AccessControl::Privilege"

+		    quidu      	"407D806B013C"

+		    client_cardinality 	(value cardinality "0..n")

+		    is_navigable 	TRUE)

+		(object Role "grantor"

+		    quid       	"407D860D01F4"

+		    label      	"grantor"

+		    supplier   	"Logical View::SQLModel::AccessControl::AuthorizationIdentifier"

+		    quidu      	"407D7FA3017A"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$7"

+	    quid       	"407D86160084"

+	    roles      	(list role_list

+		(object Role "receivedPrivilege"

+		    quid       	"407D8618038A"

+		    label      	"receivedPrivilege"

+		    supplier   	"Logical View::SQLModel::AccessControl::Privilege"

+		    quidu      	"407D806B013C"

+		    client_cardinality 	(value cardinality "0..n")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "grantee"

+		    quid       	"407D8618038C"

+		    label      	"grantee"

+		    supplier   	"Logical View::SQLModel::AccessControl::AuthorizationIdentifier"

+		    quidu      	"407D7FA3017A"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$8"

+	    quid       	"407D895800F2"

+	    roles      	(list role_list

+		(object Role "user"

+		    quid       	"407D895A00AE"

+		    label      	"user"

+		    supplier   	"Logical View::SQLModel::AccessControl::User"

+		    quidu      	"407D80DD00FA"

+		    client_cardinality 	(value cardinality "0..n")

+		    Containment 	"By Reference"

+		    is_navigable 	TRUE)

+		(object Role "group"

+		    quid       	"407D895A00B8"

+		    label      	"group"

+		    supplier   	"Logical View::SQLModel::AccessControl::Group"

+		    quidu      	"407D80CF03C1"

+		    client_cardinality 	(value cardinality "0..n")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$9"

+	    quid       	"407D90040314"

+	    roles      	(list role_list

+		(object Role "actionObjects"

+		    quid       	"407D9006006E"

+		    label      	"actionObjects"

+		    supplier   	"Logical View::SQLModel::Schema::SQLObject"

+		    quidu      	"3E9B3EB5002B"

+		    client_cardinality 	(value cardinality "0..n")

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$10"

+		    quid       	"407D900600C8"

+		    supplier   	"Logical View::SQLModel::AccessControl::Privilege"

+		    quidu      	"407D806B013C")))

+	(object Association "$UNNAMED$11"

+	    quid       	"463143CE018C"

+	    roles      	(list role_list

+		(object Role "object"

+		    quid       	"463143CF01E7"

+		    label      	"object"

+		    supplier   	"Logical View::SQLModel::Schema::SQLObject"

+		    quidu      	"3E9B3EB5002B"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE)

+		(object Role "privileges"

+		    quid       	"463143CF01FB"

+		    label      	"privileges"

+		    supplier   	"Logical View::SQLModel::AccessControl::Privilege"

+		    quidu      	"407D806B013C"

+		    client_cardinality 	(value cardinality "0..n")

+		    is_navigable 	TRUE))))

+    logical_presentations 	(list unit_reference_list

+	(object ClassDiagram "Authorization"

+	    quid       	"407D7D70021B"

+	    title      	"Authorization"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	0

+	    origin_y   	0

+	    items      	(list diagram_item_list

+		(object ClassView "Class" "Logical View::SQLModel::Schema::SQLObject" @1

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(906, 106)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@1

+			location   	(768, 56)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	276

+			justify    	0

+			label      	"SQLObject")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3E9B3EB5002B"

+		    width      	294

+		    height     	124

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object NoteView @2

+		    location   	(371, 294)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@2

+			location   	(49, 56)

+			fill_color 	13434879

+			nlines     	9

+			max_width  	609

+			label      	

+|A schema owner has the right (not the privilege) to CREATE, DROP or ALTER all objects in the schema.

+|

+|A schema owner has the full set of privileges for each object in the schema.  The grantor is the pseudo user _SYSTEM.

+			)

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	669

+		    height     	488)

+		(object NoteView @3

+		    location   	(1696, 1340)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@3

+			location   	(1405, 1259)

+			fill_color 	13434879

+			nlines     	3

+			max_width  	546

+			label      	"No two RoleAuthorizations may refer to the same receivedRole and grantee pair.")

+		    line_color 	3342489

+		    fill_color 	8453888

+		    width      	606

+		    height     	175)

+		(object ClassView "Class" "Logical View::SQLModel::AccessControl::Role" @4

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1170, 1312)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@4

+			location   	(1074, 1261)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	192

+			justify    	0

+			label      	"Role")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"407D810501F2"

+		    width      	210

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Schema::Schema" @5

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(209, 634)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@5

+			location   	(80, 584)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	258

+			justify    	0

+			label      	"Schema")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3ED523C20089"

+		    width      	276

+		    height     	124

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Schema::Database" @6

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(205, 1003)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@6

+			location   	(76, 953)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	258

+			justify    	0

+			label      	"Database")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3FFDB2AD0234"

+		    width      	276

+		    height     	124

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::AccessControl::RoleAuthorization" @7

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2085, 1052)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@7

+			location   	(1852, 971)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	466

+			justify    	0

+			label      	"RoleAuthorization")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"407D811200EC"

+		    compartment 	(object Compartment

+			Parent_View 	@7

+			location   	(1852, 1032)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	2

+			max_width  	403)

+		    width      	484

+		    height     	186

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$3" @8

+		    location   	(1476, 1115)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"407D848A005D"

+		    roleview_list 	(list RoleViews

+			(object RoleView "roleAuthorization" @9

+			    Parent_View 	@8

+			    location   	(306, -197)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @10

+				Parent_View 	@9

+				location   	(1684, 1152)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	330

+				justify    	0

+				label      	"+roleAuthorization"

+				pctDist    	0.569482

+				height     	37

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"407D848C0218"

+			    client     	@8

+			    supplier   	@7

+			    line_style 	3

+			    origin_attachment 	(1476, 1115)

+			    terminal_attachment 	(1843, 1115)

+			    label      	(object SegLabel @11

+				Parent_View 	@9

+				location   	(1770, 1084)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1..n"

+				pctDist    	0.803815

+				height     	32

+				orientation 	0))

+			(object RoleView "role" @12

+			    Parent_View 	@8

+			    location   	(306, -197)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @13

+				Parent_View 	@12

+				location   	(1179, 1213)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	104

+				justify    	0

+				label      	"+role"

+				pctDist    	0.904632

+				height     	64

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"407D848C0222"

+			    client     	@8

+			    supplier   	@4

+			    vertices   	(list Points

+				(1476, 1115)

+				(1242, 1115)

+				(1242, 1249))

+			    line_style 	3

+			    origin_attachment 	(1476, 1115)

+			    terminal_attachment 	(1242, 1249)

+			    label      	(object SegLabel @14

+				Parent_View 	@12

+				location   	(1220, 1213)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.904632

+				height     	23

+				orientation 	1))))

+		(object ClassView "Class" "Logical View::SQLModel::AccessControl::Privilege" @15

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1667, 528)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@15

+			location   	(1388, 397)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	558

+			justify    	0

+			label      	"Privilege")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"407D806B013C"

+		    compartment 	(object Compartment

+			Parent_View 	@15

+			location   	(1388, 458)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	4

+			max_width  	472)

+		    width      	576

+		    height     	286

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::AccessControl::AuthorizationIdentifier" @16

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(906, 795)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@16

+			location   	(652, 744)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	508

+			justify    	0

+			label      	"AuthorizationIdentifier")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"407D7FA3017A"

+		    width      	526

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$0" @17

+		    location   	(373, 809)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"407D83950281"

+		    roleview_list 	(list RoleViews

+			(object RoleView "owner" @18

+			    Parent_View 	@17

+			    location   	(164, 175)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @19

+				Parent_View 	@18

+				location   	(560, 774)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	140

+				justify    	0

+				label      	"+owner"

+				pctDist    	0.696296

+				height     	36

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"407D839802AE"

+			    client     	@17

+			    supplier   	@16

+			    line_style 	3

+			    origin_attachment 	(373, 809)

+			    terminal_attachment 	(643, 809)

+			    label      	(object SegLabel @20

+				Parent_View 	@18

+				location   	(620, 844)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.914815

+				height     	35

+				orientation 	1))

+			(object RoleView "ownedSchema" @21

+			    Parent_View 	@17

+			    location   	(164, 175)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @22

+				Parent_View 	@21

+				location   	(372, 735)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	297

+				justify    	0

+				label      	"+ownedSchema"

+				pctDist    	0.003704

+				height     	75

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"407D839802B8"

+			    client     	@17

+			    supplier   	@5

+			    vertices   	(list Points

+				(373, 809)

+				(216, 809)

+				(216, 696))

+			    line_style 	3

+			    origin_attachment 	(373, 809)

+			    terminal_attachment 	(216, 696)

+			    label      	(object SegLabel @23

+				Parent_View 	@21

+				location   	(171, 728)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.882591

+				height     	46

+				orientation 	0))))

+		(object AssociationViewNew "$UNNAMED$1" @24

+		    location   	(605, 1003)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"407D841002EC"

+		    roleview_list 	(list RoleViews

+			(object RoleView "authorizationIds" @25

+			    Parent_View 	@24

+			    location   	(397, 69)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @26

+				Parent_View 	@25

+				location   	(503, 891)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	313

+				justify    	0

+				label      	"+authorizationIds"

+				pctDist    	-0.391667

+				height     	113

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"407D8415005E"

+			    client     	@24

+			    supplier   	@16

+			    vertices   	(list Points

+				(605, 1003)

+				(722, 1003)

+				(722, 858))

+			    line_style 	3

+			    origin_attachment 	(605, 1003)

+			    terminal_attachment 	(722, 858)

+			    label      	(object SegLabel @27

+				Parent_View 	@25

+				location   	(777, 884)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.900000

+				height     	54

+				orientation 	1))

+			(object RoleView "$UNNAMED$2" @28

+			    Parent_View 	@24

+			    location   	(397, 69)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"407D84150068"

+			    client     	@24

+			    supplier   	@6

+			    line_style 	3

+			    origin_attachment 	(605, 1003)

+			    terminal_attachment 	(343, 1003)

+			    label      	(object SegLabel @29

+				Parent_View 	@28

+				location   	(370, 1057)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.900000

+				height     	54

+				orientation 	0))))

+		(object AssociationViewNew "$UNNAMED$4" @30

+		    location   	(1391, 998)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"407D84F00077"

+		    roleview_list 	(list RoleViews

+			(object RoleView "grantee" @31

+			    Parent_View 	@30

+			    location   	(-234, -17)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @32

+				Parent_View 	@31

+				location   	(1178, 912)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	160

+				justify    	0

+				label      	"+grantee"

+				pctDist    	0.473451

+				height     	87

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"407D84F202F1"

+			    client     	@30

+			    supplier   	@16

+			    vertices   	(list Points

+				(1391, 998)

+				(1078, 998)

+				(1078, 858))

+			    line_style 	3

+			    origin_attachment 	(1391, 998)

+			    terminal_attachment 	(1078, 858)

+			    label      	(object SegLabel @33

+				Parent_View 	@31

+				location   	(1052, 904)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.900862

+				height     	27

+				orientation 	0))

+			(object RoleView "receivedRoleAuthorization" @34

+			    Parent_View 	@30

+			    location   	(-234, -17)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @35

+				Parent_View 	@34

+				location   	(1591, 1027)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	491

+				justify    	0

+				label      	"+receivedRoleAuthorization"

+				pctDist    	0.442478

+				height     	29

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"407D84F202FB"

+			    client     	@30

+			    supplier   	@7

+			    line_style 	3

+			    origin_attachment 	(1391, 998)

+			    terminal_attachment 	(1843, 998)

+			    label      	(object SegLabel @36

+				Parent_View 	@34

+				location   	(1799, 934)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.902655

+				height     	65

+				orientation 	0))))

+		(object AssociationViewNew "$UNNAMED$5" @37

+		    location   	(1622, 824)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"407D855C0217"

+		    roleview_list 	(list RoleViews

+			(object RoleView "grantor" @38

+			    Parent_View 	@37

+			    location   	(-3, -191)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @39

+				Parent_View 	@38

+				location   	(1247, 790)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	154

+				justify    	0

+				label      	"+grantor"

+				pctDist    	0.828244

+				height     	35

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"407D855F01D5"

+			    client     	@37

+			    supplier   	@16

+			    line_style 	3

+			    origin_attachment 	(1622, 824)

+			    terminal_attachment 	(1169, 824)

+			    label      	(object SegLabel @40

+				Parent_View 	@38

+				location   	(1206, 855)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.920000

+				height     	31

+				orientation 	0))

+			(object RoleView "grantedRoleAuthorization" @41

+			    Parent_View 	@37

+			    location   	(-3, -191)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @42

+				Parent_View 	@41

+				location   	(2201, 901)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	481

+				justify    	0

+				label      	"+grantedRoleAuthorization"

+				pctDist    	0.871965

+				height     	261

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"407D855F01D7"

+			    client     	@37

+			    supplier   	@7

+			    vertices   	(list Points

+				(1622, 824)

+				(1940, 824)

+				(1940, 959))

+			    line_style 	3

+			    origin_attachment 	(1622, 824)

+			    terminal_attachment 	(1940, 959)

+			    label      	(object SegLabel @43

+				Parent_View 	@41

+				location   	(1840, 735)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.481707

+				height     	90

+				orientation 	0))))

+		(object AssociationViewNew "$UNNAMED$6" @44

+		    location   	(1116, 476)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"407D860900FE"

+		    roleview_list 	(list RoleViews

+			(object RoleView "grantedPrivilege" @45

+			    Parent_View 	@44

+			    location   	(210, -319)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @46

+				Parent_View 	@45

+				location   	(1233, 443)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	311

+				justify    	0

+				label      	"+grantedPrivilege"

+				pctDist    	0.443366

+				height     	34

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"407D860D01EA"

+			    client     	@44

+			    supplier   	@15

+			    line_style 	3

+			    origin_attachment 	(1116, 476)

+			    terminal_attachment 	(1379, 476)

+			    label      	(object SegLabel @47

+				Parent_View 	@45

+				location   	(1338, 511)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.847896

+				height     	35

+				orientation 	1))

+			(object RoleView "grantor" @48

+			    Parent_View 	@44

+			    location   	(210, -319)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @49

+				Parent_View 	@48

+				location   	(1016, 655)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	154

+				justify    	0

+				label      	"+grantor"

+				pctDist    	0.755556

+				height     	41

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"407D860D01F4"

+			    client     	@44

+			    supplier   	@16

+			    vertices   	(list Points

+				(1116, 476)

+				(1056, 476)

+				(1056, 732))

+			    line_style 	3

+			    origin_attachment 	(1116, 476)

+			    terminal_attachment 	(1056, 732)

+			    label      	(object SegLabel @50

+				Parent_View 	@48

+				location   	(1049, 705)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.914286

+				height     	8

+				orientation 	1))))

+		(object AssociationViewNew "$UNNAMED$7" @51

+		    location   	(1204, 622)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"407D86160084"

+		    roleview_list 	(list RoleViews

+			(object RoleView "receivedPrivilege" @52

+			    Parent_View 	@51

+			    location   	(298, -173)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @53

+				Parent_View 	@52

+				location   	(1344, 666)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	338

+				justify    	0

+				label      	"+receivedPrivilege"

+				pctDist    	0.802030

+				height     	44

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"407D8618038A"

+			    client     	@51

+			    supplier   	@15

+			    line_style 	3

+			    origin_attachment 	(1204, 622)

+			    terminal_attachment 	(1379, 622)

+			    label      	(object SegLabel @54

+				Parent_View 	@52

+				location   	(1335, 587)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.746193

+				height     	36

+				orientation 	0))

+			(object RoleView "grantee" @55

+			    Parent_View 	@51

+			    location   	(298, -173)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @56

+				Parent_View 	@55

+				location   	(1251, 704)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	160

+				justify    	0

+				label      	"+grantee"

+				pctDist    	-0.272727

+				height     	82

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"407D8618038C"

+			    client     	@51

+			    supplier   	@16

+			    vertices   	(list Points

+				(1204, 622)

+				(1139, 622)

+				(1139, 732))

+			    line_style 	3

+			    origin_attachment 	(1204, 622)

+			    terminal_attachment 	(1139, 732))))

+		(object AttachView "" @57

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@2

+		    supplier   	@16

+		    line_style 	3

+		    origin_attachment 	(674, 538)

+		    terminal_attachment 	(674, 732))

+		(object NoteView @58

+		    location   	(1784, 737)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@58

+			location   	(1590, 678)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	352

+			label      	"Only grantor may revoke the granted")

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	412

+		    height     	131)

+		(object AttachView "" @59

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@16

+		    supplier   	@58

+		    line_style 	0)

+		(object AttachView "" @60

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@7

+		    supplier   	@3

+		    line_style 	0)

+		(object NoteView @61

+		    location   	(1691, 1609)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@61

+			location   	(1410, 1484)

+			fill_color 	13434879

+			nlines     	5

+			max_width  	527

+			label      	"Creating a Role will grant that role with grantable privileges to the current user/role.  The grantor is the pseudo user _SYSTEM.")

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	587

+		    height     	263)

+		(object NoteView @62

+		    location   	(382, 1744)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@62

+			location   	(75, 1619)

+			fill_color 	13434879

+			nlines     	5

+			max_width  	578

+			label      	

+|Mapping to OS user/group is implementation dependent.

+|

+|The Group to User aggregation is derived from OS information.

+			)

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	638

+		    height     	262)

+		(object NoteView @63

+		    location   	(1102, 1900)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@63

+			location   	(755, 1787)

+			fill_color 	13434879

+			nlines     	4

+			max_width  	658

+			label      	"Is the PUBLIC AuthorizationId (only applicable to GRANT and REVOKE) a special Role that all users are automatically granted use of?")

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	718

+		    height     	238)

+		(object AttachView "" @64

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@4

+		    supplier   	@61

+		    vertices   	(list Points

+			(1178, 1375)

+			(1178, 1619)

+			(1397, 1619))

+		    line_style 	3

+		    origin_attachment 	(1178, 1375)

+		    terminal_attachment 	(1397, 1619))

+		(object ClassView "Class" "Logical View::SQLModel::AccessControl::User" @65

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(831, 1309)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@65

+			location   	(735, 1258)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	192

+			justify    	0

+			label      	"User")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"407D80DD00FA"

+		    width      	210

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::AccessControl::Group" @66

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(261, 1308)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@66

+			location   	(165, 1257)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	192

+			justify    	0

+			label      	"Group")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"407D80CF03C1"

+		    width      	210

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$8" @67

+		    location   	(545, 1308)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object SegLabel @68

+			Parent_View 	@67

+			location   	(546, 1341)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	TRUE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			hidden     	TRUE

+			anchor     	1

+			anchor_loc 	1

+			nlines     	1

+			max_width  	450

+			justify    	0

+			label      	""

+			pctDist    	0.533333

+			height     	33

+			orientation 	1)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"407D895800F2"

+		    roleview_list 	(list RoleViews

+			(object RoleView "user" @69

+			    Parent_View 	@67

+			    location   	(103, -1)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @70

+				Parent_View 	@69

+				location   	(661, 1273)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	110

+				justify    	0

+				label      	"+user"

+				pctDist    	0.644444

+				height     	35

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"407D895A00AE"

+			    client     	@67

+			    supplier   	@65

+			    line_style 	0

+			    label      	(object SegLabel @71

+				Parent_View 	@69

+				location   	(681, 1353)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.755556

+				height     	45

+				orientation 	1))

+			(object RoleView "group" @72

+			    Parent_View 	@67

+			    location   	(103, -1)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @73

+				Parent_View 	@72

+				location   	(437, 1269)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	136

+				justify    	0

+				label      	"+group"

+				pctDist    	0.603352

+				height     	39

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"407D895A00B8"

+			    client     	@67

+			    supplier   	@66

+			    line_style 	0

+			    label      	(object SegLabel @74

+				Parent_View 	@72

+				location   	(409, 1353)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.759777

+				height     	45

+				orientation 	0))))

+		(object AttachView "" @75

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@62

+		    supplier   	@66

+		    line_style 	0)

+		(object AttachView "" @76

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@62

+		    supplier   	@65

+		    line_style 	0)

+		(object InheritTreeView "" @77

+		    location   	(906, 1147)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@16

+		    vertices   	(list Points

+			(906, 1147)

+			(906, 858)))

+		(object InheritView "" @78

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"407D814B0012"

+		    client     	@4

+		    supplier   	@16

+		    line_style 	3

+		    origin_attachment 	(1128, 1249)

+		    terminal_attachment 	(1128, 1147)

+		    drawSupplier 	@77)

+		(object InheritView "" @79

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"407D81390215"

+		    client     	@66

+		    supplier   	@16

+		    line_style 	3

+		    origin_attachment 	(269, 1245)

+		    terminal_attachment 	(269, 1147)

+		    drawSupplier 	@77)

+		(object InheritView "" @80

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"407D81430219"

+		    client     	@65

+		    supplier   	@16

+		    line_style 	3

+		    origin_attachment 	(831, 1246)

+		    terminal_attachment 	(831, 1147)

+		    drawSupplier 	@77)

+		(object InheritTreeView "" @81

+		    location   	(906, 300)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@1

+		    vertices   	(list Points

+			(906, 300)

+			(906, 168)))

+		(object InheritView "" @82

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"421D5E4E009D"

+		    client     	@15

+		    supplier   	@1

+		    line_style 	3

+		    origin_attachment 	(1666, 385)

+		    terminal_attachment 	(1666, 300)

+		    drawSupplier 	@81)

+		(object InheritView "" @83

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"421D5EF10296"

+		    client     	@7

+		    supplier   	@1

+		    line_style 	3

+		    origin_attachment 	(2165, 958)

+		    terminal_attachment 	(2165, 300)

+		    drawSupplier 	@81)

+		(object InheritView "" @84

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"407D8033002D"

+		    client     	@16

+		    supplier   	@1

+		    line_style 	3

+		    origin_attachment 	(831, 732)

+		    terminal_attachment 	(831, 300)

+		    drawSupplier 	@81)))

+	(object ClassDiagram "Privileges"

+	    quid       	"407D7DA30247"

+	    title      	"Privileges"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	0

+	    origin_y   	900

+	    items      	(list diagram_item_list

+		(object NoteView @85

+		    location   	(1496, 481)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@85

+			location   	(1127, 159)

+			fill_color 	13434879

+			nlines     	12

+			max_width  	702

+			label      	

+|action is in principle an enumerated type but due to limited vendor support of these action types and vendors' added action types the allowable values must be configured via DatabaseDefinition.

+|

+|Shorthand action ALL is not stable since the grantee's privileges are based on the grantor's privileges at the time of need for a privilege rather than at the time of grant.

+			)

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	762

+		    height     	657)

+		(object ClassView "Class" "Logical View::SQLModel::AccessControl::AuthorizationIdentifier" @86

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(344, 1163)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@86

+			location   	(90, 1112)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	508

+			justify    	0

+			label      	"AuthorizationIdentifier")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"407D7FA3017A"

+		    width      	526

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object NoteView @87

+		    location   	(1656, 2117)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@87

+			location   	(1222, 1845)

+			fill_color 	13434879

+			nlines     	10

+			max_width  	833

+			label      	"The object(s) referenced by a Privilege is/are vendor dependent.  Because no vendor supports all types of privileges in the SQL spec and all vendors have added their own privileges we have chosen this generic approach rather than modeling all the different types of privileges with reference(s) to specific object type(s).  Allowable object reference(s) and the associated action types must be configured in DatabaseDefinition.")

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	893

+		    height     	556)

+		(object ClassView "Class" "Logical View::SQLModel::AccessControl::Privilege" @88

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1024, 1176)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@88

+			location   	(745, 1045)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	558

+			justify    	0

+			label      	"Privilege")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"407D806B013C"

+		    compartment 	(object Compartment

+			Parent_View 	@88

+			location   	(745, 1106)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	4

+			max_width  	481)

+		    width      	576

+		    height     	286

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$6" @89

+		    location   	(550, 1381)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"407D860900FE"

+		    roleview_list 	(list RoleViews

+			(object RoleView "grantor" @90

+			    Parent_View 	@89

+			    location   	(-550, 847)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @91

+				Parent_View 	@90

+				location   	(460, 1255)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	154

+				justify    	0

+				label      	"+grantor"

+				pctDist    	0.916468

+				height     	94

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"407D860D01F4"

+			    client     	@89

+			    supplier   	@86

+			    vertices   	(list Points

+				(550, 1381)

+				(366, 1381)

+				(366, 1226))

+			    line_style 	3

+			    origin_attachment 	(550, 1381)

+			    terminal_attachment 	(366, 1226)

+			    label      	(object SegLabel @92

+				Parent_View 	@90

+				location   	(340, 1256)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.913433

+				height     	27

+				orientation 	0))

+			(object RoleView "grantedPrivilege" @93

+			    Parent_View 	@89

+			    location   	(-550, 847)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @94

+				Parent_View 	@93

+				location   	(653, 1342)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	311

+				justify    	0

+				label      	"+grantedPrivilege"

+				pctDist    	0.304478

+				height     	40

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"407D860D01EA"

+			    client     	@89

+			    supplier   	@88

+			    vertices   	(list Points

+				(550, 1381)

+				(828, 1381)

+				(828, 1319))

+			    line_style 	3

+			    origin_attachment 	(550, 1381)

+			    terminal_attachment 	(828, 1319)

+			    label      	(object SegLabel @95

+				Parent_View 	@93

+				location   	(885, 1354)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.897619

+				height     	57

+				orientation 	1))))

+		(object AssociationViewNew "$UNNAMED$7" @96

+		    location   	(565, 973)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"407D86160084"

+		    roleview_list 	(list RoleViews

+			(object RoleView "grantee" @97

+			    Parent_View 	@96

+			    location   	(-535, 439)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @98

+				Parent_View 	@97

+				location   	(485, 1077)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	160

+				justify    	0

+				label      	"+grantee"

+				pctDist    	0.926952

+				height     	113

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"407D8618038C"

+			    client     	@96

+			    supplier   	@86

+			    vertices   	(list Points

+				(565, 973)

+				(372, 973)

+				(372, 1100))

+			    line_style 	3

+			    origin_attachment 	(565, 973)

+			    terminal_attachment 	(372, 1100))

+			(object RoleView "receivedPrivilege" @99

+			    Parent_View 	@96

+			    location   	(-535, 439)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @100

+				Parent_View 	@99

+				location   	(642, 1005)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	338

+				justify    	0

+				label      	"+receivedPrivilege"

+				pctDist    	0.243243

+				height     	32

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"407D8618038A"

+			    client     	@96

+			    supplier   	@88

+			    vertices   	(list Points

+				(565, 973)

+				(826, 973)

+				(826, 1033))

+			    line_style 	3

+			    origin_attachment 	(565, 973)

+			    terminal_attachment 	(826, 1033)

+			    label      	(object SegLabel @101

+				Parent_View 	@99

+				location   	(879, 1006)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.918465

+				height     	53

+				orientation 	0))))

+		(object AttachView "" @102

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@88

+		    supplier   	@85

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLModel::Schema::SQLObject" @103

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1837, 1553)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@103

+			location   	(1699, 1503)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	276

+			justify    	0

+			label      	"SQLObject")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3E9B3EB5002B"

+		    width      	294

+		    height     	124

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$9" @104

+		    location   	(1727, 1162)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"407D90040314"

+		    roleview_list 	(list RoleViews

+			(object RoleView "actionObjects" @105

+			    Parent_View 	@104

+			    location   	(544, 487)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @106

+				Parent_View 	@105

+				location   	(1971, 1439)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	283

+				justify    	0

+				label      	"+actionObjects"

+				pctDist    	0.873846

+				height     	158

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"407D9006006E"

+			    client     	@104

+			    supplier   	@103

+			    vertices   	(list Points

+				(1727, 1162)

+				(1813, 1162)

+				(1813, 1491))

+			    line_style 	3

+			    origin_attachment 	(1727, 1162)

+			    terminal_attachment 	(1813, 1491)

+			    label      	(object SegLabel @107

+				Parent_View 	@105

+				location   	(1751, 1439)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.873846

+				height     	63

+				orientation 	1))

+			(object RoleView "$UNNAMED$10" @108

+			    Parent_View 	@104

+			    location   	(544, 487)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"407D900600C8"

+			    client     	@104

+			    supplier   	@88

+			    line_style 	3

+			    origin_attachment 	(1727, 1162)

+			    terminal_attachment 	(1312, 1162))))

+		(object AttachView "" @109

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@103

+		    supplier   	@87

+		    line_style 	3

+		    origin_attachment 	(1941, 1614)

+		    terminal_attachment 	(1941, 1838))

+		(object AssociationViewNew "$UNNAMED$11" @110

+		    location   	(1321, 1567)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"463143CE018C"

+		    roleview_list 	(list RoleViews

+			(object RoleView "object" @111

+			    Parent_View 	@110

+			    location   	(297, 391)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @112

+				Parent_View 	@111

+				location   	(1615, 1526)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	139

+				justify    	0

+				label      	"+object"

+				pctDist    	0.800000

+				height     	42

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"463143CF01E7"

+			    client     	@110

+			    supplier   	@103

+			    line_style 	3

+			    origin_attachment 	(1321, 1567)

+			    terminal_attachment 	(1690, 1567)

+			    label      	(object SegLabel @113

+				Parent_View 	@111

+				location   	(1640, 1604)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.864499

+				height     	37

+				orientation 	1))

+			(object RoleView "privileges" @114

+			    Parent_View 	@110

+			    location   	(297, 391)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @115

+				Parent_View 	@114

+				location   	(1087, 1359)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	191

+				justify    	0

+				label      	"+privileges"

+				pctDist    	0.891599

+				height     	113

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"463143CF01FB"

+			    client     	@110

+			    supplier   	@88

+			    vertices   	(list Points

+				(1321, 1567)

+				(1200, 1567)

+				(1200, 1319))

+			    line_style 	3

+			    origin_attachment 	(1321, 1567)

+			    terminal_attachment 	(1200, 1319)

+			    label      	(object SegLabel @116

+				Parent_View 	@114

+				location   	(1250, 1364)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.878049

+				height     	50

+				orientation 	1))))))))

diff --git a/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel-Constraints.cat b/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel-Constraints.cat
new file mode 100644
index 0000000..04e1973
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel-Constraints.cat
@@ -0,0 +1,4109 @@
+

+(object Petal

+    version    	50

+    _written   	"Rose 2006.0.0.060314"

+    charSet    	0)

+

+(object Class_Category "Constraints"

+    is_unit    	TRUE

+    is_loaded  	TRUE

+    attributes 	(list Attribute_Set

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"packageName"

+	    value      	(value Text "constraints"))

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"basePackage"

+	    value      	(value Text "org.eclipse.datatools.modelbase.sql"))

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"nsPrefix"

+	    value      	(value Text "SQLConstraints"))

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"nsURI"

+	    value      	(value Text "http:///org/eclipse/datatools/modelbase/sql/constraints.ecore"))

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"prefix"

+	    value      	(value Text "SQLConstraints")))

+    quid       	"3F27D6500062"

+    exportControl 	"Public"

+    logical_models 	(list unit_reference_list

+	(object Class "Assertion"

+	    quid       	"3ED524BC0165"

+	    documentation 	

+|Reference: 5WD-02-Foundation-2002-12 4.17.4 Assertions,

+|5WD-02-Foundation-2002-12 11.37 <assertion definition>

+|

+	    

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3ED52B5201F9"

+		    supplier   	"Logical View::SQLModel::Constraints::Constraint"

+		    quidu      	"3ED5239F029C"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "searchCondition"

+		    quid       	"3ED52E320287"

+		    type       	"SearchCondition"

+		    quidu      	"3FABEC590086"

+		    exportControl 	"Public")))

+	(object Class "Constraint"

+	    quid       	"3ED5239F029C"

+	    documentation 	

+|Reference: 5WD-02-Foundation-2002-12 4.17 Integrity constraints

+|

+	    

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3ED52ECA0076"

+		    supplier   	"Logical View::SQLModel::Schema::SQLObject"

+		    quidu      	"3E9B3EB5002B"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "deferrable"

+		    quid       	"3ED52F3D0336"

+		    documentation 	

+|If True allows you to specify when the DBMS should check the constraint for violation (statement end or transaction end).  If False it will always be after statement end.

+|

+|Could also be named deferralMode with values DEFERRABLE and NOT DEFERRABLE.

+		    

+		    type       	"boolean"

+		    exportControl 	"Public")

+		(object ClassAttribute "initiallyDeferred"

+		    quid       	"3ED531B5033E"

+		    documentation 	

+|If True isDeferrable must be True and constraint check time will be DEFERRED.  If False constraint check time will be IMMEDIATE.

+|

+|Could also be named (initial)ConstraintCheckTime with values INITIALLY DEFERRED and INITIALLY IMMEDIATE.  Default value would be INITIALLY IMMEDIATE.

+|

+		    

+		    type       	"boolean"

+		    initv      	"false"

+		    exportControl 	"Public")

+		(object ClassAttribute "enforced"

+		    quid       	"402834800375"

+		    type       	"boolean"

+		    initv      	"true"

+		    exportControl 	"Public"))

+	    abstract   	TRUE)

+	(object Class "TableConstraint"

+	    quid       	"3ED52ACF000F"

+	    documentation 	

+|Reference: 5WD-02-Foundation-2002-12 4.17.2 Table constraints

+|

+	    

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3ED52B490312"

+		    supplier   	"Logical View::SQLModel::Constraints::Constraint"

+		    quidu      	"3ED5239F029C"))

+	    abstract   	TRUE)

+	(object Class "ReferenceConstraint"

+	    quid       	"3EDE52410316"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 4.17.2 Table constraints"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3EDE538E0161"

+		    supplier   	"Logical View::SQLModel::Constraints::TableConstraint"

+		    quidu      	"3ED52ACF000F"))

+	    abstract   	TRUE)

+	(object Class "CheckConstraint"

+	    quid       	"3ED5247D007B"

+	    documentation 	

+|Reference: 5WD-02-Foundation-2002-12 4.17.2 Table constraints

+|

+	    

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3EDE53940170"

+		    supplier   	"Logical View::SQLModel::Constraints::TableConstraint"

+		    quidu      	"3ED52ACF000F"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "searchCondition"

+		    quid       	"3ED52E0E02B5"

+		    documentation 	

+|Section 4.17.2

+|A check constraint is satisfied if and only if the specified <search condition> is not False for any row of a table.

+		    

+		    type       	"SearchCondition"

+		    quidu      	"3FABEC590086"

+		    exportControl 	"Public"

+		    Containment 	"By Value")))

+	(object Class "ForeignKey"

+	    quid       	"3EDF626C0085"

+	    documentation 	

+|Reference: 5WD-02-Foundation-2002-12 4.17 Integrity constraints, Reference, 5WD-02-Foundation-2002-12 11.8 <referencial constraint definition>

+|

+	    

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3ED548BC006E"

+		    supplier   	"Logical View::SQLModel::Constraints::ReferenceConstraint"

+		    quidu      	"3EDE52410316"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "match"

+		    quid       	"3F9EEBA30303"

+		    type       	"MatchType"

+		    quidu      	"3ED662B80341"

+		    initv      	"MATCH_SIMPLE"

+		    exportControl 	"Public")

+		(object ClassAttribute "onUpdate"

+		    quid       	"3F9EEBA30317"

+		    type       	"ReferentialActionType"

+		    quidu      	"3ED6717C0130"

+		    initv      	"NO_ACTION"

+		    exportControl 	"Public")

+		(object ClassAttribute "onDelete"

+		    quid       	"3F9EEBA3032B"

+		    type       	"ReferentialActionType"

+		    quidu      	"3ED6717C0130"

+		    initv      	"NO_ACTION"

+		    exportControl 	"Public")))

+	(object Class "UniqueConstraint"

+	    quid       	"3ED52439006B"

+	    documentation 	

+|Reference: 5WD-02-Foundation-2002-12 4.17.2 Table constraints, 5WD-02-Foundation-2002-12 11.7 <unique contraint definition>

+|

+	    

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3ED548B9004E"

+		    supplier   	"Logical View::SQLModel::Constraints::ReferenceConstraint"

+		    quidu      	"3EDE52410316"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "clustered"

+		    quid       	"4E9917680109"

+		    type       	"boolean"

+		    initv      	"true"

+		    exportControl 	"Public")))

+	(object Class "PrimaryKey"

+	    quid       	"3ED5246901C3"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 4.17 Integrity constraints, Reference, 5WD-02-Foundation-2002-12 11.7 <unique contraint definition>"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3ED55A4A0061"

+		    supplier   	"Logical View::SQLModel::Constraints::UniqueConstraint"

+		    quidu      	"3ED52439006B")))

+	(object Class "MatchType"

+	    quid       	"3ED662B80341"

+	    documentation 	"See KeyRelationship description."

+	    stereotype 	"enumeration"

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "MATCH_SIMPLE"

+		    quid       	"3ED662CF0044"

+		    exportControl 	"Public")

+		(object ClassAttribute "MATCH_FULL"

+		    quid       	"3ED662F202F5"

+		    exportControl 	"Public")

+		(object ClassAttribute "MATCH_PARTIAL"

+		    quid       	"3ED663190299"

+		    exportControl 	"Public")))

+	(object Class "Index"

+	    quid       	"3FA7FB2B02AA"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 "

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3FA807570399"

+		    supplier   	"Logical View::SQLModel::Schema::SQLObject"

+		    quidu      	"3E9B3EB5002B"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "clustered"

+		    quid       	"3FA8002303B5"

+		    type       	"boolean"

+		    initv      	"false"

+		    exportControl 	"Public")

+		(object ClassAttribute "fillFactor"

+		    quid       	"3FA801840190"

+		    type       	"int"

+		    initv      	"0"

+		    exportControl 	"Public")

+		(object ClassAttribute "unique"

+		    quid       	"3FABDF7C03E1"

+		    type       	"boolean"

+		    initv      	"false"

+		    exportControl 	"Public")

+		(object ClassAttribute "systemGenerated"

+		    quid       	"433DCEDA007C"

+		    type       	"boolean"

+		    exportControl 	"Public")))

+	(object Class "IndexMember"

+	    quid       	"3FA807740185"

+	    documentation 	

+|IndexMember is an EObject.  It does not have a name or associated SQL descriptor so it is not an SQLObject.  This is the way we have chosen to model Index columns because EMF does not support association classes.

+|The "expression" reference was added to support function/expression-based indexes.  The expression relationship and the column relationship should be mutually exclusive; that is, one and only one of these should be set.

+	    

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3FB9179A0047"

+		    supplier   	"Logical View::SQLModel::Schema::SQLObject"

+		    quidu      	"3E9B3EB5002B"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "incrementType"

+		    quid       	"3FA807830134"

+		    type       	"IncrementType"

+		    quidu      	"3FA8080C02B0"

+		    exportControl 	"Public")))

+	(object Class "IncrementType"

+	    quid       	"3FA8080C02B0"

+	    stereotype 	"enumeration"

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "ASC"

+		    quid       	"3FA8083403DF"

+		    exportControl 	"Public")

+		(object ClassAttribute "DESC"

+		    quid       	"3FA8083A011F"

+		    exportControl 	"Public")

+		(object ClassAttribute "RANDOM"

+		    quid       	"4B47822400DA"

+		    exportControl 	"Public")))

+	(object Class "IndexExpression"

+	    quid       	"4FC6B3E9014F"

+	    documentation 	"IndexExpression is a SQLObject.  It was added to support function/expression-based indexes."

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"4FC6B5A3019D"

+		    supplier   	"Logical View::SQLModel::Schema::SQLObject"

+		    quidu      	"3E9B3EB5002B"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "sql"

+		    quid       	"4FC6B3F802C6"

+		    type       	"String"

+		    exportControl 	"Public")))

+	(object Association "$UNNAMED$0"

+	    quid       	"3F26B1ED0231"

+	    roles      	(list role_list

+		(object Role "assertions"

+		    quid       	"3F26B1EF032E"

+		    label      	"assertions"

+		    supplier   	"Logical View::SQLModel::Constraints::Assertion"

+		    quidu      	"3ED524BC0165"

+		    client_cardinality 	(value cardinality "0..n")

+		    Containment 	"By Reference"

+		    exportControl 	"Private"

+		    is_navigable 	TRUE)

+		(object Role "schema"

+		    quid       	"3F26B1EF0330"

+		    label      	"schema"

+		    supplier   	"Logical View::SQLModel::Schema::Schema"

+		    quidu      	"3ED523C20089"

+		    client_cardinality 	(value cardinality "1")

+		    exportControl 	"Private"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$1"

+	    quid       	"3ED52E4000D2"

+	    roles      	(list role_list

+		(object Role "constrainedTables"

+		    quid       	"3ED52E41018D"

+		    label      	"constrainedTables"

+		    supplier   	"Logical View::SQLModel::Tables::BaseTable"

+		    quidu      	"3E9B41900372"

+		    client_cardinality 	(value cardinality "1..n")

+		    Containment 	"By Reference"

+		    exportControl 	"Private"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$2"

+		    quid       	"3ED52E4101AC"

+		    supplier   	"Logical View::SQLModel::Constraints::Assertion"

+		    quidu      	"3ED524BC0165"

+		    exportControl 	"Private"

+		    is_aggregate 	TRUE))

+	    derived    	TRUE)

+	(object Association "$UNNAMED$3"

+	    quid       	"3F26B33701AA"

+	    roles      	(list role_list

+		(object Role "constraints"

+		    quid       	"3F26B3390062"

+		    label      	"constraints"

+		    supplier   	"Logical View::SQLModel::Constraints::TableConstraint"

+		    quidu      	"3ED52ACF000F"

+		    client_cardinality 	(value cardinality "0..n")

+		    Containment 	"By Value"

+		    exportControl 	"Private"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$4"

+		    quid       	"3F26B3390064"

+		    supplier   	"Logical View::SQLModel::Tables::BaseTable"

+		    quidu      	"3E9B41900372"

+		    client_cardinality 	(value cardinality "0..1")

+		    exportControl 	"Private"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$5"

+	    quid       	"3EDE53DD038E"

+	    roles      	(list role_list

+		(object Role "uniqueConstraint"

+		    quid       	"3EDE53DE02A6"

+		    label      	"uniqueConstraint"

+		    supplier   	"Logical View::SQLModel::Constraints::UniqueConstraint"

+		    quidu      	"3ED52439006B"

+		    client_cardinality 	(value cardinality "0..1")

+		    exportControl 	"Private"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$6"

+		    quid       	"3EDE53DE02A8"

+		    supplier   	"Logical View::SQLModel::Constraints::ForeignKey"

+		    quidu      	"3EDF626C0085"

+		    Containment 	"By Reference"

+		    exportControl 	"Private"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$7"

+	    quid       	"3ED7BF3B0074"

+	    roles      	(list role_list

+		(object Role "subjectTable"

+		    quid       	"3ED7BF3E0331"

+		    label      	"subjectTable"

+		    supplier   	"Logical View::SQLModel::Tables::Table"

+		    quidu      	"3E9B1FB60047"

+		    client_cardinality 	(value cardinality "1")

+		    exportControl 	"Private"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "triggers"

+		    quid       	"3ED7BF3E0333"

+		    label      	"triggers"

+		    supplier   	"Logical View::SQLModel::Tables::Trigger"

+		    quidu      	"3ED7B9780253"

+		    client_cardinality 	(value cardinality "0..n")

+		    Containment 	"By Reference"

+		    exportControl 	"Private"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$8"

+	    quid       	"3ED7E96D0133"

+	    roles      	(list role_list

+		(object Role "actionStatement"

+		    quid       	"3ED7E96E0171"

+		    label      	"actionStatement"

+		    supplier   	"Logical View::SQLModel::Statements::SQLStatement"

+		    quidu      	"404908A2008B"

+		    client_cardinality 	(value cardinality "1..n")

+		    Containment 	"By Value"

+		    exportControl 	"Private"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$9"

+		    quid       	"3ED7E96E0173"

+		    supplier   	"Logical View::SQLModel::Tables::Trigger"

+		    quidu      	"3ED7B9780253"

+		    exportControl 	"Private"

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$10"

+	    quid       	"3ED7D9E50215"

+	    roles      	(list role_list

+		(object Role "triggerColumn"

+		    quid       	"3ED7D9E601A8"

+		    label      	"triggerColumn"

+		    supplier   	"Logical View::SQLModel::Tables::Column"

+		    quidu      	"3E9B2AFF0392"

+		    client_cardinality 	(value cardinality "0..n")

+		    exportControl 	"Private"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$11"

+		    quid       	"3ED7D9E601C7"

+		    supplier   	"Logical View::SQLModel::Tables::Trigger"

+		    quidu      	"3ED7B9780253"

+		    exportControl 	"Private")))

+	(object Association "$UNNAMED$12"

+	    quid       	"3EDF6B9A02C1"

+	    roles      	(list role_list

+		(object Role "$UNNAMED$13"

+		    quid       	"3EDF6B9B0129"

+		    supplier   	"Logical View::SQLModel::DataTypes::Domain"

+		    quidu      	"3EDF635C005F"

+		    client_cardinality 	(value cardinality "0..1")

+		    is_aggregate 	TRUE)

+		(object Role "constraint"

+		    quid       	"3EDF6B9B012B"

+		    label      	"constraint"

+		    supplier   	"Logical View::SQLModel::Constraints::CheckConstraint"

+		    quidu      	"3ED5247D007B"

+		    client_cardinality 	(value cardinality "0..n")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$14"

+	    quid       	"3FA71C3F013A"

+	    roles      	(list role_list

+		(object Role "members"

+		    quid       	"3FA71C410039"

+		    label      	"members"

+		    supplier   	"Logical View::SQLModel::Tables::Column"

+		    quidu      	"3E9B2AFF0392"

+		    client_cardinality 	(value cardinality "1..n")

+		    Constraints 	"ordered"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$15"

+		    quid       	"3FA71C41004D"

+		    supplier   	"Logical View::SQLModel::Constraints::ReferenceConstraint"

+		    quidu      	"3EDE52410316"

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$16"

+	    quid       	"3FA71D0B03A1"

+	    documentation 	

+|The referencedMembers collection is a reference to the Columns referenced by the associated UniqueConstraint.

+|

+|The referencedMembers collection is not set if ForeignKey.members() and UniqueConstraint.members are in the same order.

+|

+	    

+	    roles      	(list role_list

+		(object Role "referencedMembers"

+		    quid       	"3FA71D0D02EF"

+		    label      	"referencedMembers"

+		    supplier   	"Logical View::SQLModel::Tables::Column"

+		    quidu      	"3E9B2AFF0392"

+		    client_cardinality 	(value cardinality "1..n")

+		    Constraints 	"ordered"

+		    Containment 	"By Reference"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$17"

+		    quid       	"3FA71D0D0303"

+		    supplier   	"Logical View::SQLModel::Constraints::ForeignKey"

+		    quidu      	"3EDF626C0085")))

+	(object Association "$UNNAMED$18"

+	    quid       	"3FA8096B0219"

+	    roles      	(list role_list

+		(object Role "members"

+		    quid       	"3FA8096C021A"

+		    label      	"members"

+		    supplier   	"Logical View::SQLModel::Constraints::IndexMember"

+		    quidu      	"3FA807740185"

+		    client_cardinality 	(value cardinality "1..n")

+		    Constraints 	"ordered"

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$19"

+		    quid       	"3FA8096C021C"

+		    supplier   	"Logical View::SQLModel::Constraints::Index"

+		    quidu      	"3FA7FB2B02AA"

+		    client_cardinality 	(value cardinality "1")

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$20"

+	    quid       	"3FA809C0035A"

+	    roles      	(list role_list

+		(object Role "column"

+		    quid       	"3FA809C103AC"

+		    label      	"column"

+		    supplier   	"Logical View::SQLModel::Tables::Column"

+		    quidu      	"3E9B2AFF0392"

+		    client_cardinality 	(value cardinality "0..1")

+		    Containment 	"By Reference"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$21"

+		    quid       	"3FA809C103B6"

+		    supplier   	"Logical View::SQLModel::Constraints::IndexMember"

+		    quidu      	"3FA807740185")))

+	(object Association "$UNNAMED$22"

+	    quid       	"3FCB85E903AA"

+	    roles      	(list role_list

+		(object Role "table"

+		    quid       	"3FCB85ED00A3"

+		    label      	"table"

+		    supplier   	"Logical View::SQLModel::Tables::Table"

+		    quidu      	"3E9B1FB60047"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE)

+		(object Role "index"

+		    quid       	"3FCB85ED00AD"

+		    label      	"index"

+		    supplier   	"Logical View::SQLModel::Constraints::Index"

+		    quidu      	"3FA7FB2B02AA"

+		    client_cardinality 	(value cardinality "0..n")

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$23"

+	    quid       	"4022F50001D5"

+	    roles      	(list role_list

+		(object Role "uniqueIndex"

+		    quid       	"4022F5030107"

+		    label      	"uniqueIndex"

+		    supplier   	"Logical View::SQLModel::Constraints::Index"

+		    quidu      	"3FA7FB2B02AA"

+		    client_cardinality 	(value cardinality "0..1")

+		    Containment 	"By Reference"

+		    exportControl 	"Private"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$24"

+		    quid       	"4022F503011C"

+		    supplier   	"Logical View::SQLModel::Constraints::ForeignKey"

+		    quidu      	"3EDF626C0085"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$25"

+	    quid       	"4023025902C9"

+	    roles      	(list role_list

+		(object Role "includedMembers"

+		    quid       	"4023025E0186"

+		    label      	"includedMembers"

+		    supplier   	"Logical View::SQLModel::Constraints::IndexMember"

+		    quidu      	"3FA807740185"

+		    client_cardinality 	(value cardinality "0..n")

+		    Constraints 	"ordered"

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$26"

+		    quid       	"4023025E0190"

+		    supplier   	"Logical View::SQLModel::Constraints::Index"

+		    quidu      	"3FA7FB2B02AA"

+		    client_cardinality 	(value cardinality "1")

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$27"

+	    quid       	"4366B5F20202"

+	    roles      	(list role_list

+		(object Role "referencedTable"

+		    quid       	"4366B5F90004"

+		    label      	"referencedTable"

+		    supplier   	"Logical View::SQLModel::Tables::BaseTable"

+		    quidu      	"3E9B41900372"

+		    client_cardinality 	(value cardinality "0..1")

+		    Containment 	"By Reference"

+		    is_navigable 	TRUE)

+		(object Role "referencingForeignKeys"

+		    quid       	"4366B5F9000E"

+		    label      	"referencingForeignKeys"

+		    supplier   	"Logical View::SQLModel::Constraints::ForeignKey"

+		    quidu      	"3EDF626C0085"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$28"

+	    quid       	"4FC6B66A0362"

+	    roles      	(list role_list

+		(object Role "expression"

+		    quid       	"4FC6B66C0249"

+		    label      	"expression"

+		    supplier   	"Logical View::SQLModel::Constraints::IndexExpression"

+		    quidu      	"4FC6B3E9014F"

+		    client_cardinality 	(value cardinality "0..1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$29"

+		    quid       	"4FC6B66C024B"

+		    supplier   	"Logical View::SQLModel::Constraints::IndexMember"

+		    quidu      	"3FA807740185"

+		    is_aggregate 	TRUE))))

+    logical_presentations 	(list unit_reference_list

+	(object ClassDiagram "Constraints"

+	    quid       	"3ED523AF03A6"

+	    title      	"Constraints"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	0

+	    origin_y   	2106

+	    items      	(list diagram_item_list

+		(object ClassView "Class" "Logical View::SQLModel::Constraints::Constraint" @1

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    location   	(2132, 650)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@1

+			location   	(1811, 519)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	642

+			justify    	0

+			label      	"Constraint")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3ED5239F029C"

+		    compartment 	(object Compartment

+			Parent_View 	@1

+			location   	(1811, 580)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	TRUE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	4

+			max_width  	638

+			justify    	1)

+		    width      	660

+		    height     	286

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object NoteView @2

+		    location   	(630, 194)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@2

+			location   	(248, 106)

+			fill_color 	13434879

+			nlines     	3

+			max_width  	728

+			justify    	1

+			label      	

+|10.8 2):

+|{self.assertions->forAll(a1, a2 | a1 <> a2 implies a1.name <> a2.name)}

+			)

+		    line_color 	3342489

+		    fill_color 	8454016

+		    width      	788

+		    height     	188)

+		(object NoteView @3

+		    location   	(2687, 1266)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@3

+			location   	(2493, 1181)

+			fill_color 	13434879

+			nlines     	3

+			max_width  	352

+			justify    	1

+			label      	"Column constraints are logically TableConstraints")

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	412

+		    height     	182)

+		(object NoteView @4

+		    location   	(636, 641)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@4

+			location   	(255, 472)

+			fill_color 	13434879

+			nlines     	6

+			max_width  	726

+			justify    	1

+			label      	

+|11.7 3b):

+|{self.constraints->forAll(uc1 : UniqueConstraint, uc2 : UniqueConstraint | uc1 <> uc2 implies (uc1.members <> uc2.members)}

+			)

+		    line_color 	3342489

+		    fill_color 	8454016

+		    width      	786

+		    height     	350)

+		(object NoteView @5

+		    location   	(605, 1194)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@5

+			location   	(252, 1100)

+			fill_color 	13434879

+			nlines     	3

+			max_width  	670

+			justify    	1

+			label      	

+|11.7 6):

+|{self.constraints->select(oclIsTypeOf(PrimaryKey))->size() = 1}

+			)

+		    line_color 	3342489

+		    fill_color 	8454016

+		    width      	730

+		    height     	200)

+		(object NoteView @6

+		    location   	(537, 1793)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@6

+			location   	(261, 1715)

+			fill_color 	13434879

+			nlines     	3

+			max_width  	516

+			justify    	1

+			label      	"isNullable = False is logically a CheckConstraint")

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	576

+		    height     	169)

+		(object NoteView @7

+		    location   	(594, 1491)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@7

+			location   	(200, 1400)

+			fill_color 	13434879

+			nlines     	3

+			max_width  	752

+			justify    	1

+			label      	

+|11.7 3a) and 11.8 7):

+|{Set{self.BaseTable} = self.members.table->asSet()}

+			)

+		    line_color 	3342489

+		    fill_color 	8454016

+		    width      	812

+		    height     	194)

+		(object NoteView @8

+		    location   	(2924, 1806)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@8

+			location   	(2402, 1747)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	1008

+			justify    	1

+			label      	

+|11.7 3a) and 11.8 7):

+|{self.members->isUnique(c : Column | c)}

+			)

+		    line_color 	3342489

+		    fill_color 	8454016

+		    width      	1068

+		    height     	130)

+		(object NoteView @9

+		    location   	(1770, 3287)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@9

+			location   	(1292, 3187)

+			fill_color 	13434879

+			nlines     	4

+			max_width  	921

+			justify    	1

+			label      	

+|11.8 9):

+|Constrained columns' must have a comparable datatype to those of the unique constraint.

+			)

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	981

+		    height     	213)

+		(object NoteView @10

+		    location   	(1703, 3059)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@10

+			location   	(1369, 2984)

+			fill_color 	13434879

+			nlines     	3

+			max_width  	632

+			justify    	1

+			label      	

+|11.8 9):

+|{self.members->size() = self.uc.members.size()}

+			)

+		    line_color 	3342489

+		    fill_color 	8454016

+		    width      	692

+		    height     	162)

+		(object ClassView "Class" "Logical View::SQLModel::Constraints::PrimaryKey" @11

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2076, 2520)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@11

+			location   	(1949, 2469)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	254

+			justify    	0

+			label      	"PrimaryKey")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3ED5246901C3"

+		    width      	272

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object NoteView @12

+		    location   	(2894, 2512)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@12

+			location   	(2428, 2453)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	896

+			justify    	1

+			label      	

+|11.7 5):

+|{self.members->forAll(not isNullable)}

+			)

+		    line_color 	3342489

+		    fill_color 	8454016

+		    width      	956

+		    height     	130)

+		(object NoteView @13

+		    location   	(844, 3585)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@13

+			location   	(234, 3426)

+			fill_color 	13434879

+			nlines     	6

+			max_width  	1184

+			justify    	1

+			label      	

+|11.8 5):

+|{(self.table.oclIsTypeOf(PersistentTable) and   self.uc.table.oclIsTypeOf(PersistentTable)) or  (self.table.oclIsTypeOf(TemporaryTable) and

+|  self.uc.table.oclIsTypeOf(TemporaryTable) and

+|  (self.table.isLocal = false implies self.uc.table.isLocal = false)) }

+			)

+		    line_color 	3342489

+		    fill_color 	8454016

+		    width      	1244

+		    height     	330)

+		(object ClassView "Class" "Logical View::SQLModel::Constraints::MatchType" @14

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(519, 4044)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@14

+			location   	(295, 3935)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	448

+			justify    	0

+			label      	"MatchType")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@14

+			location   	(295, 3885)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	448

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	15329769

+		    quidu      	"3ED662B80341"

+		    compartment 	(object Compartment

+			Parent_View 	@14

+			location   	(295, 3996)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	4

+			max_width  	387

+			justify    	1)

+		    width      	466

+		    height     	342

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Schema::ReferentialActionType" @15

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1068, 4092)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@15

+			location   	(817, 3910)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	502

+			justify    	0

+			label      	"ReferentialActionType")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@15

+			location   	(817, 3860)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	502

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	15329769

+		    quidu      	"3ED6717C0130"

+		    compartment 	(object Compartment

+			Parent_View 	@15

+			location   	(817, 4015)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	6

+			max_width  	340

+			justify    	1)

+		    width      	520

+		    height     	488

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object NoteView @16

+		    location   	(2724, 163)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@16

+			location   	(2464, 69)

+			fill_color 	13434879

+			nlines     	3

+			max_width  	484

+			justify    	1

+			label      	

+|10.8 4):

+|{self.initiallyDeferred = true implies isDeferrable = true}

+			)

+		    line_color 	3342489

+		    fill_color 	8453888

+		    width      	544

+		    height     	200)

+		(object NoteView @17

+		    location   	(502, 3172)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@17

+			location   	(77, 3031)

+			fill_color 	13434879

+			nlines     	5

+			max_width  	815

+			justify    	1

+			label      	

+|11.8 6):

+|{let uTable = self.uc.table in

+|uTable.oclIsTypeOf(TemporaryTable) and uTable.deleteOnCommit = true implies self.table.deleteOnCommit = true}

+			)

+		    line_color 	3342489

+		    fill_color 	8453888

+		    width      	875

+		    height     	294)

+		(object ClassView "Class" "Logical View::SQLModel::Constraints::CheckConstraint" @18

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2666, 1616)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@18

+			location   	(2327, 1535)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	678

+			justify    	0

+			label      	"CheckConstraint")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3ED5247D007B"

+		    compartment 	(object Compartment

+			Parent_View 	@18

+			location   	(2327, 1596)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	2

+			max_width  	675

+			justify    	1)

+		    width      	696

+		    height     	186

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::Domain" @19

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2947, 512)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@19

+			location   	(2737, 408)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	420

+			justify    	0

+			label      	"Domain")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3EDF635C005F"

+		    compartment 	(object Compartment

+			Parent_View 	@19

+			location   	(2737, 513)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	2

+			max_width  	416

+			justify    	1)

+		    width      	438

+		    height     	232

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$12" @20

+		    location   	(2871, 1075)

+		    stereotype 	TRUE

+		    quidu      	"3EDF6B9A02C1"

+		    roleview_list 	(list RoleViews

+			(object RoleView "constraint" @21

+			    Parent_View 	@20

+			    location   	(158, 766)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @22

+				Parent_View 	@21

+				location   	(2757, 1433)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	214

+				justify    	0

+				label      	"+constraint"

+				pctDist    	0.801339

+				height     	115

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3EDF6B9B012B"

+			    client     	@20

+			    supplier   	@18

+			    vertices   	(list Points

+				(2871, 1075)

+				(2871, 1523))

+			    line_style 	3

+			    origin_attachment 	(2871, 1075)

+			    terminal_attachment 	(2871, 1523)

+			    label      	(object SegLabel @23

+				Parent_View 	@21

+				location   	(2799, 1489)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	80

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.926339

+				height     	73

+				orientation 	1))

+			(object RoleView "$UNNAMED$13" @24

+			    Parent_View 	@20

+			    location   	(158, 766)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @25

+				Parent_View 	@24

+				location   	(2831, 719)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				hidden     	TRUE

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	384

+				justify    	0

+				label      	""

+				pctDist    	0.798137

+				height     	41

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3EDF6B9B0129"

+			    client     	@20

+			    supplier   	@19

+			    vertices   	(list Points

+				(2871, 1075)

+				(2871, 628))

+			    line_style 	3

+			    origin_attachment 	(2871, 1075)

+			    terminal_attachment 	(2871, 628)

+			    label      	(object SegLabel @26

+				Parent_View 	@24

+				location   	(2797, 685)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	80

+				justify    	0

+				label      	"0..1"

+				pctDist    	0.874720

+				height     	75

+				orientation 	0))))

+		(object ClassView "Class" "Logical View::SQLModel::Schema::SQLObject" @27

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    location   	(1676, 141)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@27

+			location   	(1479, 12)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	394

+			justify    	0

+			label      	"SQLObject")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3E9B3EB5002B"

+		    compartment 	(object Compartment

+			Parent_View 	@27

+			location   	(1479, 117)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	TRUE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	3

+			max_width  	391

+			justify    	1)

+		    width      	412

+		    height     	282

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AttachView "" @28

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@16

+		    supplier   	@1

+		    vertices   	(list Points

+			(2451, 156)

+			(2272, 156)

+			(2272, 507))

+		    line_style 	3

+		    origin_attachment 	(2451, 156)

+		    terminal_attachment 	(2272, 507))

+		(object AttachView "" @29

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@11

+		    supplier   	@12

+		    vertices   	(list Points

+			(2212, 2506)

+			(2415, 2506))

+		    line_style 	3

+		    origin_attachment 	(2212, 2506)

+		    terminal_attachment 	(2415, 2506))

+		(object NoteView @30

+		    location   	(2539, 2850)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@30

+			location   	(2348, 2791)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	346

+			justify    	1

+			label      	"{self.unique = True}")

+		    line_color 	3342489

+		    fill_color 	8453888

+		    width      	406

+		    height     	131)

+		(object NoteView @31

+		    location   	(415, 2722)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@31

+			location   	(21, 2531)

+			fill_color 	13434879

+			nlines     	7

+			max_width  	752

+			justify    	1

+			label      	"identifying: The PK of the parent table is part of the PK of the child table, i.e. FK.members are equal to or a subset of PK.members for the same table AND FK.referencedMembers are equal to the PK.members of the table referenced via FK.referencedMembers")

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	812

+		    height     	394)

+		(object Label @32

+		    location   	(1631, 2475)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    nlines     	1

+		    max_width  	87

+		    justify    	1

+		    label      	"{xor}")

+		(object InheritTreeView "" @33

+		    location   	(1676, 400)

+		    line_color 	16711680

+		    fill_color 	16711680

+		    supplier   	@27

+		    vertices   	(list Points

+			(1676, 400)

+			(1676, 282)))

+		(object InheritView "" @34

+		    stereotype 	TRUE

+		    line_color 	16711680

+		    quidu      	"3ED52ECA0076"

+		    client     	@1

+		    supplier   	@27

+		    vertices   	(list Points

+			(2065, 506)

+			(2065, 400))

+		    line_style 	3

+		    origin_attachment 	(2065, 506)

+		    terminal_attachment 	(2065, 400)

+		    drawSupplier 	@33)

+		(object InheritTreeView "" @35

+		    location   	(2132, 908)

+		    line_color 	16711680

+		    fill_color 	13434879

+		    supplier   	@1

+		    vertices   	(list Points

+			(2132, 908)

+			(2132, 793)))

+		(object ClassView "Class" "Logical View::SQLModel::Schema::Schema" @36

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1342, 584)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@36

+			location   	(1205, 506)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	274

+			justify    	0

+			label      	"Schema")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3ED523C20089"

+		    width      	292

+		    height     	180

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AttachView "" @37

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@2

+		    supplier   	@36

+		    vertices   	(list Points

+			(1024, 222)

+			(1215, 222)

+			(1215, 494))

+		    line_style 	3

+		    origin_attachment 	(1024, 222)

+		    terminal_attachment 	(1215, 494))

+		(object InheritView "" @38

+		    stereotype 	TRUE

+		    line_color 	16711680

+		    quidu      	"3ED52ED402B8"

+		    client     	@36

+		    supplier   	@27

+		    vertices   	(list Points

+			(1340, 494)

+			(1340, 400))

+		    line_style 	3

+		    origin_attachment 	(1340, 494)

+		    terminal_attachment 	(1340, 400)

+		    drawSupplier 	@33)

+		(object ClassView "Class" "Logical View::SQLModel::Constraints::ReferenceConstraint" @39

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1881, 1589)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@39

+			location   	(1680, 1538)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	402

+			justify    	0

+			label      	"ReferenceConstraint")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3EDE52410316"

+		    width      	420

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AttachView "" @40

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@39

+		    supplier   	@7

+		    vertices   	(list Points

+			(1671, 1584)

+			(1000, 1584))

+		    line_style 	3

+		    origin_attachment 	(1671, 1584)

+		    terminal_attachment 	(1000, 1584))

+		(object AttachView "" @41

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@39

+		    supplier   	@8

+		    vertices   	(list Points

+			(2047, 1652)

+			(2047, 1794)

+			(2389, 1794))

+		    line_style 	3

+		    origin_attachment 	(2047, 1652)

+		    terminal_attachment 	(2389, 1794))

+		(object ClassView "Class" "Logical View::SQLModel::Constraints::TableConstraint" @42

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2323, 1052)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@42

+			location   	(2158, 1001)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	330

+			justify    	0

+			label      	"TableConstraint")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3ED52ACF000F"

+		    width      	348

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AttachView "" @43

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@42

+		    supplier   	@3

+		    vertices   	(list Points

+			(2431, 1115)

+			(2531, 1174))

+		    line_style 	0)

+		(object InheritView "" @44

+		    stereotype 	TRUE

+		    line_color 	16711680

+		    quidu      	"3ED52B490312"

+		    client     	@42

+		    supplier   	@1

+		    vertices   	(list Points

+			(2314, 989)

+			(2314, 908))

+		    line_style 	3

+		    origin_attachment 	(2314, 989)

+		    terminal_attachment 	(2314, 908)

+		    drawSupplier 	@35)

+		(object InheritView "" @45

+		    stereotype 	TRUE

+		    line_color 	16711680

+		    quidu      	"3EDE538E0161"

+		    client     	@39

+		    supplier   	@42

+		    vertices   	(list Points

+			(1914, 1526)

+			(1914, 1434)

+			(2314, 1434)

+			(2314, 1115))

+		    line_style 	3

+		    origin_attachment 	(1914, 1526)

+		    terminal_attachment 	(2314, 1115))

+		(object InheritView "" @46

+		    stereotype 	TRUE

+		    line_color 	16711680

+		    quidu      	"3EDE53940170"

+		    client     	@18

+		    supplier   	@42

+		    vertices   	(list Points

+			(2645, 1523)

+			(2645, 1434)

+			(2314, 1434)

+			(2314, 1115))

+		    line_style 	3

+		    origin_attachment 	(2645, 1523)

+		    terminal_attachment 	(2314, 1115))

+		(object ClassView "Class" "Logical View::SQLModel::Constraints::Assertion" @47

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1461, 1061)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@47

+			location   	(1122, 980)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	678

+			justify    	0

+			label      	"Assertion")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3ED524BC0165"

+		    compartment 	(object Compartment

+			Parent_View 	@47

+			location   	(1122, 1041)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	2

+			max_width  	675

+			justify    	1)

+		    width      	696

+		    height     	186

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @48

+		    stereotype 	TRUE

+		    line_color 	16711680

+		    quidu      	"3ED52B5201F9"

+		    client     	@47

+		    supplier   	@1

+		    vertices   	(list Points

+			(1496, 967)

+			(1496, 908))

+		    line_style 	3

+		    origin_attachment 	(1496, 967)

+		    terminal_attachment 	(1496, 908)

+		    drawSupplier 	@35)

+		(object AssociationViewNew "$UNNAMED$0" @49

+		    location   	(1346, 820)

+		    stereotype 	TRUE

+		    quidu      	"3F26B1ED0231"

+		    roleview_list 	(list RoleViews

+			(object RoleView "schema" @50

+			    Parent_View 	@49

+			    location   	(62, -200)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F26B1EF0330"

+			    client     	@49

+			    supplier   	@36

+			    vertices   	(list Points

+				(1346, 820)

+				(1346, 674))

+			    line_style 	3

+			    origin_attachment 	(1346, 820)

+			    terminal_attachment 	(1346, 674)

+			    label      	(object SegLabel @51

+				Parent_View 	@50

+				location   	(1394, 709)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	34

+				justify    	0

+				label      	"1"

+				pctDist    	0.760234

+				height     	48

+				orientation 	1))

+			(object RoleView "assertions" @52

+			    Parent_View 	@49

+			    location   	(62, -200)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @53

+				Parent_View 	@52

+				location   	(1236, 872)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	212

+				justify    	0

+				label      	"-assertions"

+				pctDist    	0.354651

+				height     	111

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F26B1EF032E"

+			    client     	@49

+			    supplier   	@47

+			    vertices   	(list Points

+				(1346, 820)

+				(1346, 967))

+			    line_style 	3

+			    origin_attachment 	(1346, 820)

+			    terminal_attachment 	(1346, 967)

+			    label      	(object SegLabel @54

+				Parent_View 	@52

+				location   	(1288, 932)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	80

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.767442

+				height     	59

+				orientation 	1))))

+		(object ClassView "Class" "Logical View::SQLModel::Constraints::UniqueConstraint" @55

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2039, 2220)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@55

+			location   	(1781, 2139)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	516

+			justify    	0

+			label      	"UniqueConstraint")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3ED52439006B"

+		    compartment 	(object Compartment

+			Parent_View 	@55

+			location   	(1781, 2200)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	2

+			max_width  	513

+			justify    	1)

+		    width      	534

+		    height     	186

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @56

+		    stereotype 	TRUE

+		    line_color 	16711680

+		    quidu      	"3ED55A4A0061"

+		    client     	@11

+		    supplier   	@55

+		    vertices   	(list Points

+			(2052, 2457)

+			(2052, 2313))

+		    line_style 	3

+		    origin_attachment 	(2052, 2457)

+		    terminal_attachment 	(2052, 2313))

+		(object InheritTreeView "" @57

+		    location   	(1881, 1944)

+		    line_color 	16711680

+		    fill_color 	16711680

+		    supplier   	@39

+		    vertices   	(list Points

+			(1881, 1944)

+			(1881, 1652)))

+		(object InheritView "" @58

+		    stereotype 	TRUE

+		    line_color 	16711680

+		    quidu      	"3ED548B9004E"

+		    client     	@55

+		    supplier   	@39

+		    vertices   	(list Points

+			(2052, 2127)

+			(2052, 1944))

+		    line_style 	3

+		    origin_attachment 	(2052, 2127)

+		    terminal_attachment 	(2052, 1944)

+		    drawSupplier 	@57)

+		(object ClassView "Class" "Logical View::SQLModel::Tables::Column" @59

+		    ShowCompartmentStereotypes 	TRUE

+		    location   	(1128, 1793)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@59

+			location   	(1030, 1718)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	196

+			justify    	0

+			label      	"Column")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3E9B2AFF0392"

+		    width      	214

+		    height     	174

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AttachView "" @60

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@6

+		    supplier   	@59

+		    vertices   	(list Points

+			(825, 1793)

+			(1020, 1793))

+		    line_style 	0)

+		(object AssociationViewNew "$UNNAMED$14" @61

+		    location   	(1530, 1805)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	255

+		    quidu      	"3FA71C3F013A"

+		    roleview_list 	(list RoleViews

+			(object RoleView "members" @62

+			    Parent_View 	@61

+			    location   	(-137, 219)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @63

+				Parent_View 	@62

+				location   	(1367, 1847)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	210

+				justify    	0

+				label      	"+members"

+				pctDist    	0.552448

+				height     	42

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3FA71C410039"

+			    client     	@61

+			    supplier   	@59

+			    vertices   	(list Points

+				(1530, 1805)

+				(1235, 1805))

+			    line_style 	3

+			    origin_attachment 	(1530, 1805)

+			    terminal_attachment 	(1235, 1805)

+			    label      	(object SegLabel @64

+				Parent_View 	@62

+				location   	(1328, 1760)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1..n"

+				pctDist    	0.689362

+				height     	46

+				orientation 	1)

+			    label      	(object SegLabel @65

+				Parent_View 	@62

+				location   	(1362, 1894)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	3

+				anchor_loc 	1

+				nlines     	1

+				max_width  	159

+				justify    	0

+				label      	"{ordered}"

+				pctDist    	0.573427

+				height     	89

+				orientation 	0))

+			(object RoleView "$UNNAMED$15" @66

+			    Parent_View 	@61

+			    location   	(-137, 219)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3FA71C41004D"

+			    client     	@61

+			    supplier   	@39

+			    vertices   	(list Points

+				(1530, 1805)

+				(1672, 1805)

+				(1672, 1652))

+			    line_style 	3

+			    origin_attachment 	(1530, 1805)

+			    terminal_attachment 	(1672, 1652))))

+		(object ClassView "Class" "Logical View::SQLModel::Constraints::Index" @67

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2131, 2858)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@67

+			location   	(2050, 2807)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	162

+			justify    	0

+			label      	"Index")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3FA7FB2B02AA"

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AttachView "" @68

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@30

+		    supplier   	@67

+		    vertices   	(list Points

+			(2335, 2854)

+			(2221, 2856))

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLModel::Tables::BaseTable" @69

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    location   	(1386, 1403)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@69

+			location   	(1266, 1328)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	240

+			justify    	0

+			label      	"BaseTable")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3E9B41900372"

+		    width      	258

+		    height     	174

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AttachView "" @70

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@5

+		    supplier   	@69

+		    vertices   	(list Points

+			(816, 1294)

+			(816, 1372)

+			(1257, 1372))

+		    line_style 	3

+		    origin_attachment 	(816, 1294)

+		    terminal_attachment 	(1257, 1372))

+		(object AttachView "" @71

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@4

+		    supplier   	@69

+		    vertices   	(list Points

+			(1005, 816)

+			(1005, 1338)

+			(1257, 1338))

+		    line_style 	3

+		    origin_attachment 	(1005, 816)

+		    terminal_attachment 	(1257, 1338))

+		(object AssociationViewNew "$UNNAMED$3" @72

+		    location   	(1980, 1371)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3F26B33701AA"

+		    roleview_list 	(list RoleViews

+			(object RoleView "$UNNAMED$4" @73

+			    Parent_View 	@72

+			    location   	(-167, 319)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @74

+				Parent_View 	@73

+				location   	(1608, 1330)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				hidden     	TRUE

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	450

+				justify    	0

+				label      	""

+				pctDist    	0.800000

+				height     	42

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F26B3390064"

+			    client     	@72

+			    supplier   	@69

+			    vertices   	(list Points

+				(1980, 1371)

+				(1515, 1371))

+			    line_style 	3

+			    origin_attachment 	(1980, 1371)

+			    terminal_attachment 	(1515, 1371)

+			    label      	(object SegLabel @75

+				Parent_View 	@73

+				location   	(1570, 1490)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..1"

+				pctDist    	0.884422

+				height     	119

+				orientation 	0))

+			(object RoleView "constraints" @76

+			    Parent_View 	@72

+			    location   	(-167, 319)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @77

+				Parent_View 	@76

+				location   	(2070, 1150)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	221

+				justify    	0

+				label      	"-constraints"

+				pctDist    	0.925059

+				height     	119

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F26B3390062"

+			    client     	@72

+			    supplier   	@42

+			    vertices   	(list Points

+				(1980, 1371)

+				(2188, 1371)

+				(2188, 1115))

+			    line_style 	3

+			    origin_attachment 	(1980, 1371)

+			    terminal_attachment 	(2188, 1115)

+			    label      	(object SegLabel @78

+				Parent_View 	@76

+				location   	(2231, 1146)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.932530

+				height     	43

+				orientation 	1))))

+		(object AssociationViewNew "$UNNAMED$1" @79

+		    location   	(1387, 1234)

+		    stereotype 	TRUE

+		    line_color 	255

+		    quidu      	"3ED52E4000D2"

+		    roleview_list 	(list RoleViews

+			(object RoleView "$UNNAMED$2" @80

+			    Parent_View 	@79

+			    location   	(171, -69)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @81

+				Parent_View 	@80

+				location   	(1346, 1170)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				hidden     	TRUE

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	450

+				justify    	0

+				label      	""

+				pctDist    	0.800000

+				height     	42

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3ED52E4101AC"

+			    client     	@79

+			    supplier   	@47

+			    vertices   	(list Points

+				(1387, 1234)

+				(1387, 1153))

+			    line_style 	3

+			    origin_attachment 	(1387, 1234)

+			    terminal_attachment 	(1387, 1153))

+			(object RoleView "constrainedTables" @82

+			    Parent_View 	@79

+			    location   	(171, -69)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @83

+				Parent_View 	@82

+				location   	(1600, 1290)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	352

+				justify    	0

+				label      	"-constrainedTables"

+				pctDist    	0.696078

+				height     	213

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3ED52E41018D"

+			    client     	@79

+			    supplier   	@69

+			    vertices   	(list Points

+				(1387, 1234)

+				(1387, 1316))

+			    line_style 	3

+			    origin_attachment 	(1387, 1234)

+			    terminal_attachment 	(1387, 1316)

+			    label      	(object SegLabel @84

+				Parent_View 	@82

+				location   	(1336, 1285)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	80

+				justify    	0

+				label      	"1..n"

+				pctDist    	0.637255

+				height     	52

+				orientation 	1))))

+		(object ClassView "Class" "Logical View::SQLModel::Constraints::ForeignKey" @85

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    location   	(1000, 2216)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@85

+			location   	(533, 2085)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	934

+			justify    	0

+			label      	"ForeignKey")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3EDF626C0085"

+		    compartment 	(object Compartment

+			Parent_View 	@85

+			location   	(533, 2146)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	4

+			max_width  	931

+			justify    	1)

+		    width      	952

+		    height     	286

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$5" @86

+		    location   	(1624, 2254)

+		    stereotype 	TRUE

+		    line_color 	255

+		    quidu      	"3EDE53DD038E"

+		    roleview_list 	(list RoleViews

+			(object RoleView "$UNNAMED$6" @87

+			    Parent_View 	@86

+			    location   	(-463, -867)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @88

+				Parent_View 	@87

+				location   	(1506, 2213)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				hidden     	TRUE

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	450

+				justify    	0

+				label      	""

+				pctDist    	0.800000

+				height     	42

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3EDE53DE02A8"

+			    client     	@86

+			    supplier   	@85

+			    vertices   	(list Points

+				(1624, 2254)

+				(1476, 2254))

+			    line_style 	3

+			    origin_attachment 	(1624, 2254)

+			    terminal_attachment 	(1476, 2254))

+			(object RoleView "uniqueConstraint" @89

+			    Parent_View 	@86

+			    location   	(-463, -867)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @90

+				Parent_View 	@89

+				location   	(1750, 2133)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	328

+				justify    	0

+				label      	"-uniqueConstraint"

+				pctDist    	0.856164

+				height     	122

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3EDE53DE02A6"

+			    client     	@86

+			    supplier   	@55

+			    vertices   	(list Points

+				(1624, 2254)

+				(1772, 2254))

+			    line_style 	3

+			    origin_attachment 	(1624, 2254)

+			    terminal_attachment 	(1772, 2254)

+			    label      	(object SegLabel @91

+				Parent_View 	@89

+				location   	(1717, 2296)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	137

+				justify    	0

+				label      	"0..1"

+				pctDist    	0.630137

+				height     	42

+				orientation 	1))))

+		(object InheritView "" @92

+		    stereotype 	TRUE

+		    line_color 	16711680

+		    quidu      	"3ED548BC006E"

+		    client     	@85

+		    supplier   	@39

+		    vertices   	(list Points

+			(1369, 2073)

+			(1369, 1944))

+		    line_style 	3

+		    origin_attachment 	(1369, 2073)

+		    terminal_attachment 	(1369, 1944)

+		    drawSupplier 	@57)

+		(object AssociationViewNew "$UNNAMED$16" @93

+		    location   	(1169, 1975)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	255

+		    quidu      	"3FA71D0B03A1"

+		    roleview_list 	(list RoleViews

+			(object RoleView "referencedMembers" @94

+			    Parent_View 	@93

+			    location   	(229, -220)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @95

+				Parent_View 	@94

+				location   	(965, 1945)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	382

+				justify    	0

+				label      	"+referencedMembers"

+				pctDist    	0.322917

+				height     	205

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3FA71D0D02EF"

+			    client     	@93

+			    supplier   	@59

+			    vertices   	(list Points

+				(1169, 1975)

+				(1169, 1879))

+			    line_style 	3

+			    origin_attachment 	(1169, 1975)

+			    terminal_attachment 	(1169, 1879)

+			    label      	(object SegLabel @96

+				Parent_View 	@94

+				location   	(1221, 1914)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	163

+				justify    	0

+				label      	"1..n"

+				pctDist    	0.641026

+				height     	52

+				orientation 	1)

+			    label      	(object SegLabel @97

+				Parent_View 	@94

+				location   	(1067, 2002)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	3

+				anchor_loc 	1

+				nlines     	1

+				max_width  	159

+				justify    	0

+				label      	"{ordered}"

+				pctDist    	-0.291667

+				height     	103

+				orientation 	0))

+			(object RoleView "$UNNAMED$17" @98

+			    Parent_View 	@93

+			    location   	(229, -220)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3FA71D0D0303"

+			    client     	@93

+			    supplier   	@85

+			    vertices   	(list Points

+				(1169, 1975)

+				(1169, 2072))

+			    line_style 	3

+			    origin_attachment 	(1169, 1975)

+			    terminal_attachment 	(1169, 2072))))

+		(object AttachView "" @99

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@17

+		    supplier   	@85

+		    vertices   	(list Points

+			(875, 3024)

+			(875, 2359))

+		    line_style 	3

+		    origin_attachment 	(875, 3024)

+		    terminal_attachment 	(875, 2359))

+		(object AssociationViewNew "$UNNAMED$23" @100

+		    location   	(1401, 2835)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	255

+		    quidu      	"4022F50001D5"

+		    roleview_list 	(list RoleViews

+			(object RoleView "uniqueIndex" @101

+			    Parent_View 	@100

+			    location   	(601, 619)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @102

+				Parent_View 	@101

+				location   	(1891, 2786)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	244

+				justify    	0

+				label      	"-uniqueIndex"

+				pctDist    	0.766724

+				height     	50

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4022F5030107"

+			    client     	@100

+			    supplier   	@67

+			    vertices   	(list Points

+				(1401, 2835)

+				(2041, 2835))

+			    line_style 	3

+			    origin_attachment 	(1401, 2835)

+			    terminal_attachment 	(2041, 2835)

+			    label      	(object SegLabel @103

+				Parent_View 	@101

+				location   	(1976, 2889)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..1"

+				pctDist    	0.900000

+				height     	54

+				orientation 	1))

+			(object RoleView "$UNNAMED$24" @104

+			    Parent_View 	@100

+			    location   	(601, 619)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4022F503011C"

+			    client     	@100

+			    supplier   	@85

+			    vertices   	(list Points

+				(1401, 2835)

+				(1238, 2835)

+				(1238, 2359))

+			    line_style 	3

+			    origin_attachment 	(1401, 2835)

+			    terminal_attachment 	(1238, 2359))))

+		(object AttachView "" @105

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@86

+		    supplier   	@100

+		    vertices   	(list Points

+			(1624, 2254)

+			(1401, 2835))

+		    line_style 	0)

+		(object AttachView "" @106

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@85

+		    supplier   	@9

+		    vertices   	(list Points

+			(1088, 2359)

+			(1088, 3185)

+			(1279, 3185))

+		    line_style 	3

+		    origin_attachment 	(1088, 2359)

+		    terminal_attachment 	(1279, 3185))

+		(object AttachView "" @107

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@85

+		    supplier   	@10

+		    vertices   	(list Points

+			(1153, 2359)

+			(1153, 2979)

+			(1356, 2979))

+		    line_style 	3

+		    origin_attachment 	(1153, 2359)

+		    terminal_attachment 	(1356, 2979))

+		(object AttachView "" @108

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@85

+		    supplier   	@13

+		    vertices   	(list Points

+			(1022, 2359)

+			(1022, 3419))

+		    line_style 	3

+		    origin_attachment 	(1022, 2359)

+		    terminal_attachment 	(1022, 3419))

+		(object AttachView "" @109

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@85

+		    supplier   	@31

+		    vertices   	(list Points

+			(756, 2359)

+			(756, 2524))

+		    line_style 	3

+		    origin_attachment 	(756, 2359)

+		    terminal_attachment 	(756, 2524))

+		(object AssociationViewNew "$UNNAMED$27" @110

+		    location   	(387, 1644)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	255

+		    quidu      	"4366B5F20202"

+		    roleview_list 	(list RoleViews

+			(object RoleView "referencedTable" @111

+			    Parent_View 	@110

+			    location   	(-590, -571)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @112

+				Parent_View 	@111

+				location   	(1192, 1543)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	309

+				justify    	0

+				label      	"+referencedTable"

+				pctDist    	0.704212

+				height     	102

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4366B5F90004"

+			    client     	@110

+			    supplier   	@69

+			    vertices   	(list Points

+				(387, 1644)

+				(1378, 1644)

+				(1378, 1490))

+			    line_style 	3

+			    origin_attachment 	(387, 1644)

+			    terminal_attachment 	(1378, 1490)

+			    label      	(object SegLabel @113

+				Parent_View 	@111

+				location   	(1431, 1540)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..1"

+				pctDist    	0.956682

+				height     	53

+				orientation 	1))

+			(object RoleView "referencingForeignKeys" @114

+			    Parent_View 	@110

+			    location   	(-590, -571)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @115

+				Parent_View 	@114

+				location   	(303, 2244)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	452

+				justify    	0

+				label      	"+referencingForeignKeys"

+				pctDist    	0.807240

+				height     	34

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4366B5F9000E"

+			    client     	@110

+			    supplier   	@85

+			    vertices   	(list Points

+				(387, 1644)

+				(166, 1644)

+				(166, 2210)

+				(524, 2210))

+			    line_style 	3

+			    origin_attachment 	(387, 1644)

+			    terminal_attachment 	(524, 2210))))))

+	(object ClassDiagram "Index"

+	    quid       	"3FA80719009F"

+	    title      	"Index"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	0

+	    origin_y   	725

+	    items      	(list diagram_item_list

+		(object ClassView "Class" "Logical View::SQLModel::Schema::SQLObject" @116

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    location   	(1777, 256)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@116

+			location   	(1580, 127)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	394

+			justify    	0

+			label      	"SQLObject")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3E9B3EB5002B"

+		    compartment 	(object Compartment

+			Parent_View 	@116

+			location   	(1580, 232)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	TRUE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	3

+			max_width  	400

+			justify    	1)

+		    width      	412

+		    height     	282

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Constraints::IncrementType" @117

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1332, 1615)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@117

+			location   	(1169, 1506)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	326

+			justify    	0

+			label      	"IncrementType")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@117

+			location   	(1169, 1456)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	326

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	15329769

+		    quidu      	"3FA8080C02B0"

+		    compartment 	(object Compartment

+			Parent_View 	@117

+			location   	(1169, 1567)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	4

+			max_width  	237

+			justify    	1)

+		    width      	344

+		    height     	342

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object NoteView @118

+		    location   	(1401, 1259)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@118

+			location   	(1003, 1200)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	760

+			justify    	1

+			label      	"{self.members->forAll(m | self.table.columns->includes( m.column )}")

+		    line_color 	3342489

+		    fill_color 	8454016

+		    width      	820

+		    height     	131)

+		(object ClassView "Class" "Logical View::SQLModel::Tables::Table" @119

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1940, 1690)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@119

+			location   	(1803, 1612)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	274

+			justify    	0

+			label      	"Table")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3E9B1FB60047"

+		    width      	292

+		    height     	180

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object NoteView @120

+		    location   	(2480, 1258)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@120

+			location   	(2070, 1199)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	784

+			justify    	1

+			label      	"{self.includedMembers->forAll(m | self.table.columns->includes( m.column )}")

+		    line_color 	3342489

+		    fill_color 	8454016

+		    width      	844

+		    height     	131)

+		(object NoteView @121

+		    location   	(610, 1524)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@121

+			location   	(472, 1465)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	240

+			justify    	1

+			label      	"{xor}")

+		    line_color 	3342489

+		    fill_color 	8454016

+		    width      	300

+		    height     	131)

+		(object ClassView "Class" "Logical View::SQLModel::Tables::Column" @122

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    IncludeAttribute 	TRUE

+		    location   	(801, 1984)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@122

+			location   	(664, 1906)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	274

+			justify    	0

+			label      	"Column")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3E9B2AFF0392"

+		    width      	292

+		    height     	180

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Constraints::Index" @123

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1777, 915)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@123

+			location   	(1500, 759)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	554

+			justify    	0

+			label      	"Index")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3FA7FB2B02AA"

+		    compartment 	(object Compartment

+			Parent_View 	@123

+			location   	(1500, 820)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	5

+			max_width  	559

+			justify    	1)

+		    width      	572

+		    height     	336

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @124

+		    stereotype 	TRUE

+		    line_color 	12615680

+		    quidu      	"3FA807570399"

+		    client     	@123

+		    supplier   	@116

+		    vertices   	(list Points

+			(1804, 747)

+			(1804, 396))

+		    line_style 	3

+		    origin_attachment 	(1804, 747)

+		    terminal_attachment 	(1804, 396))

+		(object AssociationViewNew "$UNNAMED$22" @125

+		    location   	(1879, 1340)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3FCB85E903AA"

+		    roleview_list 	(list RoleViews

+			(object RoleView "table" @126

+			    Parent_View 	@125

+			    location   	(409, 415)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @127

+				Parent_View 	@126

+				location   	(1773, 1559)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	112

+				justify    	0

+				label      	"+table"

+				pctDist    	0.849785

+				height     	107

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3FCB85ED00A3"

+			    client     	@125

+			    supplier   	@119

+			    vertices   	(list Points

+				(1879, 1340)

+				(1879, 1599))

+			    line_style 	3

+			    origin_attachment 	(1879, 1340)

+			    terminal_attachment 	(1879, 1599)

+			    label      	(object SegLabel @128

+				Parent_View 	@126

+				location   	(1933, 1573)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.900000

+				height     	54

+				orientation 	0))

+			(object RoleView "index" @129

+			    Parent_View 	@125

+			    location   	(409, 415)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @130

+				Parent_View 	@129

+				location   	(1787, 1133)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	136

+				justify    	0

+				label      	"+index"

+				pctDist    	0.802575

+				height     	93

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3FCB85ED00AD"

+			    client     	@125

+			    supplier   	@123

+			    vertices   	(list Points

+				(1879, 1340)

+				(1879, 1082))

+			    line_style 	3

+			    origin_attachment 	(1879, 1340)

+			    terminal_attachment 	(1879, 1082)

+			    label      	(object SegLabel @131

+				Parent_View 	@129

+				location   	(1933, 1108)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.900000

+				height     	54

+				orientation 	1))))

+		(object AttachView "" @132

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@118

+		    supplier   	@123

+		    vertices   	(list Points

+			(1471, 1193)

+			(1591, 1083))

+		    line_style 	0)

+		(object AttachView "" @133

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@120

+		    supplier   	@123

+		    vertices   	(list Points

+			(2347, 1192)

+			(2063, 1053))

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLModel::Constraints::IndexExpression" @134

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(243, 1291)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@134

+			location   	(70, 1210)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	346

+			justify    	0

+			label      	"IndexExpression")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4FC6B3E9014F"

+		    compartment 	(object Compartment

+			Parent_View 	@134

+			location   	(70, 1271)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	13434879

+			anchor     	2

+			nlines     	2

+			max_width  	256

+			justify    	1)

+		    width      	364

+		    height     	186

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Constraints::IndexMember" @135

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(840, 925)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@135

+			location   	(529, 844)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	622

+			justify    	0

+			label      	"IndexMember")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3FA807740185"

+		    compartment 	(object Compartment

+			Parent_View 	@135

+			location   	(529, 905)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	2

+			max_width  	628

+			justify    	1)

+		    width      	640

+		    height     	186

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$20" @136

+		    location   	(866, 1455)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3FA809C0035A"

+		    roleview_list 	(list RoleViews

+			(object RoleView "column" @137

+			    Parent_View 	@136

+			    location   	(351, 399)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @138

+				Parent_View 	@137

+				location   	(750, 1846)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	172

+				justify    	0

+				label      	"+column"

+				pctDist    	0.890661

+				height     	116

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3FA809C103AC"

+			    client     	@136

+			    supplier   	@122

+			    vertices   	(list Points

+				(866, 1455)

+				(866, 1894))

+			    line_style 	3

+			    origin_attachment 	(866, 1455)

+			    terminal_attachment 	(866, 1894)

+			    label      	(object SegLabel @139

+				Parent_View 	@137

+				location   	(930, 1840)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..1"

+				pctDist    	0.876993

+				height     	64

+				orientation 	0))

+			(object RoleView "$UNNAMED$21" @140

+			    Parent_View 	@136

+			    location   	(351, 399)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3FA809C103B6"

+			    client     	@136

+			    supplier   	@135

+			    vertices   	(list Points

+				(866, 1455)

+				(866, 1017))

+			    line_style 	3

+			    origin_attachment 	(866, 1455)

+			    terminal_attachment 	(866, 1017))))

+		(object AttachView "" @141

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@121

+		    supplier   	@136

+		    vertices   	(list Points

+			(760, 1482)

+			(866, 1455))

+		    line_style 	0)

+		(object AssociationViewNew "$UNNAMED$18" @142

+		    location   	(1325, 925)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    quidu      	"3FA8096B0219"

+		    roleview_list 	(list RoleViews

+			(object RoleView "members" @143

+			    Parent_View 	@142

+			    location   	(-301, -97)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @144

+				Parent_View 	@143

+				location   	(1252, 878)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	210

+				justify    	0

+				label      	"+members"

+				pctDist    	0.446512

+				height     	48

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3FA8096C021A"

+			    client     	@142

+			    supplier   	@135

+			    vertices   	(list Points

+				(1325, 925)

+				(1160, 925))

+			    line_style 	3

+			    origin_attachment 	(1325, 925)

+			    terminal_attachment 	(1160, 925)

+			    label      	(object SegLabel @145

+				Parent_View 	@143

+				location   	(1209, 982)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1..n"

+				pctDist    	0.711628

+				height     	57

+				orientation 	0)

+			    label      	(object SegLabel @146

+				Parent_View 	@143

+				location   	(1243, 1035)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	3

+				anchor_loc 	1

+				nlines     	1

+				max_width  	159

+				justify    	0

+				label      	"{ordered}"

+				pctDist    	0.497674

+				height     	110

+				orientation 	0))

+			(object RoleView "$UNNAMED$19" @147

+			    Parent_View 	@142

+			    location   	(-301, -97)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3FA8096C021C"

+			    client     	@142

+			    supplier   	@123

+			    vertices   	(list Points

+				(1325, 925)

+				(1491, 925))

+			    line_style 	3

+			    origin_attachment 	(1325, 925)

+			    terminal_attachment 	(1491, 925)

+			    label      	(object SegLabel @148

+				Parent_View 	@147

+				location   	(1473, 979)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.900000

+				height     	54

+				orientation 	1))))

+		(object AssociationViewNew "$UNNAMED$25" @149

+		    location   	(1297, 565)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    quidu      	"4023025902C9"

+		    roleview_list 	(list RoleViews

+			(object RoleView "includedMembers" @150

+			    Parent_View 	@149

+			    location   	(-173, -360)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @151

+				Parent_View 	@150

+				location   	(813, 755)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	354

+				justify    	0

+				label      	"+includedMembers"

+				pctDist    	0.861163

+				height     	194

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4023025E0186"

+			    client     	@149

+			    supplier   	@135

+			    vertices   	(list Points

+				(1297, 565)

+				(1006, 565)

+				(1006, 832))

+			    line_style 	3

+			    origin_attachment 	(1297, 565)

+			    terminal_attachment 	(1006, 832)

+			    label      	(object SegLabel @152

+				Parent_View 	@150

+				location   	(1078, 742)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.838649

+				height     	72

+				orientation 	0)

+			    label      	(object SegLabel @153

+				Parent_View 	@150

+				location   	(1117, 793)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	3

+				anchor_loc 	1

+				nlines     	1

+				max_width  	159

+				justify    	0

+				label      	"{ordered}"

+				pctDist    	0.932458

+				height     	111

+				orientation 	0))

+			(object RoleView "$UNNAMED$26" @154

+			    Parent_View 	@149

+			    location   	(-173, -360)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4023025E0190"

+			    client     	@149

+			    supplier   	@123

+			    vertices   	(list Points

+				(1297, 565)

+				(1674, 565)

+				(1674, 747))

+			    line_style 	3

+			    origin_attachment 	(1297, 565)

+			    terminal_attachment 	(1674, 747)

+			    label      	(object SegLabel @155

+				Parent_View 	@154

+				location   	(1728, 691)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.900000

+				height     	54

+				orientation 	0))))

+		(object AssociationViewNew "$UNNAMED$28" @156

+		    location   	(694, 1291)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4FC6B66A0362"

+		    roleview_list 	(list RoleViews

+			(object RoleView "expression" @157

+			    Parent_View 	@156

+			    location   	(-146, 366)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @158

+				Parent_View 	@157

+				location   	(568, 1228)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	234

+				justify    	0

+				label      	"+expression"

+				pctDist    	0.468880

+				height     	64

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4FC6B66C0249"

+			    client     	@156

+			    supplier   	@134

+			    vertices   	(list Points

+				(694, 1291)

+				(425, 1291))

+			    line_style 	3

+			    origin_attachment 	(694, 1291)

+			    terminal_attachment 	(425, 1291)

+			    label      	(object SegLabel @159

+				Parent_View 	@157

+				location   	(494, 1352)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..1"

+				pctDist    	0.742739

+				height     	61

+				orientation 	0))

+			(object RoleView "$UNNAMED$29" @160

+			    Parent_View 	@156

+			    location   	(-146, 366)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4FC6B66C024B"

+			    client     	@156

+			    supplier   	@135

+			    vertices   	(list Points

+				(694, 1291)

+				(753, 1291)

+				(753, 1018))

+			    line_style 	3

+			    origin_attachment 	(694, 1291)

+			    terminal_attachment 	(753, 1018))))

+		(object AttachView "" @161

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@121

+		    supplier   	@156

+		    vertices   	(list Points

+			(632, 1458)

+			(694, 1291))

+		    line_style 	0)

+		(object InheritView "" @162

+		    stereotype 	TRUE

+		    line_color 	16744448

+		    quidu      	"4FC6B5A3019D"

+		    client     	@134

+		    supplier   	@116

+		    vertices   	(list Points

+			(244, 1198)

+			(244, 494)

+			(1704, 494)

+			(1704, 397))

+		    line_style 	3

+		    origin_attachment 	(244, 1198)

+		    terminal_attachment 	(1704, 397))))))

diff --git a/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel-DataTypes.cat b/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel-DataTypes.cat
new file mode 100644
index 0000000..5378082
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel-DataTypes.cat
@@ -0,0 +1,5890 @@
+

+(object Petal

+    version    	47

+    _written   	"Rose 8.0.0303.1400"

+    charSet    	0)

+

+(object Class_Category "DataTypes"

+    is_unit    	TRUE

+    is_loaded  	TRUE

+    attributes 	(list Attribute_Set

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"packageName"

+	    value      	(value Text "datatypes"))

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"basePackage"

+	    value      	(value Text "org.eclipse.datatools.modelbase.sql"))

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"nsPrefix"

+	    value      	(value Text "SQLDataTypes"))

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"nsURI"

+	    value      	(value Text "http:///org/eclipse/datatools/modelbase/sql/datatypes.ecore"))

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"prefix"

+	    value      	(value Text "SQLDataTypes")))

+    quid       	"3F27D65902FA"

+    exportControl 	"Public"

+    logical_models 	(list unit_reference_list

+	(object Class "UserDefinedType"

+	    quid       	"3EDF9E8100EB"

+	    documentation 	

+|Reference: 5WD-02-Foundation-2002-12 4.7 User-defined types

+|

+	    

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3EDF9E9C001D"

+		    supplier   	"Logical View::SQLModel::DataTypes::DataType"

+		    quidu      	"3E9B3F3400BF"))

+	    abstract   	TRUE)

+	(object Class "DataType"

+	    quid       	"3E9B3F3400BF"

+	    documentation 	

+|Reference: 5WD-02-Foundation-2002-12 4.1 Data types

+|

+	    

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3F38F4C800D1"

+		    supplier   	"Logical View::SQLModel::Schema::SQLObject"

+		    quidu      	"3E9B3EB5002B"))

+	    operations 	(list Operations

+		(object Operation "setContainer"

+		    quid       	"3FA28B1301BC"

+		    documentation 	"This method is used to set the type on the given Column.  It is implemented on the child classes of DataType.  The concrete children classses will know which type relationship to use on Column to set the data type."

+		    parameters 	(list Parameters

+			(object Parameter "newContainer"

+			    quid       	"3FA28B1F0029"

+			    type       	"TypedElement"

+			    quidu      	"3FA6A8930071"))

+		    result     	"void"

+		    concurrency 	"Sequential"

+		    opExportControl 	"Public"

+		    uid        	0))

+	    abstract   	TRUE)

+	(object Class "PredefinedDataType"

+	    quid       	"3EDF9E550371"

+	    documentation 	

+|Reference: 5WD-02-Foundation-2002-12 4.1 Data types

+|

+	    

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3FB90F2302E1"

+		    supplier   	"Logical View::SQLModel::DataTypes::SQLDataType"

+		    quidu      	"3FB90EE3009E"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "primitiveType"

+		    attributes 	(list Attribute_Set

+			(object Attribute

+			    tool       	"Ecore"

+			    name       	"isChangeable"

+			    value      	TRUE))

+		    quid       	"3F54FBB001DD"

+		    type       	"PrimitiveType"

+		    quidu      	"3F54FBC4015A"

+		    exportControl 	"Public"))

+	    abstract   	TRUE)

+	(object Class "CollectionDataType"

+	    quid       	"3F12D9CF01F9"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 4.10 Collection Types"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3F33B2630206"

+		    supplier   	"Logical View::SQLModel::DataTypes::ConstructedDataType"

+		    quidu      	"3FB90F4001F0"))

+	    abstract   	TRUE)

+	(object Class "NumericalDataType"

+	    quid       	"3F2693990310"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 4.4 Numbers"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3F2693F9022B"

+		    supplier   	"Logical View::SQLModel::DataTypes::PredefinedDataType"

+		    quidu      	"3EDF9E550371"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "precision"

+		    quid       	"411AADBE0122"

+		    type       	"int"

+		    exportControl 	"Public"))

+	    abstract   	TRUE)

+	(object Class "CharacterStringDataType"

+	    quid       	"3F2186CB02E1"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 4.2 Character strings"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3F218707016A"

+		    supplier   	"Logical View::SQLModel::DataTypes::PredefinedDataType"

+		    quidu      	"3EDF9E550371"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "length"

+		    quid       	"3F4E3B32024D"

+		    type       	"int"

+		    initv      	"1"

+		    exportControl 	"Public")

+		(object ClassAttribute "coercibility"

+		    quid       	"3F25797E039E"

+		    type       	"CoercibilityType"

+		    quidu      	"3F25799E0108"

+		    exportControl 	"Public")

+		(object ClassAttribute "fixedLength"

+		    attributes 	(list Attribute_Set

+			(object Attribute

+			    tool       	"Ecore"

+			    name       	"isChangeable"

+			    value      	FALSE))

+		    quid       	"3F60C6F201C1"

+		    type       	"boolean"

+		    exportControl 	"Public")

+		(object ClassAttribute "collationName"

+		    quid       	"3F54F33D0241"

+		    type       	"String"

+		    exportControl 	"Public")))

+	(object Class "RowDataType"

+	    quid       	"3F12DAEF016C"

+	    documentation 	

+|Reference: 5WD-02-Foundation-2002-12 4.8 Row Types

+|

+	    

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3F12DAFB013D"

+		    supplier   	"Logical View::SQLModel::DataTypes::ConstructedDataType"

+		    quidu      	"3FB90F4001F0")))

+	(object Class "ArrayDataType"

+	    quid       	"3F12D9F402F3"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 4.10.1 Arrays"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3F12DA580014"

+		    supplier   	"Logical View::SQLModel::DataTypes::CollectionDataType"

+		    quidu      	"3F12D9CF01F9"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "maxCardinality"

+		    quid       	"3F60C3850001"

+		    type       	"int"

+		    exportControl 	"Public"))

+	    abstract   	TRUE)

+	(object Class "MultisetDataType"

+	    quid       	"3F12DA6600D0"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 4.10.2 Multisets"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3F12DA7002F3"

+		    supplier   	"Logical View::SQLModel::DataTypes::CollectionDataType"

+		    quidu      	"3F12D9CF01F9"))

+	    abstract   	TRUE)

+	(object Class "BooleanDataType"

+	    quid       	"3F216E800160"

+	    documentation 	

+|Reference: 5WD-02-Foundation-2002-12 4.5 Boolean types

+|

+	    

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3F3004830361"

+		    supplier   	"Logical View::SQLModel::DataTypes::PredefinedDataType"

+		    quidu      	"3EDF9E550371")))

+	(object Class "IntervalDataType"

+	    quid       	"3F216E7102DA"

+	    documentation 	

+|Reference: 5WD-02-Foundation-2002-12 4.6.2 Intervals

+|

+	    

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"402BB4EC0335"

+		    supplier   	"Logical View::SQLModel::DataTypes::PredefinedDataType"

+		    quidu      	"3EDF9E550371"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "leadingQualifier"

+		    quid       	"3F269189015C"

+		    type       	"IntervalQualifierType"

+		    quidu      	"3F37E78C029F"

+		    exportControl 	"Public")

+		(object ClassAttribute "trailingQualifier"

+		    quid       	"3F4E060F0232"

+		    type       	"IntervalQualifierType"

+		    quidu      	"3F37E78C029F"

+		    exportControl 	"Public")

+		(object ClassAttribute "leadingFieldPrecision"

+		    quid       	"3F4E064A00A5"

+		    type       	"int"

+		    exportControl 	"Public")

+		(object ClassAttribute "trailingFieldPrecision"

+		    quid       	"3F4E06570288"

+		    type       	"int"

+		    exportControl 	"Public")

+		(object ClassAttribute "fractionalSecondsPrecision"

+		    quid       	"3F4E06600277"

+		    type       	"int"

+		    exportControl 	"Public")))

+	(object Class "BinaryStringDataType"

+	    quid       	"3F216A9801A3"

+	    documentation 	

+|Reference: 5WD-02-Foundation-2002-12 4.3 Binary strings

+|

+	    

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3F2FC6F3031D"

+		    supplier   	"Logical View::SQLModel::DataTypes::PredefinedDataType"

+		    quidu      	"3EDF9E550371"))

+	    operations 	(list Operations

+		(object Operation "equals"

+		    quid       	"3F2171FA00C5"

+		    result     	"boolean"

+		    concurrency 	"Sequential"

+		    opExportControl 	"Public"

+		    uid        	0))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "length"

+		    quid       	"3F2171480126"

+		    type       	"int"

+		    exportControl 	"Public")))

+	(object Class "CharacterSet"

+	    quid       	"3F25755001A0"

+	    documentation 	

+|Reference: 5WD-02-Foundation-2002-12 4.2.6 Character sets, 5WD-02-Foundation-2002-12 4.2.7 Universal character sets

+|

+	    

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3F4E47750293"

+		    supplier   	"Logical View::SQLModel::Schema::SQLObject"

+		    quidu      	"3E9B3EB5002B"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "repertoire"

+		    quid       	"4193D4AA00AE"

+		    type       	"String"

+		    exportControl 	"Public")

+		(object ClassAttribute "defaultCollation"

+		    quid       	"4193D4B901C8"

+		    type       	"String"

+		    exportControl 	"Public")

+		(object ClassAttribute "encoding"

+		    quid       	"4193D4C601D1"

+		    type       	"String"

+		    exportControl 	"Public")))

+	(object Class "CoercibilityType"

+	    quid       	"3F25799E0108"

+	    documentation 	

+|Reference: 5WD-02-Foundation-2002-12 4.2.1 Comparison of character strings

+|

+	    

+	    stereotype 	"enumeration"

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "IMPLICIT"

+		    quid       	"3F2579B3026C"

+		    exportControl 	"Public")

+		(object ClassAttribute "EXPLICIT"

+		    quid       	"3F2579BA0058"

+		    exportControl 	"Public")

+		(object ClassAttribute "COERCIBILE"

+		    quid       	"3F2FFF9D0306"

+		    exportControl 	"Public")

+		(object ClassAttribute "NO_COLLATION"

+		    quid       	"3F2FFFA80111"

+		    exportControl 	"Public")))

+	(object Class "TimeDataType"

+	    quid       	"3F216DF3039E"

+	    documentation 	

+|Reference: 5WD-02-Foundation-2002-12 4.6.1 Datetimes

+|

+	    

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"402BB4E7028D"

+		    supplier   	"Logical View::SQLModel::DataTypes::PredefinedDataType"

+		    quidu      	"3EDF9E550371"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "fractionalSecondsPrecision"

+		    quid       	"3F4E5F6501F5"

+		    type       	"int"

+		    exportControl 	"Public")

+		(object ClassAttribute "timeZone"

+		    quid       	"3F4E5F520178"

+		    type       	"boolean"

+		    initv      	"false"

+		    exportControl 	"Public")))

+	(object Class "IntervalQualifierType"

+	    quid       	"3F37E78C029F"

+	    documentation 	

+|Reference: 5WD-02-Foundation-2002-12 4.6.2 Intervals

+|

+	    

+	    stereotype 	"enumeration"

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "YEAR"

+		    quid       	"3F37E79D029D"

+		    exportControl 	"Public")

+		(object ClassAttribute "MONTH"

+		    quid       	"3F37E7A502EA"

+		    exportControl 	"Public")

+		(object ClassAttribute "DAY"

+		    quid       	"3F4E05F103DB"

+		    exportControl 	"Public")

+		(object ClassAttribute "HOUR"

+		    quid       	"3F4E05F50254"

+		    exportControl 	"Public")

+		(object ClassAttribute "MINUTE"

+		    quid       	"3F4E05FA02B1"

+		    exportControl 	"Public")

+		(object ClassAttribute "SECOND"

+		    quid       	"3F4E05FF0205"

+		    exportControl 	"Public")

+		(object ClassAttribute "FRACTION"

+		    quid       	"439636D800D2"

+		    exportControl 	"Public")))

+	(object Class "DistinctUserDefinedType"

+	    quid       	"3F4E44DD0126"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 4.7 User-defined types"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3F4E451F02FC"

+		    supplier   	"Logical View::SQLModel::DataTypes::UserDefinedType"

+		    quidu      	"3EDF9E8100EB")))

+	(object Class "StructuredUserDefinedType"

+	    quid       	"3F4E44E8001C"

+	    documentation 	

+|Reference: 5WD-02-Foundation-2002-12 4.7 User-defined types

+|

+	    

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3F4E452201D4"

+		    supplier   	"Logical View::SQLModel::DataTypes::UserDefinedType"

+		    quidu      	"3EDF9E8100EB"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "instantiable"

+		    quid       	"402283E2026D"

+		    type       	"boolean"

+		    initv      	"True"

+		    exportControl 	"Public")

+		(object ClassAttribute "final"

+		    quid       	"40228405008D"

+		    type       	"boolean"

+		    exportControl 	"Public")))

+	(object Class "OrderingType"

+	    quid       	"3F4E4BBD02A6"

+	    documentation 	

+|Reference: 5WD-02-Foundation-2002-12 4.7 User-defined types

+|

+	    

+	    stereotype 	"enumeration"

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "EQUALS"

+		    quid       	"3F4E615100A9"

+		    exportControl 	"Public")

+		(object ClassAttribute "FULL"

+		    quid       	"3F4E61590145"

+		    exportControl 	"Public")))

+	(object Class "OrderingCategoryType"

+	    quid       	"3F4E61750367"

+	    documentation 	

+|Reference: 5WD-02-Foundation-2002-12 4.7 User-defined types

+|

+	    

+	    stereotype 	"enumeration"

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "RELATIVE"

+		    quid       	"3F4E618600E6"

+		    exportControl 	"Public")

+		(object ClassAttribute "MAP"

+		    quid       	"3F4E618C02D9"

+		    exportControl 	"Public")

+		(object ClassAttribute "STATE"

+		    quid       	"3F4E6193021E"

+		    exportControl 	"Public")))

+	(object Class "AttributeDefinition"

+	    quid       	"3F54EF2F0194"

+	    documentation 	

+|Reference: 5WD-02-Foundation-2002-12 4.13 Columns, fields, and attributes

+|

+	    

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3FA6AA01002E"

+		    supplier   	"Logical View::SQLModel::Schema::TypedElement"

+		    quidu      	"3FA6A8930071"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "scopeCheck"

+		    quid       	"3F54EFF703D7"

+		    type       	"ReferentialActionType"

+		    quidu      	"3ED6717C0130"

+		    exportControl 	"Public")

+		(object ClassAttribute "scopeChecked"

+		    quid       	"3F6078CE0220"

+		    type       	"boolean"

+		    exportControl 	"Public")

+		(object ClassAttribute "defaultValue"

+		    quid       	"407EC5A702EE"

+		    type       	"String"

+		    exportControl 	"Public")))

+	(object Class "FixedPrecisionDataType"

+	    quid       	"3F54F5E9003C"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 4.4 Numbers"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"411AAED70389"

+		    supplier   	"Logical View::SQLModel::DataTypes::ExactNumericDataType"

+		    quidu      	"411AAB3A02CB")))

+	(object Class "PrimitiveType"

+	    quid       	"3F54FBC4015A"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 4.1 Data types"

+	    stereotype 	"enumeration"

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "CHARACTER"

+		    quid       	"3F54FE410200"

+		    exportControl 	"Public")

+		(object ClassAttribute "CHARACTER_VARYING"

+		    quid       	"3F54FF000359"

+		    exportControl 	"Public")

+		(object ClassAttribute "CHARACTER_LARGE_OBJECT"

+		    quid       	"3F54FE470122"

+		    exportControl 	"Public")

+		(object ClassAttribute "NATIONAL_CHARACTER"

+		    quid       	"4021A16002B4"

+		    exportControl 	"Public")

+		(object ClassAttribute "NATIONAL_CHARACTER_VARYING"

+		    quid       	"4021A18A001F"

+		    exportControl 	"Public")

+		(object ClassAttribute "NATIONAL_CHARACTER_LARGE_OBJECT"

+		    quid       	"4021A1A1023F"

+		    exportControl 	"Public")

+		(object ClassAttribute "BINARY"

+		    quid       	"417C86730259"

+		    exportControl 	"Public")

+		(object ClassAttribute "BINARY_VARYING"

+		    quid       	"417C867B0016"

+		    exportControl 	"Public")

+		(object ClassAttribute "BINARY_LARGE_OBJECT"

+		    quid       	"3F54FF2A0363"

+		    exportControl 	"Public")

+		(object ClassAttribute "NUMERIC"

+		    quid       	"3F54FF3A0226"

+		    exportControl 	"Public")

+		(object ClassAttribute "DECIMAL"

+		    quid       	"3F54FF45011D"

+		    exportControl 	"Public")

+		(object ClassAttribute "SMALLINT"

+		    quid       	"3F54FF4F0302"

+		    exportControl 	"Public")

+		(object ClassAttribute "INTEGER"

+		    quid       	"3F54FF5E03A4"

+		    exportControl 	"Public")

+		(object ClassAttribute "BIGINT"

+		    quid       	"3F54FF6702A3"

+		    exportControl 	"Public")

+		(object ClassAttribute "FLOAT"

+		    quid       	"3F54FF7702B0"

+		    exportControl 	"Public")

+		(object ClassAttribute "REAL"

+		    quid       	"3F54FF800371"

+		    exportControl 	"Public")

+		(object ClassAttribute "DOUBLE_PRECISION"

+		    quid       	"3F54FE55021D"

+		    exportControl 	"Public")

+		(object ClassAttribute "BOOLEAN"

+		    quid       	"3F54FF97032C"

+		    exportControl 	"Public")

+		(object ClassAttribute "DATE"

+		    quid       	"3F54FFE602BD"

+		    exportControl 	"Public")

+		(object ClassAttribute "TIME"

+		    quid       	"3F54FFED02BD"

+		    exportControl 	"Public")

+		(object ClassAttribute "TIMESTAMP"

+		    quid       	"3F54FFF602DD"

+		    exportControl 	"Public")

+		(object ClassAttribute "INTERVAL"

+		    quid       	"3F54FFFF0358"

+		    exportControl 	"Public")

+		(object ClassAttribute "DATALINK"

+		    quid       	"400DF8BB0293"

+		    exportControl 	"Public")

+		(object ClassAttribute "XML_TYPE"

+		    quid       	"417C864C0299"

+		    exportControl 	"Public")))

+	(object Class "Domain"

+	    quid       	"3EDF635C005F"

+	    documentation 	

+|Reference: 5WD-02-Foundation-2002-12 4.12 Domains

+|

+	    

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"411BB4E60134"

+		    supplier   	"Logical View::SQLModel::DataTypes::DistinctUserDefinedType"

+		    quidu      	"3F4E44DD0126"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "defaultValue"

+		    quid       	"3F57A3330022"

+		    type       	"String"

+		    exportControl 	"Public")))

+	(object Class "Field"

+	    quid       	"3ED24C4E001D"

+	    documentation 	

+|Reference: 5WD-02-Foundation-2002-12 4.13 Columns, fields, and attributes

+|

+	    

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3ED2511800EF"

+		    supplier   	"Logical View::SQLModel::Schema::TypedElement"

+		    quidu      	"3FA6A8930071"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "scopeCheck"

+		    quid       	"3F60796C00E5"

+		    type       	"ReferentialActionType"

+		    quidu      	"3ED6717C0130"

+		    exportControl 	"Public")

+		(object ClassAttribute "scopeChecked"

+		    quid       	"3F6079870305"

+		    type       	"boolean"

+		    exportControl 	"Public")))

+	(object Class "ReferenceDataType"

+	    quid       	"3F12DAE001E9"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 4.9 Reference Types"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3F12DAFD0257"

+		    supplier   	"Logical View::SQLModel::DataTypes::ConstructedDataType"

+		    quidu      	"3FB90F4001F0"))

+	    abstract   	TRUE)

+	(object Class "ConstructedDataType"

+	    quid       	"3FB90F4001F0"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 4.1 Data Types"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"498C8F6B005C"

+		    supplier   	"Logical View::SQLModel::DataTypes::DataType"

+		    quidu      	"3E9B3F3400BF"))

+	    abstract   	TRUE)

+	(object Class "SQLDataType"

+	    quid       	"3FB90EE3009E"

+	    documentation 	"SQLDataType represents any non user defined data type.  It was introduced because a TypedElement needs to distinguish between UDTs and non UDTs."

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3FB90F3400D1"

+		    supplier   	"Logical View::SQLModel::DataTypes::DataType"

+		    quidu      	"3E9B3F3400BF"))

+	    abstract   	TRUE)

+	(object Class "DataLinkDataType"

+	    quid       	"400DFA2202A3"

+	    documentation 	"Represents a link to a file/location outside the system. "

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"400DFA6603D7"

+		    supplier   	"Logical View::SQLModel::DataTypes::PredefinedDataType"

+		    quidu      	"3EDF9E550371"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "length"

+		    quid       	"40119FBB0307"

+		    type       	"int"

+		    exportControl 	"Public")

+		(object ClassAttribute "linkControl"

+		    quid       	"40119FE102DA"

+		    type       	"LinkControlOption"

+		    quidu      	"4011A0CF00C9"

+		    exportControl 	"Public")

+		(object ClassAttribute "integrityControl"

+		    quid       	"40119FEC00C3"

+		    type       	"IntegrityControlOption"

+		    quidu      	"4011A0EC0157"

+		    exportControl 	"Public")

+		(object ClassAttribute "readPermission"

+		    quid       	"40119FF30253"

+		    type       	"ReadPermissionOption"

+		    quidu      	"4011A10C015D"

+		    exportControl 	"Public")

+		(object ClassAttribute "writePermission"

+		    quid       	"40119FFD0063"

+		    type       	"WritePermissionOption"

+		    quidu      	"4011A11C01C4"

+		    exportControl 	"Public")

+		(object ClassAttribute "recovery"

+		    quid       	"4011A0040334"

+		    type       	"boolean"

+		    exportControl 	"Public")

+		(object ClassAttribute "unlink"

+		    quid       	"4011A0380126"

+		    type       	"UnlinkOption"

+		    quidu      	"4011A133025E"

+		    exportControl 	"Public")))

+	(object Class "LinkControlOption"

+	    quid       	"4011A0CF00C9"

+	    stereotype 	"enumeration"

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "FILE_LINK_CONTROL"

+		    quid       	"4011A151031F"

+		    exportControl 	"Public")

+		(object ClassAttribute "NO_FILE_LINK_CONTROL"

+		    quid       	"4011A15C0112"

+		    exportControl 	"Public")))

+	(object Class "IntegrityControlOption"

+	    quid       	"4011A0EC0157"

+	    stereotype 	"enumeration"

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "ALL"

+		    quid       	"4011A18202ED"

+		    exportControl 	"Public")

+		(object ClassAttribute "SELECTIVE"

+		    quid       	"4011A18800A7"

+		    exportControl 	"Public")

+		(object ClassAttribute "NONE"

+		    quid       	"4011A18E0254"

+		    exportControl 	"Public")))

+	(object Class "ReadPermissionOption"

+	    quid       	"4011A10C015D"

+	    stereotype 	"enumeration"

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "FS"

+		    quid       	"4011AF0503E5"

+		    exportControl 	"Public")

+		(object ClassAttribute "DB"

+		    quid       	"4011AF0C0273"

+		    exportControl 	"Public")))

+	(object Class "WritePermissionOption"

+	    quid       	"4011A11C01C4"

+	    stereotype 	"enumeration"

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "FS"

+		    quid       	"4011AF86016A"

+		    exportControl 	"Public")

+		(object ClassAttribute "ADMIN"

+		    quid       	"4011AF8A0238"

+		    exportControl 	"Public")

+		(object ClassAttribute "BLOCKED"

+		    quid       	"4011AF8D03AF"

+		    exportControl 	"Public")))

+	(object Class "UnlinkOption"

+	    quid       	"4011A133025E"

+	    stereotype 	"enumeration"

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "RESTORE"

+		    quid       	"4011AF5F033A"

+		    exportControl 	"Public")

+		(object ClassAttribute "DELETE"

+		    quid       	"4011AF63003D"

+		    exportControl 	"Public")

+		(object ClassAttribute "NONE"

+		    quid       	"4011AF660178"

+		    exportControl 	"Public")))

+	(object Class "UserDefinedTypeOrdering"

+	    quid       	"4022861B0225"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 4.7 User-defined types"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"40228CC1001A"

+		    supplier   	"Logical View::SQLModel::Schema::SQLObject"

+		    quidu      	"3E9B3EB5002B"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "orderingForm"

+		    quid       	"402286D1034A"

+		    type       	"OrderingType"

+		    quidu      	"3F4E4BBD02A6"

+		    exportControl 	"Public")

+		(object ClassAttribute "orderingCategory"

+		    quid       	"402286F80382"

+		    type       	"OrderingCategoryType"

+		    quidu      	"3F4E61750367"

+		    exportControl 	"Public")))

+	(object Class "DateDataType"

+	    quid       	"402BB4A400B0"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 4.6.1 Datetimes"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"402BB4B30333"

+		    supplier   	"Logical View::SQLModel::DataTypes::PredefinedDataType"

+		    quidu      	"3EDF9E550371")))

+	(object Class "ExactNumericDataType"

+	    quid       	"411AAB3A02CB"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 4.4 Numbers"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"411AADFE0323"

+		    supplier   	"Logical View::SQLModel::DataTypes::NumericalDataType"

+		    quidu      	"3F2693990310"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "scale"

+		    quid       	"411AADEC01F1"

+		    type       	"int"

+		    exportControl 	"Public"))

+	    abstract   	TRUE)

+	(object Class "ApproximateNumericDataType"

+	    quid       	"411AAB530227"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 4.4 Numbers"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"411AAEC70368"

+		    supplier   	"Logical View::SQLModel::DataTypes::NumericalDataType"

+		    quidu      	"3F2693990310")))

+	(object Class "IntegerDataType"

+	    quid       	"411AAB6E00C7"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 4.4 Numbers"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"411AAEDF018C"

+		    supplier   	"Logical View::SQLModel::DataTypes::ExactNumericDataType"

+		    quidu      	"411AAB3A02CB")))

+	(object Class "XMLDataType"

+	    quid       	"417C85910345"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 4.1 Data Types"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"417C85E60365"

+		    supplier   	"Logical View::SQLModel::DataTypes::PredefinedDataType"

+		    quidu      	"3EDF9E550371")))

+	(object Class "ElementType"

+	    quid       	"498C8FA40086"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"498C90000132"

+		    supplier   	"Logical View::SQLModel::Schema::TypedElement"

+		    quidu      	"3FA6A8930071")))

+	(object Association "$UNNAMED$0"

+	    quid       	"3F266CD80049"

+	    roles      	(list role_list

+		(object Role "characterSet"

+		    quid       	"3F266CD90069"

+		    label      	"characterSet"

+		    supplier   	"Logical View::SQLModel::DataTypes::CharacterSet"

+		    quidu      	"3F25755001A0"

+		    client_cardinality 	(value cardinality "1")

+		    exportControl 	"Private"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$1"

+		    quid       	"3F266CD90078"

+		    supplier   	"Logical View::SQLModel::DataTypes::CharacterStringDataType"

+		    quidu      	"3F2186CB02E1"

+		    client_cardinality 	(value cardinality "1")

+		    exportControl 	"Private"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$2"

+	    quid       	"3F33AD6002DA"

+	    roles      	(list role_list

+		(object Role "userDefinedTypes"

+		    quid       	"3F33AD62005A"

+		    label      	"userDefinedTypes"

+		    supplier   	"Logical View::SQLModel::DataTypes::UserDefinedType"

+		    quidu      	"3EDF9E8100EB"

+		    client_cardinality 	(value cardinality "0..n")

+		    Containment 	"By Reference"

+		    exportControl 	"Private"

+		    is_navigable 	TRUE)

+		(object Role "schema"

+		    quid       	"3F33AD62006A"

+		    label      	"schema"

+		    supplier   	"Logical View::SQLModel::Schema::Schema"

+		    quidu      	"3ED523C20089"

+		    client_cardinality 	(value cardinality "1")

+		    exportControl 	"Private"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$3"

+	    quid       	"3F33AE7E01DB"

+	    roles      	(list role_list

+		(object Role "charSets"

+		    quid       	"3F33AE7F0073"

+		    label      	"charSets"

+		    supplier   	"Logical View::SQLModel::DataTypes::CharacterSet"

+		    quidu      	"3F25755001A0"

+		    client_cardinality 	(value cardinality "0..n")

+		    Containment 	"By Reference"

+		    exportControl 	"Private"

+		    is_navigable 	TRUE)

+		(object Role "schema"

+		    quid       	"3F33AE7F0083"

+		    label      	"schema"

+		    supplier   	"Logical View::SQLModel::Schema::Schema"

+		    quidu      	"3ED523C20089"

+		    client_cardinality 	(value cardinality "1")

+		    exportControl 	"Private"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$4"

+	    quid       	"3F33CC9A01AF"

+	    roles      	(list role_list

+		(object Role "scopeTable"

+		    quid       	"3F33CC9B00D4"

+		    label      	"scopeTable"

+		    supplier   	"Logical View::SQLModel::Tables::Table"

+		    quidu      	"3E9B1FB60047"

+		    client_cardinality 	(value cardinality "1")

+		    exportControl 	"Private"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$5"

+		    quid       	"3F33CC9B00E4"

+		    supplier   	"Logical View::SQLModel::DataTypes::ReferenceDataType"

+		    quidu      	"3F12DAE001E9"

+		    exportControl 	"Private"

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$6"

+	    quid       	"3F33D3CA01B5"

+	    roles      	(list role_list

+		(object Role "referencedType"

+		    quid       	"3F33D3CB0000"

+		    label      	"referencedType"

+		    supplier   	"Logical View::SQLModel::DataTypes::StructuredUserDefinedType"

+		    quidu      	"3F4E44E8001C"

+		    client_cardinality 	(value cardinality "1")

+		    exportControl 	"Private"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$7"

+		    quid       	"3F33D3CB0002"

+		    supplier   	"Logical View::SQLModel::DataTypes::ReferenceDataType"

+		    quidu      	"3F12DAE001E9"

+		    exportControl 	"Private"

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$8"

+	    quid       	"3F33D68B03CE"

+	    roles      	(list role_list

+		(object Role "fields"

+		    quid       	"3F33D68C039F"

+		    label      	"fields"

+		    supplier   	"Logical View::SQLModel::DataTypes::Field"

+		    quidu      	"3ED24C4E001D"

+		    client_cardinality 	(value cardinality "1..n")

+		    Constraints 	"ordered"

+		    Containment 	"By Value"

+		    exportControl 	"Private"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$9"

+		    quid       	"3F33D68C03AE"

+		    supplier   	"Logical View::SQLModel::DataTypes::RowDataType"

+		    quidu      	"3F12DAEF016C"

+		    exportControl 	"Private"

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$10"

+	    quid       	"3F37E9610117"

+	    roles      	(list role_list

+		(object Role "elementType"

+		    quid       	"3F37E96201F1"

+		    label      	"elementType"

+		    supplier   	"Logical View::SQLModel::DataTypes::ElementType"

+		    quidu      	"498C8FA40086"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    exportControl 	"Private"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$11"

+		    quid       	"3F37E9620201"

+		    supplier   	"Logical View::SQLModel::DataTypes::CollectionDataType"

+		    quidu      	"3F12D9CF01F9"

+		    exportControl 	"Private"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$12"

+	    quid       	"3F4E624701AC"

+	    roles      	(list role_list

+		(object Role "predefinedRepresentation"

+		    quid       	"3F4E6248015B"

+		    label      	"predefinedRepresentation"

+		    supplier   	"Logical View::SQLModel::DataTypes::PredefinedDataType"

+		    quidu      	"3EDF9E550371"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    exportControl 	"Private"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$13"

+		    quid       	"3F4E6248016B"

+		    supplier   	"Logical View::SQLModel::DataTypes::DistinctUserDefinedType"

+		    quidu      	"3F4E44DD0126"

+		    exportControl 	"Private"

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$14"

+	    quid       	"3F4E654C00B4"

+	    roles      	(list role_list

+		(object Role "super"

+		    quid       	"3F4E654E038F"

+		    label      	"super"

+		    supplier   	"Logical View::SQLModel::DataTypes::StructuredUserDefinedType"

+		    quidu      	"3F4E44E8001C"

+		    client_cardinality 	(value cardinality "0..1")

+		    exportControl 	"Private"

+		    is_navigable 	TRUE)

+		(object Role "sub"

+		    quid       	"3F4E654E039F"

+		    label      	"sub"

+		    supplier   	"Logical View::SQLModel::DataTypes::StructuredUserDefinedType"

+		    quidu      	"3F4E44E8001C"

+		    client_cardinality 	(value cardinality "0..n")

+		    exportControl 	"Private"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$15"

+	    quid       	"3F54EF4800DC"

+	    roles      	(list role_list

+		(object Role "attributes"

+		    quid       	"3F54EF480349"

+		    label      	"attributes"

+		    supplier   	"Logical View::SQLModel::DataTypes::AttributeDefinition"

+		    quidu      	"3F54EF2F0194"

+		    client_cardinality 	(value cardinality "0..n")

+		    Constraints 	"ordered"

+		    Containment 	"By Value"

+		    exportControl 	"Private"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$16"

+		    quid       	"3F54EF48034B"

+		    supplier   	"Logical View::SQLModel::DataTypes::StructuredUserDefinedType"

+		    quidu      	"3F4E44E8001C"

+		    exportControl 	"Private"

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$17"

+	    quid       	"3FB91213025D"

+	    roles      	(list role_list

+		(object Role "methods"

+		    quid       	"3FB9121403DB"

+		    label      	"methods"

+		    supplier   	"Logical View::SQLModel::Routines::Method"

+		    quidu      	"411A8B5200D1"

+		    client_cardinality 	(value cardinality "0..n")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$18"

+		    quid       	"3FB9121403DD"

+		    supplier   	"Logical View::SQLModel::DataTypes::StructuredUserDefinedType"

+		    quidu      	"3F4E44E8001C"

+		    client_cardinality 	(value cardinality "1")

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$19"

+	    quid       	"40228D07033C"

+	    roles      	(list role_list

+		(object Role "ordering"

+		    quid       	"40228D080301"

+		    label      	"ordering"

+		    supplier   	"Logical View::SQLModel::DataTypes::UserDefinedTypeOrdering"

+		    quidu      	"4022861B0225"

+		    client_cardinality 	(value cardinality "0..1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$20"

+		    quid       	"40228D08030B"

+		    supplier   	"Logical View::SQLModel::DataTypes::UserDefinedType"

+		    quidu      	"3EDF9E8100EB"

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$21"

+	    quid       	"4022944002FF"

+	    roles      	(list role_list

+		(object Role "orderingRoutine"

+		    quid       	"4022944101D4"

+		    label      	"orderingRoutine"

+		    supplier   	"Logical View::SQLModel::Routines::Routine"

+		    quidu      	"3F3D36420226"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$22"

+		    quid       	"4022944101F2"

+		    supplier   	"Logical View::SQLModel::DataTypes::UserDefinedTypeOrdering"

+		    quidu      	"4022861B0225"))))

+    logical_presentations 	(list unit_reference_list

+	(object ClassDiagram "DataTypes"

+	    quid       	"3F12D70F00A1"

+	    title      	"DataTypes"

+	    documentation 	

+|Reference: 5WD-02-Foundation-2002-12 4.1 Data types

+|

+	    

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	1688

+	    origin_y   	112

+	    items      	(list diagram_item_list

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::ArrayDataType" @1

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    ShowOperationSignature 	TRUE

+		    location   	(1651, 2402)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@1

+			location   	(1414, 2321)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	474

+			justify    	0

+			label      	"ArrayDataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F12D9F402F3"

+		    width      	492

+		    height     	186

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::MultisetDataType" @2

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    ShowOperationSignature 	TRUE

+		    location   	(2209, 2377)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@2

+			location   	(2005, 2325)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	408

+			justify    	0

+			label      	"MultisetDataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F12DA6600D0"

+		    width      	426

+		    height     	128

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object NoteView @3

+		    location   	(2863, 697)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@3

+			location   	(2725, 638)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	240

+			label      	"composite types")

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	300

+		    height     	130)

+		(object ClassView "Class" "Logical View::SQLModel::Schema::SQLObject" @4

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    location   	(1954, 222)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@4

+			location   	(1722, 93)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	464

+			justify    	0

+			label      	"SQLObject")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3E9B3EB5002B"

+		    width      	482

+		    height     	282

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Tables::ReferenceType" @5

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(851, 2415)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@5

+			location   	(561, 2283)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	580

+			justify    	0

+			label      	"ReferenceType")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@5

+			location   	(561, 2233)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	580

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	15329769

+		    quidu      	"3EA5788B026F"

+		    width      	598

+		    height     	388

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::RowDataType" @6

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    ShowOperationSignature 	TRUE

+		    location   	(1418, 1636)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@6

+			location   	(1252, 1584)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	332

+			justify    	0

+			label      	"RowDataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F12DAEF016C"

+		    width      	350

+		    height     	128

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::Field" @7

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(843, 903)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@7

+			location   	(427, 797)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	832

+			justify    	0

+			label      	"Field")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3ED24C4E001D"

+		    width      	850

+		    height     	236

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$8" @8

+		    location   	(806, 1546)

+		    stereotype 	TRUE

+		    quidu      	"3F33D68B03CE"

+		    roleview_list 	(list RoleViews

+			(object RoleView "$UNNAMED$9" @9

+			    Parent_View 	@8

+			    location   	(322, -891)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @10

+				Parent_View 	@9

+				location   	(1137, 1593)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				hidden     	TRUE

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	450

+				justify    	0

+				label      	""

+				pctDist    	0.800000

+				height     	42

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F33D68C03AE"

+			    client     	@8

+			    supplier   	@6

+			    vertices   	(list Points

+				(806, 1546)

+				(806, 1634)

+				(1243, 1634))

+			    line_style 	3

+			    origin_attachment 	(806, 1546)

+			    terminal_attachment 	(1243, 1634))

+			(object RoleView "fields" @11

+			    Parent_View 	@8

+			    location   	(322, -891)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @12

+				Parent_View 	@11

+				location   	(700, 1131)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	118

+				justify    	0

+				label      	"-fields"

+				pctDist    	0.792818

+				height     	107

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F33D68C039F"

+			    client     	@8

+			    supplier   	@7

+			    line_style 	3

+			    origin_attachment 	(806, 1546)

+			    terminal_attachment 	(806, 1021)

+			    label      	(object SegLabel @13

+				Parent_View 	@11

+				location   	(701, 1085)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	80

+				justify    	0

+				label      	"1..n"

+				pctDist    	0.880633

+				height     	106

+				orientation 	0)

+			    label      	(object SegLabel @14

+				Parent_View 	@11

+				location   	(696, 1045)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	3

+				anchor_loc 	1

+				nlines     	1

+				max_width  	170

+				justify    	0

+				label      	"{ordered}"

+				pctDist    	0.954933

+				height     	111

+				orientation 	0))))

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::DataType" @15

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    ShowOperationSignature 	TRUE

+		    location   	(1926, 614)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@15

+			location   	(1805, 562)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	242

+			justify    	0

+			label      	"DataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3E9B3F3400BF"

+		    width      	260

+		    height     	128

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @16

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3F38F4C800D1"

+		    client     	@15

+		    supplier   	@4

+		    line_style 	3

+		    origin_attachment 	(1924, 550)

+		    terminal_attachment 	(1924, 363))

+		(object NoteView @17

+		    location   	(1462, 2665)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@17

+			location   	(1324, 2605)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	240

+			label      	"ordered collection")

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	300

+		    height     	132)

+		(object NoteView @18

+		    location   	(2009, 2652)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@18

+			location   	(1871, 2592)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	240

+			label      	

+|unordered

+|collection

+			)

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	300

+		    height     	132)

+		(object AttachView "" @19

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@17

+		    supplier   	@1

+		    line_style 	0)

+		(object AttachView "" @20

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@18

+		    supplier   	@2

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::PredefinedDataType" @21

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    location   	(1333, 1260)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@21

+			location   	(997, 1179)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	672

+			justify    	0

+			label      	"PredefinedDataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3EDF9E550371"

+		    width      	690

+		    height     	186

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::SQLDataType" @22

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1660, 945)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@22

+			location   	(1493, 893)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	334

+			justify    	0

+			label      	"SQLDataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3FB90EE3009E"

+		    width      	352

+		    height     	128

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Schema::TypedElement" @23

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    location   	(806, 353)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@23

+			location   	(631, 278)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	350

+			justify    	0

+			label      	"TypedElement")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3FA6A8930071"

+		    width      	368

+		    height     	174

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::ConstructedDataType" @24

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2027, 1231)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@24

+			location   	(1778, 1180)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	498

+			justify    	0

+			label      	"ConstructedDataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3FB90F4001F0"

+		    width      	516

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritTreeView "" @25

+		    location   	(2027, 1456)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@24

+		    vertices   	(list Points

+			(2027, 1456)

+			(2027, 1294)))

+		(object InheritView "" @26

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3F12DAFB013D"

+		    client     	@6

+		    supplier   	@24

+		    line_style 	3

+		    origin_attachment 	(1409, 1571)

+		    terminal_attachment 	(1409, 1456)

+		    drawSupplier 	@25)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::UserDefinedType" @27

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2743, 909)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@27

+			location   	(2543, 857)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	400

+			justify    	0

+			label      	"UserDefinedType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3EDF9E8100EB"

+		    width      	418

+		    height     	128

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AttachView "" @28

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@27

+		    supplier   	@3

+		    line_style 	0)

+		(object InheritView "" @29

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3EDF9E9C001D"

+		    client     	@27

+		    supplier   	@15

+		    vertices   	(list Points

+			(2534, 909)

+			(2041, 909)

+			(2041, 678))

+		    line_style 	3

+		    origin_attachment 	(2534, 909)

+		    terminal_attachment 	(2041, 678))

+		(object ClassView "Class" "Logical View::SQLModel::Tables::Table" @30

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    ShowOperationSignature 	TRUE

+		    location   	(2727, 2107)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@30

+			location   	(2614, 2032)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	226

+			justify    	0

+			label      	"Table")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3E9B1FB60047"

+		    width      	244

+		    height     	174

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::StructuredUserDefinedType" @31

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2809, 1257)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@31

+			location   	(2477, 1151)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	664

+			justify    	0

+			label      	"StructuredUserDefinedType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F4E44E8001C"

+		    width      	682

+		    height     	236

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::ReferenceDataType" @32

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    ShowOperationSignature 	TRUE

+		    location   	(2673, 1670)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@32

+			location   	(2442, 1618)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	462

+			justify    	0

+			label      	"ReferenceDataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F12DAE001E9"

+		    width      	480

+		    height     	128

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @33

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3F12DAFD0257"

+		    client     	@32

+		    supplier   	@24

+		    line_style 	3

+		    origin_attachment 	(2484, 1606)

+		    terminal_attachment 	(2484, 1456)

+		    drawSupplier 	@25)

+		(object AssociationViewNew "$UNNAMED$4" @34

+		    location   	(2702, 1876)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3F33CC9A01AF"

+		    roleview_list 	(list RoleViews

+			(object RoleView "$UNNAMED$5" @35

+			    Parent_View 	@34

+			    location   	(362, -250)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @36

+				Parent_View 	@35

+				location   	(2661, 1762)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				hidden     	TRUE

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	450

+				justify    	0

+				label      	""

+				pctDist    	0.800000

+				height     	42

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F33CC9B00E4"

+			    client     	@34

+			    supplier   	@32

+			    line_style 	3

+			    origin_attachment 	(2702, 1876)

+			    terminal_attachment 	(2702, 1733))

+			(object RoleView "scopeTable" @37

+			    Parent_View 	@34

+			    location   	(362, -250)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @38

+				Parent_View 	@37

+				location   	(2843, 1992)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	232

+				justify    	0

+				label      	"-scopeTable"

+				pctDist    	0.804196

+				height     	141

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F33CC9B00D4"

+			    client     	@34

+			    supplier   	@30

+			    line_style 	3

+			    origin_attachment 	(2702, 1876)

+			    terminal_attachment 	(2702, 2020)

+			    label      	(object SegLabel @39

+				Parent_View 	@37

+				location   	(2649, 1990)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.791412

+				height     	54

+				orientation 	1))))

+		(object AssociationViewNew "$UNNAMED$6" @40

+		    location   	(2759, 1490)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3F33D3CA01B5"

+		    roleview_list 	(list RoleViews

+			(object RoleView "referencedType" @41

+			    Parent_View 	@40

+			    location   	(679, 338)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @42

+				Parent_View 	@41

+				location   	(2919, 1414)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	298

+				justify    	0

+				label      	"-referencedType"

+				pctDist    	0.672414

+				height     	160

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F33D3CB0000"

+			    client     	@40

+			    supplier   	@31

+			    line_style 	3

+			    origin_attachment 	(2759, 1490)

+			    terminal_attachment 	(2759, 1375)

+			    label      	(object SegLabel @43

+				Parent_View 	@41

+				location   	(2723, 1419)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	34

+				justify    	0

+				label      	"1"

+				pctDist    	0.629310

+				height     	37

+				orientation 	0))

+			(object RoleView "$UNNAMED$7" @44

+			    Parent_View 	@40

+			    location   	(679, 338)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F33D3CB0002"

+			    client     	@40

+			    supplier   	@32

+			    line_style 	3

+			    origin_attachment 	(2759, 1490)

+			    terminal_attachment 	(2759, 1605))))

+		(object InheritView "" @45

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3F4E452201D4"

+		    client     	@31

+		    supplier   	@27

+		    line_style 	3

+		    origin_attachment 	(2744, 1138)

+		    terminal_attachment 	(2744, 973))

+		(object InheritTreeView "" @46

+		    location   	(1597, 1106)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@22

+		    vertices   	(list Points

+			(1597, 1106)

+			(1597, 1009)))

+		(object InheritView "" @47

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"498C8F6B005C"

+		    client     	@24

+		    supplier   	@15

+		    line_style 	3

+		    origin_attachment 	(1925, 1167)

+		    terminal_attachment 	(1925, 678))

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::ElementType" @48

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(271, 1887)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@48

+			location   	(111, 1836)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	320

+			justify    	0

+			label      	"ElementType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"498C8FA40086"

+		    width      	338

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::CollectionDataType" @49

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1936, 1895)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@49

+			location   	(1706, 1843)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	460

+			justify    	0

+			label      	"CollectionDataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3F12D9CF01F9"

+		    width      	478

+		    height     	128

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @50

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3F12DA580014"

+		    client     	@1

+		    supplier   	@49

+		    vertices   	(list Points

+			(1653, 2309)

+			(1653, 2096)

+			(1925, 2096)

+			(1925, 1959))

+		    line_style 	3

+		    origin_attachment 	(1653, 2309)

+		    terminal_attachment 	(1925, 1959))

+		(object InheritView "" @51

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3F33B2630206"

+		    client     	@49

+		    supplier   	@24

+		    line_style 	3

+		    origin_attachment 	(1918, 1830)

+		    terminal_attachment 	(1918, 1456)

+		    drawSupplier 	@25)

+		(object InheritView "" @52

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3F12DA7002F3"

+		    client     	@2

+		    supplier   	@49

+		    vertices   	(list Points

+			(2194, 2313)

+			(2194, 2096)

+			(1925, 2096)

+			(1925, 1959))

+		    line_style 	3

+		    origin_attachment 	(2194, 2313)

+		    terminal_attachment 	(1925, 1959))

+		(object AssociationViewNew "$UNNAMED$10" @53

+		    location   	(1068, 1893)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3F37E9610117"

+		    roleview_list 	(list RoleViews

+			(object RoleView "elementType" @54

+			    Parent_View 	@53

+			    location   	(-260, 469)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @55

+				Parent_View 	@54

+				location   	(593, 1859)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	260

+				justify    	0

+				label      	"-elementType"

+				pctDist    	0.756369

+				height     	34

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F37E96201F1"

+			    client     	@53

+			    supplier   	@48

+			    line_style 	3

+			    origin_attachment 	(1068, 1893)

+			    terminal_attachment 	(440, 1893)

+			    label      	(object SegLabel @56

+				Parent_View 	@54

+				location   	(510, 1941)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	80

+				justify    	0

+				label      	"1"

+				pctDist    	0.889744

+				height     	48

+				orientation 	0))

+			(object RoleView "$UNNAMED$11" @57

+			    Parent_View 	@53

+			    location   	(-260, 469)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F37E9620201"

+			    client     	@53

+			    supplier   	@49

+			    line_style 	3

+			    origin_attachment 	(1068, 1893)

+			    terminal_attachment 	(1697, 1893))))

+		(object InheritTreeView "" @58

+		    location   	(812, 634)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@23

+		    vertices   	(list Points

+			(812, 634)

+			(812, 440)))

+		(object InheritView "" @59

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"498C90000132"

+		    client     	@48

+		    supplier   	@23

+		    line_style 	3

+		    origin_attachment 	(272, 1824)

+		    terminal_attachment 	(272, 634)

+		    drawSupplier 	@58)

+		(object InheritView "" @60

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3ED2511800EF"

+		    client     	@7

+		    supplier   	@23

+		    line_style 	3

+		    origin_attachment 	(812, 785)

+		    terminal_attachment 	(812, 634)

+		    drawSupplier 	@58)

+		(object InheritView "" @61

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3FB90F3400D1"

+		    client     	@22

+		    supplier   	@15

+		    line_style 	3

+		    origin_attachment 	(1816, 880)

+		    terminal_attachment 	(1816, 678))

+		(object InheritView "" @62

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3FB90F2302E1"

+		    client     	@21

+		    supplier   	@22

+		    line_style 	3

+		    origin_attachment 	(1597, 1167)

+		    terminal_attachment 	(1597, 1106)

+		    drawSupplier 	@46)))

+	(object ClassDiagram "CharacterStringTypes"

+	    quid       	"3F257126001F"

+	    title      	"CharacterStringTypes"

+	    documentation 	

+|Reference: 5WD-02-Foundation-2002-12 4.2 Character strings

+|

+	    

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	0

+	    origin_y   	1377

+	    items      	(list diagram_item_list

+		(object NoteView @63

+		    location   	(350, 1790)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@63

+			location   	(90, 1543)

+			fill_color 	13434879

+			nlines     	9

+			max_width  	484

+			label      	

+|fixedLength = True for

+|CHARACTER,

+|NATIONAL_CHARACTER

+|

+|fixedLength = False for 

+|VARCHAR,

+|CLOB,

+|NATIONAL_VARCHAR, NATIONAL_CLOB

+			)

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	544

+		    height     	506)

+		(object NoteView @64

+		    location   	(1221, 1355)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@64

+			location   	(918, 1230)

+			fill_color 	13434879

+			nlines     	5

+			max_width  	571

+			label      	"CHAR, VARCHAR, and CLOB have definable CharacterSet.  National character types have implementation defined CharacterSet.")

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	631

+		    height     	263)

+		(object NoteView @65

+		    location   	(340, 1396)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@65

+			location   	(65, 1331)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	515

+			label      	"length = fixed length or max length (for variable length)")

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	575

+		    height     	143)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::CoercibilityType" @66

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1129, 1801)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@66

+			location   	(919, 1667)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	420

+			justify    	0

+			label      	"CoercibilityType")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@66

+			location   	(919, 1617)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	420

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	15329769

+		    quidu      	"3F25799E0108"

+		    compartment 	(object Compartment

+			Parent_View 	@66

+			location   	(919, 1728)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	5

+			max_width  	362)

+		    width      	438

+		    height     	392

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object NoteView @67

+		    location   	(1826, 1789)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@67

+			location   	(1582, 1708)

+			fill_color 	13434879

+			nlines     	3

+			max_width  	452

+			label      	"NO_COLLATION means the string doesn't have a current default Collation")

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	512

+		    height     	174)

+		(object AttachView "" @68

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@67

+		    supplier   	@66

+		    line_style 	3

+		    origin_attachment 	(1569, 1789)

+		    terminal_attachment 	(1348, 1789))

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::CharacterStringDataType" @69

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(406, 1045)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@69

+			location   	(70, 889)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	672

+			justify    	0

+			label      	"CharacterStringDataType")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F2186CB02E1"

+		    compartment 	(object Compartment

+			Parent_View 	@69

+			location   	(70, 950)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	5

+			max_width  	569)

+		    width      	690

+		    height     	336

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::CharacterSet" @70

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    ShowOperationSignature 	TRUE

+		    location   	(1814, 1048)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@70

+			location   	(1537, 917)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	554

+			justify    	0

+			label      	"CharacterSet")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F25755001A0"

+		    compartment 	(object Compartment

+			Parent_View 	@70

+			location   	(1537, 978)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	4

+			max_width  	469)

+		    width      	572

+		    height     	286

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$0" @71

+		    location   	(1139, 1057)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3F266CD80049"

+		    roleview_list 	(list RoleViews

+			(object RoleView "characterSet" @72

+			    Parent_View 	@71

+			    location   	(227, 721)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @73

+				Parent_View 	@72

+				location   	(1392, 1019)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	256

+				justify    	0

+				label      	"-characterSet"

+				pctDist    	0.649616

+				height     	39

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F266CD90069"

+			    client     	@71

+			    supplier   	@70

+			    line_style 	3

+			    origin_attachment 	(1139, 1057)

+			    terminal_attachment 	(1528, 1057)

+			    label      	(object SegLabel @74

+				Parent_View 	@72

+				location   	(1474, 1095)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	34

+				justify    	0

+				label      	"1"

+				pctDist    	0.864450

+				height     	38

+				orientation 	1))

+			(object RoleView "$UNNAMED$1" @75

+			    Parent_View 	@71

+			    location   	(227, 721)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @76

+				Parent_View 	@75

+				location   	(992, 1113)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				hidden     	TRUE

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	297

+				justify    	0

+				label      	""

+				pctDist    	0.379182

+				height     	56

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F266CD90078"

+			    client     	@71

+			    supplier   	@69

+			    line_style 	3

+			    origin_attachment 	(1139, 1057)

+			    terminal_attachment 	(751, 1057)

+			    label      	(object SegLabel @77

+				Parent_View 	@75

+				location   	(792, 1105)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.894330

+				height     	48

+				orientation 	0))))

+		(object ClassView "Class" "Logical View::SQLModel::Schema::Schema" @78

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1619, 579)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@78

+			location   	(1482, 501)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	274

+			justify    	0

+			label      	"Schema")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3ED523C20089"

+		    width      	292

+		    height     	180

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$3" @79

+		    location   	(1629, 787)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    quidu      	"3F33AE7E01DB"

+		    roleview_list 	(list RoleViews

+			(object RoleView "charSets" @80

+			    Parent_View 	@79

+			    location   	(205, 595)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @81

+				Parent_View 	@80

+				location   	(1530, 874)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	186

+				justify    	0

+				label      	"-charSets"

+				pctDist    	0.745763

+				height     	100

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F33AE7F0073"

+			    client     	@79

+			    supplier   	@70

+			    line_style 	3

+			    origin_attachment 	(1629, 787)

+			    terminal_attachment 	(1629, 905)

+			    label      	(object SegLabel @82

+				Parent_View 	@80

+				location   	(1684, 868)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	80

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.694915

+				height     	55

+				orientation 	0))

+			(object RoleView "schema" @83

+			    Parent_View 	@79

+			    location   	(205, 595)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @84

+				Parent_View 	@83

+				location   	(1530, 702)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	168

+				justify    	0

+				label      	"-schema"

+				pctDist    	0.720339

+				height     	100

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F33AE7F0083"

+			    client     	@79

+			    supplier   	@78

+			    line_style 	3

+			    origin_attachment 	(1629, 787)

+			    terminal_attachment 	(1629, 669)

+			    label      	(object SegLabel @85

+				Parent_View 	@83

+				location   	(1677, 715)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	34

+				justify    	0

+				label      	"1"

+				pctDist    	0.618644

+				height     	48

+				orientation 	1))))

+		(object ClassView "Class" "Logical View::SQLModel::Schema::SQLObject" @86

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    location   	(1882, 171)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@86

+			location   	(1651, 42)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	462

+			justify    	0

+			label      	"SQLObject")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3E9B3EB5002B"

+		    compartment 	(object Compartment

+			Parent_View 	@86

+			location   	(1651, 147)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	TRUE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	3

+			max_width  	390)

+		    width      	480

+		    height     	282

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @87

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3F4E47750293"

+		    client     	@70

+		    supplier   	@86

+		    line_style 	3

+		    origin_attachment 	(2012, 904)

+		    terminal_attachment 	(2012, 311))

+		(object InheritView "" @88

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3ED52ED402B8"

+		    client     	@78

+		    supplier   	@86

+		    vertices   	(list Points

+			(1620, 489)

+			(1620, 406)

+			(1826, 406)

+			(1826, 312))

+		    line_style 	3

+		    origin_attachment 	(1620, 489)

+		    terminal_attachment 	(1826, 312))

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::PredefinedDataType" @89

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    ShowOperationSignature 	TRUE

+		    location   	(407, 549)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@89

+			location   	(71, 468)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	672

+			justify    	0

+			label      	"PredefinedDataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3EDF9E550371"

+		    compartment 	(object Compartment

+			Parent_View 	@89

+			location   	(71, 529)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	TRUE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	2

+			max_width  	569)

+		    width      	690

+		    height     	186

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @90

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3F218707016A"

+		    client     	@69

+		    supplier   	@89

+		    line_style 	0)

+		(object AttachView "" @91

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@64

+		    supplier   	@71

+		    line_style 	3

+		    origin_attachment 	(1022, 1223)

+		    terminal_attachment 	(1022, 1057))

+		(object AttachView "" @92

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@65

+		    supplier   	@69

+		    line_style 	3

+		    origin_attachment 	(303, 1324)

+		    terminal_attachment 	(303, 1213))

+		(object AttachView "" @93

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@63

+		    supplier   	@69

+		    vertices   	(list Points

+			(622, 1789)

+			(659, 1789)

+			(659, 1213))

+		    line_style 	3

+		    origin_attachment 	(622, 1789)

+		    terminal_attachment 	(659, 1213))))

+	(object ClassDiagram "NumberTypes"

+	    quid       	"3F26940B0307"

+	    title      	"NumberTypes"

+	    documentation 	

+|Reference: 5WD-02-Foundation-2002-12 4.4 Numbers

+|

+	    

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	0

+	    origin_y   	1674

+	    items      	(list diagram_item_list

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::NumericalDataType" @94

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1510, 587)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@94

+			location   	(1277, 506)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	466

+			justify    	0

+			label      	"NumericalDataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3F2693990310"

+		    width      	484

+		    height     	186

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object NoteView @95

+		    location   	(528, 268)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@95

+			location   	(172, 162)

+			fill_color 	13434879

+			nlines     	4

+			max_width  	676

+			label      	"Precision is a positive integer that determines the number of significant digits in a particular radix R, where R is either 2 or 10")

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	736

+		    height     	224)

+		(object NoteView @96

+		    location   	(568, 750)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@96

+			location   	(11, 603)

+			fill_color 	13434879

+			nlines     	5

+			max_width  	1078

+			label      	

+|Scale is a non-negative integer. Every value of an exact numeric type of scale S is of the form n x 10^(-S), where n is an integer such that -R^P <= n < R^P.

+|NOTE 13 - Not every value in that range is necessarily a value of the type in question.

+			)

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	1138

+		    height     	306)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::FixedPrecisionDataType" @97

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(637, 1657)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@97

+			location   	(362, 1605)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	550

+			justify    	0

+			label      	"FixedPrecisionDataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F54F5E9003C"

+		    width      	568

+		    height     	128

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object NoteView @98

+		    location   	(2403, 1669)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@98

+			location   	(2265, 1588)

+			fill_color 	13434879

+			nlines     	3

+			max_width  	240

+			label      	

+|Float,

+|Real,

+|Double

+			)

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	300

+		    height     	175)

+		(object NoteView @99

+		    location   	(525, 1925)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@99

+			location   	(387, 1865)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	240

+			label      	

+|Numeric,

+|Decimal

+			)

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	300

+		    height     	132)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::PredefinedDataType" @100

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    ShowOperationSignature 	TRUE

+		    location   	(1509, 194)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@100

+			location   	(1173, 113)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	672

+			justify    	0

+			label      	"PredefinedDataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3EDF9E550371"

+		    width      	690

+		    height     	186

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @101

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3F2693F9022B"

+		    client     	@94

+		    supplier   	@100

+		    line_style 	3

+		    origin_attachment 	(1512, 494)

+		    terminal_attachment 	(1512, 287))

+		(object AttachView "" @102

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@95

+		    supplier   	@94

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::ExactNumericDataType" @103

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1051, 1239)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@103

+			location   	(784, 1158)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	534

+			justify    	0

+			label      	"ExactNumericDataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"411AAB3A02CB"

+		    width      	552

+		    height     	186

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritTreeView "" @104

+		    location   	(1510, 968)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@94

+		    vertices   	(list Points

+			(1510, 968)

+			(1510, 680)))

+		(object InheritView "" @105

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"411AADFE0323"

+		    client     	@103

+		    supplier   	@94

+		    line_style 	3

+		    origin_attachment 	(1053, 1146)

+		    terminal_attachment 	(1053, 968)

+		    drawSupplier 	@104)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::ApproximateNumericDataType" @106

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2203, 1299)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@106

+			location   	(1863, 1248)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	680

+			justify    	0

+			label      	"ApproximateNumericDataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"411AAB530227"

+		    width      	698

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AttachView "" @107

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@98

+		    supplier   	@106

+		    line_style 	0)

+		(object AttachView "" @108

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@99

+		    supplier   	@97

+		    line_style 	0)

+		(object InheritView "" @109

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"411AAEC70368"

+		    client     	@106

+		    supplier   	@94

+		    line_style 	3

+		    origin_attachment 	(2194, 1236)

+		    terminal_attachment 	(2194, 968)

+		    drawSupplier 	@104)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::IntegerDataType" @110

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1404, 1668)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@110

+			location   	(1205, 1617)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	398

+			justify    	0

+			label      	"IntegerDataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"411AAB6E00C7"

+		    width      	416

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritTreeView "" @111

+		    location   	(1051, 1490)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@103

+		    vertices   	(list Points

+			(1051, 1490)

+			(1051, 1332)))

+		(object InheritView "" @112

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"411AAED70389"

+		    client     	@97

+		    supplier   	@103

+		    line_style 	3

+		    origin_attachment 	(721, 1593)

+		    terminal_attachment 	(721, 1490)

+		    drawSupplier 	@111)

+		(object InheritView "" @113

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"411AAEDF018C"

+		    client     	@110

+		    supplier   	@103

+		    line_style 	3

+		    origin_attachment 	(1403, 1605)

+		    terminal_attachment 	(1403, 1490)

+		    drawSupplier 	@111)

+		(object NoteView @114

+		    location   	(1694, 1930)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@114

+			location   	(1531, 1871)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	290

+			label      	"{self.scale = 0}")

+		    line_color 	3342489

+		    fill_color 	8454016

+		    width      	350

+		    height     	131)

+		(object AttachView "" @115

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@114

+		    supplier   	@110

+		    line_style 	0)

+		(object NoteView @116

+		    location   	(1171, 1936)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@116

+			location   	(1030, 1855)

+			fill_color 	13434879

+			nlines     	3

+			max_width  	246

+			label      	

+|Integer,

+|SmallInt,

+|BigInt

+			)

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	306

+		    height     	175)

+		(object AttachView "" @117

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@116

+		    supplier   	@110

+		    line_style 	0)

+		(object AttachView "" @118

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@96

+		    supplier   	@103

+		    line_style 	0)))

+	(object ClassDiagram "PredefinedTypes"

+	    quid       	"3F4E3E50039F"

+	    title      	"PredefinedTypes"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	0

+	    origin_y   	2782

+	    items      	(list diagram_item_list

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::DataType" @119

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1787, 294)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@119

+			location   	(1607, 213)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	360

+			justify    	0

+			label      	"DataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3E9B3F3400BF"

+		    width      	378

+		    height     	186

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::PredefinedDataType" @120

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    location   	(1807, 960)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@120

+			location   	(1471, 879)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	672

+			justify    	0

+			label      	"PredefinedDataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3EDF9E550371"

+		    width      	690

+		    height     	186

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::CharacterStringDataType" @121

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1178, 1622)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@121

+			location   	(892, 1570)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	572

+			justify    	0

+			label      	"CharacterStringDataType")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F2186CB02E1"

+		    width      	590

+		    height     	128

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::NumericalDataType" @122

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2289, 1224)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@122

+			location   	(2056, 1173)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	466

+			justify    	0

+			label      	"NumericalDataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3F2693990310"

+		    width      	484

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::BinaryStringDataType" @123

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1387, 2152)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@123

+			location   	(1136, 2046)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	502

+			justify    	0

+			label      	"BinaryStringDataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F216A9801A3"

+		    width      	520

+		    height     	236

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::BooleanDataType" @124

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1329, 1867)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@124

+			location   	(1115, 1816)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	428

+			justify    	0

+			label      	"BooleanDataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F216E800160"

+		    width      	446

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::PrimitiveType" @125

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(790, 696)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@125

+			location   	(288, 62)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	1004

+			justify    	0

+			label      	"PrimitiveType")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@125

+			location   	(288, 12)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	1004

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	15329769

+		    quidu      	"3F54FBC4015A"

+		    width      	1022

+		    height     	1392

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object NoteView @126

+		    location   	(434, 1604)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@126

+			location   	(99, 1476)

+			fill_color 	13434879

+			nlines     	5

+			max_width  	634

+			label      	

+|Constraint: its primitive types are:

+|CHARACTER,

+|CHARACTER_VARYING, 

+|CHARACTER_LARGE_OBJECT, 

+|NATIONAL equivalents

+			)

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	694

+		    height     	269)

+		(object NoteView @127

+		    location   	(3088, 1219)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@127

+			location   	(2675, 975)

+			fill_color 	13434879

+			nlines     	9

+			max_width  	790

+			label      	

+|Constraint: its primitive types are:

+|NUMERIC,

+|DECIMAL,

+|SMALLINT,

+|BIGINT,

+|INTEGER,

+|FLOAT,

+|REAL,

+|DOUBLE_PRECISION

+			)

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	850

+		    height     	500)

+		(object NoteView @128

+		    location   	(3305, 2420)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@128

+			location   	(2977, 2354)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	621

+			label      	

+|Constraint: its primitive types is:

+|INTERVAL

+			)

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	681

+		    height     	144)

+		(object AttachView "" @129

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@126

+		    supplier   	@121

+		    line_style 	0)

+		(object AttachView "" @130

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@127

+		    supplier   	@122

+		    line_style 	0)

+		(object NoteView @131

+		    location   	(462, 2291)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@131

+			location   	(81, 2163)

+			fill_color 	13434879

+			nlines     	5

+			max_width  	727

+			label      	

+|Constraint: its primitive type is: BINARY,

+|BINARY_VARYING,

+|BINARY_LARGE_OBJECT

+			)

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	787

+		    height     	269)

+		(object AttachView "" @132

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@131

+		    supplier   	@123

+		    line_style 	0)

+		(object NoteView @133

+		    location   	(472, 1864)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@133

+			location   	(162, 1802)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	584

+			label      	

+|Constraint: its primitive type is:

+|BOOLEAN

+			)

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	644

+		    height     	137)

+		(object InheritView "" @134

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3F2693F9022B"

+		    client     	@122

+		    supplier   	@120

+		    line_style 	3

+		    origin_attachment 	(2144, 1161)

+		    terminal_attachment 	(2144, 1052))

+		(object InheritView "" @135

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3F3004830361"

+		    client     	@124

+		    supplier   	@120

+		    line_style 	3

+		    origin_attachment 	(1512, 1804)

+		    terminal_attachment 	(1512, 1053))

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::DataLinkDataType" @136

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1247, 2679)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@136

+			location   	(780, 2448)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	934

+			justify    	0

+			label      	"DataLinkDataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"400DFA2202A3"

+		    width      	952

+		    height     	486

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @137

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"400DFA6603D7"

+		    client     	@136

+		    supplier   	@120

+		    line_style 	3

+		    origin_attachment 	(1678, 2435)

+		    terminal_attachment 	(1678, 1053))

+		(object AttachView "" @138

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@133

+		    supplier   	@124

+		    line_style 	0)

+		(object NoteView @139

+		    location   	(361, 2764)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@139

+			location   	(88, 2698)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	510

+			label      	"Constraint: its primitive type is DATALINK")

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	570

+		    height     	144)

+		(object AttachView "" @140

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@139

+		    supplier   	@136

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::LinkControlOption" @141

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(543, 3209)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@141

+			location   	(225, 3125)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	636

+			justify    	0

+			label      	"LinkControlOption")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@141

+			location   	(225, 3075)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	636

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	15329769

+		    quidu      	"4011A0CF00C9"

+		    width      	654

+		    height     	292

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::IntegrityControlOption" @142

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1247, 3230)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@142

+			location   	(997, 3121)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	500

+			justify    	0

+			label      	"IntegrityControlOption")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@142

+			location   	(997, 3071)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	500

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	15329769

+		    quidu      	"4011A0EC0157"

+		    width      	518

+		    height     	342

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::ReadPermissionOption" @143

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1887, 3214)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@143

+			location   	(1626, 3130)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	522

+			justify    	0

+			label      	"ReadPermissionOption")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@143

+			location   	(1626, 3080)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	522

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	15329769

+		    quidu      	"4011A10C015D"

+		    width      	540

+		    height     	292

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::WritePermissionOption" @144

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1440, 3629)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@144

+			location   	(1167, 3520)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	546

+			justify    	0

+			label      	"WritePermissionOption")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@144

+			location   	(1167, 3470)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	546

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	15329769

+		    quidu      	"4011A11C01C4"

+		    width      	564

+		    height     	342

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::UnlinkOption" @145

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(833, 3615)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@145

+			location   	(641, 3506)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	384

+			justify    	0

+			label      	"UnlinkOption")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@145

+			location   	(641, 3456)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	384

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	15329769

+		    quidu      	"4011A133025E"

+		    width      	402

+		    height     	342

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::SQLDataType" @146

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    ShowOperationSignature 	TRUE

+		    location   	(1802, 651)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@146

+			location   	(1637, 600)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	330

+			justify    	0

+			label      	"SQLDataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3FB90EE3009E"

+		    width      	348

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @147

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3FB90F3400D1"

+		    client     	@146

+		    supplier   	@119

+		    line_style 	3

+		    origin_attachment 	(1802, 588)

+		    terminal_attachment 	(1802, 387))

+		(object InheritView "" @148

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3FB90F2302E1"

+		    client     	@120

+		    supplier   	@146

+		    line_style 	3

+		    origin_attachment 	(1804, 867)

+		    terminal_attachment 	(1804, 714))

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::IntervalDataType" @149

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    ShowOperationSignature 	TRUE

+		    location   	(2303, 2411)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@149

+			location   	(1878, 2230)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	850

+			justify    	0

+			label      	"IntervalDataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F216E7102DA"

+		    width      	868

+		    height     	386

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::TimeDataType" @150

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    ShowOperationSignature 	TRUE

+		    location   	(2308, 1917)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@150

+			location   	(1941, 1811)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	734

+			justify    	0

+			label      	"TimeDataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F216DF3039E"

+		    width      	752

+		    height     	236

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @151

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3F218707016A"

+		    client     	@121

+		    supplier   	@120

+		    line_style 	3

+		    origin_attachment 	(1464, 1558)

+		    terminal_attachment 	(1464, 1053))

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::DateDataType" @152

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    ShowOperationSignature 	TRUE

+		    location   	(2181, 1579)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@152

+			location   	(2009, 1528)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	344

+			justify    	0

+			label      	"DateDataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"402BB4A400B0"

+		    width      	362

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @153

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"402BB4B30333"

+		    client     	@152

+		    supplier   	@120

+		    line_style 	3

+		    origin_attachment 	(2019, 1515)

+		    terminal_attachment 	(2019, 1052))

+		(object InheritView "" @154

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3F2FC6F3031D"

+		    client     	@123

+		    supplier   	@120

+		    line_style 	3

+		    origin_attachment 	(1581, 2034)

+		    terminal_attachment 	(1581, 1053))

+		(object InheritView "" @155

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"402BB4E7028D"

+		    client     	@150

+		    supplier   	@120

+		    line_style 	3

+		    origin_attachment 	(1953, 1799)

+		    terminal_attachment 	(1953, 1053))

+		(object InheritView "" @156

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"402BB4EC0335"

+		    client     	@149

+		    supplier   	@120

+		    line_style 	3

+		    origin_attachment 	(1888, 2217)

+		    terminal_attachment 	(1888, 1053))

+		(object NoteView @157

+		    location   	(3200, 1802)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@157

+			location   	(2865, 1718)

+			fill_color 	13434879

+			nlines     	3

+			max_width  	634

+			label      	

+|Constraint: its primitive types are:

+|TIME,

+|TIMESTAMP

+			)

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	694

+		    height     	181)

+		(object NoteView @158

+		    location   	(2991, 1583)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@158

+			location   	(2656, 1521)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	634

+			label      	

+|Constraint: its primitive type is:

+|DATE

+			)

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	694

+		    height     	137)

+		(object AttachView "" @159

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@152

+		    supplier   	@158

+		    line_style 	3

+		    origin_attachment 	(2362, 1579)

+		    terminal_attachment 	(2643, 1579))

+		(object AttachView "" @160

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@150

+		    supplier   	@157

+		    line_style 	0)

+		(object AttachView "" @161

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@149

+		    supplier   	@128

+		    line_style 	0)

+		(object NoteView @162

+		    location   	(3209, 2064)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@162

+			location   	(2874, 1973)

+			fill_color 	13434879

+			nlines     	3

+			max_width  	634

+			label      	"The default value for fractionalSecondsPrecision is 0 for TIME and 6 for TIMESTAMP")

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	694

+		    height     	194)

+		(object AttachView "" @163

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@150

+		    supplier   	@162

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::XMLDataType" @164

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1947, 2770)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@164

+			location   	(1780, 2719)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	334

+			justify    	0

+			label      	"XMLDataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"417C85910345"

+		    width      	352

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @165

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"417C85E60365"

+		    client     	@164

+		    supplier   	@120

+		    line_style 	3

+		    origin_attachment 	(1813, 2706)

+		    terminal_attachment 	(1813, 1053))

+		(object NoteView @166

+		    location   	(2828, 2764)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@166

+			location   	(2500, 2705)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	621

+			label      	"Constraint: its primitive types is: XML_TYPE")

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	681

+		    height     	131)

+		(object AttachView "" @167

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@166

+		    supplier   	@164

+		    line_style 	0)

+		(object NoteView @168

+		    location   	(456, 2066)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@168

+			location   	(78, 2003)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	721

+			label      	"BINARY and BINARY_VARYING are not part of the SQL standard")

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	781

+		    height     	138)

+		(object AttachView "" @169

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@168

+		    supplier   	@123

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::IntervalQualifierType" @170

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2048, 3698)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@170

+			location   	(1809, 3489)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	478

+			justify    	0

+			label      	"IntervalQualifierType")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@170

+			location   	(1809, 3439)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	478

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	15329769

+		    quidu      	"3F37E78C029F"

+		    width      	496

+		    height     	542

+		    annotation 	8

+		    autoResize 	TRUE)))

+	(object ClassDiagram "UserDefinedTypes"

+	    quid       	"3F4E3E650035"

+	    title      	"UserDefinedTypes"

+	    documentation 	

+|Reference: 5WD-02-Foundation-2002-12 4.7 User-defined types

+|

+	    

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	0

+	    origin_y   	0

+	    items      	(list diagram_item_list

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::OrderingType" @171

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(3019, 233)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@171

+			location   	(2827, 149)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	384

+			justify    	0

+			label      	"OrderingType")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@171

+			location   	(2827, 99)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	384

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	15329769

+		    quidu      	"3F4E4BBD02A6"

+		    width      	402

+		    height     	292

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::OrderingCategoryType" @172

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(3069, 599)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@172

+			location   	(2811, 490)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	516

+			justify    	0

+			label      	"OrderingCategoryType")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@172

+			location   	(2811, 440)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	516

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	15329769

+		    quidu      	"3F4E61750367"

+		    width      	534

+		    height     	342

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::DataType" @173

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    ShowOperationSignature 	TRUE

+		    location   	(1009, 561)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@173

+			location   	(888, 509)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	242

+			justify    	0

+			label      	"DataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3E9B3F3400BF"

+		    width      	260

+		    height     	128

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Schema::ReferentialActionType" @174

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(3086, 2427)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@174

+			location   	(2835, 2245)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	502

+			justify    	0

+			label      	"ReferentialActionType")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@174

+			location   	(2835, 2195)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	502

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	15329769

+		    quidu      	"3ED6717C0130"

+		    width      	520

+		    height     	488

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritTreeView "" @175

+		    location   	(1009, 816)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@173

+		    vertices   	(list Points

+			(1009, 816)

+			(1009, 625)))

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::SQLDataType" @176

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    ShowOperationSignature 	TRUE

+		    location   	(1138, 950)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@176

+			location   	(972, 899)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	332

+			justify    	0

+			label      	"SQLDataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3FB90EE3009E"

+		    width      	350

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Schema::TypedElement" @177

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    location   	(2482, 2148)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@177

+			location   	(2307, 2073)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	350

+			justify    	0

+			label      	"TypedElement")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3FA6A8930071"

+		    width      	368

+		    height     	174

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @178

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3FB90F3400D1"

+		    client     	@176

+		    supplier   	@173

+		    line_style 	3

+		    origin_attachment 	(1138, 887)

+		    terminal_attachment 	(1138, 816)

+		    drawSupplier 	@175)

+		(object ClassView "Class" "Logical View::SQLModel::Schema::SQLObject" @179

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    ShowOperationSignature 	TRUE

+		    location   	(2134, 148)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@179

+			location   	(1902, 19)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	464

+			justify    	0

+			label      	"SQLObject")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3E9B3EB5002B"

+		    width      	482

+		    height     	282

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritTreeView "" @180

+		    location   	(2134, 398)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@179

+		    vertices   	(list Points

+			(2134, 398)

+			(2134, 289)))

+		(object InheritView "" @181

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3F38F4C800D1"

+		    client     	@173

+		    supplier   	@179

+		    line_style 	3

+		    origin_attachment 	(1010, 497)

+		    terminal_attachment 	(1010, 398)

+		    drawSupplier 	@180)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::AttributeDefinition" @182

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2226, 2612)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@182

+			location   	(1810, 2481)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	832

+			justify    	0

+			label      	"AttributeDefinition")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F54EF2F0194"

+		    width      	850

+		    height     	286

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @183

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3FA6AA01002E"

+		    client     	@182

+		    supplier   	@177

+		    line_style 	3

+		    origin_attachment 	(2449, 2469)

+		    terminal_attachment 	(2449, 2235))

+		(object ClassView "Class" "Logical View::SQLModel::Routines::Method" @184

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(3170, 1773)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@184

+			location   	(3037, 1698)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	266

+			justify    	0

+			label      	"Method")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"411A8B5200D1"

+		    width      	284

+		    height     	174

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::StructuredUserDefinedType" @185

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2198, 1727)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@185

+			location   	(1866, 1621)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	664

+			justify    	0

+			label      	"StructuredUserDefinedType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F4E44E8001C"

+		    width      	682

+		    height     	236

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$15" @186

+		    location   	(1998, 2156)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    quidu      	"3F54EF4800DC"

+		    roleview_list 	(list RoleViews

+			(object RoleView "attributes" @187

+			    Parent_View 	@186

+			    location   	(417, 635)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @188

+				Parent_View 	@187

+				location   	(2106, 2428)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	192

+				justify    	0

+				label      	"-attributes"

+				pctDist    	0.870769

+				height     	108

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F54EF480349"

+			    client     	@186

+			    supplier   	@182

+			    line_style 	3

+			    origin_attachment 	(1998, 2156)

+			    terminal_attachment 	(1998, 2468)

+			    label      	(object SegLabel @189

+				Parent_View 	@187

+				location   	(1938, 2421)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	80

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.849231

+				height     	61

+				orientation 	1)

+			    label      	(object SegLabel @190

+				Parent_View 	@187

+				location   	(2096, 2390)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	3

+				anchor_loc 	1

+				nlines     	1

+				max_width  	159

+				justify    	0

+				label      	"{ordered}"

+				pctDist    	0.753846

+				height     	98

+				orientation 	0))

+			(object RoleView "$UNNAMED$16" @191

+			    Parent_View 	@186

+			    location   	(417, 635)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F54EF48034B"

+			    client     	@186

+			    supplier   	@185

+			    line_style 	3

+			    origin_attachment 	(1998, 2156)

+			    terminal_attachment 	(1998, 1844))))

+		(object AssociationViewNew "$UNNAMED$17" @192

+		    location   	(2783, 1740)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3FB91213025D"

+		    roleview_list 	(list RoleViews

+			(object RoleView "methods" @193

+			    Parent_View 	@192

+			    location   	(1163, 241)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @194

+				Parent_View 	@193

+				location   	(2907, 1700)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	184

+				justify    	0

+				label      	"+methods"

+				pctDist    	0.504545

+				height     	41

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3FB9121403DB"

+			    client     	@192

+			    supplier   	@184

+			    line_style 	3

+			    origin_attachment 	(2783, 1740)

+			    terminal_attachment 	(3028, 1740)

+			    label      	(object SegLabel @195

+				Parent_View 	@193

+				location   	(2967, 1793)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.754545

+				height     	53

+				orientation 	1))

+			(object RoleView "$UNNAMED$18" @196

+			    Parent_View 	@192

+			    location   	(1163, 241)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3FB9121403DD"

+			    client     	@192

+			    supplier   	@185

+			    line_style 	3

+			    origin_attachment 	(2783, 1740)

+			    terminal_attachment 	(2539, 1740)

+			    label      	(object SegLabel @197

+				Parent_View 	@196

+				location   	(2564, 1794)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.900000

+				height     	54

+				orientation 	0))))

+		(object AssociationViewNew "$UNNAMED$14" @198

+		    location   	(2344, 1507)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3F4E654C00B4"

+		    roleview_list 	(list RoleViews

+			(object RoleView "super" @199

+			    Parent_View 	@198

+			    location   	(1130, 464)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @200

+				Parent_View 	@199

+				location   	(2159, 1585)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	124

+				justify    	0

+				label      	"-super"

+				pctDist    	0.887755

+				height     	76

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F4E654E038F"

+			    client     	@198

+			    supplier   	@185

+			    vertices   	(list Points

+				(2344, 1507)

+				(2234, 1507)

+				(2234, 1609))

+			    line_style 	3

+			    origin_attachment 	(2344, 1507)

+			    terminal_attachment 	(2234, 1609)

+			    label      	(object SegLabel @201

+				Parent_View 	@199

+				location   	(2282, 1589)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	80

+				justify    	0

+				label      	"0..1"

+				pctDist    	0.908163

+				height     	48

+				orientation 	0))

+			(object RoleView "sub" @202

+			    Parent_View 	@198

+			    location   	(1130, 464)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @203

+				Parent_View 	@202

+				location   	(2403, 1583)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	80

+				justify    	0

+				label      	"-sub"

+				pctDist    	0.877358

+				height     	53

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F4E654E039F"

+			    client     	@198

+			    supplier   	@185

+			    vertices   	(list Points

+				(2344, 1507)

+				(2455, 1507)

+				(2455, 1609))

+			    line_style 	3

+			    origin_attachment 	(2344, 1507)

+			    terminal_attachment 	(2455, 1609)

+			    label      	(object SegLabel @204

+				Parent_View 	@202

+				location   	(2412, 1587)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	80

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.900943

+				height     	44

+				orientation 	1))))

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::UserDefinedType" @205

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1843, 1248)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@205

+			location   	(1638, 1196)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	410

+			justify    	0

+			label      	"UserDefinedType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3EDF9E8100EB"

+		    width      	428

+		    height     	128

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @206

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3EDF9E9C001D"

+		    client     	@205

+		    supplier   	@173

+		    line_style 	3

+		    origin_attachment 	(1822, 1184)

+		    terminal_attachment 	(1822, 816)

+		    drawSupplier 	@175)

+		(object InheritView "" @207

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3F4E452201D4"

+		    client     	@185

+		    supplier   	@205

+		    vertices   	(list Points

+			(1950, 1609)

+			(1950, 1496)

+			(1753, 1496)

+			(1753, 1312))

+		    line_style 	3

+		    origin_attachment 	(1950, 1609)

+		    terminal_attachment 	(1753, 1312))

+		(object ClassView "Class" "Logical View::SQLModel::Routines::Routine" @208

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    ShowOperationSignature 	TRUE

+		    location   	(3392, 1256)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@208

+			location   	(3261, 1181)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	262

+			justify    	0

+			label      	"Routine")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3F3D36420226"

+		    width      	280

+		    height     	174

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::UserDefinedTypeOrdering" @209

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    ShowOperationSignature 	TRUE

+		    location   	(2662, 956)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@209

+			location   	(2193, 850)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	938

+			justify    	0

+			label      	"UserDefinedTypeOrdering")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4022861B0225"

+		    width      	956

+		    height     	236

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @210

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"40228CC1001A"

+		    client     	@209

+		    supplier   	@179

+		    line_style 	3

+		    origin_attachment 	(2696, 838)

+		    terminal_attachment 	(2696, 398)

+		    drawSupplier 	@180)

+		(object AssociationViewNew "$UNNAMED$19" @211

+		    location   	(1974, 1007)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"40228D07033C"

+		    roleview_list 	(list RoleViews

+			(object RoleView "ordering" @212

+			    Parent_View 	@211

+			    location   	(709, -13)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @213

+				Parent_View 	@212

+				location   	(2085, 911)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	169

+				justify    	0

+				label      	"+ordering"

+				pctDist    	0.597769

+				height     	44

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"40228D080301"

+			    client     	@211

+			    supplier   	@209

+			    vertices   	(list Points

+				(1974, 1007)

+				(2003, 954)

+				(2183, 954))

+			    line_style 	0

+			    label      	(object SegLabel @214

+				Parent_View 	@212

+				location   	(2134, 1005)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..1"

+				pctDist    	0.796462

+				height     	51

+				orientation 	1))

+			(object RoleView "$UNNAMED$20" @215

+			    Parent_View 	@211

+			    location   	(709, -13)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"40228D08030B"

+			    client     	@211

+			    supplier   	@205

+			    line_style 	0)))

+		(object AssociationViewNew "$UNNAMED$21" @216

+		    location   	(3317, 978)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4022944002FF"

+		    roleview_list 	(list RoleViews

+			(object RoleView "orderingRoutine" @217

+			    Parent_View 	@216

+			    location   	(1351, 29)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @218

+				Parent_View 	@217

+				location   	(3210, 1133)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	306

+				justify    	0

+				label      	"+orderingRoutine"

+				pctDist    	0.860558

+				height     	168

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4022944101D4"

+			    client     	@216

+			    supplier   	@208

+			    vertices   	(list Points

+				(3317, 978)

+				(3377, 978)

+				(3377, 1169))

+			    line_style 	3

+			    origin_attachment 	(3317, 978)

+			    terminal_attachment 	(3377, 1169)

+			    label      	(object SegLabel @219

+				Parent_View 	@217

+				location   	(3425, 1142)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.894558

+				height     	48

+				orientation 	0))

+			(object RoleView "$UNNAMED$22" @220

+			    Parent_View 	@216

+			    location   	(1351, 29)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4022944101F2"

+			    client     	@216

+			    supplier   	@209

+			    line_style 	3

+			    origin_attachment 	(3317, 978)

+			    terminal_attachment 	(3140, 978))))

+		(object NoteView @221

+		    location   	(2646, 1318)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@221

+			location   	(2124, 1218)

+			fill_color 	13434879

+			nlines     	4

+			max_width  	1008

+			label      	

+|The sub-super relationship must be acyclical:

+|{let allParents = self.super->union(self.super->collect(p|p.allParents) in not self.allParents->include(self)}

+			)

+		    line_color 	3342489

+		    fill_color 	8453888

+		    width      	1068

+		    height     	212)

+		(object AttachView "" @222

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@221

+		    supplier   	@198

+		    line_style 	3

+		    origin_attachment 	(2344, 1424)

+		    terminal_attachment 	(2344, 1507))

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::PredefinedDataType" @223

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1139, 1216)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@223

+			location   	(803, 1135)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	672

+			justify    	0

+			label      	"PredefinedDataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3EDF9E550371"

+		    width      	690

+		    height     	186

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::DistinctUserDefinedType" @224

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1484, 1720)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@224

+			location   	(1207, 1668)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	554

+			justify    	0

+			label      	"DistinctUserDefinedType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F4E44DD0126"

+		    width      	572

+		    height     	128

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @225

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3F4E451F02FC"

+		    client     	@224

+		    supplier   	@205

+		    vertices   	(list Points

+			(1456, 1656)

+			(1456, 1496)

+			(1753, 1496)

+			(1753, 1312))

+		    line_style 	3

+		    origin_attachment 	(1456, 1656)

+		    terminal_attachment 	(1753, 1312))

+		(object AssociationViewNew "$UNNAMED$12" @226

+		    location   	(991, 1607)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3F4E624701AC"

+		    roleview_list 	(list RoleViews

+			(object RoleView "predefinedRepresentation" @227

+			    Parent_View 	@226

+			    location   	(-334, 677)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @228

+				Parent_View 	@227

+				location   	(1238, 1362)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	480

+				justify    	0

+				label      	"-predefinedRepresentation"

+				pctDist    	0.823718

+				height     	247

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F4E6248015B"

+			    client     	@226

+			    supplier   	@223

+			    line_style 	3

+			    origin_attachment 	(991, 1607)

+			    terminal_attachment 	(991, 1308)

+			    label      	(object SegLabel @229

+				Parent_View 	@227

+				location   	(942, 1362)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	34

+				justify    	0

+				label      	"1"

+				pctDist    	0.826367

+				height     	50

+				orientation 	0))

+			(object RoleView "$UNNAMED$13" @230

+			    Parent_View 	@226

+			    location   	(-334, 677)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F4E6248016B"

+			    client     	@226

+			    supplier   	@224

+			    vertices   	(list Points

+				(991, 1607)

+				(991, 1698)

+				(1198, 1698))

+			    line_style 	3

+			    origin_attachment 	(991, 1607)

+			    terminal_attachment 	(1198, 1698))))

+		(object InheritView "" @231

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3FB90F2302E1"

+		    client     	@223

+		    supplier   	@176

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::Domain" @232

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1483, 2127)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@232

+			location   	(1237, 2046)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	492

+			justify    	0

+			label      	"Domain")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3EDF635C005F"

+		    width      	510

+		    height     	186

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @233

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"411BB4E60134"

+		    client     	@232

+		    supplier   	@224

+		    line_style 	0)))))

diff --git a/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel-Expressions.cat b/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel-Expressions.cat
new file mode 100644
index 0000000..2098195
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel-Expressions.cat
@@ -0,0 +1,575 @@
+

+(object Petal

+    version    	47

+    _written   	"Rose 8.0.0303.1400"

+    charSet    	0)

+

+(object Class_Category "Expressions"

+    is_unit    	TRUE

+    is_loaded  	TRUE

+    attributes 	(list Attribute_Set

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"packageName"

+	    value      	(value Text "expressions"))

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"basePackage"

+	    value      	(value Text "org.eclipse.datatools.modelbase.sql"))

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"nsPrefix"

+	    value      	(value Text "SQLExpressions"))

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"nsURI"

+	    value      	(value Text "http:///org/eclipse/datatools/modelbase/sql/expressions.ecore"))

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"prefix"

+	    value      	(value Text "SQLExpressions")))

+    quid       	"3F27D6790133"

+    exportControl 	"Public"

+    logical_models 	(list unit_reference_list

+	(object Class "QueryExpression"

+	    quid       	"3F392200019B"

+	    documentation 	

+|Reference: 5WD-02-Foundation-2002-12 7 Query Expression

+|

+	    

+	    stereotype 	"Interface"

+	    operations 	(list Operations

+		(object Operation "getSQL"

+		    quid       	"404CD7F202DF"

+		    result     	"String"

+		    concurrency 	"Sequential"

+		    opExportControl 	"Public"

+		    uid        	0)

+		(object Operation "setSQL"

+		    quid       	"4193E18B02F4"

+		    parameters 	(list Parameters

+			(object Parameter "sqlText"

+			    quid       	"4193E19E03B9"

+			    type       	"String"))

+		    result     	"void"

+		    concurrency 	"Sequential"

+		    opExportControl 	"Public"

+		    uid        	0)))

+	(object Class "ValueExpression"

+	    quid       	"3F4D273D00A9"

+	    documentation 	

+|Reference: 5WD-02-Foundation-2002-12 4.14.5 Base columns and generated columns

+|

+	    

+	    stereotype 	"Interface"

+	    operations 	(list Operations

+		(object Operation "getSQL"

+		    quid       	"404CD826033E"

+		    result     	"String"

+		    concurrency 	"Sequential"

+		    opExportControl 	"Public"

+		    uid        	0)

+		(object Operation "setSQL"

+		    quid       	"4193E1FA0221"

+		    parameters 	(list Parameters

+			(object Parameter "sqlText"

+			    quid       	"4193E1FA0222"

+			    type       	"String"))

+		    result     	"void"

+		    concurrency 	"Sequential"

+		    opExportControl 	"Public"

+		    uid        	0)))

+	(object Class "SearchCondition"

+	    quid       	"3FABEC590086"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12"

+	    stereotype 	"Interface"

+	    operations 	(list Operations

+		(object Operation "getSQL"

+		    quid       	"404CD80F0023"

+		    result     	"String"

+		    concurrency 	"Sequential"

+		    opExportControl 	"Public"

+		    uid        	0)

+		(object Operation "setSQL"

+		    quid       	"4193E1E402D3"

+		    parameters 	(list Parameters

+			(object Parameter "sqlText"

+			    quid       	"4193E1E402DD"

+			    type       	"String"))

+		    result     	"void"

+		    concurrency 	"Sequential"

+		    opExportControl 	"Public"

+		    uid        	0)))

+	(object Class "QueryExpressionDefault"

+	    quid       	"404912EB0127"

+	    documentation 	"Place holder for the default query expression."

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"4049139E0233"

+		    supplier   	"Logical View::SQLModel::Expressions::QueryExpression"

+		    quidu      	"3F392200019B")

+		(object Inheritance_Relationship

+		    quid       	"4049140202B9"

+		    supplier   	"Logical View::SQLModel::Schema::SQLObject"

+		    quidu      	"3E9B3EB5002B"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "SQL"

+		    quid       	"4049131A01E3"

+		    type       	"String"

+		    exportControl 	"Public")))

+	(object Class "SearchConditionDefault"

+	    quid       	"404912F601A5"

+	    documentation 	"Place holder for the default search condition."

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"404913AC0388"

+		    supplier   	"Logical View::SQLModel::Expressions::SearchCondition"

+		    quidu      	"3FABEC590086")

+		(object Inheritance_Relationship

+		    quid       	"404913FB0132"

+		    supplier   	"Logical View::SQLModel::Schema::SQLObject"

+		    quidu      	"3E9B3EB5002B"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "SQL"

+		    quid       	"4049136602C9"

+		    type       	"String"

+		    exportControl 	"Public")))

+	(object Class "ValueExpressionDefault"

+	    quid       	"4049130202ED"

+	    documentation 	"Place holder for the default value expression."

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"404913C20267"

+		    supplier   	"Logical View::SQLModel::Expressions::ValueExpression"

+		    quidu      	"3F4D273D00A9")

+		(object Inheritance_Relationship

+		    quid       	"4049140E0068"

+		    supplier   	"Logical View::SQLModel::Schema::SQLObject"

+		    quidu      	"3E9B3EB5002B"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "SQL"

+		    quid       	"4049138803A4"

+		    type       	"String"

+		    exportControl 	"Public"))))

+    logical_presentations 	(list unit_reference_list

+	(object ClassDiagram "Expressions"

+	    quid       	"3FB9158F00AF"

+	    title      	"Expressions"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	0

+	    origin_y   	69

+	    items      	(list diagram_item_list

+		(object ClassView "Class" "Logical View::SQLModel::Expressions::QueryExpression" @1

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    ShowOperationSignature 	TRUE

+		    location   	(512, 233)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@1

+			location   	(162, 149)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	700

+			justify    	0

+			label      	"QueryExpression")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@1

+			location   	(162, 99)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	700

+			justify    	0

+			label      	"<<Interface>>")

+		    icon       	"Interface"

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F392200019B"

+		    compartment 	(object Compartment

+			Parent_View 	@1

+			location   	(162, 210)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	3

+			max_width  	603)

+		    width      	718

+		    height     	292

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Expressions::SearchCondition" @2

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    ShowOperationSignature 	TRUE

+		    location   	(523, 724)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@2

+			location   	(172, 640)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	702

+			justify    	0

+			label      	"SearchCondition")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@2

+			location   	(172, 590)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	702

+			justify    	0

+			label      	"<<Interface>>")

+		    icon       	"Interface"

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3FABEC590086"

+		    compartment 	(object Compartment

+			Parent_View 	@2

+			location   	(172, 701)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	3

+			max_width  	603)

+		    width      	720

+		    height     	292

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Expressions::ValueExpression" @3

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    ShowOperationSignature 	TRUE

+		    location   	(518, 1191)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@3

+			location   	(167, 1107)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	702

+			justify    	0

+			label      	"ValueExpression")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@3

+			location   	(167, 1057)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	702

+			justify    	0

+			label      	"<<Interface>>")

+		    icon       	"Interface"

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F4D273D00A9"

+		    compartment 	(object Compartment

+			Parent_View 	@3

+			location   	(167, 1168)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	3

+			max_width  	603)

+		    width      	720

+		    height     	292

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Expressions::QueryExpressionDefault" @4

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1417, 232)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@4

+			location   	(1141, 151)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	552

+			justify    	0

+			label      	"QueryExpressionDefault")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"404912EB0127"

+		    compartment 	(object Compartment

+			Parent_View 	@4

+			location   	(1141, 212)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	2

+			max_width  	284)

+		    width      	570

+		    height     	186

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Expressions::SearchConditionDefault" @5

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1407, 722)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@5

+			location   	(1140, 641)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	534

+			justify    	0

+			label      	"SearchConditionDefault")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"404912F601A5"

+		    compartment 	(object Compartment

+			Parent_View 	@5

+			location   	(1140, 702)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	2

+			max_width  	284)

+		    width      	552

+		    height     	186

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Expressions::ValueExpressionDefault" @6

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1419, 1191)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@6

+			location   	(1147, 1110)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	544

+			justify    	0

+			label      	"ValueExpressionDefault")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4049130202ED"

+		    compartment 	(object Compartment

+			Parent_View 	@6

+			location   	(1147, 1171)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	2

+			max_width  	284)

+		    width      	562

+		    height     	186

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @7

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404913AC0388"

+		    client     	@5

+		    supplier   	@2

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLModel::Schema::SQLObject" @8

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    location   	(2121, 719)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@8

+			location   	(1889, 590)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	464

+			justify    	0

+			label      	"SQLObject")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3E9B3EB5002B"

+		    compartment 	(object Compartment

+			Parent_View 	@8

+			location   	(1889, 695)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	TRUE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	3

+			max_width  	400)

+		    width      	482

+		    height     	282

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @9

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404913C20267"

+		    client     	@6

+		    supplier   	@3

+		    line_style 	0)

+		(object InheritView "" @10

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4049139E0233"

+		    client     	@4

+		    supplier   	@1

+		    line_style 	0)

+		(object InheritView "" @11

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4049140202B9"

+		    client     	@4

+		    supplier   	@8

+		    line_style 	0)

+		(object InheritView "" @12

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404913FB0132"

+		    client     	@5

+		    supplier   	@8

+		    line_style 	0)

+		(object InheritView "" @13

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4049140E0068"

+		    client     	@6

+		    supplier   	@8

+		    line_style 	0)))))

diff --git a/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel-Routines.cat b/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel-Routines.cat
new file mode 100644
index 0000000..04494dc
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel-Routines.cat
@@ -0,0 +1,2673 @@
+

+(object Petal

+    version    	47

+    _written   	"Rose 8.0.0303.1400"

+    charSet    	0)

+

+(object Class_Category "Routines"

+    is_unit    	TRUE

+    is_loaded  	TRUE

+    attributes 	(list Attribute_Set

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"packageName"

+	    value      	(value Text "routines"))

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"nsPrefix"

+	    value      	(value Text "SQLRoutines"))

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"nsURI"

+	    value      	(value Text "http:///org/eclipse/datatools/modelbase/sql/routines.ecore"))

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"basePackage"

+	    value      	(value Text "org.eclipse.datatools.modelbase.sql"))

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"prefix"

+	    value      	(value Text "SQLRoutines")))

+    quid       	"3F4E81D80011"

+    exportControl 	"Public"

+    logical_models 	(list unit_reference_list

+	(object Class "Routine"

+	    quid       	"3F3D36420226"

+	    documentation 	

+|Reference: 5WD-02-Foundation-2002-12 4.27 SQL-invoked routines

+|

+	    

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3F3D37160216"

+		    supplier   	"Logical View::SQLModel::Schema::SQLObject"

+		    quidu      	"3E9B3EB5002B"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "specificName"

+		    quid       	"3F3D372D0256"

+		    documentation 	

+|From 5WD-02-Foundation-2002-12

+|4.27 SQL-invoked routines

+|

+|An SQL-invoked routine is uniquely identified by a <specific name> , called the specific name of the SQLinvoked

+|routine.

+|

+|Typically qualified with a schema name. 

+|

+		    

+		    type       	"String"

+		    exportControl 	"Public")

+		(object ClassAttribute "language"

+		    quid       	"3F3D37360078"

+		    documentation 	

+|Since there are many languages, rather than constrain ourselves to an enumerated list which is difficult to subclass in the EMF environment, we have chosen to use strings.

+|

+|JAVA

+|SQL

+|PERL

+|C

+|ADA

+|COBOL

+|FORTRAN

+|MUMPS

+|PASCAL

+|PLI

+|and so on...

+		    

+		    type       	"String"

+		    exportControl 	"Public")

+		(object ClassAttribute "parameterStyle"

+		    quid       	"3F3D373D0064"

+		    documentation 	

+|Paraphrased from 5WD-02-Foundation-2002-12 

+|The spec only calls for two. Though it seems like an easy choice for enumeration as in the language attribute, other vendors have different styles and since enumeration is not good to subclass within the EMF tooling framework, a string representation is used.

+|

+|11.50 <SQL-invoked routine>

+|SQL 

+|GENERAL.

+|

+|Used in stored procedures, user defined functions, and methods.

+|

+|

+		    

+		    type       	"String"

+		    exportControl 	"Public")

+		(object ClassAttribute "deterministic"

+		    quid       	"3F3D37420184"

+		    documentation 	

+|From 5WD-02-Foundation-2002-12

+|4.27 SQL-invoked routines

+|

+|An SQL-invoked routine is either deterministic or possibly non-deterministic. An SQL-invoked function that

+|is deterministic always returns the identical return value for a given list of SQL argument values. An SQLinvoked

+|procedure that is deterministic always returns the identical values in its output and inout SQL parameters

+|for a given list of SQL argument values. An SQL-invoked routine is possibly non-deterministic if it might

+|produce nonidentical results when invoked with the identical list of SQL argument values.

+		    

+		    type       	"boolean"

+		    exportControl 	"Public")

+		(object ClassAttribute "sqlDataAccess"

+		    quid       	"3F3D3748034F"

+		    documentation 	

+|5WD-02-Foundation-2002-12

+|11.50 <SQL-invoked routine>

+|

+|<SQL-data access indication> ::= NO SQL | CONTAINS SQL | READS SQL DATA | MODIFIES SQL DATA

+|

+|(see DataAccess enumeration class)

+		    

+		    type       	"DataAccess"

+		    quidu      	"3F3D37E10345"

+		    exportControl 	"Public")

+		(object ClassAttribute "creationTS"

+		    quid       	"3F3D4B4700CF"

+		    documentation 	

+|From 5WD-02-Foundation-2002-12

+|4.27 SQL-invoked routines

+|

+|An SQL-invoked routine is described by a routine descriptor. A routine descriptor includes:

+|- The creation timestamp.

+|

+|Because there is no provision in the spec as to the format of the timestamp, it is left to the individual implementers to determine the format.

+		    

+		    type       	"String"

+		    exportControl 	"Public")

+		(object ClassAttribute "lastAlteredTS"

+		    quid       	"3F3D4B58028C"

+		    documentation 	

+|From 5WD-02-Foundation-2002-12

+|4.27 SQL-invoked routines

+|

+|An SQL-invoked routine is described by a routine descriptor. A routine descriptor includes:

+|- The last-altered timestamp.

+|

+|Because there is no provision in the spec as to the format of the timestamp, it is left to the individual implementers to determine the format.

+		    

+		    type       	"String"

+		    exportControl 	"Public")

+		(object ClassAttribute "authorizationID"

+		    quid       	"3F3D4B6B01A3"

+		    documentation 	

+|From 5WD-02-Foundation-2002-12

+|4.27 SQL-invoked routines

+|

+|An SQL-invoked routine has a routine authorization identifier, which is (directly or indirectly) the authorization

+|identifier of the owner of the schema that contains the SQL-invoked routine at the time that the SQL-invoked

+|routine is created.

+		    

+		    type       	"String"

+		    exportControl 	"Public")

+		(object ClassAttribute "security"

+		    quid       	"3F3D4D8B0097"

+		    documentation 	

+|From the below, typical values would be: "DEFINER", "INVOKER", "IMPLEMENTATION DEFINED"

+|Since there are several implementation defined security designations, it is best to go with the string.

+|

+|From 5WD-02-Foundation-2002-12

+|11.50 <SQL-invoked routine>

+|

+|<external security clause> ::=

+|  EXTERNAL SECURITY DEFINER

+|  | EXTERNAL SECURITY INVOKER

+|  | EXTERNAL SECURITY IMPLEMENTATION DEFINED

+|

+|4.27 SQL-invoked routines

+|If the SQL-invoked routine is an SQL routine, then the identifiers are determined according to the SQL security

+|characteristic of the SQL-invoked routine:

+|- If the SQL security characteristic is DEFINER , then:

+|  * If the routine authorization identifier is a user identifier, the user identifier is set to the routine authorization

+|    identifier and the role name is set to null.

+|  * Otherwise, the role name is set to the routine authorization identifier and the user identifier is set to

+|    null.

+|- If the SQL security characteristic is INVOKER , then the identifiers remain unchanged.      

+|If the SQL-invoked routine is an external routine, then the identifiers are determined according to the external

+|security characteristic of the SQL-invoked routine:

+|- If the external security characteristic is DEFINER , then:

+|  * If the routine authorization identifier is a user identifier, then the user identifier is set to the routine

+|    authorization identifier and the role name is set to the null value.

+|  * Otherwise, the role name is set to the routine authorization identifier and the user identifier is set to the

+|    null value.

+|- If the external security characteristic is INVOKER , then the identifiers remain unchanged.

+|- If the external security characteristic is IMPLEMENTATION DEFINED , then the identifiers are set to

+|implementation-defined values.

+		    

+		    type       	"String"

+		    exportControl 	"Public")

+		(object ClassAttribute "externalName"

+		    quid       	"3FB2831C0212"

+		    documentation 	

+|From 5WD-02-Foundation-2002-12

+|from 11.50 SQL-invoked routine:

+|

+|The external name of the routine descriptor is <external routine name> .

+|<external body reference> ::= EXTERNAL [ NAME <external routine name> ] [ <parameter

+|style clause> ] [ <transform group specification> ] [ <external security clause> ]

+|

+|from 4.27 SQL-invoked routines

+|<external routine name> identifies a program written in some

+|standard programming language other than SQL .

+|

+|from 5.4 Names and identifiers

+|<external routine name> ::= <identifier> | <character string literal>

+|An <external routine name> identifies an external routine.

+		    

+		    type       	"String"

+		    exportControl 	"Public"))

+	    abstract   	TRUE)

+	(object Class "Source"

+	    quid       	"3F3D3B03023A"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 4.27 SQL-invoked routines"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3F3D52BA03C0"

+		    supplier   	"Logical View::SQLModel::Schema::SQLObject"

+		    quidu      	"3E9B3EB5002B"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "body"

+		    quid       	"3F3D3EC30009"

+		    type       	"String"

+		    exportControl 	"Public")))

+	(object Class "Parameter"

+	    quid       	"3F3D3B0F022D"

+	    documentation 	

+|Reference: 5WD-02-Foundation-2002-12 4.27 SQL-invoked routines, 5WD-02-Foundation-2002-12 11.50 <SQL-invoked routine>,  Reference: 5WD-02-Foundation-2002-12 4.29.4 Locators  

+|Reference: Information technology - Database languages - SQL - Part 14: XML-Related Specifications (SQL/XML) 12.7 <SQL-invoked routine>

+	    

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3F3D3EDF00A0"

+		    supplier   	"Logical View::SQLModel::Schema::TypedElement"

+		    quidu      	"3FA6A8930071"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "mode"

+		    quid       	"3F3D3F2D0048"

+		    documentation 	

+|5WD-02-Foundation-2002-12

+|

+|<SQL parameter declaration> ::= [ <parameter mode> ] [ <SQL parameter name> ] <parameter type> [ RESULT ]

+|

+|<parameter mode> ::= IN | OUT | INOUT

+|

+|For functions, defaults to IN.

+|See enumerated class ParameterMode

+		    

+		    type       	"ParameterMode"

+		    quidu      	"3F3D3EF402A9"

+		    exportControl 	"Public")

+		(object ClassAttribute "locator"

+		    quid       	"3F5F57DC002D"

+		    documentation 	

+|5WD-02-Foundation-2002-12

+|4.29.4 Locators

+|A host parameter, a host variable, an SQL parameter of an external routine, or the value returned by an external

+|function may be specified to be a locator by specifying AS LOCATOR . A locator is an SQL-session object,

+|rather than SQL-data, that can be used to reference an SQL-data instance. A locator is either a large object

+|locator, a user-defined type locator, an array locator, or a multiset locator. 

+|

+|A large object locator is one of the following:

+|- Binary large object locator, a value of which identifies a binary large object.

+|- Character large object locator, a value of which identifies a large object character string.

+|- National character large object locator, a value of which identifies a national large object character string.

+|

+|A user-defined type locator identifies a value of the user-defined type specified by the locator specification.

+|An array locator identifies a value of the array type specified by the locator specification. A multiset locator

+|identifies a value of the multiset type specified by the locator specification.

+		    

+		    type       	"boolean"

+		    exportControl 	"Public")))

+	(object Class "Procedure"

+	    quid       	"3F3D3B200263"

+	    documentation 	

+|Reference: 5WD-02-Foundation-2002-12 4.27 SQL-invoked routines, 5WD-02-Foundation-2002-12 11.50 <SQL-invoked routine>

+|

+	    

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3F3D3B9D03E0"

+		    supplier   	"Logical View::SQLModel::Routines::Routine"

+		    quidu      	"3F3D36420226"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "maxResultSets"

+		    quid       	"3F3D3E4300EB"

+		    documentation 	

+|Maximun number of result sets the procedure can return.  If the stored procedure returns more result sets than is specified by this value, then a database error will be generated.

+|

+|From 5WD-02-Foundation-2002-12

+|11.50 <SQL-invoked routine>

+|<dynamic result sets characteristic> ::= DYNAMIC RESULT SETS <maximum dynamic result sets>

+		    

+		    type       	"int"

+		    exportControl 	"Public")

+		(object ClassAttribute "oldSavePoint"

+		    quid       	"3F3D3E610301"

+		    documentation 	

+|From 5WD-02-Foundation-2002-12

+|4.27 SQL-invoked routines

+|An SQL-invoked procedure may optionally be specified to require a new savepoint level to be established when it is invoked and destroyed on return from the executed routine body. The alternative of not taking a savepoint can also be directly specified with OLD SAVEPOINT LEVEL . When an SQL-invoked function is invoked a new savepoint level is always established.

+|

+|11.50 <SQL-invoked routine>

+|<savepoint level indication> ::= NEW SAVEPOINT LEVEL | OLD SAVEPOINT LEVEL

+		    

+		    type       	"boolean"

+		    exportControl 	"Public")))

+	(object Class "Function"

+	    quid       	"3F3D3B50012C"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 4.27 SQL-invoked routines"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3F3D3B9A01F1"

+		    supplier   	"Logical View::SQLModel::Routines::Routine"

+		    quidu      	"3F3D36420226"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "nullCall"

+		    quid       	"3F3D4118030B"

+		    documentation 	

+|From 5WD-02-Foundation-2002-12

+|11.50 <SQL-invoked routine>

+|<null-call clause> ::= RETURNS NULL ON NULL INPUT | CALLED ON NULL INPUT

+|

+|If PROCEDURE is specified, then:

+|- <null-call clause> shall not be specified.

+|

+|if <null-call clause> is not specified, then 

+|- CALLED ON NULL INPUT is implicit.

+|

+|If the SQL-invoked routine is an SQL-invoked function, then:

+|- The SQL-invoked routine descriptor includes an indication of whether the SQL-invoked routine

+|is a null-call function.

+|

+|4.27 SQL-invoked routines

+|A null-call function is an SQL-invoked function that is defined to return the null value if any of its input arguments is the null value. A null-call function is an SQL-invoked function whose <null-call clause> specifies

+|"RETURNS NULL ON NULL INPUT".

+		    

+		    type       	"boolean"

+		    exportControl 	"Public")

+		(object ClassAttribute "static"

+		    quid       	"3F3D586503A8"

+		    documentation 	

+|From 5WD-02-Foundation-2002-12

+|11.50 <SQL-invoked routine>

+|

+|<dispatch clause> ::= STATIC DISPATCH

+|

+|If R is an SQL-invoked regular function and the <SQL parameter declaration list> contains an

+|<SQL parameter declaration> that specifies a <data type> that is one of:

+|1) A user-defined type.

+|2) A collection type whose element type is a user-defined type.

+|3) A collection type whose element type is a reference type.

+|4) A reference type.

+|then <dispatch clause> shall be specified. Otherwise, <dispatch clause> shall not be specified.

+		    

+		    type       	"boolean"

+		    exportControl 	"Public")

+		(object ClassAttribute "transformGroup"

+		    quid       	"3F3D55F00123"

+		    documentation 	

+|From 5WD-02-Foundation-2002-12

+|4.7.5 Transforms for user-defined types

+|

+|Transforms are SQL-invoked functions that are automatically invoked when values of user-defined types are

+|transferred from SQL-environment to host languages or vice-versa.

+|

+|A transform is associated with a user-defined type. A transform identifies a list of transform groups of up to

+|two SQL-invoked functions, called the transform functions, each identified by a group name. The group name

+|of a transform group is an <identifier> such that no two transform groups for a transform have the same group

+|name. The two transform functions are:

+|- from-sql function : This SQL-invoked function maps the user-defined type value into a value of an SQL

+|  pre-defined type, and gets invoked whenever a user-defined type value is passed to a host language 

+|  program or an external routine.

+|- to-sql function : This SQL-invoked function maps a value of an SQL predefined type to a value of a

+|  user-defined type and gets invoked whenever a user-defined type value is supplied by a host language

+|  program or an external routine.

+		    

+		    type       	"String"

+		    exportControl 	"Public")

+		(object ClassAttribute "typePreserving"

+		    quid       	"411A8BED00C0"

+		    type       	"boolean"

+		    exportControl 	"Public")

+		(object ClassAttribute "mutator"

+		    quid       	"411A8BF80120"

+		    type       	"boolean"

+		    exportControl 	"Public")))

+	(object Class "DataAccess"

+	    quid       	"3F3D37E10345"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 4.27 SQL-invoked routines"

+	    stereotype 	"enumeration"

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "NO_SQL"

+		    quid       	"3F3D387D00D2"

+		    exportControl 	"Public")

+		(object ClassAttribute "CONTAINS_SQL"

+		    quid       	"3F3D383401E6"

+		    exportControl 	"Public")

+		(object ClassAttribute "READS_SQL_DATA"

+		    quid       	"3F3D38A5009E"

+		    exportControl 	"Public")

+		(object ClassAttribute "MODIFIES_SQL_DATA"

+		    quid       	"3F3D388403AD"

+		    exportControl 	"Public")))

+	(object Class "ParameterMode"

+	    quid       	"3F3D3EF402A9"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 11.50 <SQL-invoked routine>"

+	    stereotype 	"enumeration"

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "IN"

+		    quid       	"3F3D3F08024D"

+		    exportControl 	"Public")

+		(object ClassAttribute "OUT"

+		    quid       	"3F3D3F0D020E"

+		    exportControl 	"Public")

+		(object ClassAttribute "INOUT"

+		    quid       	"3F3D3F1100B6"

+		    exportControl 	"Public")))

+	(object Class "RoutineResultTable"

+	    quid       	"3FB914C00279"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 4.27 SQL-invoked routines"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3FB914DA038D"

+		    supplier   	"Logical View::SQLModel::Tables::Table"

+		    quidu      	"3E9B1FB60047")))

+	(object Class "Method"

+	    quid       	"411A8B5200D1"

+	    documentation 	

+|Reference: 5WD-02-Foundation-2002-12 4.27 SQL-invoked routines 

+|

+	    

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"411A8B92012D"

+		    supplier   	"Logical View::SQLModel::Routines::Function"

+		    quidu      	"3F3D3B50012C"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "overriding"

+		    quid       	"411A8C340181"

+		    type       	"boolean"

+		    exportControl 	"Public")

+		(object ClassAttribute "constructor"

+		    quid       	"411A8C6402F2"

+		    type       	"boolean"

+		    exportControl 	"Public")))

+	(object Class "UserDefinedFunction"

+	    quid       	"411A8B5B016A"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 4.27 SQL-invoked routines"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"411A8B8F006B"

+		    supplier   	"Logical View::SQLModel::Routines::Function"

+		    quidu      	"3F3D3B50012C")))

+	(object Class "BuiltInFunction"

+	    quid       	"411A8B68028C"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 4.27 SQL-invoked routines"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"411A8B8B03E0"

+		    supplier   	"Logical View::SQLModel::Routines::Function"

+		    quidu      	"3F3D3B50012C")))

+	(object Association "$UNNAMED$0"

+	    quid       	"3F3D3C6C01A2"

+	    roles      	(list role_list

+		(object Role "resultSet"

+		    quid       	"3F3D3C6D0140"

+		    label      	"resultSet"

+		    supplier   	"Logical View::SQLModel::Routines::RoutineResultTable"

+		    quidu      	"3FB914C00279"

+		    client_cardinality 	(value cardinality "0..n")

+		    Constraints 	"ordered"

+		    Containment 	"By Value"

+		    exportControl 	"Private"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$1"

+		    quid       	"3F3D3C6D0154"

+		    supplier   	"Logical View::SQLModel::Routines::Procedure"

+		    quidu      	"3F3D3B200263"

+		    client_cardinality 	(value cardinality "1")

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$2"

+	    quid       	"3F3D3DCF00EF"

+	    roles      	(list role_list

+		(object Role "returnTable"

+		    quid       	"3F3D3DD002F9"

+		    label      	"returnTable"

+		    supplier   	"Logical View::SQLModel::Routines::RoutineResultTable"

+		    quidu      	"3FB914C00279"

+		    client_cardinality 	(value cardinality "0..1")

+		    Containment 	"By Value"

+		    exportControl 	"Private"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$3"

+		    quid       	"3F3D3DD00303"

+		    supplier   	"Logical View::SQLModel::Routines::Function"

+		    quidu      	"3F3D3B50012C"

+		    client_cardinality 	(value cardinality "1")

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$4"

+	    quid       	"3F3D421C0020"

+	    roles      	(list role_list

+		(object Role "parameters"

+		    quid       	"3F3D421C028C"

+		    label      	"parameters"

+		    supplier   	"Logical View::SQLModel::Routines::Parameter"

+		    quidu      	"3F3D3B0F022D"

+		    client_cardinality 	(value cardinality "0..n")

+		    Constraints 	"ordered"

+		    Containment 	"By Value"

+		    exportControl 	"Private"

+		    is_navigable 	TRUE)

+		(object Role "routine"

+		    quid       	"3F3D421C028E"

+		    label      	"routine"

+		    supplier   	"Logical View::SQLModel::Routines::Routine"

+		    quidu      	"3F3D36420226"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Reference"

+		    exportControl 	"Private"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$5"

+	    quid       	"3F3D43150321"

+	    roles      	(list role_list

+		(object Role "returnScalar"

+		    quid       	"3F3D4316025A"

+		    label      	"returnScalar"

+		    supplier   	"Logical View::SQLModel::Routines::Parameter"

+		    quidu      	"3F3D3B0F022D"

+		    client_cardinality 	(value cardinality "0..1")

+		    Containment 	"By Value"

+		    exportControl 	"Private"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$6"

+		    quid       	"3F3D4316026E"

+		    supplier   	"Logical View::SQLModel::Routines::Function"

+		    quidu      	"3F3D3B50012C"

+		    client_cardinality 	(value cardinality "1")

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$7"

+	    quid       	"3F3D44A602D7"

+	    roles      	(list role_list

+		(object Role "source"

+		    quid       	"3F3D44A7017A"

+		    label      	"source"

+		    supplier   	"Logical View::SQLModel::Routines::Source"

+		    quidu      	"3F3D3B03023A"

+		    client_cardinality 	(value cardinality "0..1")

+		    Containment 	"By Value"

+		    exportControl 	"Private"

+		    is_navigable 	TRUE)

+		(object Role "routine"

+		    quid       	"3F3D44A70184"

+		    label      	"routine"

+		    supplier   	"Logical View::SQLModel::Routines::Routine"

+		    quidu      	"3F3D36420226"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Reference"

+		    exportControl 	"Private"

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$8"

+	    quid       	"3F3D45400120"

+	    roles      	(list role_list

+		(object Role "returnCast"

+		    quid       	"3F3D4541019A"

+		    label      	"returnCast"

+		    supplier   	"Logical View::SQLModel::Routines::Parameter"

+		    quidu      	"3F3D3B0F022D"

+		    client_cardinality 	(value cardinality "0..1")

+		    Containment 	"By Value"

+		    exportControl 	"Private"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$9"

+		    quid       	"3F3D454101A4"

+		    supplier   	"Logical View::SQLModel::Routines::Function"

+		    quidu      	"3F3D3B50012C"

+		    client_cardinality 	(value cardinality "1")

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$10"

+	    quid       	"3F4E92E4031A"

+	    roles      	(list role_list

+		(object Role "routines"

+		    quid       	"3F4E92E502F3"

+		    label      	"routines"

+		    supplier   	"Logical View::SQLModel::Routines::Routine"

+		    quidu      	"3F3D36420226"

+		    client_cardinality 	(value cardinality "0..n")

+		    Containment 	"By Reference"

+		    exportControl 	"Private"

+		    is_navigable 	TRUE)

+		(object Role "schema"

+		    quid       	"3F4E92E502FE"

+		    label      	"schema"

+		    supplier   	"Logical View::SQLModel::Schema::Schema"

+		    quidu      	"3ED523C20089"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Reference"

+		    exportControl 	"Private"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$11"

+	    quid       	"42EE8CE1035D"

+	    roles      	(list role_list

+		(object Role "stringTypeOption"

+		    quid       	"42EE8CE30234"

+		    label      	"stringTypeOption"

+		    supplier   	"Logical View::SQLModel::DataTypes::CharacterStringDataType"

+		    quidu      	"3F2186CB02E1"

+		    client_cardinality 	(value cardinality "0..1")

+		    Containment 	"By Value"

+		    exportControl 	"Private"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$12"

+		    quid       	"42EE8CE30236"

+		    supplier   	"Logical View::SQLModel::Routines::Parameter"

+		    quidu      	"3F3D3B0F022D"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Reference"

+		    is_aggregate 	TRUE))))

+    logical_presentations 	(list unit_reference_list

+	(object ClassDiagram "Routine"

+	    quid       	"3F3D36180257"

+	    title      	"Routine"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 4.26 Externally-invoked procedures,  5WD-02-Foundation-2002-12 4.27 SQL-invoked routines"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	0

+	    origin_y   	1025

+	    items      	(list diagram_item_list

+		(object ClassView "Class" "Logical View::SQLModel::Routines::DataAccess" @1

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(331, 2735)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@1

+			location   	(50, 2601)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	562

+			justify    	0

+			label      	"DataAccess")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@1

+			location   	(50, 2551)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	562

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	15329769

+		    quidu      	"3F3D37E10345"

+		    compartment 	(object Compartment

+			Parent_View 	@1

+			location   	(50, 2662)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	5

+			max_width  	484)

+		    width      	580

+		    height     	392

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Routines::ParameterMode" @2

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(882, 2713)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@2

+			location   	(690, 2604)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	384

+			justify    	0

+			label      	"ParameterMode")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@2

+			location   	(690, 2554)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	384

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	15329769

+		    quidu      	"3F3D3EF402A9"

+		    compartment 	(object Compartment

+			Parent_View 	@2

+			location   	(690, 2665)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	4

+			max_width  	178)

+		    width      	402

+		    height     	342

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Schema::SQLObject" @3

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    location   	(342, 604)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@3

+			location   	(110, 475)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	464

+			justify    	0

+			label      	"SQLObject")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3E9B3EB5002B"

+		    compartment 	(object Compartment

+			Parent_View 	@3

+			location   	(110, 580)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	TRUE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	3

+			max_width  	400)

+		    width      	482

+		    height     	282

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Tables::Table" @4

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(166, 1766)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@4

+			location   	(53, 1716)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	226

+			justify    	0

+			label      	"Table")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3E9B1FB60047"

+		    width      	244

+		    height     	124

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::ecore::ENamedElement" @5

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(331, 197)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@5

+			location   	(126, 93)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	410

+			justify    	0

+			label      	"ENamedElement")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B65CCC600FE"

+		    width      	428

+		    height     	232

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @6

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3FB0FE5501DD"

+		    client     	@3

+		    supplier   	@5

+		    line_style 	3

+		    origin_attachment 	(331, 462)

+		    terminal_attachment 	(331, 313))

+		(object ClassView "Class" "Logical View::SQLModel::Schema::TypedElement" @7

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    ShowOperationSignature 	TRUE

+		    location   	(2147, 484)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@7

+			location   	(1689, 355)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	916

+			justify    	0

+			label      	"TypedElement")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3FA6A8930071"

+		    compartment 	(object Compartment

+			Parent_View 	@7

+			location   	(1689, 460)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	TRUE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	3

+			max_width  	787)

+		    width      	934

+		    height     	282

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @8

+		    stereotype 	TRUE

+		    line_color 	16711680

+		    quidu      	"3FA6A8DF0200"

+		    client     	@7

+		    supplier   	@3

+		    line_style 	3

+		    origin_attachment 	(1680, 504)

+		    terminal_attachment 	(583, 504))

+		(object NoteView @9

+		    location   	(1848, 825)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@9

+			location   	(1613, 763)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	434

+			label      	"locator can only be true for LOB type data")

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	494

+		    height     	137)

+		(object ClassView "Class" "Logical View::SQLModel::Routines::Method" @10

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2512, 2922)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@10

+			location   	(2257, 2816)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	510

+			justify    	0

+			label      	"Method")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"411A8B5200D1"

+		    compartment 	(object Compartment

+			Parent_View 	@10

+			location   	(2257, 2877)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	3

+			max_width  	440)

+		    width      	528

+		    height     	236

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Routines::UserDefinedFunction" @11

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1886, 2860)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@11

+			location   	(1646, 2809)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	480

+			justify    	0

+			label      	"UserDefinedFunction")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"411A8B5B016A"

+		    width      	498

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Routines::BuiltInFunction" @12

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1358, 2860)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@12

+			location   	(1183, 2809)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	350

+			justify    	0

+			label      	"BuiltInFunction")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"411A8B68028C"

+		    width      	368

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object NoteView @13

+		    location   	(1900, 3111)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@13

+			location   	(1696, 3042)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	372

+			label      	"As defined within a StructuredType")

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	432

+		    height     	150)

+		(object AttachView "" @14

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@13

+		    supplier   	@10

+		    vertices   	(list Points

+			(2116, 3114)

+			(2510, 3114)

+			(2510, 3040))

+		    line_style 	3

+		    origin_attachment 	(2116, 3038)

+		    terminal_attachment 	(2248, 3038))

+		(object ClassView "Class" "Logical View::SQLModel::Routines::Procedure" @15

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(800, 1983)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@15

+			location   	(526, 1877)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	548

+			justify    	0

+			label      	"Procedure")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F3D3B200263"

+		    compartment 	(object Compartment

+			Parent_View 	@15

+			location   	(526, 1938)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	3

+			max_width  	471)

+		    width      	566

+		    height     	236

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Routines::RoutineResultTable" @16

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(272, 2388)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@16

+			location   	(39, 2336)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	466

+			justify    	0

+			label      	"RoutineResultTable")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3FB914C00279"

+		    width      	484

+		    height     	128

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$0" @17

+		    location   	(359, 2075)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    quidu      	"3F3D3C6C01A2"

+		    roleview_list 	(list RoleViews

+			(object RoleView "resultSet" @18

+			    Parent_View 	@17

+			    location   	(82, 956)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @19

+				Parent_View 	@18

+				location   	(256, 2241)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	186

+				justify    	0

+				label      	"-resultSet"

+				pctDist    	0.671296

+				height     	104

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F3D3C6D0140"

+			    client     	@17

+			    supplier   	@16

+			    line_style 	3

+			    origin_attachment 	(359, 2075)

+			    terminal_attachment 	(359, 2324)

+			    label      	(object SegLabel @20

+				Parent_View 	@18

+				location   	(295, 2287)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	80

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.857143

+				height     	65

+				orientation 	1)

+			    label      	(object SegLabel @21

+				Parent_View 	@18

+				location   	(263, 2179)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	3

+				anchor_loc 	1

+				nlines     	1

+				max_width  	170

+				justify    	0

+				label      	"{ordered}"

+				pctDist    	0.416667

+				height     	97

+				orientation 	1))

+			(object RoleView "$UNNAMED$1" @22

+			    Parent_View 	@17

+			    location   	(82, 956)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F3D3C6D0154"

+			    client     	@17

+			    supplier   	@15

+			    vertices   	(list Points

+				(359, 2075)

+				(359, 1984)

+				(517, 1984))

+			    line_style 	3

+			    origin_attachment 	(359, 2075)

+			    terminal_attachment 	(517, 1984)

+			    label      	(object SegLabel @23

+				Parent_View 	@22

+				location   	(466, 1943)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	34

+				justify    	0

+				label      	"1"

+				pctDist    	0.800000

+				height     	42

+				orientation 	0))))

+		(object InheritView "" @24

+		    stereotype 	TRUE

+		    line_color 	16711680

+		    quidu      	"3FB914DA038D"

+		    client     	@16

+		    supplier   	@4

+		    line_style 	3

+		    origin_attachment 	(109, 2324)

+		    terminal_attachment 	(109, 1828))

+		(object ClassView "Class" "Logical View::SQLModel::Routines::Source" @25

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(231, 1388)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@25

+			location   	(63, 1307)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	336

+			justify    	0

+			label      	"Source")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F3D3B03023A"

+		    compartment 	(object Compartment

+			Parent_View 	@25

+			location   	(63, 1368)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	2

+			max_width  	290)

+		    width      	354

+		    height     	186

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @26

+		    stereotype 	TRUE

+		    line_color 	16711680

+		    quidu      	"3F3D52BA03C0"

+		    client     	@25

+		    supplier   	@3

+		    line_style 	3

+		    origin_attachment 	(225, 1295)

+		    terminal_attachment 	(225, 745))

+		(object ClassView "Class" "Logical View::SQLModel::Schema::Schema" @27

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1188, 680)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@27

+			location   	(1051, 602)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	274

+			justify    	0

+			label      	"Schema")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3ED523C20089"

+		    width      	292

+		    height     	180

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Routines::Function" @28

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1594, 2001)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@28

+			location   	(1302, 1820)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	584

+			justify    	0

+			label      	"Function")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	12187127

+		    quidu      	"3F3D3B50012C"

+		    compartment 	(object Compartment

+			Parent_View 	@28

+			location   	(1302, 1881)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	6

+			max_width  	503)

+		    width      	602

+		    height     	386

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$2" @29

+		    location   	(1019, 2369)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    quidu      	"3F3D3DCF00EF"

+		    roleview_list 	(list RoleViews

+			(object RoleView "returnTable" @30

+			    Parent_View 	@29

+			    location   	(261, 1250)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @31

+				Parent_View 	@30

+				location   	(639, 2338)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	229

+				justify    	0

+				label      	"-returnTable"

+				pctDist    	0.752363

+				height     	32

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F3D3DD002F9"

+			    client     	@29

+			    supplier   	@16

+			    line_style 	3

+			    origin_attachment 	(1019, 2369)

+			    terminal_attachment 	(514, 2369)

+			    label      	(object SegLabel @32

+				Parent_View 	@30

+				location   	(581, 2413)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	80

+				justify    	0

+				label      	"0..1"

+				pctDist    	0.869565

+				height     	44

+				orientation 	0))

+			(object RoleView "$UNNAMED$3" @33

+			    Parent_View 	@29

+			    location   	(261, 1250)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F3D3DD00303"

+			    client     	@29

+			    supplier   	@28

+			    vertices   	(list Points

+				(1019, 2369)

+				(1350, 2369)

+				(1350, 2194))

+			    line_style 	3

+			    origin_attachment 	(1019, 2369)

+			    terminal_attachment 	(1350, 2194)

+			    label      	(object SegLabel @34

+				Parent_View 	@33

+				location   	(1309, 2249)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	34

+				justify    	0

+				label      	"1"

+				pctDist    	0.890756

+				height     	42

+				orientation 	0))))

+		(object InheritTreeView "" @35

+		    location   	(1594, 2688)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@28

+		    vertices   	(list Points

+			(1594, 2688)

+			(1594, 2194)))

+		(object InheritView "" @36

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"411A8B8B03E0"

+		    client     	@12

+		    supplier   	@28

+		    line_style 	3

+		    origin_attachment 	(1379, 2797)

+		    terminal_attachment 	(1379, 2688)

+		    drawSupplier 	@35)

+		(object InheritView "" @37

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"411A8B8F006B"

+		    client     	@11

+		    supplier   	@28

+		    line_style 	3

+		    origin_attachment 	(1885, 2797)

+		    terminal_attachment 	(1885, 2688)

+		    drawSupplier 	@35)

+		(object InheritView "" @38

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"411A8B92012D"

+		    client     	@10

+		    supplier   	@28

+		    line_style 	3

+		    origin_attachment 	(2510, 2804)

+		    terminal_attachment 	(2510, 2688)

+		    drawSupplier 	@35)

+		(object ClassView "Class" "Logical View::SQLModel::Routines::Routine" @39

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1128, 1381)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@39

+			location   	(783, 1075)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	690

+			justify    	0

+			label      	"Routine")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3F3D36420226"

+		    compartment 	(object Compartment

+			Parent_View 	@39

+			location   	(783, 1136)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	TRUE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	11

+			max_width  	593)

+		    width      	708

+		    height     	636

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$7" @40

+		    location   	(591, 1392)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    quidu      	"3F3D44A602D7"

+		    roleview_list 	(list RoleViews

+			(object RoleView "source" @41

+			    Parent_View 	@40

+			    location   	(-535, 664)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @42

+				Parent_View 	@41

+				location   	(497, 1361)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	146

+				justify    	0

+				label      	"-source"

+				pctDist    	0.513661

+				height     	32

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F3D44A7017A"

+			    client     	@40

+			    supplier   	@25

+			    line_style 	3

+			    origin_attachment 	(591, 1392)

+			    terminal_attachment 	(408, 1392)

+			    label      	(object SegLabel @43

+				Parent_View 	@41

+				location   	(466, 1434)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	80

+				justify    	0

+				label      	"0..1"

+				pctDist    	0.683060

+				height     	42

+				orientation 	0))

+			(object RoleView "routine" @44

+			    Parent_View 	@40

+			    location   	(-535, 664)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @45

+				Parent_View 	@44

+				location   	(685, 1445)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	146

+				justify    	0

+				label      	"-routine"

+				pctDist    	0.516304

+				height     	53

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F3D44A70184"

+			    client     	@40

+			    supplier   	@39

+			    line_style 	3

+			    origin_attachment 	(591, 1392)

+			    terminal_attachment 	(774, 1392)

+			    label      	(object SegLabel @46

+				Parent_View 	@44

+				location   	(735, 1343)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	34

+				justify    	0

+				label      	"1"

+				pctDist    	0.788043

+				height     	50

+				orientation 	0))))

+		(object InheritView "" @47

+		    stereotype 	TRUE

+		    line_color 	16711680

+		    quidu      	"3F3D37160216"

+		    client     	@39

+		    supplier   	@3

+		    vertices   	(list Points

+			(900, 1063)

+			(900, 938)

+			(444, 938)

+			(444, 745))

+		    line_style 	3

+		    origin_attachment 	(900, 1063)

+		    terminal_attachment 	(444, 745))

+		(object InheritView "" @48

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	16711680

+		    quidu      	"3F3D3B9A01F1"

+		    client     	@28

+		    supplier   	@39

+		    line_style 	3

+		    origin_attachment 	(1426, 1807)

+		    terminal_attachment 	(1426, 1699))

+		(object InheritView "" @49

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	16711680

+		    quidu      	"3F3D3B9D03E0"

+		    client     	@15

+		    supplier   	@39

+		    line_style 	3

+		    origin_attachment 	(919, 1864)

+		    terminal_attachment 	(919, 1699))

+		(object AssociationViewNew "$UNNAMED$10" @50

+		    location   	(1191, 916)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    quidu      	"3F4E92E4031A"

+		    roleview_list 	(list RoleViews

+			(object RoleView "routines" @51

+			    Parent_View 	@50

+			    location   	(973, -267)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @52

+				Parent_View 	@51

+				location   	(1280, 987)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	168

+				justify    	0

+				label      	"-routines"

+				pctDist    	0.493671

+				height     	89

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F4E92E502F3"

+			    client     	@50

+			    supplier   	@39

+			    line_style 	3

+			    origin_attachment 	(1191, 916)

+			    terminal_attachment 	(1191, 1062)

+			    label      	(object SegLabel @53

+				Parent_View 	@51

+				location   	(1250, 1032)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	80

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.801471

+				height     	59

+				orientation 	0))

+			(object RoleView "schema" @54

+			    Parent_View 	@50

+			    location   	(973, -267)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @55

+				Parent_View 	@54

+				location   	(1092, 848)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	168

+				justify    	0

+				label      	"-schema"

+				pctDist    	0.468354

+				height     	100

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F4E92E502FE"

+			    client     	@50

+			    supplier   	@27

+			    line_style 	3

+			    origin_attachment 	(1191, 916)

+			    terminal_attachment 	(1191, 770)

+			    label      	(object SegLabel @56

+				Parent_View 	@54

+				location   	(1132, 807)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.755556

+				height     	60

+				orientation 	0))))

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::CharacterStringDataType" @57

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2533, 2314)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@57

+			location   	(2247, 2240)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	572

+			justify    	0

+			label      	"CharacterStringDataType")

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F2186CB02E1"

+		    width      	590

+		    height     	172

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Routines::Parameter" @58

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2312, 1159)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@58

+			location   	(2031, 1053)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	562

+			justify    	0

+			label      	"Parameter")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F3D3B0F022D"

+		    compartment 	(object Compartment

+			Parent_View 	@58

+			location   	(2031, 1114)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	3

+			max_width  	484)

+		    width      	580

+		    height     	236

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$8" @59

+		    location   	(2444, 1946)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    quidu      	"3F3D45400120"

+		    roleview_list 	(list RoleViews

+			(object RoleView "returnCast" @60

+			    Parent_View 	@59

+			    location   	(796, 728)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @61

+				Parent_View 	@60

+				location   	(2328, 1373)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	203

+				justify    	0

+				label      	"-returnCast"

+				pctDist    	0.858679

+				height     	117

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F3D4541019A"

+			    client     	@59

+			    supplier   	@58

+			    line_style 	3

+			    origin_attachment 	(2444, 1946)

+			    terminal_attachment 	(2444, 1276)

+			    label      	(object SegLabel @62

+				Parent_View 	@60

+				location   	(2361, 1315)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	80

+				justify    	0

+				label      	"0..1"

+				pctDist    	0.944700

+				height     	84

+				orientation 	0))

+			(object RoleView "$UNNAMED$9" @63

+			    Parent_View 	@59

+			    location   	(796, 728)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @64

+				Parent_View 	@63

+				location   	(2029, 2025)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				hidden     	TRUE

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	267

+				justify    	0

+				label      	""

+				pctDist    	0.800000

+				height     	42

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F3D454101A4"

+			    client     	@59

+			    supplier   	@28

+			    vertices   	(list Points

+				(2444, 1946)

+				(2444, 2066)

+				(1895, 2066))

+			    line_style 	3

+			    origin_attachment 	(2444, 1946)

+			    terminal_attachment 	(1895, 2066)

+			    label      	(object SegLabel @65

+				Parent_View 	@63

+				location   	(1924, 2027)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	34

+				justify    	0

+				label      	"1"

+				pctDist    	0.958580

+				height     	40

+				orientation 	1))))

+		(object AssociationViewNew "$UNNAMED$5" @66

+		    location   	(2156, 1716)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    quidu      	"3F3D43150321"

+		    roleview_list 	(list RoleViews

+			(object RoleView "returnScalar" @67

+			    Parent_View 	@66

+			    location   	(1030, 988)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @68

+				Parent_View 	@67

+				location   	(2027, 1378)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	236

+				justify    	0

+				label      	"-returnScalar"

+				pctDist    	0.770142

+				height     	130

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F3D4316025A"

+			    client     	@66

+			    supplier   	@58

+			    line_style 	3

+			    origin_attachment 	(2156, 1716)

+			    terminal_attachment 	(2156, 1277)

+			    label      	(object SegLabel @69

+				Parent_View 	@67

+				location   	(2096, 1318)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	80

+				justify    	0

+				label      	"0..1"

+				pctDist    	0.909953

+				height     	61

+				orientation 	0))

+			(object RoleView "$UNNAMED$6" @70

+			    Parent_View 	@66

+			    location   	(1030, 988)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F3D4316026E"

+			    client     	@66

+			    supplier   	@28

+			    vertices   	(list Points

+				(2156, 1716)

+				(2156, 1894)

+				(1895, 1894))

+			    line_style 	3

+			    origin_attachment 	(2156, 1716)

+			    terminal_attachment 	(1895, 1894)

+			    label      	(object SegLabel @71

+				Parent_View 	@70

+				location   	(1922, 1855)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	34

+				justify    	0

+				label      	"1"

+				pctDist    	0.938534

+				height     	40

+				orientation 	1))))

+		(object AssociationViewNew "$UNNAMED$4" @72

+		    location   	(1752, 1184)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    quidu      	"3F3D421C0020"

+		    roleview_list 	(list RoleViews

+			(object RoleView "parameters" @73

+			    Parent_View 	@72

+			    location   	(626, 456)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @74

+				Parent_View 	@73

+				location   	(1896, 1109)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	223

+				justify    	0

+				label      	"-parameters"

+				pctDist    	0.533835

+				height     	76

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F3D421C028C"

+			    client     	@72

+			    supplier   	@58

+			    line_style 	3

+			    origin_attachment 	(1752, 1184)

+			    terminal_attachment 	(2022, 1184)

+			    label      	(object SegLabel @75

+				Parent_View 	@73

+				location   	(1919, 1155)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	80

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.620301

+				height     	30

+				orientation 	0)

+			    label      	(object SegLabel @76

+				Parent_View 	@73

+				location   	(1910, 1229)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	3

+				anchor_loc 	1

+				nlines     	1

+				max_width  	170

+				justify    	0

+				label      	"{ordered}"

+				pctDist    	0.590226

+				height     	45

+				orientation 	1))

+			(object RoleView "routine" @77

+			    Parent_View 	@72

+			    location   	(626, 456)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @78

+				Parent_View 	@77

+				location   	(1572, 1095)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	146

+				justify    	0

+				label      	"-routine"

+				pctDist    	0.665414

+				height     	90

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F3D421C028E"

+			    client     	@72

+			    supplier   	@39

+			    line_style 	3

+			    origin_attachment 	(1752, 1184)

+			    terminal_attachment 	(1482, 1184)

+			    label      	(object SegLabel @79

+				Parent_View 	@77

+				location   	(1564, 1146)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	34

+				justify    	0

+				label      	"1"

+				pctDist    	0.699248

+				height     	39

+				orientation 	1))))

+		(object InheritView "" @80

+		    stereotype 	TRUE

+		    line_color 	16711680

+		    quidu      	"3F3D3EDF00A0"

+		    client     	@58

+		    supplier   	@7

+		    line_style 	3

+		    origin_attachment 	(2291, 1040)

+		    terminal_attachment 	(2291, 625))

+		(object AttachView "" @81

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@9

+		    supplier   	@58

+		    vertices   	(list Points

+			(2095, 872)

+			(2150, 872)

+			(2150, 1041))

+		    line_style 	3

+		    origin_attachment 	(2058, 893)

+		    terminal_attachment 	(2058, 1041))

+		(object AssociationViewNew "$UNNAMED$11" @82

+		    location   	(2547, 1752)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"42EE8CE1035D"

+		    roleview_list 	(list RoleViews

+			(object RoleView "stringTypeOption" @83

+			    Parent_View 	@82

+			    location   	(234, 592)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @84

+				Parent_View 	@83

+				location   	(2724, 2135)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	379

+				justify    	0

+				label      	"-stringTypeOption"

+				pctDist    	0.804622

+				height     	177

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"42EE8CE30234"

+			    client     	@82

+			    supplier   	@57

+			    line_style 	3

+			    origin_attachment 	(2547, 1752)

+			    terminal_attachment 	(2547, 2228)

+			    label      	(object SegLabel @85

+				Parent_View 	@83

+				location   	(2616, 2195)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	138

+				justify    	0

+				label      	"0..1"

+				pctDist    	0.930672

+				height     	69

+				orientation 	0))

+			(object RoleView "$UNNAMED$12" @86

+			    Parent_View 	@82

+			    location   	(234, 592)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"42EE8CE30236"

+			    client     	@82

+			    supplier   	@58

+			    line_style 	3

+			    origin_attachment 	(2547, 1752)

+			    terminal_attachment 	(2547, 1277)

+			    label      	(object SegLabel @87

+				Parent_View 	@86

+				location   	(2591, 1321)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.909474

+				height     	44

+				orientation 	1))))

+		(object NoteView @88

+		    location   	(2495, 2575)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@88

+			location   	(2160, 2516)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	634

+			label      	"Only valid when the Parameter DataType is a XMLDataType.")

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	694

+		    height     	131)

+		(object AttachView "" @89

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@88

+		    supplier   	@57

+		    line_style 	3

+		    origin_attachment 	(2520, 2509)

+		    terminal_attachment 	(2520, 2400))

+		(object AttachView "" @90

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@29

+		    supplier   	@66

+		    vertices   	(list Points

+			(1019, 2369)

+			(1019, 2463)

+			(2031, 2463)

+			(2031, 1894))

+		    line_style 	3

+		    origin_attachment 	(1019, 2369)

+		    terminal_attachment 	(2031, 1894))

+		(object Label @91

+		    location   	(1706, 2400)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    nlines     	1

+		    max_width  	87

+		    label      	"{xor}")))))

diff --git a/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel-Schema.cat b/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel-Schema.cat
new file mode 100644
index 0000000..b74e2e4
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel-Schema.cat
@@ -0,0 +1,4860 @@
+

+(object Petal

+    version    	47

+    _written   	"Rose 8.0.0303.1400"

+    charSet    	0)

+

+(object Class_Category "Schema"

+    is_unit    	TRUE

+    is_loaded  	TRUE

+    attributes 	(list Attribute_Set

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"packageName"

+	    value      	(value Text "schema"))

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"basePackage"

+	    value      	(value Text "org.eclipse.datatools.modelbase.sql"))

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"nsPrefix"

+	    value      	(value Text "SQLSchema"))

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"nsURI"

+	    value      	(value Text "http:///org/eclipse/datatools/modelbase/sql/schema.ecore"))

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"prefix"

+	    value      	(value Text "SQLSchema")))

+    quid       	"3F27D66B01AB"

+    exportControl 	"Public"

+    logical_models 	(list unit_reference_list

+	(object Class "IdentitySpecifier"

+	    quid       	"3EA3F30101D3"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 4.14.4 Identity columns"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"421D5DD20094"

+		    supplier   	"Logical View::SQLModel::Schema::SQLObject"

+		    quidu      	"3E9B3EB5002B"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "generationType"

+		    quid       	"3ED23C620340"

+		    type       	"GenerateType"

+		    quidu      	"3EA40DBD02B7"

+		    exportControl 	"Public")

+		(object ClassAttribute "startValue"

+		    quid       	"3EA3F3D30042"

+		    type       	"EBigInteger"

+		    quidu      	"3FC625080137"

+		    exportControl 	"Public")

+		(object ClassAttribute "increment"

+		    quid       	"3EA40CF903DA"

+		    type       	"EBigInteger"

+		    quidu      	"3FC625080137"

+		    exportControl 	"Public")

+		(object ClassAttribute "minimum"

+		    quid       	"3EA40D14035C"

+		    type       	"EBigInteger"

+		    quidu      	"3FC625080137"

+		    exportControl 	"Public")

+		(object ClassAttribute "maximum"

+		    quid       	"3EA40D2A00AB"

+		    type       	"EBigInteger"

+		    quidu      	"3FC625080137"

+		    exportControl 	"Public")

+		(object ClassAttribute "cycleOption"

+		    quid       	"3EA40D2F01E3"

+		    type       	"boolean"

+		    exportControl 	"Public")))

+	(object Class "GenerateType"

+	    quid       	"3EA40DBD02B7"

+	    documentation 	

+|Reference: 5WD-02-Foundation-2002-12 4.14.4 Identity columns

+|

+	    

+	    stereotype 	"enumeration"

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "DEFAULT_GENERATED"

+		    quid       	"3EA40DC700D2"

+		    exportControl 	"Public")

+		(object ClassAttribute "ALWAYS_GENERATED"

+		    quid       	"3EA40DD20381"

+		    exportControl 	"Public")))

+	(object Class "TypedElement"

+	    quid       	"3FA6A8930071"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 "

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3FA6A8DF0200"

+		    supplier   	"Logical View::SQLModel::Schema::SQLObject"

+		    quidu      	"3E9B3EB5002B"))

+	    operations 	(list Operations

+		(object Operation "setDataType"

+		    quid       	"3FA6B9070347"

+		    documentation 	"Set the type for this TypedElement"

+		    parameters 	(list Parameters

+			(object Parameter "newType"

+			    quid       	"3FA6B95B00FE"

+			    type       	"DataType"

+			    quidu      	"3E9B3F3400BF"))

+		    result     	"void"

+		    concurrency 	"Sequential"

+		    opExportControl 	"Public"

+		    uid        	0)

+		(object Operation "getDataType"

+		    quid       	"3FA6B90901A6"

+		    documentation 	"Get the type for this TypedElement"

+		    result     	"DataType"

+		    concurrency 	"Sequential"

+		    opExportControl 	"Public"

+		    uid        	0

+		    quidu      	"3E9B3F3400BF"))

+	    abstract   	TRUE)

+	(object Class "Dependency"

+	    quid       	"3F967CB70382"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3F967CC7023A"

+		    supplier   	"Logical View::SQLModel::Schema::SQLObject"

+		    quidu      	"3E9B3EB5002B"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "dependencyType"

+		    quid       	"40241C5B0099"

+		    type       	"String"

+		    exportControl 	"Public")))

+	(object Class "Schema"

+	    quid       	"3ED523C20089"

+	    documentation 	

+|Reference: 5WD-02-Foundation-2002-12 4.20 SQL-schemas

+|

+	    

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3ED52ED402B8"

+		    supplier   	"Logical View::SQLModel::Schema::SQLObject"

+		    quidu      	"3E9B3EB5002B")))

+	(object Class "SQLObject"

+	    quid       	"3E9B3EB5002B"

+	    documentation 	

+|The base object to be used for any Relation Database concept, representing the placeholder for the name and alias.  This object will extend ENamedElement in the generated code.  The string attribute name will be inherited

+|from ENamedElement.

+|

+|Note: In the RDB sense, only table and view objects can be represented by aliases, but DB2 defines also database and network aliases, and even for nicknames that refer to data tables or views located on federated systems.

+	    

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3FB0FE5501DD"

+		    supplier   	"Logical View::ecore::ENamedElement"

+		    quidu      	"3B65CCC600FE"))

+	    operations 	(list Operations

+		(object Operation "addEAnnotation"

+		    quid       	"4047AD600205"

+		    parameters 	(list Parameters

+			(object Parameter "source"

+			    quid       	"4047ADA6024B"

+			    type       	"String"))

+		    result     	"EAnnotation"

+		    concurrency 	"Sequential"

+		    opExportControl 	"Public"

+		    uid        	0

+		    quidu      	"3D98A1C701AB")

+		(object Operation "addEAnnotationDetail"

+		    quid       	"4047AE140145"

+		    parameters 	(list Parameters

+			(object Parameter "eAnnotation"

+			    quid       	"4047AEB5015B"

+			    type       	"EAnnotation"

+			    quidu      	"3D98A1C701AB")

+			(object Parameter "key"

+			    quid       	"4047AEC302A5"

+			    type       	"String")

+			(object Parameter "value"

+			    quid       	"4047B3380093"

+			    type       	"String"))

+		    result     	"void"

+		    concurrency 	"Sequential"

+		    opExportControl 	"Public"

+		    uid        	0)

+		(object Operation "getEAnnotationDetail"

+		    quid       	"4047AE3702A4"

+		    parameters 	(list Parameters

+			(object Parameter "eAnnotation"

+			    quid       	"4047AF1A0250"

+			    type       	"EAnnotation"

+			    quidu      	"3D98A1C701AB")

+			(object Parameter "key"

+			    quid       	"4047B35D0295"

+			    type       	"String"))

+		    result     	"String"

+		    concurrency 	"Sequential"

+		    opExportControl 	"Public"

+		    uid        	0)

+		(object Operation "setAnnotationDetail"

+		    quid       	"408026CB008E"

+		    parameters 	(list Parameters

+			(object Parameter "eAnnotation"

+			    quid       	"408026F0011E"

+			    type       	"EAnnotation"

+			    quidu      	"3D98A1C701AB")

+			(object Parameter "key"

+			    quid       	"408026F0013C"

+			    type       	"String")

+			(object Parameter "value"

+			    quid       	"408026F0015A"

+			    type       	"String"))

+		    result     	"void"

+		    concurrency 	"Sequential"

+		    opExportControl 	"Public"

+		    uid        	0)

+		(object Operation "removeEAnnotationDetail"

+		    quid       	"4047B98B01F0"

+		    parameters 	(list Parameters

+			(object Parameter "eAnnotation"

+			    quid       	"4047B99C01B8"

+			    type       	"EAnnotation"

+			    quidu      	"3D98A1C701AB")

+			(object Parameter "key"

+			    quid       	"4047B9AB03A4"

+			    type       	"String"))

+		    result     	"void"

+		    concurrency 	"Sequential"

+		    opExportControl 	"Public"

+		    uid        	0)

+		(object Operation "getEAnnotation"

+		    quid       	"4047C9D80114"

+		    parameters 	(list Parameters

+			(object Parameter "source"

+			    quid       	"4047C9F1008E"

+			    type       	"String"))

+		    result     	"EAnnotation"

+		    concurrency 	"Sequential"

+		    opExportControl 	"Public"

+		    uid        	0

+		    quidu      	"3D98A1C701AB"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "description"

+		    quid       	"3F8DBFA903C9"

+		    type       	"String"

+		    exportControl 	"Public")

+		(object ClassAttribute "label"

+		    quid       	"3F8DBFB101D5"

+		    type       	"String"

+		    exportControl 	"Public"))

+	    abstract   	TRUE)

+	(object Class "Sequence"

+	    quid       	"3FABF02B03CD"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 4.21 Sequence Generators"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3FABF052024A"

+		    supplier   	"Logical View::SQLModel::Schema::TypedElement"

+		    quidu      	"3FA6A8930071")))

+	(object Class "Database"

+	    quid       	"3FFDB2AD0234"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 "

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3FFDB2FD0026"

+		    supplier   	"Logical View::SQLModel::Schema::SQLObject"

+		    quidu      	"3E9B3EB5002B"))

+	    operations 	(list Operations

+		(object Operation "getUserDefinedTypes"

+		    quid       	"402305AC031D"

+		    result     	"List"

+		    concurrency 	"Sequential"

+		    opExportControl 	"Public"

+		    uid        	0

+		    quidu      	"40240BB003A0"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "vendor"

+		    quid       	"3FFDB2BF01A3"

+		    type       	"String"

+		    exportControl 	"Public")

+		(object ClassAttribute "version"

+		    quid       	"3FFDB2C002EF"

+		    type       	"String"

+		    exportControl 	"Public")))

+	(object Class "Date"

+	    quid       	"400DD1F40374"

+	    stereotype 	"datatype"

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "java.util.Date"

+		    quid       	"400DD28F01C8"

+		    stereotype 	"javaclass"

+		    exportControl 	"Public")))

+	(object Class "List"

+	    quid       	"40240BB003A0"

+	    stereotype 	"datatype"

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "java.util.List"

+		    quid       	"40240BC90157"

+		    stereotype 	"javaclass"

+		    exportControl 	"Public")))

+	(object Class "ReferentialActionType"

+	    quid       	"3ED6717C0130"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 "

+	    stereotype 	"enumeration"

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "NO_ACTION"

+		    quid       	"3ED67249012B"

+		    exportControl 	"Public")

+		(object ClassAttribute "RESTRICT"

+		    quid       	"3ED6725D017A"

+		    exportControl 	"Public")

+		(object ClassAttribute "CASCADE"

+		    quid       	"3ED6726602C3"

+		    exportControl 	"Public")

+		(object ClassAttribute "SET_NULL"

+		    quid       	"3ED672700302"

+		    exportControl 	"Public")

+		(object ClassAttribute "SET_DEFAULT"

+		    quid       	"3ED672760091"

+		    exportControl 	"Public")))

+	(object Class "Event"

+	    quid       	"4410A9D20025"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 "

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"4410AA020056"

+		    supplier   	"Logical View::SQLModel::Schema::SQLObject"

+		    quidu      	"3E9B3EB5002B"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "for"

+		    quid       	"4410AA0D00A2"

+		    documentation 	"the type of object on which the event applies"

+		    type       	"String"

+		    exportControl 	"Public")

+		(object ClassAttribute "condition"

+		    quid       	"4410AA1102ED"

+		    documentation 	"the condition to be satisfied inorder to activate the event"

+		    type       	"String"

+		    exportControl 	"Public")

+		(object ClassAttribute "action"

+		    quid       	"4410AA1601FA"

+		    documentation 	"the action that the event performs after being activated"

+		    type       	"String"

+		    exportControl 	"Public")

+		(object ClassAttribute "enabled"

+		    quid       	"4410AA1E006B"

+		    documentation 	"event state"

+		    type       	"boolean"

+		    exportControl 	"Public")))

+	(object Class "Comment"

+	    quid       	"44F8C4990146"

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "description"

+		    quid       	"44F8C4AD0380"

+		    type       	"String"

+		    exportControl 	"Public")))

+	(object Class "Catalog"

+	    quid       	"44F8C6C60057"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"44F8C6E102B8"

+		    supplier   	"Logical View::SQLModel::Schema::SQLObject"

+		    quidu      	"3E9B3EB5002B")))

+	(object Class "ObjectExtension"

+	    quid       	"4B74B5300380"

+	    stereotype 	"Interface")

+	(object Association "$UNNAMED$0"

+	    quid       	"3E9B3A2B030D"

+	    roles      	(list role_list

+		(object Role "columns"

+		    quid       	"3E9B3A2C0158"

+		    label      	"columns"

+		    supplier   	"Logical View::SQLModel::Tables::Column"

+		    quidu      	"3E9B2AFF0392"

+		    client_cardinality 	(value cardinality "1..n")

+		    Constraints 	"ordered"

+		    Containment 	"By Value"

+		    exportControl 	"Private"

+		    is_navigable 	TRUE)

+		(object Role "table"

+		    quid       	"3E9B3A2C0167"

+		    label      	"table"

+		    supplier   	"Logical View::SQLModel::Tables::Table"

+		    quidu      	"3E9B1FB60047"

+		    client_cardinality 	(value cardinality "1")

+		    exportControl 	"Private"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$1"

+	    quid       	"3EDF921303AD"

+	    roles      	(list role_list

+		(object Role "$UNNAMED$2"

+		    quid       	"3EDF92150245"

+		    supplier   	"Logical View::SQLModel::Tables::Column"

+		    quidu      	"3E9B2AFF0392"

+		    client_cardinality 	(value cardinality "0..1")

+		    exportControl 	"Private"

+		    is_aggregate 	TRUE)

+		(object Role "identitySpecifier"

+		    quid       	"3EDF92150264"

+		    label      	"identitySpecifier"

+		    supplier   	"Logical View::SQLModel::Schema::IdentitySpecifier"

+		    quidu      	"3EA3F30101D3"

+		    client_cardinality 	(value cardinality "0..1")

+		    Containment 	"By Value"

+		    exportControl 	"Private"

+		    is_navigable 	TRUE)))

+	(object Association "$UNNAMED$3"

+	    quid       	"3EA57A170151"

+	    roles      	(list role_list

+		(object Role "supertable"

+		    quid       	"3EA57A1B02E7"

+		    label      	"supertable"

+		    supplier   	"Logical View::SQLModel::Tables::Table"

+		    quidu      	"3E9B1FB60047"

+		    client_cardinality 	(value cardinality "0..1")

+		    exportControl 	"Private"

+		    is_navigable 	TRUE)

+		(object Role "subtables"

+		    quid       	"3EA57A1B02F7"

+		    label      	"subtables"

+		    supplier   	"Logical View::SQLModel::Tables::Table"

+		    quidu      	"3E9B1FB60047"

+		    client_cardinality 	(value cardinality "0..n")

+		    exportControl 	"Private"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$4"

+	    quid       	"3F4BB65C00FC"

+	    roles      	(list role_list

+		(object Role "tables"

+		    quid       	"3F4BB65D0085"

+		    label      	"tables"

+		    supplier   	"Logical View::SQLModel::Tables::Table"

+		    quidu      	"3E9B1FB60047"

+		    client_cardinality 	(value cardinality "0..n")

+		    Containment 	"By Reference"

+		    exportControl 	"Private"

+		    is_navigable 	TRUE)

+		(object Role "schema"

+		    quid       	"3F4BB65D0099"

+		    label      	"schema"

+		    supplier   	"Logical View::SQLModel::Schema::Schema"

+		    quidu      	"3ED523C20089"

+		    client_cardinality 	(value cardinality "1")

+		    exportControl 	"Private"

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$5"

+	    quid       	"3EA412A40286"

+	    roles      	(list role_list

+		(object Role "generateExpression"

+		    quid       	"3EA412A501FA"

+		    label      	"generateExpression"

+		    supplier   	"Logical View::SQLModel::Expressions::ValueExpression"

+		    quidu      	"3F4D273D00A9"

+		    client_cardinality 	(value cardinality "0..1")

+		    Containment 	"By Value"

+		    exportControl 	"Private"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$6"

+		    quid       	"3EA412A501FC"

+		    supplier   	"Logical View::SQLModel::Tables::Column"

+		    quidu      	"3E9B2AFF0392"

+		    client_cardinality 	(value cardinality "1")

+		    exportControl 	"Private"

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$7"

+	    quid       	"3FA286420050"

+	    documentation 	

+|PredefinedDataTypes are contained by value, ie the column owns an instance of the data type.  A Column must have one of, but not both, a containedType or a referencedType. 

+|

+|Setting the containedType on a column will remove any referencedType, and vice versa.

+|

+|It is recommended to not set the containedType or referencedType explicitly.  These relationships are managed by the column.  To set the type for a column, simply call setType(DataType newType) on a Column.

+	    

+	    roles      	(list role_list

+		(object Role "containedType"

+		    quid       	"3FA2864203A4"

+		    label      	"containedType"

+		    supplier   	"Logical View::SQLModel::DataTypes::SQLDataType"

+		    quidu      	"3FB90EE3009E"

+		    client_cardinality 	(value cardinality "0..1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$8"

+		    quid       	"3FA2864203AE"

+		    supplier   	"Logical View::SQLModel::Schema::TypedElement"

+		    quidu      	"3FA6A8930071"

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$9"

+	    quid       	"3FA288AA03BD"

+	    documentation 	

+|UserDefinedTypes are contained by reference, ie the column does not own the UserDefinedType instance.  A Column must have one of, but not both, a containedType or a referencedType. 

+|

+|Setting the containedType on a column will remove any referencedType, and vice versa.

+	    

+	    roles      	(list role_list

+		(object Role "referencedType"

+		    quid       	"3FA288AB03B5"

+		    label      	"referencedType"

+		    supplier   	"Logical View::SQLModel::DataTypes::UserDefinedType"

+		    quidu      	"3EDF9E8100EB"

+		    client_cardinality 	(value cardinality "0..1")

+		    Containment 	"By Reference"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$10"

+		    quid       	"3FA288AB03BF"

+		    supplier   	"Logical View::SQLModel::Schema::TypedElement"

+		    quidu      	"3FA6A8930071"

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$11"

+	    quid       	"3FABF06600AC"

+	    roles      	(list role_list

+		(object Role "identity"

+		    quid       	"3FABF067022A"

+		    label      	"identity"

+		    supplier   	"Logical View::SQLModel::Schema::IdentitySpecifier"

+		    quidu      	"3EA3F30101D3"

+		    client_cardinality 	(value cardinality "1")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$12"

+		    quid       	"3FABF0670234"

+		    supplier   	"Logical View::SQLModel::Schema::Sequence"

+		    quidu      	"3FABF02B03CD"

+		    client_cardinality 	(value cardinality "0..1")

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$13"

+	    quid       	"3FABF07503B0"

+	    roles      	(list role_list

+		(object Role "sequences"

+		    quid       	"3FABF0770326"

+		    label      	"sequences"

+		    supplier   	"Logical View::SQLModel::Schema::Sequence"

+		    quidu      	"3FABF02B03CD"

+		    client_cardinality 	(value cardinality "0..n")

+		    Containment 	"By Reference"

+		    is_navigable 	TRUE)

+		(object Role "schema"

+		    quid       	"3FABF0770328"

+		    label      	"schema"

+		    supplier   	"Logical View::SQLModel::Schema::Schema"

+		    quidu      	"3ED523C20089"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$14"

+	    quid       	"3FFDB31400A1"

+	    roles      	(list role_list

+		(object Role "schemas"

+		    quid       	"3FFDB3150034"

+		    label      	"schemas"

+		    supplier   	"Logical View::SQLModel::Schema::Schema"

+		    quidu      	"3ED523C20089"

+		    client_cardinality 	(value cardinality "0..n")

+		    Containment 	"By Reference"

+		    is_navigable 	TRUE)

+		(object Role "database"

+		    quid       	"3FFDB315007B"

+		    label      	"database"

+		    supplier   	"Logical View::SQLModel::Schema::Database"

+		    quidu      	"3FFDB2AD0234"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$15"

+	    quid       	"400DF6DE032D"

+	    roles      	(list role_list

+		(object Role "udt"

+		    quid       	"400DF6DF0248"

+		    label      	"udt"

+		    supplier   	"Logical View::SQLModel::DataTypes::StructuredUserDefinedType"

+		    quidu      	"3F4E44E8001C"

+		    client_cardinality 	(value cardinality "0..1")

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$16"

+		    quid       	"400DF6DF025C"

+		    supplier   	"Logical View::SQLModel::Tables::Table"

+		    quidu      	"3E9B1FB60047"

+		    client_cardinality 	(value cardinality "1"))))

+	(object Association "$UNNAMED$17"

+	    quid       	"4410AB1D0306"

+	    roles      	(list role_list

+		(object Role "events"

+		    quid       	"4410AB1F0088"

+		    label      	"events"

+		    supplier   	"Logical View::SQLModel::Schema::Event"

+		    quidu      	"4410A9D20025"

+		    client_cardinality 	(value cardinality "0..n")

+		    Containment 	"By Reference"

+		    exportControl 	"Private"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$18"

+		    quid       	"4410AB1F0092"

+		    supplier   	"Logical View::SQLModel::Schema::Database"

+		    quidu      	"3FFDB2AD0234"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$19"

+	    quid       	"44F8C4C10071"

+	    roles      	(list role_list

+		(object Role "comments"

+		    quid       	"44F8C4C2019F"

+		    label      	"comments"

+		    supplier   	"Logical View::SQLModel::Schema::Comment"

+		    quidu      	"44F8C4990146"

+		    client_cardinality 	(value cardinality "0..n")

+		    Containment 	"By Reference"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$20"

+		    quid       	"44F8C4C201A9"

+		    supplier   	"Logical View::SQLModel::Schema::SQLObject"

+		    quidu      	"3E9B3EB5002B"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$21"

+	    quid       	"44F8C6F70288"

+	    roles      	(list role_list

+		(object Role "catalogs"

+		    quid       	"44F8C6F803CA"

+		    label      	"catalogs"

+		    supplier   	"Logical View::SQLModel::Schema::Catalog"

+		    quidu      	"44F8C6C60057"

+		    client_cardinality 	(value cardinality "0..n")

+		    Containment 	"By Reference"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$22"

+		    quid       	"44F8C6F803D4"

+		    supplier   	"Logical View::SQLModel::Schema::Database"

+		    quidu      	"3FFDB2AD0234"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$23"

+	    quid       	"44F8C82E037F"

+	    roles      	(list role_list

+		(object Role "schemas"

+		    quid       	"44F8C8300057"

+		    label      	"schemas"

+		    supplier   	"Logical View::SQLModel::Schema::Schema"

+		    quidu      	"3ED523C20089"

+		    client_cardinality 	(value cardinality "0..n")

+		    Containment 	"By Reference"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$24"

+		    quid       	"44F8C8300061"

+		    supplier   	"Logical View::SQLModel::Schema::Catalog"

+		    quidu      	"44F8C6C60057"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$25"

+	    quid       	"4B74B5570250"

+	    roles      	(list role_list

+		(object Role "extensions"

+		    quid       	"4B74B55A036D"

+		    label      	"extensions"

+		    supplier   	"Logical View::SQLModel::Schema::ObjectExtension"

+		    quidu      	"4B74B5300380"

+		    client_cardinality 	(value cardinality "0..n")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$26"

+		    quid       	"4B74B55A0377"

+		    supplier   	"Logical View::SQLModel::Schema::SQLObject"

+		    quidu      	"3E9B3EB5002B"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE))))

+    logical_presentations 	(list unit_reference_list

+	(object ClassDiagram "Main"

+	    quid       	"3F41333900C3"

+	    title      	"Main"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	25

+	    origin_y   	0

+	    items      	(list diagram_item_list

+		(object NoteView @1

+		    location   	(995, 409)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@1

+			location   	(636, 296)

+			fill_color 	13434879

+			nlines     	4

+			max_width  	683

+			label      	"A few generic concepts like Collation and Translation were not modeled at this time due to limited need from the consumers of the model.")

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	743

+		    height     	238)

+		(object ClassView "Class" "Logical View::ecore::ENamedElement" @2

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1989, 765)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@2

+			location   	(1784, 686)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	410

+			justify    	0

+			label      	"ENamedElement")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3B65CCC600FE"

+		    compartment 	(object Compartment

+			Parent_View 	@2

+			location   	(1784, 791)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	TRUE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	1

+			max_width  	303)

+		    width      	428

+		    height     	182

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::ecore::EObject" @3

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1989, 224)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@3

+			location   	(1883, 175)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	212

+			justify    	0

+			label      	"EObject")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3C4F1C860123"

+		    width      	230

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::ecore::EModelElement" @4

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1991, 484)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@4

+			location   	(1801, 435)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	380

+			justify    	0

+			label      	"EModelElement")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3903D4E40050"

+		    width      	398

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @5

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3C8D4364024F"

+		    client     	@2

+		    supplier   	@4

+		    line_style 	3

+		    origin_attachment 	(2000, 674)

+		    terminal_attachment 	(2000, 544))

+		(object InheritView "" @6

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3C4F1CC50336"

+		    client     	@4

+		    supplier   	@3

+		    line_style 	3

+		    origin_attachment 	(2006, 423)

+		    terminal_attachment 	(2006, 285))

+		(object ClassView "Class" "Logical View::SQLModel::Schema::Date" @7

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1481, 3259)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@7

+			location   	(1151, 3200)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	660

+			justify    	0

+			label      	"Date")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@7

+			location   	(1151, 3150)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	660

+			justify    	0

+			label      	"<<datatype>>")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"400DD1F40374"

+		    compartment 	(object Compartment

+			Parent_View 	@7

+			location   	(1151, 3261)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	2

+			max_width  	568)

+		    width      	678

+		    height     	242

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Schema::List" @8

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2299, 3253)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@8

+			location   	(1980, 3194)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	638

+			justify    	0

+			label      	"List")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@8

+			location   	(1980, 3144)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	638

+			justify    	0

+			label      	"<<datatype>>")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"40240BB003A0"

+		    compartment 	(object Compartment

+			Parent_View 	@8

+			location   	(1980, 3255)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	2

+			max_width  	550)

+		    width      	656

+		    height     	242

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Schema::Dependency" @9

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2515, 1490)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@9

+			location   	(2220, 1409)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	590

+			justify    	0

+			label      	"Dependency")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F967CB70382"

+		    compartment 	(object Compartment

+			Parent_View 	@9

+			location   	(2220, 1470)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	2

+			max_width  	509)

+		    width      	608

+		    height     	186

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "" @10

+		    location   	(2897, 774)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3FA7F70F015C"

+		    roleview_list 	(list RoleViews

+			(object RoleView "targetEnd" @11

+			    Parent_View 	@10

+			    location   	(1242, -394)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @12

+				Parent_View 	@11

+				location   	(2245, 180)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	200

+				justify    	0

+				label      	"+targetEnd"

+				pctDist    	0.896175

+				height     	30

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3FA7F7110046"

+			    client     	@10

+			    supplier   	@3

+			    vertices   	(list Points

+				(2897, 774)

+				(2897, 209)

+				(2104, 209))

+			    line_style 	3

+			    origin_attachment 	(2897, 774)

+			    terminal_attachment 	(2104, 209)

+			    label      	(object SegLabel @13

+				Parent_View 	@11

+				location   	(2164, 251)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.956284

+				height     	42

+				orientation 	0))

+			(object RoleView "" @14

+			    Parent_View 	@10

+			    location   	(1242, -394)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3FA7F7110050"

+			    client     	@10

+			    supplier   	@9

+			    vertices   	(list Points

+				(2897, 774)

+				(2897, 1681)

+				(2544, 1681)

+				(2544, 1583))

+			    line_style 	3

+			    origin_attachment 	(2897, 774)

+			    terminal_attachment 	(2544, 1583)

+			    label      	(object SegLabel @15

+				Parent_View 	@14

+				location   	(2597, 1652)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.888807

+				height     	29

+				orientation 	1))))

+		(object ClassView "Class" "Logical View::SQLModel::Schema::Comment" @16

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(968, 700)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@16

+			location   	(736, 619)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	464

+			justify    	0

+			label      	"Comment")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"44F8C4990146"

+		    compartment 	(object Compartment

+			Parent_View 	@16

+			location   	(736, 680)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	13434879

+			anchor     	2

+			nlines     	2

+			max_width  	400)

+		    width      	482

+		    height     	186

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Schema::Event" @17

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(399, 1065)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@17

+			location   	(180, 909)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	438

+			justify    	0

+			label      	"Event")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4410A9D20025"

+		    compartment 	(object Compartment

+			Parent_View 	@17

+			location   	(180, 970)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	13434879

+			anchor     	2

+			nlines     	5

+			max_width  	378)

+		    width      	456

+		    height     	336

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::UserDefinedType" @18

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2428, 2608)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@18

+			location   	(2228, 2533)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	400

+			justify    	0

+			label      	"UserDefinedType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3EDF9E8100EB"

+		    width      	418

+		    height     	174

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Constraints::Assertion" @19

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1270, 2734)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@19

+			location   	(1101, 2656)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	338

+			justify    	0

+			label      	"Assertion")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3ED524BC0165"

+		    width      	356

+		    height     	180

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::CharacterSet" @20

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    location   	(2405, 2908)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@20

+			location   	(2126, 2754)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	558

+			justify    	0

+			label      	"CharacterSet")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3F25755001A0"

+		    compartment 	(object Compartment

+			Parent_View 	@20

+			location   	(2126, 2859)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	TRUE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	4

+			max_width  	481)

+		    width      	576

+		    height     	332

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Routines::Routine" @21

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1281, 2970)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@21

+			location   	(1151, 2895)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	260

+			justify    	0

+			label      	"Routine")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3F3D36420226"

+		    width      	278

+		    height     	174

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Tables::Table" @22

+		    ShowCompartmentStereotypes 	TRUE

+		    location   	(2385, 2145)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@22

+			location   	(2273, 2071)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	224

+			justify    	0

+			label      	"Table")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3E9B1FB60047"

+		    width      	242

+		    height     	172

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Tables::Trigger" @23

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2392, 2381)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@23

+			location   	(2276, 2306)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	232

+			justify    	0

+			label      	"Trigger")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3ED7B9780253"

+		    width      	250

+		    height     	174

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Constraints::Index" @24

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1257, 2495)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@24

+			location   	(1059, 2417)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	396

+			justify    	0

+			label      	"Index")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3FA7FB2B02AA"

+		    width      	414

+		    height     	180

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::AccessControl::AuthorizationIdentifier" @25

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1239, 2261)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@25

+			location   	(985, 2187)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	508

+			justify    	0

+			label      	"AuthorizationIdentifier")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"407D7FA3017A"

+		    width      	526

+		    height     	172

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Schema::Database" @26

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    location   	(673, 1548)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@26

+			location   	(484, 1442)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	378

+			justify    	0

+			label      	"Database")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3FFDB2AD0234"

+		    compartment 	(object Compartment

+			Parent_View 	@26

+			location   	(484, 1503)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	3

+			max_width  	328)

+		    width      	396

+		    height     	236

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "" @27

+		    location   	(523, 2162)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"407D841002EC"

+		    roleview_list 	(list RoleViews

+			(object RoleView "" @28

+			    Parent_View 	@27

+			    location   	(8, 1121)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @29

+				Parent_View 	@28

+				location   	(565, 1765)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				hidden     	TRUE

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	450

+				justify    	0

+				label      	""

+				pctDist    	0.800000

+				height     	42

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"407D84150068"

+			    client     	@27

+			    supplier   	@26

+			    line_style 	3

+			    origin_attachment 	(523, 2162)

+			    terminal_attachment 	(523, 1666)

+			    label      	(object SegLabel @30

+				Parent_View 	@28

+				location   	(457, 3495)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	-2.688172

+				height     	67

+				orientation 	0))

+			(object RoleView "authorizationIds" @31

+			    Parent_View 	@27

+			    location   	(8, 1121)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @32

+				Parent_View 	@31

+				location   	(760, 2269)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	313

+				justify    	0

+				label      	"+authorizationIds"

+				pctDist    	0.579853

+				height     	47

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"407D8415005E"

+			    client     	@27

+			    supplier   	@25

+			    vertices   	(list Points

+				(523, 2162)

+				(523, 2222)

+				(976, 2222))

+			    line_style 	3

+			    origin_attachment 	(523, 2162)

+			    terminal_attachment 	(976, 2222)

+			    label      	(object SegLabel @33

+				Parent_View 	@31

+				location   	(822, 2170)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.702128

+				height     	53

+				orientation 	0))))

+		(object AssociationViewNew "$UNNAMED$17" @34

+		    location   	(279, 1492)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4410AB1D0306"

+		    roleview_list 	(list RoleViews

+			(object RoleView "events" @35

+			    Parent_View 	@34

+			    location   	(-793, -58)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @36

+				Parent_View 	@35

+				location   	(361, 1268)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	144

+				justify    	0

+				label      	"-events"

+				pctDist    	0.862963

+				height     	82

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4410AB1F0088"

+			    client     	@34

+			    supplier   	@17

+			    line_style 	3

+			    origin_attachment 	(279, 1492)

+			    terminal_attachment 	(279, 1232)

+			    label      	(object SegLabel @37

+				Parent_View 	@35

+				location   	(233, 1271)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.851852

+				height     	47

+				orientation 	0))

+			(object RoleView "$UNNAMED$18" @38

+			    Parent_View 	@34

+			    location   	(-793, -58)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4410AB1F0092"

+			    client     	@34

+			    supplier   	@26

+			    vertices   	(list Points

+				(279, 1492)

+				(279, 1555)

+				(475, 1555))

+			    line_style 	3

+			    origin_attachment 	(279, 1492)

+			    terminal_attachment 	(475, 1555)

+			    label      	(object SegLabel @39

+				Parent_View 	@38

+				location   	(449, 1609)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.900000

+				height     	54

+				orientation 	1))))

+		(object ClassView "Class" "Logical View::SQLModel::Schema::Schema" @40

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1826, 1578)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@40

+			location   	(1713, 1406)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	226

+			justify    	0

+			label      	"Schema")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3ED523C20089"

+		    width      	244

+		    height     	369

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "" @41

+		    location   	(1879, 2341)

+		    stereotype 	TRUE

+		    line_color 	255

+		    quidu      	"3F33AD6002DA"

+		    roleview_list 	(list RoleViews

+			(object RoleView "schema" @42

+			    Parent_View 	@41

+			    location   	(1423, 835)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F33AD62006A"

+			    client     	@41

+			    supplier   	@40

+			    line_style 	3

+			    origin_attachment 	(1879, 2341)

+			    terminal_attachment 	(1879, 1762)

+			    label      	(object SegLabel @43

+				Parent_View 	@42

+				location   	(1896, 1835)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.873805

+				height     	17

+				orientation 	1))

+			(object RoleView "userDefinedTypes" @44

+			    Parent_View 	@41

+			    location   	(1423, 835)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @45

+				Parent_View 	@44

+				location   	(2045, 2612)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	334

+				justify    	0

+				label      	"-userDefinedTypes"

+				pctDist    	0.700000

+				height     	31

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F33AD62005A"

+			    client     	@41

+			    supplier   	@18

+			    vertices   	(list Points

+				(1879, 2341)

+				(1879, 2581)

+				(2219, 2581))

+			    line_style 	3

+			    origin_attachment 	(1879, 2341)

+			    terminal_attachment 	(2219, 2581)

+			    label      	(object SegLabel @46

+				Parent_View 	@44

+				location   	(2172, 2543)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	80

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.919694

+				height     	39

+				orientation 	0))))

+		(object AssociationViewNew "" @47

+		    location   	(1764, 2390)

+		    stereotype 	TRUE

+		    line_color 	255

+		    quidu      	"3F26B1ED0231"

+		    roleview_list 	(list RoleViews

+			(object RoleView "schema" @48

+			    Parent_View 	@47

+			    location   	(-458, 690)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F26B1EF0330"

+			    client     	@47

+			    supplier   	@40

+			    line_style 	3

+			    origin_attachment 	(1764, 2390)

+			    terminal_attachment 	(1764, 1761)

+			    label      	(object SegLabel @49

+				Parent_View 	@48

+				location   	(1821, 1834)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.884826

+				height     	57

+				orientation 	1))

+			(object RoleView "assertions" @50

+			    Parent_View 	@47

+			    location   	(-458, 690)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @51

+				Parent_View 	@50

+				location   	(1574, 2737)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	212

+				justify    	0

+				label      	"-assertions"

+				pctDist    	0.800731

+				height     	35

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F26B1EF032E"

+			    client     	@47

+			    supplier   	@19

+			    vertices   	(list Points

+				(1764, 2390)

+				(1764, 2702)

+				(1448, 2702))

+			    line_style 	3

+			    origin_attachment 	(1764, 2390)

+			    terminal_attachment 	(1448, 2702)

+			    label      	(object SegLabel @52

+				Parent_View 	@50

+				location   	(1501, 2667)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	80

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.915905

+				height     	36

+				orientation 	1))))

+		(object AssociationViewNew "" @53

+		    location   	(1841, 2446)

+		    stereotype 	TRUE

+		    line_color 	255

+		    quidu      	"3F33AE7E01DB"

+		    roleview_list 	(list RoleViews

+			(object RoleView "schema" @54

+			    Parent_View 	@53

+			    location   	(1400, 171)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F33AE7F0083"

+			    client     	@53

+			    supplier   	@40

+			    line_style 	3

+			    origin_attachment 	(1841, 2446)

+			    terminal_attachment 	(1841, 1761)

+			    label      	(object SegLabel @55

+				Parent_View 	@54

+				location   	(1850, 1829)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.902077

+				height     	9

+				orientation 	1))

+			(object RoleView "charSets" @56

+			    Parent_View 	@53

+			    location   	(1400, 171)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @57

+				Parent_View 	@56

+				location   	(2022, 2890)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	279

+				justify    	0

+				label      	"-charSets"

+				pctDist    	0.861813

+				height     	36

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F33AE7F0073"

+			    client     	@53

+			    supplier   	@20

+			    vertices   	(list Points

+				(1841, 2446)

+				(1841, 2854)

+				(2117, 2854))

+			    line_style 	3

+			    origin_attachment 	(1841, 2446)

+			    terminal_attachment 	(2117, 2854)

+			    label      	(object SegLabel @58

+				Parent_View 	@56

+				location   	(2048, 2819)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	80

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.898960

+				height     	36

+				orientation 	0))))

+		(object AssociationViewNew "" @59

+		    location   	(1801, 2550)

+		    stereotype 	TRUE

+		    line_color 	255

+		    quidu      	"3F4E92E4031A"

+		    roleview_list 	(list RoleViews

+			(object RoleView "schema" @60

+			    Parent_View 	@59

+			    location   	(1310, 325)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F4E92E502FE"

+			    client     	@59

+			    supplier   	@40

+			    line_style 	3

+			    origin_attachment 	(1801, 2550)

+			    terminal_attachment 	(1801, 1762)

+			    label      	(object SegLabel @61

+				Parent_View 	@60

+				location   	(1785, 1835)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.908430

+				height     	17

+				orientation 	0))

+			(object RoleView "routines" @62

+			    Parent_View 	@59

+			    location   	(1310, 325)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @63

+				Parent_View 	@62

+				location   	(1522, 2994)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	168

+				justify    	0

+				label      	"-routines"

+				pctDist    	0.870640

+				height     	37

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F4E92E502F3"

+			    client     	@59

+			    supplier   	@21

+			    vertices   	(list Points

+				(1801, 2550)

+				(1801, 2957)

+				(1420, 2957))

+			    line_style 	3

+			    origin_attachment 	(1801, 2550)

+			    terminal_attachment 	(1420, 2957)

+			    label      	(object SegLabel @64

+				Parent_View 	@62

+				location   	(1476, 2934)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	80

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.930233

+				height     	24

+				orientation 	1))))

+		(object AssociationViewNew "$UNNAMED$4" @65

+		    location   	(2108, 1849)

+		    font       	(object Font

+			size       	12

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	255

+		    quidu      	"3F4BB65C00FC"

+		    roleview_list 	(list RoleViews

+			(object RoleView "tables" @66

+			    Parent_View 	@65

+			    location   	(1660, 1049)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @67

+				Parent_View 	@66

+				location   	(2193, 2151)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	134

+				justify    	0

+				label      	"-tables"

+				pctDist    	0.831382

+				height     	36

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F4BB65D0085"

+			    client     	@65

+			    supplier   	@22

+			    vertices   	(list Points

+				(2108, 1849)

+				(2108, 2115)

+				(2264, 2115))

+			    line_style 	3

+			    origin_attachment 	(2108, 1849)

+			    terminal_attachment 	(2264, 2115)

+			    label      	(object SegLabel @68

+				Parent_View 	@66

+				location   	(2194, 2087)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	80

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.836493

+				height     	29

+				orientation 	0))

+			(object RoleView "schema" @69

+			    Parent_View 	@65

+			    location   	(1660, 1049)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F4BB65D0099"

+			    client     	@65

+			    supplier   	@40

+			    vertices   	(list Points

+				(2108, 1849)

+				(2108, 1588)

+				(1948, 1588))

+			    line_style 	3

+			    origin_attachment 	(2108, 1849)

+			    terminal_attachment 	(1948, 1588)

+			    label      	(object SegLabel @70

+				Parent_View 	@69

+				location   	(2023, 1621)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.820717

+				height     	33

+				orientation 	0))))

+		(object AssociationViewNew "" @71

+		    location   	(1914, 2231)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	255

+		    quidu      	"3FA723C6004D"

+		    roleview_list 	(list RoleViews

+			(object RoleView "triggers" @72

+			    Parent_View 	@71

+			    location   	(936, 963)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @73

+				Parent_View 	@72

+				location   	(2181, 2379)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	174

+				justify    	0

+				label      	"+triggers"

+				pctDist    	0.817844

+				height     	32

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3FA723C70243"

+			    client     	@71

+			    supplier   	@23

+			    vertices   	(list Points

+				(1914, 2231)

+				(1914, 2347)

+				(2267, 2347))

+			    line_style 	3

+			    origin_attachment 	(1914, 2231)

+			    terminal_attachment 	(2267, 2347)

+			    label      	(object SegLabel @74

+				Parent_View 	@72

+				location   	(2202, 2319)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.862069

+				height     	29

+				orientation 	0))

+			(object RoleView "schema" @75

+			    Parent_View 	@71

+			    location   	(936, 963)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3FA723C70257"

+			    client     	@71

+			    supplier   	@40

+			    line_style 	3

+			    origin_attachment 	(1914, 2231)

+			    terminal_attachment 	(1914, 1762)

+			    label      	(object SegLabel @76

+				Parent_View 	@75

+				location   	(1937, 1848)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.818653

+				height     	23

+				orientation 	1))))

+		(object AssociationViewNew "" @77

+		    location   	(1719, 2248)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	255

+		    quidu      	"3FA7FEAE0028"

+		    roleview_list 	(list RoleViews

+			(object RoleView "" @78

+			    Parent_View 	@77

+			    location   	(1260, -87)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3FA7FEAF0336"

+			    client     	@77

+			    supplier   	@40

+			    line_style 	3

+			    origin_attachment 	(1719, 2248)

+			    terminal_attachment 	(1719, 1761)

+			    label      	(object SegLabel @79

+				Parent_View 	@78

+				location   	(1745, 1829)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.863039

+				height     	26

+				orientation 	1))

+			(object RoleView "indices" @80

+			    Parent_View 	@77

+			    location   	(1260, -87)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @81

+				Parent_View 	@80

+				location   	(1569, 2515)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	154

+				justify    	0

+				label      	"+indices"

+				pctDist    	0.783715

+				height     	36

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3FA7FEAF0340"

+			    client     	@77

+			    supplier   	@24

+			    vertices   	(list Points

+				(1719, 2248)

+				(1719, 2479)

+				(1464, 2479))

+			    line_style 	3

+			    origin_attachment 	(1719, 2248)

+			    terminal_attachment 	(1464, 2479)

+			    label      	(object SegLabel @82

+				Parent_View 	@80

+				location   	(1517, 2456)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.890585

+				height     	24

+				orientation 	1))))

+		(object AssociationViewNew "" @83

+		    location   	(1607, 1991)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"407D83950281"

+		    roleview_list 	(list RoleViews

+			(object RoleView "ownedSchema" @84

+			    Parent_View 	@83

+			    location   	(1092, 950)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @85

+				Parent_View 	@84

+				location   	(1742, 1790)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	297

+				justify    	0

+				label      	"+ownedSchema"

+				pctDist    	1.109375

+				height     	55

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"407D839802B8"

+			    client     	@83

+			    supplier   	@40

+			    vertices   	(list Points

+				(1607, 1991)

+				(1607, 1735)

+				(1704, 1735))

+			    line_style 	3

+			    origin_attachment 	(1607, 1991)

+			    terminal_attachment 	(1704, 1735)

+			    label      	(object SegLabel @86

+				Parent_View 	@84

+				location   	(1661, 1767)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.880682

+				height     	32

+				orientation 	1))

+			(object RoleView "owner" @87

+			    Parent_View 	@83

+			    location   	(1092, 950)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @88

+				Parent_View 	@87

+				location   	(1579, 2273)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	140

+				justify    	0

+				label      	"+owner"

+				pctDist    	0.781250

+				height     	33

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"407D839802AE"

+			    client     	@83

+			    supplier   	@25

+			    vertices   	(list Points

+				(1607, 1991)

+				(1607, 2240)

+				(1502, 2240))

+			    line_style 	3

+			    origin_attachment 	(1607, 1991)

+			    terminal_attachment 	(1502, 2240)

+			    label      	(object SegLabel @89

+				Parent_View 	@87

+				location   	(1551, 2218)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.861905

+				height     	23

+				orientation 	1))))

+		(object AssociationViewNew "$UNNAMED$14" @90

+		    location   	(1287, 1597)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3FFDB31400A1"

+		    roleview_list 	(list RoleViews

+			(object RoleView "schemas" @91

+			    Parent_View 	@90

+			    location   	(1002, 206)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @92

+				Parent_View 	@91

+				location   	(1599, 1569)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	207

+				justify    	0

+				label      	"+schemas"

+				pctDist    	0.750600

+				height     	29

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3FFDB3150034"

+			    client     	@90

+			    supplier   	@40

+			    line_style 	3

+			    origin_attachment 	(1287, 1597)

+			    terminal_attachment 	(1704, 1597)

+			    label      	(object SegLabel @93

+				Parent_View 	@91

+				location   	(1655, 1632)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.882494

+				height     	35

+				orientation 	1))

+			(object RoleView "database" @94

+			    Parent_View 	@90

+			    location   	(1002, 206)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @95

+				Parent_View 	@94

+				location   	(1006, 1551)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	192

+				justify    	0

+				label      	"+database"

+				pctDist    	0.674286

+				height     	47

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3FFDB315007B"

+			    client     	@90

+			    supplier   	@26

+			    line_style 	3

+			    origin_attachment 	(1287, 1597)

+			    terminal_attachment 	(871, 1597)

+			    label      	(object SegLabel @96

+				Parent_View 	@94

+				location   	(914, 1651)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.900000

+				height     	54

+				orientation 	0))))

+		(object ClassView "Class" "Logical View::SQLModel::Schema::Catalog" @97

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1295, 1449)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@97

+			location   	(1194, 1398)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	202

+			justify    	0

+			label      	"Catalog")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"44F8C6C60057"

+		    width      	220

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$21" @98

+		    location   	(1028, 1450)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"44F8C6F70288"

+		    roleview_list 	(list RoleViews

+			(object RoleView "catalogs" @99

+			    Parent_View 	@98

+			    location   	(48, -99)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @100

+				Parent_View 	@99

+				location   	(1068, 1418)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	180

+				justify    	0

+				label      	"+catalogs"

+				pctDist    	0.257576

+				height     	33

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"44F8C6F803CA"

+			    client     	@98

+			    supplier   	@97

+			    line_style 	3

+			    origin_attachment 	(1028, 1450)

+			    terminal_attachment 	(1185, 1450)

+			    label      	(object SegLabel @101

+				Parent_View 	@99

+				location   	(1123, 1482)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.606061

+				height     	32

+				orientation 	1))

+			(object RoleView "$UNNAMED$22" @102

+			    Parent_View 	@98

+			    location   	(48, -99)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"44F8C6F803D4"

+			    client     	@98

+			    supplier   	@26

+			    line_style 	3

+			    origin_attachment 	(1028, 1450)

+			    terminal_attachment 	(871, 1450)

+			    label      	(object SegLabel @103

+				Parent_View 	@102

+				location   	(888, 1504)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.900000

+				height     	54

+				orientation 	0))))

+		(object AssociationViewNew "$UNNAMED$23" @104

+		    location   	(1554, 1457)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"44F8C82E037F"

+		    roleview_list 	(list RoleViews

+			(object RoleView "schemas" @105

+			    Parent_View 	@104

+			    location   	(259, 8)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @106

+				Parent_View 	@105

+				location   	(1599, 1421)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	207

+				justify    	0

+				label      	"+schemas"

+				pctDist    	0.300000

+				height     	37

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"44F8C8300057"

+			    client     	@104

+			    supplier   	@40

+			    line_style 	3

+			    origin_attachment 	(1554, 1457)

+			    terminal_attachment 	(1704, 1457)

+			    label      	(object SegLabel @107

+				Parent_View 	@105

+				location   	(1656, 1489)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.680000

+				height     	32

+				orientation 	1))

+			(object RoleView "$UNNAMED$24" @108

+			    Parent_View 	@104

+			    location   	(259, 8)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"44F8C8300061"

+			    client     	@104

+			    supplier   	@97

+			    line_style 	3

+			    origin_attachment 	(1554, 1457)

+			    terminal_attachment 	(1405, 1457)

+			    label      	(object SegLabel @109

+				Parent_View 	@108

+				location   	(1420, 1511)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.900000

+				height     	54

+				orientation 	0))))

+		(object ClassView "Class" "Logical View::SQLModel::Schema::SQLObject" @110

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    location   	(1997, 1094)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@110

+			location   	(1765, 988)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	464

+			justify    	0

+			label      	"SQLObject")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3E9B3EB5002B"

+		    compartment 	(object Compartment

+			Parent_View 	@110

+			location   	(1765, 1049)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	TRUE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	3

+			max_width  	400)

+		    width      	482

+		    height     	236

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritTreeView "" @111

+		    location   	(2043, 1312)

+		    line_color 	16711680

+		    fill_color 	13434879

+		    supplier   	@110

+		    vertices   	(list Points

+			(2043, 1312)

+			(2043, 1212)))

+		(object AssociationViewNew "" @112

+		    location   	(2450, 1159)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object SegLabel @113

+			Parent_View 	@112

+			location   	(2387, 1125)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	TRUE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			hidden     	TRUE

+			anchor     	1

+			anchor_loc 	1

+			nlines     	1

+			max_width  	60

+			justify    	0

+			label      	""

+			pctDist    	-0.550000

+			height     	34

+			orientation 	0)

+		    stereotype 	TRUE

+		    quidu      	"3FA7F6B60080"

+		    roleview_list 	(list RoleViews

+			(object RoleView "dependencies" @114

+			    Parent_View 	@112

+			    location   	(1425, 419)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @115

+				Parent_View 	@114

+				location   	(2670, 1347)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	282

+				justify    	0

+				label      	"+dependencies"

+				pctDist    	0.831502

+				height     	160

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3FA7F6BA0067"

+			    client     	@112

+			    supplier   	@9

+			    vertices   	(list Points

+				(2450, 1159)

+				(2510, 1159)

+				(2510, 1397))

+			    line_style 	3

+			    origin_attachment 	(2450, 1159)

+			    terminal_attachment 	(2510, 1397)

+			    label      	(object SegLabel @116

+				Parent_View 	@114

+				location   	(2456, 1347)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.832244

+				height     	55

+				orientation 	1))

+			(object RoleView "" @117

+			    Parent_View 	@112

+			    location   	(1425, 419)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3FA7F6BA0069"

+			    client     	@112

+			    supplier   	@110

+			    line_style 	3

+			    origin_attachment 	(2450, 1159)

+			    terminal_attachment 	(2238, 1159)

+			    label      	(object SegLabel @118

+				Parent_View 	@117

+				location   	(2259, 1106)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.900000

+				height     	54

+				orientation 	1))))

+		(object InheritView "" @119

+		    stereotype 	TRUE

+		    line_color 	16711680

+		    quidu      	"3F967CC7023A"

+		    client     	@9

+		    supplier   	@110

+		    line_style 	3

+		    origin_attachment 	(2367, 1397)

+		    terminal_attachment 	(2367, 1312)

+		    drawSupplier 	@111)

+		(object InheritView "" @120

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3FB0FE5501DD"

+		    client     	@110

+		    supplier   	@2

+		    line_style 	3

+		    origin_attachment 	(1988, 975)

+		    terminal_attachment 	(1988, 856))

+		(object InheritView "" @121

+		    stereotype 	TRUE

+		    line_color 	16711680

+		    quidu      	"4410AA020056"

+		    client     	@17

+		    supplier   	@110

+		    line_style 	3

+		    origin_attachment 	(590, 1232)

+		    terminal_attachment 	(590, 1312)

+		    drawSupplier 	@111)

+		(object AssociationViewNew "$UNNAMED$19" @122

+		    location   	(1219, 1060)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"44F8C4C10071"

+		    roleview_list 	(list RoleViews

+			(object RoleView "comments" @123

+			    Parent_View 	@122

+			    location   	(-778, -34)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @124

+				Parent_View 	@123

+				location   	(1076, 842)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	228

+				justify    	0

+				label      	"+comments"

+				pctDist    	0.908922

+				height     	128

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"44F8C4C2019F"

+			    client     	@122

+			    supplier   	@16

+			    vertices   	(list Points

+				(1219, 1060)

+				(948, 1060)

+				(948, 793))

+			    line_style 	3

+			    origin_attachment 	(1219, 1060)

+			    terminal_attachment 	(948, 793)

+			    label      	(object SegLabel @125

+				Parent_View 	@123

+				location   	(893, 836)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.920074

+				height     	55

+				orientation 	0))

+			(object RoleView "$UNNAMED$20" @126

+			    Parent_View 	@122

+			    location   	(-778, -34)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @127

+				Parent_View 	@126

+				location   	(1540, 1024)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				hidden     	TRUE

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	228

+				justify    	0

+				label      	""

+				pctDist    	0.596970

+				height     	37

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"44F8C4C201A9"

+			    client     	@122

+			    supplier   	@110

+			    line_style 	3

+			    origin_attachment 	(1219, 1060)

+			    terminal_attachment 	(1756, 1060)

+			    label      	(object SegLabel @128

+				Parent_View 	@126

+				location   	(1702, 1114)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.900000

+				height     	54

+				orientation 	1))))

+		(object InheritView "" @129

+		    stereotype 	TRUE

+		    line_color 	16711680

+		    quidu      	"3FFDB2FD0026"

+		    client     	@26

+		    supplier   	@110

+		    line_style 	3

+		    origin_attachment 	(674, 1430)

+		    terminal_attachment 	(674, 1312)

+		    drawSupplier 	@111)

+		(object InheritView "" @130

+		    stereotype 	TRUE

+		    line_color 	16711680

+		    quidu      	"44F8C6E102B8"

+		    client     	@97

+		    supplier   	@110

+		    line_style 	3

+		    origin_attachment 	(1293, 1386)

+		    terminal_attachment 	(1293, 1312)

+		    drawSupplier 	@111)

+		(object InheritView "" @131

+		    stereotype 	TRUE

+		    line_color 	16711680

+		    quidu      	"3ED52ED402B8"

+		    client     	@40

+		    supplier   	@110

+		    line_style 	3

+		    origin_attachment 	(1816, 1394)

+		    terminal_attachment 	(1816, 1312)

+		    drawSupplier 	@111)

+		(object ClassView "Class" "Logical View::SQLModel::Schema::ObjectExtension" @132

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2561, 587)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@132

+			location   	(2368, 558)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	386

+			justify    	0

+			label      	"ObjectExtension")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@132

+			location   	(2368, 508)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	386

+			justify    	0

+			label      	"<<Interface>>")

+		    icon       	"Interface"

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4B74B5300380"

+		    width      	404

+		    height     	182

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$25" @133

+		    location   	(2560, 974)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4B74B5570250"

+		    roleview_list 	(list RoleViews

+			(object RoleView "extensions" @134

+			    Parent_View 	@133

+			    location   	(563, -120)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @135

+				Parent_View 	@134

+				location   	(2691, 725)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	228

+				justify    	0

+				label      	"+extensions"

+				pctDist    	0.841216

+				height     	131

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4B74B55A036D"

+			    client     	@133

+			    supplier   	@132

+			    line_style 	3

+			    origin_attachment 	(2560, 974)

+			    terminal_attachment 	(2560, 678)

+			    label      	(object SegLabel @136

+				Parent_View 	@134

+				location   	(2507, 725)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.841216

+				height     	53

+				orientation 	0))

+			(object RoleView "$UNNAMED$26" @137

+			    Parent_View 	@133

+			    location   	(563, -120)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"4B74B55A0377"

+			    client     	@133

+			    supplier   	@110

+			    vertices   	(list Points

+				(2560, 974)

+				(2560, 1034)

+				(2238, 1034))

+			    line_style 	3

+			    origin_attachment 	(2560, 974)

+			    terminal_attachment 	(2238, 1034)

+			    label      	(object SegLabel @138

+				Parent_View 	@137

+				location   	(2259, 976)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.946210

+				height     	59

+				orientation 	1))))))

+	(object ClassDiagram "TypedElement"

+	    quid       	"3FA6B9AC0176"

+	    title      	"TypedElement"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	341

+	    origin_y   	1519

+	    items      	(list diagram_item_list

+		(object ClassView "Class" "Logical View::SQLModel::Schema::SQLObject" @139

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    location   	(1422, 434)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@139

+			location   	(1190, 328)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	464

+			justify    	0

+			label      	"SQLObject")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3E9B3EB5002B"

+		    compartment 	(object Compartment

+			Parent_View 	@139

+			location   	(1190, 389)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	TRUE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	3

+			max_width  	391)

+		    width      	482

+		    height     	236

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::UserDefinedType" @140

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2383, 912)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@140

+			location   	(2183, 837)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	400

+			justify    	0

+			label      	"UserDefinedType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3EDF9E8100EB"

+		    width      	418

+		    height     	174

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Schema::TypedElement" @141

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1423, 903)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@141

+			location   	(1243, 797)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	360

+			justify    	0

+			label      	"TypedElement")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3FA6A8930071"

+		    width      	378

+		    height     	236

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$9" @142

+		    location   	(1893, 903)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3FA288AA03BD"

+		    roleview_list 	(list RoleViews

+			(object RoleView "$UNNAMED$10" @143

+			    Parent_View 	@142

+			    location   	(265, -656)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @144

+				Parent_View 	@143

+				location   	(1668, 862)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				hidden     	TRUE

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	450

+				justify    	0

+				label      	""

+				pctDist    	0.800000

+				height     	42

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3FA288AB03BF"

+			    client     	@142

+			    supplier   	@141

+			    line_style 	3

+			    origin_attachment 	(1893, 903)

+			    terminal_attachment 	(1612, 903))

+			(object RoleView "referencedType" @145

+			    Parent_View 	@142

+			    location   	(265, -656)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @146

+				Parent_View 	@145

+				location   	(2004, 856)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	316

+				justify    	0

+				label      	"+referencedType"

+				pctDist    	0.397887

+				height     	48

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3FA288AB03B5"

+			    client     	@142

+			    supplier   	@140

+			    line_style 	3

+			    origin_attachment 	(1893, 903)

+			    terminal_attachment 	(2174, 903)

+			    label      	(object SegLabel @147

+				Parent_View 	@145

+				location   	(2110, 941)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..1"

+				pctDist    	0.771127

+				height     	38

+				orientation 	1))))

+		(object InheritView "" @148

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3FA6A8DF0200"

+		    client     	@141

+		    supplier   	@139

+		    line_style 	3

+		    origin_attachment 	(1438, 784)

+		    terminal_attachment 	(1438, 552))

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::SQLDataType" @149

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(604, 905)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@149

+			location   	(439, 831)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	330

+			justify    	0

+			label      	"SQLDataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3FB90EE3009E"

+		    width      	348

+		    height     	172

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$7" @150

+		    location   	(1006, 897)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3FA286420050"

+		    roleview_list 	(list RoleViews

+			(object RoleView "$UNNAMED$8" @151

+			    Parent_View 	@150

+			    location   	(625, -847)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @152

+				Parent_View 	@151

+				location   	(1187, 856)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				hidden     	TRUE

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	450

+				justify    	0

+				label      	""

+				pctDist    	0.800000

+				height     	42

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3FA2864203AE"

+			    client     	@150

+			    supplier   	@141

+			    line_style 	3

+			    origin_attachment 	(1006, 897)

+			    terminal_attachment 	(1234, 897))

+			(object RoleView "containedType" @153

+			    Parent_View 	@150

+			    location   	(625, -847)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @154

+				Parent_View 	@153

+				location   	(948, 846)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	296

+				justify    	0

+				label      	"+containedType"

+				pctDist    	0.255411

+				height     	52

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3FA2864203A4"

+			    client     	@150

+			    supplier   	@149

+			    line_style 	3

+			    origin_attachment 	(1006, 897)

+			    terminal_attachment 	(778, 897)

+			    label      	(object SegLabel @155

+				Parent_View 	@153

+				location   	(856, 951)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..1"

+				pctDist    	0.660736

+				height     	54

+				orientation 	0))))

+		(object Label @156

+		    location   	(1025, 938)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    nlines     	1

+		    max_width  	100

+		    label      	"{xor}")

+		(object AttachView "" @157

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@150

+		    supplier   	@142

+		    vertices   	(list Points

+			(1007, 896)

+			(1007, 1124)

+			(1878, 1124)

+			(1875, 1124)

+			(1875, 903))

+		    line_style 	3

+		    origin_attachment 	(1007, 896)

+		    terminal_attachment 	(1892, 903))

+		(object ClassView "Class" "Logical View::SQLModel::Schema::Sequence" @158

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1675, 1322)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@158

+			location   	(1550, 1271)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	250

+			justify    	0

+			label      	"Sequence")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3FABF02B03CD"

+		    width      	268

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @159

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3FABF052024A"

+		    client     	@158

+		    supplier   	@141

+		    line_style 	3

+		    origin_attachment 	(1573, 1259)

+		    terminal_attachment 	(1573, 1020))

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::AttributeDefinition" @160

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(922, 1687)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@160

+			location   	(506, 1533)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	832

+			justify    	0

+			label      	"AttributeDefinition")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F54EF2F0194"

+		    width      	850

+		    height     	332

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @161

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3FA6AA01002E"

+		    client     	@160

+		    supplier   	@141

+		    line_style 	3

+		    origin_attachment 	(1293, 1520)

+		    terminal_attachment 	(1293, 1020))

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::Field" @162

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(832, 1338)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@162

+			location   	(416, 1209)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	832

+			justify    	0

+			label      	"Field")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3ED24C4E001D"

+		    width      	850

+		    height     	282

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @163

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3ED2511800EF"

+		    client     	@162

+		    supplier   	@141

+		    line_style 	3

+		    origin_attachment 	(1244, 1197)

+		    terminal_attachment 	(1244, 1021))

+		(object ClassView "Class" "Logical View::SQLModel::Routines::Parameter" @164

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1759, 1718)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@164

+			location   	(1478, 1589)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	562

+			justify    	0

+			label      	"Parameter")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F3D3B0F022D"

+		    width      	580

+		    height     	282

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @165

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3F3D3EDF00A0"

+		    client     	@164

+		    supplier   	@141

+		    line_style 	3

+		    origin_attachment 	(1494, 1577)

+		    terminal_attachment 	(1494, 1021))

+		(object ClassView "Class" "Logical View::SQLModel::Tables::Column" @166

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(959, 2228)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@166

+			location   	(381, 1949)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	1156

+			justify    	0

+			label      	"Column")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3E9B2AFF0392"

+		    width      	1174

+		    height     	582

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @167

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3FA6A8C500EB"

+		    client     	@166

+		    supplier   	@141

+		    line_style 	3

+		    origin_attachment 	(1393, 1937)

+		    terminal_attachment 	(1393, 1020))))

+	(object ClassDiagram "Sequence"

+	    quid       	"3FABF03E010C"

+	    title      	"Sequence"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	84

+	    origin_y   	1356

+	    items      	(list diagram_item_list

+		(object ClassView "Class" "Logical View::SQLModel::Schema::TypedElement" @168

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1166, 308)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@168

+			location   	(986, 202)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	360

+			justify    	0

+			label      	"TypedElement")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3FA6A8930071"

+		    width      	378

+		    height     	236

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Schema::IdentitySpecifier" @169

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1353, 1208)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@169

+			location   	(989, 1002)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	728

+			justify    	0

+			label      	"IdentitySpecifier")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3EA3F30101D3"

+		    width      	746

+		    height     	436

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Schema::Sequence" @170

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1174, 671)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@170

+			location   	(1048, 620)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	252

+			justify    	0

+			label      	"Sequence")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3FABF02B03CD"

+		    width      	270

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @171

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3FABF052024A"

+		    client     	@170

+		    supplier   	@168

+		    line_style 	3

+		    origin_attachment 	(1177, 608)

+		    terminal_attachment 	(1177, 426))

+		(object AssociationViewNew "$UNNAMED$11" @172

+		    location   	(1181, 862)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    quidu      	"3FABF06600AC"

+		    roleview_list 	(list RoleViews

+			(object RoleView "identity" @173

+			    Parent_View 	@172

+			    location   	(-225, -300)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @174

+				Parent_View 	@173

+				location   	(1043, 958)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	180

+				justify    	0

+				label      	"+identity"

+				pctDist    	0.752688

+				height     	139

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3FABF067022A"

+			    client     	@172

+			    supplier   	@169

+			    line_style 	3

+			    origin_attachment 	(1181, 862)

+			    terminal_attachment 	(1181, 990)

+			    label      	(object SegLabel @175

+				Parent_View 	@173

+				location   	(1235, 977)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.900000

+				height     	54

+				orientation 	0))

+			(object RoleView "$UNNAMED$12" @176

+			    Parent_View 	@172

+			    location   	(-225, -300)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @177

+				Parent_View 	@176

+				location   	(1043, 773)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				hidden     	TRUE

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	180

+				justify    	0

+				label      	""

+				pctDist    	0.698925

+				height     	139

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3FABF0670234"

+			    client     	@172

+			    supplier   	@170

+			    line_style 	3

+			    origin_attachment 	(1181, 862)

+			    terminal_attachment 	(1181, 734)

+			    label      	(object SegLabel @178

+				Parent_View 	@176

+				location   	(1265, 756)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..1"

+				pctDist    	0.827957

+				height     	84

+				orientation 	1))))

+		(object ClassView "Class" "Logical View::SQLModel::Schema::Schema" @179

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(418, 646)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@179

+			location   	(308, 595)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	220

+			justify    	0

+			label      	"Schema")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3ED523C20089"

+		    width      	238

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "$UNNAMED$13" @180

+		    location   	(788, 655)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	255

+		    quidu      	"3FABF07503B0"

+		    roleview_list 	(list RoleViews

+			(object RoleView "sequences" @181

+			    Parent_View 	@180

+			    location   	(400, -485)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @182

+				Parent_View 	@181

+				location   	(932, 615)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	230

+				justify    	0

+				label      	"+sequences"

+				pctDist    	0.571802

+				height     	41

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3FABF0770326"

+			    client     	@180

+			    supplier   	@170

+			    line_style 	3

+			    origin_attachment 	(788, 655)

+			    terminal_attachment 	(1039, 655)

+			    label      	(object SegLabel @183

+				Parent_View 	@181

+				location   	(994, 709)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.819843

+				height     	54

+				orientation 	1))

+			(object RoleView "schema" @184

+			    Parent_View 	@180

+			    location   	(400, -485)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @185

+				Parent_View 	@184

+				location   	(634, 620)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	179

+				justify    	0

+				label      	"+schema"

+				pctDist    	0.613546

+				height     	35

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3FABF0770328"

+			    client     	@180

+			    supplier   	@179

+			    line_style 	3

+			    origin_attachment 	(788, 655)

+			    terminal_attachment 	(537, 655)

+			    label      	(object SegLabel @186

+				Parent_View 	@184

+				location   	(562, 709)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.900000

+				height     	54

+				orientation 	0))))

+		(object ClassView "Class" "Logical View::SQLModel::Schema::GenerateType" @187

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(456, 1260)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@187

+			location   	(159, 1176)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	594

+			justify    	0

+			label      	"GenerateType")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@187

+			location   	(159, 1126)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	594

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	15329769

+		    quidu      	"3EA40DBD02B7"

+		    width      	612

+		    height     	292

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object NoteView @188

+		    location   	(459, 863)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@188

+			location   	(134, 798)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	615

+			label      	"generationType should always be ALWAYS_GENERATED")

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	675

+		    height     	143)

+		(object AttachView "" @189

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@188

+		    supplier   	@172

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLModel::Schema::SQLObject" @190

+		    ShowCompartmentStereotypes 	TRUE

+		    location   	(1866, 505)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@190

+			location   	(1728, 453)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	276

+			justify    	0

+			label      	"SQLObject")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3E9B3EB5002B"

+		    width      	294

+		    height     	128

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @191

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"421D5DD20094"

+		    client     	@169

+		    supplier   	@190

+		    vertices   	(list Points

+			(1575, 990)

+			(1575, 734)

+			(1869, 734)

+			(1869, 569))

+		    line_style 	3

+		    origin_attachment 	(1575, 990)

+		    terminal_attachment 	(1869, 569))))))

diff --git a/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel-Statements.cat b/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel-Statements.cat
new file mode 100644
index 0000000..7bc0eb0
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel-Statements.cat
@@ -0,0 +1,783 @@
+

+(object Petal

+    version    	47

+    _written   	"Rose 8.0.0303.1400"

+    charSet    	0)

+

+(object Class_Category "Statements"

+    is_unit    	TRUE

+    is_loaded  	TRUE

+    attributes 	(list Attribute_Set

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"packageName"

+	    value      	(value Text "statements"))

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"nsPrefix"

+	    value      	(value Text "SQLStatements"))

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"nsURI"

+	    value      	(value Text "http:///org/eclipse/datatools/modelbase/sql/statements.ecore"))

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"basePackage"

+	    value      	(value Text "org.eclipse.datatools.modelbase.sql"))

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"prefix"

+	    value      	(value Text "SQLStatements")))

+    quid       	"4047743B009B"

+    exportControl 	"Public"

+    logical_models 	(list unit_reference_list

+	(object Class "SQLStatement"

+	    quid       	"404908A2008B"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 4.33 SQL-statements"

+	    stereotype 	"Interface"

+	    operations 	(list Operations

+		(object Operation "getSQL"

+		    quid       	"404908F600A0"

+		    result     	"String"

+		    concurrency 	"Sequential"

+		    opExportControl 	"Public"

+		    uid        	0)

+		(object Operation "setSQL"

+		    quid       	"4193E07F0122"

+		    parameters 	(list Parameters

+			(object Parameter "sqlText"

+			    quid       	"4193E0F101F8"

+			    type       	"String"))

+		    result     	"void"

+		    concurrency 	"Sequential"

+		    opExportControl 	"Public"

+		    uid        	0)))

+	(object Class "SQLDataStatement"

+	    quid       	"4049092B0395"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 14 Data Manipulation"

+	    stereotype 	"Interface"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"404909FD03D3"

+		    supplier   	"Logical View::SQLModel::Statements::SQLStatement"

+		    quidu      	"404908A2008B")))

+	(object Class "SQLSchemaStatement"

+	    quid       	"404909440233"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 11 Schema definition and manipulation"

+	    stereotype 	"Interface"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"40490A0202A4"

+		    supplier   	"Logical View::SQLModel::Statements::SQLStatement"

+		    quidu      	"404908A2008B")))

+	(object Class "SQLControlStatement"

+	    quid       	"4049095A0220"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 15 Control statements"

+	    stereotype 	"Interface"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"40490A0B0315"

+		    supplier   	"Logical View::SQLModel::Statements::SQLStatement"

+		    quidu      	"404908A2008B")))

+	(object Class "SQLDataChangeStatement"

+	    quid       	"40490973001D"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 14 Data Manipulation"

+	    stereotype 	"Interface"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"40490A210226"

+		    supplier   	"Logical View::SQLModel::Statements::SQLDataStatement"

+		    quidu      	"4049092B0395")))

+	(object Class "SQLStatementDefault"

+	    quid       	"40490988012C"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"40490A6C0094"

+		    supplier   	"Logical View::SQLModel::Statements::SQLStatement"

+		    quidu      	"404908A2008B")

+		(object Inheritance_Relationship

+		    quid       	"40490AB50342"

+		    supplier   	"Logical View::SQLModel::Schema::SQLObject"

+		    quidu      	"3E9B3EB5002B"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "SQL"

+		    quid       	"40490A4001B3"

+		    type       	"String"

+		    exportControl 	"Public")))

+	(object Class "SQLConnectionStatement"

+	    quid       	"404F6FD10311"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 17 Connection management"

+	    stereotype 	"Interface"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"404F700F03A6"

+		    supplier   	"Logical View::SQLModel::Statements::SQLStatement"

+		    quidu      	"404908A2008B")))

+	(object Class "SQLDiagnosticsStatement"

+	    quid       	"404F704300C6"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 22 Diagnostics management "

+	    stereotype 	"Interface"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"404F706C0025"

+		    supplier   	"Logical View::SQLModel::Statements::SQLStatement"

+		    quidu      	"404908A2008B")))

+	(object Class "SQLDynamicStatement"

+	    quid       	"404F70B2026A"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 19 Dynamic SQL"

+	    stereotype 	"Interface"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"404F70DE0278"

+		    supplier   	"Logical View::SQLModel::Statements::SQLStatement"

+		    quidu      	"404908A2008B")))

+	(object Class "SQLSessionStatement"

+	    quid       	"404F711D03A5"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 18 Session management"

+	    stereotype 	"Interface"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"404F714600A1"

+		    supplier   	"Logical View::SQLModel::Statements::SQLStatement"

+		    quidu      	"404908A2008B")))

+	(object Class "SQLTransactionStatement"

+	    quid       	"404F718E02CB"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 16 Transaction management"

+	    stereotype 	"Interface"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"404F71B401C1"

+		    supplier   	"Logical View::SQLModel::Statements::SQLStatement"

+		    quidu      	"404908A2008B"))))

+    logical_presentations 	(list unit_reference_list

+	(object ClassDiagram "Statements"

+	    quid       	"404908810124"

+	    title      	"Statements"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	1090

+	    origin_y   	0

+	    items      	(list diagram_item_list

+		(object ClassView "Class" "Logical View::SQLModel::Statements::SQLStatement" @1

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    ShowOperationSignature 	TRUE

+		    location   	(1497, 592)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@1

+			location   	(1147, 508)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	700

+			justify    	0

+			label      	"SQLStatement")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@1

+			location   	(1147, 458)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	700

+			justify    	0

+			label      	"<<Interface>>")

+		    icon       	"Interface"

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"404908A2008B"

+		    compartment 	(object Compartment

+			Parent_View 	@1

+			location   	(1147, 569)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	3

+			max_width  	594)

+		    width      	718

+		    height     	292

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Statements::SQLDataStatement" @2

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(968, 1365)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@2

+			location   	(740, 1336)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	456

+			justify    	0

+			label      	"SQLDataStatement")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@2

+			location   	(740, 1286)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	456

+			justify    	0

+			label      	"<<Interface>>")

+		    icon       	"Interface"

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4049092B0395"

+		    width      	474

+		    height     	182

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Statements::SQLSchemaStatement" @3

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2002, 1103)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@3

+			location   	(1734, 1074)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	536

+			justify    	0

+			label      	"SQLSchemaStatement")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@3

+			location   	(1734, 1024)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	536

+			justify    	0

+			label      	"<<Interface>>")

+		    icon       	"Interface"

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"404909440233"

+		    width      	554

+		    height     	182

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Statements::SQLControlStatement" @4

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(637, 1103)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@4

+			location   	(384, 1074)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	506

+			justify    	0

+			label      	"SQLControlStatement")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@4

+			location   	(384, 1024)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	506

+			justify    	0

+			label      	"<<Interface>>")

+		    icon       	"Interface"

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4049095A0220"

+		    width      	524

+		    height     	182

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Statements::SQLDataChangeStatement" @5

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(968, 1747)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@5

+			location   	(659, 1718)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	618

+			justify    	0

+			label      	"SQLDataChangeStatement")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@5

+			location   	(659, 1668)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	618

+			justify    	0

+			label      	"<<Interface>>")

+		    icon       	"Interface"

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"40490973001D"

+		    width      	636

+		    height     	182

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritTreeView "" @6

+		    location   	(1497, 888)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@1

+		    vertices   	(list Points

+			(1497, 888)

+			(1497, 738)))

+		(object InheritView "" @7

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"40490A0B0315"

+		    client     	@4

+		    supplier   	@1

+		    line_style 	3

+		    origin_attachment 	(647, 1011)

+		    terminal_attachment 	(647, 888)

+		    drawSupplier 	@6)

+		(object InheritView "" @8

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404909FD03D3"

+		    client     	@2

+		    supplier   	@1

+		    line_style 	3

+		    origin_attachment 	(968, 1274)

+		    terminal_attachment 	(968, 888)

+		    drawSupplier 	@6)

+		(object InheritView "" @9

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"40490A210226"

+		    client     	@5

+		    supplier   	@2

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLModel::Statements::SQLStatementDefault" @10

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2362, 655)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@10

+			location   	(2110, 574)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	504

+			justify    	0

+			label      	"SQLStatementDefault")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"40490988012C"

+		    compartment 	(object Compartment

+			Parent_View 	@10

+			location   	(2110, 635)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	2

+			max_width  	275)

+		    width      	522

+		    height     	186

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @11

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"40490A6C0094"

+		    client     	@10

+		    supplier   	@1

+		    line_style 	3

+		    origin_attachment 	(2101, 650)

+		    terminal_attachment 	(1856, 650))

+		(object ClassView "Class" "Logical View::SQLModel::Schema::SQLObject" @12

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    location   	(2361, 266)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@12

+			location   	(2129, 137)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	464

+			justify    	0

+			label      	"SQLObject")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3E9B3EB5002B"

+		    compartment 	(object Compartment

+			Parent_View 	@12

+			location   	(2129, 242)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	TRUE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	3

+			max_width  	391)

+		    width      	482

+		    height     	282

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @13

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"40490AB50342"

+		    client     	@10

+		    supplier   	@12

+		    line_style 	0)

+		(object InheritView "" @14

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"40490A0202A4"

+		    client     	@3

+		    supplier   	@1

+		    line_style 	3

+		    origin_attachment 	(2003, 1012)

+		    terminal_attachment 	(2003, 888)

+		    drawSupplier 	@6)

+		(object ClassView "Class" "Logical View::SQLModel::Statements::SQLConnectionStatement" @15

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(309, 1372)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@15

+			location   	(14, 1343)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	590

+			justify    	0

+			label      	"SQLConnectionStatement")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@15

+			location   	(14, 1293)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	590

+			justify    	0

+			label      	"<<Interface>>")

+		    icon       	"Interface"

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"404F6FD10311"

+		    width      	608

+		    height     	182

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @16

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404F700F03A6"

+		    client     	@15

+		    supplier   	@1

+		    line_style 	3

+		    origin_attachment 	(312, 1280)

+		    terminal_attachment 	(312, 888)

+		    drawSupplier 	@6)

+		(object ClassView "Class" "Logical View::SQLModel::Statements::SQLDiagnosticsStatement" @17

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1324, 1103)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@17

+			location   	(1017, 1074)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	614

+			justify    	0

+			label      	"SQLDiagnosticsStatement")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@17

+			location   	(1017, 1024)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	614

+			justify    	0

+			label      	"<<Interface>>")

+		    icon       	"Interface"

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"404F704300C6"

+		    width      	632

+		    height     	182

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @18

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404F706C0025"

+		    client     	@17

+		    supplier   	@1

+		    line_style 	3

+		    origin_attachment 	(1325, 1012)

+		    terminal_attachment 	(1325, 888)

+		    drawSupplier 	@6)

+		(object ClassView "Class" "Logical View::SQLModel::Statements::SQLDynamicStatement" @19

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1662, 1365)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@19

+			location   	(1390, 1336)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	544

+			justify    	0

+			label      	"SQLDynamicStatement")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@19

+			location   	(1390, 1286)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	544

+			justify    	0

+			label      	"<<Interface>>")

+		    icon       	"Interface"

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"404F70B2026A"

+		    width      	562

+		    height     	182

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @20

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404F70DE0278"

+		    client     	@19

+		    supplier   	@1

+		    line_style 	3

+		    origin_attachment 	(1672, 1274)

+		    terminal_attachment 	(1672, 888)

+		    drawSupplier 	@6)

+		(object ClassView "Class" "Logical View::SQLModel::Statements::SQLSessionStatement" @21

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2318, 1362)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@21

+			location   	(2057, 1333)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	522

+			justify    	0

+			label      	"SQLSessionStatement")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@21

+			location   	(2057, 1283)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	522

+			justify    	0

+			label      	"<<Interface>>")

+		    icon       	"Interface"

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"404F711D03A5"

+		    width      	540

+		    height     	182

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @22

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404F714600A1"

+		    client     	@21

+		    supplier   	@1

+		    line_style 	3

+		    origin_attachment 	(2327, 1271)

+		    terminal_attachment 	(2327, 888)

+		    drawSupplier 	@6)

+		(object ClassView "Class" "Logical View::SQLModel::Statements::SQLTransactionStatement" @23

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2664, 1093)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@23

+			location   	(2367, 1064)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	594

+			justify    	0

+			label      	"SQLTransactionStatement")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@23

+			location   	(2367, 1014)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	594

+			justify    	0

+			label      	"<<Interface>>")

+		    icon       	"Interface"

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"404F718E02CB"

+		    width      	612

+		    height     	182

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @24

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404F71B401C1"

+		    client     	@23

+		    supplier   	@1

+		    line_style 	3

+		    origin_attachment 	(2665, 1002)

+		    terminal_attachment 	(2665, 888)

+		    drawSupplier 	@6)))))

diff --git a/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel-Tables.cat b/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel-Tables.cat
new file mode 100644
index 0000000..5cc2d23
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel-Tables.cat
@@ -0,0 +1,3397 @@
+

+(object Petal

+    version    	47

+    _written   	"Rose 8.0.0303.1400"

+    charSet    	0)

+

+(object Class_Category "Tables"

+    is_unit    	TRUE

+    is_loaded  	TRUE

+    attributes 	(list Attribute_Set

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"packageName"

+	    value      	(value Text "tables"))

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"nsPrefix"

+	    value      	(value Text "SQLTables"))

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"prefix"

+	    value      	(value Text "SQLTables"))

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"nsURI"

+	    value      	(value Text "http:///org/eclipse/datatools/modelbase/sql/tables.ecore"))

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"basePackage"

+	    value      	(value Text "org.eclipse.datatools.modelbase.sql")))

+    quid       	"4071D00F009F"

+    exportControl 	"Public"

+    logical_models 	(list unit_reference_list

+	(object Class "ViewTable"

+	    quid       	"3E9B4230022F"

+	    documentation 	

+|Reference: 5WD-02-Foundation-2002-12 4.14 Tables

+|

+	    

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3E9B423903A5"

+		    supplier   	"Logical View::SQLModel::Tables::DerivedTable"

+		    quidu      	"3E9B419D0352"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "checkType"

+		    quid       	"3ED2105701E1"

+		    type       	"CheckType"

+		    quidu      	"3ED210830036"

+		    exportControl 	"Public")))

+	(object Class "TemporaryTable"

+	    quid       	"3F579E8200B1"

+	    documentation 	

+|Reference: 5WD-02-Foundation-2002-12 4.14 Tables

+|

+	    

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3F579EC0006A"

+		    supplier   	"Logical View::SQLModel::Tables::BaseTable"

+		    quidu      	"3E9B41900372"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "local"

+		    quid       	"3F579F00009E"

+		    type       	"boolean"

+		    exportControl 	"Public")

+		(object ClassAttribute "deleteOnCommit"

+		    quid       	"3F579F3A00C0"

+		    type       	"boolean"

+		    exportControl 	"Public")))

+	(object Class "Table"

+	    quid       	"3E9B1FB60047"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 4.14 Tables"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3FA6A8EE02C0"

+		    supplier   	"Logical View::SQLModel::Schema::SQLObject"

+		    quidu      	"3E9B3EB5002B"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "selfRefColumnGeneration"

+		    quid       	"3F60CBC50070"

+		    type       	"ReferenceType"

+		    quidu      	"3EA5788B026F"

+		    exportControl 	"Public")

+		(object ClassAttribute "insertable"

+		    attributes 	(list Attribute_Set

+			(object Attribute

+			    tool       	"Ecore"

+			    name       	"isTransient"

+			    value      	TRUE)

+			(object Attribute

+			    tool       	"Ecore"

+			    name       	"isVolatile"

+			    value      	TRUE)

+			(object Attribute

+			    tool       	"Ecore"

+			    name       	"isChangeable"

+			    value      	FALSE))

+		    quid       	"3F65CE840359"

+		    type       	"boolean"

+		    exportControl 	"Public"

+		    derived    	TRUE)

+		(object ClassAttribute "updatable"

+		    attributes 	(list Attribute_Set

+			(object Attribute

+			    tool       	"Ecore"

+			    name       	"isTransient"

+			    value      	TRUE)

+			(object Attribute

+			    tool       	"Ecore"

+			    name       	"isVolatile"

+			    value      	TRUE)

+			(object Attribute

+			    tool       	"Ecore"

+			    name       	"isChangeable"

+			    value      	FALSE))

+		    quid       	"3F65CEEA0146"

+		    type       	"boolean"

+		    exportControl 	"Public"

+		    derived    	TRUE))

+	    abstract   	TRUE)

+	(object Class "PersistentTable"

+	    quid       	"3F579E8E01D1"

+	    documentation 	

+|Reference: 5WD-02-Foundation-2002-12 4.14 Tables

+|

+	    

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3F579EC302B3"

+		    supplier   	"Logical View::SQLModel::Tables::BaseTable"

+		    quidu      	"3E9B41900372")))

+	(object Class "DerivedTable"

+	    quid       	"3E9B419D0352"

+	    documentation 	

+|Reference: 5WD-02-Foundation-2002-12 4.14 Tables

+|

+	    

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3E9B41AB03BF"

+		    supplier   	"Logical View::SQLModel::Tables::Table"

+		    quidu      	"3E9B1FB60047"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "queryExpression"

+		    quid       	"3ED206440079"

+		    type       	"QueryExpression"

+		    quidu      	"3F392200019B"

+		    exportControl 	"Public"

+		    Containment 	"By Value"))

+	    abstract   	TRUE)

+	(object Class "BaseTable"

+	    quid       	"3E9B41900372"

+	    documentation 	

+|Reference: 5WD-02-Foundation-2002-12 4.14 Tables

+|

+	    

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3E9B41A50390"

+		    supplier   	"Logical View::SQLModel::Tables::Table"

+		    quidu      	"3E9B1FB60047"))

+	    operations 	(list Operations

+		(object Operation "getUniqueConstraints"

+		    quid       	"4026C6B400A5"

+		    result     	"List"

+		    concurrency 	"Sequential"

+		    opExportControl 	"Public"

+		    uid        	0

+		    quidu      	"40240BB003A0")

+		(object Operation "getForeignKeys"

+		    quid       	"4026C70F0345"

+		    result     	"List"

+		    concurrency 	"Sequential"

+		    opExportControl 	"Public"

+		    uid        	0

+		    quidu      	"40240BB003A0")

+		(object Operation "getPrimaryKey"

+		    quid       	"4026C75200CA"

+		    result     	"PrimaryKey"

+		    concurrency 	"Sequential"

+		    opExportControl 	"Public"

+		    uid        	0

+		    quidu      	"3ED5246901C3"))

+	    abstract   	TRUE)

+	(object Class "CheckType"

+	    quid       	"3ED210830036"

+	    documentation 	

+|Reference: 5WD-02-Foundation-2002-12 4.14 Tables

+|

+	    

+	    stereotype 	"enumeration"

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "CASCADED"

+		    quid       	"3ED2108C02D5"

+		    exportControl 	"Public")

+		(object ClassAttribute "LOCAL"

+		    quid       	"3ED210900380"

+		    exportControl 	"Public")

+		(object ClassAttribute "NONE"

+		    quid       	"3F579FFB03A2"

+		    exportControl 	"Public")))

+	(object Class "ReferenceType"

+	    quid       	"3EA5788B026F"

+	    stereotype 	"enumeration"

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "SYSTEM_GENERATED"

+		    quid       	"3EA578AC02BB"

+		    exportControl 	"Public")

+		(object ClassAttribute "USER_GENERATED"

+		    quid       	"3EA578C10182"

+		    exportControl 	"Public")

+		(object ClassAttribute "DERIVED_SELF_REF"

+		    quid       	"3EA578C7025C"

+		    exportControl 	"Public")))

+	(object Class "Column"

+	    quid       	"3E9B2AFF0392"

+	    documentation 	

+|Reference: 5WD-02-Foundation-2002-12 4.13 Columns, fields, and attributes

+|

+	    

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3FA6A8C500EB"

+		    supplier   	"Logical View::SQLModel::Schema::TypedElement"

+		    quidu      	"3FA6A8930071"))

+	    operations 	(list Operations

+		(object Operation "isPartOfForeignKey"

+		    quid       	"40241A4100A9"

+		    result     	"boolean"

+		    concurrency 	"Sequential"

+		    opExportControl 	"Public"

+		    uid        	0)

+		(object Operation "isPartOfUniqueConstraint"

+		    quid       	"40241A650001"

+		    result     	"boolean"

+		    concurrency 	"Sequential"

+		    opExportControl 	"Public"

+		    uid        	0)

+		(object Operation "isPartOfPrimaryKey"

+		    quid       	"40282C460268"

+		    result     	"boolean"

+		    concurrency 	"Sequential"

+		    opExportControl 	"Public"

+		    uid        	0))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "implementationDependent"

+		    quid       	"3ED21F5A0148"

+		    type       	"boolean"

+		    initv      	"False"

+		    exportControl 	"Public")

+		(object ClassAttribute "nullable"

+		    quid       	"3F26B5AE008E"

+		    type       	"boolean"

+		    initv      	"True"

+		    exportControl 	"Public")

+		(object ClassAttribute "defaultValue"

+		    quid       	"3F57A4B403B5"

+		    type       	"String"

+		    exportControl 	"Public")

+		(object ClassAttribute "scopeCheck"

+		    quid       	"3F6079C5030D"

+		    type       	"ReferentialActionType"

+		    quidu      	"3ED6717C0130"

+		    initv      	"NO_ACTION"

+		    exportControl 	"Public")

+		(object ClassAttribute "scopeChecked"

+		    quid       	"3F6079C5034C"

+		    type       	"boolean"

+		    exportControl 	"Public")))

+	(object Class "Trigger"

+	    quid       	"3ED7B9780253"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 4.38 Triggers"

+	    superclasses 	(list inheritance_relationship_list

+		(object Inheritance_Relationship

+		    quid       	"3ED7B99B023E"

+		    supplier   	"Logical View::SQLModel::Schema::SQLObject"

+		    quidu      	"3E9B3EB5002B"))

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "actionGranularity"

+		    quid       	"3ED7E8880087"

+		    type       	"ActionGranularityType"

+		    quidu      	"3ED7E7AA03D3"

+		    initv      	"STATEMENT"

+		    exportControl 	"Public")

+		(object ClassAttribute "when"

+		    quid       	"3FBE39A502FC"

+		    type       	"SearchCondition"

+		    quidu      	"3FABEC590086"

+		    exportControl 	"Public")

+		(object ClassAttribute "timeStamp"

+		    attributes 	(list Attribute_Set

+			(object Attribute

+			    tool       	"Ecore"

+			    name       	"isChangeable"

+			    value      	FALSE))

+		    quid       	"3ED7F18003A2"

+		    documentation 	"Triggers on the same table with the same action time are executed in order of creation, i.e. the time stamp, such that older triggers have priority."

+		    type       	"Date"

+		    quidu      	"400DD1F40374"

+		    exportControl 	"Public")

+		(object ClassAttribute "actionTime"

+		    quid       	"3F4CFFC3037B"

+		    type       	"ActionTimeType"

+		    quidu      	"3ED7BF8D0340"

+		    exportControl 	"Public")

+		(object ClassAttribute "updateType"

+		    quid       	"3F8C691E0341"

+		    type       	"boolean"

+		    exportControl 	"Public")

+		(object ClassAttribute "insertType"

+		    quid       	"3F8C692700B9"

+		    type       	"boolean"

+		    exportControl 	"Public")

+		(object ClassAttribute "deleteType"

+		    quid       	"3F8C692E033A"

+		    type       	"boolean"

+		    exportControl 	"Public")

+		(object ClassAttribute "oldRow"

+		    quid       	"3F8C694802B5"

+		    type       	"String"

+		    exportControl 	"Public")

+		(object ClassAttribute "newRow"

+		    quid       	"3F8C694802BF"

+		    type       	"String"

+		    exportControl 	"Public")

+		(object ClassAttribute "oldTable"

+		    quid       	"3F8C69480355"

+		    type       	"String"

+		    exportControl 	"Public")

+		(object ClassAttribute "newTable"

+		    quid       	"3F8C69480369"

+		    type       	"String"

+		    exportControl 	"Public")))

+	(object Class "ActionTimeType"

+	    quid       	"3ED7BF8D0340"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 4.38 Triggers"

+	    stereotype 	"enumeration"

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "AFTER"

+		    quid       	"3ED7BF9A02F8"

+		    exportControl 	"Public")

+		(object ClassAttribute "BEFORE"

+		    quid       	"3ED7BF9D012A"

+		    exportControl 	"Public")

+		(object ClassAttribute "INSTEADOF"

+		    quid       	"3EDBF9CF029E"

+		    exportControl 	"Public")))

+	(object Class "ActionGranularityType"

+	    quid       	"3ED7E7AA03D3"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 4.38 Triggers"

+	    stereotype 	"enumeration"

+	    class_attributes 	(list class_attribute_list

+		(object ClassAttribute "STATEMENT"

+		    quid       	"3ED7E7C0026A"

+		    exportControl 	"Public")

+		(object ClassAttribute "ROW"

+		    quid       	"3ED7E7D803DF"

+		    exportControl 	"Public"))))

+    logical_presentations 	(list unit_reference_list

+	(object ClassDiagram "Table"

+	    quid       	"3E9C8E340157"

+	    title      	"Table"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 4.14 Tables"

+	    zoom       	95

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	0

+	    origin_y   	0

+	    items      	(list diagram_item_list

+		(object ClassView "Class" "Logical View::SQLModel::Tables::DerivedTable" @1

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(887, 1484)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@1

+			location   	(478, 1404)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	818

+			justify    	0

+			label      	"DerivedTable")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3E9B419D0352"

+		    compartment 	(object Compartment

+			Parent_View 	@1

+			location   	(478, 1464)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	TRUE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	2

+			max_width  	695)

+		    width      	836

+		    height     	184

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Tables::ViewTable" @2

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(830, 2109)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@2

+			location   	(550, 2029)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	560

+			justify    	0

+			label      	"ViewTable")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3E9B4230022F"

+		    compartment 	(object Compartment

+			Parent_View 	@2

+			location   	(550, 2089)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	2

+			max_width  	474)

+		    width      	578

+		    height     	184

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @3

+		    stereotype 	TRUE

+		    line_color 	16711680

+		    quidu      	"3E9B423903A5"

+		    client     	@2

+		    supplier   	@1

+		    line_style 	3

+		    origin_attachment 	(832, 2017)

+		    terminal_attachment 	(832, 1576))

+		(object ClassView "Class" "Logical View::SQLModel::Tables::CheckType" @4

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(755, 2556)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@4

+			location   	(563, 2450)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	384

+			justify    	0

+			label      	"CheckType")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@4

+			location   	(563, 2400)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	384

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	15329769

+		    quidu      	"3ED210830036"

+		    compartment 	(object Compartment

+			Parent_View 	@4

+			location   	(563, 2510)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	4

+			max_width  	284)

+		    width      	402

+		    height     	336

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Tables::BaseTable" @5

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    location   	(1721, 1447)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@5

+			location   	(1581, 1396)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	280

+			justify    	0

+			label      	"BaseTable")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3E9B41900372"

+		    width      	298

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Constraints::TableConstraint" @6

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2615, 1452)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@6

+			location   	(2419, 1375)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	392

+			justify    	0

+			label      	"TableConstraint")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3ED52ACF000F"

+		    width      	410

+		    height     	178

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "" @7

+		    location   	(2140, 1467)

+		    stereotype 	TRUE

+		    quidu      	"3F26B33701AA"

+		    roleview_list 	(list RoleViews

+			(object RoleView "" @8

+			    Parent_View 	@7

+			    location   	(-454, -290)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @9

+				Parent_View 	@8

+				location   	(1917, 1542)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				hidden     	TRUE

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	125

+				justify    	0

+				label      	""

+				pctDist    	0.829797

+				height     	75

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F26B3390064"

+			    client     	@7

+			    supplier   	@5

+			    line_style 	3

+			    origin_attachment 	(2140, 1467)

+			    terminal_attachment 	(1870, 1467)

+			    label      	(object SegLabel @10

+				Parent_View 	@8

+				location   	(1923, 1516)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	171

+				justify    	0

+				label      	"0..1"

+				pctDist    	0.804781

+				height     	49

+				orientation 	0))

+			(object RoleView "constraints" @11

+			    Parent_View 	@7

+			    location   	(-454, -290)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @12

+				Parent_View 	@11

+				location   	(2264, 1421)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	249

+				justify    	0

+				label      	"-constraints"

+				pctDist    	0.464286

+				height     	47

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3F26B3390062"

+			    client     	@7

+			    supplier   	@6

+			    line_style 	3

+			    origin_attachment 	(2140, 1467)

+			    terminal_attachment 	(2410, 1467)

+			    label      	(object SegLabel @13

+				Parent_View 	@11

+				location   	(2333, 1521)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	78

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.714286

+				height     	54

+				orientation 	1))))

+		(object NoteView @14

+		    location   	(493, 1806)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@14

+			location   	(206, 1701)

+			fill_color 	13434879

+			nlines     	4

+			max_width  	538

+			label      	"Derived tables have no name and an empty list of super/sub tables, but this still applies to a view table.")

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	598

+		    height     	222)

+		(object AttachView "" @15

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@14

+		    supplier   	@1

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLModel::Tables::TemporaryTable" @16

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1511, 1878)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@16

+			location   	(1192, 1774)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	638

+			justify    	0

+			label      	"TemporaryTable")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F579E8200B1"

+		    compartment 	(object Compartment

+			Parent_View 	@16

+			location   	(1192, 1834)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	3

+			max_width  	540)

+		    width      	656

+		    height     	232

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Tables::PersistentTable" @17

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2125, 1818)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@17

+			location   	(1934, 1767)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	382

+			justify    	0

+			label      	"PersistentTable")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F579E8E01D1"

+		    width      	400

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AttachView "" @18

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@2

+		    supplier   	@14

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLModel::Tables::ReferenceType" @19

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2226, 237)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@19

+			location   	(1946, 131)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	560

+			justify    	0

+			label      	"ReferenceType")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@19

+			location   	(1946, 81)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	560

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	15329769

+		    quidu      	"3EA5788B026F"

+		    compartment 	(object Compartment

+			Parent_View 	@19

+			location   	(1946, 191)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	4

+			max_width  	500)

+		    width      	578

+		    height     	336

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritTreeView "" @20

+		    location   	(1721, 1677)

+		    line_color 	16711680

+		    fill_color 	13434879

+		    supplier   	@5

+		    vertices   	(list Points

+			(1721, 1677)

+			(1721, 1510)))

+		(object InheritView "" @21

+		    stereotype 	TRUE

+		    line_color 	16711680

+		    quidu      	"3F579EC0006A"

+		    client     	@16

+		    supplier   	@5

+		    line_style 	3

+		    origin_attachment 	(1490, 1761)

+		    terminal_attachment 	(1490, 1677)

+		    drawSupplier 	@20)

+		(object InheritView "" @22

+		    stereotype 	TRUE

+		    line_color 	16711680

+		    quidu      	"3F579EC302B3"

+		    client     	@17

+		    supplier   	@5

+		    line_style 	3

+		    origin_attachment 	(2148, 1755)

+		    terminal_attachment 	(2148, 1677)

+		    drawSupplier 	@20)

+		(object ClassView "Class" "Logical View::SQLModel::Schema::SQLObject" @23

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    location   	(1463, 263)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@23

+			location   	(1234, 135)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	458

+			justify    	0

+			label      	"SQLObject")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3E9B3EB5002B"

+		    compartment 	(object Compartment

+			Parent_View 	@23

+			location   	(1234, 241)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	TRUE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	3

+			max_width  	385)

+		    width      	476

+		    height     	280

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Tables::Column" @24

+		    ShowCompartmentStereotypes 	TRUE

+		    location   	(2580, 625)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@24

+			location   	(2480, 574)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	200

+			justify    	0

+			label      	"Column")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3E9B2AFF0392"

+		    width      	218

+		    height     	126

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::StructuredUserDefinedType" @25

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2567, 939)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@25

+			location   	(2233, 811)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	668

+			justify    	0

+			label      	"StructuredUserDefinedType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F4E44E8001C"

+		    compartment 	(object Compartment

+			Parent_View 	@25

+			location   	(2233, 917)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	3

+			max_width  	566)

+		    width      	686

+		    height     	280

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Tables::Table" @26

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    ShowOperationSignature 	TRUE

+		    location   	(1458, 730)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@26

+			location   	(970, 601)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	976

+			justify    	0

+			label      	"Table")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3E9B1FB60047"

+		    compartment 	(object Compartment

+			Parent_View 	@26

+			location   	(970, 661)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	TRUE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	4

+			max_width  	830)

+		    width      	994

+		    height     	282

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "" @27

+		    location   	(731, 725)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	255

+		    quidu      	"3EA57A170151"

+		    roleview_list 	(list RoleViews

+			(object RoleView "supertable" @28

+			    Parent_View 	@27

+			    location   	(-421, -571)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @29

+				Parent_View 	@28

+				location   	(855, 751)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	265

+				justify    	0

+				label      	"-supertable"

+				pctDist    	0.635697

+				height     	34

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3EA57A1B02E7"

+			    client     	@27

+			    supplier   	@26

+			    vertices   	(list Points

+				(731, 725)

+				(731, 784)

+				(961, 784))

+			    line_style 	3

+			    origin_attachment 	(731, 725)

+			    terminal_attachment 	(961, 784)

+			    label      	(object SegLabel @30

+				Parent_View 	@28

+				location   	(837, 826)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	78

+				justify    	0

+				label      	"0..1"

+				pctDist    	0.574572

+				height     	42

+				orientation 	1))

+			(object RoleView "subtables" @31

+			    Parent_View 	@27

+			    location   	(-421, -571)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @32

+				Parent_View 	@31

+				location   	(846, 627)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	224

+				justify    	0

+				label      	"-subtables"

+				pctDist    	0.599022

+				height     	41

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3EA57A1B02F7"

+			    client     	@27

+			    supplier   	@26

+			    vertices   	(list Points

+				(731, 725)

+				(731, 667)

+				(961, 667))

+			    line_style 	3

+			    origin_attachment 	(731, 725)

+			    terminal_attachment 	(961, 667)

+			    label      	(object SegLabel @33

+				Parent_View 	@31

+				location   	(829, 707)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	78

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.542787

+				height     	40

+				orientation 	1))))

+		(object InheritTreeView "" @34

+		    location   	(1458, 1188)

+		    line_color 	16711680

+		    fill_color 	13434879

+		    supplier   	@26

+		    vertices   	(list Points

+			(1458, 1188)

+			(1458, 871)))

+		(object InheritView "" @35

+		    stereotype 	TRUE

+		    line_color 	16711680

+		    quidu      	"3E9B41AB03BF"

+		    client     	@1

+		    supplier   	@26

+		    line_style 	3

+		    origin_attachment 	(974, 1392)

+		    terminal_attachment 	(974, 1188)

+		    drawSupplier 	@34)

+		(object InheritView "" @36

+		    stereotype 	TRUE

+		    line_color 	16711680

+		    quidu      	"3E9B41A50390"

+		    client     	@5

+		    supplier   	@26

+		    line_style 	3

+		    origin_attachment 	(1736, 1384)

+		    terminal_attachment 	(1736, 1188)

+		    drawSupplier 	@34)

+		(object AssociationViewNew "" @37

+		    location   	(2213, 632)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    quidu      	"3E9B3A2B030D"

+		    roleview_list 	(list RoleViews

+			(object RoleView "table" @38

+			    Parent_View 	@37

+			    location   	(149, -1384)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @39

+				Parent_View 	@38

+				location   	(2034, 551)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	114

+				justify    	0

+				label      	"-table"

+				pctDist    	0.698745

+				height     	82

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3E9B3A2C0167"

+			    client     	@37

+			    supplier   	@26

+			    line_style 	3

+			    origin_attachment 	(2213, 632)

+			    terminal_attachment 	(1955, 632)

+			    label      	(object SegLabel @40

+				Parent_View 	@38

+				location   	(2036, 599)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	34

+				justify    	0

+				label      	"1"

+				pctDist    	0.690377

+				height     	34

+				orientation 	1))

+			(object RoleView "columns" @41

+			    Parent_View 	@37

+			    location   	(149, -1384)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @42

+				Parent_View 	@41

+				location   	(2360, 668)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	196

+				justify    	0

+				label      	"-columns"

+				pctDist    	0.575000

+				height     	36

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3E9B3A2C0158"

+			    client     	@37

+			    supplier   	@24

+			    line_style 	3

+			    origin_attachment 	(2213, 632)

+			    terminal_attachment 	(2471, 632)

+			    label      	(object SegLabel @43

+				Parent_View 	@41

+				location   	(2419, 601)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	78

+				justify    	0

+				label      	"1..n"

+				pctDist    	0.800000

+				height     	32

+				orientation 	0)

+			    label      	(object SegLabel @44

+				Parent_View 	@41

+				location   	(2364, 555)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	3

+				anchor_loc 	1

+				nlines     	1

+				max_width  	180

+				justify    	0

+				label      	"{ordered}"

+				pctDist    	0.587500

+				height     	78

+				orientation 	0))))

+		(object AssociationViewNew "" @45

+		    location   	(2089, 839)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"400DF6DE032D"

+		    roleview_list 	(list RoleViews

+			(object RoleView "udt" @46

+			    Parent_View 	@45

+			    location   	(956, 107)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @47

+				Parent_View 	@46

+				location   	(2179, 881)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	99

+				justify    	0

+				label      	"+udt"

+				pctDist    	0.664804

+				height     	42

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"400DF6DF0248"

+			    client     	@45

+			    supplier   	@25

+			    line_style 	3

+			    origin_attachment 	(2089, 839)

+			    terminal_attachment 	(2224, 839)

+			    label      	(object SegLabel @48

+				Parent_View 	@46

+				location   	(2176, 796)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..1"

+				pctDist    	0.648045

+				height     	44

+				orientation 	0))

+			(object RoleView "" @49

+			    Parent_View 	@45

+			    location   	(956, 107)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"400DF6DF025C"

+			    client     	@45

+			    supplier   	@26

+			    line_style 	3

+			    origin_attachment 	(2089, 839)

+			    terminal_attachment 	(1955, 839)

+			    label      	(object SegLabel @50

+				Parent_View 	@49

+				location   	(1984, 803)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.794444

+				height     	37

+				orientation 	1))))

+		(object InheritView "" @51

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3FA6A8EE02C0"

+		    client     	@26

+		    supplier   	@23

+		    line_style 	3

+		    origin_attachment 	(1468, 589)

+		    terminal_attachment 	(1468, 403))

+		(object NoteView @52

+		    location   	(727, 378)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@52

+			location   	(390, 243)

+			fill_color 	13434879

+			nlines     	5

+			max_width  	638

+			label      	"For two tables to be in a sub-super relationship they must both be typed and the UDTs that they are referring to must be in the same sub-super relationship.")

+		    line_color 	3342489

+		    fill_color 	8453888

+		    width      	698

+		    height     	283)

+		(object NoteView @53

+		    location   	(776, 1000)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@53

+			location   	(183, 901)

+			fill_color 	13434879

+			nlines     	4

+			max_width  	1151

+			label      	

+|The sub-super relationship must be acyclical:

+|{let allParents = self.supertable->union(self.supertable->collect(p|p.allParents) in not self.allParents->include(self)}

+			)

+		    line_color 	3342489

+		    fill_color 	8453888

+		    width      	1211

+		    height     	211)

+		(object AttachView "" @54

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@52

+		    supplier   	@27

+		    vertices   	(list Points

+			(625, 519)

+			(625, 704)

+			(731, 704))

+		    line_style 	3

+		    origin_attachment 	(625, 519)

+		    terminal_attachment 	(731, 704))

+		(object AttachView "" @55

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@53

+		    supplier   	@27

+		    vertices   	(list Points

+			(616, 894)

+			(616, 747)

+			(731, 747))

+		    line_style 	3

+		    origin_attachment 	(616, 894)

+		    terminal_attachment 	(731, 747))))

+	(object ClassDiagram "Column"

+	    quid       	"3EA40ECD0393"

+	    title      	"Column"

+	    documentation 	"Reference: 5WD-02-Foundation-2002-12 4.13 Columns, fields, and attributes"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	150

+	    origin_y   	0

+	    items      	(list diagram_item_list

+		(object ClassView "Class" "Logical View::SQLModel::Schema::GenerateType" @56

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(897, 2286)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@56

+			location   	(600, 2202)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	594

+			justify    	0

+			label      	"GenerateType")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@56

+			location   	(600, 2152)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	594

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	15329769

+		    quidu      	"3EA40DBD02B7"

+		    compartment 	(object Compartment

+			Parent_View 	@56

+			location   	(600, 2307)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	3

+			max_width  	512)

+		    width      	612

+		    height     	292

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Schema::ReferentialActionType" @57

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1675, 2215)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@57

+			location   	(1424, 2033)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	502

+			justify    	0

+			label      	"ReferentialActionType")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@57

+			location   	(1424, 1983)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	502

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	15329769

+		    quidu      	"3ED6717C0130"

+		    compartment 	(object Compartment

+			Parent_View 	@57

+			location   	(1424, 2138)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	6

+			max_width  	340)

+		    width      	520

+		    height     	488

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Schema::IdentitySpecifier" @58

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(834, 1823)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@58

+			location   	(471, 1594)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	726

+			justify    	0

+			label      	"IdentitySpecifier")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3EA3F30101D3"

+		    compartment 	(object Compartment

+			Parent_View 	@58

+			location   	(471, 1699)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	7

+			max_width  	616)

+		    width      	744

+		    height     	482

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Expressions::ValueExpression" @59

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    location   	(1718, 1747)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@59

+			location   	(1512, 1694)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	412

+			justify    	0

+			label      	"ValueExpression")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@59

+			location   	(1512, 1644)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	412

+			justify    	0

+			label      	"<<Interface>>")

+		    icon       	"Interface"

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F4D273D00A9"

+		    width      	430

+		    height     	230

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Tables::Column" @60

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    location   	(1244, 872)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@60

+			location   	(666, 691)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	1156

+			justify    	0

+			label      	"Column")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3E9B2AFF0392"

+		    compartment 	(object Compartment

+			Parent_View 	@60

+			location   	(666, 752)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	6

+			max_width  	984)

+		    width      	1174

+		    height     	386

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AssociationViewNew "" @61

+		    location   	(866, 1323)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    quidu      	"3EDF921303AD"

+		    roleview_list 	(list RoleViews

+			(object RoleView "" @62

+			    Parent_View 	@61

+			    location   	(-878, -805)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @63

+				Parent_View 	@62

+				location   	(905, 1127)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				hidden     	TRUE

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	156

+				justify    	0

+				label      	""

+				pctDist    	0.760684

+				height     	39

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3EDF92150245"

+			    client     	@61

+			    supplier   	@60

+			    line_style 	3

+			    origin_attachment 	(866, 1323)

+			    terminal_attachment 	(866, 1064)

+			    label      	(object SegLabel @64

+				Parent_View 	@62

+				location   	(930, 1107)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	275

+				justify    	0

+				label      	"0..1"

+				pctDist    	0.837500

+				height     	64

+				orientation 	1))

+			(object RoleView "identitySpecifier" @65

+			    Parent_View 	@61

+			    location   	(-878, -805)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @66

+				Parent_View 	@65

+				location   	(1087, 1519)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	303

+				justify    	0

+				label      	"-identitySpecifier"

+				pctDist    	0.759825

+				height     	221

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3EDF92150264"

+			    client     	@61

+			    supplier   	@58

+			    line_style 	3

+			    origin_attachment 	(866, 1323)

+			    terminal_attachment 	(866, 1582)

+			    label      	(object SegLabel @67

+				Parent_View 	@65

+				location   	(827, 1532)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	80

+				justify    	0

+				label      	"0..1"

+				pctDist    	0.811040

+				height     	40

+				orientation 	1))))

+		(object AssociationViewNew "" @68

+		    location   	(1667, 1348)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	255

+		    quidu      	"3EA412A40286"

+		    roleview_list 	(list RoleViews

+			(object RoleView "generateExpression" @69

+			    Parent_View 	@68

+			    location   	(-13, -412)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @70

+				Parent_View 	@69

+				location   	(1897, 1522)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	384

+				justify    	0

+				label      	"-generateExpression"

+				pctDist    	0.617647

+				height     	230

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3EA412A501FA"

+			    client     	@68

+			    supplier   	@59

+			    line_style 	3

+			    origin_attachment 	(1667, 1348)

+			    terminal_attachment 	(1667, 1632)

+			    label      	(object SegLabel @71

+				Parent_View 	@69

+				location   	(1623, 1543)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	144

+				justify    	0

+				label      	"0..1"

+				pctDist    	0.688645

+				height     	45

+				orientation 	1))

+			(object RoleView "" @72

+			    Parent_View 	@68

+			    location   	(-13, -412)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @73

+				Parent_View 	@72

+				location   	(1806, 1108)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				hidden     	TRUE

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	285

+				justify    	0

+				label      	""

+				pctDist    	0.846715

+				height     	139

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3EA412A501FC"

+			    client     	@68

+			    supplier   	@60

+			    line_style 	3

+			    origin_attachment 	(1667, 1348)

+			    terminal_attachment 	(1667, 1065)

+			    label      	(object SegLabel @74

+				Parent_View 	@72

+				location   	(1722, 1099)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	34

+				justify    	0

+				label      	"1"

+				pctDist    	0.880769

+				height     	55

+				orientation 	1))))

+		(object ClassView "Class" "Logical View::SQLModel::Schema::TypedElement" @75

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1231, 265)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@75

+			location   	(1051, 136)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	360

+			justify    	0

+			label      	"TypedElement")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3FA6A8930071"

+		    compartment 	(object Compartment

+			Parent_View 	@75

+			location   	(1051, 241)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	TRUE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	3

+			max_width  	303)

+		    width      	378

+		    height     	282

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @76

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3FA6A8C500EB"

+		    client     	@60

+		    supplier   	@75

+		    line_style 	3

+		    origin_attachment 	(1237, 679)

+		    terminal_attachment 	(1237, 406))

+		(object NoteView @77

+		    location   	(1315, 1328)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@77

+			location   	(1177, 1268)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	240

+			label      	"{XOR}")

+		    line_color 	3342489

+		    fill_color 	13434879

+		    width      	300

+		    height     	132)

+		(object AttachView "" @78

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@77

+		    supplier   	@68

+		    line_style 	0)

+		(object AttachView "" @79

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@77

+		    supplier   	@61

+		    line_style 	0)))

+	(object ClassDiagram "Triggers"

+	    quid       	"3ED7B91A02E9"

+	    title      	"Triggers"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	0

+	    origin_y   	2251

+	    items      	(list diagram_item_list

+		(object NoteView @80

+		    location   	(2865, 156)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@80

+			location   	(2484, 68)

+			fill_color 	13434879

+			nlines     	3

+			max_width  	726

+			label      	

+|11.39 4)

+|{self.triggers->forAll(t1, t2 | t1 <> t2 implies t1.name <> t2.name)}

+			)

+		    line_color 	3342489

+		    fill_color 	8454016

+		    width      	786

+		    height     	188)

+		(object ClassView "Class" "Logical View::SQLModel::Tables::ActionGranularityType" @81

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(338, 1326)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@81

+			location   	(81, 1242)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	514

+			justify    	0

+			label      	"ActionGranularityType")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@81

+			location   	(81, 1192)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	514

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	15329769

+		    quidu      	"3ED7E7AA03D3"

+		    compartment 	(object Compartment

+			Parent_View 	@81

+			location   	(81, 1303)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	3

+			max_width  	300)

+		    width      	532

+		    height     	292

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object NoteView @82

+		    location   	(2781, 456)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@82

+			location   	(2311, 387)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	904

+			label      	"There are retrictions on which SQL Statements may be used depending on the action time.")

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	964

+		    height     	150)

+		(object NoteView @83

+		    location   	(2744, 2131)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@83

+			location   	(2191, 2069)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	1071

+			label      	

+|11.39 6b):

+|{Set{self.subjectTable} = self.triggerColumn.table->asSet()}

+			)

+		    line_color 	3342489

+		    fill_color 	8454016

+		    width      	1131

+		    height     	137)

+		(object NoteView @84

+		    location   	(2722, 1272)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@84

+			location   	(2184, 1210)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	1041

+			label      	

+|11.39 9):

+|{self.oldRow <> "" implies self.actionGranularity = ROW}

+			)

+		    line_color 	3342489

+		    fill_color 	8454016

+		    width      	1101

+		    height     	137)

+		(object NoteView @85

+		    location   	(2721, 1112)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@85

+			location   	(2177, 1053)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	1052

+			label      	

+|11.39 9):

+|{self.newRow <> "" implies self.actionGranularity = ROW}

+			)

+		    line_color 	3342489

+		    fill_color 	8454016

+		    width      	1112

+		    height     	131)

+		(object ClassView "Class" "Logical View::SQLModel::Tables::ActionTimeType" @86

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(316, 1743)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@86

+			location   	(117, 1634)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	398

+			justify    	0

+			label      	"ActionTimeType")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@86

+			location   	(117, 1584)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	398

+			justify    	0

+			label      	"<<enumeration>>")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	15329769

+		    quidu      	"3ED7BF8D0340"

+		    compartment 	(object Compartment

+			Parent_View 	@86

+			location   	(117, 1695)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	4

+			max_width  	287)

+		    width      	416

+		    height     	342

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object NoteView @87

+		    location   	(2657, 1945)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@87

+			location   	(2188, 1864)

+			fill_color 	13434879

+			nlines     	3

+			max_width  	902

+			label      	

+|{self.actionTime = INSTEADOF implies (self.subjectTable.oclIsTypeOf(ViewTable) and self.actionGranularity = ROW and self.when = "")}

+			)

+		    line_color 	3342489

+		    fill_color 	8454016

+		    width      	962

+		    height     	174)

+		(object NoteView @88

+		    location   	(2726, 1688)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@88

+			location   	(2188, 1547)

+			fill_color 	13434879

+			nlines     	5

+			max_width  	1040

+			label      	

+|11.39 5):

+|{self.actionTime <> INSTEADOF implies self.subjectTable.oclIsTypeOf(PersistentTable) or (self.subjectTable.oclIsType(TemporaryTable) and self.subjectTable.isLocal = false)}

+			)

+		    line_color 	3342489

+		    fill_color 	8454016

+		    width      	1100

+		    height     	294)

+		(object NoteView @89

+		    location   	(2729, 1437)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@89

+			location   	(2197, 1378)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	1028

+			label      	

+|11.39 6a):

+|{self.triggerColumn->isUnique(c : Column | c}

+			)

+		    line_color 	3342489

+		    fill_color 	8454016

+		    width      	1088

+		    height     	131)

+		(object NoteView @90

+		    location   	(442, 206)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@90

+			location   	(39, 112)

+			fill_color 	13434879

+			nlines     	3

+			max_width  	770

+			label      	

+|11.39 12b):

+|{self.actionTime = BEFORE implies (self.oldTable = "" and self.newTable = "")}

+			)

+		    line_color 	3342489

+		    fill_color 	8454016

+		    width      	830

+		    height     	200)

+		(object NoteView @91

+		    location   	(822, 1524)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@91

+			location   	(647, 1465)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	315

+			label      	"Only for update trigger")

+		    line_color 	3342489

+		    fill_color 	16777088

+		    width      	375

+		    height     	131)

+		(object ClassView "Class" "Logical View::SQLModel::Schema::SQLObject" @92

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    location   	(1441, 200)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@92

+			location   	(1209, 71)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	464

+			justify    	0

+			label      	"SQLObject")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3E9B3EB5002B"

+		    compartment 	(object Compartment

+			Parent_View 	@92

+			location   	(1209, 176)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	TRUE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	3

+			max_width  	391)

+		    width      	482

+		    height     	282

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Statements::SQLStatement" @93

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    location   	(2786, 753)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@93

+			location   	(2589, 709)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	395

+			justify    	0

+			label      	"SQLStatement")

+		    stereotype 	(object ItemLabel

+			Parent_View 	@93

+			location   	(2589, 659)

+			fill_color 	13434879

+			anchor     	10

+			nlines     	1

+			max_width  	395

+			justify    	0

+			label      	"<<Interface>>")

+		    icon       	"Interface"

+		    icon_style 	"Label"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"404908A2008B"

+		    width      	413

+		    height     	213

+		    annotation 	8)

+		(object AttachView "" @94

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@93

+		    supplier   	@82

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLModel::Schema::Schema" @95

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2059, 155)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@95

+			location   	(1922, 77)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	274

+			justify    	0

+			label      	"Schema")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3ED523C20089"

+		    width      	292

+		    height     	180

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object AttachView "" @96

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@80

+		    supplier   	@95

+		    line_style 	3

+		    origin_attachment 	(2471, 248)

+		    terminal_attachment 	(2205, 248))

+		(object ClassView "Class" "Logical View::SQLModel::Tables::Column" @97

+		    ShowCompartmentStereotypes 	TRUE

+		    location   	(1097, 1999)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@97

+			location   	(993, 1947)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	208

+			justify    	0

+			label      	"Column")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3E9B2AFF0392"

+		    width      	226

+		    height     	128

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Tables::Table" @98

+		    ShowCompartmentStereotypes 	TRUE

+		    location   	(319, 667)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@98

+			location   	(60, 589)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	518

+			justify    	0

+			label      	"Table")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13828055

+		    quidu      	"3E9B1FB60047"

+		    width      	536

+		    height     	180

+		    annotation 	8)

+		(object ClassView "Class" "Logical View::SQLModel::Tables::Trigger" @99

+		    ShowCompartmentStereotypes 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1404, 903)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@99

+			location   	(766, 572)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	1276

+			justify    	0

+			label      	"Trigger")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3ED7B9780253"

+		    compartment 	(object Compartment

+			Parent_View 	@99

+			location   	(766, 633)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			icon_style 	"Icon"

+			fill_color 	16777215

+			anchor     	2

+			nlines     	12

+			max_width  	1085)

+		    width      	1294

+		    height     	686

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @100

+		    stereotype 	TRUE

+		    line_color 	16711680

+		    quidu      	"3ED7B99B023E"

+		    client     	@99

+		    supplier   	@92

+		    line_style 	3

+		    origin_attachment 	(1410, 559)

+		    terminal_attachment 	(1410, 340))

+		(object AssociationViewNew "" @101

+		    location   	(2315, 760)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	255

+		    quidu      	"3ED7E96D0133"

+		    roleview_list 	(list RoleViews

+			(object RoleView "actionStatement" @102

+			    Parent_View 	@101

+			    location   	(715, 136)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @103

+				Parent_View 	@102

+				location   	(2409, 722)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	320

+				justify    	0

+				label      	"-actionStatement"

+				pctDist    	0.360140

+				height     	39

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3ED7E96E0171"

+			    client     	@101

+			    supplier   	@93

+			    line_style 	3

+			    origin_attachment 	(2315, 760)

+			    terminal_attachment 	(2580, 760)

+			    label      	(object SegLabel @104

+				Parent_View 	@102

+				location   	(2512, 808)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	157

+				justify    	0

+				label      	"1..n"

+				pctDist    	0.748120

+				height     	48

+				orientation 	1))

+			(object RoleView "" @105

+			    Parent_View 	@101

+			    location   	(715, 136)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3ED7E96E0173"

+			    client     	@101

+			    supplier   	@99

+			    line_style 	3

+			    origin_attachment 	(2315, 760)

+			    terminal_attachment 	(2051, 760))))

+		(object AssociationViewNew "" @106

+		    location   	(1840, 402)

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3FA723C6004D"

+		    roleview_list 	(list RoleViews

+			(object RoleView "schema" @107

+			    Parent_View 	@106

+			    location   	(436, -501)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @108

+				Parent_View 	@107

+				location   	(2076, 280)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	179

+				justify    	0

+				label      	"+schema"

+				pctDist    	1.183945

+				height     	96

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3FA723C70257"

+			    client     	@106

+			    supplier   	@95

+			    line_style 	0

+			    label      	(object SegLabel @109

+				Parent_View 	@107

+				location   	(1912, 282)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"1"

+				pctDist    	0.659404

+				height     	27

+				orientation 	0))

+			(object RoleView "triggers" @110

+			    Parent_View 	@106

+			    location   	(436, -501)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @111

+				Parent_View 	@110

+				location   	(1859, 522)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	174

+				justify    	0

+				label      	"+triggers"

+				pctDist    	0.374701

+				height     	93

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3FA723C70243"

+			    client     	@106

+			    supplier   	@99

+			    line_style 	0

+			    label      	(object SegLabel @112

+				Parent_View 	@110

+				location   	(1673, 524)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	15

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.965151

+				height     	47

+				orientation 	1))))

+		(object AssociationViewNew "" @113

+		    location   	(1101, 1590)

+		    stereotype 	TRUE

+		    line_color 	255

+		    quidu      	"3ED7D9E50215"

+		    roleview_list 	(list RoleViews

+			(object RoleView "" @114

+			    Parent_View 	@113

+			    location   	(779, 100)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @115

+				Parent_View 	@114

+				location   	(1060, 1315)

+				font       	(object Font

+				    size       	12

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				hidden     	TRUE

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	450

+				justify    	0

+				label      	""

+				pctDist    	0.800000

+				height     	42

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3ED7D9E601C7"

+			    client     	@113

+			    supplier   	@99

+			    line_style 	3

+			    origin_attachment 	(1101, 1590)

+			    terminal_attachment 	(1101, 1246))

+			(object RoleView "triggerColumn" @116

+			    Parent_View 	@113

+			    location   	(779, 100)

+			    font       	(object Font

+				size       	12

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @117

+				Parent_View 	@116

+				location   	(1250, 1820)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	274

+				justify    	0

+				label      	"-triggerColumn"

+				pctDist    	0.668852

+				height     	149

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3ED7D9E601A8"

+			    client     	@113

+			    supplier   	@97

+			    line_style 	3

+			    origin_attachment 	(1101, 1590)

+			    terminal_attachment 	(1101, 1935)

+			    label      	(object SegLabel @118

+				Parent_View 	@116

+				location   	(1168, 1882)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	80

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.849180

+				height     	67

+				orientation 	0))))

+		(object AttachView "" @119

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@91

+		    supplier   	@113

+		    line_style 	0)

+		(object AssociationViewNew "" @120

+		    location   	(447, 927)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    stereotype 	TRUE

+		    line_color 	255

+		    quidu      	"3ED7BF3B0074"

+		    roleview_list 	(list RoleViews

+			(object RoleView "subjectTable" @121

+			    Parent_View 	@120

+			    location   	(-1057, 271)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @122

+				Parent_View 	@121

+				location   	(497, 788)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	252

+				justify    	0

+				label      	"-subjectTable"

+				pctDist    	-0.166667

+				height     	140

+				orientation 	1)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3ED7BF3E0331"

+			    client     	@120

+			    supplier   	@98

+			    vertices   	(list Points

+				(447, 927)

+				(307, 927)

+				(307, 757))

+			    line_style 	3

+			    origin_attachment 	(447, 927)

+			    terminal_attachment 	(307, 757)

+			    label      	(object SegLabel @123

+				Parent_View 	@121

+				location   	(247, 781)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	34

+				justify    	0

+				label      	"1"

+				pctDist    	0.921801

+				height     	61

+				orientation 	0))

+			(object RoleView "triggers" @124

+			    Parent_View 	@120

+			    location   	(-1057, 271)

+			    font       	(object Font

+				size       	10

+				face       	"Arial"

+				bold       	FALSE

+				italics    	FALSE

+				underline  	FALSE

+				strike     	FALSE

+				color      	0

+				default_color 	TRUE)

+			    label      	(object SegLabel @125

+				Parent_View 	@124

+				location   	(678, 891)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	1

+				anchor_loc 	1

+				nlines     	1

+				max_width  	147

+				justify    	0

+				label      	"-triggers"

+				pctDist    	0.745146

+				height     	37

+				orientation 	0)

+			    stereotype 	TRUE

+			    line_color 	3342489

+			    quidu      	"3ED7BF3E0333"

+			    client     	@120

+			    supplier   	@99

+			    line_style 	3

+			    origin_attachment 	(447, 927)

+			    terminal_attachment 	(757, 927)

+			    label      	(object SegLabel @126

+				Parent_View 	@124

+				location   	(693, 970)

+				font       	(object Font

+				    size       	10

+				    face       	"Arial"

+				    bold       	FALSE

+				    italics    	FALSE

+				    underline  	FALSE

+				    strike     	FALSE

+				    color      	0

+				    default_color 	TRUE)

+				anchor     	2

+				anchor_loc 	1

+				nlines     	1

+				max_width  	176

+				justify    	0

+				label      	"0..n"

+				pctDist    	0.793689

+				height     	43

+				orientation 	1))))

+		(object AttachView "" @127

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@87

+		    supplier   	@99

+		    vertices   	(list Points

+			(2175, 1898)

+			(1460, 1898)

+			(1460, 1246))

+		    line_style 	3

+		    origin_attachment 	(2175, 1898)

+		    terminal_attachment 	(1460, 1246))

+		(object AttachView "" @128

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@99

+		    supplier   	@83

+		    vertices   	(list Points

+			(1419, 1246)

+			(1419, 2101)

+			(2178, 2101))

+		    line_style 	3

+		    origin_attachment 	(1419, 1246)

+		    terminal_attachment 	(2178, 2101))

+		(object AttachView "" @129

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@99

+		    supplier   	@89

+		    vertices   	(list Points

+			(1563, 1246)

+			(1563, 1501)

+			(2184, 1501))

+		    line_style 	3

+		    origin_attachment 	(1563, 1246)

+		    terminal_attachment 	(2184, 1501))

+		(object AttachView "" @130

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@99

+		    supplier   	@84

+		    vertices   	(list Points

+			(1607, 1246)

+			(1607, 1338)

+			(2171, 1338))

+		    line_style 	3

+		    origin_attachment 	(1607, 1246)

+		    terminal_attachment 	(2171, 1338))

+		(object AttachView "" @131

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@99

+		    supplier   	@85

+		    vertices   	(list Points

+			(2051, 962)

+			(2210, 962)

+			(2210, 1046))

+		    line_style 	3

+		    origin_attachment 	(2051, 962)

+		    terminal_attachment 	(2210, 1046))

+		(object AttachView "" @132

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@99

+		    supplier   	@88

+		    vertices   	(list Points

+			(1513, 1246)

+			(1513, 1585)

+			(2175, 1585))

+		    line_style 	3

+		    origin_attachment 	(1513, 1246)

+		    terminal_attachment 	(2175, 1585))

+		(object AttachView "" @133

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    client     	@99

+		    supplier   	@90

+		    vertices   	(list Points

+			(1145, 560)

+			(1145, 181)

+			(857, 181))

+		    line_style 	3

+		    origin_attachment 	(1145, 560)

+		    terminal_attachment 	(857, 181))))))

diff --git a/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel.cat b/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel.cat
new file mode 100644
index 0000000..243bc3d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel.cat
@@ -0,0 +1,3439 @@
+

+(object Petal

+    version    	47

+    _written   	"Rose 8.0.0303.1400"

+    charSet    	0)

+

+(object Class_Category "SQLModel"

+    is_unit    	TRUE

+    is_loaded  	TRUE

+    attributes 	(list Attribute_Set

+	(object Attribute

+	    tool       	"eCore"

+	    name       	"basePackage"

+	    value      	(value Text "com.ibm.dbtools"))

+	(object Attribute

+	    tool       	"eCore"

+	    name       	"packageName"

+	    value      	(value Text "SQLModel"))

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"packageName"

+	    value      	(value Text "sqlmodel"))

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"nsPrefix"

+	    value      	(value Text "SQLModel"))

+	(object Attribute

+	    tool       	"Ecore"

+	    name       	"prefix"

+	    value      	(value Text "SQLModel")))

+    quid       	"3E9B1F8201C1"

+    exportControl 	"Public"

+    logical_models 	(list unit_reference_list

+	(object Association "$UNNAMED$0"

+	    quid       	"3FA723C6004D"

+	    roles      	(list role_list

+		(object Role "triggers"

+		    quid       	"3FA723C70243"

+		    label      	"triggers"

+		    supplier   	"Logical View::SQLModel::Tables::Trigger"

+		    quidu      	"3ED7B9780253"

+		    client_cardinality 	(value cardinality "0..n")

+		    is_navigable 	TRUE)

+		(object Role "schema"

+		    quid       	"3FA723C70257"

+		    label      	"schema"

+		    supplier   	"Logical View::SQLModel::Schema::Schema"

+		    quidu      	"3ED523C20089"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$1"

+	    quid       	"3FA7F6B60080"

+	    roles      	(list role_list

+		(object Role "dependencies"

+		    quid       	"3FA7F6BA0067"

+		    label      	"dependencies"

+		    supplier   	"Logical View::SQLModel::Schema::Dependency"

+		    quidu      	"3F967CB70382"

+		    client_cardinality 	(value cardinality "0..n")

+		    Containment 	"By Value"

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$2"

+		    quid       	"3FA7F6BA0069"

+		    supplier   	"Logical View::SQLModel::Schema::SQLObject"

+		    quidu      	"3E9B3EB5002B"

+		    client_cardinality 	(value cardinality "1")

+		    is_aggregate 	TRUE)))

+	(object Association "$UNNAMED$3"

+	    quid       	"3FA7F70F015C"

+	    roles      	(list role_list

+		(object Role "targetEnd"

+		    quid       	"3FA7F7110046"

+		    label      	"targetEnd"

+		    supplier   	"Logical View::ecore::EObject"

+		    quidu      	"3C4F1C860123"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE)

+		(object Role "$UNNAMED$4"

+		    quid       	"3FA7F7110050"

+		    supplier   	"Logical View::SQLModel::Schema::Dependency"

+		    quidu      	"3F967CB70382"

+		    client_cardinality 	(value cardinality "0..n")

+		    Containment 	"By Reference")))

+	(object Association "$UNNAMED$5"

+	    quid       	"3FA7FEAE0028"

+	    roles      	(list role_list

+		(object Role "$UNNAMED$6"

+		    quid       	"3FA7FEAF0336"

+		    supplier   	"Logical View::SQLModel::Schema::Schema"

+		    quidu      	"3ED523C20089"

+		    client_cardinality 	(value cardinality "1")

+		    is_navigable 	TRUE

+		    is_aggregate 	TRUE)

+		(object Role "indices"

+		    quid       	"3FA7FEAF0340"

+		    label      	"indices"

+		    supplier   	"Logical View::SQLModel::Constraints::Index"

+		    quidu      	"3FA7FB2B02AA"

+		    client_cardinality 	(value cardinality "0..n")

+		    Containment 	"By Reference"

+		    is_navigable 	TRUE)))

+	(object Class_Category "Schema"

+	    is_unit    	TRUE

+	    is_loaded  	FALSE

+	    file_name  	"$SQL_MODEL_PLUGIN_PATH\\org.eclipse.datatools.modelbase.sql\\model\\SQLModel-Schema.cat"

+	    quid       	"3F27D66B01AB")

+	(object Class_Category "Constraints"

+	    is_unit    	TRUE

+	    is_loaded  	FALSE

+	    file_name  	"$SQL_MODEL_PLUGIN_PATH\\org.eclipse.datatools.modelbase.sql\\model\\SQLModel-Constraints.cat"

+	    quid       	"3F27D6500062")

+	(object Class_Category "DataTypes"

+	    is_unit    	TRUE

+	    is_loaded  	FALSE

+	    file_name  	"$SQL_MODEL_PLUGIN_PATH\\org.eclipse.datatools.modelbase.sql\\model\\SQLModel-DataTypes.cat"

+	    quid       	"3F27D65902FA")

+	(object Class_Category "Expressions"

+	    is_unit    	TRUE

+	    is_loaded  	FALSE

+	    file_name  	"$SQL_MODEL_PLUGIN_PATH\\org.eclipse.datatools.modelbase.sql\\model\\SQLModel-Expressions.cat"

+	    quid       	"3F27D6790133")

+	(object Class_Category "Routines"

+	    is_unit    	TRUE

+	    is_loaded  	FALSE

+	    file_name  	"$SQL_MODEL_PLUGIN_PATH\\org.eclipse.datatools.modelbase.sql\\model\\SQLModel-Routines.cat"

+	    quid       	"3F4E81D80011")

+	(object Class_Category "Statements"

+	    is_unit    	TRUE

+	    is_loaded  	FALSE

+	    file_name  	"$SQL_MODEL_PLUGIN_PATH\\org.eclipse.datatools.modelbase.sql\\model\\SQLModel-Statements.cat"

+	    quid       	"4047743B009B")

+	(object Class_Category "Tables"

+	    is_unit    	TRUE

+	    is_loaded  	FALSE

+	    file_name  	"$SQL_MODEL_PLUGIN_PATH\\org.eclipse.datatools.modelbase.sql\\model\\SQLModel-Tables.cat"

+	    quid       	"4071D00F009F")

+	(object Class_Category "AccessControl"

+	    is_unit    	TRUE

+	    is_loaded  	FALSE

+	    file_name  	"$SQL_MODEL_PLUGIN_PATH\\org.eclipse.datatools.modelbase.sql\\model\\SQLModel-AccessControl.cat"

+	    quid       	"407D7B39011B"))

+    logical_presentations 	(list unit_reference_list

+	(object ClassDiagram "Main"

+	    quid       	"400C794E01D6"

+	    title      	"Main"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	0

+	    origin_y   	0

+	    items      	(list diagram_item_list

+		(object CategoryView "Logical View::SQLModel::Schema" @1

+		    location   	(959, 222)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@1

+			location   	(815, 138)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	288

+			justify    	0

+			label      	"Schema")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F27D66B01AB"

+		    width      	300

+		    height     	180)

+		(object CategoryView "Logical View::SQLModel::Tables" @2

+		    location   	(969, 615)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@2

+			location   	(825, 531)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	288

+			justify    	0

+			label      	"Tables")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4071D00F009F"

+		    width      	300

+		    height     	180)

+		(object CategoryView "Logical View::SQLModel::Statements" @3

+		    location   	(388, 1112)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@3

+			location   	(244, 1028)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	288

+			justify    	0

+			label      	"Statements")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4047743B009B"

+		    width      	300

+		    height     	180)

+		(object CategoryView "Logical View::SQLModel::Routines" @4

+		    location   	(994, 1109)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@4

+			location   	(850, 1025)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	288

+			justify    	0

+			label      	"Routines")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F4E81D80011"

+		    width      	300

+		    height     	180)

+		(object CategoryView "Logical View::SQLModel::Expressions" @5

+		    location   	(1622, 1103)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@5

+			location   	(1478, 1019)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	288

+			justify    	0

+			label      	"Expressions")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F27D6790133"

+		    width      	300

+		    height     	180)

+		(object CategoryView "Logical View::SQLModel::DataTypes" @6

+		    location   	(1603, 612)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@6

+			location   	(1459, 528)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	288

+			justify    	0

+			label      	"DataTypes")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F27D65902FA"

+		    width      	300

+		    height     	180)

+		(object CategoryView "Logical View::SQLModel::Constraints" @7

+		    location   	(381, 615)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@7

+			location   	(237, 531)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	288

+			justify    	0

+			label      	"Constraints")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F27D6500062"

+		    width      	300

+		    height     	180)

+		(object CategoryView "Logical View::SQLModel::AccessControl" @8

+		    location   	(378, 228)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@8

+			location   	(234, 144)

+			fill_color 	13434879

+			nlines     	2

+			max_width  	288

+			justify    	0

+			label      	"AccessControl")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"407D7B39011B"

+		    width      	300

+		    height     	180)))

+	(object ClassDiagram "Inheritance"

+	    quid       	"408D5659015D"

+	    title      	"Inheritance"

+	    zoom       	100

+	    max_height 	28350

+	    max_width  	21600

+	    origin_x   	3903

+	    origin_y   	863

+	    items      	(list diagram_item_list

+		(object ClassView "Class" "Logical View::SQLModel::AccessControl::Role" @9

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1808, 1505)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@9

+			location   	(1631, 1456)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	354

+			justify    	0

+			label      	"Role")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"407D810501F2"

+		    width      	372

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::AccessControl::RoleAuthorization" @10

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1849, 320)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@10

+			location   	(1645, 271)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	408

+			justify    	0

+			label      	"RoleAuthorization")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"407D811200EC"

+		    width      	426

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::AccessControl::User" @11

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2042, 1683)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@11

+			location   	(1865, 1634)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	354

+			justify    	0

+			label      	"User")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"407D80DD00FA"

+		    width      	372

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::AccessControl::Group" @12

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2271, 1499)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@12

+			location   	(2094, 1450)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	354

+			justify    	0

+			label      	"Group")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"407D80CF03C1"

+		    width      	372

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::ecore::EModelElement" @13

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2320, 318)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@13

+			location   	(2131, 269)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	378

+			justify    	0

+			label      	"EModelElement")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3903D4E40050"

+		    width      	396

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::ecore::ENamedElement" @14

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(3234, 621)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@14

+			location   	(3029, 572)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	410

+			justify    	0

+			label      	"ENamedElement")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3B65CCC600FE"

+		    width      	428

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Constraints::Constraint" @15

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(474, 1290)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@15

+			location   	(323, 1241)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	302

+			justify    	0

+			label      	"Constraint")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3ED5239F029C"

+		    width      	320

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Constraints::PrimaryKey" @16

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(750, 2330)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@16

+			location   	(599, 2281)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	302

+			justify    	0

+			label      	"PrimaryKey")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3ED5246901C3"

+		    width      	320

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Constraints::UniqueConstraint" @17

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(747, 2102)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@17

+			location   	(541, 2053)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	412

+			justify    	0

+			label      	"UniqueConstraint")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3ED52439006B"

+		    width      	430

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @18

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3ED55A4A0061"

+		    client     	@16

+		    supplier   	@17

+		    line_style 	0)

+		(object InheritTreeView "" @19

+		    location   	(474, 1441)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@15

+		    vertices   	(list Points

+			(474, 1441)

+			(474, 1351)))

+		(object InheritTreeView "" @20

+		    location   	(2320, 503)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@13

+		    vertices   	(list Points

+			(2320, 503)

+			(2320, 379)))

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::ArrayDataType" @21

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2918, 3312)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@21

+			location   	(2744, 3263)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	348

+			justify    	0

+			label      	"ArrayDataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F12D9F402F3"

+		    width      	366

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::BinaryStringDataType" @22

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(3947, 3087)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@22

+			location   	(3697, 3038)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	500

+			justify    	0

+			label      	"BinaryStringDataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F216A9801A3"

+		    width      	518

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::BooleanDataType" @23

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(4178, 2909)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@23

+			location   	(3964, 2860)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	428

+			justify    	0

+			label      	"BooleanDataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F216E800160"

+		    width      	446

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::CharacterStringDataType" @24

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(4797, 2921)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@24

+			location   	(4512, 2872)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	570

+			justify    	0

+			label      	"CharacterStringDataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F2186CB02E1"

+		    width      	588

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::ConstructedDataType" @25

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2618, 2599)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@25

+			location   	(2369, 2550)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	498

+			justify    	0

+			label      	"ConstructedDataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3FB90F4001F0"

+		    width      	516

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::DataLinkDataType" @26

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(5437, 2915)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@26

+			location   	(5217, 2866)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	440

+			justify    	0

+			label      	"DataLinkDataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"400DFA2202A3"

+		    width      	458

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::DateDataType" @27

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(5150, 3059)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@27

+			location   	(4978, 3010)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	344

+			justify    	0

+			label      	"DateDataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"402BB4A400B0"

+		    width      	362

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::Domain" @28

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1282, 2865)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@28

+			location   	(1134, 2816)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	296

+			justify    	0

+			label      	"Domain")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3EDF635C005F"

+		    width      	314

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Constraints::CheckConstraint" @29

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(928, 1827)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@29

+			location   	(729, 1778)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	398

+			justify    	0

+			label      	"CheckConstraint")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3ED5247D007B"

+		    width      	416

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::FixedPrecisionDataType" @30

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(4809, 3346)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@30

+			location   	(4534, 3297)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	550

+			justify    	0

+			label      	"FixedPrecisionDataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F54F5E9003C"

+		    width      	568

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::IntervalDataType" @31

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(5742, 3081)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@31

+			location   	(5540, 3032)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	404

+			justify    	0

+			label      	"IntervalDataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F216E7102DA"

+		    width      	422

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::MultisetDataType" @32

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2392, 3321)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@32

+			location   	(2182, 3272)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	420

+			justify    	0

+			label      	"MultisetDataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F12DA6600D0"

+		    width      	438

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::AttributeDefinition" @33

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(4505, 1596)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@33

+			location   	(4301, 1547)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	408

+			justify    	0

+			label      	"AttributeDefinition")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F54EF2F0194"

+		    width      	426

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::TimeDataType" @34

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(3662, 2903)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@34

+			location   	(3489, 2854)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	346

+			justify    	0

+			label      	"TimeDataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F216DF3039E"

+		    width      	364

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritTreeView "" @35

+		    location   	(2626, 2760)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@25

+		    vertices   	(list Points

+			(2626, 2760)

+			(2626, 2660)))

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::PredefinedDataType" @36

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(4159, 2660)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@36

+			location   	(3925, 2611)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	468

+			justify    	0

+			label      	"PredefinedDataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3EDF9E550371"

+		    width      	486

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::DistinctUserDefinedType" @37

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1280, 2621)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@37

+			location   	(1003, 2572)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	554

+			justify    	0

+			label      	"DistinctUserDefinedType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F4E44DD0126"

+		    width      	572

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Expressions::QueryExpressionDefault" @38

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1296, 1139)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@38

+			location   	(1020, 1090)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	552

+			justify    	0

+			label      	"QueryExpressionDefault")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"404912EB0127"

+		    width      	570

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Expressions::SearchConditionDefault" @39

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(975, 1289)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@39

+			location   	(708, 1240)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	534

+			justify    	0

+			label      	"SearchConditionDefault")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"404912F601A5"

+		    width      	552

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Expressions::ValueExpressionDefault" @40

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1590, 1299)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@40

+			location   	(1318, 1250)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	544

+			justify    	0

+			label      	"ValueExpressionDefault")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4049130202ED"

+		    width      	562

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Routines::Method" @41

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(3796, 1799)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@41

+			location   	(3664, 1750)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	264

+			justify    	0

+			label      	"Method")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"411A8B5200D1"

+		    width      	282

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::UserDefinedTypeOrdering" @42

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2956, 1283)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@42

+			location   	(2669, 1234)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	574

+			justify    	0

+			label      	"UserDefinedTypeOrdering")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"4022861B0225"

+		    width      	592

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Routines::Procedure" @43

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(3184, 1505)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@43

+			location   	(3049, 1456)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	270

+			justify    	0

+			label      	"Procedure")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F3D3B200263"

+		    width      	288

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Routines::RoutineResultTable" @44

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(5649, 1729)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@44

+			location   	(5416, 1680)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	466

+			justify    	0

+			label      	"RoutineResultTable")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3FB914C00279"

+		    width      	484

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Routines::Source" @45

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(3655, 1289)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@45

+			location   	(3523, 1240)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	264

+			justify    	0

+			label      	"Source")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F3D3B03023A"

+		    width      	282

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Routines::UserDefinedFunction" @46

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(3312, 1793)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@46

+			location   	(3072, 1744)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	480

+			justify    	0

+			label      	"UserDefinedFunction")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"411A8B5B016A"

+		    width      	498

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::AccessControl::Privilege" @47

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1321, 618)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@47

+			location   	(1144, 569)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	354

+			justify    	0

+			label      	"Privilege")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"407D806B013C"

+		    width      	372

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Schema::SQLObject" @48

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(3238, 861)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@48

+			location   	(3100, 812)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	276

+			justify    	0

+			label      	"SQLObject")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3E9B3EB5002B"

+		    width      	294

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @49

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3FB0FE5501DD"

+		    client     	@48

+		    supplier   	@14

+		    line_style 	0)

+		(object InheritTreeView "" @50

+		    location   	(3238, 1038)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@48

+		    vertices   	(list Points

+			(3238, 1038)

+			(3238, 922)))

+		(object InheritView "" @51

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3ED52ECA0076"

+		    client     	@15

+		    supplier   	@48

+		    line_style 	3

+		    origin_attachment 	(472, 1229)

+		    terminal_attachment 	(472, 1038)

+		    drawSupplier 	@50)

+		(object InheritView "" @52

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"40228CC1001A"

+		    client     	@42

+		    supplier   	@48

+		    line_style 	3

+		    origin_attachment 	(2957, 1222)

+		    terminal_attachment 	(2957, 1038)

+		    drawSupplier 	@50)

+		(object InheritView "" @53

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"404913FB0132"

+		    client     	@39

+		    supplier   	@48

+		    line_style 	3

+		    origin_attachment 	(975, 1228)

+		    terminal_attachment 	(975, 1038)

+		    drawSupplier 	@50)

+		(object InheritView "" @54

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4049140E0068"

+		    client     	@40

+		    supplier   	@48

+		    line_style 	3

+		    origin_attachment 	(1590, 1238)

+		    terminal_attachment 	(1590, 1038)

+		    drawSupplier 	@50)

+		(object InheritView "" @55

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"4049140202B9"

+		    client     	@38

+		    supplier   	@48

+		    line_style 	3

+		    origin_attachment 	(1296, 1078)

+		    terminal_attachment 	(1296, 1038)

+		    drawSupplier 	@50)

+		(object InheritView "" @56

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3F3D52BA03C0"

+		    client     	@45

+		    supplier   	@48

+		    line_style 	3

+		    origin_attachment 	(3655, 1228)

+		    terminal_attachment 	(3655, 1038)

+		    drawSupplier 	@50)

+		(object ClassView "Class" "Logical View::ecore::EObject" @57

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2322, 77)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@57

+			location   	(2217, 28)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	210

+			justify    	0

+			label      	"EObject")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3C4F1C860123"

+		    width      	228

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @58

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3C4F1CC50336"

+		    client     	@13

+		    supplier   	@57

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLModel::Schema::Dependency" @59

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(3868, 1154)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@59

+			location   	(3717, 1105)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	302

+			justify    	0

+			label      	"Dependency")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F967CB70382"

+		    width      	320

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @60

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3F967CC7023A"

+		    client     	@59

+		    supplier   	@48

+		    line_style 	3

+		    origin_attachment 	(3868, 1093)

+		    terminal_attachment 	(3868, 1038)

+		    drawSupplier 	@50)

+		(object ClassView "Class" "Logical View::SQLModel::Schema::Database" @61

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(4090, 1348)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@61

+			location   	(3961, 1299)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	258

+			justify    	0

+			label      	"Database")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3FFDB2AD0234"

+		    width      	276

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @62

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3FFDB2FD0026"

+		    client     	@61

+		    supplier   	@48

+		    line_style 	3

+		    origin_attachment 	(4090, 1287)

+		    terminal_attachment 	(4090, 1038)

+		    drawSupplier 	@50)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::CharacterSet" @63

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2412, 1286)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@63

+			location   	(2252, 1237)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	320

+			justify    	0

+			label      	"CharacterSet")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F25755001A0"

+		    width      	338

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @64

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3F4E47750293"

+		    client     	@63

+		    supplier   	@48

+		    line_style 	3

+		    origin_attachment 	(2412, 1225)

+		    terminal_attachment 	(2412, 1038)

+		    drawSupplier 	@50)

+		(object ClassView "Class" "Logical View::SQLModel::AccessControl::AuthorizationIdentifier" @65

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2039, 1134)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@65

+			location   	(1785, 1084)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	508

+			justify    	0

+			label      	"AuthorizationIdentifier")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"407D7FA3017A"

+		    width      	526

+		    height     	124

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @66

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"407D8033002D"

+		    client     	@65

+		    supplier   	@48

+		    line_style 	3

+		    origin_attachment 	(2041, 1072)

+		    terminal_attachment 	(2041, 1038)

+		    drawSupplier 	@50)

+		(object ClassView "Class" "Logical View::SQLModel::Schema::Sequence" @67

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(4921, 1589)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@67

+			location   	(4792, 1540)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	258

+			justify    	0

+			label      	"Sequence")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3FABF02B03CD"

+		    width      	276

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::SQLDataType" @68

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(3514, 2300)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@68

+			location   	(3349, 2251)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	330

+			justify    	0

+			label      	"SQLDataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3FB90EE3009E"

+		    width      	348

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritTreeView "" @69

+		    location   	(3488, 2498)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@68

+		    vertices   	(list Points

+			(3488, 2498)

+			(3488, 2361)))

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::UserDefinedType" @70

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1555, 2287)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@70

+			location   	(1356, 2238)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	398

+			justify    	0

+			label      	"UserDefinedType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3EDF9E8100EB"

+		    width      	416

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Schema::TypedElement" @71

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(4573, 1329)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@71

+			location   	(4399, 1280)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	348

+			justify    	0

+			label      	"TypedElement")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3FA6A8930071"

+		    width      	366

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @72

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3FA6A8DF0200"

+		    client     	@71

+		    supplier   	@48

+		    line_style 	3

+		    origin_attachment 	(4575, 1268)

+		    terminal_attachment 	(4575, 1038)

+		    drawSupplier 	@50)

+		(object InheritTreeView "" @73

+		    location   	(4573, 1490)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@71

+		    vertices   	(list Points

+			(4573, 1490)

+			(4573, 1390)))

+		(object InheritView "" @74

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3FABF052024A"

+		    client     	@67

+		    supplier   	@71

+		    line_style 	3

+		    origin_attachment 	(4921, 1528)

+		    terminal_attachment 	(4921, 1490)

+		    drawSupplier 	@73)

+		(object InheritView "" @75

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3FA6AA01002E"

+		    client     	@33

+		    supplier   	@71

+		    line_style 	3

+		    origin_attachment 	(4505, 1535)

+		    terminal_attachment 	(4505, 1490)

+		    drawSupplier 	@73)

+		(object ClassView "Class" "Logical View::SQLModel::Statements::SQLStatementDefault" @76

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(4915, 1158)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@76

+			location   	(4664, 1109)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	502

+			justify    	0

+			label      	"SQLStatementDefault")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"40490988012C"

+		    width      	520

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @77

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"40490AB50342"

+		    client     	@76

+		    supplier   	@48

+		    line_style 	3

+		    origin_attachment 	(4915, 1097)

+		    terminal_attachment 	(4915, 1038)

+		    drawSupplier 	@50)

+		(object ClassView "Class" "Logical View::SQLModel::Constraints::TableConstraint" @78

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(747, 1545)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@78

+			location   	(553, 1496)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	388

+			justify    	0

+			label      	"TableConstraint")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3ED52ACF000F"

+		    width      	406

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @79

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3ED52B490312"

+		    client     	@78

+		    supplier   	@15

+		    line_style 	3

+		    origin_attachment 	(735, 1484)

+		    terminal_attachment 	(735, 1441)

+		    drawSupplier 	@19)

+		(object ClassView "Class" "Logical View::SQLModel::Tables::BaseTable" @80

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(5268, 1565)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@80

+			location   	(5127, 1516)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	282

+			justify    	0

+			label      	"BaseTable")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3E9B41900372"

+		    width      	300

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Constraints::Assertion" @81

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(263, 1546)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@81

+			location   	(112, 1497)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	302

+			justify    	0

+			label      	"Assertion")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3ED524BC0165"

+		    width      	320

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @82

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3ED52B5201F9"

+		    client     	@81

+		    supplier   	@15

+		    line_style 	3

+		    origin_attachment 	(263, 1485)

+		    terminal_attachment 	(263, 1441)

+		    drawSupplier 	@19)

+		(object ClassView "Class" "Logical View::SQLModel::Schema::IdentitySpecifier" @83

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2786, 314)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@83

+			location   	(2597, 265)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	378

+			justify    	0

+			label      	"IdentitySpecifier")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3EA3F30101D3"

+		    width      	396

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Constraints::ReferenceConstraint" @84

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(418, 1827)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@84

+			location   	(182, 1778)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	472

+			justify    	0

+			label      	"ReferenceConstraint")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3EDE52410316"

+		    width      	490

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritTreeView "" @85

+		    location   	(419, 1988)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@84

+		    vertices   	(list Points

+			(419, 1988)

+			(419, 1888)))

+		(object InheritView "" @86

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3ED548B9004E"

+		    client     	@17

+		    supplier   	@84

+		    line_style 	3

+		    origin_attachment 	(726, 2040)

+		    terminal_attachment 	(726, 1988)

+		    drawSupplier 	@85)

+		(object ClassView "Class" "Logical View::SQLModel::Constraints::ForeignKey" @87

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(319, 2105)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@87

+			location   	(168, 2056)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	302

+			justify    	0

+			label      	"ForeignKey")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3EDF626C0085"

+		    width      	320

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @88

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3ED548BC006E"

+		    client     	@87

+		    supplier   	@84

+		    line_style 	3

+		    origin_attachment 	(304, 2043)

+		    terminal_attachment 	(304, 1988)

+		    drawSupplier 	@85)

+		(object ClassView "Class" "Logical View::SQLModel::Constraints::IndexMember" @89

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(694, 1139)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@89

+			location   	(530, 1090)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	328

+			justify    	0

+			label      	"IndexMember")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3FA807740185"

+		    width      	346

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @90

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3FB9179A0047"

+		    client     	@89

+		    supplier   	@48

+		    line_style 	3

+		    origin_attachment 	(694, 1078)

+		    terminal_attachment 	(694, 1038)

+		    drawSupplier 	@50)

+		(object ClassView "Class" "Logical View::SQLModel::Tables::DerivedTable" @91

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(6028, 1576)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@91

+			location   	(5867, 1527)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	322

+			justify    	0

+			label      	"DerivedTable")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3E9B419D0352"

+		    width      	340

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Tables::PersistentTable" @92

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(5006, 1964)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@92

+			location   	(4813, 1915)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	386

+			justify    	0

+			label      	"PersistentTable")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F579E8E01D1"

+		    width      	404

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Tables::TemporaryTable" @93

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(5465, 1961)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@93

+			location   	(5278, 1912)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	374

+			justify    	0

+			label      	"TemporaryTable")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F579E8200B1"

+		    width      	392

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Tables::ViewTable" @94

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(6026, 1967)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@94

+			location   	(5890, 1918)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	272

+			justify    	0

+			label      	"ViewTable")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3E9B4230022F"

+		    width      	290

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @95

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3E9B423903A5"

+		    client     	@94

+		    supplier   	@91

+		    line_style 	0)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::DataType" @96

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2616, 1142)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@96

+			location   	(2471, 1093)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	290

+			justify    	0

+			label      	"DataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3E9B3F3400BF"

+		    width      	308

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::CollectionDataType" @97

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2662, 3031)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@97

+			location   	(2432, 2982)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	460

+			justify    	0

+			label      	"CollectionDataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F12D9CF01F9"

+		    width      	478

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @98

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3F33B2630206"

+		    client     	@97

+		    supplier   	@25

+		    line_style 	3

+		    origin_attachment 	(2635, 2970)

+		    terminal_attachment 	(2635, 2760)

+		    drawSupplier 	@35)

+		(object InheritView "" @99

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3F38F4C800D1"

+		    client     	@96

+		    supplier   	@48

+		    line_style 	3

+		    origin_attachment 	(2616, 1081)

+		    terminal_attachment 	(2616, 1038)

+		    drawSupplier 	@50)

+		(object InheritTreeView "" @100

+		    location   	(2616, 2159)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@96

+		    vertices   	(list Points

+			(2616, 2159)

+			(2616, 1203)))

+		(object InheritView "" @101

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3EDF9E9C001D"

+		    client     	@70

+		    supplier   	@96

+		    line_style 	3

+		    origin_attachment 	(1553, 2226)

+		    terminal_attachment 	(1553, 2159)

+		    drawSupplier 	@100)

+		(object InheritTreeView "" @102

+		    location   	(735, 1713)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@78

+		    vertices   	(list Points

+			(735, 1713)

+			(735, 1606)))

+		(object InheritView "" @103

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3EDE53940170"

+		    client     	@29

+		    supplier   	@78

+		    line_style 	3

+		    origin_attachment 	(1042, 1766)

+		    terminal_attachment 	(1042, 1713)

+		    drawSupplier 	@102)

+		(object InheritView "" @104

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3EDE538E0161"

+		    client     	@84

+		    supplier   	@78

+		    line_style 	3

+		    origin_attachment 	(416, 1766)

+		    terminal_attachment 	(416, 1713)

+		    drawSupplier 	@102)

+		(object InheritTreeView "" @105

+		    location   	(2029, 1394)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@65

+		    vertices   	(list Points

+			(2029, 1394)

+			(2029, 1196)))

+		(object InheritView "" @106

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"407D814B0012"

+		    client     	@9

+		    supplier   	@65

+		    line_style 	3

+		    origin_attachment 	(1806, 1444)

+		    terminal_attachment 	(1806, 1394)

+		    drawSupplier 	@105)

+		(object InheritView "" @107

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"407D81390215"

+		    client     	@12

+		    supplier   	@65

+		    line_style 	3

+		    origin_attachment 	(2228, 1437)

+		    terminal_attachment 	(2228, 1394)

+		    drawSupplier 	@105)

+		(object ClassView "Class" "Logical View::SQLModel::Tables::Column" @108

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(4065, 1589)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@108

+			location   	(3949, 1540)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	232

+			justify    	0

+			label      	"Column")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3E9B2AFF0392"

+		    width      	250

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @109

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3FA6A8C500EB"

+		    client     	@108

+		    supplier   	@71

+		    line_style 	3

+		    origin_attachment 	(4164, 1527)

+		    terminal_attachment 	(4164, 1490)

+		    drawSupplier 	@73)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::StructuredUserDefinedType" @110

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(1977, 2609)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@110

+			location   	(1671, 2560)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	612

+			justify    	0

+			label      	"StructuredUserDefinedType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F4E44E8001C"

+		    width      	630

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Tables::Trigger" @111

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(5262, 1326)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@111

+			location   	(5146, 1277)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	232

+			justify    	0

+			label      	"Trigger")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3ED7B9780253"

+		    width      	250

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @112

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3ED7B99B023E"

+		    client     	@111

+		    supplier   	@48

+		    line_style 	3

+		    origin_attachment 	(5262, 1265)

+		    terminal_attachment 	(5262, 1038)

+		    drawSupplier 	@50)

+		(object ClassView "Class" "Logical View::SQLModel::Schema::Schema" @113

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(4296, 1148)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@113

+			location   	(4167, 1099)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	258

+			justify    	0

+			label      	"Schema")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3ED523C20089"

+		    width      	276

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @114

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3ED52ED402B8"

+		    client     	@113

+		    supplier   	@48

+		    line_style 	3

+		    origin_attachment 	(4296, 1087)

+		    terminal_attachment 	(4296, 1038)

+		    drawSupplier 	@50)

+		(object ClassView "Class" "Logical View::SQLModel::Constraints::Index" @115

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(269, 1134)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@115

+			location   	(118, 1085)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	302

+			justify    	0

+			label      	"Index")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3FA7FB2B02AA"

+		    width      	320

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @116

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3FA807570399"

+		    client     	@115

+		    supplier   	@48

+		    line_style 	3

+		    origin_attachment 	(269, 1073)

+		    terminal_attachment 	(269, 1038)

+		    drawSupplier 	@50)

+		(object ClassView "Class" "Logical View::SQLModel::Tables::Table" @117

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(5615, 1186)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@117

+			location   	(5502, 1137)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	226

+			justify    	0

+			label      	"Table")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3E9B1FB60047"

+		    width      	244

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::ReferenceDataType" @118

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2957, 2868)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@118

+			location   	(2726, 2819)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	462

+			justify    	0

+			label      	"ReferenceDataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F12DAE001E9"

+		    width      	480

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @119

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3F12DAFD0257"

+		    client     	@118

+		    supplier   	@25

+		    line_style 	3

+		    origin_attachment 	(2944, 2806)

+		    terminal_attachment 	(2944, 2760)

+		    drawSupplier 	@35)

+		(object InheritView "" @120

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3FA6A8EE02C0"

+		    client     	@117

+		    supplier   	@48

+		    line_style 	3

+		    origin_attachment 	(5609, 1124)

+		    terminal_attachment 	(5609, 1038)

+		    drawSupplier 	@50)

+		(object InheritTreeView "" @121

+		    location   	(5268, 1829)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@80

+		    vertices   	(list Points

+			(5268, 1829)

+			(5268, 1626)))

+		(object InheritView "" @122

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3F579EC0006A"

+		    client     	@93

+		    supplier   	@80

+		    line_style 	3

+		    origin_attachment 	(5465, 1900)

+		    terminal_attachment 	(5465, 1829)

+		    drawSupplier 	@121)

+		(object InheritTreeView "" @123

+		    location   	(5615, 1425)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@117

+		    vertices   	(list Points

+			(5615, 1425)

+			(5615, 1247)))

+		(object InheritView "" @124

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3E9B41AB03BF"

+		    client     	@91

+		    supplier   	@117

+		    line_style 	3

+		    origin_attachment 	(6029, 1515)

+		    terminal_attachment 	(6029, 1425)

+		    drawSupplier 	@123)

+		(object InheritView "" @125

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3C8D4364024F"

+		    client     	@14

+		    supplier   	@13

+		    line_style 	3

+		    origin_attachment 	(3232, 560)

+		    terminal_attachment 	(3232, 503)

+		    drawSupplier 	@20)

+		(object InheritView "" @126

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"407D81430219"

+		    client     	@11

+		    supplier   	@65

+		    line_style 	3

+		    origin_attachment 	(2028, 1622)

+		    terminal_attachment 	(2028, 1394)

+		    drawSupplier 	@105)

+		(object InheritView "" @127

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3F579EC302B3"

+		    client     	@92

+		    supplier   	@80

+		    line_style 	3

+		    origin_attachment 	(5034, 1902)

+		    terminal_attachment 	(5034, 1829)

+		    drawSupplier 	@121)

+		(object InheritTreeView "" @128

+		    location   	(1557, 2450)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@70

+		    vertices   	(list Points

+			(1557, 2450)

+			(1557, 2348)))

+		(object InheritView "" @129

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3F4E452201D4"

+		    client     	@110

+		    supplier   	@70

+		    line_style 	3

+		    origin_attachment 	(1935, 2548)

+		    terminal_attachment 	(1935, 2450)

+		    drawSupplier 	@128)

+		(object InheritView "" @130

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3F4E451F02FC"

+		    client     	@37

+		    supplier   	@70

+		    line_style 	3

+		    origin_attachment 	(1279, 2560)

+		    terminal_attachment 	(1279, 2450)

+		    drawSupplier 	@128)

+		(object InheritView "" @131

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3FB90F2302E1"

+		    client     	@36

+		    supplier   	@68

+		    line_style 	3

+		    origin_attachment 	(4260, 2599)

+		    terminal_attachment 	(4260, 2498)

+		    drawSupplier 	@69)

+		(object InheritView "" @132

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3FB90F3400D1"

+		    client     	@68

+		    supplier   	@96

+		    line_style 	3

+		    origin_attachment 	(3529, 2239)

+		    terminal_attachment 	(3529, 2159)

+		    drawSupplier 	@100)

+		(object InheritTreeView "" @133

+		    location   	(2651, 3194)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@97

+		    vertices   	(list Points

+			(2651, 3194)

+			(2651, 3092)))

+		(object InheritView "" @134

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3F12DA7002F3"

+		    client     	@32

+		    supplier   	@97

+		    line_style 	3

+		    origin_attachment 	(2394, 3260)

+		    terminal_attachment 	(2394, 3194)

+		    drawSupplier 	@133)

+		(object InheritView "" @135

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3F12DA580014"

+		    client     	@21

+		    supplier   	@97

+		    line_style 	3

+		    origin_attachment 	(2913, 3250)

+		    terminal_attachment 	(2913, 3194)

+		    drawSupplier 	@133)

+		(object InheritTreeView "" @136

+		    location   	(4159, 2823)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@36

+		    vertices   	(list Points

+			(4159, 2823)

+			(4159, 2721)))

+		(object InheritView "" @137

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"402BB4E7028D"

+		    client     	@34

+		    supplier   	@36

+		    line_style 	3

+		    origin_attachment 	(3662, 2842)

+		    terminal_attachment 	(3662, 2823)

+		    drawSupplier 	@136)

+		(object InheritView "" @138

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3F3004830361"

+		    client     	@23

+		    supplier   	@36

+		    line_style 	3

+		    origin_attachment 	(4178, 2848)

+		    terminal_attachment 	(4178, 2823)

+		    drawSupplier 	@136)

+		(object InheritView "" @139

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3F2FC6F3031D"

+		    client     	@22

+		    supplier   	@36

+		    line_style 	3

+		    origin_attachment 	(3947, 3026)

+		    terminal_attachment 	(3947, 2823)

+		    drawSupplier 	@136)

+		(object InheritView "" @140

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"402BB4B30333"

+		    client     	@27

+		    supplier   	@36

+		    line_style 	3

+		    origin_attachment 	(5153, 2998)

+		    terminal_attachment 	(5153, 2823)

+		    drawSupplier 	@136)

+		(object InheritView "" @141

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3F218707016A"

+		    client     	@24

+		    supplier   	@36

+		    line_style 	3

+		    origin_attachment 	(4569, 2860)

+		    terminal_attachment 	(4569, 2823)

+		    drawSupplier 	@136)

+		(object InheritView "" @142

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"402BB4EC0335"

+		    client     	@31

+		    supplier   	@36

+		    line_style 	3

+		    origin_attachment 	(5725, 3020)

+		    terminal_attachment 	(5725, 2823)

+		    drawSupplier 	@136)

+		(object InheritView "" @143

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"400DFA6603D7"

+		    client     	@26

+		    supplier   	@36

+		    line_style 	3

+		    origin_attachment 	(5428, 2853)

+		    terminal_attachment 	(5428, 2823)

+		    drawSupplier 	@136)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::NumericalDataType" @144

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(4463, 3093)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@144

+			location   	(4230, 3047)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	466

+			justify    	0

+			label      	"NumericalDataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F2693990310"

+		    width      	484

+		    height     	117

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @145

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3F2693F9022B"

+		    client     	@144

+		    supplier   	@36

+		    line_style 	3

+		    origin_attachment 	(4463, 3035)

+		    terminal_attachment 	(4463, 2823)

+		    drawSupplier 	@136)

+		(object InheritView "" @146

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3E9B41A50390"

+		    client     	@80

+		    supplier   	@117

+		    line_style 	3

+		    origin_attachment 	(5268, 1504)

+		    terminal_attachment 	(5268, 1425)

+		    drawSupplier 	@123)

+		(object InheritView "" @147

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3FB914DA038D"

+		    client     	@44

+		    supplier   	@117

+		    line_style 	3

+		    origin_attachment 	(5621, 1668)

+		    terminal_attachment 	(5621, 1425)

+		    drawSupplier 	@123)

+		(object ClassView "Class" "Logical View::SQLModel::Routines::Routine" @148

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(3421, 1161)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@148

+			location   	(3290, 1112)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	262

+			justify    	0

+			label      	"Routine")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F3D36420226"

+		    width      	280

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritTreeView "" @149

+		    location   	(3421, 1369)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@148

+		    vertices   	(list Points

+			(3421, 1369)

+			(3421, 1222)))

+		(object InheritView "" @150

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3F3D3B9D03E0"

+		    client     	@43

+		    supplier   	@148

+		    line_style 	3

+		    origin_attachment 	(3221, 1444)

+		    terminal_attachment 	(3221, 1369)

+		    drawSupplier 	@149)

+		(object InheritView "" @151

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3F3D37160216"

+		    client     	@148

+		    supplier   	@48

+		    line_style 	3

+		    origin_attachment 	(3446, 1100)

+		    terminal_attachment 	(3446, 1038)

+		    drawSupplier 	@50)

+		(object ClassView "Class" "Logical View::SQLModel::Routines::Parameter" @152

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(4765, 1761)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@152

+			location   	(4631, 1712)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	268

+			justify    	0

+			label      	"Parameter")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F3D3B0F022D"

+		    width      	286

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::Routines::Function" @153

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(3634, 1508)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	TRUE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@153

+			location   	(3503, 1459)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	262

+			justify    	0

+			label      	"Function")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F3D3B50012C"

+		    width      	280

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritTreeView "" @154

+		    location   	(3634, 1659)

+		    line_color 	3342489

+		    fill_color 	13434879

+		    supplier   	@153

+		    vertices   	(list Points

+			(3634, 1659)

+			(3634, 1569)))

+		(object InheritView "" @155

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"411A8B92012D"

+		    client     	@41

+		    supplier   	@153

+		    line_style 	3

+		    origin_attachment 	(3821, 1738)

+		    terminal_attachment 	(3821, 1659)

+		    drawSupplier 	@154)

+		(object InheritView "" @156

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"411A8B8F006B"

+		    client     	@46

+		    supplier   	@153

+		    line_style 	3

+		    origin_attachment 	(3331, 1731)

+		    terminal_attachment 	(3331, 1659)

+		    drawSupplier 	@154)

+		(object InheritView "" @157

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3F3D3B9A01F1"

+		    client     	@153

+		    supplier   	@148

+		    line_style 	3

+		    origin_attachment 	(3659, 1446)

+		    terminal_attachment 	(3659, 1369)

+		    drawSupplier 	@149)

+		(object InheritView "" @158

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3F3D3EDF00A0"

+		    client     	@152

+		    supplier   	@71

+		    line_style 	3

+		    origin_attachment 	(4765, 1700)

+		    terminal_attachment 	(4765, 1490)

+		    drawSupplier 	@73)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::Field" @159

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(4252, 1758)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@159

+			location   	(4104, 1709)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	296

+			justify    	0

+			label      	"Field")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3ED24C4E001D"

+		    width      	314

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object ClassView "Class" "Logical View::SQLModel::DataTypes::RowDataType" @160

+		    ShowCompartmentStereotypes 	TRUE

+		    SuppressAttribute 	TRUE

+		    SuppressOperation 	TRUE

+		    IncludeAttribute 	TRUE

+		    IncludeOperation 	TRUE

+		    location   	(2404, 2865)

+		    font       	(object Font

+			size       	10

+			face       	"Arial"

+			bold       	FALSE

+			italics    	FALSE

+			underline  	FALSE

+			strike     	FALSE

+			color      	0

+			default_color 	TRUE)

+		    label      	(object ItemLabel

+			Parent_View 	@160

+			location   	(2238, 2816)

+			fill_color 	13434879

+			nlines     	1

+			max_width  	332

+			justify    	0

+			label      	"RowDataType")

+		    icon_style 	"Icon"

+		    line_color 	3342489

+		    fill_color 	13434879

+		    quidu      	"3F12DAEF016C"

+		    width      	350

+		    height     	122

+		    annotation 	8

+		    autoResize 	TRUE)

+		(object InheritView "" @161

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3F12DAFB013D"

+		    client     	@160

+		    supplier   	@25

+		    line_style 	3

+		    origin_attachment 	(2382, 2804)

+		    terminal_attachment 	(2382, 2760)

+		    drawSupplier 	@35)

+		(object InheritView "" @162

+		    stereotype 	TRUE

+		    line_color 	3342489

+		    quidu      	"3ED2511800EF"

+		    client     	@159

+		    supplier   	@71

+		    line_style 	3

+		    origin_attachment 	(4253, 1697)

+		    terminal_attachment 	(4253, 1490)

+		    drawSupplier 	@73)))))

diff --git a/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel.mdl b/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel.mdl
new file mode 100644
index 0000000..e6f7e77
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/model/SQLModel.mdl
@@ -0,0 +1,6755 @@
+

+(object Petal

+    version    	50

+    _written   	"Rose 2006.0.0.060314"

+    charSet    	0)

+

+(object Design "Logical View"

+    is_unit    	TRUE

+    is_loaded  	TRUE

+    attributes 	(list Attribute_Set

+	(object Attribute

+	    tool       	"Java"

+	    name       	"IDE"

+	    value      	"Internal Editor")

+	(object Attribute

+	    tool       	"Java"

+	    name       	"UserDefineTagName1"

+	    value      	"")

+	(object Attribute

+	    tool       	"Java"

+	    name       	"UserDefineTagText1"

+	    value      	"")

+	(object Attribute

+	    tool       	"Java"

+	    name       	"UserDefineTagApply1"

+	    value      	"")

+	(object Attribute

+	    tool       	"Java"

+	    name       	"UserDefineTagName2"

+	    value      	"")

+	(object Attribute

+	    tool       	"Java"

+	    name       	"UserDefineTagText2"

+	    value      	"")

+	(object Attribute

+	    tool       	"Java"

+	    name       	"UserDefineTagApply2"

+	    value      	"")

+	(object Attribute

+	    tool       	"Java"

+	    name       	"UserDefineTagName3"

+	    value      	"")

+	(object Attribute

+	    tool       	"Java"

+	    name       	"UserDefineTagText3"

+	    value      	"")

+	(object Attribute

+	    tool       	"Java"

+	    name       	"UserDefineTagApply3"

+	    value      	""))

+    quid       	"3F26AE4D02FF"

+    enforceClosureAutoLoad 	FALSE

+    defaults   	(object defaults

+	rightMargin 	0.250000

+	leftMargin 	0.250000

+	topMargin  	0.250000

+	bottomMargin 	0.500000

+	pageOverlap 	0.250000

+	clipIconLabels 	TRUE

+	autoResize 	TRUE

+	snapToGrid 	FALSE

+	gridX      	3

+	gridY      	3

+	defaultFont 	(object Font

+	    size       	10

+	    face       	"Arial"

+	    bold       	FALSE

+	    italics    	FALSE

+	    underline  	FALSE

+	    strike     	FALSE

+	    color      	0

+	    default_color 	TRUE)

+	showMessageNum 	3

+	showClassOfObject 	TRUE

+	notation   	"Unified")

+    root_usecase_package 	(object Class_Category "Use Case View"

+	quid       	"3F26AE4D0301"

+	exportControl 	"Public"

+	global     	TRUE

+	logical_models 	(list unit_reference_list)

+	logical_presentations 	(list unit_reference_list

+	    (object UseCaseDiagram "Main"

+		quid       	"3F26AE4D030B"

+		title      	"Main"

+		zoom       	100

+		max_height 	28350

+		max_width  	21600

+		origin_x   	0

+		origin_y   	0

+		items      	(list diagram_item_list))))

+    root_category 	(object Class_Category "Logical View"

+	quid       	"3F26AE4D0300"

+	exportControl 	"Public"

+	global     	TRUE

+	subsystem  	"Component View"

+	quidu      	"3F26AE4D0302"

+	logical_models 	(list unit_reference_list

+	    (object Class_Category "SQLModel"

+		is_unit    	TRUE

+		is_loaded  	FALSE

+		file_name  	"$SQL_MODEL_PLUGIN_PATH\\org.eclipse.datatools.modelbase.sql\\model\\SQLModel.cat"

+		quid       	"3E9B1F8201C1")

+	    (object Class_Category "ecore"

+		is_unit    	TRUE

+		is_loaded  	FALSE

+		file_name  	"$ECORE_MODEL_PLUGIN_PATH\\org.eclipse.emf.ecore\\model\\org.eclipse.emf.Ecore.cat"

+		quid       	"39A5ED04004E"))

+	logical_presentations 	(list unit_reference_list

+	    (object ClassDiagram "Main"

+		quid       	"3F26AE4D0309"

+		title      	"Main"

+		zoom       	100

+		max_height 	28350

+		max_width  	21600

+		origin_x   	0

+		origin_y   	1538

+		items      	(list diagram_item_list

+		    (object CategoryView "Logical View::SQLModel" @1

+			location   	(842, 1472)

+			font       	(object Font

+			    size       	12

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@1

+			    location   	(698, 1388)

+			    fill_color 	13434879

+			    nlines     	2

+			    max_width  	288

+			    justify    	0

+			    label      	"SQLModel")

+			icon_style 	"Icon"

+			line_color 	3342489

+			fill_color 	16768725

+			quidu      	"3E9B1F8201C1"

+			width      	300

+			height     	180)

+		    (object NoteView @2

+			location   	(1613, 1103)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@2

+			    location   	(1438, 1043)

+			    fill_color 	13434879

+			    nlines     	2

+			    max_width  	315

+			    justify    	1

+			    label      	"Concrete Class")

+			line_color 	3342489

+			fill_color 	13434879

+			width      	375

+			height     	132)

+		    (object NoteView @3

+			location   	(1623, 1247)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@3

+			    location   	(1444, 1188)

+			    fill_color 	13434879

+			    nlines     	2

+			    max_width  	322

+			    justify    	1

+			    label      	"Abstract Class")

+			line_color 	3342489

+			fill_color 	13828055

+			width      	382

+			height     	131)

+		    (object NoteView @4

+			location   	(1585, 1384)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@4

+			    location   	(1447, 1324)

+			    fill_color 	13434879

+			    nlines     	2

+			    max_width  	240

+			    justify    	1

+			    label      	"Enumeration")

+			line_color 	3342489

+			fill_color 	15329769

+			width      	300

+			height     	132)

+		    (object NoteView @5

+			location   	(1664, 1528)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@5

+			    location   	(1451, 1469)

+			    fill_color 	13434879

+			    nlines     	2

+			    max_width  	390

+			    justify    	1

+			    label      	"Constraints in OCL or predefined in UML")

+			line_color 	3342489

+			fill_color 	8453888

+			width      	450

+			height     	131)

+		    (object NoteView @6

+			location   	(1592, 1675)

+			font       	(object Font

+			    size       	10

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			label      	(object ItemLabel

+			    Parent_View 	@6

+			    location   	(1454, 1615)

+			    fill_color 	13434879

+			    nlines     	2

+			    max_width  	240

+			    justify    	1

+			    label      	"Comment")

+			line_color 	3342489

+			fill_color 	16777088

+			width      	300

+			height     	132)

+		    (object Label @7

+			location   	(1426, 957)

+			font       	(object Font

+			    size       	14

+			    face       	"Arial"

+			    bold       	FALSE

+			    italics    	FALSE

+			    underline  	FALSE

+			    strike     	FALSE

+			    color      	0

+			    default_color 	TRUE)

+			nlines     	1

+			max_width  	781

+			justify    	1

+			label      	"Color legend (except for ecore):")))))

+    root_subsystem 	(object SubSystem "Component View"

+	quid       	"3F26AE4D0302"

+	physical_models 	(list unit_reference_list)

+	physical_presentations 	(list unit_reference_list

+	    (object Module_Diagram "Main"

+		quid       	"3F26AE4D030A"

+		title      	"Main"

+		zoom       	100

+		max_height 	28350

+		max_width  	21600

+		origin_x   	0

+		origin_y   	0

+		items      	(list diagram_item_list)))

+	category   	"Logical View"

+	quidu      	"4E977A4B0178")

+    process_structure 	(object Processes

+	quid       	"3F26AE4D0303"

+	ProcsNDevs 	(list

+	    (object Process_Diagram "Deployment View"

+		quid       	"3F26AE4D0305"

+		title      	"Deployment View"

+		zoom       	100

+		max_height 	28350

+		max_width  	21600

+		origin_x   	0

+		origin_y   	0

+		items      	(list diagram_item_list))))

+    properties 	(object Properties

+	attributes 	(list Attribute_Set

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"propertyId"

+		value      	"809135966")

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"default__Role"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"Synchronize"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"InitialValue"

+			value      	"")))

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"default__Inherit"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"Synchronize"

+			value      	TRUE)))

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"default__Module-Spec"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"Synchronize"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"RevEngRootDirectory"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"RootPackage"

+			value      	"C++ Reverse Engineered")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"RevEngDirectoriesAsPackages"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"HeaderFileExtension"

+			value      	".h")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"ImplementationFileExtension"

+			value      	".cpp")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"NewHeaderFileDirectory"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"NewImplementationFileDirectory"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"FileCapitalization"

+			value      	("FileCapitalizationSet" 0))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CodeGenExtraDirectories"

+			value      	("CodeGenExtraDirectoriesSet" 0))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"StripClassPrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"UseTabs"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"TabWidth"

+			value      	8)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"IndentWidth"

+			value      	4)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"AccessIndentation"

+			value      	-2)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CreateBackupFiles"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"ModelIdCommentRules"

+			value      	("ModelIdCommentRulesSet" 1))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CommentRules"

+			value      	("CommentRulesSet" 1))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"PageWidth"

+			value      	80)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"ClassMemberOrder"

+			value      	("MemberOrderSet" 1))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"OneParameterPerLine"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"NamespaceBraceStyle"

+			value      	("BraceStyleSet" 2))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"ClassBraceStyle"

+			value      	("BraceStyleSet" 2))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"FunctionBraceStyle"

+			value      	("BraceStyleSet" 2))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"Copyright"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"InitialHeaderIncludes"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"InitialBodyIncludes"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CodeGenExtraDirectoriesSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"None"

+				value      	0)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Namespaces"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Packages"

+				value      	2)))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"FileCapitalizationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Same as model"

+				value      	0)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Lower case"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Upper case"

+				value      	2)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Lower case with underscores"

+				value      	3)))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"BraceStyleSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"B1"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"B2"

+				value      	2)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"B3"

+				value      	3)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"B4"

+				value      	4)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"B5"

+				value      	5)))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"MemberOrderSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Public First"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Private First"

+				value      	2)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Order by kind"

+				value      	3)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Unordered"

+				value      	4)))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"ModelIdCommentRulesSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Code generation only"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Code generation and reverse engineering"

+				value      	2)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Never generate model IDs"

+				value      	3)))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CommentRulesSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Always synchronize"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Code generation only"

+				value      	2)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Reverse engineering only"

+				value      	3)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Never synchronize"

+				value      	4)))))

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"default__Module-Body"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"Synchronize"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"RevEngRootDirectory"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"RootPackage"

+			value      	"C++ Reverse Engineered")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"RevEngDirectoriesAsPackages"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"HeaderFileExtension"

+			value      	".h")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"ImplementationFileExtension"

+			value      	".cpp")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"NewHeaderFileDirectory"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"NewImplementationFileDirectory"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"FileCapitalization"

+			value      	("FileCapitalizationSet" 0))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CodeGenExtraDirectories"

+			value      	("CodeGenExtraDirectoriesSet" 0))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"StripClassPrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"UseTabs"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"TabWidth"

+			value      	8)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"IndentWidth"

+			value      	4)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"AccessIndentation"

+			value      	-2)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CreateBackupFiles"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"ModelIdCommentRules"

+			value      	("ModelIdCommentRulesSet" 1))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CommentRules"

+			value      	("CommentRulesSet" 1))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"PageWidth"

+			value      	80)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"ClassMemberOrder"

+			value      	("MemberOrderSet" 1))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"OneParameterPerLine"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"NamespaceBraceStyle"

+			value      	("BraceStyleSet" 2))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"ClassBraceStyle"

+			value      	("BraceStyleSet" 2))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"FunctionBraceStyle"

+			value      	("BraceStyleSet" 2))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"Copyright"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"InitialHeaderIncludes"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"InitialBodyIncludes"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CodeGenExtraDirectoriesSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"None"

+				value      	0)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Namespaces"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Packages"

+				value      	2)))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"FileCapitalizationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Same as model"

+				value      	0)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Lower case"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Upper case"

+				value      	2)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Lower case with underscores"

+				value      	3)))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"BraceStyleSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"B1"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"B2"

+				value      	2)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"B3"

+				value      	3)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"B4"

+				value      	4)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"B5"

+				value      	5)))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"MemberOrderSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Public First"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Private First"

+				value      	2)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Order by kind"

+				value      	3)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Unordered"

+				value      	4)))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"ModelIdCommentRulesSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Code generation only"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Code generation and reverse engineering"

+				value      	2)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Never generate model IDs"

+				value      	3)))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CommentRulesSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Always synchronize"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Code generation only"

+				value      	2)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Reverse engineering only"

+				value      	3)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Never synchronize"

+				value      	4)))))

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"default__Param"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CodeName"

+			value      	"")))

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"default__Attribute"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"Synchronize"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CodeName"

+			value      	"")))

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"default__Operation"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"Synchronize"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"InitialCodeBody"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"Inline"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"GenerateFunctionBody"

+			value      	("GenerateFunctionBodySet" 2))

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"GenerateFunctionBodySet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"Default"

+				value      	2)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"True"

+				value      	1)

+			    (object Attribute

+				tool       	"Cplusplus"

+				name       	"False"

+				value      	0)))))

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"default__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"Synchronize"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"ImplementationType"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"HeaderSourceFile"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"BodySourceFile"

+			value      	"")))

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"default__Category"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"IsNamespace"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"default__Uses"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Cplusplus"

+			name       	"BodyReferenceOnly"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Cplusplus"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"ANSIConvert"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"propertyId"

+		value      	"838326200")

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"default__Project"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SpecFileExtension"

+			value      	"1.ada")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SpecFileBackupExtension"

+			value      	"1.ad~")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SpecFileTemporaryExtension"

+			value      	"1.ad#")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"BodyFileExtension"

+			value      	"2.ada")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"BodyFileBackupExtension"

+			value      	"2.ad~")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"BodyFileTemporaryExtension"

+			value      	"2.ad#")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"CreateMissingDirectories"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GenerateBodies"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GenerateAccessorOperations"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GenerateStandardOperations"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"DefaultCodeBody"

+			value      	"[statement]")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ImplicitParameter"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"CommentWidth"

+			value      	60)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"StopOnError"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ErrorLimit"

+			value      	30)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"UseFileName"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Directory"

+			value      	"$ROSEADA83_SOURCE")))

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"default__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ClassName"

+			value      	"Object")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ClassAccess"

+			value      	("ImplementationSet" 43))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ImplementationType"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"IsSubtype"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"PolymorphicUnit"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"HandleName"

+			value      	"Handle")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"HandleAccess"

+			value      	("ImplementationSet" 45))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Discriminant"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Variant"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"EnumerationLiteralPrefix"

+			value      	"A_")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"RecordFieldPrefix"

+			value      	"The_")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GenerateAccessorOperations"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GenerateStandardOperations"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ImplicitParameter"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ClassParameterName"

+			value      	"This")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"DefaultConstructorKind"

+			value      	("ConstructorKindSet" 199))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"DefaultConstructorName"

+			value      	"Create")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineDefaultConstructor"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"CopyConstructorKind"

+			value      	("ConstructorKindSet" 199))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"CopyConstructorName"

+			value      	"Copy")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineCopyConstructor"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"DestructorName"

+			value      	"Free")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineDestructor"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ClassEqualityOperation"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"HandleEqualityOperation"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineEquality"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"IsTask"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Representation"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ImplementationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Public"

+				value      	45)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Private"

+				value      	43)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"LimitedPrivate"

+				value      	200)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"DoNotCreate"

+				value      	201)))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ConstructorKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Procedure"

+				value      	202)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Function"

+				value      	199)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"DoNotCreate"

+				value      	201)))))

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"default__Module-Spec"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Generate"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"CopyrightNotice"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"FileName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ReturnType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GenericFormalParameters"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"AdditionalWiths"

+			value      	(value Text ""))))

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"default__Module-Body"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Generate"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"CopyrightNotice"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"FileName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ReturnType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"AdditionalWiths"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"IsSubunit"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"default__Operation"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SubprogramImplementation"

+			value      	("SubprogramImplementationSet" 2))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Renames"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ClassParameterMode"

+			value      	("ParameterModeSet" 203))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Inline"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"EntryCode"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ExitCode"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InitialCodeBody"

+			value      	"${default}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Representation"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SubprogramImplementationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Spec"

+				value      	224)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Body"

+				value      	2)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Renaming"

+				value      	222)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Separate"

+				value      	223)))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ParameterModeSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Default"

+				value      	232)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"In"

+				value      	204)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Out"

+				value      	205)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"InOut"

+				value      	203)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"FunctionReturn"

+				value      	206)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"DoNotCreate"

+				value      	201)))))

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"default__Param"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Mode"

+			value      	("ParameterModeSet" 232))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ParameterModeSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Default"

+				value      	232)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"In"

+				value      	204)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Out"

+				value      	205)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"InOut"

+				value      	203)))))

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"default__Has"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"NameIfUnlabeled"

+			value      	"The_${supplier}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"DataMemberName"

+			value      	"${relationship}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GetName"

+			value      	"Get_${relationship}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineGet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SetName"

+			value      	"Set_${relationship}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineSet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"IsConstant"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InitialValue"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Declare"

+			value      	("DeclareSet" 234))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Variant"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ContainerGeneric"

+			value      	"List")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ContainerType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ContainerDeclarations"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SelectorName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SelectorType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"DeclareSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Before"

+				value      	233)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"After"

+				value      	234)))))

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"default__Attribute"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"DataMemberName"

+			value      	"${attribute}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GetName"

+			value      	"Get_${attribute}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineGet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SetName"

+			value      	"Set_${attribute}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineSet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"IsConstant"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InitialValue"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Declare"

+			value      	("DeclareSet" 234))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Variant"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Representation"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"DeclareSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Before"

+				value      	233)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"After"

+				value      	234)))))

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"default__Association"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"NameIfUnlabeled"

+			value      	"The_${targetClass}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GetName"

+			value      	"Get_${association}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineGet"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SetName"

+			value      	"Set_${association}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineSet"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GenerateAssociate"

+			value      	("ProcedureKindSet" 202))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"AssociateName"

+			value      	"Associate")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineAssociate"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GenerateDissociate"

+			value      	("ProcedureKindSet" 202))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"DissociateName"

+			value      	"Dissociate")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineDissociate"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ProcedureKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Procedure"

+				value      	202)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"DoNotCreate"

+				value      	201)))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"FunctionKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Function"

+				value      	199)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"DoNotCreate"

+				value      	201)))))

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"default__Role"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"NameIfUnlabeled"

+			value      	"The_${targetClass}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"DataMemberName"

+			value      	"${target}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"GetName"

+			value      	"Get_${target}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineGet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SetName"

+			value      	"Set_${target}")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InlineSet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"IsConstant"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"InitialValue"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Declare"

+			value      	("DeclareSet" 234))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Representation"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ContainerGeneric"

+			value      	"List")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ContainerType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ContainerDeclarations"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SelectorName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"SelectorType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"ProcedureKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Procedure"

+				value      	202)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"DoNotCreate"

+				value      	201)))

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"DeclareSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"Before"

+				value      	233)

+			    (object Attribute

+				tool       	"Ada83"

+				name       	"After"

+				value      	234)))))

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"default__Subsystem"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada83"

+			name       	"Directory"

+			value      	"AUTO GENERATE")))

+	    (object Attribute

+		tool       	"Ada83"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"propertyId"

+		value      	"838326200")

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"default__Project"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SpecFileExtension"

+			value      	"1.ada")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SpecFileBackupExtension"

+			value      	"1.ad~")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SpecFileTemporaryExtension"

+			value      	"1.ad#")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"BodyFileExtension"

+			value      	"2.ada")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"BodyFileBackupExtension"

+			value      	"2.ad~")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"BodyFileTemporaryExtension"

+			value      	"2.ad#")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"CreateMissingDirectories"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"UseColonNotation"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateBodies"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAccessorOperations"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateStandardOperations"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"DefaultCodeBody"

+			value      	"[statement]")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ImplicitParameter"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"CommentWidth"

+			value      	60)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"StopOnError"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ErrorLimit"

+			value      	30)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"UseFileName"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Directory"

+			value      	"$ROSEADA95_SOURCE")))

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"default__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"TypeName"

+			value      	"Object")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"TypeVisibility"

+			value      	("TypeVisibilitySet" 43))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"TypeImplementation"

+			value      	("TypeImplementationSet" 208))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IncompleteType"

+			value      	("IncompleteTypeSet" 1))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"TypeControl"

+			value      	("TypeControlSet" 225))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"TypeControlName"

+			value      	"Controlled_${type}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"TypeControlVisibility"

+			value      	("TypeVisibilitySet" 43))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"TypeDefinition"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordImplementation"

+			value      	("RecordImplementationSet" 209))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordKindPackageName"

+			value      	"${class}_Record_Kinds")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IsLimited"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IsSubtype"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAccessType"

+			value      	("GenerateAccessTypeSet" 230))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AccessTypeName"

+			value      	"Handle")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AccessTypeVisibility"

+			value      	("TypeVisibilitySet" 45))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AccessTypeDefinition"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AccessClassWide"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"MaybeAliased"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ParameterizedImplementation"

+			value      	("ParameterizedImplementationSet" 11))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ParentClassName"

+			value      	"Superclass")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"EnumerationLiteralPrefix"

+			value      	"A_")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordFieldPrefix"

+			value      	"The_")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ArrayOfTypeName"

+			value      	"Array_Of_${type}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AccessArrayOfTypeName"

+			value      	"Access_Array_Of_${type}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ArrayOfAccessTypeName"

+			value      	"Array_Of_${access_type}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AccessArrayOfAccessTypeName"

+			value      	"Access_Array_Of_${access_type}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ArrayIndexDefinition"

+			value      	"Positive range <>")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAccessorOperations"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateStandardOperations"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ImplicitParameter"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ImplicitParameterName"

+			value      	"This")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateDefaultConstructor"

+			value      	("SubprogramKindSet" 199))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"DefaultConstructorName"

+			value      	"Create")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineDefaultConstructor"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateCopyConstructor"

+			value      	("SubprogramKindSet" 199))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"CopyConstructorName"

+			value      	"Copy")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineCopyConstructor"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateDestructor"

+			value      	("ProcedureKindSet" 202))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"DestructorName"

+			value      	"Free")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineDestructor"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateTypeEquality"

+			value      	("FunctionKindSet" 201))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"TypeEqualityName"

+			value      	(value Text 

+|"="

+			))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineEquality"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Representation"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"TypeImplementationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Tagged"

+				value      	208)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Record"

+				value      	210)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Mixin"

+				value      	211)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Protected"

+				value      	44)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Task"

+				value      	212)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IncompleteTypeSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotDeclare"

+				value      	1)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"NoDiscriminantPart"

+				value      	2)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"UnknownDiscriminantPart"

+				value      	3)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"KnownDiscriminantPart"

+				value      	4)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordImplementationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"SingleType"

+				value      	209)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"MultipleTypes"

+				value      	213)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ParameterizedImplementationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Generic"

+				value      	11)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Unconstrained"

+				value      	214)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"TypeVisibilitySet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Public"

+				value      	45)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Private"

+				value      	43)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SubprogramKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Procedure"

+				value      	202)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Function"

+				value      	199)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ProcedureKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Procedure"

+				value      	202)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"FunctionKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Function"

+				value      	199)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"TypeControlSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"None"

+				value      	225)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"InitializationOnly"

+				value      	226)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"AssignmentFinalizationOnly"

+				value      	227)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"All"

+				value      	228)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAccessTypeSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Always"

+				value      	229)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Auto"

+				value      	230)))))

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"default__Module-Spec"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Generate"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"CopyrightNotice"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"FileName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ReturnType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenericFormalParameters"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AdditionalWiths"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IsPrivate"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"default__Module-Body"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Generate"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"CopyrightNotice"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"FileName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ReturnType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AdditionalWiths"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IsSubunit"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"default__Operation"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SubprogramImplementation"

+			value      	("SubprogramImplementationSet" 2))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Renames"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateOverriding"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ImplicitParameterMode"

+			value      	("ParameterModeSet" 203))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ImplicitParameterClassWide"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAccessOperation"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Inline"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"EntryCode"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ExitCode"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InitialCodeBody"

+			value      	"${default}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"EntryBarrierCondition"

+			value      	"True")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Representation"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SubprogramImplementationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Spec"

+				value      	224)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Body"

+				value      	2)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Abstract"

+				value      	221)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Renaming"

+				value      	222)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"RenamingAsBody"

+				value      	231)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Separate"

+				value      	223)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ParameterModeSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Default"

+				value      	232)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"In"

+				value      	204)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Out"

+				value      	205)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"InOut"

+				value      	203)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Access"

+				value      	220)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))))

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"default__Param"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Mode"

+			value      	("ParameterModeSet" 232))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ParameterModeSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Default"

+				value      	232)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"In"

+				value      	204)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Out"

+				value      	205)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"InOut"

+				value      	203)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Access"

+				value      	220)))))

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"default__Has"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"NameIfUnlabeled"

+			value      	"The_${supplier}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordFieldImplementation"

+			value      	("RecordFieldImplementationSet" 216))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AccessDiscriminantClassWide"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordFieldName"

+			value      	"${relationship}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateGet"

+			value      	("FunctionKindSet" 199))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAccessGet"

+			value      	("FunctionKindSet" 201))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GetName"

+			value      	"Get_${relationship}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineGet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateSet"

+			value      	("ProcedureKindSet" 202))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAccessSet"

+			value      	("ProcedureKindSet" 201))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SetName"

+			value      	"Set_${relationship}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineSet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IsAliased"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IsConstant"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InitialValue"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Declare"

+			value      	("DeclareSet" 234))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ContainerImplementation"

+			value      	("ContainerImplementationSet" 217))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ContainerGeneric"

+			value      	"List")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ContainerType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ContainerDeclarations"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SelectorName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SelectorType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"DeclareSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Before"

+				value      	233)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"After"

+				value      	234)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordFieldImplementationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Component"

+				value      	216)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Discriminant"

+				value      	218)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"AccessDiscriminant"

+				value      	219)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ContainerImplementationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Array"

+				value      	217)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Generic"

+				value      	11)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ProcedureKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Procedure"

+				value      	202)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"FunctionKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Function"

+				value      	199)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))))

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"default__Attribute"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordFieldImplementation"

+			value      	("RecordFieldImplementationSet" 216))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AccessDiscriminantClassWide"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordFieldName"

+			value      	"${attribute}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateGet"

+			value      	("FunctionKindSet" 199))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAccessGet"

+			value      	("FunctionKindSet" 201))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GetName"

+			value      	"Get_${attribute}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineGet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateSet"

+			value      	("ProcedureKindSet" 202))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAccessSet"

+			value      	("ProcedureKindSet" 201))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SetName"

+			value      	"Set_${attribute}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineSet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IsAliased"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IsConstant"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InitialValue"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Declare"

+			value      	("DeclareSet" 234))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Representation"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"DeclareSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Before"

+				value      	233)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"After"

+				value      	234)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordFieldImplementationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Component"

+				value      	216)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Discriminant"

+				value      	218)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"AccessDiscriminant"

+				value      	219)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ProcedureKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Procedure"

+				value      	202)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"FunctionKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Function"

+				value      	199)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))))

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"default__Association"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"NameIfUnlabeled"

+			value      	"The_${targetClass}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateGet"

+			value      	("FunctionKindSet" 199))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GetName"

+			value      	"Get_${association}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineGet"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateSet"

+			value      	("ProcedureKindSet" 202))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SetName"

+			value      	"Set_${association}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineSet"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAssociate"

+			value      	("ProcedureKindSet" 202))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AssociateName"

+			value      	"Associate")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineAssociate"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateDissociate"

+			value      	("ProcedureKindSet" 202))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"DissociateName"

+			value      	"Dissociate")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineDissociate"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ProcedureKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Procedure"

+				value      	202)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"FunctionKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Function"

+				value      	199)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))))

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"default__Role"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"CodeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"NameIfUnlabeled"

+			value      	"The_${targetClass}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordFieldImplementation"

+			value      	("RecordFieldImplementationSet" 216))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"AccessDiscriminantClassWide"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordFieldName"

+			value      	"${target}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateGet"

+			value      	("FunctionKindSet" 199))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAccessGet"

+			value      	("FunctionKindSet" 201))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GetName"

+			value      	"Get_${target}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineGet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateSet"

+			value      	("ProcedureKindSet" 202))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"GenerateAccessSet"

+			value      	("ProcedureKindSet" 201))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SetName"

+			value      	"Set_${target}")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InlineSet"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IsAliased"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"IsConstant"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"InitialValue"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Declare"

+			value      	("DeclareSet" 234))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Representation"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ContainerImplementation"

+			value      	("ContainerImplementationSet" 217))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ContainerGeneric"

+			value      	"List")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ContainerType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ContainerDeclarations"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SelectorName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"SelectorType"

+			value      	"")

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ProcedureKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Procedure"

+				value      	202)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"DeclareSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Before"

+				value      	233)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"After"

+				value      	234)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"RecordFieldImplementationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Component"

+				value      	216)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Discriminant"

+				value      	218)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"AccessDiscriminant"

+				value      	219)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"ContainerImplementationSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Array"

+				value      	217)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Generic"

+				value      	11)))

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"FunctionKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"Function"

+				value      	199)

+			    (object Attribute

+				tool       	"Ada95"

+				name       	"DoNotCreate"

+				value      	201)))))

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"default__Subsystem"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ada95"

+			name       	"Directory"

+			value      	"AUTO GENERATE")))

+	    (object Attribute

+		tool       	"Ada95"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"CORBA"

+		name       	"propertyId"

+		value      	"809135966")

+	    (object Attribute

+		tool       	"CORBA"

+		name       	"default__Project"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"CreateMissingDirectories"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"Editor"

+			value      	("EditorType" 100))

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"IncludePath"

+			value      	"")

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"StopOnError"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"EditorType"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"CORBA"

+				name       	"BuiltIn"

+				value      	100)

+			    (object Attribute

+				tool       	"CORBA"

+				name       	"WindowsShell"

+				value      	101)))

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"PathSeparator"

+			value      	"")))

+	    (object Attribute

+		tool       	"CORBA"

+		name       	"default__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"ArrayDimensions"

+			value      	"")

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"ConstValue"

+			value      	"")

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"ImplementationType"

+			value      	"")))

+	    (object Attribute

+		tool       	"CORBA"

+		name       	"default__Module-Spec"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"AdditionalIncludes"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"CmIdentification"

+			value      	(value Text "  %X% %Q% %Z% %W%"))

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"CopyrightNotice"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"InclusionProtectionSymbol"

+			value      	"AUTO GENERATE")))

+	    (object Attribute

+		tool       	"CORBA"

+		name       	"default__Module-Body"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"AdditionalIncludes"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"CmIdentification"

+			value      	(value Text "  %X% %Q% %Z% %W%"))

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"CopyrightNotice"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"InclusionProtectionSymbol"

+			value      	"AUTO GENERATE")))

+	    (object Attribute

+		tool       	"CORBA"

+		name       	"default__Operation"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"Context"

+			value      	"")

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"OperationIsOneWay"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"CORBA"

+		name       	"default__Attribute"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"ArrayDimensions"

+			value      	"")

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"CaseSpecifier"

+			value      	"")

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"IsReadOnly"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"Order"

+			value      	"")))

+	    (object Attribute

+		tool       	"CORBA"

+		name       	"default__Role"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"ArrayDimensions"

+			value      	"")

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"CaseSpecifier"

+			value      	"")

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"GenerateForwardReference"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"IsReadOnly"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"Order"

+			value      	"")

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"BoundedRoleType"

+			value      	("AssocTypeSet" 47))

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"AssocTypeSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"CORBA"

+				name       	"Array"

+				value      	24)

+			    (object Attribute

+				tool       	"CORBA"

+				name       	"Sequence"

+				value      	47)))))

+	    (object Attribute

+		tool       	"CORBA"

+		name       	"default__Uses"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"GenerateForwardReference"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"CORBA"

+		name       	"default__Param"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"Direction"

+			value      	("ParamDirectionTypeSet" 102))

+		    (object Attribute

+			tool       	"CORBA"

+			name       	"ParamDirectionTypeSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"CORBA"

+				name       	"in"

+				value      	102)

+			    (object Attribute

+				tool       	"CORBA"

+				name       	"inout"

+				value      	103)

+			    (object Attribute

+				tool       	"CORBA"

+				name       	"out"

+				value      	104)))))

+	    (object Attribute

+		tool       	"CORBA"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"Data Modeler"

+		name       	"propertyId"

+		value      	"809135966")

+	    (object Attribute

+		tool       	"Data Modeler"

+		name       	"default__Project"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"project"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"TableCounter"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ViewCounter"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DomainCounter"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"SPPackageCounter"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"TriggerCounter"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IndexCounter"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ConstraintCounter"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"StoreProcedureCounter"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"PrimaryKeyCounter"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ForeignKeyCounter"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"JoinCounter"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"TableSpaceCounter"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"cONTAINERCounter"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"TablePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ViewPrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DomainPrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"TriggerPrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IndexPrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ConstraintPrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"StoreProcedurePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"PrimaryKeyPrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ForeignKeyPrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"TableSpacePrefix"

+			value      	"")))

+	    (object Attribute

+		tool       	"Data Modeler"

+		name       	"default__Module-Spec"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"dmItem"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DMName"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsDatabase"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"TargetDatabase"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"Location"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsTableSpace"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"TableSpaceType"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsDeault"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"BufferPool"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ExtentSize"

+			value      	1)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"PrefetchSize"

+			value      	1)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"PageSize"

+			value      	4)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ManagedBy"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ContainerList"

+			value      	"")))

+	    (object Attribute

+		tool       	"Data Modeler"

+		name       	"default__Category"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"dmItem"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DMName"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"dmSchema"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"dmDomainPackage"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsSchema"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsDomainPackage"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsRootSchema"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsRootDomainPackage"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsSchemaPackage"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DatabaseID"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DBMS"

+			value      	"")))

+	    (object Attribute

+		tool       	"Data Modeler"

+		name       	"default__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"dmItem"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DMName"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsTable"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsView"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsDomain"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsSPPackage"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"Synonymns"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"TableSpaceID"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"SourceId"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"SourceType"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"CorrelationName"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"SelectClause"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsUpdateable"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"CheckOption"

+			value      	"None")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsSnapShot"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsDistinct"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"PersistToServer"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsPackage"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Data Modeler"

+		name       	"default__Attribute"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"dmItem"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DMName"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"Ordinal"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsIdentity"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsUnique"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"NullsAllowed"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"Length"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"Scale"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ColumnType"

+			value      	"Native")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ForBitData"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DefaultValueType"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DefaultValue"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"SourceId"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"SourceType"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"OID"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Data Modeler"

+		name       	"default__Association"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"dmItem"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DMName"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsRelationship"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"SourceId"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"SourceType"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"RIMethod"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ParentUpdateRule"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ParentUpdateRuleName"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ParentDeleteRule"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ParentDeleteRuleName"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ChildInsertRestrict"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ChildInsertRestrictName"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ChildMultiplicity"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ChildMultiplicityName"

+			value      	"")))

+	    (object Attribute

+		tool       	"Data Modeler"

+		name       	"default__Role"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"dmItem"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DMName"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ConstraintName"

+			value      	"")))

+	    (object Attribute

+		tool       	"Data Modeler"

+		name       	"default__Operation"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"dmItem"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DMName"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsConstraint"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ConstraintType"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsIndex"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsTrigger"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsStoredProcedure"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsCluster"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"TableSpace"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"FillFactor"

+			value      	0)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"KeyList"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"CheckPredicate"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsUnique"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DeferalMode"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"InitialCheckTime"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"TriggerType"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsInsertEvent"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsUpdateEvent"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsDeleteEvent"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"RefOldTable"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"RefNewTable"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"RefOldRow"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"RefNewRow"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsRow"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"WhenClause"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"Language"

+			value      	"SQL")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ProcType"

+			value      	"Procedure")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsDeterministic"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ParameterStyle"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ReturnedNull"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ExternalName"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"Length"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"Scale"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ForBitData"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DefaultValue"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DefaultValueType"

+			value      	"")))

+	    (object Attribute

+		tool       	"Data Modeler"

+		name       	"default__Parameter"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"dmItem"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DMName"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsInParameter"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"IsOutParameter"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"Ordinal"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"Length"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"Scale"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"ForBitData"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DefaultValueType"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"DefaultValue"

+			value      	"")

+		    (object Attribute

+			tool       	"Data Modeler"

+			name       	"OperationID"

+			value      	"")))

+	    (object Attribute

+		tool       	"Data Modeler"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"Data Modeler Communicator"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"Deploy"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"Java"

+		name       	"propertyId"

+		value      	"809135966")

+	    (object Attribute

+		tool       	"Java"

+		name       	"default__Project"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Java"

+			name       	"RootDir"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"CreateMissingDirectories"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"StopOnError"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"UsePrefixes"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"AutoSync"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"NotShowRoseIDDlg"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"ShowCodegenDlg"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateRoseID"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateDefaultJ2EEJavadoc"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateDefaultReturnLine"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"JavadocDefaultAuthor"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"JavadocDefaultVersion"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"JavadocDefaultSince"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"UserDefineJavaDocTags"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"JavadocNumAsterisks"

+			value      	0)

+		    (object Attribute

+			tool       	"Java"

+			name       	"MaxNumChars"

+			value      	80)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Editor"

+			value      	("EditorType" 100))

+		    (object Attribute

+			tool       	"Java"

+			name       	"VM"

+			value      	("VMType" 200))

+		    (object Attribute

+			tool       	"Java"

+			name       	"ClassPath"

+			value      	".;C:\\PROGRA~1\\IBM\\SQLLIB\\java\\db2java.zip;C:\\PROGRA~1\\IBM\\SQLLIB\\java\\db2jcc.jar;C:\\PROGRA~1\\IBM\\SQLLIB\\java\\sqlj.zip;C:\\PROGRA~1\\IBM\\SQLLIB\\bin;C:\\PROGRA~1\\IBM\\SQLLIB\\tools\\db2XTrigger.jar;C:\\PROGRA~1\\IBM\\SQLLIB\\java\\common.jar;C:\\PROGRA~1\\IBM\\SQLLIB\\java\\db2jcc_license_cisuz.jar;C:\\PROGRA~1\\IBM\\SQLLIB\\java\\db2jcc_license_cu.jar;C:\\j2sdk1.4.2_03\\jre\\lib\\charsets.jar;C:\\j2sdk1.4.2_03\\jre\\lib\\jce.jar;C:\\j2sdk1.4.2_03\\jre\\lib\\jsse.jar;C:\\j2sdk1.4.2_03\\jre\\lib\\rt.jar;C:\\j2sdk1.4.2_03\\jre\\lib\\sunrsasign.jar;C:\\j2sdk1.4.2_03\\jre\\lib\\ext\\dnsns.jar;C:\\j2sdk1.4.2_03\\jre\\lib\\ext\\ldapsec.jar;C:\\j2sdk1.4.2_03\\jre\\lib\\ext\\localedata.jar;C:\\j2sdk1.4.2_03\\jre\\lib\\ext\\sunjce_provider.jar;C:\\j2sdk1.4.2_03\\jre\\lib\\security\\local_policy.jar;C:\\j2sdk1.4.2_03\\jre\\lib\\security\\US_export_policy.jar;C:\\j2sdk1.4.2_03\\lib\\dt.jar;C:\\j2sdk1.4.2_03\\lib\\htmlconverter.jar;C:\\j2sdk1.4.2_03\\lib\\tools.jar")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ReferenceClasspath"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"EditorType"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Java"

+				name       	"BuiltIn"

+				value      	100)))

+		    (object Attribute

+			tool       	"Java"

+			name       	"VMType"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Java"

+				name       	"Sun"

+				value      	200)))

+		    (object Attribute

+			tool       	"Java"

+			name       	"VAJavaWorkingFolder"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"InstanceVariablePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ClassVariablePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"DefaultAttributeDataType"

+			value      	"int")

+		    (object Attribute

+			tool       	"Java"

+			name       	"DefaultOperationReturnType"

+			value      	"void")

+		    (object Attribute

+			tool       	"Java"

+			name       	"NoClassCustomDlg"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"GlobalImports"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Java"

+			name       	"OpenBraceClassStyle"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"OpenBraceMethodStyle"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"UseTabs"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"UseSpaces"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"SpacingItems"

+			value      	3)

+		    (object Attribute

+			tool       	"Java"

+			name       	"RoseDefaultCommentStyle"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"AsteriskCommentStyle"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"JavaCommentStyle"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"JavadocAuthor"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"JavadocSince"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"JavadocVersion"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"BeanPrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"BeanSuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"RemotePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"RemoteSuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"HomePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"HomeSuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"LocalPrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"LocalSuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"LocalHomePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"LocalHomeSuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"PrimaryKeyPrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"PrimaryKeySuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBDTDLocation"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletDTDLocation"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"DefaultEJBVersion"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"DefaultServletVersion"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"SourceControl"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"SCCSelected"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"SCCProjectSourceRoot"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"SCCProjectName"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"SCCComment"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Java"

+		name       	"default__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Java"

+			name       	"Final"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Static"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateDefaultConstructor"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"ConstructorIs"

+			value      	("Ctor_Set" 62))

+		    (object Attribute

+			tool       	"Java"

+			name       	"Ctor_Set"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Java"

+				name       	"public"

+				value      	62)

+			    (object Attribute

+				tool       	"Java"

+				name       	"protected"

+				value      	63)

+			    (object Attribute

+				tool       	"Java"

+				name       	"private"

+				value      	64)

+			    (object Attribute

+				tool       	"Java"

+				name       	"package"

+				value      	65)))

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateFinalizer"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateStaticInitializer"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateInstanceInitializer"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateCode"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"DisableAutoSync"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"ReadOnly"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Strictfp"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Java"

+		name       	"Default_Servlet__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletName"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletContextRef"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"IsSingleThread"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletInitParameter"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletInitParameterNames"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletIsSecure"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletRequestDispatcher"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletRequestDispatcherPath"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"DispatcherInclude"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"DispatcherForward"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletSecurityRoles"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletgetInfo"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletXMLFilePath"

+			value      	"")))

+	    (object Attribute

+		tool       	"Java"

+		name       	"Http_Servlet__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletRequestAttribute"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletRequestAttributesNames"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"MethodForRequestAttributes"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletRequestParameter"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletRequestParameterNames"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"MethodForRequestParameters"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletHeader"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletHeaderNames"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"MethodForHeaders"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletIntHeader"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletDateHeader"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletCookie"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"MethodForCookie"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"ServletContentType"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateHTML"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Java"

+		name       	"Default_EJB__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Java"

+			name       	"Generate_XML_DD"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBCmpField"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBEnvironmentProperties"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBCnxFactory"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBReferences"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBSecurityRoles"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBNameInJAR"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBSessionType"

+			value      	("EJBSessionType_Set" 200))

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBSessionType_Set"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Java"

+				name       	""

+				value      	200)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Stateless"

+				value      	201)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Stateful"

+				value      	202)))

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBTransactionType"

+			value      	("EJBTransactionType_Set" 211))

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBTransactionType_Set"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Java"

+				name       	"Container"

+				value      	211)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Bean"

+				value      	212)))

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBPersistenceType"

+			value      	("EJBPersistenceType_Set" 220))

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBPersistenceType_Set"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Java"

+				name       	""

+				value      	220)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Bean"

+				value      	221)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Container"

+				value      	222)))

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBReentrant"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBSessionSync"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBVersion"

+			value      	("EJBVersion_Set" 230))

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBVersion_Set"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Java"

+				name       	"2.0"

+				value      	230)

+			    (object Attribute

+				tool       	"Java"

+				name       	"1.x"

+				value      	231)))

+		    (object Attribute

+			tool       	"Java"

+			name       	"EJBXMLFilePath"

+			value      	"")))

+	    (object Attribute

+		tool       	"Java"

+		name       	"default__Module-Spec"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Java"

+			name       	"CmIdentification"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Java"

+			name       	"CopyrightNotice"

+			value      	(value Text ""))))

+	    (object Attribute

+		tool       	"Java"

+		name       	"default__Module-Body"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Java"

+			name       	"CmIdentification"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"Java"

+			name       	"CopyrightNotice"

+			value      	(value Text ""))))

+	    (object Attribute

+		tool       	"Java"

+		name       	"default__Operation"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Java"

+			name       	"Abstract"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Static"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Final"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Native"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Synchronized"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateFullyQualifiedReturn"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"ReplaceExistingCode"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Strictfp"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Java"

+		name       	"default__Attribute"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Java"

+			name       	"Final"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Transient"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Volatile"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"PropertyType"

+			value      	("BeanProperty_Set" 71))

+		    (object Attribute

+			tool       	"Java"

+			name       	"BeanProperty_Set"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Java"

+				name       	"Not A Property"

+				value      	71)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Simple"

+				value      	72)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Bound"

+				value      	73)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Constrained"

+				value      	74)))

+		    (object Attribute

+			tool       	"Java"

+			name       	"IndividualChangeMgt"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Read/Write"

+			value      	("Read/Write_Set" 81))

+		    (object Attribute

+			tool       	"Java"

+			name       	"Read/Write_Set"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Java"

+				name       	"Read & Write"

+				value      	81)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Read Only"

+				value      	82)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Write Only"

+				value      	83)))

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateFullyQualifiedTypes"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Java"

+		name       	"default__Role"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Java"

+			name       	"ContainerClass"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"InitialValue"

+			value      	"")

+		    (object Attribute

+			tool       	"Java"

+			name       	"Final"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Transient"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Volatile"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"PropertyType"

+			value      	("BeanProperty_Set" 71))

+		    (object Attribute

+			tool       	"Java"

+			name       	"BeanProperty_Set"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Java"

+				name       	"Not A Property"

+				value      	71)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Simple"

+				value      	72)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Bound"

+				value      	73)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Constrained"

+				value      	74)))

+		    (object Attribute

+			tool       	"Java"

+			name       	"IndividualChangeMgt"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"Read/Write"

+			value      	("Read/Write_Set" 81))

+		    (object Attribute

+			tool       	"Java"

+			name       	"Read/Write_Set"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Java"

+				name       	"Read & Write"

+				value      	81)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Read Only"

+				value      	82)

+			    (object Attribute

+				tool       	"Java"

+				name       	"Write Only"

+				value      	83)))

+		    (object Attribute

+			tool       	"Java"

+			name       	"GenerateFullyQualifiedTypes"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Java"

+			name       	"IsNavigable"

+			value      	TRUE)))

+	    (object Attribute

+		tool       	"Java"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"Oracle8"

+		name       	"propertyId"

+		value      	"360000002")

+	    (object Attribute

+		tool       	"Oracle8"

+		name       	"default__Project"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"DDLScriptFilename"

+			value      	"DDL1.SQL")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"DropClause"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"PrimaryKeyColumnName"

+			value      	"_ID")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"PrimaryKeyColumnType"

+			value      	"NUMBER(5,0)")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"SchemaNamePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"SchemaNameSuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TableNamePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TableNameSuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TypeNamePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TypeNameSuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"ViewNamePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"ViewNameSuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"VarrayNamePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"VarrayNameSuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"NestedTableNamePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"NestedTableNameSuffix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"ObjectTableNamePrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"ObjectTableNameSuffix"

+			value      	"")))

+	    (object Attribute

+		tool       	"Oracle8"

+		name       	"default__Module-Spec"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"IsSchema"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Oracle8"

+		name       	"default__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"OID"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"WhereClause"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"CheckConstraint"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"CollectionTypeLength"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"CollectionTypePrecision"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"CollectionTypeScale"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"CollectionOfREFS"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Oracle8"

+		name       	"default__Operation"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"MethodKind"

+			value      	("MethodKindSet" 1903))

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"OverloadID"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"OrderNumber"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"IsReadNoDataState"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"IsReadNoProcessState"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"IsWriteNoDataState"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"IsWriteNoProcessState"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"IsSelfish"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TriggerType"

+			value      	("TriggerTypeSet" 1801))

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TriggerEvent"

+			value      	("TriggerEventSet" 1601))

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TriggerText"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TriggerReferencingNames"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TriggerForEach"

+			value      	("TriggerForEachSet" 1701))

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TriggerWhenClause"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"MethodKindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"MapMethod"

+				value      	1901)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"OrderMethod"

+				value      	1902)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"Function"

+				value      	1903)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"Procedure"

+				value      	1904)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"Operator"

+				value      	1905)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"Constructor"

+				value      	1906)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"Destructor"

+				value      	1907)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"Trigger"

+				value      	1908)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"Calculated"

+				value      	1909)))

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TriggerTypeSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"AFTER"

+				value      	1801)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"BEFORE"

+				value      	1802)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"INSTEAD OF"

+				value      	1803)))

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TriggerForEachSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"ROW"

+				value      	1701)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"STATEMENT"

+				value      	1702)))

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"TriggerEventSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"INSERT"

+				value      	1601)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"UPDATE"

+				value      	1602)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"DELETE"

+				value      	1603)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"INSERT OR UPDATE"

+				value      	1604)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"INSERT OR DELETE"

+				value      	1605)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"UPDATE OR DELETE"

+				value      	1606)

+			    (object Attribute

+				tool       	"Oracle8"

+				name       	"INSERT OR UPDATE OR DELETE"

+				value      	1607)))))

+	    (object Attribute

+		tool       	"Oracle8"

+		name       	"default__Role"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"OrderNumber"

+			value      	"")))

+	    (object Attribute

+		tool       	"Oracle8"

+		name       	"default__Attribute"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"OrderNumber"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"IsUnique"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"NullsAllowed"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"Length"

+			value      	"")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"Precision"

+			value      	"2")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"Scale"

+			value      	"6")

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"IsIndex"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"IsPrimaryKey"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"CompositeUnique"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Oracle8"

+			name       	"CheckConstraint"

+			value      	"")))

+	    (object Attribute

+		tool       	"Oracle8"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"ComponentTest"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"Rose Model Integrator"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"Rose Web Publisher"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"TopLink"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"COM"

+		name       	"propertyId"

+		value      	"783606378")

+	    (object Attribute

+		tool       	"COM"

+		name       	"default__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"COM"

+			name       	"TypeKinds"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"COM"

+				name       	"enum"

+				value      	100)

+			    (object Attribute

+				tool       	"COM"

+				name       	"record"

+				value      	101)

+			    (object Attribute

+				tool       	"COM"

+				name       	"module"

+				value      	102)

+			    (object Attribute

+				tool       	"COM"

+				name       	"interface"

+				value      	103)

+			    (object Attribute

+				tool       	"COM"

+				name       	"dispinterface"

+				value      	104)

+			    (object Attribute

+				tool       	"COM"

+				name       	"coclass"

+				value      	105)

+			    (object Attribute

+				tool       	"COM"

+				name       	"alias"

+				value      	106)

+			    (object Attribute

+				tool       	"COM"

+				name       	"union"

+				value      	107)

+			    (object Attribute

+				tool       	"COM"

+				name       	"max"

+				value      	108)

+			    (object Attribute

+				tool       	"COM"

+				name       	"(none)"

+				value      	109)))

+		    (object Attribute

+			tool       	"COM"

+			name       	"Generate"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"COM"

+			name       	"kind"

+			value      	("TypeKinds" 109))

+		    (object Attribute

+			tool       	"COM"

+			name       	"uuid"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"version"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"helpstring"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"helpcontext"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"attributes"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"dllname"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"alias"

+			value      	"")))

+	    (object Attribute

+		tool       	"COM"

+		name       	"default__Operation"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"COM"

+			name       	"Generate"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"COM"

+			name       	"id"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"helpstring"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"attributes"

+			value      	"")))

+	    (object Attribute

+		tool       	"COM"

+		name       	"default__Attribute"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"COM"

+			name       	"Generate"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"COM"

+			name       	"id"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"helpstring"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"attributes"

+			value      	"")))

+	    (object Attribute

+		tool       	"COM"

+		name       	"default__Module-Spec"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"COM"

+			name       	"Generate"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"COM"

+			name       	"filename"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"library"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"uuid"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"version"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"helpstring"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"helpfile"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"helpcontext"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"lcid"

+			value      	"")

+		    (object Attribute

+			tool       	"COM"

+			name       	"attributes"

+			value      	"")))

+	    (object Attribute

+		tool       	"COM"

+		name       	"default__Param"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"COM"

+			name       	"attributes"

+			value      	"")))

+	    (object Attribute

+		tool       	"COM"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"Version Control"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"Visual Basic"

+		name       	"propertyId"

+		value      	"783606378")

+	    (object Attribute

+		tool       	"Visual Basic"

+		name       	"default__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"UpdateCode"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"UpdateModel"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"InstancingSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Visual Basic"

+				name       	"Private"

+				value      	221)

+			    (object Attribute

+				tool       	"Visual Basic"

+				name       	"PublicNotCreatable"

+				value      	213)

+			    (object Attribute

+				tool       	"Visual Basic"

+				name       	"SingleUse"

+				value      	214)

+			    (object Attribute

+				tool       	"Visual Basic"

+				name       	"GlobalSingleUse"

+				value      	215)

+			    (object Attribute

+				tool       	"Visual Basic"

+				name       	"MultiUse"

+				value      	219)

+			    (object Attribute

+				tool       	"Visual Basic"

+				name       	"GlobalMultiUse"

+				value      	220)))

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"BaseSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Visual Basic"

+				name       	"(none)"

+				value      	222)

+			    (object Attribute

+				tool       	"Visual Basic"

+				name       	"0"

+				value      	223)

+			    (object Attribute

+				tool       	"Visual Basic"

+				name       	"1"

+				value      	224)))

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"OptionBase"

+			value      	("BaseSet" 222))

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"OptionExplicit"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"OptionCompare"

+			value      	("CompareSet" 202))

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"Instancing"

+			value      	("InstancingSet" 219))

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"CompareSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"Visual Basic"

+				name       	"(none)"

+				value      	202)

+			    (object Attribute

+				tool       	"Visual Basic"

+				name       	"Binary"

+				value      	203)

+			    (object Attribute

+				tool       	"Visual Basic"

+				name       	"Text"

+				value      	204)))))

+	    (object Attribute

+		tool       	"Visual Basic"

+		name       	"default__Operation"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"LibraryName"

+			value      	"")

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"AliasName"

+			value      	"")

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"IsStatic"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"ProcedureID"

+			value      	"")

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"ReplaceExistingBody"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"DefaultBody"

+			value      	(value Text ""))))

+	    (object Attribute

+		tool       	"Visual Basic"

+		name       	"default__Attribute"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"New"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"WithEvents"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"ProcedureID"

+			value      	"")

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"PropertyName"

+			value      	"")

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"Subscript"

+			value      	"")))

+	    (object Attribute

+		tool       	"Visual Basic"

+		name       	"default__Role"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"UpdateCode"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"New"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"WithEvents"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"FullName"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"ProcedureID"

+			value      	"")

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"PropertyName"

+			value      	"")

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"Subscript"

+			value      	"")))

+	    (object Attribute

+		tool       	"Visual Basic"

+		name       	"default__Inherit"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"ImplementsDelegation"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"FullName"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Visual Basic"

+		name       	"default__Param"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"ByVal"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"ByRef"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"Optional"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"ParamArray"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Visual Basic"

+		name       	"default__Module-Spec"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"ProjectFile"

+			value      	"")

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"UpdateCode"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"UpdateModel"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"ImportReferences"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"QuickImport"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Visual Basic"

+			name       	"ImportBinary"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Visual Basic"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"VisualStudio"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"Web Modeler"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"XML_DTD"

+		name       	"propertyId"

+		value      	"809135966")

+	    (object Attribute

+		tool       	"XML_DTD"

+		name       	"default__Project"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"CreateMissingDirectories"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"Editor"

+			value      	("EditorType" 100))

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"StopOnError"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"EditorType"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"XML_DTD"

+				name       	"BuiltIn"

+				value      	100)

+			    (object Attribute

+				tool       	"XML_DTD"

+				name       	"WindowsShell"

+				value      	101)))))

+	    (object Attribute

+		tool       	"XML_DTD"

+		name       	"default__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"Entity_SystemID"

+			value      	"")

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"Entity_PublicID"

+			value      	"")

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"NotationValue"

+			value      	"")

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"InternalValue"

+			value      	"")

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"ParameterEntity"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"ExternalEntity"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"Notation_SystemID"

+			value      	"")

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"Notation_PublicID"

+			value      	"")))

+	    (object Attribute

+		tool       	"XML_DTD"

+		name       	"default__Attribute"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"DefaultDeclType"

+			value      	"")))

+	    (object Attribute

+		tool       	"XML_DTD"

+		name       	"default__Module-Spec"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"Assign All"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"XML_DTD"

+			name       	"ComponentPath"

+			value      	"")))

+	    (object Attribute

+		tool       	"XML_DTD"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"framework"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"VC++"

+		name       	"propertyId"

+		value      	"809135966")

+	    (object Attribute

+		tool       	"VC++"

+		name       	"default__Project"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"VC++"

+			name       	"UpdateATL"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"VC++"

+			name       	"SmartPointersOnAssoc"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"VC++"

+			name       	"GenerateImports"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"VC++"

+			name       	"PutImportsIn"

+			value      	"stdafx.h")

+		    (object Attribute

+			tool       	"VC++"

+			name       	"FullPathInImports"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"VC++"

+			name       	"UseImportAttributes"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"VC++"

+			name       	"ImportAttributes"

+			value      	"no_namespace named_guids")

+		    (object Attribute

+			tool       	"VC++"

+			name       	"ImportProjTypeLib"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"VC++"

+			name       	"DefaultTypeLib"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"VC++"

+			name       	"TypeLibLocation"

+			value      	"")

+		    (object Attribute

+			tool       	"VC++"

+			name       	"CompileProjTypeLib"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"VC++"

+			name       	"IdlInterfaceAttributes"

+			value      	(value Text 

+|endpoint("")

+|local

+|object

+|pointer_default()

+|uuid("")

+|version("")

+|encode

+|decode

+|auto_handle

+|implicit_handle("")

+|code

+|nocode

+			))

+		    (object Attribute

+			tool       	"VC++"

+			name       	"IdlCoClassAttributes"

+			value      	(value Text 

+|uuid("")

+|helpstring("")

+|helpcontext("")

+|licensed

+|version("")

+|control

+|hidden

+|appobject

+			))

+		    (object Attribute

+			tool       	"VC++"

+			name       	"IdlCoClassInterfaceAttributes"

+			value      	(value Text 

+|default

+|source

+			))

+		    (object Attribute

+			tool       	"VC++"

+			name       	"IdlParameterAttributes"

+			value      	(value Text 

+|in

+|out

+|retval

+			))

+		    (object Attribute

+			tool       	"VC++"

+			name       	"IdlMethodAttributes"

+			value      	(value Text 

+|id(1)

+|helpstring("")

+|call_as("")

+|callback

+|helpcontext("")

+|hidden

+|local

+|restricted

+|source

+|vararg

+			))

+		    (object Attribute

+			tool       	"VC++"

+			name       	"IdlPropertyAttributes"

+			value      	(value Text 

+|id()

+|helpstring("")

+|call_as("")

+|helpcontext("")

+|hidden

+|local

+|restricted

+|source

+|vararg

+|bindable

+|defaultbind

+|defaultcallelem

+|displaybind

+|immediatebind

+|nonbrowseable

+|requestedit

+			))

+		    (object Attribute

+			tool       	"VC++"

+			name       	"RvcPtyVersion"

+			value      	"1.4")

+		    (object Attribute

+			tool       	"VC++"

+			name       	"ModelIDStyle"

+			value      	2)

+		    (object Attribute

+			tool       	"VC++"

+			name       	"DocStyle"

+			value      	1)

+		    (object Attribute

+			tool       	"VC++"

+			name       	"GenerateIncludes"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"VC++"

+			name       	"ApplyPattern"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"VC++"

+			name       	"CreateBackupFiles"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"VC++"

+			name       	"SupportCodeName"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"VC++"

+			name       	"DocRevEngineer"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"VC++"

+			name       	"CreateOverviewDiagrams"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"VC++"

+			name       	"UpdateModelIDsInCode"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"VC++"

+			name       	"AttributeTypes"

+			value      	(value Text 

+|attr1=bool

+|attr2=short

+|attr3=int

+|attr4=long

+|attr5=char

+|attr6=float

+|attr7=double

+|attr8=void

+|attr9=clock_t

+|attr10=_complex

+|attr11=_dev_t

+|attr12=div_t

+|attr13=_exception

+|attr14=FILE

+|attr15=_finddata_t

+|attr16=_FPIEEE_RECORD

+|attr17=fpos_t

+|attr18=_HEAPINFO

+|attr19=jmp_buf

+|attr20=lconv

+|attr21=ldiv_t

+|attr22=_off_t

+|attr23=_onexit_t

+|attr24=_PNH

+|attr25=ptrdiff_t

+|attr26=sig_atomic_t

+|attr27=size_t

+|attr28=_stat

+|attr29=time_t

+|attr30=_timeb

+|attr31=tm

+|attr32=_utimbuf

+|attr33=va_list

+|attr34=wchar_t

+|attr35=wctrans_t

+|attr36=wctype_t

+|attr37=_wfinddata_t

+|attr38=_wfinddatai64_t

+|attr39=wint_t

+|attr40=ABORTPROC

+|attr41=ACMDRIVERENUMCB

+|attr42=ACMDRIVERPROC

+|attr43=ACMFILTERCHOOSEHOOKPROC

+|attr44=ACMFILTERENUMCB

+|attr45=ACMFILTERTAGENUMCB

+|attr46=ACMFORMATCHOOSEHOOKPROC

+|attr47=ACMFORMATENUMCB

+|attr48=ACMFORMATTAGENUMCB

+|attr49=APPLET_PROC

+|attr50=ATOM

+|attr51=BOOL

+|attr52=BOOLEAN

+|attr53=BYTE

+|attr54=CALINFO_ENUMPROC

+|attr55=CALLBACK

+|attr56=CHAR

+|attr57=COLORREF

+|attr58=CONST

+|attr59=CRITICAL_SECTION

+|attr60=CTRYID

+|attr61=DATEFMT_ENUMPROC

+|attr62=DESKTOPENUMPROC

+|attr63=DLGPROC

+|attr64=DRAWSTATEPROC

+|attr65=DWORD

+|attr66=EDITWORDBREAKPROC

+|attr67=ENHMFENUMPROC

+|attr68=ENUMRESLANGPROC

+|attr69=ENUMRESNAMEPROC

+|attr70=ENUMRESTYPEPROC

+|attr71=FARPROC

+|attr72=FILE_SEGMENT_ELEMENT

+|attr73=FLOAT

+|attr74=FONTENUMPROC

+|attr75=GOBJENUMPROC

+|attr76=GRAYSTRINGPROC

+|attr77=HACCEL

+|attr78=HANDLE

+|attr79=HBITMAP

+|attr80=HBRUSH

+|attr81=HCOLORSPACE

+|attr82=HCONV

+|attr83=HCONVLIST

+|attr84=HCURSOR

+|attr85=HDC

+|attr86=HDDEDATA

+|attr87=HDESK

+|attr88=HDROP

+|attr89=HDWP

+|attr90=HENHMETAFILE

+|attr91=HFILE

+|attr92=HFONT

+|attr93=HGDIOBJ

+|attr94=HGLOBAL

+|attr95=HHOOK

+|attr96=HICON

+|attr97=HIMAGELIST

+|attr98=HIMC

+|attr99=HINSTANCE

+|attr100=HKEY

+|attr101=HKL

+|attr102=HLOCAL

+|attr103=HMENU

+|attr104=HMETAFILE

+|attr105=HMODULE

+|attr106=HMONITOR

+|attr107=HOOKPROC

+|attr108=HPALETTE

+|attr109=HPEN

+|attr110=HRGN

+|attr111=HRSRC

+|attr112=HSZ

+|attr113=HTREEITEM

+|attr114=HWINSTA

+|attr115=HWND

+|attr116=INT

+|attr117=IPADDR

+|attr118=LANGID

+|attr119=LCID

+|attr120=LCSCSTYPE

+|attr121=LCSGAMUTMATCH

+|attr122=LCTYPE

+|attr123=LINEDDAPROC

+|attr124=LOCALE_ENUMPROC

+|attr125=LONG

+|attr126=LONGLONG

+|attr127=LPARAM

+|attr128=LPBOOL

+|attr129=LPBYTE

+|attr130=LPCCHOOKPROC

+|attr131=LPCFHOOKPROC

+|attr132=LPCOLORREF

+|attr133=LPCRITICAL_SECTION

+|attr134=LPCSTR

+|attr135=LPCTSTR

+|attr136=LPCVOID

+|attr137=LPCWSTR

+|attr138=LPDWORD

+|attr139=LPFIBER_START_ROUTINE

+|attr140=LPFRHOOKPROC

+|attr141=LPHANDLE

+|attr142=LPHANDLER_FUNCTION

+|attr143=LPINT

+|attr144=LPLONG

+|attr145=LPOFNHOOKPROC

+|attr146=LPPAGEPAINTHOOK

+|attr147=LPPAGESETUPHOOK

+|attr148=LPPRINTHOOKPROC

+|attr149=LPPROGRESS_ROUTINE

+|attr150=LPSETUPHOOKPROC

+|attr151=LPSTR

+|attr152=LPSTREAM

+|attr153=LPTHREAD_START_ROUTINE

+|attr154=LPTSTR

+|attr155=LPVOID

+|attr156=LPWORD

+|attr157=LPWSTR

+|attr158=LRESULT

+|attr159=LUID

+|attr160=PBOOL

+|attr161=PBOOLEAN

+|attr162=PBYTE

+|attr163=PCHAR

+|attr164=PCRITICAL_SECTION

+|attr165=PCSTR

+|attr166=PCTSTR

+|attr167=PCWCH

+|attr168=PCWSTR

+|attr169=PDWORD

+|attr170=PFLOAT

+|attr171=PFNCALLBACK

+|attr172=PHANDLE

+|attr173=PHANDLER_ROUTINE

+|attr174=PHKEY

+|attr175=PINT

+|attr176=PLCID

+|attr177=PLONG

+|attr178=PLUID

+|attr179=PROPENUMPROC

+|attr180=PROPENUMPROCEX

+|attr181=PSHORT

+|attr182=PSTR

+|attr183=PTBYTE

+|attr184=PTCHAR

+|attr185=PTIMERAPCROUTINE

+|attr186=PTSTR

+|attr187=PUCHAR

+|attr188=PUINT

+|attr189=PULONG

+|attr190=PUSHORT

+|attr191=PVOID

+|attr192=PWCHAR

+|attr193=PWORD

+|attr194=PWSTR

+|attr195=REGISTERWORDENUMPROC

+|attr196=REGSAM

+|attr197=SC_HANDLE

+|attr198=SC_LOCK

+|attr199=SENDASYNCPROC

+|attr200=SERVICE_STATUS_HANDLE

+|attr201=SHORT

+|attr202=TBYTE

+|attr203=TCHAR

+|attr204=TIMEFMT_ENUMPROC

+|attr205=TIMERPROC

+|attr206=UCHAR

+|attr207=UINT

+|attr208=ULONG

+|attr209=ULONGLONG

+|attr210=UNSIGNED

+|attr211=USHORT

+|attr212=VOID

+|attr213=WCHAR

+|attr214=WINAPI

+|attr215=WINSTAENUMPROC

+|attr216=WNDENUMPROC

+|attr217=WNDPROC

+|attr218=WORD

+|attr219=WPARAM

+|attr220=YIELDPROC

+|attr221=CPoint

+|attr222=CRect

+|attr223=CSize

+|attr224=CString

+|attr225=CTime

+|attr226=CTimeSpan

+|attr227=CCreateContext

+|attr228=CMemoryState

+|attr229=COleSafeArray

+|attr230=CPrintInfo

+|attr231=HRESULT

+			))

+		    (object Attribute

+			tool       	"VC++"

+			name       	"Containers"

+			value      	(value Text 

+|cont1=CArray<$TYPE, $TYPE&>

+|cont2=CByteArray

+|cont3=CDWordArray

+|cont4=CObArray

+|cont5=CPtrArray

+|cont6=CStringArray

+|cont7=CUIntArray

+|cont8=CWordArray

+|cont9=CList<$TYPE, $TYPE&>

+|cont10=CPtrList

+|cont11=CObList

+|cont12=CStringList

+|cont13=CMapWordToPtr

+|cont14=CMapPtrToWord

+|cont15=CMapPtrToPtr

+|cont16=CMapWordToOb

+|cont17=CMapStringToPtr

+|cont18=CMapStringToOb

+|cont19=CMapStringToString

+|cont20=CTypedPtrArray<CPtrArray, $TYPE*>

+|cont21=CTypedPtrArray<CObArray, $TYPE*>

+|cont22=CTypedPtrList<CObList, $TYPE*>

+|cont23=CTypedPtrList<CPtrList, $TYPE*>

+|cont24=CComObject<$TYPE>

+|cont25=CComPtr<$TYPE>

+|cont26=CComQIPtr<$TYPE>

+|cont27=CComQIPtr<$TYPE, IID*>

+			))

+		    (object Attribute

+			tool       	"VC++"

+			name       	"ClassMethods"

+			value      	(value Text 

+|*_body=// ToDo: Add your specialized code here and/or call the base class

+|cm1=$NAME()

+|cm2=$NAME(orig:const $NAME&)

+|cm3=<<virtual>> ~$NAME()

+|cm4=operator=(rhs:$NAME&):$NAME&

+|cm4_body=// ToDo: Add your specialized code here and/or call the base class||return rhs;

+|cm5=<<const>> operator==(rhs:const $NAME&):bool

+|cm5_body=// ToDo: Add your specialized code here and/or call the base class||return false;

+|cm6=<<const>> operator!=(rhs:$NAME&):bool

+|cm6_body=// ToDo: Add your specialized code here and/or call the base class||return false;

+|cm7=<<const>> operator<(rhs:$NAME&):bool

+|cm7_body=// ToDo: Add your specialized code here and/or call the base class||return false;

+|cm8=<<const>> operator>(rhs:$NAME&):bool

+|cm8_body=// ToDo: Add your specialized code here and/or call the base class||return false;

+|cm9=<<const>> operator<=(rhs:$NAME&):bool

+|cm9_body=// ToDo: Add your specialized code here and/or call the base class||return false;

+|cm10=<<const>> operator>=(rhs:$NAME&):bool

+|cm10_body=// ToDo: Add your specialized code here and/or call the base class||return false;

+|cm11=<<friend>> operator>>(i:istream&, rhs:$NAME&):istream&

+|cm11_body=// ToDo: Add your specialized code here and/or call the base class||return i;

+|cm12=<<friend>> operator<<(o:ostream&, rhs:const $NAME&):ostream&

+|cm12_body=// ToDo: Add your specialized code here and/or call the base class||return o;

+			))

+		    (object Attribute

+			tool       	"VC++"

+			name       	"Accessors"

+			value      	(value Text 

+|agf=<<const>> get_$BASICNAME():const $TYPE

+|agf_body=return $NAME;

+|asf=set_$BASICNAME(value:$TYPE):void

+|asf_body=$NAME = value;|return;

+|agv=<<const>> get_$BASICNAME():const $TYPE&

+|agv_body=return $NAME;

+|asv=set_$BASICNAME(value:$TYPE&):void

+|asv_body=$NAME = value;|return;

+|agp=<<const>> get_$BASICNAME():const $TYPE

+|agp_body=return $NAME;

+|asp=set_$BASICNAME(value:$TYPE):void

+|asp_body=$NAME = value;|return;

+|agr=<<const>> get_$BASICNAME():const $TYPE

+|agr_body=return $NAME;

+|asr=set_$BASICNAME(value:$TYPE):void

+|asr_body=$NAME = value;|return;

+|aga=<<const>> get_$BASICNAME(index:int):const $TYPE

+|aga_body=return $NAME[index];

+|asa=set_$BASICNAME(index:int, value:$TYPE):void

+|asa_body=$NAME[index] = value;|return;

+			))

+		    (object Attribute

+			tool       	"VC++"

+			name       	"Conditionals"

+			value      	(value Text 

+|*_decl=#ifdef _DEBUG

+|*_base=CObject

+|cond1=<<virtual, const>> AssertValid():void

+|cond1_body=$SUPERNAME::AssertValid();

+|cond2=<<virtual, const>> Dump(dc:CDumpContext&):void

+|cond2_body=$SUPERNAME::Dump(dc);

+			))

+		    (object Attribute

+			tool       	"VC++"

+			name       	"Patterns"

+			value      	(value Text 

+|patrn1=cm1,cm3,cond1,cond2

+|Patrn1_name=Default

+			))

+		    (object Attribute

+			tool       	"VC++"

+			name       	"AtlClassPrefix"

+			value      	"C")

+		    (object Attribute

+			tool       	"VC++"

+			name       	"AtlInterfacePrefix"

+			value      	"I")

+		    (object Attribute

+			tool       	"VC++"

+			name       	"AtlTypeDescription"

+			value      	"Class")

+		    (object Attribute

+			tool       	"VC++"

+			name       	"DefaultLogicalPackage"

+			value      	"$language Reverse Engineered/$component")

+		    (object Attribute

+			tool       	"VC++"

+			name       	"DefaultComponentPackage"

+			value      	"")))

+	    (object Attribute

+		tool       	"VC++"

+		name       	"default__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"VC++"

+			name       	"Generate"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"VC++"

+			name       	"HeaderFileName"

+			value      	"")

+		    (object Attribute

+			tool       	"VC++"

+			name       	"CodeFileName"

+			value      	"")))

+	    (object Attribute

+		tool       	"VC++"

+		name       	"default__Module-Spec"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"VC++"

+			name       	"InternalMap"

+			value      	(value Text 

+|*:AUTO:AUTO

+|

+			))

+		    (object Attribute

+			tool       	"VC++"

+			name       	"ExportMap"

+			value      	(value Text 

+|*:AUTO:AUTO

+|

+			))

+		    (object Attribute

+			tool       	"VC++"

+			name       	"InitialSourceIncludes"

+			value      	(value Text 

+|"stdafx.h"

+			))

+		    (object Attribute

+			tool       	"VC++"

+			name       	"InitialHeaderIncludes"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"VC++"

+			name       	"Copyright"

+			value      	(value Text "Copyright (C) 1991 - 1999 Rational Software Corporation"))

+		    (object Attribute

+			tool       	"VC++"

+			name       	"KindSet"

+			value      	(list Attribute_Set

+			    (object Attribute

+				tool       	"VC++"

+				name       	"(none)"

+				value      	300)

+			    (object Attribute

+				tool       	"VC++"

+				name       	"DLL"

+				value      	301)

+			    (object Attribute

+				tool       	"VC++"

+				name       	"EXE"

+				value      	302)

+			    (object Attribute

+				tool       	"VC++"

+				name       	"MIDL"

+				value      	303)))

+		    (object Attribute

+			tool       	"VC++"

+			name       	"Kind"

+			value      	("KindSet" 300))

+		    (object Attribute

+			tool       	"VC++"

+			name       	"BodyExtensions"

+			value      	(value Text 

+|.cpp

+|.cxx

+|.inl

+			))

+		    (object Attribute

+			tool       	"VC++"

+			name       	"HeaderExtensions"

+			value      	(value Text 

+|.h

+|.hpp

+|.hxx

+|inl

+			))

+		    (object Attribute

+			tool       	"VC++"

+			name       	"ProjectFolders"

+			value      	(value Text 

+|Source Files

+|Header Files

+			))

+		    (object Attribute

+			tool       	"VC++"

+			name       	"UsePathMap"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"VC++"

+		name       	"default__Role"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"VC++"

+			name       	"Const"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"VC++"

+			name       	"Generate"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"VC++"

+			name       	"InitialValue"

+			value      	"")))

+	    (object Attribute

+		tool       	"VC++"

+		name       	"default__Uses"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"VC++"

+			name       	"Generate"

+			value      	TRUE)))

+	    (object Attribute

+		tool       	"VC++"

+		name       	"default__Category"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"VC++"

+			name       	"IsDirectory"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"VC++"

+			name       	"Directory"

+			value      	"")))

+	    (object Attribute

+		tool       	"VC++"

+		name       	"default__Attribute"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"VC++"

+			name       	"Generate"

+			value      	TRUE)))

+	    (object Attribute

+		tool       	"VC++"

+		name       	"default__Operation"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"VC++"

+			name       	"Generate"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"VC++"

+			name       	"Inline"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"VC++"

+			name       	"DefaultBody"

+			value      	(value Text ""))))

+	    (object Attribute

+		tool       	"VC++"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"Ecore"

+		name       	"propertyId"

+		value      	"809135969")

+	    (object Attribute

+		tool       	"Ecore"

+		name       	"default__Category"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"packageName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"nsPrefix"

+			value      	"")

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"nsURI"

+			value      	"")

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"basePackage"

+			value      	"")

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"prefix"

+			value      	"")))

+	    (object Attribute

+		tool       	"Ecore"

+		name       	"default__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"classifierName"

+			value      	"")))

+	    (object Attribute

+		tool       	"Ecore"

+		name       	"default__Operation"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"operationName"

+			value      	"")))

+	    (object Attribute

+		tool       	"Ecore"

+		name       	"default__Attribute"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"attributeName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"isTransient"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"isVolatile"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"isChangeable"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"isUnsettable"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"isUnique"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"isID"

+			value      	FALSE)))

+	    (object Attribute

+		tool       	"Ecore"

+		name       	"default__Role"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"referenceName"

+			value      	"")

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"isTransient"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"isVolatile"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"isChangeable"

+			value      	TRUE)

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"isUnsettable"

+			value      	FALSE)

+		    (object Attribute

+			tool       	"Ecore"

+			name       	"isResolveProxies"

+			value      	TRUE)))

+	    (object Attribute

+		tool       	"ANSI C++ Event Watcher"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"RequisitePro"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"SoDA"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"ClearCase"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"MOF"

+		name       	"propertyId"

+		value      	"809135966")

+	    (object Attribute

+		tool       	"JCR"

+		name       	"propertyId"

+		value      	"809135966")

+	    (object Attribute

+		tool       	"MOF"

+		name       	"default__Category"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"MOF"

+			name       	"uml2mof.hasImplicitReferences"

+			value      	"true")

+		    (object Attribute

+			tool       	"MOF"

+			name       	"uml2mof.clusteredImport"

+			value      	"")

+		    (object Attribute

+			tool       	"MOF"

+			name       	"rose2mof.supertypes"

+			value      	"")

+		    (object Attribute

+			tool       	"MOF"

+			name       	"mof.idl_prefix"

+			value      	"")

+		    (object Attribute

+			tool       	"MOF"

+			name       	"mof.idl_substitute_name"

+			value      	"")

+		    (object Attribute

+			tool       	"MOF"

+			name       	"mof.idl_version"

+			value      	"")

+		    (object Attribute

+			tool       	"MOF"

+			name       	"xmi.namespace"

+			value      	"")))

+	    (object Attribute

+		tool       	"JCR"

+		name       	"default__Category"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"JCR"

+			name       	"java_prefix"

+			value      	"")

+		    (object Attribute

+			tool       	"JCR"

+			name       	"java_substitute_name"

+			value      	"")

+		    (object Attribute

+			tool       	"JCR"

+			name       	"c_substitute_name"

+			value      	"")

+		    (object Attribute

+			tool       	"JCR"

+			name       	"uuid"

+			value      	"")

+		    (object Attribute

+			tool       	"JCR"

+			name       	"versioning.package"

+			value      	"")))

+	    (object Attribute

+		tool       	"MOF"

+		name       	"default__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"MOF"

+			name       	"uml2mof.corbaType"

+			value      	(value Text ""))

+		    (object Attribute

+			tool       	"MOF"

+			name       	"uml2mof.repositoryId"

+			value      	"")

+		    (object Attribute

+			tool       	"MOF"

+			name       	"mof.idl_substitute_name"

+			value      	"")

+		    (object Attribute

+			tool       	"MOF"

+			name       	"mof.idl_version"

+			value      	"")

+		    (object Attribute

+			tool       	"MOF"

+			name       	"xmi.enumerationUnprefix"

+			value      	"")

+		    (object Attribute

+			tool       	"MOF"

+			name       	"uml2mof.evaluationPolicy"

+			value      	"deferred")

+		    (object Attribute

+			tool       	"MOF"

+			name       	"rose2mof.constrainedElements"

+			value      	"")))

+	    (object Attribute

+		tool       	"JCR"

+		name       	"default__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"JCR"

+			name       	"java_substitute_name"

+			value      	"")

+		    (object Attribute

+			tool       	"JCR"

+			name       	"c_substitute_name"

+			value      	"")

+		    (object Attribute

+			tool       	"JCR"

+			name       	"cpp_substitute_type"

+			value      	"")

+		    (object Attribute

+			tool       	"JCR"

+			name       	"cpp_substitute_base"

+			value      	"")

+		    (object Attribute

+			tool       	"JCR"

+			name       	"uuid"

+			value      	"")

+		    (object Attribute

+			tool       	"JCR"

+			name       	"xmi.externalizeOK"

+			value      	"true")))

+	    (object Attribute

+		tool       	"MOF"

+		name       	"default__Role"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"MOF"

+			name       	"rose2mof.isChangeable"

+			value      	"true")

+		    (object Attribute

+			tool       	"MOF"

+			name       	"mof.idl_substitute_name"

+			value      	"")

+		    (object Attribute

+			tool       	"MOF"

+			name       	"mof.idl_version"

+			value      	"")))

+	    (object Attribute

+		tool       	"JCR"

+		name       	"default__Role"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"JCR"

+			name       	"java_substitute_name"

+			value      	"")

+		    (object Attribute

+			tool       	"JCR"

+			name       	"c_substitute_name"

+			value      	"")

+		    (object Attribute

+			tool       	"JCR"

+			name       	"uuid"

+			value      	"")))

+	    (object Attribute

+		tool       	"MOF"

+		name       	"default__Association"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"MOF"

+			name       	"rose2mof.visibility"

+			value      	"public_vis")

+		    (object Attribute

+			tool       	"MOF"

+			name       	"mof.idl_substitute_name"

+			value      	"")

+		    (object Attribute

+			tool       	"MOF"

+			name       	"mof.idl_version"

+			value      	"")))

+	    (object Attribute

+		tool       	"JCR"

+		name       	"default__Association"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"JCR"

+			name       	"java_substitute_name"

+			value      	"")

+		    (object Attribute

+			tool       	"JCR"

+			name       	"c_substitute_name"

+			value      	"")

+		    (object Attribute

+			tool       	"JCR"

+			name       	"uuid"

+			value      	"")))

+	    (object Attribute

+		tool       	"MOF"

+		name       	"default__Attribute"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"MOF"

+			name       	"rose2mof.multiplicity"

+			value      	"1")

+		    (object Attribute

+			tool       	"MOF"

+			name       	"uml2mof.isOrdered"

+			value      	"false")

+		    (object Attribute

+			tool       	"MOF"

+			name       	"uml2mof.isUnique"

+			value      	"false")

+		    (object Attribute

+			tool       	"MOF"

+			name       	"rose2mof.isChangeable"

+			value      	"true")

+		    (object Attribute

+			tool       	"MOF"

+			name       	"uml2mof.referencedEnd"

+			value      	"")

+		    (object Attribute

+			tool       	"MOF"

+			name       	"mof.idl_substitute_name"

+			value      	"")

+		    (object Attribute

+			tool       	"MOF"

+			name       	"mof.idl_version"

+			value      	"")

+		    (object Attribute

+			tool       	"MOF"

+			name       	"xmi.defaultValue"

+			value      	"")))

+	    (object Attribute

+		tool       	"JCR"

+		name       	"default__Attribute"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"JCR"

+			name       	"java_substitute_name"

+			value      	"")

+		    (object Attribute

+			tool       	"JCR"

+			name       	"c_substitute_name"

+			value      	"")

+		    (object Attribute

+			tool       	"JCR"

+			name       	"uuid"

+			value      	"")

+		    (object Attribute

+			tool       	"JCR"

+			name       	"mof.object_name"

+			value      	"false")

+		    (object Attribute

+			tool       	"JCR"

+			name       	"xmi.externalizeOK"

+			value      	"true")))

+	    (object Attribute

+		tool       	"MOF"

+		name       	"default__Operation"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"MOF"

+			name       	"rose2mof.scope"

+			value      	"instance_level")

+		    (object Attribute

+			tool       	"MOF"

+			name       	"rose2mof.isQuery"

+			value      	"false")

+		    (object Attribute

+			tool       	"MOF"

+			name       	"rose2mof.return.multiplicity"

+			value      	"1")

+		    (object Attribute

+			tool       	"MOF"

+			name       	"rose2mof.return.isOrdered"

+			value      	"false")

+		    (object Attribute

+			tool       	"MOF"

+			name       	"rose2mof.return.isUnique"

+			value      	"false")

+		    (object Attribute

+			tool       	"MOF"

+			name       	"mof.idl_substitute_name"

+			value      	"")

+		    (object Attribute

+			tool       	"MOF"

+			name       	"mof.idl_version"

+			value      	"")))

+	    (object Attribute

+		tool       	"JCR"

+		name       	"default__Operation"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"JCR"

+			name       	"java_substitute_name"

+			value      	"")

+		    (object Attribute

+			tool       	"JCR"

+			name       	"c_substitute_name"

+			value      	"")

+		    (object Attribute

+			tool       	"JCR"

+			name       	"uuid"

+			value      	"")

+		    (object Attribute

+			tool       	"JCR"

+			name       	"cpp_virtual"

+			value      	"false")))

+	    (object Attribute

+		tool       	"MOF"

+		name       	"default__Param"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"MOF"

+			name       	"uml2mof.multiplicity"

+			value      	"1")

+		    (object Attribute

+			tool       	"MOF"

+			name       	"uml2mof.isOrdered"

+			value      	"false")

+		    (object Attribute

+			tool       	"MOF"

+			name       	"uml2mof.isUnique"

+			value      	"false")

+		    (object Attribute

+			tool       	"MOF"

+			name       	"rose2mof.direction"

+			value      	"in_dir")

+		    (object Attribute

+			tool       	"MOF"

+			name       	"mof.idl_substitute_name"

+			value      	"")

+		    (object Attribute

+			tool       	"MOF"

+			name       	"mof.idl_version"

+			value      	"")))

+	    (object Attribute

+		tool       	"JCR"

+		name       	"default__Param"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"JCR"

+			name       	"java_substitute_name"

+			value      	"")

+		    (object Attribute

+			tool       	"JCR"

+			name       	"c_substitute_name"

+			value      	"")

+		    (object Attribute

+			tool       	"JCR"

+			name       	"uuid"

+			value      	"")))

+	    (object Attribute

+		tool       	"JCRMOF"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"UML"

+		name       	"propertyId"

+		value      	"809135966")

+	    (object Attribute

+		tool       	"UML"

+		name       	"default__Category"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"UML"

+			name       	"uuid"

+			value      	"")

+		    (object Attribute

+			tool       	"UML"

+			name       	"useJavaExceptions"

+			value      	"true")

+		    (object Attribute

+			tool       	"UML"

+			name       	"requiredItem"

+			value      	"")

+		    (object Attribute

+			tool       	"UML"

+			name       	"requiredItemType"

+			value      	"")

+		    (object Attribute

+			tool       	"UML"

+			name       	"DependencyStereotype"

+			value      	"")

+		    (object Attribute

+			tool       	"UML"

+			name       	"DependencyName"

+			value      	"")

+		    (object Attribute

+			tool       	"UML"

+			name       	"useSeparateDependencies"

+			value      	"true")

+		    (object Attribute

+			tool       	"UML"

+			name       	"exportableUnit"

+			value      	"true")

+		    (object Attribute

+			tool       	"UML"

+			name       	"hasImportedUUIDs"

+			value      	"false")))

+	    (object Attribute

+		tool       	"UML"

+		name       	"default__Class"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"UML"

+			name       	"uuid"

+			value      	"")

+		    (object Attribute

+			tool       	"UML"

+			name       	"useJavaExceptions"

+			value      	"true")

+		    (object Attribute

+			tool       	"UML"

+			name       	"secondaryStereotype"

+			value      	"")

+		    (object Attribute

+			tool       	"UML"

+			name       	"requiredItem"

+			value      	"")

+		    (object Attribute

+			tool       	"UML"

+			name       	"requiredItemType"

+			value      	"")

+		    (object Attribute

+			tool       	"UML"

+			name       	"DependencyStereotype"

+			value      	"")

+		    (object Attribute

+			tool       	"UML"

+			name       	"DependencyName"

+			value      	"")

+		    (object Attribute

+			tool       	"UML"

+			name       	"useSeparateDependencies"

+			value      	"true")))

+	    (object Attribute

+		tool       	"UML"

+		name       	"default__Role"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"UML"

+			name       	"uuid"

+			value      	"")

+		    (object Attribute

+			tool       	"UML"

+			name       	"changeability"

+			value      	"changeable")))

+	    (object Attribute

+		tool       	"UML"

+		name       	"default__Association"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"UML"

+			name       	"uuid"

+			value      	"")))

+	    (object Attribute

+		tool       	"UML"

+		name       	"default__Attribute"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"UML"

+			name       	"uuid"

+			value      	"")

+		    (object Attribute

+			tool       	"UML"

+			name       	"multiplicity"

+			value      	"1")

+		    (object Attribute

+			tool       	"UML"

+			name       	"DependencySupplier"

+			value      	"")

+		    (object Attribute

+			tool       	"UML"

+			name       	"DependencyStereotype"

+			value      	"")

+		    (object Attribute

+			tool       	"UML"

+			name       	"DependencyName"

+			value      	"")

+		    (object Attribute

+			tool       	"UML"

+			name       	"useSeparateDependencies"

+			value      	"true")

+		    (object Attribute

+			tool       	"UML"

+			name       	"changeability"

+			value      	"changeable")))

+	    (object Attribute

+		tool       	"UML"

+		name       	"default__Param"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"UML"

+			name       	"uuid"

+			value      	"")

+		    (object Attribute

+			tool       	"UML"

+			name       	"direction"

+			value      	"")))

+	    (object Attribute

+		tool       	"UML"

+		name       	"default__Operation"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"UML"

+			name       	"uuid"

+			value      	"")

+		    (object Attribute

+			tool       	"UML"

+			name       	"returnDefaultValue"

+			value      	"")

+		    (object Attribute

+			tool       	"UML"

+			name       	"MethodLanguage"

+			value      	"")

+		    (object Attribute

+			tool       	"UML"

+			name       	"MethodBody"

+			value      	"")

+		    (object Attribute

+			tool       	"UML"

+			name       	"useSeparateDependencies"

+			value      	"true")

+		    (object Attribute

+			tool       	"UML"

+			name       	"DependencyName"

+			value      	"")))

+	    (object Attribute

+		tool       	"UML"

+		name       	"default__Module"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"UML"

+			name       	"uuid"

+			value      	"")))

+	    (object Attribute

+		tool       	"UML"

+		name       	"default__Subsystem"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"UML"

+			name       	"uuid"

+			value      	"")

+		    (object Attribute

+			tool       	"UML"

+			name       	"exportableUnit"

+			value      	"true")))

+	    (object Attribute

+		tool       	"UML"

+		name       	"default__Link"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"UML"

+			name       	"uuid"

+			value      	"")))

+	    (object Attribute

+		tool       	"UML"

+		name       	"default__ObjectInstance"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"UML"

+			name       	"uuid"

+			value      	"")))

+	    (object Attribute

+		tool       	"UML"

+		name       	"default__StateMachine"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"UML"

+			name       	"uuid"

+			value      	"")))

+	    (object Attribute

+		tool       	"UML"

+		name       	"default__ActivityModel"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"UML"

+			name       	"uuid"

+			value      	"")))

+	    (object Attribute

+		tool       	"UML"

+		name       	"default__SwimLane"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"UML"

+			name       	"uuid"

+			value      	"")))

+	    (object Attribute

+		tool       	"UML"

+		name       	"default__UseCase"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"UML"

+			name       	"uuid"

+			value      	"")

+		    (object Attribute

+			tool       	"UML"

+			name       	"requiredItem"

+			value      	"")

+		    (object Attribute

+			tool       	"UML"

+			name       	"requiredItemType"

+			value      	"")

+		    (object Attribute

+			tool       	"UML"

+			name       	"DependencyStereotype"

+			value      	"")

+		    (object Attribute

+			tool       	"UML"

+			name       	"DependencyName"

+			value      	"")

+		    (object Attribute

+			tool       	"UML"

+			name       	"useSeparateDependencies"

+			value      	"true")))

+	    (object Attribute

+		tool       	"UML"

+		name       	"default__StateTransition"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"UML"

+			name       	"uuid"

+			value      	"")

+		    (object Attribute

+			tool       	"UML"

+			name       	"SendActionName"

+			value      	"")

+		    (object Attribute

+			tool       	"UML"

+			name       	"ActionScriptLanguage"

+			value      	"")

+		    (object Attribute

+			tool       	"UML"

+			name       	"ActionScriptBody"

+			value      	"")))

+	    (object Attribute

+		tool       	"UML"

+		name       	"default__Model"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"UML"

+			name       	"uuid"

+			value      	"")))

+	    (object Attribute

+		tool       	"UML"

+		name       	"default__Dependency"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"UML"

+			name       	"uuid"

+			value      	"")))

+	    (object Attribute

+		tool       	"UML"

+		name       	"default__Generalization"

+		value      	(list Attribute_Set

+		    (object Attribute

+			tool       	"UML"

+			name       	"uuid"

+			value      	"")))

+	    (object Attribute

+		tool       	"JCRUML"

+		name       	"HiddenTool"

+		value      	FALSE)

+	    (object Attribute

+		tool       	"CRMTooling"

+		name       	"HiddenTool"

+		value      	FALSE))

+	quid       	"3F26AE4D0304"))

diff --git a/plugins/org.eclipse.datatools.modelbase.sql/model/sqlmodel.ecore b/plugins/org.eclipse.datatools.modelbase.sql/model/sqlmodel.ecore
new file mode 100644
index 0000000..6f2ad4a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/model/sqlmodel.ecore
@@ -0,0 +1,1178 @@
+<?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="sqlmodel"

+    nsURI="http:///SQLModel.ecore" nsPrefix="SQLModel">

+  <eSubpackages name="schema" nsURI="http:///org/eclipse/datatools/modelbase/sql/schema.ecore"

+      nsPrefix="SQLSchema">

+    <eClassifiers xsi:type="ecore:EClass" name="IdentitySpecifier" eSuperTypes="#//schema/SQLObject">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.14.4 Identity columns"/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="generationType" eType="#//schema/GenerateType"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="startValue" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBigInteger"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="increment" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBigInteger"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="minimum" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBigInteger"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="maximum" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBigInteger"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="cycleOption" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EEnum" name="GenerateType">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.14.4 Identity columns&#xD;&#xA;"/>

+      </eAnnotations>

+      <eLiterals name="DEFAULT_GENERATED"/>

+      <eLiterals name="ALWAYS_GENERATED" value="1"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="TypedElement" abstract="true" eSuperTypes="#//schema/SQLObject">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 "/>

+      </eAnnotations>

+      <eOperations name="setDataType">

+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+          <details key="documentation" value="Set the type for this TypedElement"/>

+        </eAnnotations>

+        <eParameters name="newType" eType="#//datatypes/DataType"/>

+      </eOperations>

+      <eOperations name="getDataType" eType="#//datatypes/DataType">

+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+          <details key="documentation" value="Get the type for this TypedElement"/>

+        </eAnnotations>

+      </eOperations>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="containedType" eType="#//datatypes/SQLDataType"

+          containment="true"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="referencedType" eType="#//datatypes/UserDefinedType"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="Dependency" eSuperTypes="#//schema/SQLObject">

+      <eStructuralFeatures xsi:type="ecore:EReference" name="targetEnd" lowerBound="1"

+          eType="ecore:EClass ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="dependencyType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="Schema" eSuperTypes="#//schema/SQLObject">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.20 SQL-schemas&#xD;&#xA;"/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="triggers" upperBound="-1"

+          eType="#//tables/Trigger" eOpposite="#//tables/Trigger/schema"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="indices" upperBound="-1"

+          eType="#//constraints/Index" eOpposite="#//constraints/Index/Schema"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="tables" upperBound="-1"

+          eType="#//tables/Table" eOpposite="#//tables/Table/schema"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="sequences" upperBound="-1"

+          eType="#//schema/Sequence" eOpposite="#//schema/Sequence/schema"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="database" lowerBound="1"

+          eType="#//schema/Database" eOpposite="#//schema/Database/schemas"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="Catalog" lowerBound="1"

+          eType="#//schema/Catalog" eOpposite="#//schema/Catalog/schemas"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="assertions" upperBound="-1"

+          eType="#//constraints/Assertion" eOpposite="#//constraints/Assertion/schema"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="userDefinedTypes" upperBound="-1"

+          eType="#//datatypes/UserDefinedType" eOpposite="#//datatypes/UserDefinedType/schema"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="charSets" upperBound="-1"

+          eType="#//datatypes/CharacterSet" eOpposite="#//datatypes/CharacterSet/schema"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="routines" upperBound="-1"

+          eType="#//routines/Routine" eOpposite="#//routines/Routine/schema"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="owner" lowerBound="1"

+          eType="#//accesscontrol/AuthorizationIdentifier" eOpposite="#//accesscontrol/AuthorizationIdentifier/ownedSchema"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="SQLObject" abstract="true" eSuperTypes="../../org.eclipse.emf.ecore/model/Ecore.ecore#//ENamedElement">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="The base object to be used for any Relation Database concept, representing the placeholder for the name and alias.  This object will extend ENamedElement in the generated code.  The string attribute name will be inherited&#xD;&#xA;from ENamedElement.&#xD;&#xA;&#xD;&#xA;Note: In the RDB sense, only table and view objects can be represented by aliases, but DB2 defines also database and network aliases, and even for nicknames that refer to data tables or views located on federated systems."/>

+      </eAnnotations>

+      <eOperations name="addEAnnotation" eType="ecore:EClass ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EAnnotation">

+        <eParameters name="source" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+      </eOperations>

+      <eOperations name="addEAnnotationDetail">

+        <eParameters name="eAnnotation" eType="ecore:EClass ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EAnnotation"/>

+        <eParameters name="key" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+        <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+      </eOperations>

+      <eOperations name="getEAnnotationDetail" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">

+        <eParameters name="eAnnotation" eType="ecore:EClass ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EAnnotation"/>

+        <eParameters name="key" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+      </eOperations>

+      <eOperations name="setAnnotationDetail">

+        <eParameters name="eAnnotation" eType="ecore:EClass ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EAnnotation"/>

+        <eParameters name="key" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+        <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+      </eOperations>

+      <eOperations name="removeEAnnotationDetail">

+        <eParameters name="eAnnotation" eType="ecore:EClass ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EAnnotation"/>

+        <eParameters name="key" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+      </eOperations>

+      <eOperations name="getEAnnotation" eType="ecore:EClass ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EAnnotation">

+        <eParameters name="source" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+      </eOperations>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="dependencies" upperBound="-1"

+          eType="#//schema/Dependency" containment="true"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="label" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="comments" upperBound="-1"

+          eType="#//schema/Comment" eOpposite="#//schema/Comment/SQLObject"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="extensions" upperBound="-1"

+          eType="#//schema/ObjectExtension" containment="true" eOpposite="#//schema/ObjectExtension/SQLObject"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="privileges" upperBound="-1"

+          eType="#//accesscontrol/Privilege" eOpposite="#//accesscontrol/Privilege/object"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="Sequence" eSuperTypes="#//schema/TypedElement">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.21 Sequence Generators"/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="identity" lowerBound="1"

+          eType="#//schema/IdentitySpecifier" containment="true"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="schema" lowerBound="1"

+          eType="#//schema/Schema" eOpposite="#//schema/Schema/sequences"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="Database" eSuperTypes="#//schema/SQLObject">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 "/>

+      </eAnnotations>

+      <eOperations name="getUserDefinedTypes" eType="#//schema/List"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="vendor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="version" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="schemas" upperBound="-1"

+          eType="#//schema/Schema" eOpposite="#//schema/Schema/database"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="events" upperBound="-1"

+          eType="#//schema/Event" eOpposite="#//schema/Event/Database"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="catalogs" upperBound="-1"

+          eType="#//schema/Catalog" eOpposite="#//schema/Catalog/Database"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="authorizationIds" upperBound="-1"

+          eType="#//accesscontrol/AuthorizationIdentifier" eOpposite="#//accesscontrol/AuthorizationIdentifier/Database"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EDataType" name="Date" instanceClassName="java.util.Date"/>

+    <eClassifiers xsi:type="ecore:EDataType" name="List" instanceClassName="java.util.List"/>

+    <eClassifiers xsi:type="ecore:EEnum" name="ReferentialActionType">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 "/>

+      </eAnnotations>

+      <eLiterals name="NO_ACTION"/>

+      <eLiterals name="RESTRICT" value="1"/>

+      <eLiterals name="CASCADE" value="2"/>

+      <eLiterals name="SET_NULL" value="3"/>

+      <eLiterals name="SET_DEFAULT" value="4"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="Event" eSuperTypes="#//schema/SQLObject">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 "/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="for" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">

+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+          <details key="documentation" value="the type of object on which the event applies"/>

+        </eAnnotations>

+      </eStructuralFeatures>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="condition" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">

+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+          <details key="documentation" value="the condition to be satisfied inorder to activate the event"/>

+        </eAnnotations>

+      </eStructuralFeatures>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="action" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">

+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+          <details key="documentation" value="the action that the event performs after being activated"/>

+        </eAnnotations>

+      </eStructuralFeatures>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="enabled" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">

+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+          <details key="documentation" value="event state"/>

+        </eAnnotations>

+      </eStructuralFeatures>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="Database" lowerBound="1"

+          eType="#//schema/Database" eOpposite="#//schema/Database/events"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="Comment">

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="SQLObject" lowerBound="1"

+          eType="#//schema/SQLObject" eOpposite="#//schema/SQLObject/comments"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="Catalog" eSuperTypes="#//schema/SQLObject">

+      <eStructuralFeatures xsi:type="ecore:EReference" name="Database" lowerBound="1"

+          eType="#//schema/Database" eOpposite="#//schema/Database/catalogs"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="schemas" upperBound="-1"

+          eType="#//schema/Schema" eOpposite="#//schema/Schema/Catalog"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="ObjectExtension" abstract="true" interface="true">

+      <eStructuralFeatures xsi:type="ecore:EReference" name="SQLObject" lowerBound="1"

+          eType="#//schema/SQLObject" transient="true" eOpposite="#//schema/SQLObject/extensions"/>

+    </eClassifiers>

+  </eSubpackages>

+  <eSubpackages name="constraints" nsURI="http:///org/eclipse/datatools/modelbase/sql/constraints.ecore"

+      nsPrefix="SQLConstraints">

+    <eClassifiers xsi:type="ecore:EClass" name="Assertion" eSuperTypes="#//constraints/Constraint">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.17.4 Assertions,&#xD;&#xA;5WD-02-Foundation-2002-12 11.37 &lt;assertion definition>&#xD;&#xA;"/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="searchCondition" eType="#//expressions/SearchCondition"

+          containment="true" resolveProxies="false"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="schema" lowerBound="1"

+          eType="#//schema/Schema" eOpposite="#//schema/Schema/assertions"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="constrainedTables" lowerBound="1"

+          upperBound="-1" eType="#//tables/BaseTable" derived="true"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="Constraint" abstract="true" eSuperTypes="#//schema/SQLObject">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.17 Integrity constraints&#xD;&#xA;"/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="deferrable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">

+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+          <details key="documentation" value="If True allows you to specify when the DBMS should check the constraint for violation (statement end or transaction end).  If False it will always be after statement end.&#xD;&#xA;&#xD;&#xA;Could also be named deferralMode with values DEFERRABLE and NOT DEFERRABLE."/>

+        </eAnnotations>

+      </eStructuralFeatures>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="initiallyDeferred" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"

+          defaultValueLiteral="false">

+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+          <details key="documentation" value="If True isDeferrable must be True and constraint check time will be DEFERRED.  If False constraint check time will be IMMEDIATE.&#xD;&#xA;&#xD;&#xA;Could also be named (initial)ConstraintCheckTime with values INITIALLY DEFERRED and INITIALLY IMMEDIATE.  Default value would be INITIALLY IMMEDIATE.&#xD;&#xA;"/>

+        </eAnnotations>

+      </eStructuralFeatures>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="enforced" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"

+          defaultValueLiteral="true"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="TableConstraint" abstract="true" eSuperTypes="#//constraints/Constraint">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.17.2 Table constraints&#xD;&#xA;"/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="BaseTable" eType="#//tables/BaseTable"

+          transient="true" eOpposite="#//tables/BaseTable/constraints"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="ReferenceConstraint" abstract="true"

+        eSuperTypes="#//constraints/TableConstraint">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.17.2 Table constraints"/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="members" lowerBound="1"

+          upperBound="-1" eType="#//tables/Column"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="CheckConstraint" eSuperTypes="#//constraints/TableConstraint">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.17.2 Table constraints&#xD;&#xA;"/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="searchCondition" eType="#//expressions/SearchCondition"

+          containment="true" resolveProxies="false">

+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+          <details key="documentation" value="Section 4.17.2&#xD;&#xA;A check constraint is satisfied if and only if the specified &lt;search condition> is not False for any row of a table."/>

+        </eAnnotations>

+      </eStructuralFeatures>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="ForeignKey" eSuperTypes="#//constraints/ReferenceConstraint">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.17 Integrity constraints, Reference, 5WD-02-Foundation-2002-12 11.8 &lt;referencial constraint definition>&#xD;&#xA;"/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="match" eType="#//constraints/MatchType"

+          defaultValueLiteral="MATCH_SIMPLE"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="onUpdate" eType="#//schema/ReferentialActionType"

+          defaultValueLiteral="NO_ACTION"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="onDelete" eType="#//schema/ReferentialActionType"

+          defaultValueLiteral="NO_ACTION"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="uniqueConstraint" eType="#//constraints/UniqueConstraint"

+          eOpposite="#//constraints/UniqueConstraint/ForeignKey"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="referencedMembers" lowerBound="1"

+          upperBound="-1" eType="#//tables/Column"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="uniqueIndex" eType="#//constraints/Index"

+          eOpposite="#//constraints/Index/ForeignKey"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="referencedTable" eType="#//tables/BaseTable"

+          eOpposite="#//tables/BaseTable/referencingForeignKeys"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="UniqueConstraint" eSuperTypes="#//constraints/ReferenceConstraint">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.17.2 Table constraints, 5WD-02-Foundation-2002-12 11.7 &lt;unique contraint definition>&#xD;&#xA;"/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="clustered" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"

+          defaultValueLiteral="true"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="ForeignKey" upperBound="-1"

+          eType="#//constraints/ForeignKey" eOpposite="#//constraints/ForeignKey/uniqueConstraint"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="PrimaryKey" eSuperTypes="#//constraints/UniqueConstraint">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.17 Integrity constraints, Reference, 5WD-02-Foundation-2002-12 11.7 &lt;unique contraint definition>"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EEnum" name="MatchType">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="See KeyRelationship description."/>

+      </eAnnotations>

+      <eLiterals name="MATCH_SIMPLE"/>

+      <eLiterals name="MATCH_FULL" value="1"/>

+      <eLiterals name="MATCH_PARTIAL" value="2"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="Index" eSuperTypes="#//schema/SQLObject">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 "/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="Schema" lowerBound="1"

+          eType="#//schema/Schema" eOpposite="#//schema/Schema/indices"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="clustered" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"

+          defaultValueLiteral="false"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="fillFactor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"

+          defaultValueLiteral="0"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="unique" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"

+          defaultValueLiteral="false"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="systemGenerated" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="members" lowerBound="1"

+          upperBound="-1" eType="#//constraints/IndexMember" containment="true"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="table" lowerBound="1"

+          eType="#//tables/Table" eOpposite="#//tables/Table/index"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="ForeignKey" upperBound="-1"

+          eType="#//constraints/ForeignKey" eOpposite="#//constraints/ForeignKey/uniqueIndex"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="includedMembers" upperBound="-1"

+          eType="#//constraints/IndexMember" containment="true"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="IndexMember" eSuperTypes="#//schema/SQLObject">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="IndexMember is an EObject.  It does not have a name or associated SQL descriptor so it is not an SQLObject.  This is the way we have chosen to model Index columns because EMF does not support association classes.&#xD;&#xA;The &quot;expression&quot; reference was added to support function/expression-based indexes.  The expression relationship and the column relationship should be mutually exclusive; that is, one and only one of these should be set."/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="incrementType" eType="#//constraints/IncrementType"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="column" eType="#//tables/Column"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="expression" eType="#//constraints/IndexExpression"

+          containment="true"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EEnum" name="IncrementType">

+      <eLiterals name="ASC"/>

+      <eLiterals name="DESC" value="1"/>

+      <eLiterals name="RANDOM" value="2"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="IndexExpression" eSuperTypes="#//schema/SQLObject">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="IndexExpression is a SQLObject.  It was added to support function/expression-based indexes."/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="sql" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+    </eClassifiers>

+  </eSubpackages>

+  <eSubpackages name="datatypes" nsURI="http:///org/eclipse/datatools/modelbase/sql/datatypes.ecore"

+      nsPrefix="SQLDataTypes">

+    <eClassifiers xsi:type="ecore:EClass" name="UserDefinedType" abstract="true" eSuperTypes="#//datatypes/DataType">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.7 User-defined types&#xD;&#xA;"/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="schema" lowerBound="1"

+          eType="#//schema/Schema" eOpposite="#//schema/Schema/userDefinedTypes"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="ordering" eType="#//datatypes/UserDefinedTypeOrdering"

+          containment="true"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="DataType" abstract="true" eSuperTypes="#//schema/SQLObject">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.1 Data types&#xD;&#xA;"/>

+      </eAnnotations>

+      <eOperations name="setContainer">

+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+          <details key="documentation" value="This method is used to set the type on the given Column.  It is implemented on the child classes of DataType.  The concrete children classses will know which type relationship to use on Column to set the data type."/>

+        </eAnnotations>

+        <eParameters name="newContainer" eType="#//schema/TypedElement"/>

+      </eOperations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="PredefinedDataType" abstract="true"

+        eSuperTypes="#//datatypes/SQLDataType">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.1 Data types&#xD;&#xA;"/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="primitiveType" eType="#//datatypes/PrimitiveType"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="CollectionDataType" abstract="true"

+        eSuperTypes="#//datatypes/ConstructedDataType">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.10 Collection Types"/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="elementType" lowerBound="1"

+          eType="#//datatypes/ElementType" containment="true" eOpposite="#//datatypes/ElementType/CollectionDataType"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="NumericalDataType" abstract="true"

+        eSuperTypes="#//datatypes/PredefinedDataType">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.4 Numbers"/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="precision" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="CharacterStringDataType" eSuperTypes="#//datatypes/PredefinedDataType">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.2 Character strings"/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="length" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"

+          defaultValueLiteral="1"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="coercibility" eType="#//datatypes/CoercibilityType"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="fixedLength" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"

+          changeable="false"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="collationName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="characterSet" lowerBound="1"

+          eType="#//datatypes/CharacterSet" eOpposite="#//datatypes/CharacterSet/CharacterStringDataType"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="RowDataType" eSuperTypes="#//datatypes/ConstructedDataType">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.8 Row Types&#xD;&#xA;"/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="fields" lowerBound="1"

+          upperBound="-1" eType="#//datatypes/Field" containment="true"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="ArrayDataType" abstract="true" eSuperTypes="#//datatypes/CollectionDataType">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.10.1 Arrays"/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="maxCardinality" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="MultisetDataType" abstract="true"

+        eSuperTypes="#//datatypes/CollectionDataType">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.10.2 Multisets"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="BooleanDataType" eSuperTypes="#//datatypes/PredefinedDataType">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.5 Boolean types&#xD;&#xA;"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="IntervalDataType" eSuperTypes="#//datatypes/PredefinedDataType">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.6.2 Intervals&#xD;&#xA;"/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="leadingQualifier" eType="#//datatypes/IntervalQualifierType"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="trailingQualifier" eType="#//datatypes/IntervalQualifierType"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="leadingFieldPrecision"

+          eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="trailingFieldPrecision"

+          eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="fractionalSecondsPrecision"

+          eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="BinaryStringDataType" eSuperTypes="#//datatypes/PredefinedDataType">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.3 Binary strings&#xD;&#xA;"/>

+      </eAnnotations>

+      <eOperations name="equals" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="length" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="CharacterSet" eSuperTypes="#//schema/SQLObject">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.2.6 Character sets, 5WD-02-Foundation-2002-12 4.2.7 Universal character sets&#xD;&#xA;"/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="repertoire" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultCollation" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="encoding" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="CharacterStringDataType"

+          lowerBound="1" eType="#//datatypes/CharacterStringDataType" eOpposite="#//datatypes/CharacterStringDataType/characterSet"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="schema" lowerBound="1"

+          eType="#//schema/Schema" eOpposite="#//schema/Schema/charSets"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EEnum" name="CoercibilityType">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.2.1 Comparison of character strings&#xD;&#xA;"/>

+      </eAnnotations>

+      <eLiterals name="IMPLICIT"/>

+      <eLiterals name="EXPLICIT" value="1"/>

+      <eLiterals name="COERCIBILE" value="2"/>

+      <eLiterals name="NO_COLLATION" value="3"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="TimeDataType" eSuperTypes="#//datatypes/PredefinedDataType">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.6.1 Datetimes&#xD;&#xA;"/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="fractionalSecondsPrecision"

+          eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="timeZone" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"

+          defaultValueLiteral="false"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EEnum" name="IntervalQualifierType">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.6.2 Intervals&#xD;&#xA;"/>

+      </eAnnotations>

+      <eLiterals name="YEAR"/>

+      <eLiterals name="MONTH" value="1"/>

+      <eLiterals name="DAY" value="2"/>

+      <eLiterals name="HOUR" value="3"/>

+      <eLiterals name="MINUTE" value="4"/>

+      <eLiterals name="SECOND" value="5"/>

+      <eLiterals name="FRACTION" value="6"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="DistinctUserDefinedType" eSuperTypes="#//datatypes/UserDefinedType">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.7 User-defined types"/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="predefinedRepresentation"

+          lowerBound="1" eType="#//datatypes/PredefinedDataType" containment="true"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="StructuredUserDefinedType" eSuperTypes="#//datatypes/UserDefinedType">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.7 User-defined types&#xD;&#xA;"/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="instantiable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"

+          defaultValueLiteral="True"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="final" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="super" eType="#//datatypes/StructuredUserDefinedType"

+          eOpposite="#//datatypes/StructuredUserDefinedType/sub"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="sub" upperBound="-1"

+          eType="#//datatypes/StructuredUserDefinedType" eOpposite="#//datatypes/StructuredUserDefinedType/super"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="attributes" upperBound="-1"

+          eType="#//datatypes/AttributeDefinition" containment="true"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="methods" upperBound="-1"

+          eType="#//routines/Method" containment="true"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EEnum" name="OrderingType">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.7 User-defined types&#xD;&#xA;"/>

+      </eAnnotations>

+      <eLiterals name="EQUALS"/>

+      <eLiterals name="FULL" value="1"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EEnum" name="OrderingCategoryType">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.7 User-defined types&#xD;&#xA;"/>

+      </eAnnotations>

+      <eLiterals name="RELATIVE"/>

+      <eLiterals name="MAP" value="1"/>

+      <eLiterals name="STATE" value="2"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="AttributeDefinition" eSuperTypes="#//schema/TypedElement">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.13 Columns, fields, and attributes&#xD;&#xA;"/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="scopeCheck" eType="#//schema/ReferentialActionType"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="scopeChecked" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="FixedPrecisionDataType" eSuperTypes="#//datatypes/ExactNumericDataType">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.4 Numbers"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EEnum" name="PrimitiveType">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.1 Data types"/>

+      </eAnnotations>

+      <eLiterals name="CHARACTER"/>

+      <eLiterals name="CHARACTER_VARYING" value="1"/>

+      <eLiterals name="CHARACTER_LARGE_OBJECT" value="2"/>

+      <eLiterals name="NATIONAL_CHARACTER" value="3"/>

+      <eLiterals name="NATIONAL_CHARACTER_VARYING" value="4"/>

+      <eLiterals name="NATIONAL_CHARACTER_LARGE_OBJECT" value="5"/>

+      <eLiterals name="BINARY" value="6"/>

+      <eLiterals name="BINARY_VARYING" value="7"/>

+      <eLiterals name="BINARY_LARGE_OBJECT" value="8"/>

+      <eLiterals name="NUMERIC" value="9"/>

+      <eLiterals name="DECIMAL" value="10"/>

+      <eLiterals name="SMALLINT" value="11"/>

+      <eLiterals name="INTEGER" value="12"/>

+      <eLiterals name="BIGINT" value="13"/>

+      <eLiterals name="FLOAT" value="14"/>

+      <eLiterals name="REAL" value="15"/>

+      <eLiterals name="DOUBLE_PRECISION" value="16"/>

+      <eLiterals name="BOOLEAN" value="17"/>

+      <eLiterals name="DATE" value="18"/>

+      <eLiterals name="TIME" value="19"/>

+      <eLiterals name="TIMESTAMP" value="20"/>

+      <eLiterals name="INTERVAL" value="21"/>

+      <eLiterals name="DATALINK" value="22"/>

+      <eLiterals name="XML_TYPE" value="23"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="Domain" eSuperTypes="#//datatypes/DistinctUserDefinedType">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.12 Domains&#xD;&#xA;"/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="constraint" upperBound="-1"

+          eType="#//constraints/CheckConstraint" containment="true"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="Field" eSuperTypes="#//schema/TypedElement">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.13 Columns, fields, and attributes&#xD;&#xA;"/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="scopeCheck" eType="#//schema/ReferentialActionType"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="scopeChecked" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="ReferenceDataType" abstract="true"

+        eSuperTypes="#//datatypes/ConstructedDataType">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.9 Reference Types"/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="scopeTable" lowerBound="1"

+          eType="#//tables/Table"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="referencedType" lowerBound="1"

+          eType="#//datatypes/StructuredUserDefinedType"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="ConstructedDataType" abstract="true"

+        eSuperTypes="#//datatypes/DataType">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.1 Data Types"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="SQLDataType" abstract="true" eSuperTypes="#//datatypes/DataType">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="SQLDataType represents any non user defined data type.  It was introduced because a TypedElement needs to distinguish between UDTs and non UDTs."/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="DataLinkDataType" eSuperTypes="#//datatypes/PredefinedDataType">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Represents a link to a file/location outside the system. "/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="length" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="linkControl" eType="#//datatypes/LinkControlOption"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="integrityControl" eType="#//datatypes/IntegrityControlOption"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="readPermission" eType="#//datatypes/ReadPermissionOption"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="writePermission" eType="#//datatypes/WritePermissionOption"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="recovery" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="unlink" eType="#//datatypes/UnlinkOption"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EEnum" name="LinkControlOption">

+      <eLiterals name="FILE_LINK_CONTROL"/>

+      <eLiterals name="NO_FILE_LINK_CONTROL" value="1"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EEnum" name="IntegrityControlOption">

+      <eLiterals name="ALL"/>

+      <eLiterals name="SELECTIVE" value="1"/>

+      <eLiterals name="NONE" value="2"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EEnum" name="ReadPermissionOption">

+      <eLiterals name="FS"/>

+      <eLiterals name="DB" value="1"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EEnum" name="WritePermissionOption">

+      <eLiterals name="FS"/>

+      <eLiterals name="ADMIN" value="1"/>

+      <eLiterals name="BLOCKED" value="2"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EEnum" name="UnlinkOption">

+      <eLiterals name="RESTORE"/>

+      <eLiterals name="DELETE" value="1"/>

+      <eLiterals name="NONE" value="2"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="UserDefinedTypeOrdering" eSuperTypes="#//schema/SQLObject">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.7 User-defined types"/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="orderingForm" eType="#//datatypes/OrderingType"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="orderingCategory" eType="#//datatypes/OrderingCategoryType"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="orderingRoutine" lowerBound="1"

+          eType="#//routines/Routine"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="DateDataType" eSuperTypes="#//datatypes/PredefinedDataType">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.6.1 Datetimes"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="ExactNumericDataType" abstract="true"

+        eSuperTypes="#//datatypes/NumericalDataType">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.4 Numbers"/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="scale" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="ApproximateNumericDataType" eSuperTypes="#//datatypes/NumericalDataType">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.4 Numbers"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="IntegerDataType" eSuperTypes="#//datatypes/ExactNumericDataType">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.4 Numbers"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="XMLDataType" eSuperTypes="#//datatypes/PredefinedDataType">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.1 Data Types"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="ElementType" eSuperTypes="#//schema/TypedElement">

+      <eStructuralFeatures xsi:type="ecore:EReference" name="CollectionDataType" eType="#//datatypes/CollectionDataType"

+          transient="true" eOpposite="#//datatypes/CollectionDataType/elementType"/>

+    </eClassifiers>

+  </eSubpackages>

+  <eSubpackages name="expressions" nsURI="http:///org/eclipse/datatools/modelbase/sql/expressions.ecore"

+      nsPrefix="SQLExpressions">

+    <eClassifiers xsi:type="ecore:EClass" name="QueryExpression" abstract="true" interface="true">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 7 Query Expression&#xD;&#xA;"/>

+      </eAnnotations>

+      <eOperations name="getSQL" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+      <eOperations name="setSQL">

+        <eParameters name="sqlText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+      </eOperations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="ValueExpression" abstract="true" interface="true">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.14.5 Base columns and generated columns&#xD;&#xA;"/>

+      </eAnnotations>

+      <eOperations name="getSQL" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+      <eOperations name="setSQL">

+        <eParameters name="sqlText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+      </eOperations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="SearchCondition" abstract="true" interface="true">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12"/>

+      </eAnnotations>

+      <eOperations name="getSQL" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+      <eOperations name="setSQL">

+        <eParameters name="sqlText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+      </eOperations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="QueryExpressionDefault" eSuperTypes="#//schema/SQLObject #//expressions/QueryExpression">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Place holder for the default query expression."/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="SQL" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="SearchConditionDefault" eSuperTypes="#//schema/SQLObject #//expressions/SearchCondition">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Place holder for the default search condition."/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="SQL" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="ValueExpressionDefault" eSuperTypes="#//schema/SQLObject #//expressions/ValueExpression">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Place holder for the default value expression."/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="SQL" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+    </eClassifiers>

+  </eSubpackages>

+  <eSubpackages name="routines" nsURI="http:///org/eclipse/datatools/modelbase/sql/routines.ecore"

+      nsPrefix="SQLRoutines">

+    <eClassifiers xsi:type="ecore:EClass" name="Routine" abstract="true" eSuperTypes="#//schema/SQLObject">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.27 SQL-invoked routines&#xD;&#xA;"/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="specificName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">

+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+          <details key="documentation" value="From 5WD-02-Foundation-2002-12&#xD;&#xA;4.27 SQL-invoked routines&#xD;&#xA;&#xD;&#xA;An SQL-invoked routine is uniquely identified by a &lt;specific name> , called the specific name of the SQLinvoked&#xD;&#xA;routine.&#xD;&#xA;&#xD;&#xA;Typically qualified with a schema name. &#xD;&#xA;"/>

+        </eAnnotations>

+      </eStructuralFeatures>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="language" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">

+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+          <details key="documentation" value="Since there are many languages, rather than constrain ourselves to an enumerated list which is difficult to subclass in the EMF environment, we have chosen to use strings.&#xD;&#xA;&#xD;&#xA;JAVA&#xD;&#xA;SQL&#xD;&#xA;PERL&#xD;&#xA;C&#xD;&#xA;ADA&#xD;&#xA;COBOL&#xD;&#xA;FORTRAN&#xD;&#xA;MUMPS&#xD;&#xA;PASCAL&#xD;&#xA;PLI&#xD;&#xA;and so on..."/>

+        </eAnnotations>

+      </eStructuralFeatures>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="parameterStyle" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">

+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+          <details key="documentation" value="Paraphrased from 5WD-02-Foundation-2002-12 &#xD;&#xA;The spec only calls for two. Though it seems like an easy choice for enumeration as in the language attribute, other vendors have different styles and since enumeration is not good to subclass within the EMF tooling framework, a string representation is used.&#xD;&#xA;&#xD;&#xA;11.50 &lt;SQL-invoked routine>&#xD;&#xA;SQL &#xD;&#xA;GENERAL.&#xD;&#xA;&#xD;&#xA;Used in stored procedures, user defined functions, and methods.&#xD;&#xA;&#xD;&#xA;"/>

+        </eAnnotations>

+      </eStructuralFeatures>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="deterministic" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">

+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+          <details key="documentation" value="From 5WD-02-Foundation-2002-12&#xD;&#xA;4.27 SQL-invoked routines&#xD;&#xA;&#xD;&#xA;An SQL-invoked routine is either deterministic or possibly non-deterministic. An SQL-invoked function that&#xD;&#xA;is deterministic always returns the identical return value for a given list of SQL argument values. An SQLinvoked&#xD;&#xA;procedure that is deterministic always returns the identical values in its output and inout SQL parameters&#xD;&#xA;for a given list of SQL argument values. An SQL-invoked routine is possibly non-deterministic if it might&#xD;&#xA;produce nonidentical results when invoked with the identical list of SQL argument values."/>

+        </eAnnotations>

+      </eStructuralFeatures>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="sqlDataAccess" eType="#//routines/DataAccess">

+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+          <details key="documentation" value="5WD-02-Foundation-2002-12&#xD;&#xA;11.50 &lt;SQL-invoked routine>&#xD;&#xA;&#xD;&#xA;&lt;SQL-data access indication> ::= NO SQL | CONTAINS SQL | READS SQL DATA | MODIFIES SQL DATA&#xD;&#xA;&#xD;&#xA;(see DataAccess enumeration class)"/>

+        </eAnnotations>

+      </eStructuralFeatures>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationTS" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">

+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+          <details key="documentation" value="From 5WD-02-Foundation-2002-12&#xD;&#xA;4.27 SQL-invoked routines&#xD;&#xA;&#xD;&#xA;An SQL-invoked routine is described by a routine descriptor. A routine descriptor includes:&#xD;&#xA;- The creation timestamp.&#xD;&#xA;&#xD;&#xA;Because there is no provision in the spec as to the format of the timestamp, it is left to the individual implementers to determine the format."/>

+        </eAnnotations>

+      </eStructuralFeatures>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="lastAlteredTS" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">

+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+          <details key="documentation" value="From 5WD-02-Foundation-2002-12&#xD;&#xA;4.27 SQL-invoked routines&#xD;&#xA;&#xD;&#xA;An SQL-invoked routine is described by a routine descriptor. A routine descriptor includes:&#xD;&#xA;- The last-altered timestamp.&#xD;&#xA;&#xD;&#xA;Because there is no provision in the spec as to the format of the timestamp, it is left to the individual implementers to determine the format."/>

+        </eAnnotations>

+      </eStructuralFeatures>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="authorizationID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">

+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+          <details key="documentation" value="From 5WD-02-Foundation-2002-12&#xD;&#xA;4.27 SQL-invoked routines&#xD;&#xA;&#xD;&#xA;An SQL-invoked routine has a routine authorization identifier, which is (directly or indirectly) the authorization&#xD;&#xA;identifier of the owner of the schema that contains the SQL-invoked routine at the time that the SQL-invoked&#xD;&#xA;routine is created."/>

+        </eAnnotations>

+      </eStructuralFeatures>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="security" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">

+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+          <details key="documentation" value="From the below, typical values would be: &quot;DEFINER&quot;, &quot;INVOKER&quot;, &quot;IMPLEMENTATION DEFINED&quot;&#xD;&#xA;Since there are several implementation defined security designations, it is best to go with the string.&#xD;&#xA;&#xD;&#xA;From 5WD-02-Foundation-2002-12&#xD;&#xA;11.50 &lt;SQL-invoked routine>&#xD;&#xA;&#xD;&#xA;&lt;external security clause> ::=&#xD;&#xA;  EXTERNAL SECURITY DEFINER&#xD;&#xA;  | EXTERNAL SECURITY INVOKER&#xD;&#xA;  | EXTERNAL SECURITY IMPLEMENTATION DEFINED&#xD;&#xA;&#xD;&#xA;4.27 SQL-invoked routines&#xD;&#xA;If the SQL-invoked routine is an SQL routine, then the identifiers are determined according to the SQL security&#xD;&#xA;characteristic of the SQL-invoked routine:&#xD;&#xA;- If the SQL security characteristic is DEFINER , then:&#xD;&#xA;  * If the routine authorization identifier is a user identifier, the user identifier is set to the routine authorization&#xD;&#xA;    identifier and the role name is set to null.&#xD;&#xA;  * Otherwise, the role name is set to the routine authorization identifier and the user identifier is set to&#xD;&#xA;    null.&#xD;&#xA;- If the SQL security characteristic is INVOKER , then the identifiers remain unchanged.      &#xD;&#xA;If the SQL-invoked routine is an external routine, then the identifiers are determined according to the external&#xD;&#xA;security characteristic of the SQL-invoked routine:&#xD;&#xA;- If the external security characteristic is DEFINER , then:&#xD;&#xA;  * If the routine authorization identifier is a user identifier, then the user identifier is set to the routine&#xD;&#xA;    authorization identifier and the role name is set to the null value.&#xD;&#xA;  * Otherwise, the role name is set to the routine authorization identifier and the user identifier is set to the&#xD;&#xA;    null value.&#xD;&#xA;- If the external security characteristic is INVOKER , then the identifiers remain unchanged.&#xD;&#xA;- If the external security characteristic is IMPLEMENTATION DEFINED , then the identifiers are set to&#xD;&#xA;implementation-defined values."/>

+        </eAnnotations>

+      </eStructuralFeatures>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="externalName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">

+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+          <details key="documentation" value="From 5WD-02-Foundation-2002-12&#xD;&#xA;from 11.50 SQL-invoked routine:&#xD;&#xA;&#xD;&#xA;The external name of the routine descriptor is &lt;external routine name> .&#xD;&#xA;&lt;external body reference> ::= EXTERNAL [ NAME &lt;external routine name> ] [ &lt;parameter&#xD;&#xA;style clause> ] [ &lt;transform group specification> ] [ &lt;external security clause> ]&#xD;&#xA;&#xD;&#xA;from 4.27 SQL-invoked routines&#xD;&#xA;&lt;external routine name> identifies a program written in some&#xD;&#xA;standard programming language other than SQL .&#xD;&#xA;&#xD;&#xA;from 5.4 Names and identifiers&#xD;&#xA;&lt;external routine name> ::= &lt;identifier> | &lt;character string literal>&#xD;&#xA;An &lt;external routine name> identifies an external routine."/>

+        </eAnnotations>

+      </eStructuralFeatures>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="parameters" upperBound="-1"

+          eType="#//routines/Parameter" containment="true" eOpposite="#//routines/Parameter/routine"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="source" eType="#//routines/Source"

+          containment="true"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="schema" lowerBound="1"

+          eType="#//schema/Schema" eOpposite="#//schema/Schema/routines"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="Source" eSuperTypes="#//schema/SQLObject">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.27 SQL-invoked routines"/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="Parameter" eSuperTypes="#//schema/TypedElement">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.27 SQL-invoked routines, 5WD-02-Foundation-2002-12 11.50 &lt;SQL-invoked routine>,  Reference: 5WD-02-Foundation-2002-12 4.29.4 Locators  &#xD;&#xA;Reference: Information technology - Database languages - SQL - Part 14: XML-Related Specifications (SQL/XML) 12.7 &lt;SQL-invoked routine>"/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="mode" eType="#//routines/ParameterMode">

+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+          <details key="documentation" value="5WD-02-Foundation-2002-12&#xD;&#xA;&#xD;&#xA;&lt;SQL parameter declaration> ::= [ &lt;parameter mode> ] [ &lt;SQL parameter name> ] &lt;parameter type> [ RESULT ]&#xD;&#xA;&#xD;&#xA;&lt;parameter mode> ::= IN | OUT | INOUT&#xD;&#xA;&#xD;&#xA;For functions, defaults to IN.&#xD;&#xA;See enumerated class ParameterMode"/>

+        </eAnnotations>

+      </eStructuralFeatures>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="locator" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">

+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+          <details key="documentation" value="5WD-02-Foundation-2002-12&#xD;&#xA;4.29.4 Locators&#xD;&#xA;A host parameter, a host variable, an SQL parameter of an external routine, or the value returned by an external&#xD;&#xA;function may be specified to be a locator by specifying AS LOCATOR . A locator is an SQL-session object,&#xD;&#xA;rather than SQL-data, that can be used to reference an SQL-data instance. A locator is either a large object&#xD;&#xA;locator, a user-defined type locator, an array locator, or a multiset locator. &#xD;&#xA;&#xD;&#xA;A large object locator is one of the following:&#xD;&#xA;- Binary large object locator, a value of which identifies a binary large object.&#xD;&#xA;- Character large object locator, a value of which identifies a large object character string.&#xD;&#xA;- National character large object locator, a value of which identifies a national large object character string.&#xD;&#xA;&#xD;&#xA;A user-defined type locator identifies a value of the user-defined type specified by the locator specification.&#xD;&#xA;An array locator identifies a value of the array type specified by the locator specification. A multiset locator&#xD;&#xA;identifies a value of the multiset type specified by the locator specification."/>

+        </eAnnotations>

+      </eStructuralFeatures>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="routine" lowerBound="1"

+          eType="#//routines/Routine" transient="true" eOpposite="#//routines/Routine/parameters"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="stringTypeOption" eType="#//datatypes/CharacterStringDataType"

+          containment="true"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="Procedure" eSuperTypes="#//routines/Routine">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.27 SQL-invoked routines, 5WD-02-Foundation-2002-12 11.50 &lt;SQL-invoked routine>&#xD;&#xA;"/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="maxResultSets" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">

+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+          <details key="documentation" value="Maximun number of result sets the procedure can return.  If the stored procedure returns more result sets than is specified by this value, then a database error will be generated.&#xD;&#xA;&#xD;&#xA;From 5WD-02-Foundation-2002-12&#xD;&#xA;11.50 &lt;SQL-invoked routine>&#xD;&#xA;&lt;dynamic result sets characteristic> ::= DYNAMIC RESULT SETS &lt;maximum dynamic result sets>"/>

+        </eAnnotations>

+      </eStructuralFeatures>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="oldSavePoint" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">

+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+          <details key="documentation" value="From 5WD-02-Foundation-2002-12&#xD;&#xA;4.27 SQL-invoked routines&#xD;&#xA;An SQL-invoked procedure may optionally be specified to require a new savepoint level to be established when it is invoked and destroyed on return from the executed routine body. The alternative of not taking a savepoint can also be directly specified with OLD SAVEPOINT LEVEL . When an SQL-invoked function is invoked a new savepoint level is always established.&#xD;&#xA;&#xD;&#xA;11.50 &lt;SQL-invoked routine>&#xD;&#xA;&lt;savepoint level indication> ::= NEW SAVEPOINT LEVEL | OLD SAVEPOINT LEVEL"/>

+        </eAnnotations>

+      </eStructuralFeatures>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="resultSet" upperBound="-1"

+          eType="#//routines/RoutineResultTable" containment="true"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="Function" eSuperTypes="#//routines/Routine">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.27 SQL-invoked routines"/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="nullCall" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">

+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+          <details key="documentation" value="From 5WD-02-Foundation-2002-12&#xD;&#xA;11.50 &lt;SQL-invoked routine>&#xD;&#xA;&lt;null-call clause> ::= RETURNS NULL ON NULL INPUT | CALLED ON NULL INPUT&#xD;&#xA;&#xD;&#xA;If PROCEDURE is specified, then:&#xD;&#xA;- &lt;null-call clause> shall not be specified.&#xD;&#xA;&#xD;&#xA;if &lt;null-call clause> is not specified, then &#xD;&#xA;- CALLED ON NULL INPUT is implicit.&#xD;&#xA;&#xD;&#xA;If the SQL-invoked routine is an SQL-invoked function, then:&#xD;&#xA;- The SQL-invoked routine descriptor includes an indication of whether the SQL-invoked routine&#xD;&#xA;is a null-call function.&#xD;&#xA;&#xD;&#xA;4.27 SQL-invoked routines&#xD;&#xA;A null-call function is an SQL-invoked function that is defined to return the null value if any of its input arguments is the null value. A null-call function is an SQL-invoked function whose &lt;null-call clause> specifies&#xD;&#xA;&quot;RETURNS NULL ON NULL INPUT&quot;."/>

+        </eAnnotations>

+      </eStructuralFeatures>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="static" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">

+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+          <details key="documentation" value="From 5WD-02-Foundation-2002-12&#xD;&#xA;11.50 &lt;SQL-invoked routine>&#xD;&#xA;&#xD;&#xA;&lt;dispatch clause> ::= STATIC DISPATCH&#xD;&#xA;&#xD;&#xA;If R is an SQL-invoked regular function and the &lt;SQL parameter declaration list> contains an&#xD;&#xA;&lt;SQL parameter declaration> that specifies a &lt;data type> that is one of:&#xD;&#xA;1) A user-defined type.&#xD;&#xA;2) A collection type whose element type is a user-defined type.&#xD;&#xA;3) A collection type whose element type is a reference type.&#xD;&#xA;4) A reference type.&#xD;&#xA;then &lt;dispatch clause> shall be specified. Otherwise, &lt;dispatch clause> shall not be specified."/>

+        </eAnnotations>

+      </eStructuralFeatures>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="transformGroup" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">

+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+          <details key="documentation" value="From 5WD-02-Foundation-2002-12&#xD;&#xA;4.7.5 Transforms for user-defined types&#xD;&#xA;&#xD;&#xA;Transforms are SQL-invoked functions that are automatically invoked when values of user-defined types are&#xD;&#xA;transferred from SQL-environment to host languages or vice-versa.&#xD;&#xA;&#xD;&#xA;A transform is associated with a user-defined type. A transform identifies a list of transform groups of up to&#xD;&#xA;two SQL-invoked functions, called the transform functions, each identified by a group name. The group name&#xD;&#xA;of a transform group is an &lt;identifier> such that no two transform groups for a transform have the same group&#xD;&#xA;name. The two transform functions are:&#xD;&#xA;- from-sql function : This SQL-invoked function maps the user-defined type value into a value of an SQL&#xD;&#xA;  pre-defined type, and gets invoked whenever a user-defined type value is passed to a host language &#xD;&#xA;  program or an external routine.&#xD;&#xA;- to-sql function : This SQL-invoked function maps a value of an SQL predefined type to a value of a&#xD;&#xA;  user-defined type and gets invoked whenever a user-defined type value is supplied by a host language&#xD;&#xA;  program or an external routine."/>

+        </eAnnotations>

+      </eStructuralFeatures>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="typePreserving" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="mutator" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="returnTable" eType="#//routines/RoutineResultTable"

+          containment="true"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="returnScalar" eType="#//routines/Parameter"

+          containment="true"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="returnCast" eType="#//routines/Parameter"

+          containment="true"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EEnum" name="DataAccess">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.27 SQL-invoked routines"/>

+      </eAnnotations>

+      <eLiterals name="NO_SQL"/>

+      <eLiterals name="CONTAINS_SQL" value="1"/>

+      <eLiterals name="READS_SQL_DATA" value="2"/>

+      <eLiterals name="MODIFIES_SQL_DATA" value="3"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EEnum" name="ParameterMode">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 11.50 &lt;SQL-invoked routine>"/>

+      </eAnnotations>

+      <eLiterals name="IN"/>

+      <eLiterals name="OUT" value="1"/>

+      <eLiterals name="INOUT" value="2"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="RoutineResultTable" eSuperTypes="#//tables/Table">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.27 SQL-invoked routines"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="Method" eSuperTypes="#//routines/Function">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.27 SQL-invoked routines &#xD;&#xA;"/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="overriding" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="constructor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="UserDefinedFunction" eSuperTypes="#//routines/Function">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.27 SQL-invoked routines"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="BuiltInFunction" eSuperTypes="#//routines/Function">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.27 SQL-invoked routines"/>

+      </eAnnotations>

+    </eClassifiers>

+  </eSubpackages>

+  <eSubpackages name="statements" nsURI="http:///org/eclipse/datatools/modelbase/sql/statements.ecore"

+      nsPrefix="SQLStatements">

+    <eClassifiers xsi:type="ecore:EClass" name="SQLStatement" abstract="true" interface="true">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.33 SQL-statements"/>

+      </eAnnotations>

+      <eOperations name="getSQL" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+      <eOperations name="setSQL">

+        <eParameters name="sqlText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+      </eOperations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="SQLDataStatement" abstract="true"

+        interface="true" eSuperTypes="#//statements/SQLStatement">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 14 Data Manipulation"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="SQLSchemaStatement" abstract="true"

+        interface="true" eSuperTypes="#//statements/SQLStatement">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 11 Schema definition and manipulation"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="SQLControlStatement" abstract="true"

+        interface="true" eSuperTypes="#//statements/SQLStatement">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 15 Control statements"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="SQLDataChangeStatement" abstract="true"

+        interface="true" eSuperTypes="#//statements/SQLDataStatement">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 14 Data Manipulation"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="SQLStatementDefault" eSuperTypes="#//schema/SQLObject #//statements/SQLStatement">

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="SQL" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="SQLConnectionStatement" abstract="true"

+        interface="true" eSuperTypes="#//statements/SQLStatement">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 17 Connection management"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="SQLDiagnosticsStatement" abstract="true"

+        interface="true" eSuperTypes="#//statements/SQLStatement">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 22 Diagnostics management "/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="SQLDynamicStatement" abstract="true"

+        interface="true" eSuperTypes="#//statements/SQLStatement">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 19 Dynamic SQL"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="SQLSessionStatement" abstract="true"

+        interface="true" eSuperTypes="#//statements/SQLStatement">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 18 Session management"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="SQLTransactionStatement" abstract="true"

+        interface="true" eSuperTypes="#//statements/SQLStatement">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 16 Transaction management"/>

+      </eAnnotations>

+    </eClassifiers>

+  </eSubpackages>

+  <eSubpackages name="tables" nsURI="http:///org/eclipse/datatools/modelbase/sql/tables.ecore"

+      nsPrefix="SQLTables">

+    <eClassifiers xsi:type="ecore:EClass" name="ViewTable" eSuperTypes="#//tables/DerivedTable">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.14 Tables&#xD;&#xA;"/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="checkType" eType="#//tables/CheckType"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="TemporaryTable" eSuperTypes="#//tables/BaseTable">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.14 Tables&#xD;&#xA;"/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="local" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="deleteOnCommit" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="Table" abstract="true" eSuperTypes="#//schema/SQLObject">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.14 Tables"/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="columns" lowerBound="1"

+          upperBound="-1" eType="#//tables/Column" containment="true" eOpposite="#//tables/Column/table"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="supertable" eType="#//tables/Table"

+          eOpposite="#//tables/Table/subtables"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="subtables" upperBound="-1"

+          eType="#//tables/Table" eOpposite="#//tables/Table/supertable"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="schema" lowerBound="1"

+          eType="#//schema/Schema" eOpposite="#//schema/Schema/tables"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="udt" eType="#//datatypes/StructuredUserDefinedType"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="triggers" upperBound="-1"

+          eType="#//tables/Trigger" eOpposite="#//tables/Trigger/subjectTable"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="index" upperBound="-1"

+          eType="#//constraints/Index" eOpposite="#//constraints/Index/table"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="selfRefColumnGeneration"

+          eType="#//tables/ReferenceType"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="insertable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"

+          changeable="false" volatile="true" transient="true" derived="true"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="updatable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"

+          changeable="false" volatile="true" transient="true" derived="true"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="PersistentTable" eSuperTypes="#//tables/BaseTable">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.14 Tables&#xD;&#xA;"/>

+      </eAnnotations>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="DerivedTable" abstract="true" eSuperTypes="#//tables/Table">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.14 Tables&#xD;&#xA;"/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="queryExpression" eType="#//expressions/QueryExpression"

+          containment="true" resolveProxies="false"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="BaseTable" abstract="true" eSuperTypes="#//tables/Table">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.14 Tables&#xD;&#xA;"/>

+      </eAnnotations>

+      <eOperations name="getUniqueConstraints" eType="#//schema/List"/>

+      <eOperations name="getForeignKeys" eType="#//schema/List"/>

+      <eOperations name="getPrimaryKey" eType="#//constraints/PrimaryKey"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="constraints" upperBound="-1"

+          eType="#//constraints/TableConstraint" containment="true" eOpposite="#//constraints/TableConstraint/BaseTable"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="referencingForeignKeys"

+          upperBound="-1" eType="#//constraints/ForeignKey" eOpposite="#//constraints/ForeignKey/referencedTable"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EEnum" name="CheckType">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.14 Tables&#xD;&#xA;"/>

+      </eAnnotations>

+      <eLiterals name="CASCADED"/>

+      <eLiterals name="LOCAL" value="1"/>

+      <eLiterals name="NONE" value="2"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EEnum" name="ReferenceType">

+      <eLiterals name="SYSTEM_GENERATED"/>

+      <eLiterals name="USER_GENERATED" value="1"/>

+      <eLiterals name="DERIVED_SELF_REF" value="2"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="Column" eSuperTypes="#//schema/TypedElement">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.13 Columns, fields, and attributes&#xD;&#xA;"/>

+      </eAnnotations>

+      <eOperations name="isPartOfForeignKey" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>

+      <eOperations name="isPartOfUniqueConstraint" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>

+      <eOperations name="isPartOfPrimaryKey" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="table" lowerBound="1"

+          eType="#//tables/Table" transient="true" eOpposite="#//tables/Table/columns"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="identitySpecifier" eType="#//schema/IdentitySpecifier"

+          containment="true"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="generateExpression" eType="#//expressions/ValueExpression"

+          containment="true"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="implementationDependent"

+          eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"

+          defaultValueLiteral="False"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="nullable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"

+          defaultValueLiteral="True"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="scopeCheck" eType="#//schema/ReferentialActionType"

+          defaultValueLiteral="NO_ACTION"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="scopeChecked" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="Trigger" eSuperTypes="#//schema/SQLObject">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.38 Triggers"/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="schema" lowerBound="1"

+          eType="#//schema/Schema" eOpposite="#//schema/Schema/triggers"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="subjectTable" lowerBound="1"

+          eType="#//tables/Table" eOpposite="#//tables/Table/triggers"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="actionStatement" lowerBound="1"

+          upperBound="-1" eType="#//statements/SQLStatement" containment="true"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="triggerColumn" upperBound="-1"

+          eType="#//tables/Column"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="actionGranularity" eType="#//tables/ActionGranularityType"

+          defaultValueLiteral="STATEMENT"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="when" eType="#//expressions/SearchCondition"

+          containment="true" resolveProxies="false"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="timeStamp" eType="#//schema/Date"

+          changeable="false">

+        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+          <details key="documentation" value="Triggers on the same table with the same action time are executed in order of creation, i.e. the time stamp, such that older triggers have priority."/>

+        </eAnnotations>

+      </eStructuralFeatures>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="actionTime" eType="#//tables/ActionTimeType"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="updateType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="insertType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="deleteType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="oldRow" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="newRow" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="oldTable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="newTable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EEnum" name="ActionTimeType">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.38 Triggers"/>

+      </eAnnotations>

+      <eLiterals name="AFTER"/>

+      <eLiterals name="BEFORE" value="1"/>

+      <eLiterals name="INSTEADOF" value="2"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EEnum" name="ActionGranularityType">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.38 Triggers"/>

+      </eAnnotations>

+      <eLiterals name="STATEMENT"/>

+      <eLiterals name="ROW" value="1"/>

+    </eClassifiers>

+  </eSubpackages>

+  <eSubpackages name="accesscontrol" nsURI="http:///org/eclipse/datatools/modelbase/sql/accesscontrol.ecore"

+      nsPrefix="SQLAccessControl">

+    <eClassifiers xsi:type="ecore:EClass" name="AuthorizationIdentifier" abstract="true"

+        eSuperTypes="#//schema/SQLObject">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.34.1 Authorization Identifiers"/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="ownedSchema" upperBound="-1"

+          eType="#//schema/Schema" eOpposite="#//schema/Schema/owner"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="Database" lowerBound="1"

+          eType="#//schema/Database" eOpposite="#//schema/Database/authorizationIds"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="receivedRoleAuthorization"

+          upperBound="-1" eType="#//accesscontrol/RoleAuthorization" eOpposite="#//accesscontrol/RoleAuthorization/grantee"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="grantedRoleAuthorization"

+          upperBound="-1" eType="#//accesscontrol/RoleAuthorization" eOpposite="#//accesscontrol/RoleAuthorization/grantor"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="grantedPrivilege" upperBound="-1"

+          eType="#//accesscontrol/Privilege" eOpposite="#//accesscontrol/Privilege/grantor"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="receivedPrivilege" upperBound="-1"

+          eType="#//accesscontrol/Privilege" containment="true" eOpposite="#//accesscontrol/Privilege/grantee"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="Privilege" eSuperTypes="#//schema/SQLObject">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.34.2 Privileges"/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="grantable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="action" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="withHierarchy" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="grantor" lowerBound="1"

+          eType="#//accesscontrol/AuthorizationIdentifier" eOpposite="#//accesscontrol/AuthorizationIdentifier/grantedPrivilege"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="grantee" eType="#//accesscontrol/AuthorizationIdentifier"

+          transient="true" eOpposite="#//accesscontrol/AuthorizationIdentifier/receivedPrivilege"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="actionObjects" upperBound="-1"

+          eType="#//schema/SQLObject"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="object" lowerBound="1"

+          eType="#//schema/SQLObject" eOpposite="#//schema/SQLObject/privileges"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="Group" eSuperTypes="#//accesscontrol/AuthorizationIdentifier">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.34.1 Authorization Identifiers"/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="user" upperBound="-1"

+          eType="#//accesscontrol/User" eOpposite="#//accesscontrol/User/group"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="User" eSuperTypes="#//accesscontrol/AuthorizationIdentifier">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.34.1 Authorization Identifiers"/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="group" upperBound="-1"

+          eType="#//accesscontrol/Group" eOpposite="#//accesscontrol/Group/user"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="Role" eSuperTypes="#//accesscontrol/AuthorizationIdentifier">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.34.3 Roles"/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="roleAuthorization" lowerBound="1"

+          upperBound="-1" eType="#//accesscontrol/RoleAuthorization" eOpposite="#//accesscontrol/RoleAuthorization/role"/>

+    </eClassifiers>

+    <eClassifiers xsi:type="ecore:EClass" name="RoleAuthorization" eSuperTypes="#//schema/SQLObject">

+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

+        <details key="documentation" value="Reference: 5WD-02-Foundation-2002-12 4.34.3 Roles"/>

+      </eAnnotations>

+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="grantable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="role" lowerBound="1"

+          eType="#//accesscontrol/Role" eOpposite="#//accesscontrol/Role/roleAuthorization"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="grantee" lowerBound="1"

+          eType="#//accesscontrol/AuthorizationIdentifier" eOpposite="#//accesscontrol/AuthorizationIdentifier/receivedRoleAuthorization"/>

+      <eStructuralFeatures xsi:type="ecore:EReference" name="grantor" lowerBound="1"

+          eType="#//accesscontrol/AuthorizationIdentifier" eOpposite="#//accesscontrol/AuthorizationIdentifier/grantedRoleAuthorization"/>

+    </eClassifiers>

+  </eSubpackages>

+</ecore:EPackage>

diff --git a/plugins/org.eclipse.datatools.modelbase.sql/model/sqlmodel.genmodel b/plugins/org.eclipse.datatools.modelbase.sql/model/sqlmodel.genmodel
new file mode 100644
index 0000000..76ba819
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/model/sqlmodel.genmodel
@@ -0,0 +1,619 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<genmodel:GenModel xmi:version="2.0"

+    xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"

+    xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.datatools.modelbase.sql/src"

+    editDirectory="/org.eclipse.datatools.modelbase.sql.edit/src" editorDirectory="/org.eclipse.datatools.modelbase.sql.editor/src"

+    modelPluginID="org.eclipse.datatools.modelbase.sql" runtimeJar="true" modelName="Sqlmodel"

+    editPluginClass="org.eclipse.datatools.modelbase.sql.schema.provider.SqlmodelEditPlugin"

+    editorPluginClass="org.eclipse.datatools.modelbase.sql.schema.presentation.SqlmodelEditorPlugin"

+    nonNLSMarkers="true" rootImplementsInterface="" featureMapWrapperInterface=""

+    featureMapWrapperInternalInterface="" featureMapWrapperClass="" importerID="org.eclipse.emf.importer.rose"

+    usedGenPackages="../../org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore">

+  <foreignModel>SQLModel.mdl</foreignModel>

+  <foreignModel>CDM_EXTRACT_PATH</foreignModel>

+  <foreignModel>../..</foreignModel>

+  <genPackages prefix="SQLModel" ecorePackage="sqlmodel.ecore#/">

+    <nestedGenPackages prefix="SQLSchema" basePackage="org.eclipse.datatools.modelbase.sql"

+        ecorePackage="sqlmodel.ecore#//schema">

+      <genEnums ecoreEnum="sqlmodel.ecore#//schema/GenerateType">

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//schema/GenerateType/DEFAULT_GENERATED"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//schema/GenerateType/ALWAYS_GENERATED"/>

+      </genEnums>

+      <genEnums ecoreEnum="sqlmodel.ecore#//schema/ReferentialActionType">

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//schema/ReferentialActionType/NO_ACTION"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//schema/ReferentialActionType/RESTRICT"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//schema/ReferentialActionType/CASCADE"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//schema/ReferentialActionType/SET_NULL"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//schema/ReferentialActionType/SET_DEFAULT"/>

+      </genEnums>

+      <genDataTypes ecoreDataType="sqlmodel.ecore#//schema/Date"/>

+      <genDataTypes ecoreDataType="sqlmodel.ecore#//schema/List"/>

+      <genClasses ecoreClass="sqlmodel.ecore#//schema/IdentitySpecifier">

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//schema/IdentitySpecifier/generationType"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//schema/IdentitySpecifier/startValue"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//schema/IdentitySpecifier/increment"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//schema/IdentitySpecifier/minimum"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//schema/IdentitySpecifier/maximum"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//schema/IdentitySpecifier/cycleOption"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//schema/TypedElement">

+        <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sqlmodel.ecore#//schema/TypedElement/containedType"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//schema/TypedElement/referencedType"/>

+        <genOperations ecoreOperation="sqlmodel.ecore#//schema/TypedElement/setDataType">

+          <genParameters ecoreParameter="sqlmodel.ecore#//schema/TypedElement/setDataType/newType"/>

+        </genOperations>

+        <genOperations ecoreOperation="sqlmodel.ecore#//schema/TypedElement/getDataType"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//schema/Dependency">

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//schema/Dependency/targetEnd"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//schema/Dependency/dependencyType"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//schema/Schema">

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//schema/Schema/triggers"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//schema/Schema/indices"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//schema/Schema/tables"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//schema/Schema/sequences"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//schema/Schema/database"/>

+        <genFeatures notify="false" createChild="false" propertySortChoices="true"

+            ecoreFeature="ecore:EReference sqlmodel.ecore#//schema/Schema/Catalog"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//schema/Schema/assertions"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//schema/Schema/userDefinedTypes"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//schema/Schema/charSets"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//schema/Schema/routines"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//schema/Schema/owner"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//schema/SQLObject">

+        <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sqlmodel.ecore#//schema/SQLObject/dependencies"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//schema/SQLObject/description"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//schema/SQLObject/label"/>

+        <genFeatures notify="false" createChild="false" propertySortChoices="true"

+            ecoreFeature="ecore:EReference sqlmodel.ecore#//schema/SQLObject/comments"/>

+        <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sqlmodel.ecore#//schema/SQLObject/extensions"/>

+        <genFeatures notify="false" createChild="false" propertySortChoices="true"

+            ecoreFeature="ecore:EReference sqlmodel.ecore#//schema/SQLObject/privileges"/>

+        <genOperations ecoreOperation="sqlmodel.ecore#//schema/SQLObject/addEAnnotation">

+          <genParameters ecoreParameter="sqlmodel.ecore#//schema/SQLObject/addEAnnotation/source"/>

+        </genOperations>

+        <genOperations ecoreOperation="sqlmodel.ecore#//schema/SQLObject/addEAnnotationDetail">

+          <genParameters ecoreParameter="sqlmodel.ecore#//schema/SQLObject/addEAnnotationDetail/eAnnotation"/>

+          <genParameters ecoreParameter="sqlmodel.ecore#//schema/SQLObject/addEAnnotationDetail/key"/>

+          <genParameters ecoreParameter="sqlmodel.ecore#//schema/SQLObject/addEAnnotationDetail/value"/>

+        </genOperations>

+        <genOperations ecoreOperation="sqlmodel.ecore#//schema/SQLObject/getEAnnotationDetail">

+          <genParameters ecoreParameter="sqlmodel.ecore#//schema/SQLObject/getEAnnotationDetail/eAnnotation"/>

+          <genParameters ecoreParameter="sqlmodel.ecore#//schema/SQLObject/getEAnnotationDetail/key"/>

+        </genOperations>

+        <genOperations ecoreOperation="sqlmodel.ecore#//schema/SQLObject/setAnnotationDetail">

+          <genParameters ecoreParameter="sqlmodel.ecore#//schema/SQLObject/setAnnotationDetail/eAnnotation"/>

+          <genParameters ecoreParameter="sqlmodel.ecore#//schema/SQLObject/setAnnotationDetail/key"/>

+          <genParameters ecoreParameter="sqlmodel.ecore#//schema/SQLObject/setAnnotationDetail/value"/>

+        </genOperations>

+        <genOperations ecoreOperation="sqlmodel.ecore#//schema/SQLObject/removeEAnnotationDetail">

+          <genParameters ecoreParameter="sqlmodel.ecore#//schema/SQLObject/removeEAnnotationDetail/eAnnotation"/>

+          <genParameters ecoreParameter="sqlmodel.ecore#//schema/SQLObject/removeEAnnotationDetail/key"/>

+        </genOperations>

+        <genOperations ecoreOperation="sqlmodel.ecore#//schema/SQLObject/getEAnnotation">

+          <genParameters ecoreParameter="sqlmodel.ecore#//schema/SQLObject/getEAnnotation/source"/>

+        </genOperations>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//schema/Sequence">

+        <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sqlmodel.ecore#//schema/Sequence/identity"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//schema/Sequence/schema"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//schema/Database">

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//schema/Database/vendor"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//schema/Database/version"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//schema/Database/schemas"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//schema/Database/events"/>

+        <genFeatures notify="false" createChild="false" propertySortChoices="true"

+            ecoreFeature="ecore:EReference sqlmodel.ecore#//schema/Database/catalogs"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//schema/Database/authorizationIds"/>

+        <genOperations ecoreOperation="sqlmodel.ecore#//schema/Database/getUserDefinedTypes"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//schema/Event">

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//schema/Event/for"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//schema/Event/condition"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//schema/Event/action"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//schema/Event/enabled"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//schema/Event/Database"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//schema/Comment">

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//schema/Comment/description"/>

+        <genFeatures notify="false" createChild="false" propertySortChoices="true"

+            ecoreFeature="ecore:EReference sqlmodel.ecore#//schema/Comment/SQLObject"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//schema/Catalog">

+        <genFeatures notify="false" createChild="false" propertySortChoices="true"

+            ecoreFeature="ecore:EReference sqlmodel.ecore#//schema/Catalog/Database"/>

+        <genFeatures notify="false" createChild="false" propertySortChoices="true"

+            ecoreFeature="ecore:EReference sqlmodel.ecore#//schema/Catalog/schemas"/>

+      </genClasses>

+      <genClasses image="false" ecoreClass="sqlmodel.ecore#//schema/ObjectExtension">

+        <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//schema/ObjectExtension/SQLObject"/>

+      </genClasses>

+    </nestedGenPackages>

+    <nestedGenPackages prefix="SQLConstraints" basePackage="org.eclipse.datatools.modelbase.sql"

+        ecorePackage="sqlmodel.ecore#//constraints">

+      <genEnums ecoreEnum="sqlmodel.ecore#//constraints/MatchType">

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//constraints/MatchType/MATCH_SIMPLE"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//constraints/MatchType/MATCH_FULL"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//constraints/MatchType/MATCH_PARTIAL"/>

+      </genEnums>

+      <genEnums ecoreEnum="sqlmodel.ecore#//constraints/IncrementType">

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//constraints/IncrementType/ASC"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//constraints/IncrementType/DESC"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//constraints/IncrementType/RANDOM"/>

+      </genEnums>

+      <genClasses ecoreClass="sqlmodel.ecore#//constraints/Assertion">

+        <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sqlmodel.ecore#//constraints/Assertion/searchCondition"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//constraints/Assertion/schema"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//constraints/Assertion/constrainedTables"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//constraints/Constraint">

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//constraints/Constraint/deferrable"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//constraints/Constraint/initiallyDeferred"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//constraints/Constraint/enforced"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//constraints/TableConstraint">

+        <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//constraints/TableConstraint/BaseTable"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//constraints/ReferenceConstraint">

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//constraints/ReferenceConstraint/members"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//constraints/CheckConstraint">

+        <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sqlmodel.ecore#//constraints/CheckConstraint/searchCondition"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//constraints/ForeignKey">

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//constraints/ForeignKey/match"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//constraints/ForeignKey/onUpdate"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//constraints/ForeignKey/onDelete"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//constraints/ForeignKey/uniqueConstraint"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//constraints/ForeignKey/referencedMembers"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//constraints/ForeignKey/uniqueIndex"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//constraints/ForeignKey/referencedTable"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//constraints/UniqueConstraint">

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//constraints/UniqueConstraint/clustered"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//constraints/UniqueConstraint/ForeignKey"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//constraints/PrimaryKey"/>

+      <genClasses ecoreClass="sqlmodel.ecore#//constraints/Index">

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//constraints/Index/Schema"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//constraints/Index/clustered"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//constraints/Index/fillFactor"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//constraints/Index/unique"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//constraints/Index/systemGenerated"/>

+        <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sqlmodel.ecore#//constraints/Index/members"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//constraints/Index/table"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//constraints/Index/ForeignKey"/>

+        <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sqlmodel.ecore#//constraints/Index/includedMembers"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//constraints/IndexMember">

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//constraints/IndexMember/incrementType"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//constraints/IndexMember/column"/>

+        <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sqlmodel.ecore#//constraints/IndexMember/expression"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//constraints/IndexExpression">

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//constraints/IndexExpression/sql"/>

+      </genClasses>

+    </nestedGenPackages>

+    <nestedGenPackages prefix="SQLDataTypes" basePackage="org.eclipse.datatools.modelbase.sql"

+        disposableProviderFactory="true" ecorePackage="sqlmodel.ecore#//datatypes">

+      <genEnums ecoreEnum="sqlmodel.ecore#//datatypes/CoercibilityType">

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/CoercibilityType/IMPLICIT"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/CoercibilityType/EXPLICIT"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/CoercibilityType/COERCIBILE"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/CoercibilityType/NO_COLLATION"/>

+      </genEnums>

+      <genEnums ecoreEnum="sqlmodel.ecore#//datatypes/IntervalQualifierType">

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/IntervalQualifierType/YEAR"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/IntervalQualifierType/MONTH"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/IntervalQualifierType/DAY"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/IntervalQualifierType/HOUR"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/IntervalQualifierType/MINUTE"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/IntervalQualifierType/SECOND"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/IntervalQualifierType/FRACTION"/>

+      </genEnums>

+      <genEnums ecoreEnum="sqlmodel.ecore#//datatypes/OrderingType">

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/OrderingType/EQUALS"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/OrderingType/FULL"/>

+      </genEnums>

+      <genEnums ecoreEnum="sqlmodel.ecore#//datatypes/OrderingCategoryType">

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/OrderingCategoryType/RELATIVE"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/OrderingCategoryType/MAP"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/OrderingCategoryType/STATE"/>

+      </genEnums>

+      <genEnums ecoreEnum="sqlmodel.ecore#//datatypes/PrimitiveType">

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/PrimitiveType/CHARACTER"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/PrimitiveType/CHARACTER_VARYING"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/PrimitiveType/CHARACTER_LARGE_OBJECT"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/PrimitiveType/NATIONAL_CHARACTER"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/PrimitiveType/NATIONAL_CHARACTER_VARYING"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/PrimitiveType/NATIONAL_CHARACTER_LARGE_OBJECT"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/PrimitiveType/BINARY"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/PrimitiveType/BINARY_VARYING"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/PrimitiveType/BINARY_LARGE_OBJECT"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/PrimitiveType/NUMERIC"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/PrimitiveType/DECIMAL"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/PrimitiveType/SMALLINT"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/PrimitiveType/INTEGER"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/PrimitiveType/BIGINT"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/PrimitiveType/FLOAT"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/PrimitiveType/REAL"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/PrimitiveType/DOUBLE_PRECISION"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/PrimitiveType/BOOLEAN"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/PrimitiveType/DATE"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/PrimitiveType/TIME"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/PrimitiveType/TIMESTAMP"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/PrimitiveType/INTERVAL"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/PrimitiveType/DATALINK"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/PrimitiveType/XML_TYPE"/>

+      </genEnums>

+      <genEnums ecoreEnum="sqlmodel.ecore#//datatypes/LinkControlOption">

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/LinkControlOption/FILE_LINK_CONTROL"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/LinkControlOption/NO_FILE_LINK_CONTROL"/>

+      </genEnums>

+      <genEnums ecoreEnum="sqlmodel.ecore#//datatypes/IntegrityControlOption">

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/IntegrityControlOption/ALL"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/IntegrityControlOption/SELECTIVE"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/IntegrityControlOption/NONE"/>

+      </genEnums>

+      <genEnums ecoreEnum="sqlmodel.ecore#//datatypes/ReadPermissionOption">

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/ReadPermissionOption/FS"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/ReadPermissionOption/DB"/>

+      </genEnums>

+      <genEnums ecoreEnum="sqlmodel.ecore#//datatypes/WritePermissionOption">

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/WritePermissionOption/FS"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/WritePermissionOption/ADMIN"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/WritePermissionOption/BLOCKED"/>

+      </genEnums>

+      <genEnums ecoreEnum="sqlmodel.ecore#//datatypes/UnlinkOption">

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/UnlinkOption/RESTORE"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/UnlinkOption/DELETE"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//datatypes/UnlinkOption/NONE"/>

+      </genEnums>

+      <genClasses image="false" ecoreClass="sqlmodel.ecore#//datatypes/UserDefinedType">

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//datatypes/UserDefinedType/schema"/>

+        <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sqlmodel.ecore#//datatypes/UserDefinedType/ordering"/>

+      </genClasses>

+      <genClasses image="false" ecoreClass="sqlmodel.ecore#//datatypes/DataType">

+        <genOperations ecoreOperation="sqlmodel.ecore#//datatypes/DataType/setContainer">

+          <genParameters ecoreParameter="sqlmodel.ecore#//datatypes/DataType/setContainer/newContainer"/>

+        </genOperations>

+      </genClasses>

+      <genClasses image="false" ecoreClass="sqlmodel.ecore#//datatypes/PredefinedDataType">

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//datatypes/PredefinedDataType/primitiveType"/>

+      </genClasses>

+      <genClasses image="false" ecoreClass="sqlmodel.ecore#//datatypes/CollectionDataType">

+        <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sqlmodel.ecore#//datatypes/CollectionDataType/elementType"/>

+      </genClasses>

+      <genClasses image="false" ecoreClass="sqlmodel.ecore#//datatypes/NumericalDataType">

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//datatypes/NumericalDataType/precision"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//datatypes/CharacterStringDataType">

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//datatypes/CharacterStringDataType/length"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//datatypes/CharacterStringDataType/coercibility"/>

+        <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//datatypes/CharacterStringDataType/fixedLength"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//datatypes/CharacterStringDataType/collationName"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//datatypes/CharacterStringDataType/characterSet"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//datatypes/RowDataType">

+        <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sqlmodel.ecore#//datatypes/RowDataType/fields"/>

+      </genClasses>

+      <genClasses image="false" ecoreClass="sqlmodel.ecore#//datatypes/ArrayDataType">

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//datatypes/ArrayDataType/maxCardinality"/>

+      </genClasses>

+      <genClasses image="false" ecoreClass="sqlmodel.ecore#//datatypes/MultisetDataType"/>

+      <genClasses ecoreClass="sqlmodel.ecore#//datatypes/BooleanDataType"/>

+      <genClasses ecoreClass="sqlmodel.ecore#//datatypes/IntervalDataType">

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//datatypes/IntervalDataType/leadingQualifier"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//datatypes/IntervalDataType/trailingQualifier"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//datatypes/IntervalDataType/leadingFieldPrecision"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//datatypes/IntervalDataType/trailingFieldPrecision"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//datatypes/IntervalDataType/fractionalSecondsPrecision"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//datatypes/BinaryStringDataType">

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//datatypes/BinaryStringDataType/length"/>

+        <genOperations ecoreOperation="sqlmodel.ecore#//datatypes/BinaryStringDataType/equals"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//datatypes/CharacterSet">

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//datatypes/CharacterSet/repertoire"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//datatypes/CharacterSet/defaultCollation"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//datatypes/CharacterSet/encoding"/>

+        <genFeatures notify="false" createChild="false" propertySortChoices="true"

+            ecoreFeature="ecore:EReference sqlmodel.ecore#//datatypes/CharacterSet/CharacterStringDataType"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//datatypes/CharacterSet/schema"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//datatypes/TimeDataType">

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//datatypes/TimeDataType/fractionalSecondsPrecision"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//datatypes/TimeDataType/timeZone"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//datatypes/DistinctUserDefinedType">

+        <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sqlmodel.ecore#//datatypes/DistinctUserDefinedType/predefinedRepresentation"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//datatypes/StructuredUserDefinedType">

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//datatypes/StructuredUserDefinedType/instantiable"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//datatypes/StructuredUserDefinedType/final"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//datatypes/StructuredUserDefinedType/super"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//datatypes/StructuredUserDefinedType/sub"/>

+        <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sqlmodel.ecore#//datatypes/StructuredUserDefinedType/attributes"/>

+        <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sqlmodel.ecore#//datatypes/StructuredUserDefinedType/methods"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//datatypes/AttributeDefinition">

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//datatypes/AttributeDefinition/scopeCheck"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//datatypes/AttributeDefinition/scopeChecked"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//datatypes/AttributeDefinition/defaultValue"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//datatypes/FixedPrecisionDataType"/>

+      <genClasses ecoreClass="sqlmodel.ecore#//datatypes/Domain">

+        <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sqlmodel.ecore#//datatypes/Domain/constraint"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//datatypes/Domain/defaultValue"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//datatypes/Field">

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//datatypes/Field/scopeCheck"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//datatypes/Field/scopeChecked"/>

+      </genClasses>

+      <genClasses image="false" ecoreClass="sqlmodel.ecore#//datatypes/ReferenceDataType">

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//datatypes/ReferenceDataType/scopeTable"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//datatypes/ReferenceDataType/referencedType"/>

+      </genClasses>

+      <genClasses image="false" ecoreClass="sqlmodel.ecore#//datatypes/ConstructedDataType"/>

+      <genClasses image="false" ecoreClass="sqlmodel.ecore#//datatypes/SQLDataType"/>

+      <genClasses ecoreClass="sqlmodel.ecore#//datatypes/DataLinkDataType">

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//datatypes/DataLinkDataType/length"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//datatypes/DataLinkDataType/linkControl"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//datatypes/DataLinkDataType/integrityControl"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//datatypes/DataLinkDataType/readPermission"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//datatypes/DataLinkDataType/writePermission"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//datatypes/DataLinkDataType/recovery"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//datatypes/DataLinkDataType/unlink"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//datatypes/UserDefinedTypeOrdering">

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//datatypes/UserDefinedTypeOrdering/orderingForm"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//datatypes/UserDefinedTypeOrdering/orderingCategory"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//datatypes/UserDefinedTypeOrdering/orderingRoutine"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//datatypes/DateDataType"/>

+      <genClasses image="false" ecoreClass="sqlmodel.ecore#//datatypes/ExactNumericDataType">

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//datatypes/ExactNumericDataType/scale"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//datatypes/ApproximateNumericDataType"/>

+      <genClasses ecoreClass="sqlmodel.ecore#//datatypes/IntegerDataType"/>

+      <genClasses ecoreClass="sqlmodel.ecore#//datatypes/XMLDataType"/>

+      <genClasses ecoreClass="sqlmodel.ecore#//datatypes/ElementType">

+        <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//datatypes/ElementType/CollectionDataType"/>

+      </genClasses>

+    </nestedGenPackages>

+    <nestedGenPackages prefix="SQLExpressions" basePackage="org.eclipse.datatools.modelbase.sql"

+        disposableProviderFactory="true" ecorePackage="sqlmodel.ecore#//expressions">

+      <genClasses image="false" ecoreClass="sqlmodel.ecore#//expressions/QueryExpression">

+        <genOperations ecoreOperation="sqlmodel.ecore#//expressions/QueryExpression/getSQL"/>

+        <genOperations ecoreOperation="sqlmodel.ecore#//expressions/QueryExpression/setSQL">

+          <genParameters ecoreParameter="sqlmodel.ecore#//expressions/QueryExpression/setSQL/sqlText"/>

+        </genOperations>

+      </genClasses>

+      <genClasses image="false" ecoreClass="sqlmodel.ecore#//expressions/ValueExpression">

+        <genOperations ecoreOperation="sqlmodel.ecore#//expressions/ValueExpression/getSQL"/>

+        <genOperations ecoreOperation="sqlmodel.ecore#//expressions/ValueExpression/setSQL">

+          <genParameters ecoreParameter="sqlmodel.ecore#//expressions/ValueExpression/setSQL/sqlText"/>

+        </genOperations>

+      </genClasses>

+      <genClasses image="false" ecoreClass="sqlmodel.ecore#//expressions/SearchCondition">

+        <genOperations ecoreOperation="sqlmodel.ecore#//expressions/SearchCondition/getSQL"/>

+        <genOperations ecoreOperation="sqlmodel.ecore#//expressions/SearchCondition/setSQL">

+          <genParameters ecoreParameter="sqlmodel.ecore#//expressions/SearchCondition/setSQL/sqlText"/>

+        </genOperations>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//expressions/QueryExpressionDefault">

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//expressions/QueryExpressionDefault/SQL"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//expressions/SearchConditionDefault">

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//expressions/SearchConditionDefault/SQL"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//expressions/ValueExpressionDefault">

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//expressions/ValueExpressionDefault/SQL"/>

+      </genClasses>

+    </nestedGenPackages>

+    <nestedGenPackages prefix="SQLRoutines" basePackage="org.eclipse.datatools.modelbase.sql"

+        ecorePackage="sqlmodel.ecore#//routines">

+      <genEnums ecoreEnum="sqlmodel.ecore#//routines/DataAccess">

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//routines/DataAccess/NO_SQL"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//routines/DataAccess/CONTAINS_SQL"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//routines/DataAccess/READS_SQL_DATA"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//routines/DataAccess/MODIFIES_SQL_DATA"/>

+      </genEnums>

+      <genEnums ecoreEnum="sqlmodel.ecore#//routines/ParameterMode">

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//routines/ParameterMode/IN"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//routines/ParameterMode/OUT"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//routines/ParameterMode/INOUT"/>

+      </genEnums>

+      <genClasses ecoreClass="sqlmodel.ecore#//routines/Routine">

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//routines/Routine/specificName"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//routines/Routine/language"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//routines/Routine/parameterStyle"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//routines/Routine/deterministic"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//routines/Routine/sqlDataAccess"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//routines/Routine/creationTS"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//routines/Routine/lastAlteredTS"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//routines/Routine/authorizationID"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//routines/Routine/security"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//routines/Routine/externalName"/>

+        <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sqlmodel.ecore#//routines/Routine/parameters"/>

+        <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sqlmodel.ecore#//routines/Routine/source"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//routines/Routine/schema"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//routines/Source">

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//routines/Source/body"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//routines/Parameter">

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//routines/Parameter/mode"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//routines/Parameter/locator"/>

+        <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//routines/Parameter/routine"/>

+        <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sqlmodel.ecore#//routines/Parameter/stringTypeOption"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//routines/Procedure">

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//routines/Procedure/maxResultSets"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//routines/Procedure/oldSavePoint"/>

+        <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sqlmodel.ecore#//routines/Procedure/resultSet"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//routines/Function">

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//routines/Function/nullCall"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//routines/Function/static"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//routines/Function/transformGroup"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//routines/Function/typePreserving"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//routines/Function/mutator"/>

+        <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sqlmodel.ecore#//routines/Function/returnTable"/>

+        <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sqlmodel.ecore#//routines/Function/returnScalar"/>

+        <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sqlmodel.ecore#//routines/Function/returnCast"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//routines/RoutineResultTable"/>

+      <genClasses ecoreClass="sqlmodel.ecore#//routines/Method">

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//routines/Method/overriding"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//routines/Method/constructor"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//routines/UserDefinedFunction"/>

+      <genClasses ecoreClass="sqlmodel.ecore#//routines/BuiltInFunction"/>

+    </nestedGenPackages>

+    <nestedGenPackages prefix="SQLStatements" basePackage="org.eclipse.datatools.modelbase.sql"

+        ecorePackage="sqlmodel.ecore#//statements">

+      <genClasses ecoreClass="sqlmodel.ecore#//statements/SQLStatement">

+        <genOperations ecoreOperation="sqlmodel.ecore#//statements/SQLStatement/getSQL"/>

+        <genOperations ecoreOperation="sqlmodel.ecore#//statements/SQLStatement/setSQL">

+          <genParameters ecoreParameter="sqlmodel.ecore#//statements/SQLStatement/setSQL/sqlText"/>

+        </genOperations>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//statements/SQLDataStatement"/>

+      <genClasses ecoreClass="sqlmodel.ecore#//statements/SQLSchemaStatement"/>

+      <genClasses ecoreClass="sqlmodel.ecore#//statements/SQLControlStatement"/>

+      <genClasses ecoreClass="sqlmodel.ecore#//statements/SQLDataChangeStatement"/>

+      <genClasses ecoreClass="sqlmodel.ecore#//statements/SQLStatementDefault">

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//statements/SQLStatementDefault/SQL"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//statements/SQLConnectionStatement"/>

+      <genClasses ecoreClass="sqlmodel.ecore#//statements/SQLDiagnosticsStatement"/>

+      <genClasses ecoreClass="sqlmodel.ecore#//statements/SQLDynamicStatement"/>

+      <genClasses ecoreClass="sqlmodel.ecore#//statements/SQLSessionStatement"/>

+      <genClasses ecoreClass="sqlmodel.ecore#//statements/SQLTransactionStatement"/>

+    </nestedGenPackages>

+    <nestedGenPackages prefix="SQLTables" basePackage="org.eclipse.datatools.modelbase.sql"

+        ecorePackage="sqlmodel.ecore#//tables">

+      <genEnums ecoreEnum="sqlmodel.ecore#//tables/CheckType">

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//tables/CheckType/CASCADED"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//tables/CheckType/LOCAL"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//tables/CheckType/NONE"/>

+      </genEnums>

+      <genEnums ecoreEnum="sqlmodel.ecore#//tables/ReferenceType">

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//tables/ReferenceType/SYSTEM_GENERATED"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//tables/ReferenceType/USER_GENERATED"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//tables/ReferenceType/DERIVED_SELF_REF"/>

+      </genEnums>

+      <genEnums ecoreEnum="sqlmodel.ecore#//tables/ActionTimeType">

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//tables/ActionTimeType/AFTER"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//tables/ActionTimeType/BEFORE"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//tables/ActionTimeType/INSTEADOF"/>

+      </genEnums>

+      <genEnums ecoreEnum="sqlmodel.ecore#//tables/ActionGranularityType">

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//tables/ActionGranularityType/STATEMENT"/>

+        <genEnumLiterals ecoreEnumLiteral="sqlmodel.ecore#//tables/ActionGranularityType/ROW"/>

+      </genEnums>

+      <genClasses ecoreClass="sqlmodel.ecore#//tables/ViewTable">

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//tables/ViewTable/checkType"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//tables/TemporaryTable">

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//tables/TemporaryTable/local"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//tables/TemporaryTable/deleteOnCommit"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//tables/Table">

+        <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sqlmodel.ecore#//tables/Table/columns"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//tables/Table/supertable"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//tables/Table/subtables"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//tables/Table/schema"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//tables/Table/udt"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//tables/Table/triggers"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//tables/Table/index"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//tables/Table/selfRefColumnGeneration"/>

+        <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//tables/Table/insertable"/>

+        <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//tables/Table/updatable"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//tables/PersistentTable"/>

+      <genClasses ecoreClass="sqlmodel.ecore#//tables/DerivedTable">

+        <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sqlmodel.ecore#//tables/DerivedTable/queryExpression"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//tables/BaseTable">

+        <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sqlmodel.ecore#//tables/BaseTable/constraints"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//tables/BaseTable/referencingForeignKeys"/>

+        <genOperations ecoreOperation="sqlmodel.ecore#//tables/BaseTable/getUniqueConstraints"/>

+        <genOperations ecoreOperation="sqlmodel.ecore#//tables/BaseTable/getForeignKeys"/>

+        <genOperations ecoreOperation="sqlmodel.ecore#//tables/BaseTable/getPrimaryKey"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//tables/Column">

+        <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//tables/Column/table"/>

+        <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sqlmodel.ecore#//tables/Column/identitySpecifier"/>

+        <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sqlmodel.ecore#//tables/Column/generateExpression"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//tables/Column/implementationDependent"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//tables/Column/nullable"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//tables/Column/defaultValue"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//tables/Column/scopeCheck"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//tables/Column/scopeChecked"/>

+        <genOperations ecoreOperation="sqlmodel.ecore#//tables/Column/isPartOfForeignKey"/>

+        <genOperations ecoreOperation="sqlmodel.ecore#//tables/Column/isPartOfUniqueConstraint"/>

+        <genOperations ecoreOperation="sqlmodel.ecore#//tables/Column/isPartOfPrimaryKey"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//tables/Trigger">

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//tables/Trigger/schema"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//tables/Trigger/subjectTable"/>

+        <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sqlmodel.ecore#//tables/Trigger/actionStatement"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//tables/Trigger/triggerColumn"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//tables/Trigger/actionGranularity"/>

+        <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sqlmodel.ecore#//tables/Trigger/when"/>

+        <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//tables/Trigger/timeStamp"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//tables/Trigger/actionTime"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//tables/Trigger/updateType"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//tables/Trigger/insertType"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//tables/Trigger/deleteType"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//tables/Trigger/oldRow"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//tables/Trigger/newRow"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//tables/Trigger/oldTable"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//tables/Trigger/newTable"/>

+      </genClasses>

+    </nestedGenPackages>

+    <nestedGenPackages prefix="SQLAccessControl" basePackage="org.eclipse.datatools.modelbase.sql"

+        ecorePackage="sqlmodel.ecore#//accesscontrol">

+      <genClasses ecoreClass="sqlmodel.ecore#//accesscontrol/AuthorizationIdentifier">

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//accesscontrol/AuthorizationIdentifier/ownedSchema"/>

+        <genFeatures notify="false" createChild="false" propertySortChoices="true"

+            ecoreFeature="ecore:EReference sqlmodel.ecore#//accesscontrol/AuthorizationIdentifier/Database"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//accesscontrol/AuthorizationIdentifier/receivedRoleAuthorization"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//accesscontrol/AuthorizationIdentifier/grantedRoleAuthorization"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//accesscontrol/AuthorizationIdentifier/grantedPrivilege"/>

+        <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sqlmodel.ecore#//accesscontrol/AuthorizationIdentifier/receivedPrivilege"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//accesscontrol/Privilege">

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//accesscontrol/Privilege/grantable"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//accesscontrol/Privilege/action"/>

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//accesscontrol/Privilege/withHierarchy"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//accesscontrol/Privilege/grantor"/>

+        <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//accesscontrol/Privilege/grantee"/>

+        <genFeatures notify="false" createChild="false" propertySortChoices="true"

+            ecoreFeature="ecore:EReference sqlmodel.ecore#//accesscontrol/Privilege/actionObjects"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//accesscontrol/Privilege/object"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//accesscontrol/Group">

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//accesscontrol/Group/user"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//accesscontrol/User">

+        <genFeatures notify="false" createChild="false" propertySortChoices="true"

+            ecoreFeature="ecore:EReference sqlmodel.ecore#//accesscontrol/User/group"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//accesscontrol/Role">

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//accesscontrol/Role/roleAuthorization"/>

+      </genClasses>

+      <genClasses ecoreClass="sqlmodel.ecore#//accesscontrol/RoleAuthorization">

+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sqlmodel.ecore#//accesscontrol/RoleAuthorization/grantable"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//accesscontrol/RoleAuthorization/role"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//accesscontrol/RoleAuthorization/grantee"/>

+        <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference sqlmodel.ecore#//accesscontrol/RoleAuthorization/grantor"/>

+      </genClasses>

+    </nestedGenPackages>

+  </genPackages>

+</genmodel:GenModel>

diff --git a/plugins/org.eclipse.datatools.modelbase.sql/plugin.properties b/plugins/org.eclipse.datatools.modelbase.sql/plugin.properties
new file mode 100644
index 0000000..28643a8
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/plugin.properties
@@ -0,0 +1,33 @@
+###############################################################################
+# Copyright (c) 2001, 2004 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+# 
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+
+#
+# <copyright>
+# </copyright>
+#
+# %W%
+# @version %I% %H%
+#
+
+# ====================================================================
+# To code developer:
+#   Do NOT change the properties between this line and the
+#   "%%% END OF TRANSLATED PROPERTIES %%%" line.
+#   Make a new property name, append to the end of the file and change
+#   the code to use the new property.
+# ====================================================================
+
+# ====================================================================
+# %%% END OF TRANSLATED PROPERTIES %%%
+# ====================================================================
+
+pluginName = Eclipse Data Tools Platform SQLModel Plug-in
+providerName = Eclipse Data Tools Platform
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/plugin.xml b/plugins/org.eclipse.datatools.modelbase.sql/plugin.xml
new file mode 100644
index 0000000..fe65702
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/plugin.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+<plugin>
+   <extension-point id="sqlObjectNameHelper" name="SQL Object Name Helper" schema="schema/sqlObjectNameHelper.exsd"/>
+   
+   <extension
+         point="org.eclipse.emf.ecore.generated_package">
+      <package
+            uri="http:///org/eclipse/datatools/modelbase/sql/schema.ecore"
+            class="org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage"
+            genModel="model/sqlmodel.genmodel">
+      </package>
+   </extension>
+   <extension
+         point="org.eclipse.emf.ecore.generated_package">
+      <package
+            uri="http:///org/eclipse/datatools/modelbase/sql/tables.ecore"
+            class="org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage"
+            genModel="model/sqlmodel.genmodel">
+      </package>
+   </extension>
+   <extension
+         point="org.eclipse.emf.ecore.generated_package">
+      <package
+            uri="http:///org/eclipse/datatools/modelbase/sql/constraints.ecore"
+            class="org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage"
+            genModel="model/sqlmodel.genmodel">
+      </package>
+   </extension>
+   <extension
+         point="org.eclipse.emf.ecore.generated_package">
+      <package
+            uri="http:///org/eclipse/datatools/modelbase/sql/datatypes.ecore"
+            class="org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage"
+            genModel="model/sqlmodel.genmodel">
+      </package>
+   </extension>
+   <extension
+         point="org.eclipse.emf.ecore.generated_package">
+      <package
+            uri="http:///org/eclipse/datatools/modelbase/sql/expressions.ecore"
+            class="org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsPackage"
+            genModel="model/sqlmodel.genmodel">
+      </package>
+   </extension>
+   <extension
+         point="org.eclipse.emf.ecore.generated_package">
+      <package
+            uri="http:///org/eclipse/datatools/modelbase/sql/statements.ecore"
+            class="org.eclipse.datatools.modelbase.sql.statements.SQLStatementsPackage"
+            genModel="model/sqlmodel.genmodel">
+      </package>
+   </extension>
+   <extension
+         point="org.eclipse.emf.ecore.generated_package">
+      <package
+            uri="http:///org/eclipse/datatools/modelbase/sql/accesscontrol.ecore"
+            class="org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage"
+            genModel="model/sqlmodel.genmodel">
+      </package>
+   </extension>
+   <extension
+         point="org.eclipse.emf.ecore.generated_package">
+      <package
+            uri="http:///org/eclipse/datatools/modelbase/sql/routines.ecore"
+            class="org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage"
+            genModel="model/sqlmodel.genmodel">
+      </package>
+   </extension>
+
+</plugin>
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/schema/sqlObjectNameHelper.exsd b/plugins/org.eclipse.datatools.modelbase.sql/schema/sqlObjectNameHelper.exsd
new file mode 100644
index 0000000..df68e09
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/schema/sqlObjectNameHelper.exsd
@@ -0,0 +1,116 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.datatools.modelbase.sql" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+      <appinfo>
+         <meta.schema plugin="org.eclipse.datatools.modelbase.sql" id="sqlObjectNameHelper" name="SQL Object Name Helper"/>
+      </appinfo>
+      <documentation>
+         This extension point provides a database type-specific SQL object naming service. The naming service is used to obtain the name of a SQL Model object such as a table for use in specific contexts such as constructing a SQL statement.
+      </documentation>
+   </annotation>
+
+   <element name="extension">
+      <annotation>
+         <appinfo>
+            <meta.element />
+         </appinfo>
+      </annotation>
+      <complexType>
+         <sequence>
+            <element ref="nameHelper" minOccurs="1" maxOccurs="unbounded"/>
+         </sequence>
+         <attribute name="point" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="nameHelper">
+      <annotation>
+         <appinfo>
+            <meta.element labelAttribute="databaseType"/>
+         </appinfo>
+         <documentation>
+            Allows an extender to register a class that can provide names for database objects in a database type-specific manner.
+         </documentation>
+      </annotation>
+      <complexType>
+         <attribute name="databaseType" type="string" use="required">
+            <annotation>
+               <documentation>
+                  Indicates the database type (vendor) handled by the helper.  The value given should be the value returned by the &quot;getVendor()&quot; method of the
+ org.eclipse.datatools.modelbase.sql.schema.Database class when connected to the desired database type.
+If the value from the getVendor call matches the value in the extension, then externsion will be used.
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="class" type="string" use="required">
+            <annotation>
+               <documentation>
+                  The name of the class which implements the ISQLObjectNameHelper interface.
+               </documentation>
+               <appinfo>
+                  <meta.attribute kind="java" basedOn=":org.eclipse.datatools.modelbase.sql.schema.helper.ISQLObjectNameHelper"/>
+               </appinfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="apiInfo"/>
+      </appinfo>
+      <documentation>
+         [Enter API information here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="since"/>
+      </appinfo>
+      <documentation>
+         [Enter the first release in which this extension point appears.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="examples"/>
+      </appinfo>
+      <documentation>
+         [Enter extension point usage example here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="implementation"/>
+      </appinfo>
+      <documentation>
+         [Enter information about supplied implementation of this extension point.]
+      </documentation>
+   </annotation>
+
+
+</schema>
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/AuthorizationIdentifier.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/AuthorizationIdentifier.java
new file mode 100644
index 0000000..3febf62
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/AuthorizationIdentifier.java
@@ -0,0 +1,161 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.accesscontrol;
+
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Authorization Identifier</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.34.1 Authorization Identifiers
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier#getOwnedSchema <em>Owned Schema</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier#getDatabase <em>Database</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier#getReceivedRoleAuthorization <em>Received Role Authorization</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier#getGrantedRoleAuthorization <em>Granted Role Authorization</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier#getGrantedPrivilege <em>Granted Privilege</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier#getReceivedPrivilege <em>Received Privilege</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage#getAuthorizationIdentifier()
+ * @model abstract="true"
+ * @generated
+ */
+public interface AuthorizationIdentifier extends SQLObject {
+	/**
+	 * Returns the value of the '<em><b>Owned Schema</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.schema.Schema}.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.schema.Schema#getOwner <em>Owner</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Owned Schema</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Owned Schema</em>' reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage#getAuthorizationIdentifier_OwnedSchema()
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Schema#getOwner
+	 * @model type="org.eclipse.datatools.modelbase.sql.schema.Schema" opposite="owner"
+	 * @generated
+	 */
+	EList getOwnedSchema();
+
+	/**
+	 * Returns the value of the '<em><b>Database</b></em>' reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.schema.Database#getAuthorizationIds <em>Authorization Ids</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Database</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Database</em>' reference.
+	 * @see #setDatabase(Database)
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage#getAuthorizationIdentifier_Database()
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Database#getAuthorizationIds
+	 * @model opposite="authorizationIds" required="true"
+	 * @generated
+	 */
+	Database getDatabase();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier#getDatabase <em>Database</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Database</em>' reference.
+	 * @see #getDatabase()
+	 * @generated
+	 */
+	void setDatabase(Database value);
+
+	/**
+	 * Returns the value of the '<em><b>Received Role Authorization</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.accesscontrol.RoleAuthorization}.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.RoleAuthorization#getGrantee <em>Grantee</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Received Role Authorization</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Received Role Authorization</em>' reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage#getAuthorizationIdentifier_ReceivedRoleAuthorization()
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.RoleAuthorization#getGrantee
+	 * @model type="org.eclipse.datatools.modelbase.sql.accesscontrol.RoleAuthorization" opposite="grantee"
+	 * @generated
+	 */
+	EList getReceivedRoleAuthorization();
+
+	/**
+	 * Returns the value of the '<em><b>Granted Role Authorization</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.accesscontrol.RoleAuthorization}.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.RoleAuthorization#getGrantor <em>Grantor</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Granted Role Authorization</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Granted Role Authorization</em>' reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage#getAuthorizationIdentifier_GrantedRoleAuthorization()
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.RoleAuthorization#getGrantor
+	 * @model type="org.eclipse.datatools.modelbase.sql.accesscontrol.RoleAuthorization" opposite="grantor"
+	 * @generated
+	 */
+	EList getGrantedRoleAuthorization();
+
+	/**
+	 * Returns the value of the '<em><b>Granted Privilege</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege}.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege#getGrantor <em>Grantor</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Granted Privilege</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Granted Privilege</em>' reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage#getAuthorizationIdentifier_GrantedPrivilege()
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege#getGrantor
+	 * @model type="org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege" opposite="grantor"
+	 * @generated
+	 */
+	EList getGrantedPrivilege();
+
+	/**
+	 * Returns the value of the '<em><b>Received Privilege</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege}.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege#getGrantee <em>Grantee</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Received Privilege</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Received Privilege</em>' containment reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage#getAuthorizationIdentifier_ReceivedPrivilege()
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege#getGrantee
+	 * @model type="org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege" opposite="grantee" containment="true"
+	 * @generated
+	 */
+	EList getReceivedPrivilege();
+
+} // AuthorizationIdentifier
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/DoubleObjectPrivilege.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/DoubleObjectPrivilege.java
new file mode 100644
index 0000000..bfce599
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/DoubleObjectPrivilege.java
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.accesscontrol;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Double Object Privilege</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.34.2 Privileges
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.accesscontrol.DoubleObjectPrivilege#getObject2 <em>Object2</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage#getDoubleObjectPrivilege()
+ * @model
+ * @generated
+ */
+public interface DoubleObjectPrivilege extends Privilege {
+	/**
+	 * Returns the value of the '<em><b>Object2</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Object2</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Object2</em>' reference.
+	 * @see #setObject2(SQLObject)
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage#getDoubleObjectPrivilege_Object2()
+	 * @model required="true"
+	 * @generated
+	 */
+	SQLObject getObject2();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.DoubleObjectPrivilege#getObject2 <em>Object2</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Object2</em>' reference.
+	 * @see #getObject2()
+	 * @generated
+	 */
+	void setObject2(SQLObject value);
+
+} // DoubleObjectPrivilege
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/Group.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/Group.java
new file mode 100644
index 0000000..1e64799
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/Group.java
@@ -0,0 +1,54 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.accesscontrol;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Group</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.34.1 Authorization Identifiers
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.accesscontrol.Group#getUser <em>User</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage#getGroup()
+ * @model
+ * @generated
+ */
+public interface Group extends AuthorizationIdentifier {
+	/**
+	 * Returns the value of the '<em><b>User</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.accesscontrol.User}.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.User#getGroup <em>Group</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>User</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>User</em>' reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage#getGroup_User()
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.User#getGroup
+	 * @model type="org.eclipse.datatools.modelbase.sql.accesscontrol.User" opposite="group"
+	 * @generated
+	 */
+	EList getUser();
+
+} // Group
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/Privilege.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/Privilege.java
new file mode 100644
index 0000000..0894fde
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/Privilege.java
@@ -0,0 +1,222 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.accesscontrol;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Privilege</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.34.2 Privileges
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege#isGrantable <em>Grantable</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege#getAction <em>Action</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege#isWithHierarchy <em>With Hierarchy</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege#getGrantor <em>Grantor</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege#getGrantee <em>Grantee</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege#getActionObjects <em>Action Objects</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege#getObject <em>Object</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage#getPrivilege()
+ * @model
+ * @generated
+ */
+public interface Privilege extends SQLObject {
+	/**
+	 * Returns the value of the '<em><b>Grantable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Grantable</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Grantable</em>' attribute.
+	 * @see #setGrantable(boolean)
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage#getPrivilege_Grantable()
+	 * @model
+	 * @generated
+	 */
+	boolean isGrantable();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege#isGrantable <em>Grantable</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Grantable</em>' attribute.
+	 * @see #isGrantable()
+	 * @generated
+	 */
+	void setGrantable(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Action</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Action</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Action</em>' attribute.
+	 * @see #setAction(String)
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage#getPrivilege_Action()
+	 * @model
+	 * @generated
+	 */
+	String getAction();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege#getAction <em>Action</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Action</em>' attribute.
+	 * @see #getAction()
+	 * @generated
+	 */
+	void setAction(String value);
+
+	/**
+	 * Returns the value of the '<em><b>With Hierarchy</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>With Hierarchy</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>With Hierarchy</em>' attribute.
+	 * @see #setWithHierarchy(boolean)
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage#getPrivilege_WithHierarchy()
+	 * @model
+	 * @generated
+	 */
+	boolean isWithHierarchy();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege#isWithHierarchy <em>With Hierarchy</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>With Hierarchy</em>' attribute.
+	 * @see #isWithHierarchy()
+	 * @generated
+	 */
+	void setWithHierarchy(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Grantor</b></em>' reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier#getGrantedPrivilege <em>Granted Privilege</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Grantor</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Grantor</em>' reference.
+	 * @see #setGrantor(AuthorizationIdentifier)
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage#getPrivilege_Grantor()
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier#getGrantedPrivilege
+	 * @model opposite="grantedPrivilege" required="true"
+	 * @generated
+	 */
+	AuthorizationIdentifier getGrantor();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege#getGrantor <em>Grantor</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Grantor</em>' reference.
+	 * @see #getGrantor()
+	 * @generated
+	 */
+	void setGrantor(AuthorizationIdentifier value);
+
+	/**
+	 * Returns the value of the '<em><b>Grantee</b></em>' container reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier#getReceivedPrivilege <em>Received Privilege</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Grantee</em>' container reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Grantee</em>' container reference.
+	 * @see #setGrantee(AuthorizationIdentifier)
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage#getPrivilege_Grantee()
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier#getReceivedPrivilege
+	 * @model opposite="receivedPrivilege"
+	 * @generated
+	 */
+	AuthorizationIdentifier getGrantee();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege#getGrantee <em>Grantee</em>}' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Grantee</em>' container reference.
+	 * @see #getGrantee()
+	 * @generated
+	 */
+	void setGrantee(AuthorizationIdentifier value);
+
+	/**
+	 * Returns the value of the '<em><b>Action Objects</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.schema.SQLObject}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Action Objects</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Action Objects</em>' reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage#getPrivilege_ActionObjects()
+	 * @model type="org.eclipse.datatools.modelbase.sql.schema.SQLObject"
+	 * @generated
+	 */
+	EList getActionObjects();
+
+	/**
+	 * Returns the value of the '<em><b>Object</b></em>' reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.schema.SQLObject#getPrivileges <em>Privileges</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Object</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Object</em>' reference.
+	 * @see #setObject(SQLObject)
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage#getPrivilege_Object()
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLObject#getPrivileges
+	 * @model opposite="privileges" required="true"
+	 * @generated
+	 */
+	SQLObject getObject();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege#getObject <em>Object</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Object</em>' reference.
+	 * @see #getObject()
+	 * @generated
+	 */
+	void setObject(SQLObject value);
+
+} // Privilege
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/Role.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/Role.java
new file mode 100644
index 0000000..b8ea7f2
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/Role.java
@@ -0,0 +1,54 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.accesscontrol;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Role</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.34.3 Roles
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.accesscontrol.Role#getRoleAuthorization <em>Role Authorization</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage#getRole()
+ * @model
+ * @generated
+ */
+public interface Role extends AuthorizationIdentifier {
+	/**
+	 * Returns the value of the '<em><b>Role Authorization</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.accesscontrol.RoleAuthorization}.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.RoleAuthorization#getRole <em>Role</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Role Authorization</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Role Authorization</em>' reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage#getRole_RoleAuthorization()
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.RoleAuthorization#getRole
+	 * @model type="org.eclipse.datatools.modelbase.sql.accesscontrol.RoleAuthorization" opposite="role" required="true"
+	 * @generated
+	 */
+	EList getRoleAuthorization();
+
+} // Role
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/RoleAuthorization.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/RoleAuthorization.java
new file mode 100644
index 0000000..0ce6498
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/RoleAuthorization.java
@@ -0,0 +1,149 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.accesscontrol;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Role Authorization</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.34.3 Roles
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.accesscontrol.RoleAuthorization#isGrantable <em>Grantable</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.accesscontrol.RoleAuthorization#getRole <em>Role</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.accesscontrol.RoleAuthorization#getGrantee <em>Grantee</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.accesscontrol.RoleAuthorization#getGrantor <em>Grantor</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage#getRoleAuthorization()
+ * @model
+ * @generated
+ */
+public interface RoleAuthorization extends SQLObject {
+	/**
+	 * Returns the value of the '<em><b>Grantable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Grantable</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Grantable</em>' attribute.
+	 * @see #setGrantable(boolean)
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage#getRoleAuthorization_Grantable()
+	 * @model
+	 * @generated
+	 */
+	boolean isGrantable();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.RoleAuthorization#isGrantable <em>Grantable</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Grantable</em>' attribute.
+	 * @see #isGrantable()
+	 * @generated
+	 */
+	void setGrantable(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Role</b></em>' reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.Role#getRoleAuthorization <em>Role Authorization</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Role</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Role</em>' reference.
+	 * @see #setRole(Role)
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage#getRoleAuthorization_Role()
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.Role#getRoleAuthorization
+	 * @model opposite="roleAuthorization" required="true"
+	 * @generated
+	 */
+	Role getRole();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.RoleAuthorization#getRole <em>Role</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Role</em>' reference.
+	 * @see #getRole()
+	 * @generated
+	 */
+	void setRole(Role value);
+
+	/**
+	 * Returns the value of the '<em><b>Grantee</b></em>' reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier#getReceivedRoleAuthorization <em>Received Role Authorization</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Grantee</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Grantee</em>' reference.
+	 * @see #setGrantee(AuthorizationIdentifier)
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage#getRoleAuthorization_Grantee()
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier#getReceivedRoleAuthorization
+	 * @model opposite="receivedRoleAuthorization" required="true"
+	 * @generated
+	 */
+	AuthorizationIdentifier getGrantee();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.RoleAuthorization#getGrantee <em>Grantee</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Grantee</em>' reference.
+	 * @see #getGrantee()
+	 * @generated
+	 */
+	void setGrantee(AuthorizationIdentifier value);
+
+	/**
+	 * Returns the value of the '<em><b>Grantor</b></em>' reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier#getGrantedRoleAuthorization <em>Granted Role Authorization</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Grantor</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Grantor</em>' reference.
+	 * @see #setGrantor(AuthorizationIdentifier)
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage#getRoleAuthorization_Grantor()
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier#getGrantedRoleAuthorization
+	 * @model opposite="grantedRoleAuthorization" required="true"
+	 * @generated
+	 */
+	AuthorizationIdentifier getGrantor();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.RoleAuthorization#getGrantor <em>Grantor</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Grantor</em>' reference.
+	 * @see #getGrantor()
+	 * @generated
+	 */
+	void setGrantor(AuthorizationIdentifier value);
+
+} // RoleAuthorization
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/SQLAccessControlFactory.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/SQLAccessControlFactory.java
new file mode 100644
index 0000000..3ae21d5
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/SQLAccessControlFactory.java
@@ -0,0 +1,86 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.accesscontrol;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage
+ * @generated
+ */
+public interface SQLAccessControlFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	SQLAccessControlFactory eINSTANCE = org.eclipse.datatools.modelbase.sql.accesscontrol.impl.SQLAccessControlFactoryImpl.init();
+
+	/**
+	 * Returns a new object of class '<em>Privilege</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Privilege</em>'.
+	 * @generated
+	 */
+	Privilege createPrivilege();
+
+	/**
+	 * Returns a new object of class '<em>Group</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Group</em>'.
+	 * @generated
+	 */
+	Group createGroup();
+
+	/**
+	 * Returns a new object of class '<em>User</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>User</em>'.
+	 * @generated
+	 */
+	User createUser();
+
+	/**
+	 * Returns a new object of class '<em>Role</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Role</em>'.
+	 * @generated
+	 */
+	Role createRole();
+
+	/**
+	 * Returns a new object of class '<em>Role Authorization</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Role Authorization</em>'.
+	 * @generated
+	 */
+	RoleAuthorization createRoleAuthorization();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	SQLAccessControlPackage getSQLAccessControlPackage();
+
+} //SQLAccessControlFactory
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/SQLAccessControlPackage.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/SQLAccessControlPackage.java
new file mode 100644
index 0000000..683816f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/SQLAccessControlPackage.java
@@ -0,0 +1,1479 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.accesscontrol;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ *   <li>each class,</li>
+ *   <li>each feature of each class,</li>
+ *   <li>each enum,</li>
+ *   <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface SQLAccessControlPackage extends EPackage {
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNAME = "accesscontrol"; //$NON-NLS-1$
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_URI = "http:///org/eclipse/datatools/modelbase/sql/accesscontrol.ecore"; //$NON-NLS-1$
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_PREFIX = "SQLAccessControl"; //$NON-NLS-1$
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	SQLAccessControlPackage eINSTANCE = org.eclipse.datatools.modelbase.sql.accesscontrol.impl.SQLAccessControlPackageImpl.init();
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.impl.AuthorizationIdentifierImpl <em>Authorization Identifier</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.impl.AuthorizationIdentifierImpl
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.impl.SQLAccessControlPackageImpl#getAuthorizationIdentifier()
+	 * @generated
+	 */
+	int AUTHORIZATION_IDENTIFIER = 0;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AUTHORIZATION_IDENTIFIER__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AUTHORIZATION_IDENTIFIER__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AUTHORIZATION_IDENTIFIER__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AUTHORIZATION_IDENTIFIER__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AUTHORIZATION_IDENTIFIER__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AUTHORIZATION_IDENTIFIER__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AUTHORIZATION_IDENTIFIER__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AUTHORIZATION_IDENTIFIER__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Owned Schema</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AUTHORIZATION_IDENTIFIER__OWNED_SCHEMA = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Database</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AUTHORIZATION_IDENTIFIER__DATABASE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Received Role Authorization</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AUTHORIZATION_IDENTIFIER__RECEIVED_ROLE_AUTHORIZATION = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Granted Role Authorization</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AUTHORIZATION_IDENTIFIER__GRANTED_ROLE_AUTHORIZATION = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Granted Privilege</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AUTHORIZATION_IDENTIFIER__GRANTED_PRIVILEGE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Received Privilege</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AUTHORIZATION_IDENTIFIER__RECEIVED_PRIVILEGE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 5;
+
+	/**
+	 * The number of structural features of the '<em>Authorization Identifier</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AUTHORIZATION_IDENTIFIER_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 6;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.impl.PrivilegeImpl <em>Privilege</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.impl.PrivilegeImpl
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.impl.SQLAccessControlPackageImpl#getPrivilege()
+	 * @generated
+	 */
+	int PRIVILEGE = 1;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PRIVILEGE__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PRIVILEGE__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PRIVILEGE__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PRIVILEGE__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PRIVILEGE__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PRIVILEGE__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PRIVILEGE__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PRIVILEGE__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Grantable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PRIVILEGE__GRANTABLE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Action</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PRIVILEGE__ACTION = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>With Hierarchy</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PRIVILEGE__WITH_HIERARCHY = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Grantor</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PRIVILEGE__GRANTOR = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Grantee</b></em>' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PRIVILEGE__GRANTEE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Action Objects</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PRIVILEGE__ACTION_OBJECTS = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Object</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PRIVILEGE__OBJECT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 6;
+
+	/**
+	 * The number of structural features of the '<em>Privilege</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PRIVILEGE_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 7;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.impl.GroupImpl <em>Group</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.impl.GroupImpl
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.impl.SQLAccessControlPackageImpl#getGroup()
+	 * @generated
+	 */
+	int GROUP = 2;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GROUP__EANNOTATIONS = AUTHORIZATION_IDENTIFIER__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GROUP__NAME = AUTHORIZATION_IDENTIFIER__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GROUP__DEPENDENCIES = AUTHORIZATION_IDENTIFIER__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GROUP__DESCRIPTION = AUTHORIZATION_IDENTIFIER__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GROUP__LABEL = AUTHORIZATION_IDENTIFIER__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GROUP__COMMENTS = AUTHORIZATION_IDENTIFIER__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GROUP__EXTENSIONS = AUTHORIZATION_IDENTIFIER__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GROUP__PRIVILEGES = AUTHORIZATION_IDENTIFIER__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Owned Schema</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GROUP__OWNED_SCHEMA = AUTHORIZATION_IDENTIFIER__OWNED_SCHEMA;
+
+	/**
+	 * The feature id for the '<em><b>Database</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GROUP__DATABASE = AUTHORIZATION_IDENTIFIER__DATABASE;
+
+	/**
+	 * The feature id for the '<em><b>Received Role Authorization</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GROUP__RECEIVED_ROLE_AUTHORIZATION = AUTHORIZATION_IDENTIFIER__RECEIVED_ROLE_AUTHORIZATION;
+
+	/**
+	 * The feature id for the '<em><b>Granted Role Authorization</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GROUP__GRANTED_ROLE_AUTHORIZATION = AUTHORIZATION_IDENTIFIER__GRANTED_ROLE_AUTHORIZATION;
+
+	/**
+	 * The feature id for the '<em><b>Granted Privilege</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GROUP__GRANTED_PRIVILEGE = AUTHORIZATION_IDENTIFIER__GRANTED_PRIVILEGE;
+
+	/**
+	 * The feature id for the '<em><b>Received Privilege</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GROUP__RECEIVED_PRIVILEGE = AUTHORIZATION_IDENTIFIER__RECEIVED_PRIVILEGE;
+
+	/**
+	 * The feature id for the '<em><b>User</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GROUP__USER = AUTHORIZATION_IDENTIFIER_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Group</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GROUP_FEATURE_COUNT = AUTHORIZATION_IDENTIFIER_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.impl.UserImpl <em>User</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.impl.UserImpl
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.impl.SQLAccessControlPackageImpl#getUser()
+	 * @generated
+	 */
+	int USER = 3;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER__EANNOTATIONS = AUTHORIZATION_IDENTIFIER__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER__NAME = AUTHORIZATION_IDENTIFIER__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER__DEPENDENCIES = AUTHORIZATION_IDENTIFIER__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER__DESCRIPTION = AUTHORIZATION_IDENTIFIER__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER__LABEL = AUTHORIZATION_IDENTIFIER__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER__COMMENTS = AUTHORIZATION_IDENTIFIER__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER__EXTENSIONS = AUTHORIZATION_IDENTIFIER__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER__PRIVILEGES = AUTHORIZATION_IDENTIFIER__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Owned Schema</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER__OWNED_SCHEMA = AUTHORIZATION_IDENTIFIER__OWNED_SCHEMA;
+
+	/**
+	 * The feature id for the '<em><b>Database</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER__DATABASE = AUTHORIZATION_IDENTIFIER__DATABASE;
+
+	/**
+	 * The feature id for the '<em><b>Received Role Authorization</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER__RECEIVED_ROLE_AUTHORIZATION = AUTHORIZATION_IDENTIFIER__RECEIVED_ROLE_AUTHORIZATION;
+
+	/**
+	 * The feature id for the '<em><b>Granted Role Authorization</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER__GRANTED_ROLE_AUTHORIZATION = AUTHORIZATION_IDENTIFIER__GRANTED_ROLE_AUTHORIZATION;
+
+	/**
+	 * The feature id for the '<em><b>Granted Privilege</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER__GRANTED_PRIVILEGE = AUTHORIZATION_IDENTIFIER__GRANTED_PRIVILEGE;
+
+	/**
+	 * The feature id for the '<em><b>Received Privilege</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER__RECEIVED_PRIVILEGE = AUTHORIZATION_IDENTIFIER__RECEIVED_PRIVILEGE;
+
+	/**
+	 * The feature id for the '<em><b>Group</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER__GROUP = AUTHORIZATION_IDENTIFIER_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>User</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_FEATURE_COUNT = AUTHORIZATION_IDENTIFIER_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.impl.RoleImpl <em>Role</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.impl.RoleImpl
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.impl.SQLAccessControlPackageImpl#getRole()
+	 * @generated
+	 */
+	int ROLE = 4;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROLE__EANNOTATIONS = AUTHORIZATION_IDENTIFIER__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROLE__NAME = AUTHORIZATION_IDENTIFIER__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROLE__DEPENDENCIES = AUTHORIZATION_IDENTIFIER__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROLE__DESCRIPTION = AUTHORIZATION_IDENTIFIER__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROLE__LABEL = AUTHORIZATION_IDENTIFIER__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROLE__COMMENTS = AUTHORIZATION_IDENTIFIER__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROLE__EXTENSIONS = AUTHORIZATION_IDENTIFIER__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROLE__PRIVILEGES = AUTHORIZATION_IDENTIFIER__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Owned Schema</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROLE__OWNED_SCHEMA = AUTHORIZATION_IDENTIFIER__OWNED_SCHEMA;
+
+	/**
+	 * The feature id for the '<em><b>Database</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROLE__DATABASE = AUTHORIZATION_IDENTIFIER__DATABASE;
+
+	/**
+	 * The feature id for the '<em><b>Received Role Authorization</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROLE__RECEIVED_ROLE_AUTHORIZATION = AUTHORIZATION_IDENTIFIER__RECEIVED_ROLE_AUTHORIZATION;
+
+	/**
+	 * The feature id for the '<em><b>Granted Role Authorization</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROLE__GRANTED_ROLE_AUTHORIZATION = AUTHORIZATION_IDENTIFIER__GRANTED_ROLE_AUTHORIZATION;
+
+	/**
+	 * The feature id for the '<em><b>Granted Privilege</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROLE__GRANTED_PRIVILEGE = AUTHORIZATION_IDENTIFIER__GRANTED_PRIVILEGE;
+
+	/**
+	 * The feature id for the '<em><b>Received Privilege</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROLE__RECEIVED_PRIVILEGE = AUTHORIZATION_IDENTIFIER__RECEIVED_PRIVILEGE;
+
+	/**
+	 * The feature id for the '<em><b>Role Authorization</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROLE__ROLE_AUTHORIZATION = AUTHORIZATION_IDENTIFIER_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Role</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROLE_FEATURE_COUNT = AUTHORIZATION_IDENTIFIER_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.impl.RoleAuthorizationImpl <em>Role Authorization</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.impl.RoleAuthorizationImpl
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.impl.SQLAccessControlPackageImpl#getRoleAuthorization()
+	 * @generated
+	 */
+	int ROLE_AUTHORIZATION = 5;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROLE_AUTHORIZATION__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROLE_AUTHORIZATION__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROLE_AUTHORIZATION__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROLE_AUTHORIZATION__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROLE_AUTHORIZATION__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROLE_AUTHORIZATION__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROLE_AUTHORIZATION__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROLE_AUTHORIZATION__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Grantable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROLE_AUTHORIZATION__GRANTABLE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Role</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROLE_AUTHORIZATION__ROLE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Grantee</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROLE_AUTHORIZATION__GRANTEE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Grantor</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROLE_AUTHORIZATION__GRANTOR = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 3;
+
+	/**
+	 * The number of structural features of the '<em>Role Authorization</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROLE_AUTHORIZATION_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 4;
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier <em>Authorization Identifier</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Authorization Identifier</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier
+	 * @generated
+	 */
+	EClass getAuthorizationIdentifier();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier#getOwnedSchema <em>Owned Schema</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Owned Schema</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier#getOwnedSchema()
+	 * @see #getAuthorizationIdentifier()
+	 * @generated
+	 */
+	EReference getAuthorizationIdentifier_OwnedSchema();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier#getDatabase <em>Database</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Database</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier#getDatabase()
+	 * @see #getAuthorizationIdentifier()
+	 * @generated
+	 */
+	EReference getAuthorizationIdentifier_Database();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier#getReceivedRoleAuthorization <em>Received Role Authorization</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Received Role Authorization</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier#getReceivedRoleAuthorization()
+	 * @see #getAuthorizationIdentifier()
+	 * @generated
+	 */
+	EReference getAuthorizationIdentifier_ReceivedRoleAuthorization();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier#getGrantedRoleAuthorization <em>Granted Role Authorization</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Granted Role Authorization</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier#getGrantedRoleAuthorization()
+	 * @see #getAuthorizationIdentifier()
+	 * @generated
+	 */
+	EReference getAuthorizationIdentifier_GrantedRoleAuthorization();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier#getGrantedPrivilege <em>Granted Privilege</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Granted Privilege</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier#getGrantedPrivilege()
+	 * @see #getAuthorizationIdentifier()
+	 * @generated
+	 */
+	EReference getAuthorizationIdentifier_GrantedPrivilege();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier#getReceivedPrivilege <em>Received Privilege</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Received Privilege</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier#getReceivedPrivilege()
+	 * @see #getAuthorizationIdentifier()
+	 * @generated
+	 */
+	EReference getAuthorizationIdentifier_ReceivedPrivilege();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege <em>Privilege</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Privilege</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege
+	 * @generated
+	 */
+	EClass getPrivilege();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege#isGrantable <em>Grantable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Grantable</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege#isGrantable()
+	 * @see #getPrivilege()
+	 * @generated
+	 */
+	EAttribute getPrivilege_Grantable();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege#getAction <em>Action</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Action</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege#getAction()
+	 * @see #getPrivilege()
+	 * @generated
+	 */
+	EAttribute getPrivilege_Action();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege#isWithHierarchy <em>With Hierarchy</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>With Hierarchy</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege#isWithHierarchy()
+	 * @see #getPrivilege()
+	 * @generated
+	 */
+	EAttribute getPrivilege_WithHierarchy();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege#getGrantor <em>Grantor</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Grantor</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege#getGrantor()
+	 * @see #getPrivilege()
+	 * @generated
+	 */
+	EReference getPrivilege_Grantor();
+
+	/**
+	 * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege#getGrantee <em>Grantee</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the container reference '<em>Grantee</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege#getGrantee()
+	 * @see #getPrivilege()
+	 * @generated
+	 */
+	EReference getPrivilege_Grantee();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege#getActionObjects <em>Action Objects</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Action Objects</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege#getActionObjects()
+	 * @see #getPrivilege()
+	 * @generated
+	 */
+	EReference getPrivilege_ActionObjects();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege#getObject <em>Object</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Object</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege#getObject()
+	 * @see #getPrivilege()
+	 * @generated
+	 */
+	EReference getPrivilege_Object();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.Group <em>Group</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Group</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.Group
+	 * @generated
+	 */
+	EClass getGroup();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.Group#getUser <em>User</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>User</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.Group#getUser()
+	 * @see #getGroup()
+	 * @generated
+	 */
+	EReference getGroup_User();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.User <em>User</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>User</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.User
+	 * @generated
+	 */
+	EClass getUser();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.User#getGroup <em>Group</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Group</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.User#getGroup()
+	 * @see #getUser()
+	 * @generated
+	 */
+	EReference getUser_Group();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.Role <em>Role</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Role</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.Role
+	 * @generated
+	 */
+	EClass getRole();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.Role#getRoleAuthorization <em>Role Authorization</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Role Authorization</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.Role#getRoleAuthorization()
+	 * @see #getRole()
+	 * @generated
+	 */
+	EReference getRole_RoleAuthorization();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.RoleAuthorization <em>Role Authorization</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Role Authorization</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.RoleAuthorization
+	 * @generated
+	 */
+	EClass getRoleAuthorization();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.RoleAuthorization#isGrantable <em>Grantable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Grantable</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.RoleAuthorization#isGrantable()
+	 * @see #getRoleAuthorization()
+	 * @generated
+	 */
+	EAttribute getRoleAuthorization_Grantable();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.RoleAuthorization#getRole <em>Role</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Role</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.RoleAuthorization#getRole()
+	 * @see #getRoleAuthorization()
+	 * @generated
+	 */
+	EReference getRoleAuthorization_Role();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.RoleAuthorization#getGrantee <em>Grantee</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Grantee</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.RoleAuthorization#getGrantee()
+	 * @see #getRoleAuthorization()
+	 * @generated
+	 */
+	EReference getRoleAuthorization_Grantee();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.RoleAuthorization#getGrantor <em>Grantor</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Grantor</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.RoleAuthorization#getGrantor()
+	 * @see #getRoleAuthorization()
+	 * @generated
+	 */
+	EReference getRoleAuthorization_Grantor();
+
+	/**
+	 * Returns the factory that creates the instances of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the factory that creates the instances of the model.
+	 * @generated
+	 */
+	SQLAccessControlFactory getSQLAccessControlFactory();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * Defines literals for the meta objects that represent
+	 * <ul>
+	 *   <li>each class,</li>
+	 *   <li>each feature of each class,</li>
+	 *   <li>each enum,</li>
+	 *   <li>and each data type</li>
+	 * </ul>
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	interface Literals  {
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.impl.AuthorizationIdentifierImpl <em>Authorization Identifier</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.impl.AuthorizationIdentifierImpl
+		 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.impl.SQLAccessControlPackageImpl#getAuthorizationIdentifier()
+		 * @generated
+		 */
+		EClass AUTHORIZATION_IDENTIFIER = eINSTANCE.getAuthorizationIdentifier();
+
+		/**
+		 * The meta object literal for the '<em><b>Owned Schema</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference AUTHORIZATION_IDENTIFIER__OWNED_SCHEMA = eINSTANCE.getAuthorizationIdentifier_OwnedSchema();
+
+		/**
+		 * The meta object literal for the '<em><b>Database</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference AUTHORIZATION_IDENTIFIER__DATABASE = eINSTANCE.getAuthorizationIdentifier_Database();
+
+		/**
+		 * The meta object literal for the '<em><b>Received Role Authorization</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference AUTHORIZATION_IDENTIFIER__RECEIVED_ROLE_AUTHORIZATION = eINSTANCE.getAuthorizationIdentifier_ReceivedRoleAuthorization();
+
+		/**
+		 * The meta object literal for the '<em><b>Granted Role Authorization</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference AUTHORIZATION_IDENTIFIER__GRANTED_ROLE_AUTHORIZATION = eINSTANCE.getAuthorizationIdentifier_GrantedRoleAuthorization();
+
+		/**
+		 * The meta object literal for the '<em><b>Granted Privilege</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference AUTHORIZATION_IDENTIFIER__GRANTED_PRIVILEGE = eINSTANCE.getAuthorizationIdentifier_GrantedPrivilege();
+
+		/**
+		 * The meta object literal for the '<em><b>Received Privilege</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference AUTHORIZATION_IDENTIFIER__RECEIVED_PRIVILEGE = eINSTANCE.getAuthorizationIdentifier_ReceivedPrivilege();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.impl.PrivilegeImpl <em>Privilege</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.impl.PrivilegeImpl
+		 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.impl.SQLAccessControlPackageImpl#getPrivilege()
+		 * @generated
+		 */
+		EClass PRIVILEGE = eINSTANCE.getPrivilege();
+
+		/**
+		 * The meta object literal for the '<em><b>Grantable</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PRIVILEGE__GRANTABLE = eINSTANCE.getPrivilege_Grantable();
+
+		/**
+		 * The meta object literal for the '<em><b>Action</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PRIVILEGE__ACTION = eINSTANCE.getPrivilege_Action();
+
+		/**
+		 * The meta object literal for the '<em><b>With Hierarchy</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PRIVILEGE__WITH_HIERARCHY = eINSTANCE.getPrivilege_WithHierarchy();
+
+		/**
+		 * The meta object literal for the '<em><b>Grantor</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference PRIVILEGE__GRANTOR = eINSTANCE.getPrivilege_Grantor();
+
+		/**
+		 * The meta object literal for the '<em><b>Grantee</b></em>' container reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference PRIVILEGE__GRANTEE = eINSTANCE.getPrivilege_Grantee();
+
+		/**
+		 * The meta object literal for the '<em><b>Action Objects</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference PRIVILEGE__ACTION_OBJECTS = eINSTANCE.getPrivilege_ActionObjects();
+
+		/**
+		 * The meta object literal for the '<em><b>Object</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference PRIVILEGE__OBJECT = eINSTANCE.getPrivilege_Object();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.impl.GroupImpl <em>Group</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.impl.GroupImpl
+		 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.impl.SQLAccessControlPackageImpl#getGroup()
+		 * @generated
+		 */
+		EClass GROUP = eINSTANCE.getGroup();
+
+		/**
+		 * The meta object literal for the '<em><b>User</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference GROUP__USER = eINSTANCE.getGroup_User();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.impl.UserImpl <em>User</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.impl.UserImpl
+		 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.impl.SQLAccessControlPackageImpl#getUser()
+		 * @generated
+		 */
+		EClass USER = eINSTANCE.getUser();
+
+		/**
+		 * The meta object literal for the '<em><b>Group</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference USER__GROUP = eINSTANCE.getUser_Group();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.impl.RoleImpl <em>Role</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.impl.RoleImpl
+		 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.impl.SQLAccessControlPackageImpl#getRole()
+		 * @generated
+		 */
+		EClass ROLE = eINSTANCE.getRole();
+
+		/**
+		 * The meta object literal for the '<em><b>Role Authorization</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference ROLE__ROLE_AUTHORIZATION = eINSTANCE.getRole_RoleAuthorization();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.impl.RoleAuthorizationImpl <em>Role Authorization</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.impl.RoleAuthorizationImpl
+		 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.impl.SQLAccessControlPackageImpl#getRoleAuthorization()
+		 * @generated
+		 */
+		EClass ROLE_AUTHORIZATION = eINSTANCE.getRoleAuthorization();
+
+		/**
+		 * The meta object literal for the '<em><b>Grantable</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute ROLE_AUTHORIZATION__GRANTABLE = eINSTANCE.getRoleAuthorization_Grantable();
+
+		/**
+		 * The meta object literal for the '<em><b>Role</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference ROLE_AUTHORIZATION__ROLE = eINSTANCE.getRoleAuthorization_Role();
+
+		/**
+		 * The meta object literal for the '<em><b>Grantee</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference ROLE_AUTHORIZATION__GRANTEE = eINSTANCE.getRoleAuthorization_Grantee();
+
+		/**
+		 * The meta object literal for the '<em><b>Grantor</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference ROLE_AUTHORIZATION__GRANTOR = eINSTANCE.getRoleAuthorization_Grantor();
+
+}
+
+} //SQLAccessControlPackage
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/TablePrivilege.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/TablePrivilege.java
new file mode 100644
index 0000000..5450837
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/TablePrivilege.java
@@ -0,0 +1,61 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.accesscontrol;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Table Privilege</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.34.2 Privileges
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.accesscontrol.TablePrivilege#isWithHierarchy <em>With Hierarchy</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage#getTablePrivilege()
+ * @model
+ * @generated
+ */
+public interface TablePrivilege extends Privilege {
+	/**
+	 * Returns the value of the '<em><b>With Hierarchy</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>With Hierarchy</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>With Hierarchy</em>' attribute.
+	 * @see #setWithHierarchy(boolean)
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage#getTablePrivilege_WithHierarchy()
+	 * @model
+	 * @generated
+	 */
+	boolean isWithHierarchy();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.TablePrivilege#isWithHierarchy <em>With Hierarchy</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>With Hierarchy</em>' attribute.
+	 * @see #isWithHierarchy()
+	 * @generated
+	 */
+	void setWithHierarchy(boolean value);
+
+} // TablePrivilege
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/User.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/User.java
new file mode 100644
index 0000000..f8fc709
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/User.java
@@ -0,0 +1,55 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.accesscontrol;
+
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>User</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.34.1 Authorization Identifiers
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.accesscontrol.User#getGroup <em>Group</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage#getUser()
+ * @model
+ * @generated
+ */
+public interface User extends AuthorizationIdentifier {
+	/**
+	 * Returns the value of the '<em><b>Group</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.accesscontrol.Group}.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.Group#getUser <em>User</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Group</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Group</em>' reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage#getUser_Group()
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.Group#getUser
+	 * @model type="org.eclipse.datatools.modelbase.sql.accesscontrol.Group" opposite="user"
+	 * @generated
+	 */
+	EList getGroup();
+
+} // User
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/impl/AuthorizationIdentifierImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/impl/AuthorizationIdentifierImpl.java
new file mode 100644
index 0000000..5ab5fd7
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/impl/AuthorizationIdentifierImpl.java
@@ -0,0 +1,411 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.accesscontrol.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.RoleAuthorization;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Authorization Identifier</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.accesscontrol.impl.AuthorizationIdentifierImpl#getOwnedSchema <em>Owned Schema</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.accesscontrol.impl.AuthorizationIdentifierImpl#getDatabase <em>Database</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.accesscontrol.impl.AuthorizationIdentifierImpl#getReceivedRoleAuthorization <em>Received Role Authorization</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.accesscontrol.impl.AuthorizationIdentifierImpl#getGrantedRoleAuthorization <em>Granted Role Authorization</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.accesscontrol.impl.AuthorizationIdentifierImpl#getGrantedPrivilege <em>Granted Privilege</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.accesscontrol.impl.AuthorizationIdentifierImpl#getReceivedPrivilege <em>Received Privilege</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class AuthorizationIdentifierImpl extends SQLObjectImpl implements AuthorizationIdentifier {
+	/**
+	 * The cached value of the '{@link #getOwnedSchema() <em>Owned Schema</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getOwnedSchema()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList ownedSchema;
+
+	/**
+	 * The cached value of the '{@link #getDatabase() <em>Database</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDatabase()
+	 * @generated
+	 * @ordered
+	 */
+	protected Database database;
+
+	/**
+	 * The cached value of the '{@link #getReceivedRoleAuthorization() <em>Received Role Authorization</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getReceivedRoleAuthorization()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList receivedRoleAuthorization;
+
+	/**
+	 * The cached value of the '{@link #getGrantedRoleAuthorization() <em>Granted Role Authorization</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getGrantedRoleAuthorization()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList grantedRoleAuthorization;
+
+	/**
+	 * The cached value of the '{@link #getGrantedPrivilege() <em>Granted Privilege</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getGrantedPrivilege()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList grantedPrivilege;
+
+	/**
+	 * The cached value of the '{@link #getReceivedPrivilege() <em>Received Privilege</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getReceivedPrivilege()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList receivedPrivilege;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected AuthorizationIdentifierImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLAccessControlPackage.Literals.AUTHORIZATION_IDENTIFIER;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getOwnedSchema() {
+		if (ownedSchema == null) {
+			ownedSchema = new EObjectWithInverseResolvingEList(Schema.class, this, SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__OWNED_SCHEMA, SQLSchemaPackage.SCHEMA__OWNER);
+		}
+		return ownedSchema;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Database getDatabase() {
+		if (database != null && database.eIsProxy()) {
+			InternalEObject oldDatabase = (InternalEObject)database;
+			database = (Database)eResolveProxy(oldDatabase);
+			if (database != oldDatabase) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__DATABASE, oldDatabase, database));
+			}
+		}
+		return database;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Database basicGetDatabase() {
+		return database;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetDatabase(Database newDatabase, NotificationChain msgs) {
+		Database oldDatabase = database;
+		database = newDatabase;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__DATABASE, oldDatabase, newDatabase);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDatabase(Database newDatabase) {
+		if (newDatabase != database) {
+			NotificationChain msgs = null;
+			if (database != null)
+				msgs = ((InternalEObject)database).eInverseRemove(this, SQLSchemaPackage.DATABASE__AUTHORIZATION_IDS, Database.class, msgs);
+			if (newDatabase != null)
+				msgs = ((InternalEObject)newDatabase).eInverseAdd(this, SQLSchemaPackage.DATABASE__AUTHORIZATION_IDS, Database.class, msgs);
+			msgs = basicSetDatabase(newDatabase, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__DATABASE, newDatabase, newDatabase));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getReceivedRoleAuthorization() {
+		if (receivedRoleAuthorization == null) {
+			receivedRoleAuthorization = new EObjectWithInverseResolvingEList(RoleAuthorization.class, this, SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__RECEIVED_ROLE_AUTHORIZATION, SQLAccessControlPackage.ROLE_AUTHORIZATION__GRANTEE);
+		}
+		return receivedRoleAuthorization;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getGrantedRoleAuthorization() {
+		if (grantedRoleAuthorization == null) {
+			grantedRoleAuthorization = new EObjectWithInverseResolvingEList(RoleAuthorization.class, this, SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__GRANTED_ROLE_AUTHORIZATION, SQLAccessControlPackage.ROLE_AUTHORIZATION__GRANTOR);
+		}
+		return grantedRoleAuthorization;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getGrantedPrivilege() {
+		if (grantedPrivilege == null) {
+			grantedPrivilege = new EObjectWithInverseResolvingEList(Privilege.class, this, SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__GRANTED_PRIVILEGE, SQLAccessControlPackage.PRIVILEGE__GRANTOR);
+		}
+		return grantedPrivilege;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getReceivedPrivilege() {
+		if (receivedPrivilege == null) {
+			receivedPrivilege = new EObjectContainmentWithInverseEList(Privilege.class, this, SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__RECEIVED_PRIVILEGE, SQLAccessControlPackage.PRIVILEGE__GRANTEE);
+		}
+		return receivedPrivilege;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__OWNED_SCHEMA:
+				return ((InternalEList)getOwnedSchema()).basicAdd(otherEnd, msgs);
+			case SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__DATABASE:
+				if (database != null)
+					msgs = ((InternalEObject)database).eInverseRemove(this, SQLSchemaPackage.DATABASE__AUTHORIZATION_IDS, Database.class, msgs);
+				return basicSetDatabase((Database)otherEnd, msgs);
+			case SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__RECEIVED_ROLE_AUTHORIZATION:
+				return ((InternalEList)getReceivedRoleAuthorization()).basicAdd(otherEnd, msgs);
+			case SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__GRANTED_ROLE_AUTHORIZATION:
+				return ((InternalEList)getGrantedRoleAuthorization()).basicAdd(otherEnd, msgs);
+			case SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__GRANTED_PRIVILEGE:
+				return ((InternalEList)getGrantedPrivilege()).basicAdd(otherEnd, msgs);
+			case SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__RECEIVED_PRIVILEGE:
+				return ((InternalEList)getReceivedPrivilege()).basicAdd(otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__OWNED_SCHEMA:
+				return ((InternalEList)getOwnedSchema()).basicRemove(otherEnd, msgs);
+			case SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__DATABASE:
+				return basicSetDatabase(null, msgs);
+			case SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__RECEIVED_ROLE_AUTHORIZATION:
+				return ((InternalEList)getReceivedRoleAuthorization()).basicRemove(otherEnd, msgs);
+			case SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__GRANTED_ROLE_AUTHORIZATION:
+				return ((InternalEList)getGrantedRoleAuthorization()).basicRemove(otherEnd, msgs);
+			case SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__GRANTED_PRIVILEGE:
+				return ((InternalEList)getGrantedPrivilege()).basicRemove(otherEnd, msgs);
+			case SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__RECEIVED_PRIVILEGE:
+				return ((InternalEList)getReceivedPrivilege()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__OWNED_SCHEMA:
+				return getOwnedSchema();
+			case SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__DATABASE:
+				if (resolve) return getDatabase();
+				return basicGetDatabase();
+			case SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__RECEIVED_ROLE_AUTHORIZATION:
+				return getReceivedRoleAuthorization();
+			case SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__GRANTED_ROLE_AUTHORIZATION:
+				return getGrantedRoleAuthorization();
+			case SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__GRANTED_PRIVILEGE:
+				return getGrantedPrivilege();
+			case SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__RECEIVED_PRIVILEGE:
+				return getReceivedPrivilege();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__OWNED_SCHEMA:
+				getOwnedSchema().clear();
+				getOwnedSchema().addAll((Collection)newValue);
+				return;
+			case SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__DATABASE:
+				setDatabase((Database)newValue);
+				return;
+			case SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__RECEIVED_ROLE_AUTHORIZATION:
+				getReceivedRoleAuthorization().clear();
+				getReceivedRoleAuthorization().addAll((Collection)newValue);
+				return;
+			case SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__GRANTED_ROLE_AUTHORIZATION:
+				getGrantedRoleAuthorization().clear();
+				getGrantedRoleAuthorization().addAll((Collection)newValue);
+				return;
+			case SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__GRANTED_PRIVILEGE:
+				getGrantedPrivilege().clear();
+				getGrantedPrivilege().addAll((Collection)newValue);
+				return;
+			case SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__RECEIVED_PRIVILEGE:
+				getReceivedPrivilege().clear();
+				getReceivedPrivilege().addAll((Collection)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__OWNED_SCHEMA:
+				getOwnedSchema().clear();
+				return;
+			case SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__DATABASE:
+				setDatabase((Database)null);
+				return;
+			case SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__RECEIVED_ROLE_AUTHORIZATION:
+				getReceivedRoleAuthorization().clear();
+				return;
+			case SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__GRANTED_ROLE_AUTHORIZATION:
+				getGrantedRoleAuthorization().clear();
+				return;
+			case SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__GRANTED_PRIVILEGE:
+				getGrantedPrivilege().clear();
+				return;
+			case SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__RECEIVED_PRIVILEGE:
+				getReceivedPrivilege().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__OWNED_SCHEMA:
+				return ownedSchema != null && !ownedSchema.isEmpty();
+			case SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__DATABASE:
+				return database != null;
+			case SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__RECEIVED_ROLE_AUTHORIZATION:
+				return receivedRoleAuthorization != null && !receivedRoleAuthorization.isEmpty();
+			case SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__GRANTED_ROLE_AUTHORIZATION:
+				return grantedRoleAuthorization != null && !grantedRoleAuthorization.isEmpty();
+			case SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__GRANTED_PRIVILEGE:
+				return grantedPrivilege != null && !grantedPrivilege.isEmpty();
+			case SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__RECEIVED_PRIVILEGE:
+				return receivedPrivilege != null && !receivedPrivilege.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //AuthorizationIdentifierImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/impl/GroupImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/impl/GroupImpl.java
new file mode 100644
index 0000000..cb6e948
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/impl/GroupImpl.java
@@ -0,0 +1,162 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.accesscontrol.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.accesscontrol.Group;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.User;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Group</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.accesscontrol.impl.GroupImpl#getUser <em>User</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class GroupImpl extends AuthorizationIdentifierImpl implements Group {
+	/**
+	 * The cached value of the '{@link #getUser() <em>User</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getUser()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList user;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected GroupImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLAccessControlPackage.Literals.GROUP;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getUser() {
+		if (user == null) {
+			user = new EObjectWithInverseResolvingEList.ManyInverse(User.class, this, SQLAccessControlPackage.GROUP__USER, SQLAccessControlPackage.USER__GROUP);
+		}
+		return user;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLAccessControlPackage.GROUP__USER:
+				return ((InternalEList)getUser()).basicAdd(otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLAccessControlPackage.GROUP__USER:
+				return ((InternalEList)getUser()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLAccessControlPackage.GROUP__USER:
+				return getUser();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLAccessControlPackage.GROUP__USER:
+				getUser().clear();
+				getUser().addAll((Collection)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLAccessControlPackage.GROUP__USER:
+				getUser().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLAccessControlPackage.GROUP__USER:
+				return user != null && !user.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //GroupImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/impl/PrivilegeImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/impl/PrivilegeImpl.java
new file mode 100644
index 0000000..55f5302
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/impl/PrivilegeImpl.java
@@ -0,0 +1,589 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.accesscontrol.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+import org.eclipse.emf.ecore.util.InternalEList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Privilege</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.accesscontrol.impl.PrivilegeImpl#isGrantable <em>Grantable</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.accesscontrol.impl.PrivilegeImpl#getAction <em>Action</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.accesscontrol.impl.PrivilegeImpl#isWithHierarchy <em>With Hierarchy</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.accesscontrol.impl.PrivilegeImpl#getGrantor <em>Grantor</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.accesscontrol.impl.PrivilegeImpl#getGrantee <em>Grantee</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.accesscontrol.impl.PrivilegeImpl#getActionObjects <em>Action Objects</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.accesscontrol.impl.PrivilegeImpl#getObject <em>Object</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PrivilegeImpl extends SQLObjectImpl implements Privilege {
+	/**
+	 * The default value of the '{@link #isGrantable() <em>Grantable</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isGrantable()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean GRANTABLE_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isGrantable() <em>Grantable</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isGrantable()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean grantable = GRANTABLE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getAction() <em>Action</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAction()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ACTION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getAction() <em>Action</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAction()
+	 * @generated
+	 * @ordered
+	 */
+	protected String action = ACTION_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isWithHierarchy() <em>With Hierarchy</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isWithHierarchy()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean WITH_HIERARCHY_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isWithHierarchy() <em>With Hierarchy</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isWithHierarchy()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean withHierarchy = WITH_HIERARCHY_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getGrantor() <em>Grantor</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getGrantor()
+	 * @generated
+	 * @ordered
+	 */
+	protected AuthorizationIdentifier grantor;
+
+	/**
+	 * The cached value of the '{@link #getActionObjects() <em>Action Objects</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getActionObjects()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList actionObjects;
+
+	/**
+	 * The cached value of the '{@link #getObject() <em>Object</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getObject()
+	 * @generated
+	 * @ordered
+	 */
+	protected SQLObject object;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected PrivilegeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLAccessControlPackage.Literals.PRIVILEGE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isGrantable() {
+		return grantable;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setGrantable(boolean newGrantable) {
+		boolean oldGrantable = grantable;
+		grantable = newGrantable;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLAccessControlPackage.PRIVILEGE__GRANTABLE, oldGrantable, grantable));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getAction() {
+		return action;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setAction(String newAction) {
+		String oldAction = action;
+		action = newAction;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLAccessControlPackage.PRIVILEGE__ACTION, oldAction, action));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isWithHierarchy() {
+		return withHierarchy;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setWithHierarchy(boolean newWithHierarchy) {
+		boolean oldWithHierarchy = withHierarchy;
+		withHierarchy = newWithHierarchy;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLAccessControlPackage.PRIVILEGE__WITH_HIERARCHY, oldWithHierarchy, withHierarchy));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AuthorizationIdentifier getGrantor() {
+		if (grantor != null && grantor.eIsProxy()) {
+			InternalEObject oldGrantor = (InternalEObject)grantor;
+			grantor = (AuthorizationIdentifier)eResolveProxy(oldGrantor);
+			if (grantor != oldGrantor) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SQLAccessControlPackage.PRIVILEGE__GRANTOR, oldGrantor, grantor));
+			}
+		}
+		return grantor;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AuthorizationIdentifier basicGetGrantor() {
+		return grantor;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetGrantor(AuthorizationIdentifier newGrantor, NotificationChain msgs) {
+		AuthorizationIdentifier oldGrantor = grantor;
+		grantor = newGrantor;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLAccessControlPackage.PRIVILEGE__GRANTOR, oldGrantor, newGrantor);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setGrantor(AuthorizationIdentifier newGrantor) {
+		if (newGrantor != grantor) {
+			NotificationChain msgs = null;
+			if (grantor != null)
+				msgs = ((InternalEObject)grantor).eInverseRemove(this, SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__GRANTED_PRIVILEGE, AuthorizationIdentifier.class, msgs);
+			if (newGrantor != null)
+				msgs = ((InternalEObject)newGrantor).eInverseAdd(this, SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__GRANTED_PRIVILEGE, AuthorizationIdentifier.class, msgs);
+			msgs = basicSetGrantor(newGrantor, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLAccessControlPackage.PRIVILEGE__GRANTOR, newGrantor, newGrantor));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AuthorizationIdentifier getGrantee() {
+		if (eContainerFeatureID != SQLAccessControlPackage.PRIVILEGE__GRANTEE) return null;
+		return (AuthorizationIdentifier)eContainer();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetGrantee(AuthorizationIdentifier newGrantee, NotificationChain msgs) {
+		msgs = eBasicSetContainer((InternalEObject)newGrantee, SQLAccessControlPackage.PRIVILEGE__GRANTEE, msgs);
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setGrantee(AuthorizationIdentifier newGrantee) {
+		if (newGrantee != eInternalContainer() || (eContainerFeatureID != SQLAccessControlPackage.PRIVILEGE__GRANTEE && newGrantee != null)) {
+			if (EcoreUtil.isAncestor(this, newGrantee))
+				throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); //$NON-NLS-1$
+			NotificationChain msgs = null;
+			if (eInternalContainer() != null)
+				msgs = eBasicRemoveFromContainer(msgs);
+			if (newGrantee != null)
+				msgs = ((InternalEObject)newGrantee).eInverseAdd(this, SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__RECEIVED_PRIVILEGE, AuthorizationIdentifier.class, msgs);
+			msgs = basicSetGrantee(newGrantee, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLAccessControlPackage.PRIVILEGE__GRANTEE, newGrantee, newGrantee));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getActionObjects() {
+		if (actionObjects == null) {
+			actionObjects = new EObjectResolvingEList(SQLObject.class, this, SQLAccessControlPackage.PRIVILEGE__ACTION_OBJECTS);
+		}
+		return actionObjects;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLObject getObject() {
+		if (object != null && object.eIsProxy()) {
+			InternalEObject oldObject = (InternalEObject)object;
+			object = (SQLObject)eResolveProxy(oldObject);
+			if (object != oldObject) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SQLAccessControlPackage.PRIVILEGE__OBJECT, oldObject, object));
+			}
+		}
+		return object;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLObject basicGetObject() {
+		return object;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetObject(SQLObject newObject, NotificationChain msgs) {
+		SQLObject oldObject = object;
+		object = newObject;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLAccessControlPackage.PRIVILEGE__OBJECT, oldObject, newObject);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setObject(SQLObject newObject) {
+		if (newObject != object) {
+			NotificationChain msgs = null;
+			if (object != null)
+				msgs = ((InternalEObject)object).eInverseRemove(this, SQLSchemaPackage.SQL_OBJECT__PRIVILEGES, SQLObject.class, msgs);
+			if (newObject != null)
+				msgs = ((InternalEObject)newObject).eInverseAdd(this, SQLSchemaPackage.SQL_OBJECT__PRIVILEGES, SQLObject.class, msgs);
+			msgs = basicSetObject(newObject, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLAccessControlPackage.PRIVILEGE__OBJECT, newObject, newObject));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLAccessControlPackage.PRIVILEGE__GRANTOR:
+				if (grantor != null)
+					msgs = ((InternalEObject)grantor).eInverseRemove(this, SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__GRANTED_PRIVILEGE, AuthorizationIdentifier.class, msgs);
+				return basicSetGrantor((AuthorizationIdentifier)otherEnd, msgs);
+			case SQLAccessControlPackage.PRIVILEGE__GRANTEE:
+				if (eInternalContainer() != null)
+					msgs = eBasicRemoveFromContainer(msgs);
+				return basicSetGrantee((AuthorizationIdentifier)otherEnd, msgs);
+			case SQLAccessControlPackage.PRIVILEGE__OBJECT:
+				if (object != null)
+					msgs = ((InternalEObject)object).eInverseRemove(this, SQLSchemaPackage.SQL_OBJECT__PRIVILEGES, SQLObject.class, msgs);
+				return basicSetObject((SQLObject)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLAccessControlPackage.PRIVILEGE__GRANTOR:
+				return basicSetGrantor(null, msgs);
+			case SQLAccessControlPackage.PRIVILEGE__GRANTEE:
+				return basicSetGrantee(null, msgs);
+			case SQLAccessControlPackage.PRIVILEGE__OBJECT:
+				return basicSetObject(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+		switch (eContainerFeatureID) {
+			case SQLAccessControlPackage.PRIVILEGE__GRANTEE:
+				return eInternalContainer().eInverseRemove(this, SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__RECEIVED_PRIVILEGE, AuthorizationIdentifier.class, msgs);
+		}
+		return super.eBasicRemoveFromContainerFeature(msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLAccessControlPackage.PRIVILEGE__GRANTABLE:
+				return isGrantable() ? Boolean.TRUE : Boolean.FALSE;
+			case SQLAccessControlPackage.PRIVILEGE__ACTION:
+				return getAction();
+			case SQLAccessControlPackage.PRIVILEGE__WITH_HIERARCHY:
+				return isWithHierarchy() ? Boolean.TRUE : Boolean.FALSE;
+			case SQLAccessControlPackage.PRIVILEGE__GRANTOR:
+				if (resolve) return getGrantor();
+				return basicGetGrantor();
+			case SQLAccessControlPackage.PRIVILEGE__GRANTEE:
+				return getGrantee();
+			case SQLAccessControlPackage.PRIVILEGE__ACTION_OBJECTS:
+				return getActionObjects();
+			case SQLAccessControlPackage.PRIVILEGE__OBJECT:
+				if (resolve) return getObject();
+				return basicGetObject();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLAccessControlPackage.PRIVILEGE__GRANTABLE:
+				setGrantable(((Boolean)newValue).booleanValue());
+				return;
+			case SQLAccessControlPackage.PRIVILEGE__ACTION:
+				setAction((String)newValue);
+				return;
+			case SQLAccessControlPackage.PRIVILEGE__WITH_HIERARCHY:
+				setWithHierarchy(((Boolean)newValue).booleanValue());
+				return;
+			case SQLAccessControlPackage.PRIVILEGE__GRANTOR:
+				setGrantor((AuthorizationIdentifier)newValue);
+				return;
+			case SQLAccessControlPackage.PRIVILEGE__GRANTEE:
+				setGrantee((AuthorizationIdentifier)newValue);
+				return;
+			case SQLAccessControlPackage.PRIVILEGE__ACTION_OBJECTS:
+				getActionObjects().clear();
+				getActionObjects().addAll((Collection)newValue);
+				return;
+			case SQLAccessControlPackage.PRIVILEGE__OBJECT:
+				setObject((SQLObject)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLAccessControlPackage.PRIVILEGE__GRANTABLE:
+				setGrantable(GRANTABLE_EDEFAULT);
+				return;
+			case SQLAccessControlPackage.PRIVILEGE__ACTION:
+				setAction(ACTION_EDEFAULT);
+				return;
+			case SQLAccessControlPackage.PRIVILEGE__WITH_HIERARCHY:
+				setWithHierarchy(WITH_HIERARCHY_EDEFAULT);
+				return;
+			case SQLAccessControlPackage.PRIVILEGE__GRANTOR:
+				setGrantor((AuthorizationIdentifier)null);
+				return;
+			case SQLAccessControlPackage.PRIVILEGE__GRANTEE:
+				setGrantee((AuthorizationIdentifier)null);
+				return;
+			case SQLAccessControlPackage.PRIVILEGE__ACTION_OBJECTS:
+				getActionObjects().clear();
+				return;
+			case SQLAccessControlPackage.PRIVILEGE__OBJECT:
+				setObject((SQLObject)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLAccessControlPackage.PRIVILEGE__GRANTABLE:
+				return grantable != GRANTABLE_EDEFAULT;
+			case SQLAccessControlPackage.PRIVILEGE__ACTION:
+				return ACTION_EDEFAULT == null ? action != null : !ACTION_EDEFAULT.equals(action);
+			case SQLAccessControlPackage.PRIVILEGE__WITH_HIERARCHY:
+				return withHierarchy != WITH_HIERARCHY_EDEFAULT;
+			case SQLAccessControlPackage.PRIVILEGE__GRANTOR:
+				return grantor != null;
+			case SQLAccessControlPackage.PRIVILEGE__GRANTEE:
+				return getGrantee() != null;
+			case SQLAccessControlPackage.PRIVILEGE__ACTION_OBJECTS:
+				return actionObjects != null && !actionObjects.isEmpty();
+			case SQLAccessControlPackage.PRIVILEGE__OBJECT:
+				return object != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (grantable: "); //$NON-NLS-1$
+		result.append(grantable);
+		result.append(", action: "); //$NON-NLS-1$
+		result.append(action);
+		result.append(", withHierarchy: "); //$NON-NLS-1$
+		result.append(withHierarchy);
+		result.append(')');
+		return result.toString();
+	}
+
+} //PrivilegeImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/impl/RoleAuthorizationImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/impl/RoleAuthorizationImpl.java
new file mode 100644
index 0000000..a81cf4a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/impl/RoleAuthorizationImpl.java
@@ -0,0 +1,458 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.accesscontrol.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.Role;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.RoleAuthorization;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage;
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Role Authorization</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.accesscontrol.impl.RoleAuthorizationImpl#isGrantable <em>Grantable</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.accesscontrol.impl.RoleAuthorizationImpl#getRole <em>Role</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.accesscontrol.impl.RoleAuthorizationImpl#getGrantee <em>Grantee</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.accesscontrol.impl.RoleAuthorizationImpl#getGrantor <em>Grantor</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class RoleAuthorizationImpl extends SQLObjectImpl implements RoleAuthorization {
+	/**
+	 * The default value of the '{@link #isGrantable() <em>Grantable</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isGrantable()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean GRANTABLE_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isGrantable() <em>Grantable</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isGrantable()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean grantable = GRANTABLE_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getRole() <em>Role</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRole()
+	 * @generated
+	 * @ordered
+	 */
+	protected Role role;
+
+	/**
+	 * The cached value of the '{@link #getGrantee() <em>Grantee</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getGrantee()
+	 * @generated
+	 * @ordered
+	 */
+	protected AuthorizationIdentifier grantee;
+
+	/**
+	 * The cached value of the '{@link #getGrantor() <em>Grantor</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getGrantor()
+	 * @generated
+	 * @ordered
+	 */
+	protected AuthorizationIdentifier grantor;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected RoleAuthorizationImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLAccessControlPackage.Literals.ROLE_AUTHORIZATION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isGrantable() {
+		return grantable;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setGrantable(boolean newGrantable) {
+		boolean oldGrantable = grantable;
+		grantable = newGrantable;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLAccessControlPackage.ROLE_AUTHORIZATION__GRANTABLE, oldGrantable, grantable));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Role getRole() {
+		if (role != null && role.eIsProxy()) {
+			InternalEObject oldRole = (InternalEObject)role;
+			role = (Role)eResolveProxy(oldRole);
+			if (role != oldRole) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SQLAccessControlPackage.ROLE_AUTHORIZATION__ROLE, oldRole, role));
+			}
+		}
+		return role;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Role basicGetRole() {
+		return role;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetRole(Role newRole, NotificationChain msgs) {
+		Role oldRole = role;
+		role = newRole;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLAccessControlPackage.ROLE_AUTHORIZATION__ROLE, oldRole, newRole);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setRole(Role newRole) {
+		if (newRole != role) {
+			NotificationChain msgs = null;
+			if (role != null)
+				msgs = ((InternalEObject)role).eInverseRemove(this, SQLAccessControlPackage.ROLE__ROLE_AUTHORIZATION, Role.class, msgs);
+			if (newRole != null)
+				msgs = ((InternalEObject)newRole).eInverseAdd(this, SQLAccessControlPackage.ROLE__ROLE_AUTHORIZATION, Role.class, msgs);
+			msgs = basicSetRole(newRole, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLAccessControlPackage.ROLE_AUTHORIZATION__ROLE, newRole, newRole));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AuthorizationIdentifier getGrantee() {
+		if (grantee != null && grantee.eIsProxy()) {
+			InternalEObject oldGrantee = (InternalEObject)grantee;
+			grantee = (AuthorizationIdentifier)eResolveProxy(oldGrantee);
+			if (grantee != oldGrantee) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SQLAccessControlPackage.ROLE_AUTHORIZATION__GRANTEE, oldGrantee, grantee));
+			}
+		}
+		return grantee;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AuthorizationIdentifier basicGetGrantee() {
+		return grantee;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetGrantee(AuthorizationIdentifier newGrantee, NotificationChain msgs) {
+		AuthorizationIdentifier oldGrantee = grantee;
+		grantee = newGrantee;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLAccessControlPackage.ROLE_AUTHORIZATION__GRANTEE, oldGrantee, newGrantee);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setGrantee(AuthorizationIdentifier newGrantee) {
+		if (newGrantee != grantee) {
+			NotificationChain msgs = null;
+			if (grantee != null)
+				msgs = ((InternalEObject)grantee).eInverseRemove(this, SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__RECEIVED_ROLE_AUTHORIZATION, AuthorizationIdentifier.class, msgs);
+			if (newGrantee != null)
+				msgs = ((InternalEObject)newGrantee).eInverseAdd(this, SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__RECEIVED_ROLE_AUTHORIZATION, AuthorizationIdentifier.class, msgs);
+			msgs = basicSetGrantee(newGrantee, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLAccessControlPackage.ROLE_AUTHORIZATION__GRANTEE, newGrantee, newGrantee));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AuthorizationIdentifier getGrantor() {
+		if (grantor != null && grantor.eIsProxy()) {
+			InternalEObject oldGrantor = (InternalEObject)grantor;
+			grantor = (AuthorizationIdentifier)eResolveProxy(oldGrantor);
+			if (grantor != oldGrantor) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SQLAccessControlPackage.ROLE_AUTHORIZATION__GRANTOR, oldGrantor, grantor));
+			}
+		}
+		return grantor;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AuthorizationIdentifier basicGetGrantor() {
+		return grantor;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetGrantor(AuthorizationIdentifier newGrantor, NotificationChain msgs) {
+		AuthorizationIdentifier oldGrantor = grantor;
+		grantor = newGrantor;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLAccessControlPackage.ROLE_AUTHORIZATION__GRANTOR, oldGrantor, newGrantor);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setGrantor(AuthorizationIdentifier newGrantor) {
+		if (newGrantor != grantor) {
+			NotificationChain msgs = null;
+			if (grantor != null)
+				msgs = ((InternalEObject)grantor).eInverseRemove(this, SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__GRANTED_ROLE_AUTHORIZATION, AuthorizationIdentifier.class, msgs);
+			if (newGrantor != null)
+				msgs = ((InternalEObject)newGrantor).eInverseAdd(this, SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__GRANTED_ROLE_AUTHORIZATION, AuthorizationIdentifier.class, msgs);
+			msgs = basicSetGrantor(newGrantor, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLAccessControlPackage.ROLE_AUTHORIZATION__GRANTOR, newGrantor, newGrantor));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLAccessControlPackage.ROLE_AUTHORIZATION__ROLE:
+				if (role != null)
+					msgs = ((InternalEObject)role).eInverseRemove(this, SQLAccessControlPackage.ROLE__ROLE_AUTHORIZATION, Role.class, msgs);
+				return basicSetRole((Role)otherEnd, msgs);
+			case SQLAccessControlPackage.ROLE_AUTHORIZATION__GRANTEE:
+				if (grantee != null)
+					msgs = ((InternalEObject)grantee).eInverseRemove(this, SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__RECEIVED_ROLE_AUTHORIZATION, AuthorizationIdentifier.class, msgs);
+				return basicSetGrantee((AuthorizationIdentifier)otherEnd, msgs);
+			case SQLAccessControlPackage.ROLE_AUTHORIZATION__GRANTOR:
+				if (grantor != null)
+					msgs = ((InternalEObject)grantor).eInverseRemove(this, SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__GRANTED_ROLE_AUTHORIZATION, AuthorizationIdentifier.class, msgs);
+				return basicSetGrantor((AuthorizationIdentifier)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLAccessControlPackage.ROLE_AUTHORIZATION__ROLE:
+				return basicSetRole(null, msgs);
+			case SQLAccessControlPackage.ROLE_AUTHORIZATION__GRANTEE:
+				return basicSetGrantee(null, msgs);
+			case SQLAccessControlPackage.ROLE_AUTHORIZATION__GRANTOR:
+				return basicSetGrantor(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLAccessControlPackage.ROLE_AUTHORIZATION__GRANTABLE:
+				return isGrantable() ? Boolean.TRUE : Boolean.FALSE;
+			case SQLAccessControlPackage.ROLE_AUTHORIZATION__ROLE:
+				if (resolve) return getRole();
+				return basicGetRole();
+			case SQLAccessControlPackage.ROLE_AUTHORIZATION__GRANTEE:
+				if (resolve) return getGrantee();
+				return basicGetGrantee();
+			case SQLAccessControlPackage.ROLE_AUTHORIZATION__GRANTOR:
+				if (resolve) return getGrantor();
+				return basicGetGrantor();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLAccessControlPackage.ROLE_AUTHORIZATION__GRANTABLE:
+				setGrantable(((Boolean)newValue).booleanValue());
+				return;
+			case SQLAccessControlPackage.ROLE_AUTHORIZATION__ROLE:
+				setRole((Role)newValue);
+				return;
+			case SQLAccessControlPackage.ROLE_AUTHORIZATION__GRANTEE:
+				setGrantee((AuthorizationIdentifier)newValue);
+				return;
+			case SQLAccessControlPackage.ROLE_AUTHORIZATION__GRANTOR:
+				setGrantor((AuthorizationIdentifier)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLAccessControlPackage.ROLE_AUTHORIZATION__GRANTABLE:
+				setGrantable(GRANTABLE_EDEFAULT);
+				return;
+			case SQLAccessControlPackage.ROLE_AUTHORIZATION__ROLE:
+				setRole((Role)null);
+				return;
+			case SQLAccessControlPackage.ROLE_AUTHORIZATION__GRANTEE:
+				setGrantee((AuthorizationIdentifier)null);
+				return;
+			case SQLAccessControlPackage.ROLE_AUTHORIZATION__GRANTOR:
+				setGrantor((AuthorizationIdentifier)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLAccessControlPackage.ROLE_AUTHORIZATION__GRANTABLE:
+				return grantable != GRANTABLE_EDEFAULT;
+			case SQLAccessControlPackage.ROLE_AUTHORIZATION__ROLE:
+				return role != null;
+			case SQLAccessControlPackage.ROLE_AUTHORIZATION__GRANTEE:
+				return grantee != null;
+			case SQLAccessControlPackage.ROLE_AUTHORIZATION__GRANTOR:
+				return grantor != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (grantable: "); //$NON-NLS-1$
+		result.append(grantable);
+		result.append(')');
+		return result.toString();
+	}
+
+} //RoleAuthorizationImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/impl/RoleImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/impl/RoleImpl.java
new file mode 100644
index 0000000..93110b5
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/impl/RoleImpl.java
@@ -0,0 +1,161 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.accesscontrol.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.accesscontrol.Role;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.RoleAuthorization;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Role</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.accesscontrol.impl.RoleImpl#getRoleAuthorization <em>Role Authorization</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class RoleImpl extends AuthorizationIdentifierImpl implements Role {
+	/**
+	 * The cached value of the '{@link #getRoleAuthorization() <em>Role Authorization</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRoleAuthorization()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList roleAuthorization;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected RoleImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLAccessControlPackage.Literals.ROLE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getRoleAuthorization() {
+		if (roleAuthorization == null) {
+			roleAuthorization = new EObjectWithInverseResolvingEList(RoleAuthorization.class, this, SQLAccessControlPackage.ROLE__ROLE_AUTHORIZATION, SQLAccessControlPackage.ROLE_AUTHORIZATION__ROLE);
+		}
+		return roleAuthorization;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLAccessControlPackage.ROLE__ROLE_AUTHORIZATION:
+				return ((InternalEList)getRoleAuthorization()).basicAdd(otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLAccessControlPackage.ROLE__ROLE_AUTHORIZATION:
+				return ((InternalEList)getRoleAuthorization()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLAccessControlPackage.ROLE__ROLE_AUTHORIZATION:
+				return getRoleAuthorization();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLAccessControlPackage.ROLE__ROLE_AUTHORIZATION:
+				getRoleAuthorization().clear();
+				getRoleAuthorization().addAll((Collection)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLAccessControlPackage.ROLE__ROLE_AUTHORIZATION:
+				getRoleAuthorization().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLAccessControlPackage.ROLE__ROLE_AUTHORIZATION:
+				return roleAuthorization != null && !roleAuthorization.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //RoleImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/impl/SQLAccessControlFactoryImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/impl/SQLAccessControlFactoryImpl.java
new file mode 100644
index 0000000..9142441
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/impl/SQLAccessControlFactoryImpl.java
@@ -0,0 +1,144 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.accesscontrol.impl;
+
+import org.eclipse.datatools.modelbase.sql.accesscontrol.*;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SQLAccessControlFactoryImpl extends EFactoryImpl implements SQLAccessControlFactory {
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static SQLAccessControlFactory init() {
+		try {
+			SQLAccessControlFactory theSQLAccessControlFactory = (SQLAccessControlFactory)EPackage.Registry.INSTANCE.getEFactory("http:///org/eclipse/datatools/modelbase/sql/accesscontrol.ecore"); //$NON-NLS-1$ 
+			if (theSQLAccessControlFactory != null) {
+				return theSQLAccessControlFactory;
+			}
+		}
+		catch (Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new SQLAccessControlFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLAccessControlFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+			case SQLAccessControlPackage.PRIVILEGE: return createPrivilege();
+			case SQLAccessControlPackage.GROUP: return createGroup();
+			case SQLAccessControlPackage.USER: return createUser();
+			case SQLAccessControlPackage.ROLE: return createRole();
+			case SQLAccessControlPackage.ROLE_AUTHORIZATION: return createRoleAuthorization();
+			default:
+				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Privilege createPrivilege() {
+		PrivilegeImpl privilege = new PrivilegeImpl();
+		return privilege;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Group createGroup() {
+		GroupImpl group = new GroupImpl();
+		return group;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public User createUser() {
+		UserImpl user = new UserImpl();
+		return user;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Role createRole() {
+		RoleImpl role = new RoleImpl();
+		return role;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public RoleAuthorization createRoleAuthorization() {
+		RoleAuthorizationImpl roleAuthorization = new RoleAuthorizationImpl();
+		return roleAuthorization;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLAccessControlPackage getSQLAccessControlPackage() {
+		return (SQLAccessControlPackage)getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @deprecated
+	 * @generated
+	 */
+	public static SQLAccessControlPackage getPackage() {
+		return SQLAccessControlPackage.eINSTANCE;
+	}
+
+} //SQLAccessControlFactoryImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/impl/SQLAccessControlPackageImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/impl/SQLAccessControlPackageImpl.java
new file mode 100644
index 0000000..5eded70
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/impl/SQLAccessControlPackageImpl.java
@@ -0,0 +1,555 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.accesscontrol.impl;
+
+import org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.DoubleObjectPrivilege;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.Group;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.Role;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.RoleAuthorization;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlFactory;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.TablePrivilege;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.User;
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;
+import org.eclipse.datatools.modelbase.sql.constraints.impl.SQLConstraintsPackageImpl;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl;
+import org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsPackage;
+import org.eclipse.datatools.modelbase.sql.expressions.impl.SQLExpressionsPackageImpl;
+import org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage;
+import org.eclipse.datatools.modelbase.sql.routines.impl.SQLRoutinesPackageImpl;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLSchemaPackageImpl;
+import org.eclipse.datatools.modelbase.sql.statements.SQLStatementsPackage;
+import org.eclipse.datatools.modelbase.sql.statements.impl.SQLStatementsPackageImpl;
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+import org.eclipse.datatools.modelbase.sql.tables.impl.SQLTablesPackageImpl;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcorePackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.emf.ecore.impl.EcorePackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SQLAccessControlPackageImpl extends EPackageImpl implements SQLAccessControlPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass authorizationIdentifierEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass privilegeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass groupEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass userEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass roleEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass roleAuthorizationEClass = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with
+	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+	 * package URI value.
+	 * <p>Note: the correct way to create the package is via the static
+	 * factory method {@link #init init()}, which also performs
+	 * initialization of the package, or returns the registered package,
+	 * if one already exists.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private SQLAccessControlPackageImpl() {
+		super(eNS_URI, SQLAccessControlFactory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this
+	 * model, and for any others upon which it depends.  Simple
+	 * dependencies are satisfied by calling this method on all
+	 * dependent packages before doing anything else.  This method drives
+	 * initialization for interdependent packages directly, in parallel
+	 * with this package, itself.
+	 * <p>Of this package and its interdependencies, all packages which
+	 * have not yet been registered by their URI values are first created
+	 * and registered.  The packages are then initialized in two steps:
+	 * meta-model objects for all of the packages are created before any
+	 * are initialized, since one package's meta-model objects may refer to
+	 * those of another.
+	 * <p>Invocation of this method will not affect any packages that have
+	 * already been initialized.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static SQLAccessControlPackage init() {
+		if (isInited) return (SQLAccessControlPackage)EPackage.Registry.INSTANCE.getEPackage(SQLAccessControlPackage.eNS_URI);
+
+		// Obtain or create and register package
+		SQLAccessControlPackageImpl theSQLAccessControlPackage = (SQLAccessControlPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(eNS_URI) instanceof SQLAccessControlPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(eNS_URI) : new SQLAccessControlPackageImpl());
+
+		isInited = true;
+
+		// Initialize simple dependencies
+		EcorePackage.eINSTANCE.eClass();
+
+		// Obtain or create and register interdependencies
+		SQLSchemaPackageImpl theSQLSchemaPackage = (SQLSchemaPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLSchemaPackage.eNS_URI) instanceof SQLSchemaPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLSchemaPackage.eNS_URI) : SQLSchemaPackage.eINSTANCE);
+		SQLConstraintsPackageImpl theSQLConstraintsPackage = (SQLConstraintsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLConstraintsPackage.eNS_URI) instanceof SQLConstraintsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLConstraintsPackage.eNS_URI) : SQLConstraintsPackage.eINSTANCE);
+		SQLDataTypesPackageImpl theSQLDataTypesPackage = (SQLDataTypesPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLDataTypesPackage.eNS_URI) instanceof SQLDataTypesPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLDataTypesPackage.eNS_URI) : SQLDataTypesPackage.eINSTANCE);
+		SQLExpressionsPackageImpl theSQLExpressionsPackage = (SQLExpressionsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLExpressionsPackage.eNS_URI) instanceof SQLExpressionsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLExpressionsPackage.eNS_URI) : SQLExpressionsPackage.eINSTANCE);
+		SQLRoutinesPackageImpl theSQLRoutinesPackage = (SQLRoutinesPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLRoutinesPackage.eNS_URI) instanceof SQLRoutinesPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLRoutinesPackage.eNS_URI) : SQLRoutinesPackage.eINSTANCE);
+		SQLStatementsPackageImpl theSQLStatementsPackage = (SQLStatementsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLStatementsPackage.eNS_URI) instanceof SQLStatementsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLStatementsPackage.eNS_URI) : SQLStatementsPackage.eINSTANCE);
+		SQLTablesPackageImpl theSQLTablesPackage = (SQLTablesPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLTablesPackage.eNS_URI) instanceof SQLTablesPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLTablesPackage.eNS_URI) : SQLTablesPackage.eINSTANCE);
+
+		// Create package meta-data objects
+		theSQLAccessControlPackage.createPackageContents();
+		theSQLSchemaPackage.createPackageContents();
+		theSQLConstraintsPackage.createPackageContents();
+		theSQLDataTypesPackage.createPackageContents();
+		theSQLExpressionsPackage.createPackageContents();
+		theSQLRoutinesPackage.createPackageContents();
+		theSQLStatementsPackage.createPackageContents();
+		theSQLTablesPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theSQLAccessControlPackage.initializePackageContents();
+		theSQLSchemaPackage.initializePackageContents();
+		theSQLConstraintsPackage.initializePackageContents();
+		theSQLDataTypesPackage.initializePackageContents();
+		theSQLExpressionsPackage.initializePackageContents();
+		theSQLRoutinesPackage.initializePackageContents();
+		theSQLStatementsPackage.initializePackageContents();
+		theSQLTablesPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theSQLAccessControlPackage.freeze();
+
+		return theSQLAccessControlPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getAuthorizationIdentifier() {
+		return authorizationIdentifierEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getAuthorizationIdentifier_OwnedSchema() {
+		return (EReference)authorizationIdentifierEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getAuthorizationIdentifier_Database() {
+		return (EReference)authorizationIdentifierEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getAuthorizationIdentifier_ReceivedRoleAuthorization() {
+		return (EReference)authorizationIdentifierEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getAuthorizationIdentifier_GrantedRoleAuthorization() {
+		return (EReference)authorizationIdentifierEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getAuthorizationIdentifier_GrantedPrivilege() {
+		return (EReference)authorizationIdentifierEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getAuthorizationIdentifier_ReceivedPrivilege() {
+		return (EReference)authorizationIdentifierEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getPrivilege() {
+		return privilegeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPrivilege_Grantable() {
+		return (EAttribute)privilegeEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPrivilege_Action() {
+		return (EAttribute)privilegeEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPrivilege_WithHierarchy() {
+		return (EAttribute)privilegeEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getPrivilege_Grantor() {
+		return (EReference)privilegeEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getPrivilege_Grantee() {
+		return (EReference)privilegeEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getPrivilege_ActionObjects() {
+		return (EReference)privilegeEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getPrivilege_Object() {
+		return (EReference)privilegeEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getGroup() {
+		return groupEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getGroup_User() {
+		return (EReference)groupEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getUser() {
+		return userEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getUser_Group() {
+		return (EReference)userEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getRole() {
+		return roleEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getRole_RoleAuthorization() {
+		return (EReference)roleEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getRoleAuthorization() {
+		return roleAuthorizationEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getRoleAuthorization_Grantable() {
+		return (EAttribute)roleAuthorizationEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getRoleAuthorization_Role() {
+		return (EReference)roleAuthorizationEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getRoleAuthorization_Grantee() {
+		return (EReference)roleAuthorizationEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getRoleAuthorization_Grantor() {
+		return (EReference)roleAuthorizationEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLAccessControlFactory getSQLAccessControlFactory() {
+		return (SQLAccessControlFactory)getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package.  This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated) return;
+		isCreated = true;
+
+		// Create classes and their features
+		authorizationIdentifierEClass = createEClass(AUTHORIZATION_IDENTIFIER);
+		createEReference(authorizationIdentifierEClass, AUTHORIZATION_IDENTIFIER__OWNED_SCHEMA);
+		createEReference(authorizationIdentifierEClass, AUTHORIZATION_IDENTIFIER__DATABASE);
+		createEReference(authorizationIdentifierEClass, AUTHORIZATION_IDENTIFIER__RECEIVED_ROLE_AUTHORIZATION);
+		createEReference(authorizationIdentifierEClass, AUTHORIZATION_IDENTIFIER__GRANTED_ROLE_AUTHORIZATION);
+		createEReference(authorizationIdentifierEClass, AUTHORIZATION_IDENTIFIER__GRANTED_PRIVILEGE);
+		createEReference(authorizationIdentifierEClass, AUTHORIZATION_IDENTIFIER__RECEIVED_PRIVILEGE);
+
+		privilegeEClass = createEClass(PRIVILEGE);
+		createEAttribute(privilegeEClass, PRIVILEGE__GRANTABLE);
+		createEAttribute(privilegeEClass, PRIVILEGE__ACTION);
+		createEAttribute(privilegeEClass, PRIVILEGE__WITH_HIERARCHY);
+		createEReference(privilegeEClass, PRIVILEGE__GRANTOR);
+		createEReference(privilegeEClass, PRIVILEGE__GRANTEE);
+		createEReference(privilegeEClass, PRIVILEGE__ACTION_OBJECTS);
+		createEReference(privilegeEClass, PRIVILEGE__OBJECT);
+
+		groupEClass = createEClass(GROUP);
+		createEReference(groupEClass, GROUP__USER);
+
+		userEClass = createEClass(USER);
+		createEReference(userEClass, USER__GROUP);
+
+		roleEClass = createEClass(ROLE);
+		createEReference(roleEClass, ROLE__ROLE_AUTHORIZATION);
+
+		roleAuthorizationEClass = createEClass(ROLE_AUTHORIZATION);
+		createEAttribute(roleAuthorizationEClass, ROLE_AUTHORIZATION__GRANTABLE);
+		createEReference(roleAuthorizationEClass, ROLE_AUTHORIZATION__ROLE);
+		createEReference(roleAuthorizationEClass, ROLE_AUTHORIZATION__GRANTEE);
+		createEReference(roleAuthorizationEClass, ROLE_AUTHORIZATION__GRANTOR);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model.  This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized) return;
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Obtain other dependent packages
+		SQLSchemaPackage theSQLSchemaPackage = (SQLSchemaPackage)EPackage.Registry.INSTANCE.getEPackage(SQLSchemaPackage.eNS_URI);
+
+		// Add supertypes to classes
+		authorizationIdentifierEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+		privilegeEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+		groupEClass.getESuperTypes().add(this.getAuthorizationIdentifier());
+		userEClass.getESuperTypes().add(this.getAuthorizationIdentifier());
+		roleEClass.getESuperTypes().add(this.getAuthorizationIdentifier());
+		roleAuthorizationEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+
+		// Initialize classes and features; add operations and parameters
+		initEClass(authorizationIdentifierEClass, AuthorizationIdentifier.class, "AuthorizationIdentifier", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEReference(getAuthorizationIdentifier_OwnedSchema(), theSQLSchemaPackage.getSchema(), theSQLSchemaPackage.getSchema_Owner(), "ownedSchema", null, 0, -1, AuthorizationIdentifier.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getAuthorizationIdentifier_Database(), theSQLSchemaPackage.getDatabase(), theSQLSchemaPackage.getDatabase_AuthorizationIds(), "Database", null, 1, 1, AuthorizationIdentifier.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getAuthorizationIdentifier_ReceivedRoleAuthorization(), this.getRoleAuthorization(), this.getRoleAuthorization_Grantee(), "receivedRoleAuthorization", null, 0, -1, AuthorizationIdentifier.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getAuthorizationIdentifier_GrantedRoleAuthorization(), this.getRoleAuthorization(), this.getRoleAuthorization_Grantor(), "grantedRoleAuthorization", null, 0, -1, AuthorizationIdentifier.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getAuthorizationIdentifier_GrantedPrivilege(), this.getPrivilege(), this.getPrivilege_Grantor(), "grantedPrivilege", null, 0, -1, AuthorizationIdentifier.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getAuthorizationIdentifier_ReceivedPrivilege(), this.getPrivilege(), this.getPrivilege_Grantee(), "receivedPrivilege", null, 0, -1, AuthorizationIdentifier.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(privilegeEClass, Privilege.class, "Privilege", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getPrivilege_Grantable(), ecorePackage.getEBoolean(), "grantable", null, 0, 1, Privilege.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getPrivilege_Action(), ecorePackage.getEString(), "action", null, 0, 1, Privilege.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getPrivilege_WithHierarchy(), ecorePackage.getEBoolean(), "withHierarchy", null, 0, 1, Privilege.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getPrivilege_Grantor(), this.getAuthorizationIdentifier(), this.getAuthorizationIdentifier_GrantedPrivilege(), "grantor", null, 1, 1, Privilege.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getPrivilege_Grantee(), this.getAuthorizationIdentifier(), this.getAuthorizationIdentifier_ReceivedPrivilege(), "grantee", null, 0, 1, Privilege.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getPrivilege_ActionObjects(), theSQLSchemaPackage.getSQLObject(), null, "actionObjects", null, 0, -1, Privilege.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getPrivilege_Object(), theSQLSchemaPackage.getSQLObject(), theSQLSchemaPackage.getSQLObject_Privileges(), "object", null, 1, 1, Privilege.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(groupEClass, Group.class, "Group", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEReference(getGroup_User(), this.getUser(), this.getUser_Group(), "user", null, 0, -1, Group.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(userEClass, User.class, "User", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEReference(getUser_Group(), this.getGroup(), this.getGroup_User(), "group", null, 0, -1, User.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(roleEClass, Role.class, "Role", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEReference(getRole_RoleAuthorization(), this.getRoleAuthorization(), this.getRoleAuthorization_Role(), "roleAuthorization", null, 1, -1, Role.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(roleAuthorizationEClass, RoleAuthorization.class, "RoleAuthorization", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getRoleAuthorization_Grantable(), ecorePackage.getEBoolean(), "grantable", null, 0, 1, RoleAuthorization.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getRoleAuthorization_Role(), this.getRole(), this.getRole_RoleAuthorization(), "role", null, 1, 1, RoleAuthorization.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getRoleAuthorization_Grantee(), this.getAuthorizationIdentifier(), this.getAuthorizationIdentifier_ReceivedRoleAuthorization(), "grantee", null, 1, 1, RoleAuthorization.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getRoleAuthorization_Grantor(), this.getAuthorizationIdentifier(), this.getAuthorizationIdentifier_GrantedRoleAuthorization(), "grantor", null, 1, 1, RoleAuthorization.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		// Create resource
+		createResource(eNS_URI);
+	}
+
+} //SQLAccessControlPackageImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/impl/UserImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/impl/UserImpl.java
new file mode 100644
index 0000000..206a9b5
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/impl/UserImpl.java
@@ -0,0 +1,162 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.accesscontrol.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.accesscontrol.Group;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.User;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>User</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.accesscontrol.impl.UserImpl#getGroup <em>Group</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class UserImpl extends AuthorizationIdentifierImpl implements User {
+	/**
+	 * The cached value of the '{@link #getGroup() <em>Group</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getGroup()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList group;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected UserImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLAccessControlPackage.Literals.USER;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getGroup() {
+		if (group == null) {
+			group = new EObjectWithInverseResolvingEList.ManyInverse(Group.class, this, SQLAccessControlPackage.USER__GROUP, SQLAccessControlPackage.GROUP__USER);
+		}
+		return group;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLAccessControlPackage.USER__GROUP:
+				return ((InternalEList)getGroup()).basicAdd(otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLAccessControlPackage.USER__GROUP:
+				return ((InternalEList)getGroup()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLAccessControlPackage.USER__GROUP:
+				return getGroup();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLAccessControlPackage.USER__GROUP:
+				getGroup().clear();
+				getGroup().addAll((Collection)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLAccessControlPackage.USER__GROUP:
+				getGroup().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLAccessControlPackage.USER__GROUP:
+				return group != null && !group.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //UserImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/util/SQLAccessControlAdapterFactory.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/util/SQLAccessControlAdapterFactory.java
new file mode 100644
index 0000000..285c940
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/util/SQLAccessControlAdapterFactory.java
@@ -0,0 +1,263 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.accesscontrol.util;
+
+import java.security.acl.Group;
+
+import org.eclipse.datatools.modelbase.sql.accesscontrol.*;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+import org.eclipse.emf.ecore.EModelElement;
+import org.eclipse.emf.ecore.ENamedElement;
+import org.eclipse.emf.ecore.EObject;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage
+ * @generated
+ */
+public class SQLAccessControlAdapterFactory extends AdapterFactoryImpl {
+	/**
+	 * The cached model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static SQLAccessControlPackage modelPackage;
+
+	/**
+	 * Creates an instance of the adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLAccessControlAdapterFactory() {
+		if (modelPackage == null) {
+			modelPackage = SQLAccessControlPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Returns whether this factory is applicable for the type of the object.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+	 * <!-- end-user-doc -->
+	 * @return whether this factory is applicable for the type of the object.
+	 * @generated
+	 */
+	public boolean isFactoryForType(Object object) {
+		if (object == modelPackage) {
+			return true;
+		}
+		if (object instanceof EObject) {
+			return ((EObject)object).eClass().getEPackage() == modelPackage;
+		}
+		return false;
+	}
+
+	/**
+	 * The switch that delegates to the <code>createXXX</code> methods.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SQLAccessControlSwitch modelSwitch =
+		new SQLAccessControlSwitch() {
+			public Object caseAuthorizationIdentifier(AuthorizationIdentifier object) {
+				return createAuthorizationIdentifierAdapter();
+			}
+			public Object casePrivilege(Privilege object) {
+				return createPrivilegeAdapter();
+			}
+			public Object caseGroup(Group object) {
+				return createGroupAdapter();
+			}
+			public Object caseUser(User object) {
+				return createUserAdapter();
+			}
+			public Object caseRole(Role object) {
+				return createRoleAdapter();
+			}
+			public Object caseRoleAuthorization(RoleAuthorization object) {
+				return createRoleAuthorizationAdapter();
+			}
+			public Object caseEModelElement(EModelElement object) {
+				return createEModelElementAdapter();
+			}
+			public Object caseENamedElement(ENamedElement object) {
+				return createENamedElementAdapter();
+			}
+			public Object caseSQLObject(SQLObject object) {
+				return createSQLObjectAdapter();
+			}
+			public Object defaultCase(EObject object) {
+				return createEObjectAdapter();
+			}
+		};
+
+	/**
+	 * Creates an adapter for the <code>target</code>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param target the object to adapt.
+	 * @return the adapter for the <code>target</code>.
+	 * @generated
+	 */
+	public Adapter createAdapter(Notifier target) {
+		return (Adapter)modelSwitch.doSwitch((EObject)target);
+	}
+
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier <em>Authorization Identifier</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier
+	 * @generated
+	 */
+	public Adapter createAuthorizationIdentifierAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege <em>Privilege</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege
+	 * @generated
+	 */
+	public Adapter createPrivilegeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.Group <em>Group</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.Group
+	 * @generated
+	 */
+	public Adapter createGroupAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.User <em>User</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.User
+	 * @generated
+	 */
+	public Adapter createUserAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.Role <em>Role</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.Role
+	 * @generated
+	 */
+	public Adapter createRoleAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.RoleAuthorization <em>Role Authorization</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.RoleAuthorization
+	 * @generated
+	 */
+	public Adapter createRoleAuthorizationAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecore.EModelElement <em>EModel Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.emf.ecore.EModelElement
+	 * @generated
+	 */
+	public Adapter createEModelElementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecore.ENamedElement <em>ENamed Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.emf.ecore.ENamedElement
+	 * @generated
+	 */
+	public Adapter createENamedElementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.schema.SQLObject <em>SQL Object</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLObject
+	 * @generated
+	 */
+	public Adapter createSQLObjectAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for the default case.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @generated
+	 */
+	public Adapter createEObjectAdapter() {
+		return null;
+	}
+
+} //SQLAccessControlAdapterFactory
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/util/SQLAccessControlSwitch.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/util/SQLAccessControlSwitch.java
new file mode 100644
index 0000000..1c29f8c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/accesscontrol/util/SQLAccessControlSwitch.java
@@ -0,0 +1,308 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.accesscontrol.util;
+
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.accesscontrol.*;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EModelElement;
+import org.eclipse.emf.ecore.ENamedElement;
+import org.eclipse.emf.ecore.EObject;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage
+ * @generated
+ */
+public class SQLAccessControlSwitch {
+	/**
+	 * The cached model package
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static SQLAccessControlPackage modelPackage;
+
+	/**
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLAccessControlSwitch() {
+		if (modelPackage == null) {
+			modelPackage = SQLAccessControlPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	public Object doSwitch(EObject theEObject) {
+		return doSwitch(theEObject.eClass(), theEObject);
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	protected Object doSwitch(EClass theEClass, EObject theEObject) {
+		if (theEClass.eContainer() == modelPackage) {
+			return doSwitch(theEClass.getClassifierID(), theEObject);
+		}
+		else {
+			List eSuperTypes = theEClass.getESuperTypes();
+			return
+				eSuperTypes.isEmpty() ?
+					defaultCase(theEObject) :
+					doSwitch((EClass)eSuperTypes.get(0), theEObject);
+		}
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	protected Object doSwitch(int classifierID, EObject theEObject) {
+		switch (classifierID) {
+			case SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER: {
+				AuthorizationIdentifier authorizationIdentifier = (AuthorizationIdentifier)theEObject;
+				Object result = caseAuthorizationIdentifier(authorizationIdentifier);
+				if (result == null) result = caseSQLObject(authorizationIdentifier);
+				if (result == null) result = caseENamedElement(authorizationIdentifier);
+				if (result == null) result = caseEModelElement(authorizationIdentifier);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLAccessControlPackage.PRIVILEGE: {
+				Privilege privilege = (Privilege)theEObject;
+				Object result = casePrivilege(privilege);
+				if (result == null) result = caseSQLObject(privilege);
+				if (result == null) result = caseENamedElement(privilege);
+				if (result == null) result = caseEModelElement(privilege);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLAccessControlPackage.GROUP: {
+				Group group = (Group)theEObject;
+				Object result = caseGroup(group);
+				if (result == null) result = caseAuthorizationIdentifier(group);
+				if (result == null) result = caseSQLObject(group);
+				if (result == null) result = caseENamedElement(group);
+				if (result == null) result = caseEModelElement(group);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLAccessControlPackage.USER: {
+				User user = (User)theEObject;
+				Object result = caseUser(user);
+				if (result == null) result = caseAuthorizationIdentifier(user);
+				if (result == null) result = caseSQLObject(user);
+				if (result == null) result = caseENamedElement(user);
+				if (result == null) result = caseEModelElement(user);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLAccessControlPackage.ROLE: {
+				Role role = (Role)theEObject;
+				Object result = caseRole(role);
+				if (result == null) result = caseAuthorizationIdentifier(role);
+				if (result == null) result = caseSQLObject(role);
+				if (result == null) result = caseENamedElement(role);
+				if (result == null) result = caseEModelElement(role);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLAccessControlPackage.ROLE_AUTHORIZATION: {
+				RoleAuthorization roleAuthorization = (RoleAuthorization)theEObject;
+				Object result = caseRoleAuthorization(roleAuthorization);
+				if (result == null) result = caseSQLObject(roleAuthorization);
+				if (result == null) result = caseENamedElement(roleAuthorization);
+				if (result == null) result = caseEModelElement(roleAuthorization);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			default: return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Authorization Identifier</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Authorization Identifier</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseAuthorizationIdentifier(AuthorizationIdentifier object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Privilege</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Privilege</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object casePrivilege(Privilege object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Group</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Group</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseGroup(Group object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>User</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>User</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseUser(User object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Role</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Role</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseRole(Role object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Role Authorization</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Role Authorization</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseRoleAuthorization(RoleAuthorization object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EModel Element</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>EModel Element</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseEModelElement(EModelElement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>ENamed Element</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>ENamed Element</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseENamedElement(ENamedElement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>SQL Object</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>SQL Object</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseSQLObject(SQLObject object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch, but this is the last case anyway.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+	 * @generated
+	 */
+	public Object defaultCase(EObject object) {
+		return null;
+	}
+
+} //SQLAccessControlSwitch
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/Assertion.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/Assertion.java
new file mode 100644
index 0000000..07c5e75
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/Assertion.java
@@ -0,0 +1,112 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.constraints;
+
+import org.eclipse.datatools.modelbase.sql.expressions.SearchCondition;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Assertion</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.17.4 Assertions,
+ * 5WD-02-Foundation-2002-12 11.37 <assertion definition>
+ * 
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.Assertion#getSearchCondition <em>Search Condition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.Assertion#getSchema <em>Schema</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.Assertion#getConstrainedTables <em>Constrained Tables</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage#getAssertion()
+ * @model
+ * @generated
+ */
+public interface Assertion extends Constraint {
+	/**
+	 * Returns the value of the '<em><b>Search Condition</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Search Condition</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Search Condition</em>' containment reference.
+	 * @see #setSearchCondition(SearchCondition)
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage#getAssertion_SearchCondition()
+	 * @model containment="true"
+	 * @generated
+	 */
+	SearchCondition getSearchCondition();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.constraints.Assertion#getSearchCondition <em>Search Condition</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Search Condition</em>' containment reference.
+	 * @see #getSearchCondition()
+	 * @generated
+	 */
+	void setSearchCondition(SearchCondition value);
+
+	/**
+	 * Returns the value of the '<em><b>Schema</b></em>' reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.schema.Schema#getAssertions <em>Assertions</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Schema</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Schema</em>' reference.
+	 * @see #setSchema(Schema)
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage#getAssertion_Schema()
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Schema#getAssertions
+	 * @model opposite="assertions" required="true"
+	 * @generated
+	 */
+	Schema getSchema();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.constraints.Assertion#getSchema <em>Schema</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Schema</em>' reference.
+	 * @see #getSchema()
+	 * @generated
+	 */
+	void setSchema(Schema value);
+
+	/**
+	 * Returns the value of the '<em><b>Constrained Tables</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.tables.BaseTable}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Constrained Tables</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Constrained Tables</em>' reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage#getAssertion_ConstrainedTables()
+	 * @model type="org.eclipse.datatools.modelbase.sql.tables.BaseTable" required="true" derived="true"
+	 * @generated
+	 */
+	EList getConstrainedTables();
+
+} // Assertion
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/CheckConstraint.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/CheckConstraint.java
new file mode 100644
index 0000000..094b53e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/CheckConstraint.java
@@ -0,0 +1,64 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.constraints;
+
+import org.eclipse.datatools.modelbase.sql.expressions.SearchCondition;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Check Constraint</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.17.2 Table constraints
+ * 
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.CheckConstraint#getSearchCondition <em>Search Condition</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage#getCheckConstraint()
+ * @model
+ * @generated
+ */
+public interface CheckConstraint extends TableConstraint {
+	/**
+	 * Returns the value of the '<em><b>Search Condition</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * Section 4.17.2
+	 * A check constraint is satisfied if and only if the specified <search condition> is not False for any row of a table.
+	 * <!-- end-model-doc -->
+	 * @return the value of the '<em>Search Condition</em>' containment reference.
+	 * @see #setSearchCondition(SearchCondition)
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage#getCheckConstraint_SearchCondition()
+	 * @model containment="true"
+	 * @generated
+	 */
+	SearchCondition getSearchCondition();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.constraints.CheckConstraint#getSearchCondition <em>Search Condition</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Search Condition</em>' containment reference.
+	 * @see #getSearchCondition()
+	 * @generated
+	 */
+	void setSearchCondition(SearchCondition value);
+
+} // CheckConstraint
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/Constraint.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/Constraint.java
new file mode 100644
index 0000000..6a87d83
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/Constraint.java
@@ -0,0 +1,123 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.constraints;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Constraint</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.17 Integrity constraints
+ * 
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.Constraint#isDeferrable <em>Deferrable</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.Constraint#isInitiallyDeferred <em>Initially Deferred</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.Constraint#isEnforced <em>Enforced</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage#getConstraint()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Constraint extends SQLObject {
+	/**
+	 * Returns the value of the '<em><b>Deferrable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * If True allows you to specify when the DBMS should check the constraint for violation (statement end or transaction end).  If False it will always be after statement end.
+	 * 
+	 * Could also be named deferralMode with values DEFERRABLE and NOT DEFERRABLE.
+	 * <!-- end-model-doc -->
+	 * @return the value of the '<em>Deferrable</em>' attribute.
+	 * @see #setDeferrable(boolean)
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage#getConstraint_Deferrable()
+	 * @model
+	 * @generated
+	 */
+	boolean isDeferrable();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.constraints.Constraint#isDeferrable <em>Deferrable</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Deferrable</em>' attribute.
+	 * @see #isDeferrable()
+	 * @generated
+	 */
+	void setDeferrable(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Initially Deferred</b></em>' attribute.
+	 * The default value is <code>"false"</code>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * If True isDeferrable must be True and constraint check time will be DEFERRED.  If False constraint check time will be IMMEDIATE.
+	 * 
+	 * Could also be named (initial)ConstraintCheckTime with values INITIALLY DEFERRED and INITIALLY IMMEDIATE.  Default value would be INITIALLY IMMEDIATE.
+	 * 
+	 * <!-- end-model-doc -->
+	 * @return the value of the '<em>Initially Deferred</em>' attribute.
+	 * @see #setInitiallyDeferred(boolean)
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage#getConstraint_InitiallyDeferred()
+	 * @model default="false"
+	 * @generated
+	 */
+	boolean isInitiallyDeferred();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.constraints.Constraint#isInitiallyDeferred <em>Initially Deferred</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Initially Deferred</em>' attribute.
+	 * @see #isInitiallyDeferred()
+	 * @generated
+	 */
+	void setInitiallyDeferred(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Enforced</b></em>' attribute.
+	 * The default value is <code>"true"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Enforced</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Enforced</em>' attribute.
+	 * @see #setEnforced(boolean)
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage#getConstraint_Enforced()
+	 * @model default="true"
+	 * @generated
+	 */
+	boolean isEnforced();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.constraints.Constraint#isEnforced <em>Enforced</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Enforced</em>' attribute.
+	 * @see #isEnforced()
+	 * @generated
+	 */
+	void setEnforced(boolean value);
+
+} // Constraint
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/ForeignKey.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/ForeignKey.java
new file mode 100644
index 0000000..21413c5
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/ForeignKey.java
@@ -0,0 +1,236 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.constraints;
+
+import org.eclipse.datatools.modelbase.sql.schema.ReferentialActionType;
+import org.eclipse.datatools.modelbase.sql.tables.BaseTable;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Foreign Key</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.17 Integrity constraints, Reference, 5WD-02-Foundation-2002-12 11.8 <referencial constraint definition>
+ * 
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.ForeignKey#getMatch <em>Match</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.ForeignKey#getOnUpdate <em>On Update</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.ForeignKey#getOnDelete <em>On Delete</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.ForeignKey#getUniqueConstraint <em>Unique Constraint</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.ForeignKey#getReferencedMembers <em>Referenced Members</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.ForeignKey#getUniqueIndex <em>Unique Index</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.ForeignKey#getReferencedTable <em>Referenced Table</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage#getForeignKey()
+ * @model
+ * @generated
+ */
+public interface ForeignKey extends ReferenceConstraint {
+	/**
+	 * Returns the value of the '<em><b>Match</b></em>' attribute.
+	 * The default value is <code>"MATCH_SIMPLE"</code>.
+	 * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.constraints.MatchType}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Match</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Match</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.MatchType
+	 * @see #setMatch(MatchType)
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage#getForeignKey_Match()
+	 * @model default="MATCH_SIMPLE"
+	 * @generated
+	 */
+	MatchType getMatch();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.constraints.ForeignKey#getMatch <em>Match</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Match</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.MatchType
+	 * @see #getMatch()
+	 * @generated
+	 */
+	void setMatch(MatchType value);
+
+	/**
+	 * Returns the value of the '<em><b>On Update</b></em>' attribute.
+	 * The default value is <code>"NO_ACTION"</code>.
+	 * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.schema.ReferentialActionType}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>On Update</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>On Update</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.ReferentialActionType
+	 * @see #setOnUpdate(ReferentialActionType)
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage#getForeignKey_OnUpdate()
+	 * @model default="NO_ACTION"
+	 * @generated
+	 */
+	ReferentialActionType getOnUpdate();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.constraints.ForeignKey#getOnUpdate <em>On Update</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>On Update</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.ReferentialActionType
+	 * @see #getOnUpdate()
+	 * @generated
+	 */
+	void setOnUpdate(ReferentialActionType value);
+
+	/**
+	 * Returns the value of the '<em><b>On Delete</b></em>' attribute.
+	 * The default value is <code>"NO_ACTION"</code>.
+	 * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.schema.ReferentialActionType}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>On Delete</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>On Delete</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.ReferentialActionType
+	 * @see #setOnDelete(ReferentialActionType)
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage#getForeignKey_OnDelete()
+	 * @model default="NO_ACTION"
+	 * @generated
+	 */
+	ReferentialActionType getOnDelete();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.constraints.ForeignKey#getOnDelete <em>On Delete</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>On Delete</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.ReferentialActionType
+	 * @see #getOnDelete()
+	 * @generated
+	 */
+	void setOnDelete(ReferentialActionType value);
+
+	/**
+	 * Returns the value of the '<em><b>Unique Constraint</b></em>' reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.constraints.UniqueConstraint#getForeignKey <em>Foreign Key</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Unique Constraint</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Unique Constraint</em>' reference.
+	 * @see #setUniqueConstraint(UniqueConstraint)
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage#getForeignKey_UniqueConstraint()
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.UniqueConstraint#getForeignKey
+	 * @model opposite="ForeignKey"
+	 * @generated
+	 */
+	UniqueConstraint getUniqueConstraint();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.constraints.ForeignKey#getUniqueConstraint <em>Unique Constraint</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Unique Constraint</em>' reference.
+	 * @see #getUniqueConstraint()
+	 * @generated
+	 */
+	void setUniqueConstraint(UniqueConstraint value);
+
+	/**
+	 * Returns the value of the '<em><b>Referenced Members</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.tables.Column}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Referenced Members</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Referenced Members</em>' reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage#getForeignKey_ReferencedMembers()
+	 * @model type="org.eclipse.datatools.modelbase.sql.tables.Column" required="true"
+	 * @generated
+	 */
+	EList getReferencedMembers();
+
+	/**
+	 * Returns the value of the '<em><b>Unique Index</b></em>' reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.constraints.Index#getForeignKey <em>Foreign Key</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Unique Index</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Unique Index</em>' reference.
+	 * @see #setUniqueIndex(Index)
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage#getForeignKey_UniqueIndex()
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.Index#getForeignKey
+	 * @model opposite="ForeignKey"
+	 * @generated
+	 */
+	Index getUniqueIndex();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.constraints.ForeignKey#getUniqueIndex <em>Unique Index</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Unique Index</em>' reference.
+	 * @see #getUniqueIndex()
+	 * @generated
+	 */
+	void setUniqueIndex(Index value);
+
+	/**
+	 * Returns the value of the '<em><b>Referenced Table</b></em>' reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.tables.BaseTable#getReferencingForeignKeys <em>Referencing Foreign Keys</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Referenced Table</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Referenced Table</em>' reference.
+	 * @see #setReferencedTable(BaseTable)
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage#getForeignKey_ReferencedTable()
+	 * @see org.eclipse.datatools.modelbase.sql.tables.BaseTable#getReferencingForeignKeys
+	 * @model opposite="referencingForeignKeys"
+	 * @generated
+	 */
+	BaseTable getReferencedTable();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.constraints.ForeignKey#getReferencedTable <em>Referenced Table</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Referenced Table</em>' reference.
+	 * @see #getReferencedTable()
+	 * @generated
+	 */
+	void setReferencedTable(BaseTable value);
+
+} // ForeignKey
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/IncrementType.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/IncrementType.java
new file mode 100644
index 0000000..9862aed
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/IncrementType.java
@@ -0,0 +1,178 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: IncrementType.java,v 1.3 2006/09/07 00:19:49 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.constraints;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Increment Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage#getIncrementType()
+ * @model
+ * @generated
+ */
+public final class IncrementType extends AbstractEnumerator {
+	/**
+	 * The '<em><b>ASC</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #ASC_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int ASC = 0;
+
+	/**
+	 * The '<em><b>DESC</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #DESC_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int DESC = 1;
+
+	/**
+	 * The '<em><b>RANDOM</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>RANDOM</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #RANDOM_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int RANDOM = 2;
+
+	/**
+	 * The '<em><b>ASC</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>ASC</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #ASC
+	 * @generated
+	 * @ordered
+	 */
+	public static final IncrementType ASC_LITERAL = new IncrementType(ASC, "ASC", "ASC"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>DESC</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>DESC</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #DESC
+	 * @generated
+	 * @ordered
+	 */
+	public static final IncrementType DESC_LITERAL = new IncrementType(DESC, "DESC", "DESC"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>RANDOM</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #RANDOM
+	 * @generated
+	 * @ordered
+	 */
+	public static final IncrementType RANDOM_LITERAL = new IncrementType(RANDOM, "RANDOM", "RANDOM"); //$NON-NLS-1$ //$NON-NLS-2$
+
+	/**
+	 * An array of all the '<em><b>Increment Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final IncrementType[] VALUES_ARRAY =
+		new IncrementType[] {
+			ASC_LITERAL,
+			DESC_LITERAL,
+			RANDOM_LITERAL,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Increment Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Increment Type</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static IncrementType get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			IncrementType result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Increment Type</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static IncrementType getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			IncrementType result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Increment Type</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static IncrementType get(int value) {
+		switch (value) {
+			case ASC: return ASC_LITERAL;
+			case DESC: return DESC_LITERAL;
+			case RANDOM: return RANDOM_LITERAL;
+		}
+		return null;
+	}
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private IncrementType(int value, String name, String literal) {
+		super(value, name, literal);
+	}
+
+} //IncrementType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/Index.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/Index.java
new file mode 100644
index 0000000..5a00118
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/Index.java
@@ -0,0 +1,261 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.constraints;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.emf.common.util.EList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Index</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.Index#getSchema <em>Schema</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.Index#isClustered <em>Clustered</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.Index#getFillFactor <em>Fill Factor</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.Index#isUnique <em>Unique</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.Index#isSystemGenerated <em>System Generated</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.Index#getMembers <em>Members</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.Index#getTable <em>Table</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.Index#getForeignKey <em>Foreign Key</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.Index#getIncludedMembers <em>Included Members</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage#getIndex()
+ * @model
+ * @generated
+ */
+public interface Index extends SQLObject {
+	/**
+	 * Returns the value of the '<em><b>Schema</b></em>' reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.schema.Schema#getIndices <em>Indices</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Schema</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Schema</em>' reference.
+	 * @see #setSchema(Schema)
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage#getIndex_Schema()
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Schema#getIndices
+	 * @model opposite="indices" required="true"
+	 * @generated
+	 */
+	Schema getSchema();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.constraints.Index#getSchema <em>Schema</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Schema</em>' reference.
+	 * @see #getSchema()
+	 * @generated
+	 */
+	void setSchema(Schema value);
+
+	/**
+	 * Returns the value of the '<em><b>Clustered</b></em>' attribute.
+	 * The default value is <code>"false"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Clustered</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Clustered</em>' attribute.
+	 * @see #setClustered(boolean)
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage#getIndex_Clustered()
+	 * @model default="false"
+	 * @generated
+	 */
+	boolean isClustered();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.constraints.Index#isClustered <em>Clustered</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Clustered</em>' attribute.
+	 * @see #isClustered()
+	 * @generated
+	 */
+	void setClustered(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Fill Factor</b></em>' attribute.
+	 * The default value is <code>"0"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Fill Factor</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Fill Factor</em>' attribute.
+	 * @see #setFillFactor(int)
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage#getIndex_FillFactor()
+	 * @model default="0"
+	 * @generated
+	 */
+	int getFillFactor();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.constraints.Index#getFillFactor <em>Fill Factor</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Fill Factor</em>' attribute.
+	 * @see #getFillFactor()
+	 * @generated
+	 */
+	void setFillFactor(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Unique</b></em>' attribute.
+	 * The default value is <code>"false"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Unique</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Unique</em>' attribute.
+	 * @see #setUnique(boolean)
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage#getIndex_Unique()
+	 * @model default="false"
+	 * @generated
+	 */
+	boolean isUnique();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.constraints.Index#isUnique <em>Unique</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Unique</em>' attribute.
+	 * @see #isUnique()
+	 * @generated
+	 */
+	void setUnique(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>System Generated</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>System Generated</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>System Generated</em>' attribute.
+	 * @see #setSystemGenerated(boolean)
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage#getIndex_SystemGenerated()
+	 * @model
+	 * @generated
+	 */
+	boolean isSystemGenerated();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.constraints.Index#isSystemGenerated <em>System Generated</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>System Generated</em>' attribute.
+	 * @see #isSystemGenerated()
+	 * @generated
+	 */
+	void setSystemGenerated(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Members</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.constraints.IndexMember}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Members</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Members</em>' containment reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage#getIndex_Members()
+	 * @model type="org.eclipse.datatools.modelbase.sql.constraints.IndexMember" containment="true" required="true"
+	 * @generated
+	 */
+	EList getMembers();
+
+	/**
+	 * Returns the value of the '<em><b>Table</b></em>' reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.tables.Table#getIndex <em>Index</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Table</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Table</em>' reference.
+	 * @see #setTable(Table)
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage#getIndex_Table()
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Table#getIndex
+	 * @model opposite="index" required="true"
+	 * @generated
+	 */
+	Table getTable();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.constraints.Index#getTable <em>Table</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Table</em>' reference.
+	 * @see #getTable()
+	 * @generated
+	 */
+	void setTable(Table value);
+
+	/**
+	 * Returns the value of the '<em><b>Foreign Key</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.constraints.ForeignKey}.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.constraints.ForeignKey#getUniqueIndex <em>Unique Index</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Foreign Key</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Foreign Key</em>' reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage#getIndex_ForeignKey()
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.ForeignKey#getUniqueIndex
+	 * @model type="org.eclipse.datatools.modelbase.sql.constraints.ForeignKey" opposite="uniqueIndex"
+	 * @generated
+	 */
+	EList getForeignKey();
+
+	/**
+	 * Returns the value of the '<em><b>Included Members</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.constraints.IndexMember}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Included Members</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Included Members</em>' containment reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage#getIndex_IncludedMembers()
+	 * @model type="org.eclipse.datatools.modelbase.sql.constraints.IndexMember" containment="true"
+	 * @generated
+	 */
+	EList getIncludedMembers();
+
+} // Index
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/IndexExpression.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/IndexExpression.java
new file mode 100644
index 0000000..dc5c790
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/IndexExpression.java
@@ -0,0 +1,58 @@
+/**

+ * <copyright>

+ * </copyright>

+ *

+ * $Id$

+ */

+package org.eclipse.datatools.modelbase.sql.constraints;

+

+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;

+

+/**

+ * <!-- begin-user-doc -->

+ * A representation of the model object '<em><b>Index Expression</b></em>'.

+ * <!-- end-user-doc -->

+ *

+ * <!-- begin-model-doc -->

+ * IndexExpression is a SQLObject.  It was added to support function/expression-based indexes.

+ * <!-- end-model-doc -->

+ *

+ * <p>

+ * The following features are supported:

+ * <ul>

+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.IndexExpression#getSql <em>Sql</em>}</li>

+ * </ul>

+ * </p>

+ *

+ * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage#getIndexExpression()

+ * @model

+ * @generated

+ */

+public interface IndexExpression extends SQLObject {

+	/**

+	 * Returns the value of the '<em><b>Sql</b></em>' attribute.

+	 * <!-- begin-user-doc -->

+	 * <p>

+	 * If the meaning of the '<em>Sql</em>' attribute isn't clear,

+	 * there really should be more of a description here...

+	 * </p>

+	 * <!-- end-user-doc -->

+	 * @return the value of the '<em>Sql</em>' attribute.

+	 * @see #setSql(String)

+	 * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage#getIndexExpression_Sql()

+	 * @model

+	 * @generated

+	 */

+	String getSql();

+

+	/**

+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.constraints.IndexExpression#getSql <em>Sql</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @param value the new value of the '<em>Sql</em>' attribute.

+	 * @see #getSql()

+	 * @generated

+	 */

+	void setSql(String value);

+

+} // IndexExpression

diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/IndexMember.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/IndexMember.java
new file mode 100644
index 0000000..72870bd
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/IndexMember.java
@@ -0,0 +1,121 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.constraints;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.modelbase.sql.tables.Column;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Index Member</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * IndexMember is an EObject.  It does not have a name or associated SQL descriptor so it is not an SQLObject.  This is the way we have chosen to model Index columns because EMF does not support association classes.
+ * The "expression" reference was added to support function/expression-based indexes.  The expression relationship and the column relationship should be mutually exclusive; that is, one and only one of these should be set.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.IndexMember#getIncrementType <em>Increment Type</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.IndexMember#getColumn <em>Column</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.IndexMember#getExpression <em>Expression</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage#getIndexMember()
+ * @model
+ * @generated
+ */
+public interface IndexMember extends SQLObject{
+	/**
+	 * Returns the value of the '<em><b>Increment Type</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.constraints.IncrementType}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Increment Type</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Increment Type</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.IncrementType
+	 * @see #setIncrementType(IncrementType)
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage#getIndexMember_IncrementType()
+	 * @model
+	 * @generated
+	 */
+	IncrementType getIncrementType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.constraints.IndexMember#getIncrementType <em>Increment Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Increment Type</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.IncrementType
+	 * @see #getIncrementType()
+	 * @generated
+	 */
+	void setIncrementType(IncrementType value);
+
+	/**
+	 * Returns the value of the '<em><b>Column</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Column</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Column</em>' reference.
+	 * @see #setColumn(Column)
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage#getIndexMember_Column()
+	 * @model
+	 * @generated
+	 */
+	Column getColumn();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.constraints.IndexMember#getColumn <em>Column</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Column</em>' reference.
+	 * @see #getColumn()
+	 * @generated
+	 */
+	void setColumn(Column value);
+
+	/**
+	 * Returns the value of the '<em><b>Expression</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Expression</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Expression</em>' containment reference.
+	 * @see #setExpression(IndexExpression)
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage#getIndexMember_Expression()
+	 * @model containment="true"
+	 * @generated
+	 */
+	IndexExpression getExpression();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.constraints.IndexMember#getExpression <em>Expression</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Expression</em>' containment reference.
+	 * @see #getExpression()
+	 * @generated
+	 */
+	void setExpression(IndexExpression value);
+
+} // IndexMember
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/MatchType.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/MatchType.java
new file mode 100644
index 0000000..cee4a8f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/MatchType.java
@@ -0,0 +1,181 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: MatchType.java,v 1.3 2006/09/07 00:19:49 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.constraints;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Match Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * See KeyRelationship description.
+ * <!-- end-model-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage#getMatchType()
+ * @model
+ * @generated
+ */
+public final class MatchType extends AbstractEnumerator {
+	/**
+	 * The '<em><b>MATCH SIMPLE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #MATCH_SIMPLE_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int MATCH_SIMPLE = 0;
+
+	/**
+	 * The '<em><b>MATCH FULL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #MATCH_FULL_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int MATCH_FULL = 1;
+
+	/**
+	 * The '<em><b>MATCH PARTIAL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #MATCH_PARTIAL_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int MATCH_PARTIAL = 2;
+
+	/**
+	 * The '<em><b>MATCH SIMPLE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>MATCH SIMPLE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #MATCH_SIMPLE
+	 * @generated
+	 * @ordered
+	 */
+	public static final MatchType MATCH_SIMPLE_LITERAL = new MatchType(MATCH_SIMPLE, "MATCH_SIMPLE", "MATCH_SIMPLE"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>MATCH FULL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>MATCH FULL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #MATCH_FULL
+	 * @generated
+	 * @ordered
+	 */
+	public static final MatchType MATCH_FULL_LITERAL = new MatchType(MATCH_FULL, "MATCH_FULL", "MATCH_FULL"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>MATCH PARTIAL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>MATCH PARTIAL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #MATCH_PARTIAL
+	 * @generated
+	 * @ordered
+	 */
+	public static final MatchType MATCH_PARTIAL_LITERAL = new MatchType(MATCH_PARTIAL, "MATCH_PARTIAL", "MATCH_PARTIAL"); //$NON-NLS-1$
+
+	/**
+	 * An array of all the '<em><b>Match Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final MatchType[] VALUES_ARRAY =
+		new MatchType[] {
+			MATCH_SIMPLE_LITERAL,
+			MATCH_FULL_LITERAL,
+			MATCH_PARTIAL_LITERAL,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Match Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Match Type</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static MatchType get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			MatchType result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Match Type</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static MatchType getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			MatchType result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Match Type</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static MatchType get(int value) {
+		switch (value) {
+			case MATCH_SIMPLE: return MATCH_SIMPLE_LITERAL;
+			case MATCH_FULL: return MATCH_FULL_LITERAL;
+			case MATCH_PARTIAL: return MATCH_PARTIAL_LITERAL;
+		}
+		return null;
+	}
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private MatchType(int value, String name, String literal) {
+		super(value, name, literal);
+	}
+
+} //MatchType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/PrimaryKey.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/PrimaryKey.java
new file mode 100644
index 0000000..2b87c6f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/PrimaryKey.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.constraints;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Primary Key</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.17 Integrity constraints, Reference, 5WD-02-Foundation-2002-12 11.7 <unique contraint definition>
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage#getPrimaryKey()
+ * @model
+ * @generated
+ */
+public interface PrimaryKey extends UniqueConstraint {
+} // PrimaryKey
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/ReferenceConstraint.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/ReferenceConstraint.java
new file mode 100644
index 0000000..7e5f897
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/ReferenceConstraint.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.constraints;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Reference Constraint</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.17.2 Table constraints
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.ReferenceConstraint#getMembers <em>Members</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage#getReferenceConstraint()
+ * @model abstract="true"
+ * @generated
+ */
+public interface ReferenceConstraint extends TableConstraint {
+	/**
+	 * Returns the value of the '<em><b>Members</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.tables.Column}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Members</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Members</em>' reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage#getReferenceConstraint_Members()
+	 * @model type="org.eclipse.datatools.modelbase.sql.tables.Column" required="true"
+	 * @generated
+	 */
+	EList getMembers();
+
+} // ReferenceConstraint
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/SQLConstraintsFactory.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/SQLConstraintsFactory.java
new file mode 100644
index 0000000..c098094
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/SQLConstraintsFactory.java
@@ -0,0 +1,113 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.constraints;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage
+ * @generated
+ */
+public interface SQLConstraintsFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	SQLConstraintsFactory eINSTANCE = org.eclipse.datatools.modelbase.sql.constraints.impl.SQLConstraintsFactoryImpl.init();
+
+	/**
+	 * Returns a new object of class '<em>Assertion</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Assertion</em>'.
+	 * @generated
+	 */
+	Assertion createAssertion();
+
+	/**
+	 * Returns a new object of class '<em>Check Constraint</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Check Constraint</em>'.
+	 * @generated
+	 */
+	CheckConstraint createCheckConstraint();
+
+	/**
+	 * Returns a new object of class '<em>Foreign Key</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Foreign Key</em>'.
+	 * @generated
+	 */
+	ForeignKey createForeignKey();
+
+	/**
+	 * Returns a new object of class '<em>Unique Constraint</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Unique Constraint</em>'.
+	 * @generated
+	 */
+	UniqueConstraint createUniqueConstraint();
+
+	/**
+	 * Returns a new object of class '<em>Primary Key</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Primary Key</em>'.
+	 * @generated
+	 */
+	PrimaryKey createPrimaryKey();
+
+	/**
+	 * Returns a new object of class '<em>Index</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Index</em>'.
+	 * @generated
+	 */
+	Index createIndex();
+
+	/**
+	 * Returns a new object of class '<em>Index Member</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Index Member</em>'.
+	 * @generated
+	 */
+	IndexMember createIndexMember();
+
+	/**
+	 * Returns a new object of class '<em>Index Expression</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Index Expression</em>'.
+	 * @generated
+	 */
+	IndexExpression createIndexExpression();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	SQLConstraintsPackage getSQLConstraintsPackage();
+
+} //SQLConstraintsFactory
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/SQLConstraintsPackage.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/SQLConstraintsPackage.java
new file mode 100644
index 0000000..0af429f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/SQLConstraintsPackage.java
@@ -0,0 +1,2521 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.constraints;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ *   <li>each class,</li>
+ *   <li>each feature of each class,</li>
+ *   <li>each enum,</li>
+ *   <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface SQLConstraintsPackage extends EPackage {
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNAME = "constraints"; //$NON-NLS-1$
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_URI = "http:///org/eclipse/datatools/modelbase/sql/constraints.ecore"; //$NON-NLS-1$
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_PREFIX = "SQLConstraints"; //$NON-NLS-1$
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	SQLConstraintsPackage eINSTANCE = org.eclipse.datatools.modelbase.sql.constraints.impl.SQLConstraintsPackageImpl.init();
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.constraints.impl.ConstraintImpl <em>Constraint</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.ConstraintImpl
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.SQLConstraintsPackageImpl#getConstraint()
+	 * @generated
+	 */
+	int CONSTRAINT = 1;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Deferrable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT__DEFERRABLE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Initially Deferred</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT__INITIALLY_DEFERRED = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Enforced</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT__ENFORCED = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+	 * The number of structural features of the '<em>Constraint</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRAINT_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 3;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.constraints.impl.AssertionImpl <em>Assertion</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.AssertionImpl
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.SQLConstraintsPackageImpl#getAssertion()
+	 * @generated
+	 */
+	int ASSERTION = 0;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ASSERTION__EANNOTATIONS = CONSTRAINT__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ASSERTION__NAME = CONSTRAINT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ASSERTION__DEPENDENCIES = CONSTRAINT__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ASSERTION__DESCRIPTION = CONSTRAINT__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ASSERTION__LABEL = CONSTRAINT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ASSERTION__COMMENTS = CONSTRAINT__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ASSERTION__EXTENSIONS = CONSTRAINT__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ASSERTION__PRIVILEGES = CONSTRAINT__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Deferrable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ASSERTION__DEFERRABLE = CONSTRAINT__DEFERRABLE;
+
+	/**
+	 * The feature id for the '<em><b>Initially Deferred</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ASSERTION__INITIALLY_DEFERRED = CONSTRAINT__INITIALLY_DEFERRED;
+
+	/**
+	 * The feature id for the '<em><b>Enforced</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ASSERTION__ENFORCED = CONSTRAINT__ENFORCED;
+
+	/**
+	 * The feature id for the '<em><b>Search Condition</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ASSERTION__SEARCH_CONDITION = CONSTRAINT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Schema</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ASSERTION__SCHEMA = CONSTRAINT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Constrained Tables</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ASSERTION__CONSTRAINED_TABLES = CONSTRAINT_FEATURE_COUNT + 2;
+
+	/**
+	 * The number of structural features of the '<em>Assertion</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ASSERTION_FEATURE_COUNT = CONSTRAINT_FEATURE_COUNT + 3;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.constraints.impl.TableConstraintImpl <em>Table Constraint</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.TableConstraintImpl
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.SQLConstraintsPackageImpl#getTableConstraint()
+	 * @generated
+	 */
+	int TABLE_CONSTRAINT = 2;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_CONSTRAINT__EANNOTATIONS = CONSTRAINT__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_CONSTRAINT__NAME = CONSTRAINT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_CONSTRAINT__DEPENDENCIES = CONSTRAINT__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_CONSTRAINT__DESCRIPTION = CONSTRAINT__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_CONSTRAINT__LABEL = CONSTRAINT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_CONSTRAINT__COMMENTS = CONSTRAINT__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_CONSTRAINT__EXTENSIONS = CONSTRAINT__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_CONSTRAINT__PRIVILEGES = CONSTRAINT__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Deferrable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_CONSTRAINT__DEFERRABLE = CONSTRAINT__DEFERRABLE;
+
+	/**
+	 * The feature id for the '<em><b>Initially Deferred</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_CONSTRAINT__INITIALLY_DEFERRED = CONSTRAINT__INITIALLY_DEFERRED;
+
+	/**
+	 * The feature id for the '<em><b>Enforced</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_CONSTRAINT__ENFORCED = CONSTRAINT__ENFORCED;
+
+	/**
+	 * The feature id for the '<em><b>Base Table</b></em>' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_CONSTRAINT__BASE_TABLE = CONSTRAINT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Table Constraint</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_CONSTRAINT_FEATURE_COUNT = CONSTRAINT_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.constraints.impl.ReferenceConstraintImpl <em>Reference Constraint</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.ReferenceConstraintImpl
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.SQLConstraintsPackageImpl#getReferenceConstraint()
+	 * @generated
+	 */
+	int REFERENCE_CONSTRAINT = 3;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERENCE_CONSTRAINT__EANNOTATIONS = TABLE_CONSTRAINT__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERENCE_CONSTRAINT__NAME = TABLE_CONSTRAINT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERENCE_CONSTRAINT__DEPENDENCIES = TABLE_CONSTRAINT__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERENCE_CONSTRAINT__DESCRIPTION = TABLE_CONSTRAINT__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERENCE_CONSTRAINT__LABEL = TABLE_CONSTRAINT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERENCE_CONSTRAINT__COMMENTS = TABLE_CONSTRAINT__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERENCE_CONSTRAINT__EXTENSIONS = TABLE_CONSTRAINT__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERENCE_CONSTRAINT__PRIVILEGES = TABLE_CONSTRAINT__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Deferrable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERENCE_CONSTRAINT__DEFERRABLE = TABLE_CONSTRAINT__DEFERRABLE;
+
+	/**
+	 * The feature id for the '<em><b>Initially Deferred</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERENCE_CONSTRAINT__INITIALLY_DEFERRED = TABLE_CONSTRAINT__INITIALLY_DEFERRED;
+
+	/**
+	 * The feature id for the '<em><b>Enforced</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERENCE_CONSTRAINT__ENFORCED = TABLE_CONSTRAINT__ENFORCED;
+
+	/**
+	 * The feature id for the '<em><b>Base Table</b></em>' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERENCE_CONSTRAINT__BASE_TABLE = TABLE_CONSTRAINT__BASE_TABLE;
+
+	/**
+	 * The feature id for the '<em><b>Members</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERENCE_CONSTRAINT__MEMBERS = TABLE_CONSTRAINT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Reference Constraint</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERENCE_CONSTRAINT_FEATURE_COUNT = TABLE_CONSTRAINT_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.constraints.impl.CheckConstraintImpl <em>Check Constraint</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.CheckConstraintImpl
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.SQLConstraintsPackageImpl#getCheckConstraint()
+	 * @generated
+	 */
+	int CHECK_CONSTRAINT = 4;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHECK_CONSTRAINT__EANNOTATIONS = TABLE_CONSTRAINT__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHECK_CONSTRAINT__NAME = TABLE_CONSTRAINT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHECK_CONSTRAINT__DEPENDENCIES = TABLE_CONSTRAINT__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHECK_CONSTRAINT__DESCRIPTION = TABLE_CONSTRAINT__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHECK_CONSTRAINT__LABEL = TABLE_CONSTRAINT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHECK_CONSTRAINT__COMMENTS = TABLE_CONSTRAINT__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHECK_CONSTRAINT__EXTENSIONS = TABLE_CONSTRAINT__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHECK_CONSTRAINT__PRIVILEGES = TABLE_CONSTRAINT__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Deferrable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHECK_CONSTRAINT__DEFERRABLE = TABLE_CONSTRAINT__DEFERRABLE;
+
+	/**
+	 * The feature id for the '<em><b>Initially Deferred</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHECK_CONSTRAINT__INITIALLY_DEFERRED = TABLE_CONSTRAINT__INITIALLY_DEFERRED;
+
+	/**
+	 * The feature id for the '<em><b>Enforced</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHECK_CONSTRAINT__ENFORCED = TABLE_CONSTRAINT__ENFORCED;
+
+	/**
+	 * The feature id for the '<em><b>Base Table</b></em>' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHECK_CONSTRAINT__BASE_TABLE = TABLE_CONSTRAINT__BASE_TABLE;
+
+	/**
+	 * The feature id for the '<em><b>Search Condition</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHECK_CONSTRAINT__SEARCH_CONDITION = TABLE_CONSTRAINT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Check Constraint</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHECK_CONSTRAINT_FEATURE_COUNT = TABLE_CONSTRAINT_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.constraints.impl.ForeignKeyImpl <em>Foreign Key</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.ForeignKeyImpl
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.SQLConstraintsPackageImpl#getForeignKey()
+	 * @generated
+	 */
+	int FOREIGN_KEY = 5;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FOREIGN_KEY__EANNOTATIONS = REFERENCE_CONSTRAINT__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FOREIGN_KEY__NAME = REFERENCE_CONSTRAINT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FOREIGN_KEY__DEPENDENCIES = REFERENCE_CONSTRAINT__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FOREIGN_KEY__DESCRIPTION = REFERENCE_CONSTRAINT__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FOREIGN_KEY__LABEL = REFERENCE_CONSTRAINT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FOREIGN_KEY__COMMENTS = REFERENCE_CONSTRAINT__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FOREIGN_KEY__EXTENSIONS = REFERENCE_CONSTRAINT__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FOREIGN_KEY__PRIVILEGES = REFERENCE_CONSTRAINT__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Deferrable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FOREIGN_KEY__DEFERRABLE = REFERENCE_CONSTRAINT__DEFERRABLE;
+
+	/**
+	 * The feature id for the '<em><b>Initially Deferred</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FOREIGN_KEY__INITIALLY_DEFERRED = REFERENCE_CONSTRAINT__INITIALLY_DEFERRED;
+
+	/**
+	 * The feature id for the '<em><b>Enforced</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FOREIGN_KEY__ENFORCED = REFERENCE_CONSTRAINT__ENFORCED;
+
+	/**
+	 * The feature id for the '<em><b>Base Table</b></em>' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FOREIGN_KEY__BASE_TABLE = REFERENCE_CONSTRAINT__BASE_TABLE;
+
+	/**
+	 * The feature id for the '<em><b>Members</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FOREIGN_KEY__MEMBERS = REFERENCE_CONSTRAINT__MEMBERS;
+
+	/**
+	 * The feature id for the '<em><b>Match</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FOREIGN_KEY__MATCH = REFERENCE_CONSTRAINT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>On Update</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FOREIGN_KEY__ON_UPDATE = REFERENCE_CONSTRAINT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>On Delete</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FOREIGN_KEY__ON_DELETE = REFERENCE_CONSTRAINT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Unique Constraint</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FOREIGN_KEY__UNIQUE_CONSTRAINT = REFERENCE_CONSTRAINT_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Referenced Members</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FOREIGN_KEY__REFERENCED_MEMBERS = REFERENCE_CONSTRAINT_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Unique Index</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FOREIGN_KEY__UNIQUE_INDEX = REFERENCE_CONSTRAINT_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Referenced Table</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FOREIGN_KEY__REFERENCED_TABLE = REFERENCE_CONSTRAINT_FEATURE_COUNT + 6;
+
+	/**
+	 * The number of structural features of the '<em>Foreign Key</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FOREIGN_KEY_FEATURE_COUNT = REFERENCE_CONSTRAINT_FEATURE_COUNT + 7;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.constraints.impl.UniqueConstraintImpl <em>Unique Constraint</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.UniqueConstraintImpl
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.SQLConstraintsPackageImpl#getUniqueConstraint()
+	 * @generated
+	 */
+	int UNIQUE_CONSTRAINT = 6;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int UNIQUE_CONSTRAINT__EANNOTATIONS = REFERENCE_CONSTRAINT__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int UNIQUE_CONSTRAINT__NAME = REFERENCE_CONSTRAINT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int UNIQUE_CONSTRAINT__DEPENDENCIES = REFERENCE_CONSTRAINT__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int UNIQUE_CONSTRAINT__DESCRIPTION = REFERENCE_CONSTRAINT__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int UNIQUE_CONSTRAINT__LABEL = REFERENCE_CONSTRAINT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int UNIQUE_CONSTRAINT__COMMENTS = REFERENCE_CONSTRAINT__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int UNIQUE_CONSTRAINT__EXTENSIONS = REFERENCE_CONSTRAINT__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int UNIQUE_CONSTRAINT__PRIVILEGES = REFERENCE_CONSTRAINT__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Deferrable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int UNIQUE_CONSTRAINT__DEFERRABLE = REFERENCE_CONSTRAINT__DEFERRABLE;
+
+	/**
+	 * The feature id for the '<em><b>Initially Deferred</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int UNIQUE_CONSTRAINT__INITIALLY_DEFERRED = REFERENCE_CONSTRAINT__INITIALLY_DEFERRED;
+
+	/**
+	 * The feature id for the '<em><b>Enforced</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int UNIQUE_CONSTRAINT__ENFORCED = REFERENCE_CONSTRAINT__ENFORCED;
+
+	/**
+	 * The feature id for the '<em><b>Base Table</b></em>' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int UNIQUE_CONSTRAINT__BASE_TABLE = REFERENCE_CONSTRAINT__BASE_TABLE;
+
+	/**
+	 * The feature id for the '<em><b>Members</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int UNIQUE_CONSTRAINT__MEMBERS = REFERENCE_CONSTRAINT__MEMBERS;
+
+	/**
+	 * The feature id for the '<em><b>Clustered</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+    int UNIQUE_CONSTRAINT__CLUSTERED = REFERENCE_CONSTRAINT_FEATURE_COUNT + 0;
+
+    /**
+	 * The feature id for the '<em><b>Foreign Key</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int UNIQUE_CONSTRAINT__FOREIGN_KEY = REFERENCE_CONSTRAINT_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>Unique Constraint</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int UNIQUE_CONSTRAINT_FEATURE_COUNT = REFERENCE_CONSTRAINT_FEATURE_COUNT + 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.constraints.impl.PrimaryKeyImpl <em>Primary Key</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.PrimaryKeyImpl
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.SQLConstraintsPackageImpl#getPrimaryKey()
+	 * @generated
+	 */
+	int PRIMARY_KEY = 7;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PRIMARY_KEY__EANNOTATIONS = UNIQUE_CONSTRAINT__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PRIMARY_KEY__NAME = UNIQUE_CONSTRAINT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PRIMARY_KEY__DEPENDENCIES = UNIQUE_CONSTRAINT__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PRIMARY_KEY__DESCRIPTION = UNIQUE_CONSTRAINT__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PRIMARY_KEY__LABEL = UNIQUE_CONSTRAINT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PRIMARY_KEY__COMMENTS = UNIQUE_CONSTRAINT__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PRIMARY_KEY__EXTENSIONS = UNIQUE_CONSTRAINT__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PRIMARY_KEY__PRIVILEGES = UNIQUE_CONSTRAINT__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Deferrable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PRIMARY_KEY__DEFERRABLE = UNIQUE_CONSTRAINT__DEFERRABLE;
+
+	/**
+	 * The feature id for the '<em><b>Initially Deferred</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PRIMARY_KEY__INITIALLY_DEFERRED = UNIQUE_CONSTRAINT__INITIALLY_DEFERRED;
+
+	/**
+	 * The feature id for the '<em><b>Enforced</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PRIMARY_KEY__ENFORCED = UNIQUE_CONSTRAINT__ENFORCED;
+
+	/**
+	 * The feature id for the '<em><b>Base Table</b></em>' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PRIMARY_KEY__BASE_TABLE = UNIQUE_CONSTRAINT__BASE_TABLE;
+
+	/**
+	 * The feature id for the '<em><b>Members</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PRIMARY_KEY__MEMBERS = UNIQUE_CONSTRAINT__MEMBERS;
+
+	/**
+	 * The feature id for the '<em><b>Clustered</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+    int PRIMARY_KEY__CLUSTERED = UNIQUE_CONSTRAINT__CLUSTERED;
+
+    /**
+	 * The feature id for the '<em><b>Foreign Key</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PRIMARY_KEY__FOREIGN_KEY = UNIQUE_CONSTRAINT__FOREIGN_KEY;
+
+	/**
+	 * The number of structural features of the '<em>Primary Key</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PRIMARY_KEY_FEATURE_COUNT = UNIQUE_CONSTRAINT_FEATURE_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.constraints.impl.IndexImpl <em>Index</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.IndexImpl
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.SQLConstraintsPackageImpl#getIndex()
+	 * @generated
+	 */
+	int INDEX = 8;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Schema</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX__SCHEMA = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Clustered</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX__CLUSTERED = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Fill Factor</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX__FILL_FACTOR = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Unique</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX__UNIQUE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>System Generated</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX__SYSTEM_GENERATED = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Members</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX__MEMBERS = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Table</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX__TABLE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 6;
+
+	/**
+	 * The feature id for the '<em><b>Foreign Key</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX__FOREIGN_KEY = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 7;
+
+	/**
+	 * The feature id for the '<em><b>Included Members</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX__INCLUDED_MEMBERS = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 8;
+
+	/**
+	 * The number of structural features of the '<em>Index</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 9;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.constraints.impl.IndexMemberImpl <em>Index Member</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.IndexMemberImpl
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.SQLConstraintsPackageImpl#getIndexMember()
+	 * @generated
+	 */
+	int INDEX_MEMBER = 9;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX_MEMBER__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX_MEMBER__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX_MEMBER__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX_MEMBER__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX_MEMBER__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX_MEMBER__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX_MEMBER__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX_MEMBER__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Increment Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX_MEMBER__INCREMENT_TYPE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Column</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX_MEMBER__COLUMN = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Expression</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX_MEMBER__EXPRESSION = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+	 * The number of structural features of the '<em>Index Member</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX_MEMBER_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 3;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.constraints.impl.IndexExpressionImpl <em>Index Expression</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.IndexExpressionImpl
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.SQLConstraintsPackageImpl#getIndexExpression()
+	 * @generated
+	 */
+	int INDEX_EXPRESSION = 10;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX_EXPRESSION__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX_EXPRESSION__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX_EXPRESSION__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX_EXPRESSION__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX_EXPRESSION__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX_EXPRESSION__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX_EXPRESSION__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX_EXPRESSION__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Sql</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX_EXPRESSION__SQL = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Index Expression</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEX_EXPRESSION_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.constraints.MatchType <em>Match Type</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.MatchType
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.SQLConstraintsPackageImpl#getMatchType()
+	 * @generated
+	 */
+	int MATCH_TYPE = 11;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.constraints.IncrementType <em>Increment Type</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.IncrementType
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.SQLConstraintsPackageImpl#getIncrementType()
+	 * @generated
+	 */
+	int INCREMENT_TYPE = 12;
+
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.constraints.Assertion <em>Assertion</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Assertion</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.Assertion
+	 * @generated
+	 */
+	EClass getAssertion();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.constraints.Assertion#getSearchCondition <em>Search Condition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Search Condition</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.Assertion#getSearchCondition()
+	 * @see #getAssertion()
+	 * @generated
+	 */
+	EReference getAssertion_SearchCondition();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.sql.constraints.Assertion#getSchema <em>Schema</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Schema</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.Assertion#getSchema()
+	 * @see #getAssertion()
+	 * @generated
+	 */
+	EReference getAssertion_Schema();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.sql.constraints.Assertion#getConstrainedTables <em>Constrained Tables</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Constrained Tables</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.Assertion#getConstrainedTables()
+	 * @see #getAssertion()
+	 * @generated
+	 */
+	EReference getAssertion_ConstrainedTables();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.constraints.Constraint <em>Constraint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Constraint</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.Constraint
+	 * @generated
+	 */
+	EClass getConstraint();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.constraints.Constraint#isDeferrable <em>Deferrable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Deferrable</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.Constraint#isDeferrable()
+	 * @see #getConstraint()
+	 * @generated
+	 */
+	EAttribute getConstraint_Deferrable();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.constraints.Constraint#isInitiallyDeferred <em>Initially Deferred</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Initially Deferred</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.Constraint#isInitiallyDeferred()
+	 * @see #getConstraint()
+	 * @generated
+	 */
+	EAttribute getConstraint_InitiallyDeferred();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.constraints.Constraint#isEnforced <em>Enforced</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Enforced</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.Constraint#isEnforced()
+	 * @see #getConstraint()
+	 * @generated
+	 */
+	EAttribute getConstraint_Enforced();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.constraints.TableConstraint <em>Table Constraint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Table Constraint</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.TableConstraint
+	 * @generated
+	 */
+	EClass getTableConstraint();
+
+	/**
+	 * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.constraints.TableConstraint#getBaseTable <em>Base Table</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the container reference '<em>Base Table</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.TableConstraint#getBaseTable()
+	 * @see #getTableConstraint()
+	 * @generated
+	 */
+	EReference getTableConstraint_BaseTable();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.constraints.ReferenceConstraint <em>Reference Constraint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Reference Constraint</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.ReferenceConstraint
+	 * @generated
+	 */
+	EClass getReferenceConstraint();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.sql.constraints.ReferenceConstraint#getMembers <em>Members</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Members</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.ReferenceConstraint#getMembers()
+	 * @see #getReferenceConstraint()
+	 * @generated
+	 */
+	EReference getReferenceConstraint_Members();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.constraints.CheckConstraint <em>Check Constraint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Check Constraint</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.CheckConstraint
+	 * @generated
+	 */
+	EClass getCheckConstraint();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.constraints.CheckConstraint#getSearchCondition <em>Search Condition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Search Condition</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.CheckConstraint#getSearchCondition()
+	 * @see #getCheckConstraint()
+	 * @generated
+	 */
+	EReference getCheckConstraint_SearchCondition();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.constraints.ForeignKey <em>Foreign Key</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Foreign Key</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.ForeignKey
+	 * @generated
+	 */
+	EClass getForeignKey();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.constraints.ForeignKey#getMatch <em>Match</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Match</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.ForeignKey#getMatch()
+	 * @see #getForeignKey()
+	 * @generated
+	 */
+	EAttribute getForeignKey_Match();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.constraints.ForeignKey#getOnUpdate <em>On Update</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>On Update</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.ForeignKey#getOnUpdate()
+	 * @see #getForeignKey()
+	 * @generated
+	 */
+	EAttribute getForeignKey_OnUpdate();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.constraints.ForeignKey#getOnDelete <em>On Delete</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>On Delete</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.ForeignKey#getOnDelete()
+	 * @see #getForeignKey()
+	 * @generated
+	 */
+	EAttribute getForeignKey_OnDelete();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.sql.constraints.ForeignKey#getUniqueConstraint <em>Unique Constraint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Unique Constraint</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.ForeignKey#getUniqueConstraint()
+	 * @see #getForeignKey()
+	 * @generated
+	 */
+	EReference getForeignKey_UniqueConstraint();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.sql.constraints.ForeignKey#getReferencedMembers <em>Referenced Members</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Referenced Members</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.ForeignKey#getReferencedMembers()
+	 * @see #getForeignKey()
+	 * @generated
+	 */
+	EReference getForeignKey_ReferencedMembers();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.sql.constraints.ForeignKey#getUniqueIndex <em>Unique Index</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Unique Index</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.ForeignKey#getUniqueIndex()
+	 * @see #getForeignKey()
+	 * @generated
+	 */
+	EReference getForeignKey_UniqueIndex();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.sql.constraints.ForeignKey#getReferencedTable <em>Referenced Table</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Referenced Table</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.ForeignKey#getReferencedTable()
+	 * @see #getForeignKey()
+	 * @generated
+	 */
+	EReference getForeignKey_ReferencedTable();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.constraints.UniqueConstraint <em>Unique Constraint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Unique Constraint</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.UniqueConstraint
+	 * @generated
+	 */
+	EClass getUniqueConstraint();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.constraints.UniqueConstraint#isClustered <em>Clustered</em>}'.
+	 * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Clustered</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.UniqueConstraint#isClustered()
+	 * @see #getUniqueConstraint()
+	 * @generated
+	 */
+    EAttribute getUniqueConstraint_Clustered();
+
+    /**
+	 * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.sql.constraints.UniqueConstraint#getForeignKey <em>Foreign Key</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Foreign Key</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.UniqueConstraint#getForeignKey()
+	 * @see #getUniqueConstraint()
+	 * @generated
+	 */
+	EReference getUniqueConstraint_ForeignKey();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.constraints.PrimaryKey <em>Primary Key</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Primary Key</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.PrimaryKey
+	 * @generated
+	 */
+	EClass getPrimaryKey();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.constraints.Index <em>Index</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Index</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.Index
+	 * @generated
+	 */
+	EClass getIndex();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.sql.constraints.Index#getSchema <em>Schema</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Schema</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.Index#getSchema()
+	 * @see #getIndex()
+	 * @generated
+	 */
+	EReference getIndex_Schema();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.constraints.Index#isClustered <em>Clustered</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Clustered</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.Index#isClustered()
+	 * @see #getIndex()
+	 * @generated
+	 */
+	EAttribute getIndex_Clustered();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.constraints.Index#getFillFactor <em>Fill Factor</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Fill Factor</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.Index#getFillFactor()
+	 * @see #getIndex()
+	 * @generated
+	 */
+	EAttribute getIndex_FillFactor();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.constraints.Index#isUnique <em>Unique</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Unique</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.Index#isUnique()
+	 * @see #getIndex()
+	 * @generated
+	 */
+	EAttribute getIndex_Unique();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.constraints.Index#isSystemGenerated <em>System Generated</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>System Generated</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.Index#isSystemGenerated()
+	 * @see #getIndex()
+	 * @generated
+	 */
+	EAttribute getIndex_SystemGenerated();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.constraints.Index#getMembers <em>Members</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Members</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.Index#getMembers()
+	 * @see #getIndex()
+	 * @generated
+	 */
+	EReference getIndex_Members();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.sql.constraints.Index#getTable <em>Table</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Table</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.Index#getTable()
+	 * @see #getIndex()
+	 * @generated
+	 */
+	EReference getIndex_Table();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.sql.constraints.Index#getForeignKey <em>Foreign Key</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Foreign Key</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.Index#getForeignKey()
+	 * @see #getIndex()
+	 * @generated
+	 */
+	EReference getIndex_ForeignKey();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.constraints.Index#getIncludedMembers <em>Included Members</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Included Members</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.Index#getIncludedMembers()
+	 * @see #getIndex()
+	 * @generated
+	 */
+	EReference getIndex_IncludedMembers();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.constraints.IndexMember <em>Index Member</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Index Member</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.IndexMember
+	 * @generated
+	 */
+	EClass getIndexMember();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.constraints.IndexMember#getIncrementType <em>Increment Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Increment Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.IndexMember#getIncrementType()
+	 * @see #getIndexMember()
+	 * @generated
+	 */
+	EAttribute getIndexMember_IncrementType();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.sql.constraints.IndexMember#getColumn <em>Column</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Column</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.IndexMember#getColumn()
+	 * @see #getIndexMember()
+	 * @generated
+	 */
+	EReference getIndexMember_Column();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.constraints.IndexMember#getExpression <em>Expression</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Expression</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.IndexMember#getExpression()
+	 * @see #getIndexMember()
+	 * @generated
+	 */
+	EReference getIndexMember_Expression();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.constraints.IndexExpression <em>Index Expression</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Index Expression</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.IndexExpression
+	 * @generated
+	 */
+	EClass getIndexExpression();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.constraints.IndexExpression#getSql <em>Sql</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Sql</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.IndexExpression#getSql()
+	 * @see #getIndexExpression()
+	 * @generated
+	 */
+	EAttribute getIndexExpression_Sql();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.sql.constraints.MatchType <em>Match Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Match Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.MatchType
+	 * @generated
+	 */
+	EEnum getMatchType();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.sql.constraints.IncrementType <em>Increment Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Increment Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.IncrementType
+	 * @generated
+	 */
+	EEnum getIncrementType();
+
+	/**
+	 * Returns the factory that creates the instances of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the factory that creates the instances of the model.
+	 * @generated
+	 */
+	SQLConstraintsFactory getSQLConstraintsFactory();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * Defines literals for the meta objects that represent
+	 * <ul>
+	 *   <li>each class,</li>
+	 *   <li>each feature of each class,</li>
+	 *   <li>each enum,</li>
+	 *   <li>and each data type</li>
+	 * </ul>
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	interface Literals  {
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.constraints.impl.AssertionImpl <em>Assertion</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.AssertionImpl
+		 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.SQLConstraintsPackageImpl#getAssertion()
+		 * @generated
+		 */
+		EClass ASSERTION = eINSTANCE.getAssertion();
+
+		/**
+		 * The meta object literal for the '<em><b>Search Condition</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference ASSERTION__SEARCH_CONDITION = eINSTANCE.getAssertion_SearchCondition();
+
+		/**
+		 * The meta object literal for the '<em><b>Schema</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference ASSERTION__SCHEMA = eINSTANCE.getAssertion_Schema();
+
+		/**
+		 * The meta object literal for the '<em><b>Constrained Tables</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference ASSERTION__CONSTRAINED_TABLES = eINSTANCE.getAssertion_ConstrainedTables();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.constraints.impl.ConstraintImpl <em>Constraint</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.ConstraintImpl
+		 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.SQLConstraintsPackageImpl#getConstraint()
+		 * @generated
+		 */
+		EClass CONSTRAINT = eINSTANCE.getConstraint();
+
+		/**
+		 * The meta object literal for the '<em><b>Deferrable</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CONSTRAINT__DEFERRABLE = eINSTANCE.getConstraint_Deferrable();
+
+		/**
+		 * The meta object literal for the '<em><b>Initially Deferred</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CONSTRAINT__INITIALLY_DEFERRED = eINSTANCE.getConstraint_InitiallyDeferred();
+
+		/**
+		 * The meta object literal for the '<em><b>Enforced</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CONSTRAINT__ENFORCED = eINSTANCE.getConstraint_Enforced();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.constraints.impl.TableConstraintImpl <em>Table Constraint</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.TableConstraintImpl
+		 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.SQLConstraintsPackageImpl#getTableConstraint()
+		 * @generated
+		 */
+		EClass TABLE_CONSTRAINT = eINSTANCE.getTableConstraint();
+
+		/**
+		 * The meta object literal for the '<em><b>Base Table</b></em>' container reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference TABLE_CONSTRAINT__BASE_TABLE = eINSTANCE.getTableConstraint_BaseTable();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.constraints.impl.ReferenceConstraintImpl <em>Reference Constraint</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.ReferenceConstraintImpl
+		 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.SQLConstraintsPackageImpl#getReferenceConstraint()
+		 * @generated
+		 */
+		EClass REFERENCE_CONSTRAINT = eINSTANCE.getReferenceConstraint();
+
+		/**
+		 * The meta object literal for the '<em><b>Members</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference REFERENCE_CONSTRAINT__MEMBERS = eINSTANCE.getReferenceConstraint_Members();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.constraints.impl.CheckConstraintImpl <em>Check Constraint</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.CheckConstraintImpl
+		 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.SQLConstraintsPackageImpl#getCheckConstraint()
+		 * @generated
+		 */
+		EClass CHECK_CONSTRAINT = eINSTANCE.getCheckConstraint();
+
+		/**
+		 * The meta object literal for the '<em><b>Search Condition</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference CHECK_CONSTRAINT__SEARCH_CONDITION = eINSTANCE.getCheckConstraint_SearchCondition();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.constraints.impl.ForeignKeyImpl <em>Foreign Key</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.ForeignKeyImpl
+		 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.SQLConstraintsPackageImpl#getForeignKey()
+		 * @generated
+		 */
+		EClass FOREIGN_KEY = eINSTANCE.getForeignKey();
+
+		/**
+		 * The meta object literal for the '<em><b>Match</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute FOREIGN_KEY__MATCH = eINSTANCE.getForeignKey_Match();
+
+		/**
+		 * The meta object literal for the '<em><b>On Update</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute FOREIGN_KEY__ON_UPDATE = eINSTANCE.getForeignKey_OnUpdate();
+
+		/**
+		 * The meta object literal for the '<em><b>On Delete</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute FOREIGN_KEY__ON_DELETE = eINSTANCE.getForeignKey_OnDelete();
+
+		/**
+		 * The meta object literal for the '<em><b>Unique Constraint</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference FOREIGN_KEY__UNIQUE_CONSTRAINT = eINSTANCE.getForeignKey_UniqueConstraint();
+
+		/**
+		 * The meta object literal for the '<em><b>Referenced Members</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference FOREIGN_KEY__REFERENCED_MEMBERS = eINSTANCE.getForeignKey_ReferencedMembers();
+
+		/**
+		 * The meta object literal for the '<em><b>Unique Index</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference FOREIGN_KEY__UNIQUE_INDEX = eINSTANCE.getForeignKey_UniqueIndex();
+
+		/**
+		 * The meta object literal for the '<em><b>Referenced Table</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference FOREIGN_KEY__REFERENCED_TABLE = eINSTANCE.getForeignKey_ReferencedTable();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.constraints.impl.UniqueConstraintImpl <em>Unique Constraint</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.UniqueConstraintImpl
+		 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.SQLConstraintsPackageImpl#getUniqueConstraint()
+		 * @generated
+		 */
+		EClass UNIQUE_CONSTRAINT = eINSTANCE.getUniqueConstraint();
+
+		/**
+		 * The meta object literal for the '<em><b>Clustered</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+         * <!-- end-user-doc -->
+		 * @generated
+		 */
+        EAttribute UNIQUE_CONSTRAINT__CLUSTERED = eINSTANCE.getUniqueConstraint_Clustered();
+
+        /**
+		 * The meta object literal for the '<em><b>Foreign Key</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference UNIQUE_CONSTRAINT__FOREIGN_KEY = eINSTANCE.getUniqueConstraint_ForeignKey();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.constraints.impl.PrimaryKeyImpl <em>Primary Key</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.PrimaryKeyImpl
+		 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.SQLConstraintsPackageImpl#getPrimaryKey()
+		 * @generated
+		 */
+		EClass PRIMARY_KEY = eINSTANCE.getPrimaryKey();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.constraints.impl.IndexImpl <em>Index</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.IndexImpl
+		 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.SQLConstraintsPackageImpl#getIndex()
+		 * @generated
+		 */
+		EClass INDEX = eINSTANCE.getIndex();
+
+		/**
+		 * The meta object literal for the '<em><b>Schema</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference INDEX__SCHEMA = eINSTANCE.getIndex_Schema();
+
+		/**
+		 * The meta object literal for the '<em><b>Clustered</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute INDEX__CLUSTERED = eINSTANCE.getIndex_Clustered();
+
+		/**
+		 * The meta object literal for the '<em><b>Fill Factor</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute INDEX__FILL_FACTOR = eINSTANCE.getIndex_FillFactor();
+
+		/**
+		 * The meta object literal for the '<em><b>Unique</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute INDEX__UNIQUE = eINSTANCE.getIndex_Unique();
+
+		/**
+		 * The meta object literal for the '<em><b>System Generated</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute INDEX__SYSTEM_GENERATED = eINSTANCE.getIndex_SystemGenerated();
+
+		/**
+		 * The meta object literal for the '<em><b>Members</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference INDEX__MEMBERS = eINSTANCE.getIndex_Members();
+
+		/**
+		 * The meta object literal for the '<em><b>Table</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference INDEX__TABLE = eINSTANCE.getIndex_Table();
+
+		/**
+		 * The meta object literal for the '<em><b>Foreign Key</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference INDEX__FOREIGN_KEY = eINSTANCE.getIndex_ForeignKey();
+
+		/**
+		 * The meta object literal for the '<em><b>Included Members</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference INDEX__INCLUDED_MEMBERS = eINSTANCE.getIndex_IncludedMembers();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.constraints.impl.IndexMemberImpl <em>Index Member</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.IndexMemberImpl
+		 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.SQLConstraintsPackageImpl#getIndexMember()
+		 * @generated
+		 */
+		EClass INDEX_MEMBER = eINSTANCE.getIndexMember();
+
+		/**
+		 * The meta object literal for the '<em><b>Increment Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute INDEX_MEMBER__INCREMENT_TYPE = eINSTANCE.getIndexMember_IncrementType();
+
+		/**
+		 * The meta object literal for the '<em><b>Column</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference INDEX_MEMBER__COLUMN = eINSTANCE.getIndexMember_Column();
+
+		/**
+		 * The meta object literal for the '<em><b>Expression</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference INDEX_MEMBER__EXPRESSION = eINSTANCE.getIndexMember_Expression();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.constraints.impl.IndexExpressionImpl <em>Index Expression</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.IndexExpressionImpl
+		 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.SQLConstraintsPackageImpl#getIndexExpression()
+		 * @generated
+		 */
+		EClass INDEX_EXPRESSION = eINSTANCE.getIndexExpression();
+
+		/**
+		 * The meta object literal for the '<em><b>Sql</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute INDEX_EXPRESSION__SQL = eINSTANCE.getIndexExpression_Sql();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.constraints.MatchType <em>Match Type</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.constraints.MatchType
+		 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.SQLConstraintsPackageImpl#getMatchType()
+		 * @generated
+		 */
+		EEnum MATCH_TYPE = eINSTANCE.getMatchType();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.constraints.IncrementType <em>Increment Type</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.constraints.IncrementType
+		 * @see org.eclipse.datatools.modelbase.sql.constraints.impl.SQLConstraintsPackageImpl#getIncrementType()
+		 * @generated
+		 */
+		EEnum INCREMENT_TYPE = eINSTANCE.getIncrementType();
+
+	}
+
+} //SQLConstraintsPackage
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/TableConstraint.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/TableConstraint.java
new file mode 100644
index 0000000..c789a77
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/TableConstraint.java
@@ -0,0 +1,66 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.constraints;
+
+import org.eclipse.datatools.modelbase.sql.tables.BaseTable;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Table Constraint</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.17.2 Table constraints
+ * 
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.TableConstraint#getBaseTable <em>Base Table</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage#getTableConstraint()
+ * @model abstract="true"
+ * @generated
+ */
+public interface TableConstraint extends Constraint {
+	/**
+	 * Returns the value of the '<em><b>Base Table</b></em>' container reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.tables.BaseTable#getConstraints <em>Constraints</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Base Table</em>' container reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Base Table</em>' container reference.
+	 * @see #setBaseTable(BaseTable)
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage#getTableConstraint_BaseTable()
+	 * @see org.eclipse.datatools.modelbase.sql.tables.BaseTable#getConstraints
+	 * @model opposite="constraints"
+	 * @generated
+	 */
+	BaseTable getBaseTable();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.constraints.TableConstraint#getBaseTable <em>Base Table</em>}' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Base Table</em>' container reference.
+	 * @see #getBaseTable()
+	 * @generated
+	 */
+	void setBaseTable(BaseTable value);
+
+} // TableConstraint
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/UniqueConstraint.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/UniqueConstraint.java
new file mode 100644
index 0000000..ffb3dc0
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/UniqueConstraint.java
@@ -0,0 +1,83 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.constraints;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Unique Constraint</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.17.2 Table constraints, 5WD-02-Foundation-2002-12 11.7 <unique contraint definition>
+ * 
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.UniqueConstraint#isClustered <em>Clustered</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.UniqueConstraint#getForeignKey <em>Foreign Key</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage#getUniqueConstraint()
+ * @model
+ * @generated
+ */
+public interface UniqueConstraint extends ReferenceConstraint {
+	/**
+	 * Returns the value of the '<em><b>Clustered</b></em>' attribute.
+	 * The default value is <code>"true"</code>.
+	 * <!-- begin-user-doc -->
+     * <p>
+     * If the meaning of the '<em>Clustered</em>' attribute isn't clear,
+     * there really should be more of a description here...
+     * </p>
+     * <!-- end-user-doc -->
+	 * @return the value of the '<em>Clustered</em>' attribute.
+	 * @see #setClustered(boolean)
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage#getUniqueConstraint_Clustered()
+	 * @model default="true"
+	 * @generated
+	 */
+    boolean isClustered();
+
+    /**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.constraints.UniqueConstraint#isClustered <em>Clustered</em>}' attribute.
+	 * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Clustered</em>' attribute.
+	 * @see #isClustered()
+	 * @generated
+	 */
+    void setClustered(boolean value);
+
+    /**
+	 * Returns the value of the '<em><b>Foreign Key</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.constraints.ForeignKey}.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.constraints.ForeignKey#getUniqueConstraint <em>Unique Constraint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Foreign Key</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Foreign Key</em>' reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage#getUniqueConstraint_ForeignKey()
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.ForeignKey#getUniqueConstraint
+	 * @model type="org.eclipse.datatools.modelbase.sql.constraints.ForeignKey" opposite="uniqueConstraint"
+	 * @generated
+	 */
+	EList getForeignKey();
+
+} // UniqueConstraint
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/impl/AssertionImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/impl/AssertionImpl.java
new file mode 100644
index 0000000..7ec51c2
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/impl/AssertionImpl.java
@@ -0,0 +1,316 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.constraints.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.constraints.Assertion;
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;
+import org.eclipse.datatools.modelbase.sql.expressions.SearchCondition;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.tables.BaseTable;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Assertion</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.impl.AssertionImpl#getSearchCondition <em>Search Condition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.impl.AssertionImpl#getSchema <em>Schema</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.impl.AssertionImpl#getConstrainedTables <em>Constrained Tables</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class AssertionImpl extends ConstraintImpl implements Assertion {
+	/**
+	 * The cached value of the '{@link #getSearchCondition() <em>Search Condition</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSearchCondition()
+	 * @generated
+	 * @ordered
+	 */
+	protected SearchCondition searchCondition;
+
+	/**
+	 * The cached value of the '{@link #getSchema() <em>Schema</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSchema()
+	 * @generated
+	 * @ordered
+	 */
+	protected Schema schema;
+
+	/**
+	 * The cached value of the '{@link #getConstrainedTables() <em>Constrained Tables</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getConstrainedTables()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList constrainedTables;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected AssertionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLConstraintsPackage.Literals.ASSERTION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SearchCondition getSearchCondition() {
+		return searchCondition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetSearchCondition(SearchCondition newSearchCondition, NotificationChain msgs) {
+		SearchCondition oldSearchCondition = searchCondition;
+		searchCondition = newSearchCondition;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLConstraintsPackage.ASSERTION__SEARCH_CONDITION, oldSearchCondition, newSearchCondition);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSearchCondition(SearchCondition newSearchCondition) {
+		if (newSearchCondition != searchCondition) {
+			NotificationChain msgs = null;
+			if (searchCondition != null)
+				msgs = ((InternalEObject)searchCondition).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLConstraintsPackage.ASSERTION__SEARCH_CONDITION, null, msgs);
+			if (newSearchCondition != null)
+				msgs = ((InternalEObject)newSearchCondition).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SQLConstraintsPackage.ASSERTION__SEARCH_CONDITION, null, msgs);
+			msgs = basicSetSearchCondition(newSearchCondition, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLConstraintsPackage.ASSERTION__SEARCH_CONDITION, newSearchCondition, newSearchCondition));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Schema getSchema() {
+		if (schema != null && schema.eIsProxy()) {
+			InternalEObject oldSchema = (InternalEObject)schema;
+			schema = (Schema)eResolveProxy(oldSchema);
+			if (schema != oldSchema) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SQLConstraintsPackage.ASSERTION__SCHEMA, oldSchema, schema));
+			}
+		}
+		return schema;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Schema basicGetSchema() {
+		return schema;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetSchema(Schema newSchema, NotificationChain msgs) {
+		Schema oldSchema = schema;
+		schema = newSchema;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLConstraintsPackage.ASSERTION__SCHEMA, oldSchema, newSchema);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSchema(Schema newSchema) {
+		if (newSchema != schema) {
+			NotificationChain msgs = null;
+			if (schema != null)
+				msgs = ((InternalEObject)schema).eInverseRemove(this, SQLSchemaPackage.SCHEMA__ASSERTIONS, Schema.class, msgs);
+			if (newSchema != null)
+				msgs = ((InternalEObject)newSchema).eInverseAdd(this, SQLSchemaPackage.SCHEMA__ASSERTIONS, Schema.class, msgs);
+			msgs = basicSetSchema(newSchema, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLConstraintsPackage.ASSERTION__SCHEMA, newSchema, newSchema));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getConstrainedTables() {
+		if (constrainedTables == null) {
+			constrainedTables = new EObjectResolvingEList(BaseTable.class, this, SQLConstraintsPackage.ASSERTION__CONSTRAINED_TABLES);
+		}
+		return constrainedTables;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLConstraintsPackage.ASSERTION__SCHEMA:
+				if (schema != null)
+					msgs = ((InternalEObject)schema).eInverseRemove(this, SQLSchemaPackage.SCHEMA__ASSERTIONS, Schema.class, msgs);
+				return basicSetSchema((Schema)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLConstraintsPackage.ASSERTION__SEARCH_CONDITION:
+				return basicSetSearchCondition(null, msgs);
+			case SQLConstraintsPackage.ASSERTION__SCHEMA:
+				return basicSetSchema(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLConstraintsPackage.ASSERTION__SEARCH_CONDITION:
+				return getSearchCondition();
+			case SQLConstraintsPackage.ASSERTION__SCHEMA:
+				if (resolve) return getSchema();
+				return basicGetSchema();
+			case SQLConstraintsPackage.ASSERTION__CONSTRAINED_TABLES:
+				return getConstrainedTables();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLConstraintsPackage.ASSERTION__SEARCH_CONDITION:
+				setSearchCondition((SearchCondition)newValue);
+				return;
+			case SQLConstraintsPackage.ASSERTION__SCHEMA:
+				setSchema((Schema)newValue);
+				return;
+			case SQLConstraintsPackage.ASSERTION__CONSTRAINED_TABLES:
+				getConstrainedTables().clear();
+				getConstrainedTables().addAll((Collection)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLConstraintsPackage.ASSERTION__SEARCH_CONDITION:
+				setSearchCondition((SearchCondition)null);
+				return;
+			case SQLConstraintsPackage.ASSERTION__SCHEMA:
+				setSchema((Schema)null);
+				return;
+			case SQLConstraintsPackage.ASSERTION__CONSTRAINED_TABLES:
+				getConstrainedTables().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLConstraintsPackage.ASSERTION__SEARCH_CONDITION:
+				return searchCondition != null;
+			case SQLConstraintsPackage.ASSERTION__SCHEMA:
+				return schema != null;
+			case SQLConstraintsPackage.ASSERTION__CONSTRAINED_TABLES:
+				return constrainedTables != null && !constrainedTables.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //AssertionImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/impl/CheckConstraintImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/impl/CheckConstraintImpl.java
new file mode 100644
index 0000000..c1ae0fb
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/impl/CheckConstraintImpl.java
@@ -0,0 +1,180 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.constraints.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.constraints.CheckConstraint;
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;
+import org.eclipse.datatools.modelbase.sql.expressions.SearchCondition;
+import org.eclipse.datatools.modelbase.sql.tables.BaseTable;
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Check Constraint</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.impl.CheckConstraintImpl#getSearchCondition <em>Search Condition</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CheckConstraintImpl extends TableConstraintImpl implements CheckConstraint {
+	/**
+	 * The cached value of the '{@link #getSearchCondition() <em>Search Condition</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSearchCondition()
+	 * @generated
+	 * @ordered
+	 */
+	protected SearchCondition searchCondition;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected CheckConstraintImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLConstraintsPackage.Literals.CHECK_CONSTRAINT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SearchCondition getSearchCondition() {
+		return searchCondition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetSearchCondition(SearchCondition newSearchCondition, NotificationChain msgs) {
+		SearchCondition oldSearchCondition = searchCondition;
+		searchCondition = newSearchCondition;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLConstraintsPackage.CHECK_CONSTRAINT__SEARCH_CONDITION, oldSearchCondition, newSearchCondition);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSearchCondition(SearchCondition newSearchCondition) {
+		if (newSearchCondition != searchCondition) {
+			NotificationChain msgs = null;
+			if (searchCondition != null)
+				msgs = ((InternalEObject)searchCondition).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLConstraintsPackage.CHECK_CONSTRAINT__SEARCH_CONDITION, null, msgs);
+			if (newSearchCondition != null)
+				msgs = ((InternalEObject)newSearchCondition).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SQLConstraintsPackage.CHECK_CONSTRAINT__SEARCH_CONDITION, null, msgs);
+			msgs = basicSetSearchCondition(newSearchCondition, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLConstraintsPackage.CHECK_CONSTRAINT__SEARCH_CONDITION, newSearchCondition, newSearchCondition));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLConstraintsPackage.CHECK_CONSTRAINT__SEARCH_CONDITION:
+				return basicSetSearchCondition(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLConstraintsPackage.CHECK_CONSTRAINT__SEARCH_CONDITION:
+				return getSearchCondition();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLConstraintsPackage.CHECK_CONSTRAINT__SEARCH_CONDITION:
+				setSearchCondition((SearchCondition)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLConstraintsPackage.CHECK_CONSTRAINT__SEARCH_CONDITION:
+				setSearchCondition((SearchCondition)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLConstraintsPackage.CHECK_CONSTRAINT__SEARCH_CONDITION:
+				return searchCondition != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //CheckConstraintImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/impl/ConstraintImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/impl/ConstraintImpl.java
new file mode 100644
index 0000000..68e0299
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/impl/ConstraintImpl.java
@@ -0,0 +1,276 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.constraints.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.constraints.Constraint;
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Constraint</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.impl.ConstraintImpl#isDeferrable <em>Deferrable</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.impl.ConstraintImpl#isInitiallyDeferred <em>Initially Deferred</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.impl.ConstraintImpl#isEnforced <em>Enforced</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class ConstraintImpl extends SQLObjectImpl implements Constraint {
+	/**
+	 * The default value of the '{@link #isDeferrable() <em>Deferrable</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isDeferrable()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean DEFERRABLE_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isDeferrable() <em>Deferrable</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isDeferrable()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean deferrable = DEFERRABLE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isInitiallyDeferred() <em>Initially Deferred</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isInitiallyDeferred()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean INITIALLY_DEFERRED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isInitiallyDeferred() <em>Initially Deferred</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isInitiallyDeferred()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean initiallyDeferred = INITIALLY_DEFERRED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isEnforced() <em>Enforced</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isEnforced()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean ENFORCED_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isEnforced() <em>Enforced</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isEnforced()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean enforced = ENFORCED_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ConstraintImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLConstraintsPackage.Literals.CONSTRAINT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isDeferrable() {
+		return deferrable;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDeferrable(boolean newDeferrable) {
+		boolean oldDeferrable = deferrable;
+		deferrable = newDeferrable;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLConstraintsPackage.CONSTRAINT__DEFERRABLE, oldDeferrable, deferrable));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isInitiallyDeferred() {
+		return initiallyDeferred;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setInitiallyDeferred(boolean newInitiallyDeferred) {
+		boolean oldInitiallyDeferred = initiallyDeferred;
+		initiallyDeferred = newInitiallyDeferred;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLConstraintsPackage.CONSTRAINT__INITIALLY_DEFERRED, oldInitiallyDeferred, initiallyDeferred));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isEnforced() {
+		return enforced;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setEnforced(boolean newEnforced) {
+		boolean oldEnforced = enforced;
+		enforced = newEnforced;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLConstraintsPackage.CONSTRAINT__ENFORCED, oldEnforced, enforced));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLConstraintsPackage.CONSTRAINT__DEFERRABLE:
+				return isDeferrable() ? Boolean.TRUE : Boolean.FALSE;
+			case SQLConstraintsPackage.CONSTRAINT__INITIALLY_DEFERRED:
+				return isInitiallyDeferred() ? Boolean.TRUE : Boolean.FALSE;
+			case SQLConstraintsPackage.CONSTRAINT__ENFORCED:
+				return isEnforced() ? Boolean.TRUE : Boolean.FALSE;
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLConstraintsPackage.CONSTRAINT__DEFERRABLE:
+				setDeferrable(((Boolean)newValue).booleanValue());
+				return;
+			case SQLConstraintsPackage.CONSTRAINT__INITIALLY_DEFERRED:
+				setInitiallyDeferred(((Boolean)newValue).booleanValue());
+				return;
+			case SQLConstraintsPackage.CONSTRAINT__ENFORCED:
+				setEnforced(((Boolean)newValue).booleanValue());
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLConstraintsPackage.CONSTRAINT__DEFERRABLE:
+				setDeferrable(DEFERRABLE_EDEFAULT);
+				return;
+			case SQLConstraintsPackage.CONSTRAINT__INITIALLY_DEFERRED:
+				setInitiallyDeferred(INITIALLY_DEFERRED_EDEFAULT);
+				return;
+			case SQLConstraintsPackage.CONSTRAINT__ENFORCED:
+				setEnforced(ENFORCED_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLConstraintsPackage.CONSTRAINT__DEFERRABLE:
+				return deferrable != DEFERRABLE_EDEFAULT;
+			case SQLConstraintsPackage.CONSTRAINT__INITIALLY_DEFERRED:
+				return initiallyDeferred != INITIALLY_DEFERRED_EDEFAULT;
+			case SQLConstraintsPackage.CONSTRAINT__ENFORCED:
+				return enforced != ENFORCED_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (deferrable: "); //$NON-NLS-1$
+		result.append(deferrable);
+		result.append(", initiallyDeferred: "); //$NON-NLS-1$
+		result.append(initiallyDeferred);
+		result.append(", enforced: "); //$NON-NLS-1$
+		result.append(enforced);
+		result.append(')');
+		return result.toString();
+	}
+
+} //ConstraintImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/impl/ForeignKeyImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/impl/ForeignKeyImpl.java
new file mode 100644
index 0000000..48be9a6
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/impl/ForeignKeyImpl.java
@@ -0,0 +1,604 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.constraints.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.constraints.ForeignKey;
+import org.eclipse.datatools.modelbase.sql.constraints.Index;
+import org.eclipse.datatools.modelbase.sql.constraints.MatchType;
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;
+import org.eclipse.datatools.modelbase.sql.constraints.UniqueConstraint;
+import org.eclipse.datatools.modelbase.sql.schema.ReferentialActionType;
+import org.eclipse.datatools.modelbase.sql.tables.BaseTable;
+import org.eclipse.datatools.modelbase.sql.tables.Column;
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Foreign Key</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.impl.ForeignKeyImpl#getMatch <em>Match</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.impl.ForeignKeyImpl#getOnUpdate <em>On Update</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.impl.ForeignKeyImpl#getOnDelete <em>On Delete</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.impl.ForeignKeyImpl#getUniqueConstraint <em>Unique Constraint</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.impl.ForeignKeyImpl#getReferencedMembers <em>Referenced Members</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.impl.ForeignKeyImpl#getUniqueIndex <em>Unique Index</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.impl.ForeignKeyImpl#getReferencedTable <em>Referenced Table</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ForeignKeyImpl extends ReferenceConstraintImpl implements ForeignKey {
+	/**
+	 * The default value of the '{@link #getMatch() <em>Match</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMatch()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final MatchType MATCH_EDEFAULT = MatchType.MATCH_SIMPLE_LITERAL;
+
+	/**
+	 * The cached value of the '{@link #getMatch() <em>Match</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMatch()
+	 * @generated
+	 * @ordered
+	 */
+	protected MatchType match = MATCH_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getOnUpdate() <em>On Update</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getOnUpdate()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final ReferentialActionType ON_UPDATE_EDEFAULT = ReferentialActionType.NO_ACTION_LITERAL;
+
+	/**
+	 * The cached value of the '{@link #getOnUpdate() <em>On Update</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getOnUpdate()
+	 * @generated
+	 * @ordered
+	 */
+	protected ReferentialActionType onUpdate = ON_UPDATE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getOnDelete() <em>On Delete</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getOnDelete()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final ReferentialActionType ON_DELETE_EDEFAULT = ReferentialActionType.NO_ACTION_LITERAL;
+
+	/**
+	 * The cached value of the '{@link #getOnDelete() <em>On Delete</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getOnDelete()
+	 * @generated
+	 * @ordered
+	 */
+	protected ReferentialActionType onDelete = ON_DELETE_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getUniqueConstraint() <em>Unique Constraint</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getUniqueConstraint()
+	 * @generated
+	 * @ordered
+	 */
+	protected UniqueConstraint uniqueConstraint;
+
+	/**
+	 * The cached value of the '{@link #getReferencedMembers() <em>Referenced Members</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getReferencedMembers()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList referencedMembers;
+
+	/**
+	 * The cached value of the '{@link #getUniqueIndex() <em>Unique Index</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getUniqueIndex()
+	 * @generated
+	 * @ordered
+	 */
+	protected Index uniqueIndex;
+
+	/**
+	 * The cached value of the '{@link #getReferencedTable() <em>Referenced Table</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getReferencedTable()
+	 * @generated
+	 * @ordered
+	 */
+	protected BaseTable referencedTable;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ForeignKeyImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLConstraintsPackage.Literals.FOREIGN_KEY;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public MatchType getMatch() {
+		return match;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMatch(MatchType newMatch) {
+		MatchType oldMatch = match;
+		match = newMatch == null ? MATCH_EDEFAULT : newMatch;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLConstraintsPackage.FOREIGN_KEY__MATCH, oldMatch, match));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ReferentialActionType getOnUpdate() {
+		return onUpdate;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setOnUpdate(ReferentialActionType newOnUpdate) {
+		ReferentialActionType oldOnUpdate = onUpdate;
+		onUpdate = newOnUpdate == null ? ON_UPDATE_EDEFAULT : newOnUpdate;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLConstraintsPackage.FOREIGN_KEY__ON_UPDATE, oldOnUpdate, onUpdate));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ReferentialActionType getOnDelete() {
+		return onDelete;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setOnDelete(ReferentialActionType newOnDelete) {
+		ReferentialActionType oldOnDelete = onDelete;
+		onDelete = newOnDelete == null ? ON_DELETE_EDEFAULT : newOnDelete;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLConstraintsPackage.FOREIGN_KEY__ON_DELETE, oldOnDelete, onDelete));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UniqueConstraint getUniqueConstraint() {
+		if (uniqueConstraint != null && uniqueConstraint.eIsProxy()) {
+			InternalEObject oldUniqueConstraint = (InternalEObject)uniqueConstraint;
+			uniqueConstraint = (UniqueConstraint)eResolveProxy(oldUniqueConstraint);
+			if (uniqueConstraint != oldUniqueConstraint) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SQLConstraintsPackage.FOREIGN_KEY__UNIQUE_CONSTRAINT, oldUniqueConstraint, uniqueConstraint));
+			}
+		}
+		return uniqueConstraint;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UniqueConstraint basicGetUniqueConstraint() {
+		return uniqueConstraint;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetUniqueConstraint(UniqueConstraint newUniqueConstraint, NotificationChain msgs) {
+		UniqueConstraint oldUniqueConstraint = uniqueConstraint;
+		uniqueConstraint = newUniqueConstraint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLConstraintsPackage.FOREIGN_KEY__UNIQUE_CONSTRAINT, oldUniqueConstraint, newUniqueConstraint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setUniqueConstraint(UniqueConstraint newUniqueConstraint) {
+		if (newUniqueConstraint != uniqueConstraint) {
+			NotificationChain msgs = null;
+			if (uniqueConstraint != null)
+				msgs = ((InternalEObject)uniqueConstraint).eInverseRemove(this, SQLConstraintsPackage.UNIQUE_CONSTRAINT__FOREIGN_KEY, UniqueConstraint.class, msgs);
+			if (newUniqueConstraint != null)
+				msgs = ((InternalEObject)newUniqueConstraint).eInverseAdd(this, SQLConstraintsPackage.UNIQUE_CONSTRAINT__FOREIGN_KEY, UniqueConstraint.class, msgs);
+			msgs = basicSetUniqueConstraint(newUniqueConstraint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLConstraintsPackage.FOREIGN_KEY__UNIQUE_CONSTRAINT, newUniqueConstraint, newUniqueConstraint));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getReferencedMembers() {
+		if (referencedMembers == null) {
+			referencedMembers = new EObjectResolvingEList(Column.class, this, SQLConstraintsPackage.FOREIGN_KEY__REFERENCED_MEMBERS);
+		}
+		return referencedMembers;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Index getUniqueIndex() {
+		if (uniqueIndex != null && uniqueIndex.eIsProxy()) {
+			InternalEObject oldUniqueIndex = (InternalEObject)uniqueIndex;
+			uniqueIndex = (Index)eResolveProxy(oldUniqueIndex);
+			if (uniqueIndex != oldUniqueIndex) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SQLConstraintsPackage.FOREIGN_KEY__UNIQUE_INDEX, oldUniqueIndex, uniqueIndex));
+			}
+		}
+		return uniqueIndex;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Index basicGetUniqueIndex() {
+		return uniqueIndex;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetUniqueIndex(Index newUniqueIndex, NotificationChain msgs) {
+		Index oldUniqueIndex = uniqueIndex;
+		uniqueIndex = newUniqueIndex;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLConstraintsPackage.FOREIGN_KEY__UNIQUE_INDEX, oldUniqueIndex, newUniqueIndex);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setUniqueIndex(Index newUniqueIndex) {
+		if (newUniqueIndex != uniqueIndex) {
+			NotificationChain msgs = null;
+			if (uniqueIndex != null)
+				msgs = ((InternalEObject)uniqueIndex).eInverseRemove(this, SQLConstraintsPackage.INDEX__FOREIGN_KEY, Index.class, msgs);
+			if (newUniqueIndex != null)
+				msgs = ((InternalEObject)newUniqueIndex).eInverseAdd(this, SQLConstraintsPackage.INDEX__FOREIGN_KEY, Index.class, msgs);
+			msgs = basicSetUniqueIndex(newUniqueIndex, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLConstraintsPackage.FOREIGN_KEY__UNIQUE_INDEX, newUniqueIndex, newUniqueIndex));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BaseTable getReferencedTable() {
+		if (referencedTable != null && referencedTable.eIsProxy()) {
+			InternalEObject oldReferencedTable = (InternalEObject)referencedTable;
+			referencedTable = (BaseTable)eResolveProxy(oldReferencedTable);
+			if (referencedTable != oldReferencedTable) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SQLConstraintsPackage.FOREIGN_KEY__REFERENCED_TABLE, oldReferencedTable, referencedTable));
+			}
+		}
+		return referencedTable;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BaseTable basicGetReferencedTable() {
+		return referencedTable;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetReferencedTable(BaseTable newReferencedTable, NotificationChain msgs) {
+		BaseTable oldReferencedTable = referencedTable;
+		referencedTable = newReferencedTable;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLConstraintsPackage.FOREIGN_KEY__REFERENCED_TABLE, oldReferencedTable, newReferencedTable);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setReferencedTable(BaseTable newReferencedTable) {
+		if (newReferencedTable != referencedTable) {
+			NotificationChain msgs = null;
+			if (referencedTable != null)
+				msgs = ((InternalEObject)referencedTable).eInverseRemove(this, SQLTablesPackage.BASE_TABLE__REFERENCING_FOREIGN_KEYS, BaseTable.class, msgs);
+			if (newReferencedTable != null)
+				msgs = ((InternalEObject)newReferencedTable).eInverseAdd(this, SQLTablesPackage.BASE_TABLE__REFERENCING_FOREIGN_KEYS, BaseTable.class, msgs);
+			msgs = basicSetReferencedTable(newReferencedTable, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLConstraintsPackage.FOREIGN_KEY__REFERENCED_TABLE, newReferencedTable, newReferencedTable));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLConstraintsPackage.FOREIGN_KEY__UNIQUE_CONSTRAINT:
+				if (uniqueConstraint != null)
+					msgs = ((InternalEObject)uniqueConstraint).eInverseRemove(this, SQLConstraintsPackage.UNIQUE_CONSTRAINT__FOREIGN_KEY, UniqueConstraint.class, msgs);
+				return basicSetUniqueConstraint((UniqueConstraint)otherEnd, msgs);
+			case SQLConstraintsPackage.FOREIGN_KEY__UNIQUE_INDEX:
+				if (uniqueIndex != null)
+					msgs = ((InternalEObject)uniqueIndex).eInverseRemove(this, SQLConstraintsPackage.INDEX__FOREIGN_KEY, Index.class, msgs);
+				return basicSetUniqueIndex((Index)otherEnd, msgs);
+			case SQLConstraintsPackage.FOREIGN_KEY__REFERENCED_TABLE:
+				if (referencedTable != null)
+					msgs = ((InternalEObject)referencedTable).eInverseRemove(this, SQLTablesPackage.BASE_TABLE__REFERENCING_FOREIGN_KEYS, BaseTable.class, msgs);
+				return basicSetReferencedTable((BaseTable)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLConstraintsPackage.FOREIGN_KEY__UNIQUE_CONSTRAINT:
+				return basicSetUniqueConstraint(null, msgs);
+			case SQLConstraintsPackage.FOREIGN_KEY__UNIQUE_INDEX:
+				return basicSetUniqueIndex(null, msgs);
+			case SQLConstraintsPackage.FOREIGN_KEY__REFERENCED_TABLE:
+				return basicSetReferencedTable(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLConstraintsPackage.FOREIGN_KEY__MATCH:
+				return getMatch();
+			case SQLConstraintsPackage.FOREIGN_KEY__ON_UPDATE:
+				return getOnUpdate();
+			case SQLConstraintsPackage.FOREIGN_KEY__ON_DELETE:
+				return getOnDelete();
+			case SQLConstraintsPackage.FOREIGN_KEY__UNIQUE_CONSTRAINT:
+				if (resolve) return getUniqueConstraint();
+				return basicGetUniqueConstraint();
+			case SQLConstraintsPackage.FOREIGN_KEY__REFERENCED_MEMBERS:
+				return getReferencedMembers();
+			case SQLConstraintsPackage.FOREIGN_KEY__UNIQUE_INDEX:
+				if (resolve) return getUniqueIndex();
+				return basicGetUniqueIndex();
+			case SQLConstraintsPackage.FOREIGN_KEY__REFERENCED_TABLE:
+				if (resolve) return getReferencedTable();
+				return basicGetReferencedTable();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLConstraintsPackage.FOREIGN_KEY__MATCH:
+				setMatch((MatchType)newValue);
+				return;
+			case SQLConstraintsPackage.FOREIGN_KEY__ON_UPDATE:
+				setOnUpdate((ReferentialActionType)newValue);
+				return;
+			case SQLConstraintsPackage.FOREIGN_KEY__ON_DELETE:
+				setOnDelete((ReferentialActionType)newValue);
+				return;
+			case SQLConstraintsPackage.FOREIGN_KEY__UNIQUE_CONSTRAINT:
+				setUniqueConstraint((UniqueConstraint)newValue);
+				return;
+			case SQLConstraintsPackage.FOREIGN_KEY__REFERENCED_MEMBERS:
+				getReferencedMembers().clear();
+				getReferencedMembers().addAll((Collection)newValue);
+				return;
+			case SQLConstraintsPackage.FOREIGN_KEY__UNIQUE_INDEX:
+				setUniqueIndex((Index)newValue);
+				return;
+			case SQLConstraintsPackage.FOREIGN_KEY__REFERENCED_TABLE:
+				setReferencedTable((BaseTable)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLConstraintsPackage.FOREIGN_KEY__MATCH:
+				setMatch(MATCH_EDEFAULT);
+				return;
+			case SQLConstraintsPackage.FOREIGN_KEY__ON_UPDATE:
+				setOnUpdate(ON_UPDATE_EDEFAULT);
+				return;
+			case SQLConstraintsPackage.FOREIGN_KEY__ON_DELETE:
+				setOnDelete(ON_DELETE_EDEFAULT);
+				return;
+			case SQLConstraintsPackage.FOREIGN_KEY__UNIQUE_CONSTRAINT:
+				setUniqueConstraint((UniqueConstraint)null);
+				return;
+			case SQLConstraintsPackage.FOREIGN_KEY__REFERENCED_MEMBERS:
+				getReferencedMembers().clear();
+				return;
+			case SQLConstraintsPackage.FOREIGN_KEY__UNIQUE_INDEX:
+				setUniqueIndex((Index)null);
+				return;
+			case SQLConstraintsPackage.FOREIGN_KEY__REFERENCED_TABLE:
+				setReferencedTable((BaseTable)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLConstraintsPackage.FOREIGN_KEY__MATCH:
+				return match != MATCH_EDEFAULT;
+			case SQLConstraintsPackage.FOREIGN_KEY__ON_UPDATE:
+				return onUpdate != ON_UPDATE_EDEFAULT;
+			case SQLConstraintsPackage.FOREIGN_KEY__ON_DELETE:
+				return onDelete != ON_DELETE_EDEFAULT;
+			case SQLConstraintsPackage.FOREIGN_KEY__UNIQUE_CONSTRAINT:
+				return uniqueConstraint != null;
+			case SQLConstraintsPackage.FOREIGN_KEY__REFERENCED_MEMBERS:
+				return referencedMembers != null && !referencedMembers.isEmpty();
+			case SQLConstraintsPackage.FOREIGN_KEY__UNIQUE_INDEX:
+				return uniqueIndex != null;
+			case SQLConstraintsPackage.FOREIGN_KEY__REFERENCED_TABLE:
+				return referencedTable != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (match: "); //$NON-NLS-1$
+		result.append(match);
+		result.append(", onUpdate: "); //$NON-NLS-1$
+		result.append(onUpdate);
+		result.append(", onDelete: "); //$NON-NLS-1$
+		result.append(onDelete);
+		result.append(')');
+		return result.toString();
+	}
+
+} //ForeignKeyImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/impl/IndexExpressionImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/impl/IndexExpressionImpl.java
new file mode 100644
index 0000000..2701036
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/impl/IndexExpressionImpl.java
@@ -0,0 +1,162 @@
+/**

+ * <copyright>

+ * </copyright>

+ *

+ * $Id$

+ */

+package org.eclipse.datatools.modelbase.sql.constraints.impl;

+

+import org.eclipse.datatools.modelbase.sql.constraints.IndexExpression;

+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;

+

+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;

+

+import org.eclipse.emf.common.notify.Notification;

+

+import org.eclipse.emf.ecore.EClass;

+

+import org.eclipse.emf.ecore.impl.ENotificationImpl;

+

+/**

+ * <!-- begin-user-doc -->

+ * An implementation of the model object '<em><b>Index Expression</b></em>'.

+ * <!-- end-user-doc -->

+ * <p>

+ * The following features are implemented:

+ * <ul>

+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.impl.IndexExpressionImpl#getSql <em>Sql</em>}</li>

+ * </ul>

+ * </p>

+ *

+ * @generated

+ */

+public class IndexExpressionImpl extends SQLObjectImpl implements IndexExpression {

+	/**

+	 * The default value of the '{@link #getSql() <em>Sql</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getSql()

+	 * @generated

+	 * @ordered

+	 */

+	protected static final String SQL_EDEFAULT = null;

+

+	/**

+	 * The cached value of the '{@link #getSql() <em>Sql</em>}' attribute.

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @see #getSql()

+	 * @generated

+	 * @ordered

+	 */

+	protected String sql = SQL_EDEFAULT;

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected IndexExpressionImpl() {

+		super();

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	protected EClass eStaticClass() {

+		return SQLConstraintsPackage.Literals.INDEX_EXPRESSION;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public String getSql() {

+		return sql;

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void setSql(String newSql) {

+		String oldSql = sql;

+		sql = newSql;

+		if (eNotificationRequired())

+			eNotify(new ENotificationImpl(this, Notification.SET, SQLConstraintsPackage.INDEX_EXPRESSION__SQL, oldSql, sql));

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public Object eGet(int featureID, boolean resolve, boolean coreType) {

+		switch (featureID) {

+			case SQLConstraintsPackage.INDEX_EXPRESSION__SQL:

+				return getSql();

+		}

+		return super.eGet(featureID, resolve, coreType);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void eSet(int featureID, Object newValue) {

+		switch (featureID) {

+			case SQLConstraintsPackage.INDEX_EXPRESSION__SQL:

+				setSql((String)newValue);

+				return;

+		}

+		super.eSet(featureID, newValue);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public void eUnset(int featureID) {

+		switch (featureID) {

+			case SQLConstraintsPackage.INDEX_EXPRESSION__SQL:

+				setSql(SQL_EDEFAULT);

+				return;

+		}

+		super.eUnset(featureID);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public boolean eIsSet(int featureID) {

+		switch (featureID) {

+			case SQLConstraintsPackage.INDEX_EXPRESSION__SQL:

+				return SQL_EDEFAULT == null ? sql != null : !SQL_EDEFAULT.equals(sql);

+		}

+		return super.eIsSet(featureID);

+	}

+

+	/**

+	 * <!-- begin-user-doc -->

+	 * <!-- end-user-doc -->

+	 * @generated

+	 */

+	public String toString() {

+		if (eIsProxy()) return super.toString();

+

+		StringBuffer result = new StringBuffer(super.toString());

+		result.append(" (sql: "); //$NON-NLS-1$

+		result.append(sql);

+		result.append(')');

+		return result.toString();

+	}

+

+} //IndexExpressionImpl

diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/impl/IndexImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/impl/IndexImpl.java
new file mode 100644
index 0000000..217790f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/impl/IndexImpl.java
@@ -0,0 +1,647 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.constraints.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.constraints.ForeignKey;
+import org.eclipse.datatools.modelbase.sql.constraints.Index;
+import org.eclipse.datatools.modelbase.sql.constraints.IndexMember;
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Index</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.impl.IndexImpl#getSchema <em>Schema</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.impl.IndexImpl#isClustered <em>Clustered</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.impl.IndexImpl#getFillFactor <em>Fill Factor</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.impl.IndexImpl#isUnique <em>Unique</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.impl.IndexImpl#isSystemGenerated <em>System Generated</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.impl.IndexImpl#getMembers <em>Members</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.impl.IndexImpl#getTable <em>Table</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.impl.IndexImpl#getForeignKey <em>Foreign Key</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.impl.IndexImpl#getIncludedMembers <em>Included Members</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class IndexImpl extends SQLObjectImpl implements Index {
+	/**
+	 * The cached value of the '{@link #getSchema() <em>Schema</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSchema()
+	 * @generated
+	 * @ordered
+	 */
+	protected Schema schema;
+
+	/**
+	 * The default value of the '{@link #isClustered() <em>Clustered</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isClustered()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean CLUSTERED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isClustered() <em>Clustered</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isClustered()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean clustered = CLUSTERED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getFillFactor() <em>Fill Factor</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFillFactor()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int FILL_FACTOR_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getFillFactor() <em>Fill Factor</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFillFactor()
+	 * @generated
+	 * @ordered
+	 */
+	protected int fillFactor = FILL_FACTOR_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isUnique() <em>Unique</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isUnique()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean UNIQUE_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isUnique() <em>Unique</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isUnique()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean unique = UNIQUE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isSystemGenerated() <em>System Generated</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isSystemGenerated()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean SYSTEM_GENERATED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isSystemGenerated() <em>System Generated</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isSystemGenerated()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean systemGenerated = SYSTEM_GENERATED_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getMembers() <em>Members</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMembers()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList members;
+
+	/**
+	 * The cached value of the '{@link #getTable() <em>Table</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTable()
+	 * @generated
+	 * @ordered
+	 */
+	protected Table table;
+
+	/**
+	 * The cached value of the '{@link #getForeignKey() <em>Foreign Key</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getForeignKey()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList foreignKey;
+
+	/**
+	 * The cached value of the '{@link #getIncludedMembers() <em>Included Members</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getIncludedMembers()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList includedMembers;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IndexImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLConstraintsPackage.Literals.INDEX;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Schema getSchema() {
+		if (schema != null && schema.eIsProxy()) {
+			InternalEObject oldSchema = (InternalEObject)schema;
+			schema = (Schema)eResolveProxy(oldSchema);
+			if (schema != oldSchema) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SQLConstraintsPackage.INDEX__SCHEMA, oldSchema, schema));
+			}
+		}
+		return schema;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Schema basicGetSchema() {
+		return schema;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetSchema(Schema newSchema, NotificationChain msgs) {
+		Schema oldSchema = schema;
+		schema = newSchema;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLConstraintsPackage.INDEX__SCHEMA, oldSchema, newSchema);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSchema(Schema newSchema) {
+		if (newSchema != schema) {
+			NotificationChain msgs = null;
+			if (schema != null)
+				msgs = ((InternalEObject)schema).eInverseRemove(this, SQLSchemaPackage.SCHEMA__INDICES, Schema.class, msgs);
+			if (newSchema != null)
+				msgs = ((InternalEObject)newSchema).eInverseAdd(this, SQLSchemaPackage.SCHEMA__INDICES, Schema.class, msgs);
+			msgs = basicSetSchema(newSchema, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLConstraintsPackage.INDEX__SCHEMA, newSchema, newSchema));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isClustered() {
+		return clustered;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setClustered(boolean newClustered) {
+		boolean oldClustered = clustered;
+		clustered = newClustered;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLConstraintsPackage.INDEX__CLUSTERED, oldClustered, clustered));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getFillFactor() {
+		return fillFactor;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setFillFactor(int newFillFactor) {
+		int oldFillFactor = fillFactor;
+		fillFactor = newFillFactor;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLConstraintsPackage.INDEX__FILL_FACTOR, oldFillFactor, fillFactor));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isUnique() {
+		return unique;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setUnique(boolean newUnique) {
+		boolean oldUnique = unique;
+		unique = newUnique;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLConstraintsPackage.INDEX__UNIQUE, oldUnique, unique));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isSystemGenerated() {
+		return systemGenerated;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSystemGenerated(boolean newSystemGenerated) {
+		boolean oldSystemGenerated = systemGenerated;
+		systemGenerated = newSystemGenerated;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLConstraintsPackage.INDEX__SYSTEM_GENERATED, oldSystemGenerated, systemGenerated));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getMembers() {
+		if (members == null) {
+			members = new EObjectContainmentEList(IndexMember.class, this, SQLConstraintsPackage.INDEX__MEMBERS);
+		}
+		return members;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Table getTable() {
+		if (table != null && table.eIsProxy()) {
+			InternalEObject oldTable = (InternalEObject)table;
+			table = (Table)eResolveProxy(oldTable);
+			if (table != oldTable) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SQLConstraintsPackage.INDEX__TABLE, oldTable, table));
+			}
+		}
+		return table;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Table basicGetTable() {
+		return table;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetTable(Table newTable, NotificationChain msgs) {
+		Table oldTable = table;
+		table = newTable;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLConstraintsPackage.INDEX__TABLE, oldTable, newTable);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTable(Table newTable) {
+		if (newTable != table) {
+			NotificationChain msgs = null;
+			if (table != null)
+				msgs = ((InternalEObject)table).eInverseRemove(this, SQLTablesPackage.TABLE__INDEX, Table.class, msgs);
+			if (newTable != null)
+				msgs = ((InternalEObject)newTable).eInverseAdd(this, SQLTablesPackage.TABLE__INDEX, Table.class, msgs);
+			msgs = basicSetTable(newTable, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLConstraintsPackage.INDEX__TABLE, newTable, newTable));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getForeignKey() {
+		if (foreignKey == null) {
+			foreignKey = new EObjectWithInverseResolvingEList(ForeignKey.class, this, SQLConstraintsPackage.INDEX__FOREIGN_KEY, SQLConstraintsPackage.FOREIGN_KEY__UNIQUE_INDEX);
+		}
+		return foreignKey;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getIncludedMembers() {
+		if (includedMembers == null) {
+			includedMembers = new EObjectContainmentEList(IndexMember.class, this, SQLConstraintsPackage.INDEX__INCLUDED_MEMBERS);
+		}
+		return includedMembers;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLConstraintsPackage.INDEX__SCHEMA:
+				if (schema != null)
+					msgs = ((InternalEObject)schema).eInverseRemove(this, SQLSchemaPackage.SCHEMA__INDICES, Schema.class, msgs);
+				return basicSetSchema((Schema)otherEnd, msgs);
+			case SQLConstraintsPackage.INDEX__TABLE:
+				if (table != null)
+					msgs = ((InternalEObject)table).eInverseRemove(this, SQLTablesPackage.TABLE__INDEX, Table.class, msgs);
+				return basicSetTable((Table)otherEnd, msgs);
+			case SQLConstraintsPackage.INDEX__FOREIGN_KEY:
+				return ((InternalEList)getForeignKey()).basicAdd(otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLConstraintsPackage.INDEX__SCHEMA:
+				return basicSetSchema(null, msgs);
+			case SQLConstraintsPackage.INDEX__MEMBERS:
+				return ((InternalEList)getMembers()).basicRemove(otherEnd, msgs);
+			case SQLConstraintsPackage.INDEX__TABLE:
+				return basicSetTable(null, msgs);
+			case SQLConstraintsPackage.INDEX__FOREIGN_KEY:
+				return ((InternalEList)getForeignKey()).basicRemove(otherEnd, msgs);
+			case SQLConstraintsPackage.INDEX__INCLUDED_MEMBERS:
+				return ((InternalEList)getIncludedMembers()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLConstraintsPackage.INDEX__SCHEMA:
+				if (resolve) return getSchema();
+				return basicGetSchema();
+			case SQLConstraintsPackage.INDEX__CLUSTERED:
+				return isClustered() ? Boolean.TRUE : Boolean.FALSE;
+			case SQLConstraintsPackage.INDEX__FILL_FACTOR:
+				return new Integer(getFillFactor());
+			case SQLConstraintsPackage.INDEX__UNIQUE:
+				return isUnique() ? Boolean.TRUE : Boolean.FALSE;
+			case SQLConstraintsPackage.INDEX__SYSTEM_GENERATED:
+				return isSystemGenerated() ? Boolean.TRUE : Boolean.FALSE;
+			case SQLConstraintsPackage.INDEX__MEMBERS:
+				return getMembers();
+			case SQLConstraintsPackage.INDEX__TABLE:
+				if (resolve) return getTable();
+				return basicGetTable();
+			case SQLConstraintsPackage.INDEX__FOREIGN_KEY:
+				return getForeignKey();
+			case SQLConstraintsPackage.INDEX__INCLUDED_MEMBERS:
+				return getIncludedMembers();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLConstraintsPackage.INDEX__SCHEMA:
+				setSchema((Schema)newValue);
+				return;
+			case SQLConstraintsPackage.INDEX__CLUSTERED:
+				setClustered(((Boolean)newValue).booleanValue());
+				return;
+			case SQLConstraintsPackage.INDEX__FILL_FACTOR:
+				setFillFactor(((Integer)newValue).intValue());
+				return;
+			case SQLConstraintsPackage.INDEX__UNIQUE:
+				setUnique(((Boolean)newValue).booleanValue());
+				return;
+			case SQLConstraintsPackage.INDEX__SYSTEM_GENERATED:
+				setSystemGenerated(((Boolean)newValue).booleanValue());
+				return;
+			case SQLConstraintsPackage.INDEX__MEMBERS:
+				getMembers().clear();
+				getMembers().addAll((Collection)newValue);
+				return;
+			case SQLConstraintsPackage.INDEX__TABLE:
+				setTable((Table)newValue);
+				return;
+			case SQLConstraintsPackage.INDEX__FOREIGN_KEY:
+				getForeignKey().clear();
+				getForeignKey().addAll((Collection)newValue);
+				return;
+			case SQLConstraintsPackage.INDEX__INCLUDED_MEMBERS:
+				getIncludedMembers().clear();
+				getIncludedMembers().addAll((Collection)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLConstraintsPackage.INDEX__SCHEMA:
+				setSchema((Schema)null);
+				return;
+			case SQLConstraintsPackage.INDEX__CLUSTERED:
+				setClustered(CLUSTERED_EDEFAULT);
+				return;
+			case SQLConstraintsPackage.INDEX__FILL_FACTOR:
+				setFillFactor(FILL_FACTOR_EDEFAULT);
+				return;
+			case SQLConstraintsPackage.INDEX__UNIQUE:
+				setUnique(UNIQUE_EDEFAULT);
+				return;
+			case SQLConstraintsPackage.INDEX__SYSTEM_GENERATED:
+				setSystemGenerated(SYSTEM_GENERATED_EDEFAULT);
+				return;
+			case SQLConstraintsPackage.INDEX__MEMBERS:
+				getMembers().clear();
+				return;
+			case SQLConstraintsPackage.INDEX__TABLE:
+				setTable((Table)null);
+				return;
+			case SQLConstraintsPackage.INDEX__FOREIGN_KEY:
+				getForeignKey().clear();
+				return;
+			case SQLConstraintsPackage.INDEX__INCLUDED_MEMBERS:
+				getIncludedMembers().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLConstraintsPackage.INDEX__SCHEMA:
+				return schema != null;
+			case SQLConstraintsPackage.INDEX__CLUSTERED:
+				return clustered != CLUSTERED_EDEFAULT;
+			case SQLConstraintsPackage.INDEX__FILL_FACTOR:
+				return fillFactor != FILL_FACTOR_EDEFAULT;
+			case SQLConstraintsPackage.INDEX__UNIQUE:
+				return unique != UNIQUE_EDEFAULT;
+			case SQLConstraintsPackage.INDEX__SYSTEM_GENERATED:
+				return systemGenerated != SYSTEM_GENERATED_EDEFAULT;
+			case SQLConstraintsPackage.INDEX__MEMBERS:
+				return members != null && !members.isEmpty();
+			case SQLConstraintsPackage.INDEX__TABLE:
+				return table != null;
+			case SQLConstraintsPackage.INDEX__FOREIGN_KEY:
+				return foreignKey != null && !foreignKey.isEmpty();
+			case SQLConstraintsPackage.INDEX__INCLUDED_MEMBERS:
+				return includedMembers != null && !includedMembers.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (clustered: "); //$NON-NLS-1$
+		result.append(clustered);
+		result.append(", fillFactor: "); //$NON-NLS-1$
+		result.append(fillFactor);
+		result.append(", unique: "); //$NON-NLS-1$
+		result.append(unique);
+		result.append(", systemGenerated: "); //$NON-NLS-1$
+		result.append(systemGenerated);
+		result.append(')');
+		return result.toString();
+	}
+
+} //IndexImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/impl/IndexMemberImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/impl/IndexMemberImpl.java
new file mode 100644
index 0000000..1448a98
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/impl/IndexMemberImpl.java
@@ -0,0 +1,308 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.constraints.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.constraints.IncrementType;
+import org.eclipse.datatools.modelbase.sql.constraints.IndexExpression;
+import org.eclipse.datatools.modelbase.sql.constraints.IndexMember;
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.datatools.modelbase.sql.tables.Column;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Index Member</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.impl.IndexMemberImpl#getIncrementType <em>Increment Type</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.impl.IndexMemberImpl#getColumn <em>Column</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.impl.IndexMemberImpl#getExpression <em>Expression</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class IndexMemberImpl extends SQLObjectImpl implements IndexMember {
+	/**
+	 * The default value of the '{@link #getIncrementType() <em>Increment Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getIncrementType()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final IncrementType INCREMENT_TYPE_EDEFAULT = IncrementType.ASC_LITERAL;
+
+	/**
+	 * The cached value of the '{@link #getIncrementType() <em>Increment Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getIncrementType()
+	 * @generated
+	 * @ordered
+	 */
+	protected IncrementType incrementType = INCREMENT_TYPE_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getColumn() <em>Column</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getColumn()
+	 * @generated
+	 * @ordered
+	 */
+	protected Column column;
+
+	/**
+	 * The cached value of the '{@link #getExpression() <em>Expression</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getExpression()
+	 * @generated
+	 * @ordered
+	 */
+	protected IndexExpression expression;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IndexMemberImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLConstraintsPackage.Literals.INDEX_MEMBER;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IncrementType getIncrementType() {
+		return incrementType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setIncrementType(IncrementType newIncrementType) {
+		IncrementType oldIncrementType = incrementType;
+		incrementType = newIncrementType == null ? INCREMENT_TYPE_EDEFAULT : newIncrementType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLConstraintsPackage.INDEX_MEMBER__INCREMENT_TYPE, oldIncrementType, incrementType));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Column getColumn() {
+		if (column != null && column.eIsProxy()) {
+			InternalEObject oldColumn = (InternalEObject)column;
+			column = (Column)eResolveProxy(oldColumn);
+			if (column != oldColumn) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SQLConstraintsPackage.INDEX_MEMBER__COLUMN, oldColumn, column));
+			}
+		}
+		return column;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Column basicGetColumn() {
+		return column;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setColumn(Column newColumn) {
+		Column oldColumn = column;
+		column = newColumn;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLConstraintsPackage.INDEX_MEMBER__COLUMN, oldColumn, column));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IndexExpression getExpression() {
+		return expression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetExpression(IndexExpression newExpression, NotificationChain msgs) {
+		IndexExpression oldExpression = expression;
+		expression = newExpression;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLConstraintsPackage.INDEX_MEMBER__EXPRESSION, oldExpression, newExpression);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setExpression(IndexExpression newExpression) {
+		if (newExpression != expression) {
+			NotificationChain msgs = null;
+			if (expression != null)
+				msgs = ((InternalEObject)expression).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLConstraintsPackage.INDEX_MEMBER__EXPRESSION, null, msgs);
+			if (newExpression != null)
+				msgs = ((InternalEObject)newExpression).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SQLConstraintsPackage.INDEX_MEMBER__EXPRESSION, null, msgs);
+			msgs = basicSetExpression(newExpression, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLConstraintsPackage.INDEX_MEMBER__EXPRESSION, newExpression, newExpression));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLConstraintsPackage.INDEX_MEMBER__EXPRESSION:
+				return basicSetExpression(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLConstraintsPackage.INDEX_MEMBER__INCREMENT_TYPE:
+				return getIncrementType();
+			case SQLConstraintsPackage.INDEX_MEMBER__COLUMN:
+				if (resolve) return getColumn();
+				return basicGetColumn();
+			case SQLConstraintsPackage.INDEX_MEMBER__EXPRESSION:
+				return getExpression();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLConstraintsPackage.INDEX_MEMBER__INCREMENT_TYPE:
+				setIncrementType((IncrementType)newValue);
+				return;
+			case SQLConstraintsPackage.INDEX_MEMBER__COLUMN:
+				setColumn((Column)newValue);
+				return;
+			case SQLConstraintsPackage.INDEX_MEMBER__EXPRESSION:
+				setExpression((IndexExpression)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLConstraintsPackage.INDEX_MEMBER__INCREMENT_TYPE:
+				setIncrementType(INCREMENT_TYPE_EDEFAULT);
+				return;
+			case SQLConstraintsPackage.INDEX_MEMBER__COLUMN:
+				setColumn((Column)null);
+				return;
+			case SQLConstraintsPackage.INDEX_MEMBER__EXPRESSION:
+				setExpression((IndexExpression)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLConstraintsPackage.INDEX_MEMBER__INCREMENT_TYPE:
+				return incrementType != INCREMENT_TYPE_EDEFAULT;
+			case SQLConstraintsPackage.INDEX_MEMBER__COLUMN:
+				return column != null;
+			case SQLConstraintsPackage.INDEX_MEMBER__EXPRESSION:
+				return expression != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (incrementType: "); //$NON-NLS-1$
+		result.append(incrementType);
+		result.append(')');
+		return result.toString();
+	}
+
+} //IndexMemberImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/impl/PrimaryKeyImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/impl/PrimaryKeyImpl.java
new file mode 100644
index 0000000..7df7a39
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/impl/PrimaryKeyImpl.java
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.constraints.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.constraints.PrimaryKey;
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;
+import org.eclipse.datatools.modelbase.sql.tables.BaseTable;
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Primary Key</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class PrimaryKeyImpl extends UniqueConstraintImpl implements PrimaryKey {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected PrimaryKeyImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLConstraintsPackage.Literals.PRIMARY_KEY;
+	}
+
+} //PrimaryKeyImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/impl/ReferenceConstraintImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/impl/ReferenceConstraintImpl.java
new file mode 100644
index 0000000..0d77f85
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/impl/ReferenceConstraintImpl.java
@@ -0,0 +1,137 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.constraints.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.constraints.ReferenceConstraint;
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;
+import org.eclipse.datatools.modelbase.sql.tables.BaseTable;
+import org.eclipse.datatools.modelbase.sql.tables.Column;
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Reference Constraint</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.impl.ReferenceConstraintImpl#getMembers <em>Members</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class ReferenceConstraintImpl extends TableConstraintImpl implements ReferenceConstraint {
+	/**
+	 * The cached value of the '{@link #getMembers() <em>Members</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMembers()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList members;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ReferenceConstraintImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLConstraintsPackage.Literals.REFERENCE_CONSTRAINT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getMembers() {
+		if (members == null) {
+			members = new EObjectResolvingEList(Column.class, this, SQLConstraintsPackage.REFERENCE_CONSTRAINT__MEMBERS);
+		}
+		return members;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLConstraintsPackage.REFERENCE_CONSTRAINT__MEMBERS:
+				return getMembers();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLConstraintsPackage.REFERENCE_CONSTRAINT__MEMBERS:
+				getMembers().clear();
+				getMembers().addAll((Collection)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLConstraintsPackage.REFERENCE_CONSTRAINT__MEMBERS:
+				getMembers().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLConstraintsPackage.REFERENCE_CONSTRAINT__MEMBERS:
+				return members != null && !members.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //ReferenceConstraintImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/impl/SQLConstraintsFactoryImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/impl/SQLConstraintsFactoryImpl.java
new file mode 100644
index 0000000..17ac55b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/impl/SQLConstraintsFactoryImpl.java
@@ -0,0 +1,250 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.constraints.impl;
+
+import org.eclipse.datatools.modelbase.sql.constraints.*;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SQLConstraintsFactoryImpl extends EFactoryImpl implements SQLConstraintsFactory {
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static SQLConstraintsFactory init() {
+		try {
+			SQLConstraintsFactory theSQLConstraintsFactory = (SQLConstraintsFactory)EPackage.Registry.INSTANCE.getEFactory("http:///org/eclipse/datatools/modelbase/sql/constraints.ecore"); //$NON-NLS-1$ 
+			if (theSQLConstraintsFactory != null) {
+				return theSQLConstraintsFactory;
+			}
+		}
+		catch (Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new SQLConstraintsFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLConstraintsFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+			case SQLConstraintsPackage.ASSERTION: return createAssertion();
+			case SQLConstraintsPackage.CHECK_CONSTRAINT: return createCheckConstraint();
+			case SQLConstraintsPackage.FOREIGN_KEY: return createForeignKey();
+			case SQLConstraintsPackage.UNIQUE_CONSTRAINT: return createUniqueConstraint();
+			case SQLConstraintsPackage.PRIMARY_KEY: return createPrimaryKey();
+			case SQLConstraintsPackage.INDEX: return createIndex();
+			case SQLConstraintsPackage.INDEX_MEMBER: return createIndexMember();
+			case SQLConstraintsPackage.INDEX_EXPRESSION: return createIndexExpression();
+			default:
+				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object createFromString(EDataType eDataType, String initialValue) {
+		switch (eDataType.getClassifierID()) {
+			case SQLConstraintsPackage.MATCH_TYPE:
+				return createMatchTypeFromString(eDataType, initialValue);
+			case SQLConstraintsPackage.INCREMENT_TYPE:
+				return createIncrementTypeFromString(eDataType, initialValue);
+			default:
+				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertToString(EDataType eDataType, Object instanceValue) {
+		switch (eDataType.getClassifierID()) {
+			case SQLConstraintsPackage.MATCH_TYPE:
+				return convertMatchTypeToString(eDataType, instanceValue);
+			case SQLConstraintsPackage.INCREMENT_TYPE:
+				return convertIncrementTypeToString(eDataType, instanceValue);
+			default:
+				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Assertion createAssertion() {
+		AssertionImpl assertion = new AssertionImpl();
+		return assertion;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public CheckConstraint createCheckConstraint() {
+		CheckConstraintImpl checkConstraint = new CheckConstraintImpl();
+		return checkConstraint;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ForeignKey createForeignKey() {
+		ForeignKeyImpl foreignKey = new ForeignKeyImpl();
+		return foreignKey;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UniqueConstraint createUniqueConstraint() {
+		UniqueConstraintImpl uniqueConstraint = new UniqueConstraintImpl();
+		return uniqueConstraint;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PrimaryKey createPrimaryKey() {
+		PrimaryKeyImpl primaryKey = new PrimaryKeyImpl();
+		return primaryKey;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Index createIndex() {
+		IndexImpl index = new IndexImpl();
+		return index;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IndexMember createIndexMember() {
+		IndexMemberImpl indexMember = new IndexMemberImpl();
+		return indexMember;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IndexExpression createIndexExpression() {
+		IndexExpressionImpl indexExpression = new IndexExpressionImpl();
+		return indexExpression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public MatchType createMatchTypeFromString(EDataType eDataType, String initialValue) {
+		MatchType result = MatchType.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertMatchTypeToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IncrementType createIncrementTypeFromString(EDataType eDataType, String initialValue) {
+		IncrementType result = IncrementType.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertIncrementTypeToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLConstraintsPackage getSQLConstraintsPackage() {
+		return (SQLConstraintsPackage)getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @deprecated
+	 * @generated
+	 */
+	public static SQLConstraintsPackage getPackage() {
+		return SQLConstraintsPackage.eINSTANCE;
+	}
+
+} //SQLConstraintsFactoryImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/impl/SQLConstraintsPackageImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/impl/SQLConstraintsPackageImpl.java
new file mode 100644
index 0000000..083492d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/impl/SQLConstraintsPackageImpl.java
@@ -0,0 +1,829 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.constraints.impl;
+
+import org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.impl.SQLAccessControlPackageImpl;
+import org.eclipse.datatools.modelbase.sql.constraints.Assertion;
+import org.eclipse.datatools.modelbase.sql.constraints.CheckConstraint;
+import org.eclipse.datatools.modelbase.sql.constraints.Constraint;
+import org.eclipse.datatools.modelbase.sql.constraints.ForeignKey;
+import org.eclipse.datatools.modelbase.sql.constraints.IncrementType;
+import org.eclipse.datatools.modelbase.sql.constraints.Index;
+import org.eclipse.datatools.modelbase.sql.constraints.IndexExpression;
+import org.eclipse.datatools.modelbase.sql.constraints.IndexMember;
+import org.eclipse.datatools.modelbase.sql.constraints.MatchType;
+import org.eclipse.datatools.modelbase.sql.constraints.PrimaryKey;
+import org.eclipse.datatools.modelbase.sql.constraints.ReferenceConstraint;
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsFactory;
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;
+import org.eclipse.datatools.modelbase.sql.constraints.TableConstraint;
+import org.eclipse.datatools.modelbase.sql.constraints.UniqueConstraint;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl;
+import org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsPackage;
+import org.eclipse.datatools.modelbase.sql.expressions.impl.SQLExpressionsPackageImpl;
+import org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage;
+import org.eclipse.datatools.modelbase.sql.routines.impl.SQLRoutinesPackageImpl;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLSchemaPackageImpl;
+import org.eclipse.datatools.modelbase.sql.statements.SQLStatementsPackage;
+import org.eclipse.datatools.modelbase.sql.statements.impl.SQLStatementsPackageImpl;
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+import org.eclipse.datatools.modelbase.sql.tables.impl.SQLTablesPackageImpl;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcorePackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.emf.ecore.impl.EcorePackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SQLConstraintsPackageImpl extends EPackageImpl implements SQLConstraintsPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass assertionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass constraintEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass tableConstraintEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass referenceConstraintEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass checkConstraintEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass foreignKeyEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass uniqueConstraintEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass primaryKeyEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass indexEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass indexMemberEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass indexExpressionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum matchTypeEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum incrementTypeEEnum = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with
+	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+	 * package URI value.
+	 * <p>Note: the correct way to create the package is via the static
+	 * factory method {@link #init init()}, which also performs
+	 * initialization of the package, or returns the registered package,
+	 * if one already exists.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private SQLConstraintsPackageImpl() {
+		super(eNS_URI, SQLConstraintsFactory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+	 * 
+	 * <p>This method is used to initialize {@link SQLConstraintsPackage#eINSTANCE} when that field is accessed.
+	 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static SQLConstraintsPackage init() {
+		if (isInited) return (SQLConstraintsPackage)EPackage.Registry.INSTANCE.getEPackage(SQLConstraintsPackage.eNS_URI);
+
+		// Obtain or create and register package
+		SQLConstraintsPackageImpl theSQLConstraintsPackage = (SQLConstraintsPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof SQLConstraintsPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new SQLConstraintsPackageImpl());
+
+		isInited = true;
+
+		// Initialize simple dependencies
+		EcorePackage.eINSTANCE.eClass();
+
+		// Obtain or create and register interdependencies
+		SQLSchemaPackageImpl theSQLSchemaPackage = (SQLSchemaPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLSchemaPackage.eNS_URI) instanceof SQLSchemaPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLSchemaPackage.eNS_URI) : SQLSchemaPackage.eINSTANCE);
+		SQLDataTypesPackageImpl theSQLDataTypesPackage = (SQLDataTypesPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLDataTypesPackage.eNS_URI) instanceof SQLDataTypesPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLDataTypesPackage.eNS_URI) : SQLDataTypesPackage.eINSTANCE);
+		SQLExpressionsPackageImpl theSQLExpressionsPackage = (SQLExpressionsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLExpressionsPackage.eNS_URI) instanceof SQLExpressionsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLExpressionsPackage.eNS_URI) : SQLExpressionsPackage.eINSTANCE);
+		SQLRoutinesPackageImpl theSQLRoutinesPackage = (SQLRoutinesPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLRoutinesPackage.eNS_URI) instanceof SQLRoutinesPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLRoutinesPackage.eNS_URI) : SQLRoutinesPackage.eINSTANCE);
+		SQLStatementsPackageImpl theSQLStatementsPackage = (SQLStatementsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLStatementsPackage.eNS_URI) instanceof SQLStatementsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLStatementsPackage.eNS_URI) : SQLStatementsPackage.eINSTANCE);
+		SQLTablesPackageImpl theSQLTablesPackage = (SQLTablesPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLTablesPackage.eNS_URI) instanceof SQLTablesPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLTablesPackage.eNS_URI) : SQLTablesPackage.eINSTANCE);
+		SQLAccessControlPackageImpl theSQLAccessControlPackage = (SQLAccessControlPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLAccessControlPackage.eNS_URI) instanceof SQLAccessControlPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLAccessControlPackage.eNS_URI) : SQLAccessControlPackage.eINSTANCE);
+
+		// Create package meta-data objects
+		theSQLConstraintsPackage.createPackageContents();
+		theSQLSchemaPackage.createPackageContents();
+		theSQLDataTypesPackage.createPackageContents();
+		theSQLExpressionsPackage.createPackageContents();
+		theSQLRoutinesPackage.createPackageContents();
+		theSQLStatementsPackage.createPackageContents();
+		theSQLTablesPackage.createPackageContents();
+		theSQLAccessControlPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theSQLConstraintsPackage.initializePackageContents();
+		theSQLSchemaPackage.initializePackageContents();
+		theSQLDataTypesPackage.initializePackageContents();
+		theSQLExpressionsPackage.initializePackageContents();
+		theSQLRoutinesPackage.initializePackageContents();
+		theSQLStatementsPackage.initializePackageContents();
+		theSQLTablesPackage.initializePackageContents();
+		theSQLAccessControlPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theSQLConstraintsPackage.freeze();
+
+  
+		// Update the registry and return the package
+		EPackage.Registry.INSTANCE.put(SQLConstraintsPackage.eNS_URI, theSQLConstraintsPackage);
+		return theSQLConstraintsPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getAssertion() {
+		return assertionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getAssertion_SearchCondition() {
+		return (EReference)assertionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getAssertion_Schema() {
+		return (EReference)assertionEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getAssertion_ConstrainedTables() {
+		return (EReference)assertionEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getConstraint() {
+		return constraintEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getConstraint_Deferrable() {
+		return (EAttribute)constraintEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getConstraint_InitiallyDeferred() {
+		return (EAttribute)constraintEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getConstraint_Enforced() {
+		return (EAttribute)constraintEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTableConstraint() {
+		return tableConstraintEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getTableConstraint_BaseTable() {
+		return (EReference)tableConstraintEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getReferenceConstraint() {
+		return referenceConstraintEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getReferenceConstraint_Members() {
+		return (EReference)referenceConstraintEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getCheckConstraint() {
+		return checkConstraintEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getCheckConstraint_SearchCondition() {
+		return (EReference)checkConstraintEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getForeignKey() {
+		return foreignKeyEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getForeignKey_Match() {
+		return (EAttribute)foreignKeyEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getForeignKey_OnUpdate() {
+		return (EAttribute)foreignKeyEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getForeignKey_OnDelete() {
+		return (EAttribute)foreignKeyEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getForeignKey_UniqueConstraint() {
+		return (EReference)foreignKeyEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getForeignKey_ReferencedMembers() {
+		return (EReference)foreignKeyEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getForeignKey_UniqueIndex() {
+		return (EReference)foreignKeyEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getForeignKey_ReferencedTable() {
+		return (EReference)foreignKeyEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getUniqueConstraint() {
+		return uniqueConstraintEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+	 * @generated
+	 */
+    public EAttribute getUniqueConstraint_Clustered() {
+		return (EAttribute)uniqueConstraintEClass.getEStructuralFeatures().get(0);
+	}
+
+    /**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getUniqueConstraint_ForeignKey() {
+		return (EReference)uniqueConstraintEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getPrimaryKey() {
+		return primaryKeyEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getIndex() {
+		return indexEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getIndex_Schema() {
+		return (EReference)indexEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIndex_Clustered() {
+		return (EAttribute)indexEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIndex_FillFactor() {
+		return (EAttribute)indexEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIndex_Unique() {
+		return (EAttribute)indexEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIndex_SystemGenerated() {
+		return (EAttribute)indexEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getIndex_Members() {
+		return (EReference)indexEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getIndex_Table() {
+		return (EReference)indexEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getIndex_ForeignKey() {
+		return (EReference)indexEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getIndex_IncludedMembers() {
+		return (EReference)indexEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getIndexMember() {
+		return indexMemberEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIndexMember_IncrementType() {
+		return (EAttribute)indexMemberEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getIndexMember_Column() {
+		return (EReference)indexMemberEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getIndexMember_Expression() {
+		return (EReference)indexMemberEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getIndexExpression() {
+		return indexExpressionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIndexExpression_Sql() {
+		return (EAttribute)indexExpressionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getMatchType() {
+		return matchTypeEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getIncrementType() {
+		return incrementTypeEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLConstraintsFactory getSQLConstraintsFactory() {
+		return (SQLConstraintsFactory)getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package.  This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated) return;
+		isCreated = true;
+
+		// Create classes and their features
+		assertionEClass = createEClass(ASSERTION);
+		createEReference(assertionEClass, ASSERTION__SEARCH_CONDITION);
+		createEReference(assertionEClass, ASSERTION__SCHEMA);
+		createEReference(assertionEClass, ASSERTION__CONSTRAINED_TABLES);
+
+		constraintEClass = createEClass(CONSTRAINT);
+		createEAttribute(constraintEClass, CONSTRAINT__DEFERRABLE);
+		createEAttribute(constraintEClass, CONSTRAINT__INITIALLY_DEFERRED);
+		createEAttribute(constraintEClass, CONSTRAINT__ENFORCED);
+
+		tableConstraintEClass = createEClass(TABLE_CONSTRAINT);
+		createEReference(tableConstraintEClass, TABLE_CONSTRAINT__BASE_TABLE);
+
+		referenceConstraintEClass = createEClass(REFERENCE_CONSTRAINT);
+		createEReference(referenceConstraintEClass, REFERENCE_CONSTRAINT__MEMBERS);
+
+		checkConstraintEClass = createEClass(CHECK_CONSTRAINT);
+		createEReference(checkConstraintEClass, CHECK_CONSTRAINT__SEARCH_CONDITION);
+
+		foreignKeyEClass = createEClass(FOREIGN_KEY);
+		createEAttribute(foreignKeyEClass, FOREIGN_KEY__MATCH);
+		createEAttribute(foreignKeyEClass, FOREIGN_KEY__ON_UPDATE);
+		createEAttribute(foreignKeyEClass, FOREIGN_KEY__ON_DELETE);
+		createEReference(foreignKeyEClass, FOREIGN_KEY__UNIQUE_CONSTRAINT);
+		createEReference(foreignKeyEClass, FOREIGN_KEY__REFERENCED_MEMBERS);
+		createEReference(foreignKeyEClass, FOREIGN_KEY__UNIQUE_INDEX);
+		createEReference(foreignKeyEClass, FOREIGN_KEY__REFERENCED_TABLE);
+
+		uniqueConstraintEClass = createEClass(UNIQUE_CONSTRAINT);
+		createEAttribute(uniqueConstraintEClass, UNIQUE_CONSTRAINT__CLUSTERED);
+		createEReference(uniqueConstraintEClass, UNIQUE_CONSTRAINT__FOREIGN_KEY);
+
+		primaryKeyEClass = createEClass(PRIMARY_KEY);
+
+		indexEClass = createEClass(INDEX);
+		createEReference(indexEClass, INDEX__SCHEMA);
+		createEAttribute(indexEClass, INDEX__CLUSTERED);
+		createEAttribute(indexEClass, INDEX__FILL_FACTOR);
+		createEAttribute(indexEClass, INDEX__UNIQUE);
+		createEAttribute(indexEClass, INDEX__SYSTEM_GENERATED);
+		createEReference(indexEClass, INDEX__MEMBERS);
+		createEReference(indexEClass, INDEX__TABLE);
+		createEReference(indexEClass, INDEX__FOREIGN_KEY);
+		createEReference(indexEClass, INDEX__INCLUDED_MEMBERS);
+
+		indexMemberEClass = createEClass(INDEX_MEMBER);
+		createEAttribute(indexMemberEClass, INDEX_MEMBER__INCREMENT_TYPE);
+		createEReference(indexMemberEClass, INDEX_MEMBER__COLUMN);
+		createEReference(indexMemberEClass, INDEX_MEMBER__EXPRESSION);
+
+		indexExpressionEClass = createEClass(INDEX_EXPRESSION);
+		createEAttribute(indexExpressionEClass, INDEX_EXPRESSION__SQL);
+
+		// Create enums
+		matchTypeEEnum = createEEnum(MATCH_TYPE);
+		incrementTypeEEnum = createEEnum(INCREMENT_TYPE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model.  This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized) return;
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Obtain other dependent packages
+		SQLExpressionsPackage theSQLExpressionsPackage = (SQLExpressionsPackage)EPackage.Registry.INSTANCE.getEPackage(SQLExpressionsPackage.eNS_URI);
+		SQLSchemaPackage theSQLSchemaPackage = (SQLSchemaPackage)EPackage.Registry.INSTANCE.getEPackage(SQLSchemaPackage.eNS_URI);
+		SQLTablesPackage theSQLTablesPackage = (SQLTablesPackage)EPackage.Registry.INSTANCE.getEPackage(SQLTablesPackage.eNS_URI);
+
+		// Add supertypes to classes
+		assertionEClass.getESuperTypes().add(this.getConstraint());
+		constraintEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+		tableConstraintEClass.getESuperTypes().add(this.getConstraint());
+		referenceConstraintEClass.getESuperTypes().add(this.getTableConstraint());
+		checkConstraintEClass.getESuperTypes().add(this.getTableConstraint());
+		foreignKeyEClass.getESuperTypes().add(this.getReferenceConstraint());
+		uniqueConstraintEClass.getESuperTypes().add(this.getReferenceConstraint());
+		primaryKeyEClass.getESuperTypes().add(this.getUniqueConstraint());
+		indexEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+		indexMemberEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+		indexExpressionEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+
+		// Initialize classes and features; add operations and parameters
+		initEClass(assertionEClass, Assertion.class, "Assertion", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEReference(getAssertion_SearchCondition(), theSQLExpressionsPackage.getSearchCondition(), null, "searchCondition", null, 0, 1, Assertion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getAssertion_Schema(), theSQLSchemaPackage.getSchema(), theSQLSchemaPackage.getSchema_Assertions(), "schema", null, 1, 1, Assertion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getAssertion_ConstrainedTables(), theSQLTablesPackage.getBaseTable(), null, "constrainedTables", null, 1, -1, Assertion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(constraintEClass, Constraint.class, "Constraint", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getConstraint_Deferrable(), ecorePackage.getEBoolean(), "deferrable", null, 0, 1, Constraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getConstraint_InitiallyDeferred(), ecorePackage.getEBoolean(), "initiallyDeferred", "false", 0, 1, Constraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+		initEAttribute(getConstraint_Enforced(), ecorePackage.getEBoolean(), "enforced", "true", 0, 1, Constraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+
+		initEClass(tableConstraintEClass, TableConstraint.class, "TableConstraint", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEReference(getTableConstraint_BaseTable(), theSQLTablesPackage.getBaseTable(), theSQLTablesPackage.getBaseTable_Constraints(), "BaseTable", null, 0, 1, TableConstraint.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(referenceConstraintEClass, ReferenceConstraint.class, "ReferenceConstraint", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEReference(getReferenceConstraint_Members(), theSQLTablesPackage.getColumn(), null, "members", null, 1, -1, ReferenceConstraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(checkConstraintEClass, CheckConstraint.class, "CheckConstraint", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEReference(getCheckConstraint_SearchCondition(), theSQLExpressionsPackage.getSearchCondition(), null, "searchCondition", null, 0, 1, CheckConstraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(foreignKeyEClass, ForeignKey.class, "ForeignKey", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getForeignKey_Match(), this.getMatchType(), "match", "MATCH_SIMPLE", 0, 1, ForeignKey.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+		initEAttribute(getForeignKey_OnUpdate(), theSQLSchemaPackage.getReferentialActionType(), "onUpdate", "NO_ACTION", 0, 1, ForeignKey.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+		initEAttribute(getForeignKey_OnDelete(), theSQLSchemaPackage.getReferentialActionType(), "onDelete", "NO_ACTION", 0, 1, ForeignKey.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+		initEReference(getForeignKey_UniqueConstraint(), this.getUniqueConstraint(), this.getUniqueConstraint_ForeignKey(), "uniqueConstraint", null, 0, 1, ForeignKey.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getForeignKey_ReferencedMembers(), theSQLTablesPackage.getColumn(), null, "referencedMembers", null, 1, -1, ForeignKey.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getForeignKey_UniqueIndex(), this.getIndex(), this.getIndex_ForeignKey(), "uniqueIndex", null, 0, 1, ForeignKey.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getForeignKey_ReferencedTable(), theSQLTablesPackage.getBaseTable(), theSQLTablesPackage.getBaseTable_ReferencingForeignKeys(), "referencedTable", null, 0, 1, ForeignKey.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(uniqueConstraintEClass, UniqueConstraint.class, "UniqueConstraint", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getUniqueConstraint_Clustered(), ecorePackage.getEBoolean(), "clustered", "true", 0, 1, UniqueConstraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+		initEReference(getUniqueConstraint_ForeignKey(), this.getForeignKey(), this.getForeignKey_UniqueConstraint(), "ForeignKey", null, 0, -1, UniqueConstraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(primaryKeyEClass, PrimaryKey.class, "PrimaryKey", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+		initEClass(indexEClass, Index.class, "Index", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEReference(getIndex_Schema(), theSQLSchemaPackage.getSchema(), theSQLSchemaPackage.getSchema_Indices(), "Schema", null, 1, 1, Index.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getIndex_Clustered(), ecorePackage.getEBoolean(), "clustered", "false", 0, 1, Index.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+		initEAttribute(getIndex_FillFactor(), ecorePackage.getEInt(), "fillFactor", "0", 0, 1, Index.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+		initEAttribute(getIndex_Unique(), ecorePackage.getEBoolean(), "unique", "false", 0, 1, Index.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+		initEAttribute(getIndex_SystemGenerated(), ecorePackage.getEBoolean(), "systemGenerated", null, 0, 1, Index.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getIndex_Members(), this.getIndexMember(), null, "members", null, 1, -1, Index.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getIndex_Table(), theSQLTablesPackage.getTable(), theSQLTablesPackage.getTable_Index(), "table", null, 1, 1, Index.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getIndex_ForeignKey(), this.getForeignKey(), this.getForeignKey_UniqueIndex(), "ForeignKey", null, 0, -1, Index.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getIndex_IncludedMembers(), this.getIndexMember(), null, "includedMembers", null, 0, -1, Index.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(indexMemberEClass, IndexMember.class, "IndexMember", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getIndexMember_IncrementType(), this.getIncrementType(), "incrementType", null, 0, 1, IndexMember.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getIndexMember_Column(), theSQLTablesPackage.getColumn(), null, "column", null, 0, 1, IndexMember.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getIndexMember_Expression(), this.getIndexExpression(), null, "expression", null, 0, 1, IndexMember.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(indexExpressionEClass, IndexExpression.class, "IndexExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getIndexExpression_Sql(), ecorePackage.getEString(), "sql", null, 0, 1, IndexExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		// Initialize enums and add enum literals
+		initEEnum(matchTypeEEnum, MatchType.class, "MatchType"); //$NON-NLS-1$
+		addEEnumLiteral(matchTypeEEnum, MatchType.MATCH_SIMPLE_LITERAL);
+		addEEnumLiteral(matchTypeEEnum, MatchType.MATCH_FULL_LITERAL);
+		addEEnumLiteral(matchTypeEEnum, MatchType.MATCH_PARTIAL_LITERAL);
+
+		initEEnum(incrementTypeEEnum, IncrementType.class, "IncrementType"); //$NON-NLS-1$
+		addEEnumLiteral(incrementTypeEEnum, IncrementType.ASC_LITERAL);
+		addEEnumLiteral(incrementTypeEEnum, IncrementType.DESC_LITERAL);
+		addEEnumLiteral(incrementTypeEEnum, IncrementType.RANDOM_LITERAL);
+
+		// Create resource
+		createResource(eNS_URI);
+	}
+
+} //SQLConstraintsPackageImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/impl/TableConstraintImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/impl/TableConstraintImpl.java
new file mode 100644
index 0000000..8b09731
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/impl/TableConstraintImpl.java
@@ -0,0 +1,196 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.constraints.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;
+import org.eclipse.datatools.modelbase.sql.constraints.TableConstraint;
+import org.eclipse.datatools.modelbase.sql.tables.BaseTable;
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Table Constraint</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.impl.TableConstraintImpl#getBaseTable <em>Base Table</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class TableConstraintImpl extends ConstraintImpl implements TableConstraint {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TableConstraintImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLConstraintsPackage.Literals.TABLE_CONSTRAINT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BaseTable getBaseTable() {
+		if (eContainerFeatureID() != SQLConstraintsPackage.TABLE_CONSTRAINT__BASE_TABLE) return null;
+		return (BaseTable)eContainer();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetBaseTable(BaseTable newBaseTable, NotificationChain msgs) {
+		msgs = eBasicSetContainer((InternalEObject)newBaseTable, SQLConstraintsPackage.TABLE_CONSTRAINT__BASE_TABLE, msgs);
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBaseTable(BaseTable newBaseTable) {
+		if (newBaseTable != eInternalContainer() || (eContainerFeatureID() != SQLConstraintsPackage.TABLE_CONSTRAINT__BASE_TABLE && newBaseTable != null)) {
+			if (EcoreUtil.isAncestor(this, newBaseTable))
+				throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); //$NON-NLS-1$
+			NotificationChain msgs = null;
+			if (eInternalContainer() != null)
+				msgs = eBasicRemoveFromContainer(msgs);
+			if (newBaseTable != null)
+				msgs = ((InternalEObject)newBaseTable).eInverseAdd(this, SQLTablesPackage.BASE_TABLE__CONSTRAINTS, BaseTable.class, msgs);
+			msgs = basicSetBaseTable(newBaseTable, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLConstraintsPackage.TABLE_CONSTRAINT__BASE_TABLE, newBaseTable, newBaseTable));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLConstraintsPackage.TABLE_CONSTRAINT__BASE_TABLE:
+				if (eInternalContainer() != null)
+					msgs = eBasicRemoveFromContainer(msgs);
+				return basicSetBaseTable((BaseTable)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLConstraintsPackage.TABLE_CONSTRAINT__BASE_TABLE:
+				return basicSetBaseTable(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+		switch (eContainerFeatureID()) {
+			case SQLConstraintsPackage.TABLE_CONSTRAINT__BASE_TABLE:
+				return eInternalContainer().eInverseRemove(this, SQLTablesPackage.BASE_TABLE__CONSTRAINTS, BaseTable.class, msgs);
+		}
+		return super.eBasicRemoveFromContainerFeature(msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLConstraintsPackage.TABLE_CONSTRAINT__BASE_TABLE:
+				return getBaseTable();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLConstraintsPackage.TABLE_CONSTRAINT__BASE_TABLE:
+				setBaseTable((BaseTable)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLConstraintsPackage.TABLE_CONSTRAINT__BASE_TABLE:
+				setBaseTable((BaseTable)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLConstraintsPackage.TABLE_CONSTRAINT__BASE_TABLE:
+				return getBaseTable() != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //TableConstraintImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/impl/UniqueConstraintImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/impl/UniqueConstraintImpl.java
new file mode 100644
index 0000000..1ba4203
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/impl/UniqueConstraintImpl.java
@@ -0,0 +1,230 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.constraints.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.constraints.ForeignKey;
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;
+import org.eclipse.datatools.modelbase.sql.constraints.UniqueConstraint;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.datatools.modelbase.sql.tables.BaseTable;
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Unique Constraint</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.impl.UniqueConstraintImpl#isClustered <em>Clustered</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.constraints.impl.UniqueConstraintImpl#getForeignKey <em>Foreign Key</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class UniqueConstraintImpl extends ReferenceConstraintImpl implements UniqueConstraint {
+	/**
+	 * The default value of the '{@link #isClustered() <em>Clustered</em>}' attribute.
+	 * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+	 * @see #isClustered()
+	 * @generated
+	 * @ordered
+	 */
+    protected static final boolean CLUSTERED_EDEFAULT = true;
+    /**
+	 * The cached value of the '{@link #isClustered() <em>Clustered</em>}' attribute.
+	 * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+	 * @see #isClustered()
+	 * @generated
+	 * @ordered
+	 */
+    protected boolean clustered = CLUSTERED_EDEFAULT;
+    /**
+	 * The cached value of the '{@link #getForeignKey() <em>Foreign Key</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getForeignKey()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList foreignKey;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected UniqueConstraintImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLConstraintsPackage.Literals.UNIQUE_CONSTRAINT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+	 * @generated
+	 */
+    public boolean isClustered() {
+		return clustered;
+	}
+
+    /**
+	 * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+	 * @generated
+	 */
+    public void setClustered(boolean newClustered) {
+		boolean oldClustered = clustered;
+		clustered = newClustered;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLConstraintsPackage.UNIQUE_CONSTRAINT__CLUSTERED, oldClustered, clustered));
+	}
+
+    /**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getForeignKey() {
+		if (foreignKey == null) {
+			foreignKey = new EObjectWithInverseResolvingEList(ForeignKey.class, this, SQLConstraintsPackage.UNIQUE_CONSTRAINT__FOREIGN_KEY, SQLConstraintsPackage.FOREIGN_KEY__UNIQUE_CONSTRAINT);
+		}
+		return foreignKey;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLConstraintsPackage.UNIQUE_CONSTRAINT__FOREIGN_KEY:
+				return ((InternalEList)getForeignKey()).basicAdd(otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLConstraintsPackage.UNIQUE_CONSTRAINT__FOREIGN_KEY:
+				return ((InternalEList)getForeignKey()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLConstraintsPackage.UNIQUE_CONSTRAINT__CLUSTERED:
+				return isClustered() ? Boolean.TRUE : Boolean.FALSE;
+			case SQLConstraintsPackage.UNIQUE_CONSTRAINT__FOREIGN_KEY:
+				return getForeignKey();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLConstraintsPackage.UNIQUE_CONSTRAINT__CLUSTERED:
+				setClustered(((Boolean)newValue).booleanValue());
+				return;
+			case SQLConstraintsPackage.UNIQUE_CONSTRAINT__FOREIGN_KEY:
+				getForeignKey().clear();
+				getForeignKey().addAll((Collection)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLConstraintsPackage.UNIQUE_CONSTRAINT__CLUSTERED:
+				setClustered(CLUSTERED_EDEFAULT);
+				return;
+			case SQLConstraintsPackage.UNIQUE_CONSTRAINT__FOREIGN_KEY:
+				getForeignKey().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLConstraintsPackage.UNIQUE_CONSTRAINT__CLUSTERED:
+				return clustered != CLUSTERED_EDEFAULT;
+			case SQLConstraintsPackage.UNIQUE_CONSTRAINT__FOREIGN_KEY:
+				return foreignKey != null && !foreignKey.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+    /**
+	 * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+	 * @generated
+	 */
+    public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (clustered: "); //$NON-NLS-1$
+		result.append(clustered);
+		result.append(')');
+		return result.toString();
+	}
+
+} //UniqueConstraintImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/util/SQLConstraintsAdapterFactory.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/util/SQLConstraintsAdapterFactory.java
new file mode 100644
index 0000000..f83b3aa
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/util/SQLConstraintsAdapterFactory.java
@@ -0,0 +1,346 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.constraints.util;
+
+import org.eclipse.datatools.modelbase.sql.constraints.*;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+import org.eclipse.emf.ecore.EModelElement;
+import org.eclipse.emf.ecore.ENamedElement;
+import org.eclipse.emf.ecore.EObject;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage
+ * @generated
+ */
+public class SQLConstraintsAdapterFactory extends AdapterFactoryImpl {
+	/**
+	 * The cached model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static SQLConstraintsPackage modelPackage;
+
+	/**
+	 * Creates an instance of the adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLConstraintsAdapterFactory() {
+		if (modelPackage == null) {
+			modelPackage = SQLConstraintsPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Returns whether this factory is applicable for the type of the object.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+	 * <!-- end-user-doc -->
+	 * @return whether this factory is applicable for the type of the object.
+	 * @generated
+	 */
+	public boolean isFactoryForType(Object object) {
+		if (object == modelPackage) {
+			return true;
+		}
+		if (object instanceof EObject) {
+			return ((EObject)object).eClass().getEPackage() == modelPackage;
+		}
+		return false;
+	}
+
+	/**
+	 * The switch that delegates to the <code>createXXX</code> methods.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SQLConstraintsSwitch modelSwitch =
+		new SQLConstraintsSwitch() {
+			public Object caseAssertion(Assertion object) {
+				return createAssertionAdapter();
+			}
+			public Object caseConstraint(Constraint object) {
+				return createConstraintAdapter();
+			}
+			public Object caseTableConstraint(TableConstraint object) {
+				return createTableConstraintAdapter();
+			}
+			public Object caseReferenceConstraint(ReferenceConstraint object) {
+				return createReferenceConstraintAdapter();
+			}
+			public Object caseCheckConstraint(CheckConstraint object) {
+				return createCheckConstraintAdapter();
+			}
+			public Object caseForeignKey(ForeignKey object) {
+				return createForeignKeyAdapter();
+			}
+			public Object caseUniqueConstraint(UniqueConstraint object) {
+				return createUniqueConstraintAdapter();
+			}
+			public Object casePrimaryKey(PrimaryKey object) {
+				return createPrimaryKeyAdapter();
+			}
+			public Object caseIndex(Index object) {
+				return createIndexAdapter();
+			}
+			public Object caseIndexMember(IndexMember object) {
+				return createIndexMemberAdapter();
+			}
+			public Object caseIndexExpression(IndexExpression object) {
+				return createIndexExpressionAdapter();
+			}
+			public Object caseEModelElement(EModelElement object) {
+				return createEModelElementAdapter();
+			}
+			public Object caseENamedElement(ENamedElement object) {
+				return createENamedElementAdapter();
+			}
+			public Object caseSQLObject(SQLObject object) {
+				return createSQLObjectAdapter();
+			}
+			public Object defaultCase(EObject object) {
+				return createEObjectAdapter();
+			}
+		};
+
+	/**
+	 * Creates an adapter for the <code>target</code>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param target the object to adapt.
+	 * @return the adapter for the <code>target</code>.
+	 * @generated
+	 */
+	public Adapter createAdapter(Notifier target) {
+		return (Adapter)modelSwitch.doSwitch((EObject)target);
+	}
+
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.constraints.Assertion <em>Assertion</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.Assertion
+	 * @generated
+	 */
+	public Adapter createAssertionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.constraints.Constraint <em>Constraint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.Constraint
+	 * @generated
+	 */
+	public Adapter createConstraintAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.constraints.TableConstraint <em>Table Constraint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.TableConstraint
+	 * @generated
+	 */
+	public Adapter createTableConstraintAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.constraints.ReferenceConstraint <em>Reference Constraint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.ReferenceConstraint
+	 * @generated
+	 */
+	public Adapter createReferenceConstraintAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.constraints.CheckConstraint <em>Check Constraint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.CheckConstraint
+	 * @generated
+	 */
+	public Adapter createCheckConstraintAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.constraints.ForeignKey <em>Foreign Key</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.ForeignKey
+	 * @generated
+	 */
+	public Adapter createForeignKeyAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.constraints.UniqueConstraint <em>Unique Constraint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.UniqueConstraint
+	 * @generated
+	 */
+	public Adapter createUniqueConstraintAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.constraints.PrimaryKey <em>Primary Key</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.PrimaryKey
+	 * @generated
+	 */
+	public Adapter createPrimaryKeyAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.constraints.Index <em>Index</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.Index
+	 * @generated
+	 */
+	public Adapter createIndexAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.constraints.IndexMember <em>Index Member</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.IndexMember
+	 * @generated
+	 */
+	public Adapter createIndexMemberAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.constraints.IndexExpression <em>Index Expression</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.IndexExpression
+	 * @generated
+	 */
+	public Adapter createIndexExpressionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecore.EModelElement <em>EModel Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.emf.ecore.EModelElement
+	 * @generated
+	 */
+	public Adapter createEModelElementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecore.ENamedElement <em>ENamed Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.emf.ecore.ENamedElement
+	 * @generated
+	 */
+	public Adapter createENamedElementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.schema.SQLObject <em>SQL Object</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLObject
+	 * @generated
+	 */
+	public Adapter createSQLObjectAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for the default case.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @generated
+	 */
+	public Adapter createEObjectAdapter() {
+		return null;
+	}
+
+} //SQLConstraintsAdapterFactory
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/util/SQLConstraintsSwitch.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/util/SQLConstraintsSwitch.java
new file mode 100644
index 0000000..a48a748
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/constraints/util/SQLConstraintsSwitch.java
@@ -0,0 +1,441 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.constraints.util;
+
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.constraints.*;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EModelElement;
+import org.eclipse.emf.ecore.ENamedElement;
+import org.eclipse.emf.ecore.EObject;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage
+ * @generated
+ */
+public class SQLConstraintsSwitch {
+	/**
+	 * The cached model package
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static SQLConstraintsPackage modelPackage;
+
+	/**
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLConstraintsSwitch() {
+		if (modelPackage == null) {
+			modelPackage = SQLConstraintsPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	public Object doSwitch(EObject theEObject) {
+		return doSwitch(theEObject.eClass(), theEObject);
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	protected Object doSwitch(EClass theEClass, EObject theEObject) {
+		if (theEClass.eContainer() == modelPackage) {
+			return doSwitch(theEClass.getClassifierID(), theEObject);
+		}
+		else {
+			List eSuperTypes = theEClass.getESuperTypes();
+			return
+				eSuperTypes.isEmpty() ?
+					defaultCase(theEObject) :
+					doSwitch((EClass)eSuperTypes.get(0), theEObject);
+		}
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	protected Object doSwitch(int classifierID, EObject theEObject) {
+		switch (classifierID) {
+			case SQLConstraintsPackage.ASSERTION: {
+				Assertion assertion = (Assertion)theEObject;
+				Object result = caseAssertion(assertion);
+				if (result == null) result = caseConstraint(assertion);
+				if (result == null) result = caseSQLObject(assertion);
+				if (result == null) result = caseENamedElement(assertion);
+				if (result == null) result = caseEModelElement(assertion);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLConstraintsPackage.CONSTRAINT: {
+				Constraint constraint = (Constraint)theEObject;
+				Object result = caseConstraint(constraint);
+				if (result == null) result = caseSQLObject(constraint);
+				if (result == null) result = caseENamedElement(constraint);
+				if (result == null) result = caseEModelElement(constraint);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLConstraintsPackage.TABLE_CONSTRAINT: {
+				TableConstraint tableConstraint = (TableConstraint)theEObject;
+				Object result = caseTableConstraint(tableConstraint);
+				if (result == null) result = caseConstraint(tableConstraint);
+				if (result == null) result = caseSQLObject(tableConstraint);
+				if (result == null) result = caseENamedElement(tableConstraint);
+				if (result == null) result = caseEModelElement(tableConstraint);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLConstraintsPackage.REFERENCE_CONSTRAINT: {
+				ReferenceConstraint referenceConstraint = (ReferenceConstraint)theEObject;
+				Object result = caseReferenceConstraint(referenceConstraint);
+				if (result == null) result = caseTableConstraint(referenceConstraint);
+				if (result == null) result = caseConstraint(referenceConstraint);
+				if (result == null) result = caseSQLObject(referenceConstraint);
+				if (result == null) result = caseENamedElement(referenceConstraint);
+				if (result == null) result = caseEModelElement(referenceConstraint);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLConstraintsPackage.CHECK_CONSTRAINT: {
+				CheckConstraint checkConstraint = (CheckConstraint)theEObject;
+				Object result = caseCheckConstraint(checkConstraint);
+				if (result == null) result = caseTableConstraint(checkConstraint);
+				if (result == null) result = caseConstraint(checkConstraint);
+				if (result == null) result = caseSQLObject(checkConstraint);
+				if (result == null) result = caseENamedElement(checkConstraint);
+				if (result == null) result = caseEModelElement(checkConstraint);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLConstraintsPackage.FOREIGN_KEY: {
+				ForeignKey foreignKey = (ForeignKey)theEObject;
+				Object result = caseForeignKey(foreignKey);
+				if (result == null) result = caseReferenceConstraint(foreignKey);
+				if (result == null) result = caseTableConstraint(foreignKey);
+				if (result == null) result = caseConstraint(foreignKey);
+				if (result == null) result = caseSQLObject(foreignKey);
+				if (result == null) result = caseENamedElement(foreignKey);
+				if (result == null) result = caseEModelElement(foreignKey);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLConstraintsPackage.UNIQUE_CONSTRAINT: {
+				UniqueConstraint uniqueConstraint = (UniqueConstraint)theEObject;
+				Object result = caseUniqueConstraint(uniqueConstraint);
+				if (result == null) result = caseReferenceConstraint(uniqueConstraint);
+				if (result == null) result = caseTableConstraint(uniqueConstraint);
+				if (result == null) result = caseConstraint(uniqueConstraint);
+				if (result == null) result = caseSQLObject(uniqueConstraint);
+				if (result == null) result = caseENamedElement(uniqueConstraint);
+				if (result == null) result = caseEModelElement(uniqueConstraint);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLConstraintsPackage.PRIMARY_KEY: {
+				PrimaryKey primaryKey = (PrimaryKey)theEObject;
+				Object result = casePrimaryKey(primaryKey);
+				if (result == null) result = caseUniqueConstraint(primaryKey);
+				if (result == null) result = caseReferenceConstraint(primaryKey);
+				if (result == null) result = caseTableConstraint(primaryKey);
+				if (result == null) result = caseConstraint(primaryKey);
+				if (result == null) result = caseSQLObject(primaryKey);
+				if (result == null) result = caseENamedElement(primaryKey);
+				if (result == null) result = caseEModelElement(primaryKey);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLConstraintsPackage.INDEX: {
+				Index index = (Index)theEObject;
+				Object result = caseIndex(index);
+				if (result == null) result = caseSQLObject(index);
+				if (result == null) result = caseENamedElement(index);
+				if (result == null) result = caseEModelElement(index);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLConstraintsPackage.INDEX_MEMBER: {
+				IndexMember indexMember = (IndexMember)theEObject;
+				Object result = caseIndexMember(indexMember);
+				if (result == null) result = caseSQLObject(indexMember);
+				if (result == null) result = caseENamedElement(indexMember);
+				if (result == null) result = caseEModelElement(indexMember);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLConstraintsPackage.INDEX_EXPRESSION: {
+				IndexExpression indexExpression = (IndexExpression)theEObject;
+				Object result = caseIndexExpression(indexExpression);
+				if (result == null) result = caseSQLObject(indexExpression);
+				if (result == null) result = caseENamedElement(indexExpression);
+				if (result == null) result = caseEModelElement(indexExpression);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			default: return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Assertion</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Assertion</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseAssertion(Assertion object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Constraint</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Constraint</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseConstraint(Constraint object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Table Constraint</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Table Constraint</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseTableConstraint(TableConstraint object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Reference Constraint</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Reference Constraint</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseReferenceConstraint(ReferenceConstraint object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Check Constraint</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Check Constraint</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseCheckConstraint(CheckConstraint object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Foreign Key</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Foreign Key</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseForeignKey(ForeignKey object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Unique Constraint</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Unique Constraint</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseUniqueConstraint(UniqueConstraint object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Primary Key</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Primary Key</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object casePrimaryKey(PrimaryKey object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Index</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Index</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseIndex(Index object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Index Member</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Index Member</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseIndexMember(IndexMember object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Index Expression</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Index Expression</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseIndexExpression(IndexExpression object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EModel Element</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>EModel Element</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseEModelElement(EModelElement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>ENamed Element</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>ENamed Element</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseENamedElement(ENamedElement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>SQL Object</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>SQL Object</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseSQLObject(SQLObject object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch, but this is the last case anyway.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+	 * @generated
+	 */
+	public Object defaultCase(EObject object) {
+		return null;
+	}
+
+} //SQLConstraintsSwitch
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/ApproximateNumericDataType.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/ApproximateNumericDataType.java
new file mode 100644
index 0000000..684d888
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/ApproximateNumericDataType.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Approximate Numeric Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.4 Numbers
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getApproximateNumericDataType()
+ * @model
+ * @generated
+ */
+public interface ApproximateNumericDataType extends NumericalDataType {
+} // ApproximateNumericDataType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/ArrayDataType.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/ArrayDataType.java
new file mode 100644
index 0000000..ccd922d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/ArrayDataType.java
@@ -0,0 +1,61 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Array Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.10.1 Arrays
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.ArrayDataType#getMaxCardinality <em>Max Cardinality</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getArrayDataType()
+ * @model abstract="true"
+ * @generated
+ */
+public interface ArrayDataType extends CollectionDataType {
+	/**
+	 * Returns the value of the '<em><b>Max Cardinality</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Max Cardinality</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Max Cardinality</em>' attribute.
+	 * @see #setMaxCardinality(int)
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getArrayDataType_MaxCardinality()
+	 * @model
+	 * @generated
+	 */
+	int getMaxCardinality();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.ArrayDataType#getMaxCardinality <em>Max Cardinality</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Max Cardinality</em>' attribute.
+	 * @see #getMaxCardinality()
+	 * @generated
+	 */
+	void setMaxCardinality(int value);
+
+} // ArrayDataType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/AttributeDefinition.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/AttributeDefinition.java
new file mode 100644
index 0000000..40baed1
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/AttributeDefinition.java
@@ -0,0 +1,122 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes;
+
+import org.eclipse.datatools.modelbase.sql.schema.ReferentialActionType;
+import org.eclipse.datatools.modelbase.sql.schema.TypedElement;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Attribute Definition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.13 Columns, fields, and attributes
+ * 
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.AttributeDefinition#getScopeCheck <em>Scope Check</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.AttributeDefinition#isScopeChecked <em>Scope Checked</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.AttributeDefinition#getDefaultValue <em>Default Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getAttributeDefinition()
+ * @model
+ * @generated
+ */
+public interface AttributeDefinition extends TypedElement {
+	/**
+	 * Returns the value of the '<em><b>Scope Check</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.schema.ReferentialActionType}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Scope Check</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Scope Check</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.ReferentialActionType
+	 * @see #setScopeCheck(ReferentialActionType)
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getAttributeDefinition_ScopeCheck()
+	 * @model
+	 * @generated
+	 */
+	ReferentialActionType getScopeCheck();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.AttributeDefinition#getScopeCheck <em>Scope Check</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Scope Check</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.ReferentialActionType
+	 * @see #getScopeCheck()
+	 * @generated
+	 */
+	void setScopeCheck(ReferentialActionType value);
+
+	/**
+	 * Returns the value of the '<em><b>Scope Checked</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Scope Checked</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Scope Checked</em>' attribute.
+	 * @see #setScopeChecked(boolean)
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getAttributeDefinition_ScopeChecked()
+	 * @model
+	 * @generated
+	 */
+	boolean isScopeChecked();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.AttributeDefinition#isScopeChecked <em>Scope Checked</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Scope Checked</em>' attribute.
+	 * @see #isScopeChecked()
+	 * @generated
+	 */
+	void setScopeChecked(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Default Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Default Value</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Default Value</em>' attribute.
+	 * @see #setDefaultValue(String)
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getAttributeDefinition_DefaultValue()
+	 * @model
+	 * @generated
+	 */
+	String getDefaultValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.AttributeDefinition#getDefaultValue <em>Default Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Default Value</em>' attribute.
+	 * @see #getDefaultValue()
+	 * @generated
+	 */
+	void setDefaultValue(String value);
+
+} // AttributeDefinition
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/BinaryStringDataType.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/BinaryStringDataType.java
new file mode 100644
index 0000000..4f5f93e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/BinaryStringDataType.java
@@ -0,0 +1,70 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Binary String Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.3 Binary strings
+ * 
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.BinaryStringDataType#getLength <em>Length</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getBinaryStringDataType()
+ * @model
+ * @generated
+ */
+public interface BinaryStringDataType extends PredefinedDataType {
+	/**
+	 * Returns the value of the '<em><b>Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Length</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Length</em>' attribute.
+	 * @see #setLength(int)
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getBinaryStringDataType_Length()
+	 * @model
+	 * @generated
+	 */
+	int getLength();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.BinaryStringDataType#getLength <em>Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Length</em>' attribute.
+	 * @see #getLength()
+	 * @generated
+	 */
+	void setLength(int value);
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model
+	 * @generated
+	 */
+	boolean equals();
+
+} // BinaryStringDataType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/BooleanDataType.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/BooleanDataType.java
new file mode 100644
index 0000000..9ecd21d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/BooleanDataType.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Boolean Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.5 Boolean types
+ * 
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getBooleanDataType()
+ * @model
+ * @generated
+ */
+public interface BooleanDataType extends PredefinedDataType {
+} // BooleanDataType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/CharacterSet.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/CharacterSet.java
new file mode 100644
index 0000000..d878956
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/CharacterSet.java
@@ -0,0 +1,176 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Character Set</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.2.6 Character sets, 5WD-02-Foundation-2002-12 4.2.7 Universal character sets
+ * 
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.CharacterSet#getRepertoire <em>Repertoire</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.CharacterSet#getDefaultCollation <em>Default Collation</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.CharacterSet#getEncoding <em>Encoding</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.CharacterSet#getCharacterStringDataType <em>Character String Data Type</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.CharacterSet#getSchema <em>Schema</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getCharacterSet()
+ * @model
+ * @generated
+ */
+public interface CharacterSet extends SQLObject {
+	/**
+	 * Returns the value of the '<em><b>Repertoire</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Repertoire</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Repertoire</em>' attribute.
+	 * @see #setRepertoire(String)
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getCharacterSet_Repertoire()
+	 * @model
+	 * @generated
+	 */
+	String getRepertoire();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.CharacterSet#getRepertoire <em>Repertoire</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Repertoire</em>' attribute.
+	 * @see #getRepertoire()
+	 * @generated
+	 */
+	void setRepertoire(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Default Collation</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Default Collation</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Default Collation</em>' attribute.
+	 * @see #setDefaultCollation(String)
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getCharacterSet_DefaultCollation()
+	 * @model
+	 * @generated
+	 */
+	String getDefaultCollation();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.CharacterSet#getDefaultCollation <em>Default Collation</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Default Collation</em>' attribute.
+	 * @see #getDefaultCollation()
+	 * @generated
+	 */
+	void setDefaultCollation(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Encoding</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Encoding</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Encoding</em>' attribute.
+	 * @see #setEncoding(String)
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getCharacterSet_Encoding()
+	 * @model
+	 * @generated
+	 */
+	String getEncoding();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.CharacterSet#getEncoding <em>Encoding</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Encoding</em>' attribute.
+	 * @see #getEncoding()
+	 * @generated
+	 */
+	void setEncoding(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Character String Data Type</b></em>' reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.datatypes.CharacterStringDataType#getCharacterSet <em>Character Set</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Character String Data Type</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Character String Data Type</em>' reference.
+	 * @see #setCharacterStringDataType(CharacterStringDataType)
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getCharacterSet_CharacterStringDataType()
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.CharacterStringDataType#getCharacterSet
+	 * @model opposite="characterSet" required="true"
+	 * @generated
+	 */
+	CharacterStringDataType getCharacterStringDataType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.CharacterSet#getCharacterStringDataType <em>Character String Data Type</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Character String Data Type</em>' reference.
+	 * @see #getCharacterStringDataType()
+	 * @generated
+	 */
+	void setCharacterStringDataType(CharacterStringDataType value);
+
+	/**
+	 * Returns the value of the '<em><b>Schema</b></em>' reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.schema.Schema#getCharSets <em>Char Sets</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Schema</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Schema</em>' reference.
+	 * @see #setSchema(Schema)
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getCharacterSet_Schema()
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Schema#getCharSets
+	 * @model opposite="charSets" required="true"
+	 * @generated
+	 */
+	Schema getSchema();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.CharacterSet#getSchema <em>Schema</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Schema</em>' reference.
+	 * @see #getSchema()
+	 * @generated
+	 */
+	void setSchema(Schema value);
+
+} // CharacterSet
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/CharacterStringDataType.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/CharacterStringDataType.java
new file mode 100644
index 0000000..d86965d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/CharacterStringDataType.java
@@ -0,0 +1,164 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Character String Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.2 Character strings
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.CharacterStringDataType#getLength <em>Length</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.CharacterStringDataType#getCoercibility <em>Coercibility</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.CharacterStringDataType#isFixedLength <em>Fixed Length</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.CharacterStringDataType#getCollationName <em>Collation Name</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.CharacterStringDataType#getCharacterSet <em>Character Set</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getCharacterStringDataType()
+ * @model
+ * @generated
+ */
+public interface CharacterStringDataType extends PredefinedDataType {
+	/**
+	 * Returns the value of the '<em><b>Length</b></em>' attribute.
+	 * The default value is <code>"1"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Length</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Length</em>' attribute.
+	 * @see #setLength(int)
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getCharacterStringDataType_Length()
+	 * @model default="1"
+	 * @generated
+	 */
+	int getLength();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.CharacterStringDataType#getLength <em>Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Length</em>' attribute.
+	 * @see #getLength()
+	 * @generated
+	 */
+	void setLength(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Coercibility</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.datatypes.CoercibilityType}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Coercibility</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Coercibility</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.CoercibilityType
+	 * @see #setCoercibility(CoercibilityType)
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getCharacterStringDataType_Coercibility()
+	 * @model
+	 * @generated
+	 */
+	CoercibilityType getCoercibility();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.CharacterStringDataType#getCoercibility <em>Coercibility</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Coercibility</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.CoercibilityType
+	 * @see #getCoercibility()
+	 * @generated
+	 */
+	void setCoercibility(CoercibilityType value);
+
+	/**
+	 * Returns the value of the '<em><b>Fixed Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Fixed Length</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Fixed Length</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getCharacterStringDataType_FixedLength()
+	 * @model changeable="false"
+	 * @generated
+	 */
+	boolean isFixedLength();
+
+	/**
+	 * Returns the value of the '<em><b>Collation Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Collation Name</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Collation Name</em>' attribute.
+	 * @see #setCollationName(String)
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getCharacterStringDataType_CollationName()
+	 * @model
+	 * @generated
+	 */
+	String getCollationName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.CharacterStringDataType#getCollationName <em>Collation Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Collation Name</em>' attribute.
+	 * @see #getCollationName()
+	 * @generated
+	 */
+	void setCollationName(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Character Set</b></em>' reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.datatypes.CharacterSet#getCharacterStringDataType <em>Character String Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Character Set</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Character Set</em>' reference.
+	 * @see #setCharacterSet(CharacterSet)
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getCharacterStringDataType_CharacterSet()
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.CharacterSet#getCharacterStringDataType
+	 * @model opposite="CharacterStringDataType" required="true"
+	 * @generated
+	 */
+	CharacterSet getCharacterSet();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.CharacterStringDataType#getCharacterSet <em>Character Set</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Character Set</em>' reference.
+	 * @see #getCharacterSet()
+	 * @generated
+	 */
+	void setCharacterSet(CharacterSet value);
+
+} // CharacterStringDataType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/CoercibilityType.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/CoercibilityType.java
new file mode 100644
index 0000000..6cde1af
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/CoercibilityType.java
@@ -0,0 +1,209 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: CoercibilityType.java,v 1.3 2006/09/07 00:19:48 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.datatypes;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Coercibility Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.2.1 Comparison of character strings
+ * 
+ * <!-- end-model-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getCoercibilityType()
+ * @model
+ * @generated
+ */
+public final class CoercibilityType extends AbstractEnumerator {
+	/**
+	 * The '<em><b>IMPLICIT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #IMPLICIT_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int IMPLICIT = 0;
+
+	/**
+	 * The '<em><b>EXPLICIT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #EXPLICIT_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int EXPLICIT = 1;
+
+	/**
+	 * The '<em><b>COERCIBILE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #COERCIBILE_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int COERCIBILE = 2;
+
+	/**
+	 * The '<em><b>NO COLLATION</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NO_COLLATION_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NO_COLLATION = 3;
+
+	/**
+	 * The '<em><b>IMPLICIT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>IMPLICIT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #IMPLICIT
+	 * @generated
+	 * @ordered
+	 */
+	public static final CoercibilityType IMPLICIT_LITERAL = new CoercibilityType(IMPLICIT, "IMPLICIT", "IMPLICIT"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>EXPLICIT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>EXPLICIT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #EXPLICIT
+	 * @generated
+	 * @ordered
+	 */
+	public static final CoercibilityType EXPLICIT_LITERAL = new CoercibilityType(EXPLICIT, "EXPLICIT", "EXPLICIT"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>COERCIBILE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>COERCIBILE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #COERCIBILE
+	 * @generated
+	 * @ordered
+	 */
+	public static final CoercibilityType COERCIBILE_LITERAL = new CoercibilityType(COERCIBILE, "COERCIBILE", "COERCIBILE"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>NO COLLATION</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NO COLLATION</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #NO_COLLATION
+	 * @generated
+	 * @ordered
+	 */
+	public static final CoercibilityType NO_COLLATION_LITERAL = new CoercibilityType(NO_COLLATION, "NO_COLLATION", "NO_COLLATION"); //$NON-NLS-1$
+
+	/**
+	 * An array of all the '<em><b>Coercibility Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final CoercibilityType[] VALUES_ARRAY =
+		new CoercibilityType[] {
+			IMPLICIT_LITERAL,
+			EXPLICIT_LITERAL,
+			COERCIBILE_LITERAL,
+			NO_COLLATION_LITERAL,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Coercibility Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Coercibility Type</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static CoercibilityType get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			CoercibilityType result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Coercibility Type</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static CoercibilityType getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			CoercibilityType result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Coercibility Type</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static CoercibilityType get(int value) {
+		switch (value) {
+			case IMPLICIT: return IMPLICIT_LITERAL;
+			case EXPLICIT: return EXPLICIT_LITERAL;
+			case COERCIBILE: return COERCIBILE_LITERAL;
+			case NO_COLLATION: return NO_COLLATION_LITERAL;
+		}
+		return null;
+	}
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private CoercibilityType(int value, String name, String literal) {
+		super(value, name, literal);
+	}
+
+} //CoercibilityType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/CollectionDataType.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/CollectionDataType.java
new file mode 100644
index 0000000..16e6bec
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/CollectionDataType.java
@@ -0,0 +1,75 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Collection Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.10 Collection Types
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.CollectionDataType#getElementType <em>Element Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getCollectionDataType()
+ * @model abstract="true"
+ * @generated
+ */
+public interface CollectionDataType extends ConstructedDataType {
+	/**
+	 * Returns the value of the '<em><b>Element Type</b></em>' containment reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.datatypes.ElementType#getCollectionDataType <em>Collection Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Element Type</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Element Type</em>' containment reference.
+	 * @see #setElementType(ElementType)
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getCollectionDataType_ElementType()
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.ElementType#getCollectionDataType
+	 * @model opposite="CollectionDataType" containment="true" required="true"
+	 * @generated
+	 */
+	ElementType getElementType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.CollectionDataType#getElementType <em>Element Type</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Element Type</em>' containment reference.
+	 * @see #getElementType()
+	 * @generated
+	 */
+	void setElementType(ElementType value);
+	
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.CollectionDataType#getElementType <em>Element Type</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Element Type</em>' containment reference.
+	 * @deprecated As of release DTP 1.8, this method has been replaced by 
+	 * {@link #getElementType} and {@link #setElementType(ElementType newElementType)}
+	 */
+	@Deprecated
+	EList getElement();
+
+} // CollectionDataType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/ConstructedDataType.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/ConstructedDataType.java
new file mode 100644
index 0000000..495c3f0
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/ConstructedDataType.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Constructed Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.1 Data Types
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getConstructedDataType()
+ * @model abstract="true"
+ * @generated
+ */
+public interface ConstructedDataType extends DataType {
+} // ConstructedDataType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/DataLinkDataType.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/DataLinkDataType.java
new file mode 100644
index 0000000..45b86f1
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/DataLinkDataType.java
@@ -0,0 +1,238 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Data Link Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Represents a link to a file/location outside the system. 
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.DataLinkDataType#getLength <em>Length</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.DataLinkDataType#getLinkControl <em>Link Control</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.DataLinkDataType#getIntegrityControl <em>Integrity Control</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.DataLinkDataType#getReadPermission <em>Read Permission</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.DataLinkDataType#getWritePermission <em>Write Permission</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.DataLinkDataType#isRecovery <em>Recovery</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.DataLinkDataType#getUnlink <em>Unlink</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getDataLinkDataType()
+ * @model
+ * @generated
+ */
+public interface DataLinkDataType extends PredefinedDataType {
+	/**
+	 * Returns the value of the '<em><b>Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Length</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Length</em>' attribute.
+	 * @see #setLength(int)
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getDataLinkDataType_Length()
+	 * @model
+	 * @generated
+	 */
+	int getLength();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.DataLinkDataType#getLength <em>Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Length</em>' attribute.
+	 * @see #getLength()
+	 * @generated
+	 */
+	void setLength(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Link Control</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.datatypes.LinkControlOption}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Link Control</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Link Control</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.LinkControlOption
+	 * @see #setLinkControl(LinkControlOption)
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getDataLinkDataType_LinkControl()
+	 * @model
+	 * @generated
+	 */
+	LinkControlOption getLinkControl();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.DataLinkDataType#getLinkControl <em>Link Control</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Link Control</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.LinkControlOption
+	 * @see #getLinkControl()
+	 * @generated
+	 */
+	void setLinkControl(LinkControlOption value);
+
+	/**
+	 * Returns the value of the '<em><b>Integrity Control</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.datatypes.IntegrityControlOption}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Integrity Control</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Integrity Control</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.IntegrityControlOption
+	 * @see #setIntegrityControl(IntegrityControlOption)
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getDataLinkDataType_IntegrityControl()
+	 * @model
+	 * @generated
+	 */
+	IntegrityControlOption getIntegrityControl();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.DataLinkDataType#getIntegrityControl <em>Integrity Control</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Integrity Control</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.IntegrityControlOption
+	 * @see #getIntegrityControl()
+	 * @generated
+	 */
+	void setIntegrityControl(IntegrityControlOption value);
+
+	/**
+	 * Returns the value of the '<em><b>Read Permission</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.datatypes.ReadPermissionOption}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Read Permission</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Read Permission</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.ReadPermissionOption
+	 * @see #setReadPermission(ReadPermissionOption)
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getDataLinkDataType_ReadPermission()
+	 * @model
+	 * @generated
+	 */
+	ReadPermissionOption getReadPermission();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.DataLinkDataType#getReadPermission <em>Read Permission</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Read Permission</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.ReadPermissionOption
+	 * @see #getReadPermission()
+	 * @generated
+	 */
+	void setReadPermission(ReadPermissionOption value);
+
+	/**
+	 * Returns the value of the '<em><b>Write Permission</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.datatypes.WritePermissionOption}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Write Permission</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Write Permission</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.WritePermissionOption
+	 * @see #setWritePermission(WritePermissionOption)
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getDataLinkDataType_WritePermission()
+	 * @model
+	 * @generated
+	 */
+	WritePermissionOption getWritePermission();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.DataLinkDataType#getWritePermission <em>Write Permission</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Write Permission</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.WritePermissionOption
+	 * @see #getWritePermission()
+	 * @generated
+	 */
+	void setWritePermission(WritePermissionOption value);
+
+	/**
+	 * Returns the value of the '<em><b>Recovery</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Recovery</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Recovery</em>' attribute.
+	 * @see #setRecovery(boolean)
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getDataLinkDataType_Recovery()
+	 * @model
+	 * @generated
+	 */
+	boolean isRecovery();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.DataLinkDataType#isRecovery <em>Recovery</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Recovery</em>' attribute.
+	 * @see #isRecovery()
+	 * @generated
+	 */
+	void setRecovery(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Unlink</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.datatypes.UnlinkOption}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Unlink</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Unlink</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.UnlinkOption
+	 * @see #setUnlink(UnlinkOption)
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getDataLinkDataType_Unlink()
+	 * @model
+	 * @generated
+	 */
+	UnlinkOption getUnlink();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.DataLinkDataType#getUnlink <em>Unlink</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Unlink</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.UnlinkOption
+	 * @see #getUnlink()
+	 * @generated
+	 */
+	void setUnlink(UnlinkOption value);
+
+} // DataLinkDataType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/DataType.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/DataType.java
new file mode 100644
index 0000000..16dd144
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/DataType.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.modelbase.sql.schema.TypedElement;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.1 Data types
+ * 
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getDataType()
+ * @model abstract="true"
+ * @generated
+ */
+public interface DataType extends SQLObject {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * This method is used to set the type on the given Column.  It is implemented on the child classes of DataType.  The concrete children classses will know which type relationship to use on Column to set the data type.
+	 * <!-- end-model-doc -->
+	 * @model
+	 * @generated
+	 */
+	void setContainer(TypedElement newContainer);
+
+} // DataType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/DateDataType.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/DateDataType.java
new file mode 100644
index 0000000..6e968d2
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/DateDataType.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Date Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.6.1 Datetimes
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getDateDataType()
+ * @model
+ * @generated
+ */
+public interface DateDataType extends PredefinedDataType {
+} // DateDataType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/DistinctUserDefinedType.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/DistinctUserDefinedType.java
new file mode 100644
index 0000000..6242a5a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/DistinctUserDefinedType.java
@@ -0,0 +1,61 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Distinct User Defined Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.7 User-defined types
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.DistinctUserDefinedType#getPredefinedRepresentation <em>Predefined Representation</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getDistinctUserDefinedType()
+ * @model
+ * @generated
+ */
+public interface DistinctUserDefinedType extends UserDefinedType {
+	/**
+	 * Returns the value of the '<em><b>Predefined Representation</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Predefined Representation</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Predefined Representation</em>' containment reference.
+	 * @see #setPredefinedRepresentation(PredefinedDataType)
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getDistinctUserDefinedType_PredefinedRepresentation()
+	 * @model containment="true" required="true"
+	 * @generated
+	 */
+	PredefinedDataType getPredefinedRepresentation();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.DistinctUserDefinedType#getPredefinedRepresentation <em>Predefined Representation</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Predefined Representation</em>' containment reference.
+	 * @see #getPredefinedRepresentation()
+	 * @generated
+	 */
+	void setPredefinedRepresentation(PredefinedDataType value);
+
+} // DistinctUserDefinedType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/Domain.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/Domain.java
new file mode 100644
index 0000000..06f77f9
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/Domain.java
@@ -0,0 +1,80 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Domain</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.12 Domains
+ * 
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.Domain#getConstraint <em>Constraint</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.Domain#getDefaultValue <em>Default Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getDomain()
+ * @model
+ * @generated
+ */
+public interface Domain extends DistinctUserDefinedType {
+	/**
+	 * Returns the value of the '<em><b>Constraint</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.constraints.CheckConstraint}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Constraint</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Constraint</em>' containment reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getDomain_Constraint()
+	 * @model type="org.eclipse.datatools.modelbase.sql.constraints.CheckConstraint" containment="true"
+	 * @generated
+	 */
+	EList getConstraint();
+
+	/**
+	 * Returns the value of the '<em><b>Default Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Default Value</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Default Value</em>' attribute.
+	 * @see #setDefaultValue(String)
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getDomain_DefaultValue()
+	 * @model
+	 * @generated
+	 */
+	String getDefaultValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.Domain#getDefaultValue <em>Default Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Default Value</em>' attribute.
+	 * @see #getDefaultValue()
+	 * @generated
+	 */
+	void setDefaultValue(String value);
+
+} // Domain
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/ElementType.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/ElementType.java
new file mode 100644
index 0000000..ca98c93
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/ElementType.java
@@ -0,0 +1,56 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.modelbase.sql.datatypes;
+
+import org.eclipse.datatools.modelbase.sql.schema.TypedElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Element Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.ElementType#getCollectionDataType <em>Collection Data Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getElementType()
+ * @model
+ * @generated
+ */
+public interface ElementType extends TypedElement {
+	/**
+	 * Returns the value of the '<em><b>Collection Data Type</b></em>' container reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.datatypes.CollectionDataType#getElementType <em>Element Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Collection Data Type</em>' container reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Collection Data Type</em>' container reference.
+	 * @see #setCollectionDataType(CollectionDataType)
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getElementType_CollectionDataType()
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.CollectionDataType#getElementType
+	 * @model opposite="elementType"
+	 * @generated
+	 */
+	CollectionDataType getCollectionDataType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.ElementType#getCollectionDataType <em>Collection Data Type</em>}' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Collection Data Type</em>' container reference.
+	 * @see #getCollectionDataType()
+	 * @generated
+	 */
+	void setCollectionDataType(CollectionDataType value);
+
+} // ElementType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/ExactNumericDataType.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/ExactNumericDataType.java
new file mode 100644
index 0000000..d99278d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/ExactNumericDataType.java
@@ -0,0 +1,61 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Exact Numeric Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.4 Numbers
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.ExactNumericDataType#getScale <em>Scale</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getExactNumericDataType()
+ * @model abstract="true"
+ * @generated
+ */
+public interface ExactNumericDataType extends NumericalDataType {
+	/**
+	 * Returns the value of the '<em><b>Scale</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Scale</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Scale</em>' attribute.
+	 * @see #setScale(int)
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getExactNumericDataType_Scale()
+	 * @model
+	 * @generated
+	 */
+	int getScale();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.ExactNumericDataType#getScale <em>Scale</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Scale</em>' attribute.
+	 * @see #getScale()
+	 * @generated
+	 */
+	void setScale(int value);
+
+} // ExactNumericDataType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/Field.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/Field.java
new file mode 100644
index 0000000..72a8ab4
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/Field.java
@@ -0,0 +1,95 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes;
+
+import org.eclipse.datatools.modelbase.sql.schema.ReferentialActionType;
+import org.eclipse.datatools.modelbase.sql.schema.TypedElement;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Field</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.13 Columns, fields, and attributes
+ * 
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.Field#getScopeCheck <em>Scope Check</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.Field#isScopeChecked <em>Scope Checked</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getField()
+ * @model
+ * @generated
+ */
+public interface Field extends TypedElement {
+	/**
+	 * Returns the value of the '<em><b>Scope Check</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.schema.ReferentialActionType}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Scope Check</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Scope Check</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.ReferentialActionType
+	 * @see #setScopeCheck(ReferentialActionType)
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getField_ScopeCheck()
+	 * @model
+	 * @generated
+	 */
+	ReferentialActionType getScopeCheck();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.Field#getScopeCheck <em>Scope Check</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Scope Check</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.ReferentialActionType
+	 * @see #getScopeCheck()
+	 * @generated
+	 */
+	void setScopeCheck(ReferentialActionType value);
+
+	/**
+	 * Returns the value of the '<em><b>Scope Checked</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Scope Checked</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Scope Checked</em>' attribute.
+	 * @see #setScopeChecked(boolean)
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getField_ScopeChecked()
+	 * @model
+	 * @generated
+	 */
+	boolean isScopeChecked();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.Field#isScopeChecked <em>Scope Checked</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Scope Checked</em>' attribute.
+	 * @see #isScopeChecked()
+	 * @generated
+	 */
+	void setScopeChecked(boolean value);
+
+} // Field
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/FixedPrecisionDataType.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/FixedPrecisionDataType.java
new file mode 100644
index 0000000..5b9dcde
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/FixedPrecisionDataType.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Fixed Precision Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.4 Numbers
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getFixedPrecisionDataType()
+ * @model
+ * @generated
+ */
+public interface FixedPrecisionDataType extends ExactNumericDataType {
+} // FixedPrecisionDataType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/IntegerDataType.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/IntegerDataType.java
new file mode 100644
index 0000000..3b1d786
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/IntegerDataType.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Integer Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.4 Numbers
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getIntegerDataType()
+ * @model
+ * @generated
+ */
+public interface IntegerDataType extends ExactNumericDataType {
+} // IntegerDataType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/IntegrityControlOption.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/IntegrityControlOption.java
new file mode 100644
index 0000000..7dbbb8f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/IntegrityControlOption.java
@@ -0,0 +1,178 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: IntegrityControlOption.java,v 1.3 2006/09/07 00:19:48 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.datatypes;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Integrity Control Option</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getIntegrityControlOption()
+ * @model
+ * @generated
+ */
+public final class IntegrityControlOption extends AbstractEnumerator {
+	/**
+	 * The '<em><b>ALL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #ALL_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int ALL = 0;
+
+	/**
+	 * The '<em><b>SELECTIVE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #SELECTIVE_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int SELECTIVE = 1;
+
+	/**
+	 * The '<em><b>NONE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NONE_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NONE = 2;
+
+	/**
+	 * The '<em><b>ALL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>ALL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #ALL
+	 * @generated
+	 * @ordered
+	 */
+	public static final IntegrityControlOption ALL_LITERAL = new IntegrityControlOption(ALL, "ALL", "ALL"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>SELECTIVE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>SELECTIVE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #SELECTIVE
+	 * @generated
+	 * @ordered
+	 */
+	public static final IntegrityControlOption SELECTIVE_LITERAL = new IntegrityControlOption(SELECTIVE, "SELECTIVE", "SELECTIVE"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>NONE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NONE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #NONE
+	 * @generated
+	 * @ordered
+	 */
+	public static final IntegrityControlOption NONE_LITERAL = new IntegrityControlOption(NONE, "NONE", "NONE"); //$NON-NLS-1$
+
+	/**
+	 * An array of all the '<em><b>Integrity Control Option</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final IntegrityControlOption[] VALUES_ARRAY =
+		new IntegrityControlOption[] {
+			ALL_LITERAL,
+			SELECTIVE_LITERAL,
+			NONE_LITERAL,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Integrity Control Option</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Integrity Control Option</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static IntegrityControlOption get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			IntegrityControlOption result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Integrity Control Option</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static IntegrityControlOption getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			IntegrityControlOption result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Integrity Control Option</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static IntegrityControlOption get(int value) {
+		switch (value) {
+			case ALL: return ALL_LITERAL;
+			case SELECTIVE: return SELECTIVE_LITERAL;
+			case NONE: return NONE_LITERAL;
+		}
+		return null;
+	}
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private IntegrityControlOption(int value, String name, String literal) {
+		super(value, name, literal);
+	}
+
+} //IntegrityControlOption
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/IntervalDataType.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/IntervalDataType.java
new file mode 100644
index 0000000..0a428d6
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/IntervalDataType.java
@@ -0,0 +1,176 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Interval Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.6.2 Intervals
+ * 
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.IntervalDataType#getLeadingQualifier <em>Leading Qualifier</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.IntervalDataType#getTrailingQualifier <em>Trailing Qualifier</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.IntervalDataType#getLeadingFieldPrecision <em>Leading Field Precision</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.IntervalDataType#getTrailingFieldPrecision <em>Trailing Field Precision</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.IntervalDataType#getFractionalSecondsPrecision <em>Fractional Seconds Precision</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getIntervalDataType()
+ * @model
+ * @generated
+ */
+public interface IntervalDataType extends PredefinedDataType {
+	/**
+	 * Returns the value of the '<em><b>Leading Qualifier</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.datatypes.IntervalQualifierType}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Leading Qualifier</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Leading Qualifier</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.IntervalQualifierType
+	 * @see #setLeadingQualifier(IntervalQualifierType)
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getIntervalDataType_LeadingQualifier()
+	 * @model
+	 * @generated
+	 */
+	IntervalQualifierType getLeadingQualifier();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.IntervalDataType#getLeadingQualifier <em>Leading Qualifier</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Leading Qualifier</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.IntervalQualifierType
+	 * @see #getLeadingQualifier()
+	 * @generated
+	 */
+	void setLeadingQualifier(IntervalQualifierType value);
+
+	/**
+	 * Returns the value of the '<em><b>Trailing Qualifier</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.datatypes.IntervalQualifierType}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Trailing Qualifier</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Trailing Qualifier</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.IntervalQualifierType
+	 * @see #setTrailingQualifier(IntervalQualifierType)
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getIntervalDataType_TrailingQualifier()
+	 * @model
+	 * @generated
+	 */
+	IntervalQualifierType getTrailingQualifier();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.IntervalDataType#getTrailingQualifier <em>Trailing Qualifier</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Trailing Qualifier</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.IntervalQualifierType
+	 * @see #getTrailingQualifier()
+	 * @generated
+	 */
+	void setTrailingQualifier(IntervalQualifierType value);
+
+	/**
+	 * Returns the value of the '<em><b>Leading Field Precision</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Leading Field Precision</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Leading Field Precision</em>' attribute.
+	 * @see #setLeadingFieldPrecision(int)
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getIntervalDataType_LeadingFieldPrecision()
+	 * @model
+	 * @generated
+	 */
+	int getLeadingFieldPrecision();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.IntervalDataType#getLeadingFieldPrecision <em>Leading Field Precision</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Leading Field Precision</em>' attribute.
+	 * @see #getLeadingFieldPrecision()
+	 * @generated
+	 */
+	void setLeadingFieldPrecision(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Trailing Field Precision</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Trailing Field Precision</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Trailing Field Precision</em>' attribute.
+	 * @see #setTrailingFieldPrecision(int)
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getIntervalDataType_TrailingFieldPrecision()
+	 * @model
+	 * @generated
+	 */
+	int getTrailingFieldPrecision();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.IntervalDataType#getTrailingFieldPrecision <em>Trailing Field Precision</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Trailing Field Precision</em>' attribute.
+	 * @see #getTrailingFieldPrecision()
+	 * @generated
+	 */
+	void setTrailingFieldPrecision(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Fractional Seconds Precision</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Fractional Seconds Precision</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Fractional Seconds Precision</em>' attribute.
+	 * @see #setFractionalSecondsPrecision(int)
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getIntervalDataType_FractionalSecondsPrecision()
+	 * @model
+	 * @generated
+	 */
+	int getFractionalSecondsPrecision();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.IntervalDataType#getFractionalSecondsPrecision <em>Fractional Seconds Precision</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Fractional Seconds Precision</em>' attribute.
+	 * @see #getFractionalSecondsPrecision()
+	 * @generated
+	 */
+	void setFractionalSecondsPrecision(int value);
+
+} // IntervalDataType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/IntervalQualifierType.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/IntervalQualifierType.java
new file mode 100644
index 0000000..09368bf
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/IntervalQualifierType.java
@@ -0,0 +1,290 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: IntervalQualifierType.java,v 1.4 2006/09/07 00:19:48 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.datatypes;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Interval Qualifier Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.6.2 Intervals
+ * 
+ * <!-- end-model-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getIntervalQualifierType()
+ * @model
+ * @generated
+ */
+public final class IntervalQualifierType extends AbstractEnumerator {
+	/**
+	 * The '<em><b>YEAR</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #YEAR_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int YEAR = 0;
+
+	/**
+	 * The '<em><b>MONTH</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #MONTH_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int MONTH = 1;
+
+	/**
+	 * The '<em><b>DAY</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #DAY_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int DAY = 2;
+
+	/**
+	 * The '<em><b>HOUR</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #HOUR_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int HOUR = 3;
+
+	/**
+	 * The '<em><b>MINUTE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #MINUTE_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int MINUTE = 4;
+
+	/**
+	 * The '<em><b>SECOND</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #SECOND_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int SECOND = 5;
+
+	/**
+	 * The '<em><b>FRACTION</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>FRACTION</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #FRACTION_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int FRACTION = 6;
+
+	/**
+	 * The '<em><b>YEAR</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>YEAR</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #YEAR
+	 * @generated
+	 * @ordered
+	 */
+	public static final IntervalQualifierType YEAR_LITERAL = new IntervalQualifierType(YEAR, "YEAR", "YEAR"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>MONTH</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>MONTH</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #MONTH
+	 * @generated
+	 * @ordered
+	 */
+	public static final IntervalQualifierType MONTH_LITERAL = new IntervalQualifierType(MONTH, "MONTH", "MONTH"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>DAY</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>DAY</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #DAY
+	 * @generated
+	 * @ordered
+	 */
+	public static final IntervalQualifierType DAY_LITERAL = new IntervalQualifierType(DAY, "DAY", "DAY"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>HOUR</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>HOUR</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #HOUR
+	 * @generated
+	 * @ordered
+	 */
+	public static final IntervalQualifierType HOUR_LITERAL = new IntervalQualifierType(HOUR, "HOUR", "HOUR"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>MINUTE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>MINUTE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #MINUTE
+	 * @generated
+	 * @ordered
+	 */
+	public static final IntervalQualifierType MINUTE_LITERAL = new IntervalQualifierType(MINUTE, "MINUTE", "MINUTE"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>SECOND</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>SECOND</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #SECOND
+	 * @generated
+	 * @ordered
+	 */
+	public static final IntervalQualifierType SECOND_LITERAL = new IntervalQualifierType(SECOND, "SECOND", "SECOND"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>FRACTION</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #FRACTION
+	 * @generated
+	 * @ordered
+	 */
+	public static final IntervalQualifierType FRACTION_LITERAL = new IntervalQualifierType(FRACTION, "FRACTION", "FRACTION"); //$NON-NLS-1$
+
+	/**
+	 * An array of all the '<em><b>Interval Qualifier Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final IntervalQualifierType[] VALUES_ARRAY =
+		new IntervalQualifierType[] {
+			YEAR_LITERAL,
+			MONTH_LITERAL,
+			DAY_LITERAL,
+			HOUR_LITERAL,
+			MINUTE_LITERAL,
+			SECOND_LITERAL,
+			FRACTION_LITERAL,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Interval Qualifier Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Interval Qualifier Type</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static IntervalQualifierType get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			IntervalQualifierType result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Interval Qualifier Type</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static IntervalQualifierType getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			IntervalQualifierType result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Interval Qualifier Type</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static IntervalQualifierType get(int value) {
+		switch (value) {
+			case YEAR: return YEAR_LITERAL;
+			case MONTH: return MONTH_LITERAL;
+			case DAY: return DAY_LITERAL;
+			case HOUR: return HOUR_LITERAL;
+			case MINUTE: return MINUTE_LITERAL;
+			case SECOND: return SECOND_LITERAL;
+			case FRACTION: return FRACTION_LITERAL;
+		}
+		return null;
+	}
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private IntervalQualifierType(int value, String name, String literal) {
+		super(value, name, literal);
+	}
+
+} //IntervalQualifierType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/LinkControlOption.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/LinkControlOption.java
new file mode 100644
index 0000000..778b7d5
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/LinkControlOption.java
@@ -0,0 +1,151 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LinkControlOption.java,v 1.3 2006/09/07 00:19:48 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.datatypes;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Link Control Option</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getLinkControlOption()
+ * @model
+ * @generated
+ */
+public final class LinkControlOption extends AbstractEnumerator {
+	/**
+	 * The '<em><b>FILE LINK CONTROL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #FILE_LINK_CONTROL_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int FILE_LINK_CONTROL = 0;
+
+	/**
+	 * The '<em><b>NO FILE LINK CONTROL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NO_FILE_LINK_CONTROL_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NO_FILE_LINK_CONTROL = 1;
+
+	/**
+	 * The '<em><b>FILE LINK CONTROL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>FILE LINK CONTROL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #FILE_LINK_CONTROL
+	 * @generated
+	 * @ordered
+	 */
+	public static final LinkControlOption FILE_LINK_CONTROL_LITERAL = new LinkControlOption(FILE_LINK_CONTROL, "FILE_LINK_CONTROL", "FILE_LINK_CONTROL"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>NO FILE LINK CONTROL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NO FILE LINK CONTROL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #NO_FILE_LINK_CONTROL
+	 * @generated
+	 * @ordered
+	 */
+	public static final LinkControlOption NO_FILE_LINK_CONTROL_LITERAL = new LinkControlOption(NO_FILE_LINK_CONTROL, "NO_FILE_LINK_CONTROL", "NO_FILE_LINK_CONTROL"); //$NON-NLS-1$
+
+	/**
+	 * An array of all the '<em><b>Link Control Option</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final LinkControlOption[] VALUES_ARRAY =
+		new LinkControlOption[] {
+			FILE_LINK_CONTROL_LITERAL,
+			NO_FILE_LINK_CONTROL_LITERAL,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Link Control Option</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Link Control Option</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static LinkControlOption get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			LinkControlOption result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Link Control Option</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static LinkControlOption getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			LinkControlOption result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Link Control Option</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static LinkControlOption get(int value) {
+		switch (value) {
+			case FILE_LINK_CONTROL: return FILE_LINK_CONTROL_LITERAL;
+			case NO_FILE_LINK_CONTROL: return NO_FILE_LINK_CONTROL_LITERAL;
+		}
+		return null;
+	}
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private LinkControlOption(int value, String name, String literal) {
+		super(value, name, literal);
+	}
+
+} //LinkControlOption
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/MultisetDataType.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/MultisetDataType.java
new file mode 100644
index 0000000..5efc55d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/MultisetDataType.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Multiset Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.10.2 Multisets
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getMultisetDataType()
+ * @model abstract="true"
+ * @generated
+ */
+public interface MultisetDataType extends CollectionDataType {
+} // MultisetDataType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/NumberDataType.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/NumberDataType.java
new file mode 100644
index 0000000..5fa58d4
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/NumberDataType.java
@@ -0,0 +1,64 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Number Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * 4.4 Numbers
+ * 
+ * A number is either an exact numeric value or an approximate numeric value. Any two numbers are comparable.
+ * A numeric type is described by a numeric type descriptor. A numeric type descriptor contains:
+ *  - The name of the specific numeric type (NUMERIC , DECIMAL , SMALLINT , INTEGER , BIGINT , FLOAT , REAL , or DOUBLE PRECISION).
+ *  - The precision of the numeric type.
+ *  - The scale of the numeric type, if it is an exact numeric type.
+ *  - An indication of whether the precision (and scale) are expressed in decimal or binary terms.
+ * 
+ * An SQL-implementation is permitted to regard certain <exact numeric type> s as equivalent, if they have the same precision, scale, and radix, as permitted by the Syntax Rules of Subclause 6.1, "<data type> ". When two or more <exact numeric type> s are equivalent, the SQL-implementation chooses one of these equivalent <exact numeric type> s as the normal form representing that equivalence class of <exact numeric type> s. The normal form determines the name of the exact numeric type in the numeric type descriptor.
+ * 
+ * Similarly, an SQL-implementation is permitted to regard certain <approximate numeric type> s as equivalent, as permitted the Syntax Rules of Subclause 6.1, "<data type> ", in which case the SQL-implementation chooses a normal form to represent each equivalence class of <approximate numeric type> and the normal form determines the name of the approximate numeric type.
+ * 
+ * For every numeric type, the least value is less than zero and the greatest value is greater than zero.
+ * 
+ * 4.4.1 Characteristics of numbers
+ * 
+ * An exact numeric type has a precision P and a scale S. P is a positive integer that determines the number of significant digits in a particular radix R, where R is either 2 or 10. S is a non-negative integer. Every value of an exact numeric type of scale S is of the form n ? 10-S, where n is an integer such that -RP ? n < RP.
+ * NOTE 13 - Not every value in that range is necessarily a value of the type in question.
+ * 
+ * An approximate numeric value consists of a mantissa and an exponent. The mantissa is a signed numeric value, and the exponent is a signed integer that specifies the magnitude of the mantissa. An approximate numeric value has a precision. The precision is a positive integer that specifies the number of significant binary digits in the mantissa. The value of an approximate numeric value is the mantissa multiplied by a factor determined by the exponent.
+ * 
+ * An <approximate numeric literal> ANL consists of an <exact numeric literal> (called the <mantissa> ), the letter 'E' or 'e', and a <signed integer> (called the <exponent> ). If M is the value of the <mantissa> and E is the value of the <exponent> , then M * 10E is the apparent value of ANL. The actual value of ANL is approximately the apparent value of ANL, according to implementation-defined rules.
+ * 
+ * A number is assignable only to sites of numeric type. If an assignment of some number would result in a loss of its most significant digit, an exception condition is raised. If least significant digits are lost, implementationdefined rounding or truncating occurs, with no exception condition being raised. The rules for arithmetic are specified in Subclause 6.26, "<numeric value expression> ".
+ * 
+ * Whenever an exact or approximate numeric value is assigned to an exact numeric value site, an approximation of its value that preserves leading significant digits after rounding or truncating is represented in the declared type of the target. The value is converted to have the precision and scale of the target. The choice of whether to truncate or round is implementation-defined.
+ * 
+ * An approximation obtained by truncation of a numeric value N for an <exact numeric type> T is a value V in T such that N is not closer to zero than is V and there is no value in T between V and N. An approximation obtained by rounding of a numeric value N for an <exact numeric type> T is a value V in T such that the absolute value of the difference between N and the numeric value of V is not greater than half the absolute value of the difference between two successive numeric values in T. If there is more than one such value V, then it is implementation-defined which one is taken.
+ * 
+ * All numeric values between the smallest and the largest value, inclusive, in a given exact numeric type have an approximation obtained by rounding or truncation for that type; it is implementation-defined which other numeric values have such approximations. An approximation obtained by truncation or rounding of a numeric value N for an <approximate numeric type> T is a value V in T such that there is no numeric value in T and distinct from that of V that lies between the numeric value of V and N, inclusive.
+ * 
+ * If there is more than one such value V then it is implementation-defined which one is taken. It is implementationdefined which numeric values have approximations obtained by rounding or truncation for a given approximate numeric type. Whenever an exact or approximate numeric value is assigned to an approximate numeric value site, an approximation of its value is represented in the declared type of the target. The value is converted to have the precision of the target.
+ * 
+ * Operations on numbers are performed according to the normal rules of arithmetic, within implementationdefined limits, except as provided for in Subclause 6.26, "<numeric value expression> ".
+ * 
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see com.ibm.db.models.sql.datatypes.SQLDataTypesPackage#getNumberDataType()
+ * @model abstract="true"
+ * @generated
+ */
+public interface NumberDataType extends PredefinedDataType{
+} // NumberDataType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/NumericalDataType.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/NumericalDataType.java
new file mode 100644
index 0000000..48789f9
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/NumericalDataType.java
@@ -0,0 +1,61 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Numerical Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.4 Numbers
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.NumericalDataType#getPrecision <em>Precision</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getNumericalDataType()
+ * @model abstract="true"
+ * @generated
+ */
+public interface NumericalDataType extends PredefinedDataType {
+	/**
+	 * Returns the value of the '<em><b>Precision</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Precision</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Precision</em>' attribute.
+	 * @see #setPrecision(int)
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getNumericalDataType_Precision()
+	 * @model
+	 * @generated
+	 */
+	int getPrecision();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.NumericalDataType#getPrecision <em>Precision</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Precision</em>' attribute.
+	 * @see #getPrecision()
+	 * @generated
+	 */
+	void setPrecision(int value);
+
+} // NumericalDataType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/OrderingCategoryType.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/OrderingCategoryType.java
new file mode 100644
index 0000000..b47cece
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/OrderingCategoryType.java
@@ -0,0 +1,182 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: OrderingCategoryType.java,v 1.3 2006/09/07 00:19:48 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.datatypes;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Ordering Category Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.7 User-defined types
+ * 
+ * <!-- end-model-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getOrderingCategoryType()
+ * @model
+ * @generated
+ */
+public final class OrderingCategoryType extends AbstractEnumerator {
+	/**
+	 * The '<em><b>RELATIVE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #RELATIVE_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int RELATIVE = 0;
+
+	/**
+	 * The '<em><b>MAP</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #MAP_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int MAP = 1;
+
+	/**
+	 * The '<em><b>STATE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #STATE_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int STATE = 2;
+
+	/**
+	 * The '<em><b>RELATIVE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>RELATIVE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #RELATIVE
+	 * @generated
+	 * @ordered
+	 */
+	public static final OrderingCategoryType RELATIVE_LITERAL = new OrderingCategoryType(RELATIVE, "RELATIVE", "RELATIVE"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>MAP</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>MAP</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #MAP
+	 * @generated
+	 * @ordered
+	 */
+	public static final OrderingCategoryType MAP_LITERAL = new OrderingCategoryType(MAP, "MAP", "MAP"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>STATE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>STATE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #STATE
+	 * @generated
+	 * @ordered
+	 */
+	public static final OrderingCategoryType STATE_LITERAL = new OrderingCategoryType(STATE, "STATE", "STATE"); //$NON-NLS-1$
+
+	/**
+	 * An array of all the '<em><b>Ordering Category Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final OrderingCategoryType[] VALUES_ARRAY =
+		new OrderingCategoryType[] {
+			RELATIVE_LITERAL,
+			MAP_LITERAL,
+			STATE_LITERAL,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Ordering Category Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Ordering Category Type</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static OrderingCategoryType get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			OrderingCategoryType result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Ordering Category Type</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static OrderingCategoryType getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			OrderingCategoryType result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Ordering Category Type</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static OrderingCategoryType get(int value) {
+		switch (value) {
+			case RELATIVE: return RELATIVE_LITERAL;
+			case MAP: return MAP_LITERAL;
+			case STATE: return STATE_LITERAL;
+		}
+		return null;
+	}
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private OrderingCategoryType(int value, String name, String literal) {
+		super(value, name, literal);
+	}
+
+} //OrderingCategoryType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/OrderingType.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/OrderingType.java
new file mode 100644
index 0000000..f514824
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/OrderingType.java
@@ -0,0 +1,155 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: OrderingType.java,v 1.3 2006/09/07 00:19:48 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.datatypes;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Ordering Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.7 User-defined types
+ * 
+ * <!-- end-model-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getOrderingType()
+ * @model
+ * @generated
+ */
+public final class OrderingType extends AbstractEnumerator {
+	/**
+	 * The '<em><b>EQUALS</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #EQUALS_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int EQUALS = 0;
+
+	/**
+	 * The '<em><b>FULL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #FULL_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int FULL = 1;
+
+	/**
+	 * The '<em><b>EQUALS</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>EQUALS</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #EQUALS
+	 * @generated
+	 * @ordered
+	 */
+	public static final OrderingType EQUALS_LITERAL = new OrderingType(EQUALS, "EQUALS", "EQUALS"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>FULL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>FULL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #FULL
+	 * @generated
+	 * @ordered
+	 */
+	public static final OrderingType FULL_LITERAL = new OrderingType(FULL, "FULL", "FULL"); //$NON-NLS-1$
+
+	/**
+	 * An array of all the '<em><b>Ordering Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final OrderingType[] VALUES_ARRAY =
+		new OrderingType[] {
+			EQUALS_LITERAL,
+			FULL_LITERAL,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Ordering Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Ordering Type</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static OrderingType get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			OrderingType result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Ordering Type</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static OrderingType getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			OrderingType result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Ordering Type</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static OrderingType get(int value) {
+		switch (value) {
+			case EQUALS: return EQUALS_LITERAL;
+			case FULL: return FULL_LITERAL;
+		}
+		return null;
+	}
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private OrderingType(int value, String name, String literal) {
+		super(value, name, literal);
+	}
+
+} //OrderingType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/PredefinedDataType.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/PredefinedDataType.java
new file mode 100644
index 0000000..dd2f2d9
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/PredefinedDataType.java
@@ -0,0 +1,65 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Predefined Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.1 Data types
+ * 
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.PredefinedDataType#getPrimitiveType <em>Primitive Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getPredefinedDataType()
+ * @model abstract="true"
+ * @generated
+ */
+public interface PredefinedDataType extends SQLDataType {
+	/**
+	 * Returns the value of the '<em><b>Primitive Type</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.datatypes.PrimitiveType}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Primitive Type</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Primitive Type</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.PrimitiveType
+	 * @see #setPrimitiveType(PrimitiveType)
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getPredefinedDataType_PrimitiveType()
+	 * @model
+	 * @generated
+	 */
+	PrimitiveType getPrimitiveType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.PredefinedDataType#getPrimitiveType <em>Primitive Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Primitive Type</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.PrimitiveType
+	 * @see #getPrimitiveType()
+	 * @generated
+	 */
+	void setPrimitiveType(PrimitiveType value);
+
+} // PredefinedDataType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/PrimitiveType.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/PrimitiveType.java
new file mode 100644
index 0000000..fafc905
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/PrimitiveType.java
@@ -0,0 +1,748 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PrimitiveType.java,v 1.4 2006/10/18 18:37:56 avainchte Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.datatypes;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Primitive Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.1 Data types
+ * <!-- end-model-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getPrimitiveType()
+ * @model
+ * @generated
+ */
+public final class PrimitiveType extends AbstractEnumerator {
+	/**
+	 * The '<em><b>CHARACTER</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #CHARACTER_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int CHARACTER = 0;
+
+	/**
+	 * The '<em><b>CHARACTER VARYING</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #CHARACTER_VARYING_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int CHARACTER_VARYING = 1;
+
+	/**
+	 * The '<em><b>CHARACTER LARGE OBJECT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #CHARACTER_LARGE_OBJECT_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int CHARACTER_LARGE_OBJECT = 2;
+
+	/**
+	 * The '<em><b>NATIONAL CHARACTER</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NATIONAL_CHARACTER_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NATIONAL_CHARACTER = 3;
+
+	/**
+	 * The '<em><b>NATIONAL CHARACTER VARYING</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NATIONAL_CHARACTER_VARYING_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NATIONAL_CHARACTER_VARYING = 4;
+
+	/**
+	 * The '<em><b>NATIONAL CHARACTER LARGE OBJECT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NATIONAL_CHARACTER_LARGE_OBJECT_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NATIONAL_CHARACTER_LARGE_OBJECT = 5;
+
+	/**
+	 * The '<em><b>BINARY</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #BINARY_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int BINARY = 6;
+
+	/**
+	 * The '<em><b>BINARY VARYING</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #BINARY_VARYING_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int BINARY_VARYING = 7;
+
+	/**
+	 * The '<em><b>BINARY LARGE OBJECT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #BINARY_LARGE_OBJECT_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int BINARY_LARGE_OBJECT = 8;
+
+	/**
+	 * The '<em><b>NUMERIC</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NUMERIC_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NUMERIC = 9;
+
+	/**
+	 * The '<em><b>DECIMAL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #DECIMAL_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int DECIMAL = 10;
+
+	/**
+	 * The '<em><b>SMALLINT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #SMALLINT_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int SMALLINT = 11;
+
+	/**
+	 * The '<em><b>INTEGER</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #INTEGER_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int INTEGER = 12;
+
+	/**
+	 * The '<em><b>BIGINT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #BIGINT_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int BIGINT = 13;
+
+	/**
+	 * The '<em><b>FLOAT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #FLOAT_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int FLOAT = 14;
+
+	/**
+	 * The '<em><b>REAL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #REAL_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int REAL = 15;
+
+	/**
+	 * The '<em><b>DOUBLE PRECISION</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #DOUBLE_PRECISION_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int DOUBLE_PRECISION = 16;
+
+	/**
+	 * The '<em><b>BOOLEAN</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #BOOLEAN_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int BOOLEAN = 17;
+
+	/**
+	 * The '<em><b>DATE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #DATE_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int DATE = 18;
+
+	/**
+	 * The '<em><b>TIME</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #TIME_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int TIME = 19;
+
+	/**
+	 * The '<em><b>TIMESTAMP</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #TIMESTAMP_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int TIMESTAMP = 20;
+
+	/**
+	 * The '<em><b>INTERVAL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #INTERVAL_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int INTERVAL = 21;
+
+	/**
+	 * The '<em><b>DATALINK</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #DATALINK_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int DATALINK = 22;
+
+	/**
+	 * The '<em><b>XML TYPE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #XML_TYPE_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int XML_TYPE = 23;
+
+	/**
+	 * The '<em><b>CHARACTER</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>CHARACTER</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #CHARACTER
+	 * @generated
+	 * @ordered
+	 */
+	public static final PrimitiveType CHARACTER_LITERAL = new PrimitiveType(CHARACTER, "CHARACTER", "CHARACTER"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>CHARACTER VARYING</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>CHARACTER VARYING</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #CHARACTER_VARYING
+	 * @generated
+	 * @ordered
+	 */
+	public static final PrimitiveType CHARACTER_VARYING_LITERAL = new PrimitiveType(CHARACTER_VARYING, "CHARACTER_VARYING", "CHARACTER_VARYING"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>CHARACTER LARGE OBJECT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>CHARACTER LARGE OBJECT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #CHARACTER_LARGE_OBJECT
+	 * @generated
+	 * @ordered
+	 */
+	public static final PrimitiveType CHARACTER_LARGE_OBJECT_LITERAL = new PrimitiveType(CHARACTER_LARGE_OBJECT, "CHARACTER_LARGE_OBJECT", "CHARACTER_LARGE_OBJECT"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>NATIONAL CHARACTER</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NATIONAL CHARACTER</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #NATIONAL_CHARACTER
+	 * @generated
+	 * @ordered
+	 */
+	public static final PrimitiveType NATIONAL_CHARACTER_LITERAL = new PrimitiveType(NATIONAL_CHARACTER, "NATIONAL_CHARACTER", "NATIONAL_CHARACTER"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>NATIONAL CHARACTER VARYING</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NATIONAL CHARACTER VARYING</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #NATIONAL_CHARACTER_VARYING
+	 * @generated
+	 * @ordered
+	 */
+	public static final PrimitiveType NATIONAL_CHARACTER_VARYING_LITERAL = new PrimitiveType(NATIONAL_CHARACTER_VARYING, "NATIONAL_CHARACTER_VARYING", "NATIONAL_CHARACTER_VARYING"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>NATIONAL CHARACTER LARGE OBJECT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NATIONAL CHARACTER LARGE OBJECT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #NATIONAL_CHARACTER_LARGE_OBJECT
+	 * @generated
+	 * @ordered
+	 */
+	public static final PrimitiveType NATIONAL_CHARACTER_LARGE_OBJECT_LITERAL = new PrimitiveType(NATIONAL_CHARACTER_LARGE_OBJECT, "NATIONAL_CHARACTER_LARGE_OBJECT", "NATIONAL_CHARACTER_LARGE_OBJECT"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>BINARY</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>BINARY</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #BINARY
+	 * @generated
+	 * @ordered
+	 */
+	public static final PrimitiveType BINARY_LITERAL = new PrimitiveType(BINARY, "BINARY", "BINARY"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>BINARY VARYING</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>BINARY VARYING</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #BINARY_VARYING
+	 * @generated
+	 * @ordered
+	 */
+	public static final PrimitiveType BINARY_VARYING_LITERAL = new PrimitiveType(BINARY_VARYING, "BINARY_VARYING", "BINARY_VARYING"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>BINARY LARGE OBJECT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>BINARY LARGE OBJECT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #BINARY_LARGE_OBJECT
+	 * @generated
+	 * @ordered
+	 */
+	public static final PrimitiveType BINARY_LARGE_OBJECT_LITERAL = new PrimitiveType(BINARY_LARGE_OBJECT, "BINARY_LARGE_OBJECT", "BINARY_LARGE_OBJECT"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>NUMERIC</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NUMERIC</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #NUMERIC
+	 * @generated
+	 * @ordered
+	 */
+	public static final PrimitiveType NUMERIC_LITERAL = new PrimitiveType(NUMERIC, "NUMERIC", "NUMERIC"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>DECIMAL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>DECIMAL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #DECIMAL
+	 * @generated
+	 * @ordered
+	 */
+	public static final PrimitiveType DECIMAL_LITERAL = new PrimitiveType(DECIMAL, "DECIMAL", "DECIMAL"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>SMALLINT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>SMALLINT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #SMALLINT
+	 * @generated
+	 * @ordered
+	 */
+	public static final PrimitiveType SMALLINT_LITERAL = new PrimitiveType(SMALLINT, "SMALLINT", "SMALLINT"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>INTEGER</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>INTEGER</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #INTEGER
+	 * @generated
+	 * @ordered
+	 */
+	public static final PrimitiveType INTEGER_LITERAL = new PrimitiveType(INTEGER, "INTEGER", "INTEGER"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>BIGINT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>BIGINT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #BIGINT
+	 * @generated
+	 * @ordered
+	 */
+	public static final PrimitiveType BIGINT_LITERAL = new PrimitiveType(BIGINT, "BIGINT", "BIGINT"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>FLOAT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>FLOAT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #FLOAT
+	 * @generated
+	 * @ordered
+	 */
+	public static final PrimitiveType FLOAT_LITERAL = new PrimitiveType(FLOAT, "FLOAT", "FLOAT"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>REAL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>REAL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #REAL
+	 * @generated
+	 * @ordered
+	 */
+	public static final PrimitiveType REAL_LITERAL = new PrimitiveType(REAL, "REAL", "REAL"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>DOUBLE PRECISION</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>DOUBLE PRECISION</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #DOUBLE_PRECISION
+	 * @generated
+	 * @ordered
+	 */
+	public static final PrimitiveType DOUBLE_PRECISION_LITERAL = new PrimitiveType(DOUBLE_PRECISION, "DOUBLE_PRECISION", "DOUBLE_PRECISION"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>BOOLEAN</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>BOOLEAN</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #BOOLEAN
+	 * @generated
+	 * @ordered
+	 */
+	public static final PrimitiveType BOOLEAN_LITERAL = new PrimitiveType(BOOLEAN, "BOOLEAN", "BOOLEAN"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>DATE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>DATE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #DATE
+	 * @generated
+	 * @ordered
+	 */
+	public static final PrimitiveType DATE_LITERAL = new PrimitiveType(DATE, "DATE", "DATE"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>TIME</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>TIME</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #TIME
+	 * @generated
+	 * @ordered
+	 */
+	public static final PrimitiveType TIME_LITERAL = new PrimitiveType(TIME, "TIME", "TIME"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>TIMESTAMP</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>TIMESTAMP</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #TIMESTAMP
+	 * @generated
+	 * @ordered
+	 */
+	public static final PrimitiveType TIMESTAMP_LITERAL = new PrimitiveType(TIMESTAMP, "TIMESTAMP", "TIMESTAMP"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>INTERVAL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>INTERVAL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #INTERVAL
+	 * @generated
+	 * @ordered
+	 */
+	public static final PrimitiveType INTERVAL_LITERAL = new PrimitiveType(INTERVAL, "INTERVAL", "INTERVAL"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>DATALINK</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>DATALINK</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #DATALINK
+	 * @generated
+	 * @ordered
+	 */
+	public static final PrimitiveType DATALINK_LITERAL = new PrimitiveType(DATALINK, "DATALINK", "DATALINK"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>XML TYPE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>XML TYPE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #XML_TYPE
+	 * @generated
+	 * @ordered
+	 */
+	public static final PrimitiveType XML_TYPE_LITERAL = new PrimitiveType(XML_TYPE, "XML_TYPE", "XML_TYPE"); //$NON-NLS-1$
+
+	/**
+	 * An array of all the '<em><b>Primitive Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final PrimitiveType[] VALUES_ARRAY =
+		new PrimitiveType[] {
+			CHARACTER_LITERAL,
+			CHARACTER_VARYING_LITERAL,
+			CHARACTER_LARGE_OBJECT_LITERAL,
+			NATIONAL_CHARACTER_LITERAL,
+			NATIONAL_CHARACTER_VARYING_LITERAL,
+			NATIONAL_CHARACTER_LARGE_OBJECT_LITERAL,
+			BINARY_LITERAL,
+			BINARY_VARYING_LITERAL,
+			BINARY_LARGE_OBJECT_LITERAL,
+			NUMERIC_LITERAL,
+			DECIMAL_LITERAL,
+			SMALLINT_LITERAL,
+			INTEGER_LITERAL,
+			BIGINT_LITERAL,
+			FLOAT_LITERAL,
+			REAL_LITERAL,
+			DOUBLE_PRECISION_LITERAL,
+			BOOLEAN_LITERAL,
+			DATE_LITERAL,
+			TIME_LITERAL,
+			TIMESTAMP_LITERAL,
+			INTERVAL_LITERAL,
+			DATALINK_LITERAL,
+			XML_TYPE_LITERAL,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Primitive Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Primitive Type</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static PrimitiveType get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			PrimitiveType result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Primitive Type</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static PrimitiveType getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			PrimitiveType result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Primitive Type</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static PrimitiveType get(int value) {
+		switch (value) {
+			case CHARACTER: return CHARACTER_LITERAL;
+			case CHARACTER_VARYING: return CHARACTER_VARYING_LITERAL;
+			case CHARACTER_LARGE_OBJECT: return CHARACTER_LARGE_OBJECT_LITERAL;
+			case NATIONAL_CHARACTER: return NATIONAL_CHARACTER_LITERAL;
+			case NATIONAL_CHARACTER_VARYING: return NATIONAL_CHARACTER_VARYING_LITERAL;
+			case NATIONAL_CHARACTER_LARGE_OBJECT: return NATIONAL_CHARACTER_LARGE_OBJECT_LITERAL;
+			case BINARY: return BINARY_LITERAL;
+			case BINARY_VARYING: return BINARY_VARYING_LITERAL;
+			case BINARY_LARGE_OBJECT: return BINARY_LARGE_OBJECT_LITERAL;
+			case NUMERIC: return NUMERIC_LITERAL;
+			case DECIMAL: return DECIMAL_LITERAL;
+			case SMALLINT: return SMALLINT_LITERAL;
+			case INTEGER: return INTEGER_LITERAL;
+			case BIGINT: return BIGINT_LITERAL;
+			case FLOAT: return FLOAT_LITERAL;
+			case REAL: return REAL_LITERAL;
+			case DOUBLE_PRECISION: return DOUBLE_PRECISION_LITERAL;
+			case BOOLEAN: return BOOLEAN_LITERAL;
+			case DATE: return DATE_LITERAL;
+			case TIME: return TIME_LITERAL;
+			case TIMESTAMP: return TIMESTAMP_LITERAL;
+			case INTERVAL: return INTERVAL_LITERAL;
+			case DATALINK: return DATALINK_LITERAL;
+			case XML_TYPE: return XML_TYPE_LITERAL;
+		}
+		return null;
+	}
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private PrimitiveType(int value, String name, String literal) {
+		super(value, name, literal);
+	}
+
+} //PrimitiveType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/ReadPermissionOption.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/ReadPermissionOption.java
new file mode 100644
index 0000000..8a17fe5
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/ReadPermissionOption.java
@@ -0,0 +1,151 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ReadPermissionOption.java,v 1.3 2006/09/07 00:19:48 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.datatypes;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Read Permission Option</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getReadPermissionOption()
+ * @model
+ * @generated
+ */
+public final class ReadPermissionOption extends AbstractEnumerator {
+	/**
+	 * The '<em><b>FS</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #FS_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int FS = 0;
+
+	/**
+	 * The '<em><b>DB</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #DB_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int DB = 1;
+
+	/**
+	 * The '<em><b>FS</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>FS</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #FS
+	 * @generated
+	 * @ordered
+	 */
+	public static final ReadPermissionOption FS_LITERAL = new ReadPermissionOption(FS, "FS", "FS"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>DB</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>DB</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #DB
+	 * @generated
+	 * @ordered
+	 */
+	public static final ReadPermissionOption DB_LITERAL = new ReadPermissionOption(DB, "DB", "DB"); //$NON-NLS-1$
+
+	/**
+	 * An array of all the '<em><b>Read Permission Option</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final ReadPermissionOption[] VALUES_ARRAY =
+		new ReadPermissionOption[] {
+			FS_LITERAL,
+			DB_LITERAL,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Read Permission Option</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Read Permission Option</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ReadPermissionOption get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			ReadPermissionOption result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Read Permission Option</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ReadPermissionOption getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			ReadPermissionOption result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Read Permission Option</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ReadPermissionOption get(int value) {
+		switch (value) {
+			case FS: return FS_LITERAL;
+			case DB: return DB_LITERAL;
+		}
+		return null;
+	}
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private ReadPermissionOption(int value, String name, String literal) {
+		super(value, name, literal);
+	}
+
+} //ReadPermissionOption
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/ReferenceDataType.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/ReferenceDataType.java
new file mode 100644
index 0000000..2cee322
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/ReferenceDataType.java
@@ -0,0 +1,89 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes;
+
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Reference Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.9 Reference Types
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.ReferenceDataType#getScopeTable <em>Scope Table</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.ReferenceDataType#getReferencedType <em>Referenced Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getReferenceDataType()
+ * @model abstract="true"
+ * @generated
+ */
+public interface ReferenceDataType extends ConstructedDataType {
+	/**
+	 * Returns the value of the '<em><b>Scope Table</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Scope Table</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Scope Table</em>' reference.
+	 * @see #setScopeTable(Table)
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getReferenceDataType_ScopeTable()
+	 * @model required="true"
+	 * @generated
+	 */
+	Table getScopeTable();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.ReferenceDataType#getScopeTable <em>Scope Table</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Scope Table</em>' reference.
+	 * @see #getScopeTable()
+	 * @generated
+	 */
+	void setScopeTable(Table value);
+
+	/**
+	 * Returns the value of the '<em><b>Referenced Type</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Referenced Type</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Referenced Type</em>' reference.
+	 * @see #setReferencedType(StructuredUserDefinedType)
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getReferenceDataType_ReferencedType()
+	 * @model required="true"
+	 * @generated
+	 */
+	StructuredUserDefinedType getReferencedType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.ReferenceDataType#getReferencedType <em>Referenced Type</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Referenced Type</em>' reference.
+	 * @see #getReferencedType()
+	 * @generated
+	 */
+	void setReferencedType(StructuredUserDefinedType value);
+
+} // ReferenceDataType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/RowDataType.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/RowDataType.java
new file mode 100644
index 0000000..0c2bb4f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/RowDataType.java
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Row Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.8 Row Types
+ * 
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.RowDataType#getFields <em>Fields</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getRowDataType()
+ * @model
+ * @generated
+ */
+public interface RowDataType extends ConstructedDataType {
+	/**
+	 * Returns the value of the '<em><b>Fields</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.datatypes.Field}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Fields</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Fields</em>' containment reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getRowDataType_Fields()
+	 * @model type="org.eclipse.datatools.modelbase.sql.datatypes.Field" containment="true" required="true"
+	 * @generated
+	 */
+	EList getFields();
+
+} // RowDataType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/SQLDataType.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/SQLDataType.java
new file mode 100644
index 0000000..2f01abd
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/SQLDataType.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * SQLDataType represents any non user defined data type.  It was introduced because a TypedElement needs to distinguish between UDTs and non UDTs.
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getSQLDataType()
+ * @model abstract="true"
+ * @generated
+ */
+public interface SQLDataType extends DataType {
+} // SQLDataType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/SQLDataTypesFactory.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/SQLDataTypesFactory.java
new file mode 100644
index 0000000..3c77475
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/SQLDataTypesFactory.java
@@ -0,0 +1,221 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage
+ * @generated
+ */
+public interface SQLDataTypesFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	SQLDataTypesFactory eINSTANCE = org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesFactoryImpl.init();
+
+	/**
+	 * Returns a new object of class '<em>Character String Data Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Character String Data Type</em>'.
+	 * @generated
+	 */
+	CharacterStringDataType createCharacterStringDataType();
+
+	/**
+	 * Returns a new object of class '<em>Row Data Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Row Data Type</em>'.
+	 * @generated
+	 */
+	RowDataType createRowDataType();
+
+	/**
+	 * Returns a new object of class '<em>Boolean Data Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Boolean Data Type</em>'.
+	 * @generated
+	 */
+	BooleanDataType createBooleanDataType();
+
+	/**
+	 * Returns a new object of class '<em>Interval Data Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Interval Data Type</em>'.
+	 * @generated
+	 */
+	IntervalDataType createIntervalDataType();
+
+	/**
+	 * Returns a new object of class '<em>Binary String Data Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Binary String Data Type</em>'.
+	 * @generated
+	 */
+	BinaryStringDataType createBinaryStringDataType();
+
+	/**
+	 * Returns a new object of class '<em>Character Set</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Character Set</em>'.
+	 * @generated
+	 */
+	CharacterSet createCharacterSet();
+
+	/**
+	 * Returns a new object of class '<em>Time Data Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Time Data Type</em>'.
+	 * @generated
+	 */
+	TimeDataType createTimeDataType();
+
+	/**
+	 * Returns a new object of class '<em>Distinct User Defined Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Distinct User Defined Type</em>'.
+	 * @generated
+	 */
+	DistinctUserDefinedType createDistinctUserDefinedType();
+
+	/**
+	 * Returns a new object of class '<em>Structured User Defined Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Structured User Defined Type</em>'.
+	 * @generated
+	 */
+	StructuredUserDefinedType createStructuredUserDefinedType();
+
+	/**
+	 * Returns a new object of class '<em>Attribute Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Attribute Definition</em>'.
+	 * @generated
+	 */
+	AttributeDefinition createAttributeDefinition();
+
+	/**
+	 * Returns a new object of class '<em>Fixed Precision Data Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Fixed Precision Data Type</em>'.
+	 * @generated
+	 */
+	FixedPrecisionDataType createFixedPrecisionDataType();
+
+	/**
+	 * Returns a new object of class '<em>Domain</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Domain</em>'.
+	 * @generated
+	 */
+	Domain createDomain();
+
+	/**
+	 * Returns a new object of class '<em>Field</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Field</em>'.
+	 * @generated
+	 */
+	Field createField();
+
+	/**
+	 * Returns a new object of class '<em>Data Link Data Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Data Link Data Type</em>'.
+	 * @generated
+	 */
+	DataLinkDataType createDataLinkDataType();
+
+	/**
+	 * Returns a new object of class '<em>User Defined Type Ordering</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>User Defined Type Ordering</em>'.
+	 * @generated
+	 */
+	UserDefinedTypeOrdering createUserDefinedTypeOrdering();
+
+	/**
+	 * Returns a new object of class '<em>Date Data Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Date Data Type</em>'.
+	 * @generated
+	 */
+	DateDataType createDateDataType();
+
+	/**
+	 * Returns a new object of class '<em>Approximate Numeric Data Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Approximate Numeric Data Type</em>'.
+	 * @generated
+	 */
+	ApproximateNumericDataType createApproximateNumericDataType();
+
+	/**
+	 * Returns a new object of class '<em>Integer Data Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Integer Data Type</em>'.
+	 * @generated
+	 */
+	IntegerDataType createIntegerDataType();
+
+	/**
+	 * Returns a new object of class '<em>XML Data Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>XML Data Type</em>'.
+	 * @generated
+	 */
+	XMLDataType createXMLDataType();
+
+	/**
+	 * Returns a new object of class '<em>Element Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Element Type</em>'.
+	 * @generated
+	 */
+	ElementType createElementType();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	SQLDataTypesPackage getSQLDataTypesPackage();
+
+} //SQLDataTypesFactory
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/SQLDataTypesPackage.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/SQLDataTypesPackage.java
new file mode 100644
index 0000000..d7d0890
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/SQLDataTypesPackage.java
@@ -0,0 +1,5624 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ *   <li>each class,</li>
+ *   <li>each feature of each class,</li>
+ *   <li>each enum,</li>
+ *   <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface SQLDataTypesPackage extends EPackage {
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNAME = "datatypes"; //$NON-NLS-1$
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_URI = "http:///org/eclipse/datatools/modelbase/sql/datatypes.ecore"; //$NON-NLS-1$
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_PREFIX = "SQLDataTypes"; //$NON-NLS-1$
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	SQLDataTypesPackage eINSTANCE = org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl.init();
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.DataTypeImpl <em>Data Type</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.DataTypeImpl
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getDataType()
+	 * @generated
+	 */
+	int DATA_TYPE = 1;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+	/**
+	 * The number of structural features of the '<em>Data Type</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.UserDefinedTypeImpl <em>User Defined Type</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.UserDefinedTypeImpl
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getUserDefinedType()
+	 * @generated
+	 */
+	int USER_DEFINED_TYPE = 0;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_TYPE__EANNOTATIONS = DATA_TYPE__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_TYPE__NAME = DATA_TYPE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_TYPE__DEPENDENCIES = DATA_TYPE__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_TYPE__DESCRIPTION = DATA_TYPE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_TYPE__LABEL = DATA_TYPE__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_TYPE__COMMENTS = DATA_TYPE__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_TYPE__EXTENSIONS = DATA_TYPE__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_TYPE__PRIVILEGES = DATA_TYPE__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Schema</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_TYPE__SCHEMA = DATA_TYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Ordering</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_TYPE__ORDERING = DATA_TYPE_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>User Defined Type</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_TYPE_FEATURE_COUNT = DATA_TYPE_FEATURE_COUNT + 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypeImpl <em>SQL Data Type</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypeImpl
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getSQLDataType()
+	 * @generated
+	 */
+	int SQL_DATA_TYPE = 22;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SQL_DATA_TYPE__EANNOTATIONS = DATA_TYPE__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SQL_DATA_TYPE__NAME = DATA_TYPE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SQL_DATA_TYPE__DEPENDENCIES = DATA_TYPE__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SQL_DATA_TYPE__DESCRIPTION = DATA_TYPE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SQL_DATA_TYPE__LABEL = DATA_TYPE__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SQL_DATA_TYPE__COMMENTS = DATA_TYPE__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SQL_DATA_TYPE__EXTENSIONS = DATA_TYPE__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SQL_DATA_TYPE__PRIVILEGES = DATA_TYPE__PRIVILEGES;
+
+	/**
+	 * The number of structural features of the '<em>SQL Data Type</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SQL_DATA_TYPE_FEATURE_COUNT = DATA_TYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.PredefinedDataTypeImpl <em>Predefined Data Type</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.PredefinedDataTypeImpl
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getPredefinedDataType()
+	 * @generated
+	 */
+	int PREDEFINED_DATA_TYPE = 2;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE__EANNOTATIONS = SQL_DATA_TYPE__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE__NAME = SQL_DATA_TYPE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE__DEPENDENCIES = SQL_DATA_TYPE__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE__DESCRIPTION = SQL_DATA_TYPE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE__LABEL = SQL_DATA_TYPE__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE__COMMENTS = SQL_DATA_TYPE__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE__EXTENSIONS = SQL_DATA_TYPE__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE__PRIVILEGES = SQL_DATA_TYPE__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Primitive Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE__PRIMITIVE_TYPE = SQL_DATA_TYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Predefined Data Type</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PREDEFINED_DATA_TYPE_FEATURE_COUNT = SQL_DATA_TYPE_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.ConstructedDataTypeImpl <em>Constructed Data Type</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.ConstructedDataTypeImpl
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getConstructedDataType()
+	 * @generated
+	 */
+	int CONSTRUCTED_DATA_TYPE = 21;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRUCTED_DATA_TYPE__EANNOTATIONS = DATA_TYPE__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRUCTED_DATA_TYPE__NAME = DATA_TYPE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRUCTED_DATA_TYPE__DEPENDENCIES = DATA_TYPE__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRUCTED_DATA_TYPE__DESCRIPTION = DATA_TYPE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRUCTED_DATA_TYPE__LABEL = DATA_TYPE__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRUCTED_DATA_TYPE__COMMENTS = DATA_TYPE__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRUCTED_DATA_TYPE__EXTENSIONS = DATA_TYPE__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRUCTED_DATA_TYPE__PRIVILEGES = DATA_TYPE__PRIVILEGES;
+
+	/**
+	 * The number of structural features of the '<em>Constructed Data Type</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTRUCTED_DATA_TYPE_FEATURE_COUNT = DATA_TYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.CollectionDataTypeImpl <em>Collection Data Type</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.CollectionDataTypeImpl
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getCollectionDataType()
+	 * @generated
+	 */
+	int COLLECTION_DATA_TYPE = 3;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLLECTION_DATA_TYPE__EANNOTATIONS = CONSTRUCTED_DATA_TYPE__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLLECTION_DATA_TYPE__NAME = CONSTRUCTED_DATA_TYPE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLLECTION_DATA_TYPE__DEPENDENCIES = CONSTRUCTED_DATA_TYPE__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLLECTION_DATA_TYPE__DESCRIPTION = CONSTRUCTED_DATA_TYPE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLLECTION_DATA_TYPE__LABEL = CONSTRUCTED_DATA_TYPE__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLLECTION_DATA_TYPE__COMMENTS = CONSTRUCTED_DATA_TYPE__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLLECTION_DATA_TYPE__EXTENSIONS = CONSTRUCTED_DATA_TYPE__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLLECTION_DATA_TYPE__PRIVILEGES = CONSTRUCTED_DATA_TYPE__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Element Type</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLLECTION_DATA_TYPE__ELEMENT_TYPE = CONSTRUCTED_DATA_TYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Collection Data Type</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLLECTION_DATA_TYPE_FEATURE_COUNT = CONSTRUCTED_DATA_TYPE_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.NumericalDataTypeImpl <em>Numerical Data Type</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.NumericalDataTypeImpl
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getNumericalDataType()
+	 * @generated
+	 */
+	int NUMERICAL_DATA_TYPE = 4;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NUMERICAL_DATA_TYPE__EANNOTATIONS = PREDEFINED_DATA_TYPE__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NUMERICAL_DATA_TYPE__NAME = PREDEFINED_DATA_TYPE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NUMERICAL_DATA_TYPE__DEPENDENCIES = PREDEFINED_DATA_TYPE__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NUMERICAL_DATA_TYPE__DESCRIPTION = PREDEFINED_DATA_TYPE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NUMERICAL_DATA_TYPE__LABEL = PREDEFINED_DATA_TYPE__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NUMERICAL_DATA_TYPE__COMMENTS = PREDEFINED_DATA_TYPE__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NUMERICAL_DATA_TYPE__EXTENSIONS = PREDEFINED_DATA_TYPE__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NUMERICAL_DATA_TYPE__PRIVILEGES = PREDEFINED_DATA_TYPE__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Primitive Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NUMERICAL_DATA_TYPE__PRIMITIVE_TYPE = PREDEFINED_DATA_TYPE__PRIMITIVE_TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Precision</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NUMERICAL_DATA_TYPE__PRECISION = PREDEFINED_DATA_TYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Numerical Data Type</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NUMERICAL_DATA_TYPE_FEATURE_COUNT = PREDEFINED_DATA_TYPE_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.CharacterStringDataTypeImpl <em>Character String Data Type</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.CharacterStringDataTypeImpl
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getCharacterStringDataType()
+	 * @generated
+	 */
+	int CHARACTER_STRING_DATA_TYPE = 5;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHARACTER_STRING_DATA_TYPE__EANNOTATIONS = PREDEFINED_DATA_TYPE__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHARACTER_STRING_DATA_TYPE__NAME = PREDEFINED_DATA_TYPE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHARACTER_STRING_DATA_TYPE__DEPENDENCIES = PREDEFINED_DATA_TYPE__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHARACTER_STRING_DATA_TYPE__DESCRIPTION = PREDEFINED_DATA_TYPE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHARACTER_STRING_DATA_TYPE__LABEL = PREDEFINED_DATA_TYPE__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHARACTER_STRING_DATA_TYPE__COMMENTS = PREDEFINED_DATA_TYPE__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHARACTER_STRING_DATA_TYPE__EXTENSIONS = PREDEFINED_DATA_TYPE__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHARACTER_STRING_DATA_TYPE__PRIVILEGES = PREDEFINED_DATA_TYPE__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Primitive Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHARACTER_STRING_DATA_TYPE__PRIMITIVE_TYPE = PREDEFINED_DATA_TYPE__PRIMITIVE_TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHARACTER_STRING_DATA_TYPE__LENGTH = PREDEFINED_DATA_TYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Coercibility</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHARACTER_STRING_DATA_TYPE__COERCIBILITY = PREDEFINED_DATA_TYPE_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Fixed Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHARACTER_STRING_DATA_TYPE__FIXED_LENGTH = PREDEFINED_DATA_TYPE_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Collation Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHARACTER_STRING_DATA_TYPE__COLLATION_NAME = PREDEFINED_DATA_TYPE_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Character Set</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHARACTER_STRING_DATA_TYPE__CHARACTER_SET = PREDEFINED_DATA_TYPE_FEATURE_COUNT + 4;
+
+	/**
+	 * The number of structural features of the '<em>Character String Data Type</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHARACTER_STRING_DATA_TYPE_FEATURE_COUNT = PREDEFINED_DATA_TYPE_FEATURE_COUNT + 5;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.RowDataTypeImpl <em>Row Data Type</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.RowDataTypeImpl
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getRowDataType()
+	 * @generated
+	 */
+	int ROW_DATA_TYPE = 6;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROW_DATA_TYPE__EANNOTATIONS = CONSTRUCTED_DATA_TYPE__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROW_DATA_TYPE__NAME = CONSTRUCTED_DATA_TYPE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROW_DATA_TYPE__DEPENDENCIES = CONSTRUCTED_DATA_TYPE__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROW_DATA_TYPE__DESCRIPTION = CONSTRUCTED_DATA_TYPE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROW_DATA_TYPE__LABEL = CONSTRUCTED_DATA_TYPE__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROW_DATA_TYPE__COMMENTS = CONSTRUCTED_DATA_TYPE__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROW_DATA_TYPE__EXTENSIONS = CONSTRUCTED_DATA_TYPE__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROW_DATA_TYPE__PRIVILEGES = CONSTRUCTED_DATA_TYPE__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Fields</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROW_DATA_TYPE__FIELDS = CONSTRUCTED_DATA_TYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Row Data Type</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROW_DATA_TYPE_FEATURE_COUNT = CONSTRUCTED_DATA_TYPE_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.ArrayDataTypeImpl <em>Array Data Type</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.ArrayDataTypeImpl
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getArrayDataType()
+	 * @generated
+	 */
+	int ARRAY_DATA_TYPE = 7;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ARRAY_DATA_TYPE__EANNOTATIONS = COLLECTION_DATA_TYPE__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ARRAY_DATA_TYPE__NAME = COLLECTION_DATA_TYPE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ARRAY_DATA_TYPE__DEPENDENCIES = COLLECTION_DATA_TYPE__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ARRAY_DATA_TYPE__DESCRIPTION = COLLECTION_DATA_TYPE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ARRAY_DATA_TYPE__LABEL = COLLECTION_DATA_TYPE__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ARRAY_DATA_TYPE__COMMENTS = COLLECTION_DATA_TYPE__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ARRAY_DATA_TYPE__EXTENSIONS = COLLECTION_DATA_TYPE__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ARRAY_DATA_TYPE__PRIVILEGES = COLLECTION_DATA_TYPE__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Element Type</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ARRAY_DATA_TYPE__ELEMENT_TYPE = COLLECTION_DATA_TYPE__ELEMENT_TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Max Cardinality</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ARRAY_DATA_TYPE__MAX_CARDINALITY = COLLECTION_DATA_TYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Array Data Type</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ARRAY_DATA_TYPE_FEATURE_COUNT = COLLECTION_DATA_TYPE_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.MultisetDataTypeImpl <em>Multiset Data Type</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.MultisetDataTypeImpl
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getMultisetDataType()
+	 * @generated
+	 */
+	int MULTISET_DATA_TYPE = 8;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTISET_DATA_TYPE__EANNOTATIONS = COLLECTION_DATA_TYPE__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTISET_DATA_TYPE__NAME = COLLECTION_DATA_TYPE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTISET_DATA_TYPE__DEPENDENCIES = COLLECTION_DATA_TYPE__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTISET_DATA_TYPE__DESCRIPTION = COLLECTION_DATA_TYPE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTISET_DATA_TYPE__LABEL = COLLECTION_DATA_TYPE__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTISET_DATA_TYPE__COMMENTS = COLLECTION_DATA_TYPE__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTISET_DATA_TYPE__EXTENSIONS = COLLECTION_DATA_TYPE__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTISET_DATA_TYPE__PRIVILEGES = COLLECTION_DATA_TYPE__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Element Type</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTISET_DATA_TYPE__ELEMENT_TYPE = COLLECTION_DATA_TYPE__ELEMENT_TYPE;
+
+	/**
+	 * The number of structural features of the '<em>Multiset Data Type</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MULTISET_DATA_TYPE_FEATURE_COUNT = COLLECTION_DATA_TYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.BooleanDataTypeImpl <em>Boolean Data Type</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.BooleanDataTypeImpl
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getBooleanDataType()
+	 * @generated
+	 */
+	int BOOLEAN_DATA_TYPE = 9;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BOOLEAN_DATA_TYPE__EANNOTATIONS = PREDEFINED_DATA_TYPE__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BOOLEAN_DATA_TYPE__NAME = PREDEFINED_DATA_TYPE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BOOLEAN_DATA_TYPE__DEPENDENCIES = PREDEFINED_DATA_TYPE__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BOOLEAN_DATA_TYPE__DESCRIPTION = PREDEFINED_DATA_TYPE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BOOLEAN_DATA_TYPE__LABEL = PREDEFINED_DATA_TYPE__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BOOLEAN_DATA_TYPE__COMMENTS = PREDEFINED_DATA_TYPE__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BOOLEAN_DATA_TYPE__EXTENSIONS = PREDEFINED_DATA_TYPE__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BOOLEAN_DATA_TYPE__PRIVILEGES = PREDEFINED_DATA_TYPE__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Primitive Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BOOLEAN_DATA_TYPE__PRIMITIVE_TYPE = PREDEFINED_DATA_TYPE__PRIMITIVE_TYPE;
+
+	/**
+	 * The number of structural features of the '<em>Boolean Data Type</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BOOLEAN_DATA_TYPE_FEATURE_COUNT = PREDEFINED_DATA_TYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.IntervalDataTypeImpl <em>Interval Data Type</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.IntervalDataTypeImpl
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getIntervalDataType()
+	 * @generated
+	 */
+	int INTERVAL_DATA_TYPE = 10;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERVAL_DATA_TYPE__EANNOTATIONS = PREDEFINED_DATA_TYPE__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERVAL_DATA_TYPE__NAME = PREDEFINED_DATA_TYPE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERVAL_DATA_TYPE__DEPENDENCIES = PREDEFINED_DATA_TYPE__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERVAL_DATA_TYPE__DESCRIPTION = PREDEFINED_DATA_TYPE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERVAL_DATA_TYPE__LABEL = PREDEFINED_DATA_TYPE__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERVAL_DATA_TYPE__COMMENTS = PREDEFINED_DATA_TYPE__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERVAL_DATA_TYPE__EXTENSIONS = PREDEFINED_DATA_TYPE__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERVAL_DATA_TYPE__PRIVILEGES = PREDEFINED_DATA_TYPE__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Primitive Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERVAL_DATA_TYPE__PRIMITIVE_TYPE = PREDEFINED_DATA_TYPE__PRIMITIVE_TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Leading Qualifier</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERVAL_DATA_TYPE__LEADING_QUALIFIER = PREDEFINED_DATA_TYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Trailing Qualifier</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERVAL_DATA_TYPE__TRAILING_QUALIFIER = PREDEFINED_DATA_TYPE_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Leading Field Precision</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERVAL_DATA_TYPE__LEADING_FIELD_PRECISION = PREDEFINED_DATA_TYPE_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Trailing Field Precision</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERVAL_DATA_TYPE__TRAILING_FIELD_PRECISION = PREDEFINED_DATA_TYPE_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Fractional Seconds Precision</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERVAL_DATA_TYPE__FRACTIONAL_SECONDS_PRECISION = PREDEFINED_DATA_TYPE_FEATURE_COUNT + 4;
+
+	/**
+	 * The number of structural features of the '<em>Interval Data Type</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERVAL_DATA_TYPE_FEATURE_COUNT = PREDEFINED_DATA_TYPE_FEATURE_COUNT + 5;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.BinaryStringDataTypeImpl <em>Binary String Data Type</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.BinaryStringDataTypeImpl
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getBinaryStringDataType()
+	 * @generated
+	 */
+	int BINARY_STRING_DATA_TYPE = 11;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BINARY_STRING_DATA_TYPE__EANNOTATIONS = PREDEFINED_DATA_TYPE__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BINARY_STRING_DATA_TYPE__NAME = PREDEFINED_DATA_TYPE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BINARY_STRING_DATA_TYPE__DEPENDENCIES = PREDEFINED_DATA_TYPE__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BINARY_STRING_DATA_TYPE__DESCRIPTION = PREDEFINED_DATA_TYPE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BINARY_STRING_DATA_TYPE__LABEL = PREDEFINED_DATA_TYPE__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BINARY_STRING_DATA_TYPE__COMMENTS = PREDEFINED_DATA_TYPE__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BINARY_STRING_DATA_TYPE__EXTENSIONS = PREDEFINED_DATA_TYPE__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BINARY_STRING_DATA_TYPE__PRIVILEGES = PREDEFINED_DATA_TYPE__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Primitive Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BINARY_STRING_DATA_TYPE__PRIMITIVE_TYPE = PREDEFINED_DATA_TYPE__PRIMITIVE_TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BINARY_STRING_DATA_TYPE__LENGTH = PREDEFINED_DATA_TYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Binary String Data Type</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BINARY_STRING_DATA_TYPE_FEATURE_COUNT = PREDEFINED_DATA_TYPE_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.CharacterSetImpl <em>Character Set</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.CharacterSetImpl
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getCharacterSet()
+	 * @generated
+	 */
+	int CHARACTER_SET = 12;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHARACTER_SET__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHARACTER_SET__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHARACTER_SET__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHARACTER_SET__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHARACTER_SET__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHARACTER_SET__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHARACTER_SET__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHARACTER_SET__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Repertoire</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHARACTER_SET__REPERTOIRE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Default Collation</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHARACTER_SET__DEFAULT_COLLATION = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Encoding</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHARACTER_SET__ENCODING = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Character String Data Type</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHARACTER_SET__CHARACTER_STRING_DATA_TYPE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Schema</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHARACTER_SET__SCHEMA = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 4;
+
+	/**
+	 * The number of structural features of the '<em>Character Set</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHARACTER_SET_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 5;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.TimeDataTypeImpl <em>Time Data Type</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.TimeDataTypeImpl
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getTimeDataType()
+	 * @generated
+	 */
+	int TIME_DATA_TYPE = 13;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TIME_DATA_TYPE__EANNOTATIONS = PREDEFINED_DATA_TYPE__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TIME_DATA_TYPE__NAME = PREDEFINED_DATA_TYPE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TIME_DATA_TYPE__DEPENDENCIES = PREDEFINED_DATA_TYPE__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TIME_DATA_TYPE__DESCRIPTION = PREDEFINED_DATA_TYPE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TIME_DATA_TYPE__LABEL = PREDEFINED_DATA_TYPE__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TIME_DATA_TYPE__COMMENTS = PREDEFINED_DATA_TYPE__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TIME_DATA_TYPE__EXTENSIONS = PREDEFINED_DATA_TYPE__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TIME_DATA_TYPE__PRIVILEGES = PREDEFINED_DATA_TYPE__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Primitive Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TIME_DATA_TYPE__PRIMITIVE_TYPE = PREDEFINED_DATA_TYPE__PRIMITIVE_TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Fractional Seconds Precision</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TIME_DATA_TYPE__FRACTIONAL_SECONDS_PRECISION = PREDEFINED_DATA_TYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Time Zone</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TIME_DATA_TYPE__TIME_ZONE = PREDEFINED_DATA_TYPE_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>Time Data Type</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TIME_DATA_TYPE_FEATURE_COUNT = PREDEFINED_DATA_TYPE_FEATURE_COUNT + 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.DistinctUserDefinedTypeImpl <em>Distinct User Defined Type</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.DistinctUserDefinedTypeImpl
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getDistinctUserDefinedType()
+	 * @generated
+	 */
+	int DISTINCT_USER_DEFINED_TYPE = 14;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DISTINCT_USER_DEFINED_TYPE__EANNOTATIONS = USER_DEFINED_TYPE__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DISTINCT_USER_DEFINED_TYPE__NAME = USER_DEFINED_TYPE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DISTINCT_USER_DEFINED_TYPE__DEPENDENCIES = USER_DEFINED_TYPE__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DISTINCT_USER_DEFINED_TYPE__DESCRIPTION = USER_DEFINED_TYPE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DISTINCT_USER_DEFINED_TYPE__LABEL = USER_DEFINED_TYPE__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DISTINCT_USER_DEFINED_TYPE__COMMENTS = USER_DEFINED_TYPE__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DISTINCT_USER_DEFINED_TYPE__EXTENSIONS = USER_DEFINED_TYPE__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DISTINCT_USER_DEFINED_TYPE__PRIVILEGES = USER_DEFINED_TYPE__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Schema</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DISTINCT_USER_DEFINED_TYPE__SCHEMA = USER_DEFINED_TYPE__SCHEMA;
+
+	/**
+	 * The feature id for the '<em><b>Ordering</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DISTINCT_USER_DEFINED_TYPE__ORDERING = USER_DEFINED_TYPE__ORDERING;
+
+	/**
+	 * The feature id for the '<em><b>Predefined Representation</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DISTINCT_USER_DEFINED_TYPE__PREDEFINED_REPRESENTATION = USER_DEFINED_TYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Distinct User Defined Type</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DISTINCT_USER_DEFINED_TYPE_FEATURE_COUNT = USER_DEFINED_TYPE_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.StructuredUserDefinedTypeImpl <em>Structured User Defined Type</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.StructuredUserDefinedTypeImpl
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getStructuredUserDefinedType()
+	 * @generated
+	 */
+	int STRUCTURED_USER_DEFINED_TYPE = 15;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRUCTURED_USER_DEFINED_TYPE__EANNOTATIONS = USER_DEFINED_TYPE__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRUCTURED_USER_DEFINED_TYPE__NAME = USER_DEFINED_TYPE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRUCTURED_USER_DEFINED_TYPE__DEPENDENCIES = USER_DEFINED_TYPE__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRUCTURED_USER_DEFINED_TYPE__DESCRIPTION = USER_DEFINED_TYPE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRUCTURED_USER_DEFINED_TYPE__LABEL = USER_DEFINED_TYPE__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRUCTURED_USER_DEFINED_TYPE__COMMENTS = USER_DEFINED_TYPE__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRUCTURED_USER_DEFINED_TYPE__EXTENSIONS = USER_DEFINED_TYPE__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRUCTURED_USER_DEFINED_TYPE__PRIVILEGES = USER_DEFINED_TYPE__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Schema</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRUCTURED_USER_DEFINED_TYPE__SCHEMA = USER_DEFINED_TYPE__SCHEMA;
+
+	/**
+	 * The feature id for the '<em><b>Ordering</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRUCTURED_USER_DEFINED_TYPE__ORDERING = USER_DEFINED_TYPE__ORDERING;
+
+	/**
+	 * The feature id for the '<em><b>Instantiable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRUCTURED_USER_DEFINED_TYPE__INSTANTIABLE = USER_DEFINED_TYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Final</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRUCTURED_USER_DEFINED_TYPE__FINAL = USER_DEFINED_TYPE_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Super</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRUCTURED_USER_DEFINED_TYPE__SUPER = USER_DEFINED_TYPE_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Sub</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRUCTURED_USER_DEFINED_TYPE__SUB = USER_DEFINED_TYPE_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Attributes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRUCTURED_USER_DEFINED_TYPE__ATTRIBUTES = USER_DEFINED_TYPE_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Methods</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRUCTURED_USER_DEFINED_TYPE__METHODS = USER_DEFINED_TYPE_FEATURE_COUNT + 5;
+
+	/**
+	 * The number of structural features of the '<em>Structured User Defined Type</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRUCTURED_USER_DEFINED_TYPE_FEATURE_COUNT = USER_DEFINED_TYPE_FEATURE_COUNT + 6;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.AttributeDefinitionImpl <em>Attribute Definition</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.AttributeDefinitionImpl
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getAttributeDefinition()
+	 * @generated
+	 */
+	int ATTRIBUTE_DEFINITION = 16;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ATTRIBUTE_DEFINITION__EANNOTATIONS = SQLSchemaPackage.TYPED_ELEMENT__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ATTRIBUTE_DEFINITION__NAME = SQLSchemaPackage.TYPED_ELEMENT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ATTRIBUTE_DEFINITION__DEPENDENCIES = SQLSchemaPackage.TYPED_ELEMENT__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ATTRIBUTE_DEFINITION__DESCRIPTION = SQLSchemaPackage.TYPED_ELEMENT__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ATTRIBUTE_DEFINITION__LABEL = SQLSchemaPackage.TYPED_ELEMENT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ATTRIBUTE_DEFINITION__COMMENTS = SQLSchemaPackage.TYPED_ELEMENT__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ATTRIBUTE_DEFINITION__EXTENSIONS = SQLSchemaPackage.TYPED_ELEMENT__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ATTRIBUTE_DEFINITION__PRIVILEGES = SQLSchemaPackage.TYPED_ELEMENT__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Contained Type</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ATTRIBUTE_DEFINITION__CONTAINED_TYPE = SQLSchemaPackage.TYPED_ELEMENT__CONTAINED_TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Referenced Type</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ATTRIBUTE_DEFINITION__REFERENCED_TYPE = SQLSchemaPackage.TYPED_ELEMENT__REFERENCED_TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Scope Check</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ATTRIBUTE_DEFINITION__SCOPE_CHECK = SQLSchemaPackage.TYPED_ELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Scope Checked</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ATTRIBUTE_DEFINITION__SCOPE_CHECKED = SQLSchemaPackage.TYPED_ELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Default Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ATTRIBUTE_DEFINITION__DEFAULT_VALUE = SQLSchemaPackage.TYPED_ELEMENT_FEATURE_COUNT + 2;
+
+	/**
+	 * The number of structural features of the '<em>Attribute Definition</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ATTRIBUTE_DEFINITION_FEATURE_COUNT = SQLSchemaPackage.TYPED_ELEMENT_FEATURE_COUNT + 3;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.ExactNumericDataTypeImpl <em>Exact Numeric Data Type</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.ExactNumericDataTypeImpl
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getExactNumericDataType()
+	 * @generated
+	 */
+	int EXACT_NUMERIC_DATA_TYPE = 26;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXACT_NUMERIC_DATA_TYPE__EANNOTATIONS = NUMERICAL_DATA_TYPE__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXACT_NUMERIC_DATA_TYPE__NAME = NUMERICAL_DATA_TYPE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXACT_NUMERIC_DATA_TYPE__DEPENDENCIES = NUMERICAL_DATA_TYPE__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXACT_NUMERIC_DATA_TYPE__DESCRIPTION = NUMERICAL_DATA_TYPE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXACT_NUMERIC_DATA_TYPE__LABEL = NUMERICAL_DATA_TYPE__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXACT_NUMERIC_DATA_TYPE__COMMENTS = NUMERICAL_DATA_TYPE__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXACT_NUMERIC_DATA_TYPE__EXTENSIONS = NUMERICAL_DATA_TYPE__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXACT_NUMERIC_DATA_TYPE__PRIVILEGES = NUMERICAL_DATA_TYPE__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Primitive Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXACT_NUMERIC_DATA_TYPE__PRIMITIVE_TYPE = NUMERICAL_DATA_TYPE__PRIMITIVE_TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Precision</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXACT_NUMERIC_DATA_TYPE__PRECISION = NUMERICAL_DATA_TYPE__PRECISION;
+
+	/**
+	 * The feature id for the '<em><b>Scale</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXACT_NUMERIC_DATA_TYPE__SCALE = NUMERICAL_DATA_TYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Exact Numeric Data Type</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXACT_NUMERIC_DATA_TYPE_FEATURE_COUNT = NUMERICAL_DATA_TYPE_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.FixedPrecisionDataTypeImpl <em>Fixed Precision Data Type</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.FixedPrecisionDataTypeImpl
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getFixedPrecisionDataType()
+	 * @generated
+	 */
+	int FIXED_PRECISION_DATA_TYPE = 17;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FIXED_PRECISION_DATA_TYPE__EANNOTATIONS = EXACT_NUMERIC_DATA_TYPE__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FIXED_PRECISION_DATA_TYPE__NAME = EXACT_NUMERIC_DATA_TYPE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FIXED_PRECISION_DATA_TYPE__DEPENDENCIES = EXACT_NUMERIC_DATA_TYPE__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FIXED_PRECISION_DATA_TYPE__DESCRIPTION = EXACT_NUMERIC_DATA_TYPE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FIXED_PRECISION_DATA_TYPE__LABEL = EXACT_NUMERIC_DATA_TYPE__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FIXED_PRECISION_DATA_TYPE__COMMENTS = EXACT_NUMERIC_DATA_TYPE__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FIXED_PRECISION_DATA_TYPE__EXTENSIONS = EXACT_NUMERIC_DATA_TYPE__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FIXED_PRECISION_DATA_TYPE__PRIVILEGES = EXACT_NUMERIC_DATA_TYPE__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Primitive Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FIXED_PRECISION_DATA_TYPE__PRIMITIVE_TYPE = EXACT_NUMERIC_DATA_TYPE__PRIMITIVE_TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Precision</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FIXED_PRECISION_DATA_TYPE__PRECISION = EXACT_NUMERIC_DATA_TYPE__PRECISION;
+
+	/**
+	 * The feature id for the '<em><b>Scale</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FIXED_PRECISION_DATA_TYPE__SCALE = EXACT_NUMERIC_DATA_TYPE__SCALE;
+
+	/**
+	 * The number of structural features of the '<em>Fixed Precision Data Type</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FIXED_PRECISION_DATA_TYPE_FEATURE_COUNT = EXACT_NUMERIC_DATA_TYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.DomainImpl <em>Domain</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.DomainImpl
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getDomain()
+	 * @generated
+	 */
+	int DOMAIN = 18;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DOMAIN__EANNOTATIONS = DISTINCT_USER_DEFINED_TYPE__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DOMAIN__NAME = DISTINCT_USER_DEFINED_TYPE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DOMAIN__DEPENDENCIES = DISTINCT_USER_DEFINED_TYPE__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DOMAIN__DESCRIPTION = DISTINCT_USER_DEFINED_TYPE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DOMAIN__LABEL = DISTINCT_USER_DEFINED_TYPE__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DOMAIN__COMMENTS = DISTINCT_USER_DEFINED_TYPE__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DOMAIN__EXTENSIONS = DISTINCT_USER_DEFINED_TYPE__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DOMAIN__PRIVILEGES = DISTINCT_USER_DEFINED_TYPE__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Schema</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DOMAIN__SCHEMA = DISTINCT_USER_DEFINED_TYPE__SCHEMA;
+
+	/**
+	 * The feature id for the '<em><b>Ordering</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DOMAIN__ORDERING = DISTINCT_USER_DEFINED_TYPE__ORDERING;
+
+	/**
+	 * The feature id for the '<em><b>Predefined Representation</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DOMAIN__PREDEFINED_REPRESENTATION = DISTINCT_USER_DEFINED_TYPE__PREDEFINED_REPRESENTATION;
+
+	/**
+	 * The feature id for the '<em><b>Constraint</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DOMAIN__CONSTRAINT = DISTINCT_USER_DEFINED_TYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Default Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DOMAIN__DEFAULT_VALUE = DISTINCT_USER_DEFINED_TYPE_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>Domain</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DOMAIN_FEATURE_COUNT = DISTINCT_USER_DEFINED_TYPE_FEATURE_COUNT + 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.FieldImpl <em>Field</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.FieldImpl
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getField()
+	 * @generated
+	 */
+	int FIELD = 19;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FIELD__EANNOTATIONS = SQLSchemaPackage.TYPED_ELEMENT__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FIELD__NAME = SQLSchemaPackage.TYPED_ELEMENT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FIELD__DEPENDENCIES = SQLSchemaPackage.TYPED_ELEMENT__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FIELD__DESCRIPTION = SQLSchemaPackage.TYPED_ELEMENT__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FIELD__LABEL = SQLSchemaPackage.TYPED_ELEMENT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FIELD__COMMENTS = SQLSchemaPackage.TYPED_ELEMENT__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FIELD__EXTENSIONS = SQLSchemaPackage.TYPED_ELEMENT__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FIELD__PRIVILEGES = SQLSchemaPackage.TYPED_ELEMENT__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Contained Type</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FIELD__CONTAINED_TYPE = SQLSchemaPackage.TYPED_ELEMENT__CONTAINED_TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Referenced Type</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FIELD__REFERENCED_TYPE = SQLSchemaPackage.TYPED_ELEMENT__REFERENCED_TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Scope Check</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FIELD__SCOPE_CHECK = SQLSchemaPackage.TYPED_ELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Scope Checked</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FIELD__SCOPE_CHECKED = SQLSchemaPackage.TYPED_ELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>Field</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FIELD_FEATURE_COUNT = SQLSchemaPackage.TYPED_ELEMENT_FEATURE_COUNT + 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.ReferenceDataTypeImpl <em>Reference Data Type</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.ReferenceDataTypeImpl
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getReferenceDataType()
+	 * @generated
+	 */
+	int REFERENCE_DATA_TYPE = 20;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERENCE_DATA_TYPE__EANNOTATIONS = CONSTRUCTED_DATA_TYPE__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERENCE_DATA_TYPE__NAME = CONSTRUCTED_DATA_TYPE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERENCE_DATA_TYPE__DEPENDENCIES = CONSTRUCTED_DATA_TYPE__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERENCE_DATA_TYPE__DESCRIPTION = CONSTRUCTED_DATA_TYPE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERENCE_DATA_TYPE__LABEL = CONSTRUCTED_DATA_TYPE__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERENCE_DATA_TYPE__COMMENTS = CONSTRUCTED_DATA_TYPE__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERENCE_DATA_TYPE__EXTENSIONS = CONSTRUCTED_DATA_TYPE__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERENCE_DATA_TYPE__PRIVILEGES = CONSTRUCTED_DATA_TYPE__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Scope Table</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERENCE_DATA_TYPE__SCOPE_TABLE = CONSTRUCTED_DATA_TYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Referenced Type</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERENCE_DATA_TYPE__REFERENCED_TYPE = CONSTRUCTED_DATA_TYPE_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>Reference Data Type</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERENCE_DATA_TYPE_FEATURE_COUNT = CONSTRUCTED_DATA_TYPE_FEATURE_COUNT + 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.DataLinkDataTypeImpl <em>Data Link Data Type</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.DataLinkDataTypeImpl
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getDataLinkDataType()
+	 * @generated
+	 */
+	int DATA_LINK_DATA_TYPE = 23;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_LINK_DATA_TYPE__EANNOTATIONS = PREDEFINED_DATA_TYPE__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_LINK_DATA_TYPE__NAME = PREDEFINED_DATA_TYPE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_LINK_DATA_TYPE__DEPENDENCIES = PREDEFINED_DATA_TYPE__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_LINK_DATA_TYPE__DESCRIPTION = PREDEFINED_DATA_TYPE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_LINK_DATA_TYPE__LABEL = PREDEFINED_DATA_TYPE__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_LINK_DATA_TYPE__COMMENTS = PREDEFINED_DATA_TYPE__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_LINK_DATA_TYPE__EXTENSIONS = PREDEFINED_DATA_TYPE__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_LINK_DATA_TYPE__PRIVILEGES = PREDEFINED_DATA_TYPE__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Primitive Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_LINK_DATA_TYPE__PRIMITIVE_TYPE = PREDEFINED_DATA_TYPE__PRIMITIVE_TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Length</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_LINK_DATA_TYPE__LENGTH = PREDEFINED_DATA_TYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Link Control</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_LINK_DATA_TYPE__LINK_CONTROL = PREDEFINED_DATA_TYPE_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Integrity Control</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_LINK_DATA_TYPE__INTEGRITY_CONTROL = PREDEFINED_DATA_TYPE_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Read Permission</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_LINK_DATA_TYPE__READ_PERMISSION = PREDEFINED_DATA_TYPE_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Write Permission</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_LINK_DATA_TYPE__WRITE_PERMISSION = PREDEFINED_DATA_TYPE_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Recovery</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_LINK_DATA_TYPE__RECOVERY = PREDEFINED_DATA_TYPE_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Unlink</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_LINK_DATA_TYPE__UNLINK = PREDEFINED_DATA_TYPE_FEATURE_COUNT + 6;
+
+	/**
+	 * The number of structural features of the '<em>Data Link Data Type</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_LINK_DATA_TYPE_FEATURE_COUNT = PREDEFINED_DATA_TYPE_FEATURE_COUNT + 7;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.UserDefinedTypeOrderingImpl <em>User Defined Type Ordering</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.UserDefinedTypeOrderingImpl
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getUserDefinedTypeOrdering()
+	 * @generated
+	 */
+	int USER_DEFINED_TYPE_ORDERING = 24;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_TYPE_ORDERING__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_TYPE_ORDERING__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_TYPE_ORDERING__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_TYPE_ORDERING__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_TYPE_ORDERING__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_TYPE_ORDERING__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_TYPE_ORDERING__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_TYPE_ORDERING__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Ordering Form</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_TYPE_ORDERING__ORDERING_FORM = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Ordering Category</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_TYPE_ORDERING__ORDERING_CATEGORY = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Ordering Routine</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_TYPE_ORDERING__ORDERING_ROUTINE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+	 * The number of structural features of the '<em>User Defined Type Ordering</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_TYPE_ORDERING_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 3;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.DateDataTypeImpl <em>Date Data Type</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.DateDataTypeImpl
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getDateDataType()
+	 * @generated
+	 */
+	int DATE_DATA_TYPE = 25;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATE_DATA_TYPE__EANNOTATIONS = PREDEFINED_DATA_TYPE__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATE_DATA_TYPE__NAME = PREDEFINED_DATA_TYPE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATE_DATA_TYPE__DEPENDENCIES = PREDEFINED_DATA_TYPE__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATE_DATA_TYPE__DESCRIPTION = PREDEFINED_DATA_TYPE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATE_DATA_TYPE__LABEL = PREDEFINED_DATA_TYPE__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATE_DATA_TYPE__COMMENTS = PREDEFINED_DATA_TYPE__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATE_DATA_TYPE__EXTENSIONS = PREDEFINED_DATA_TYPE__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATE_DATA_TYPE__PRIVILEGES = PREDEFINED_DATA_TYPE__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Primitive Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATE_DATA_TYPE__PRIMITIVE_TYPE = PREDEFINED_DATA_TYPE__PRIMITIVE_TYPE;
+
+	/**
+	 * The number of structural features of the '<em>Date Data Type</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATE_DATA_TYPE_FEATURE_COUNT = PREDEFINED_DATA_TYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.ApproximateNumericDataTypeImpl <em>Approximate Numeric Data Type</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.ApproximateNumericDataTypeImpl
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getApproximateNumericDataType()
+	 * @generated
+	 */
+	int APPROXIMATE_NUMERIC_DATA_TYPE = 27;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int APPROXIMATE_NUMERIC_DATA_TYPE__EANNOTATIONS = NUMERICAL_DATA_TYPE__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int APPROXIMATE_NUMERIC_DATA_TYPE__NAME = NUMERICAL_DATA_TYPE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int APPROXIMATE_NUMERIC_DATA_TYPE__DEPENDENCIES = NUMERICAL_DATA_TYPE__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int APPROXIMATE_NUMERIC_DATA_TYPE__DESCRIPTION = NUMERICAL_DATA_TYPE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int APPROXIMATE_NUMERIC_DATA_TYPE__LABEL = NUMERICAL_DATA_TYPE__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int APPROXIMATE_NUMERIC_DATA_TYPE__COMMENTS = NUMERICAL_DATA_TYPE__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int APPROXIMATE_NUMERIC_DATA_TYPE__EXTENSIONS = NUMERICAL_DATA_TYPE__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int APPROXIMATE_NUMERIC_DATA_TYPE__PRIVILEGES = NUMERICAL_DATA_TYPE__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Primitive Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int APPROXIMATE_NUMERIC_DATA_TYPE__PRIMITIVE_TYPE = NUMERICAL_DATA_TYPE__PRIMITIVE_TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Precision</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int APPROXIMATE_NUMERIC_DATA_TYPE__PRECISION = NUMERICAL_DATA_TYPE__PRECISION;
+
+	/**
+	 * The number of structural features of the '<em>Approximate Numeric Data Type</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int APPROXIMATE_NUMERIC_DATA_TYPE_FEATURE_COUNT = NUMERICAL_DATA_TYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.IntegerDataTypeImpl <em>Integer Data Type</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.IntegerDataTypeImpl
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getIntegerDataType()
+	 * @generated
+	 */
+	int INTEGER_DATA_TYPE = 28;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTEGER_DATA_TYPE__EANNOTATIONS = EXACT_NUMERIC_DATA_TYPE__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTEGER_DATA_TYPE__NAME = EXACT_NUMERIC_DATA_TYPE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTEGER_DATA_TYPE__DEPENDENCIES = EXACT_NUMERIC_DATA_TYPE__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTEGER_DATA_TYPE__DESCRIPTION = EXACT_NUMERIC_DATA_TYPE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTEGER_DATA_TYPE__LABEL = EXACT_NUMERIC_DATA_TYPE__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTEGER_DATA_TYPE__COMMENTS = EXACT_NUMERIC_DATA_TYPE__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTEGER_DATA_TYPE__EXTENSIONS = EXACT_NUMERIC_DATA_TYPE__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTEGER_DATA_TYPE__PRIVILEGES = EXACT_NUMERIC_DATA_TYPE__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Primitive Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTEGER_DATA_TYPE__PRIMITIVE_TYPE = EXACT_NUMERIC_DATA_TYPE__PRIMITIVE_TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Precision</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTEGER_DATA_TYPE__PRECISION = EXACT_NUMERIC_DATA_TYPE__PRECISION;
+
+	/**
+	 * The feature id for the '<em><b>Scale</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTEGER_DATA_TYPE__SCALE = EXACT_NUMERIC_DATA_TYPE__SCALE;
+
+	/**
+	 * The number of structural features of the '<em>Integer Data Type</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTEGER_DATA_TYPE_FEATURE_COUNT = EXACT_NUMERIC_DATA_TYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.XMLDataTypeImpl <em>XML Data Type</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.XMLDataTypeImpl
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getXMLDataType()
+	 * @generated
+	 */
+	int XML_DATA_TYPE = 29;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XML_DATA_TYPE__EANNOTATIONS = PREDEFINED_DATA_TYPE__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XML_DATA_TYPE__NAME = PREDEFINED_DATA_TYPE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XML_DATA_TYPE__DEPENDENCIES = PREDEFINED_DATA_TYPE__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XML_DATA_TYPE__DESCRIPTION = PREDEFINED_DATA_TYPE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XML_DATA_TYPE__LABEL = PREDEFINED_DATA_TYPE__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XML_DATA_TYPE__COMMENTS = PREDEFINED_DATA_TYPE__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XML_DATA_TYPE__EXTENSIONS = PREDEFINED_DATA_TYPE__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XML_DATA_TYPE__PRIVILEGES = PREDEFINED_DATA_TYPE__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Primitive Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XML_DATA_TYPE__PRIMITIVE_TYPE = PREDEFINED_DATA_TYPE__PRIMITIVE_TYPE;
+
+	/**
+	 * The number of structural features of the '<em>XML Data Type</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XML_DATA_TYPE_FEATURE_COUNT = PREDEFINED_DATA_TYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.ElementTypeImpl <em>Element Type</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.ElementTypeImpl
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getElementType()
+	 * @generated
+	 */
+	int ELEMENT_TYPE = 30;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ELEMENT_TYPE__EANNOTATIONS = SQLSchemaPackage.TYPED_ELEMENT__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ELEMENT_TYPE__NAME = SQLSchemaPackage.TYPED_ELEMENT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ELEMENT_TYPE__DEPENDENCIES = SQLSchemaPackage.TYPED_ELEMENT__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ELEMENT_TYPE__DESCRIPTION = SQLSchemaPackage.TYPED_ELEMENT__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ELEMENT_TYPE__LABEL = SQLSchemaPackage.TYPED_ELEMENT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ELEMENT_TYPE__COMMENTS = SQLSchemaPackage.TYPED_ELEMENT__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ELEMENT_TYPE__EXTENSIONS = SQLSchemaPackage.TYPED_ELEMENT__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ELEMENT_TYPE__PRIVILEGES = SQLSchemaPackage.TYPED_ELEMENT__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Contained Type</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ELEMENT_TYPE__CONTAINED_TYPE = SQLSchemaPackage.TYPED_ELEMENT__CONTAINED_TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Referenced Type</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ELEMENT_TYPE__REFERENCED_TYPE = SQLSchemaPackage.TYPED_ELEMENT__REFERENCED_TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Collection Data Type</b></em>' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ELEMENT_TYPE__COLLECTION_DATA_TYPE = SQLSchemaPackage.TYPED_ELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Element Type</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ELEMENT_TYPE_FEATURE_COUNT = SQLSchemaPackage.TYPED_ELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.CoercibilityType <em>Coercibility Type</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.CoercibilityType
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getCoercibilityType()
+	 * @generated
+	 */
+	int COERCIBILITY_TYPE = 31;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.IntervalQualifierType <em>Interval Qualifier Type</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.IntervalQualifierType
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getIntervalQualifierType()
+	 * @generated
+	 */
+	int INTERVAL_QUALIFIER_TYPE = 32;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.OrderingType <em>Ordering Type</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.OrderingType
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getOrderingType()
+	 * @generated
+	 */
+	int ORDERING_TYPE = 33;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.OrderingCategoryType <em>Ordering Category Type</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.OrderingCategoryType
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getOrderingCategoryType()
+	 * @generated
+	 */
+	int ORDERING_CATEGORY_TYPE = 34;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.PrimitiveType <em>Primitive Type</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.PrimitiveType
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getPrimitiveType()
+	 * @generated
+	 */
+	int PRIMITIVE_TYPE = 35;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.LinkControlOption <em>Link Control Option</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.LinkControlOption
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getLinkControlOption()
+	 * @generated
+	 */
+	int LINK_CONTROL_OPTION = 36;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.IntegrityControlOption <em>Integrity Control Option</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.IntegrityControlOption
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getIntegrityControlOption()
+	 * @generated
+	 */
+	int INTEGRITY_CONTROL_OPTION = 37;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.ReadPermissionOption <em>Read Permission Option</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.ReadPermissionOption
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getReadPermissionOption()
+	 * @generated
+	 */
+	int READ_PERMISSION_OPTION = 38;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.WritePermissionOption <em>Write Permission Option</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.WritePermissionOption
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getWritePermissionOption()
+	 * @generated
+	 */
+	int WRITE_PERMISSION_OPTION = 39;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.UnlinkOption <em>Unlink Option</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.UnlinkOption
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getUnlinkOption()
+	 * @generated
+	 */
+	int UNLINK_OPTION = 40;
+
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType <em>User Defined Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>User Defined Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType
+	 * @generated
+	 */
+	EClass getUserDefinedType();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType#getSchema <em>Schema</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Schema</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType#getSchema()
+	 * @see #getUserDefinedType()
+	 * @generated
+	 */
+	EReference getUserDefinedType_Schema();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType#getOrdering <em>Ordering</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Ordering</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType#getOrdering()
+	 * @see #getUserDefinedType()
+	 * @generated
+	 */
+	EReference getUserDefinedType_Ordering();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.datatypes.DataType <em>Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Data Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.DataType
+	 * @generated
+	 */
+	EClass getDataType();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.datatypes.PredefinedDataType <em>Predefined Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Predefined Data Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.PredefinedDataType
+	 * @generated
+	 */
+	EClass getPredefinedDataType();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.datatypes.PredefinedDataType#getPrimitiveType <em>Primitive Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Primitive Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.PredefinedDataType#getPrimitiveType()
+	 * @see #getPredefinedDataType()
+	 * @generated
+	 */
+	EAttribute getPredefinedDataType_PrimitiveType();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.datatypes.CollectionDataType <em>Collection Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Collection Data Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.CollectionDataType
+	 * @generated
+	 */
+	EClass getCollectionDataType();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.datatypes.CollectionDataType#getElementType <em>Element Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Element Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.CollectionDataType#getElementType()
+	 * @see #getCollectionDataType()
+	 * @generated
+	 */
+	EReference getCollectionDataType_ElementType();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.datatypes.NumericalDataType <em>Numerical Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Numerical Data Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.NumericalDataType
+	 * @generated
+	 */
+	EClass getNumericalDataType();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.datatypes.NumericalDataType#getPrecision <em>Precision</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Precision</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.NumericalDataType#getPrecision()
+	 * @see #getNumericalDataType()
+	 * @generated
+	 */
+	EAttribute getNumericalDataType_Precision();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.datatypes.CharacterStringDataType <em>Character String Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Character String Data Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.CharacterStringDataType
+	 * @generated
+	 */
+	EClass getCharacterStringDataType();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.datatypes.CharacterStringDataType#getLength <em>Length</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Length</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.CharacterStringDataType#getLength()
+	 * @see #getCharacterStringDataType()
+	 * @generated
+	 */
+	EAttribute getCharacterStringDataType_Length();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.datatypes.CharacterStringDataType#getCoercibility <em>Coercibility</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Coercibility</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.CharacterStringDataType#getCoercibility()
+	 * @see #getCharacterStringDataType()
+	 * @generated
+	 */
+	EAttribute getCharacterStringDataType_Coercibility();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.datatypes.CharacterStringDataType#isFixedLength <em>Fixed Length</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Fixed Length</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.CharacterStringDataType#isFixedLength()
+	 * @see #getCharacterStringDataType()
+	 * @generated
+	 */
+	EAttribute getCharacterStringDataType_FixedLength();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.datatypes.CharacterStringDataType#getCollationName <em>Collation Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Collation Name</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.CharacterStringDataType#getCollationName()
+	 * @see #getCharacterStringDataType()
+	 * @generated
+	 */
+	EAttribute getCharacterStringDataType_CollationName();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.sql.datatypes.CharacterStringDataType#getCharacterSet <em>Character Set</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Character Set</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.CharacterStringDataType#getCharacterSet()
+	 * @see #getCharacterStringDataType()
+	 * @generated
+	 */
+	EReference getCharacterStringDataType_CharacterSet();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.datatypes.RowDataType <em>Row Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Row Data Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.RowDataType
+	 * @generated
+	 */
+	EClass getRowDataType();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.datatypes.RowDataType#getFields <em>Fields</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Fields</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.RowDataType#getFields()
+	 * @see #getRowDataType()
+	 * @generated
+	 */
+	EReference getRowDataType_Fields();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.datatypes.ArrayDataType <em>Array Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Array Data Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.ArrayDataType
+	 * @generated
+	 */
+	EClass getArrayDataType();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.datatypes.ArrayDataType#getMaxCardinality <em>Max Cardinality</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Max Cardinality</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.ArrayDataType#getMaxCardinality()
+	 * @see #getArrayDataType()
+	 * @generated
+	 */
+	EAttribute getArrayDataType_MaxCardinality();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.datatypes.MultisetDataType <em>Multiset Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Multiset Data Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.MultisetDataType
+	 * @generated
+	 */
+	EClass getMultisetDataType();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.datatypes.BooleanDataType <em>Boolean Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Boolean Data Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.BooleanDataType
+	 * @generated
+	 */
+	EClass getBooleanDataType();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.datatypes.IntervalDataType <em>Interval Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Interval Data Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.IntervalDataType
+	 * @generated
+	 */
+	EClass getIntervalDataType();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.datatypes.IntervalDataType#getLeadingQualifier <em>Leading Qualifier</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Leading Qualifier</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.IntervalDataType#getLeadingQualifier()
+	 * @see #getIntervalDataType()
+	 * @generated
+	 */
+	EAttribute getIntervalDataType_LeadingQualifier();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.datatypes.IntervalDataType#getTrailingQualifier <em>Trailing Qualifier</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Trailing Qualifier</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.IntervalDataType#getTrailingQualifier()
+	 * @see #getIntervalDataType()
+	 * @generated
+	 */
+	EAttribute getIntervalDataType_TrailingQualifier();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.datatypes.IntervalDataType#getLeadingFieldPrecision <em>Leading Field Precision</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Leading Field Precision</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.IntervalDataType#getLeadingFieldPrecision()
+	 * @see #getIntervalDataType()
+	 * @generated
+	 */
+	EAttribute getIntervalDataType_LeadingFieldPrecision();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.datatypes.IntervalDataType#getTrailingFieldPrecision <em>Trailing Field Precision</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Trailing Field Precision</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.IntervalDataType#getTrailingFieldPrecision()
+	 * @see #getIntervalDataType()
+	 * @generated
+	 */
+	EAttribute getIntervalDataType_TrailingFieldPrecision();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.datatypes.IntervalDataType#getFractionalSecondsPrecision <em>Fractional Seconds Precision</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Fractional Seconds Precision</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.IntervalDataType#getFractionalSecondsPrecision()
+	 * @see #getIntervalDataType()
+	 * @generated
+	 */
+	EAttribute getIntervalDataType_FractionalSecondsPrecision();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.datatypes.BinaryStringDataType <em>Binary String Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Binary String Data Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.BinaryStringDataType
+	 * @generated
+	 */
+	EClass getBinaryStringDataType();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.datatypes.BinaryStringDataType#getLength <em>Length</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Length</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.BinaryStringDataType#getLength()
+	 * @see #getBinaryStringDataType()
+	 * @generated
+	 */
+	EAttribute getBinaryStringDataType_Length();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.datatypes.CharacterSet <em>Character Set</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Character Set</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.CharacterSet
+	 * @generated
+	 */
+	EClass getCharacterSet();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.datatypes.CharacterSet#getRepertoire <em>Repertoire</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Repertoire</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.CharacterSet#getRepertoire()
+	 * @see #getCharacterSet()
+	 * @generated
+	 */
+	EAttribute getCharacterSet_Repertoire();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.datatypes.CharacterSet#getDefaultCollation <em>Default Collation</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Default Collation</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.CharacterSet#getDefaultCollation()
+	 * @see #getCharacterSet()
+	 * @generated
+	 */
+	EAttribute getCharacterSet_DefaultCollation();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.datatypes.CharacterSet#getEncoding <em>Encoding</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Encoding</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.CharacterSet#getEncoding()
+	 * @see #getCharacterSet()
+	 * @generated
+	 */
+	EAttribute getCharacterSet_Encoding();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.sql.datatypes.CharacterSet#getCharacterStringDataType <em>Character String Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Character String Data Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.CharacterSet#getCharacterStringDataType()
+	 * @see #getCharacterSet()
+	 * @generated
+	 */
+	EReference getCharacterSet_CharacterStringDataType();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.sql.datatypes.CharacterSet#getSchema <em>Schema</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Schema</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.CharacterSet#getSchema()
+	 * @see #getCharacterSet()
+	 * @generated
+	 */
+	EReference getCharacterSet_Schema();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.datatypes.TimeDataType <em>Time Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Time Data Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.TimeDataType
+	 * @generated
+	 */
+	EClass getTimeDataType();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.datatypes.TimeDataType#getFractionalSecondsPrecision <em>Fractional Seconds Precision</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Fractional Seconds Precision</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.TimeDataType#getFractionalSecondsPrecision()
+	 * @see #getTimeDataType()
+	 * @generated
+	 */
+	EAttribute getTimeDataType_FractionalSecondsPrecision();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.datatypes.TimeDataType#isTimeZone <em>Time Zone</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Time Zone</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.TimeDataType#isTimeZone()
+	 * @see #getTimeDataType()
+	 * @generated
+	 */
+	EAttribute getTimeDataType_TimeZone();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.datatypes.DistinctUserDefinedType <em>Distinct User Defined Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Distinct User Defined Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.DistinctUserDefinedType
+	 * @generated
+	 */
+	EClass getDistinctUserDefinedType();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.datatypes.DistinctUserDefinedType#getPredefinedRepresentation <em>Predefined Representation</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Predefined Representation</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.DistinctUserDefinedType#getPredefinedRepresentation()
+	 * @see #getDistinctUserDefinedType()
+	 * @generated
+	 */
+	EReference getDistinctUserDefinedType_PredefinedRepresentation();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType <em>Structured User Defined Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Structured User Defined Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType
+	 * @generated
+	 */
+	EClass getStructuredUserDefinedType();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType#isInstantiable <em>Instantiable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Instantiable</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType#isInstantiable()
+	 * @see #getStructuredUserDefinedType()
+	 * @generated
+	 */
+	EAttribute getStructuredUserDefinedType_Instantiable();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType#isFinal <em>Final</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Final</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType#isFinal()
+	 * @see #getStructuredUserDefinedType()
+	 * @generated
+	 */
+	EAttribute getStructuredUserDefinedType_Final();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType#getSuper <em>Super</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Super</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType#getSuper()
+	 * @see #getStructuredUserDefinedType()
+	 * @generated
+	 */
+	EReference getStructuredUserDefinedType_Super();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType#getSub <em>Sub</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Sub</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType#getSub()
+	 * @see #getStructuredUserDefinedType()
+	 * @generated
+	 */
+	EReference getStructuredUserDefinedType_Sub();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType#getAttributes <em>Attributes</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Attributes</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType#getAttributes()
+	 * @see #getStructuredUserDefinedType()
+	 * @generated
+	 */
+	EReference getStructuredUserDefinedType_Attributes();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType#getMethods <em>Methods</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Methods</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType#getMethods()
+	 * @see #getStructuredUserDefinedType()
+	 * @generated
+	 */
+	EReference getStructuredUserDefinedType_Methods();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.datatypes.AttributeDefinition <em>Attribute Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Attribute Definition</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.AttributeDefinition
+	 * @generated
+	 */
+	EClass getAttributeDefinition();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.datatypes.AttributeDefinition#getScopeCheck <em>Scope Check</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Scope Check</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.AttributeDefinition#getScopeCheck()
+	 * @see #getAttributeDefinition()
+	 * @generated
+	 */
+	EAttribute getAttributeDefinition_ScopeCheck();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.datatypes.AttributeDefinition#isScopeChecked <em>Scope Checked</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Scope Checked</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.AttributeDefinition#isScopeChecked()
+	 * @see #getAttributeDefinition()
+	 * @generated
+	 */
+	EAttribute getAttributeDefinition_ScopeChecked();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.datatypes.AttributeDefinition#getDefaultValue <em>Default Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Default Value</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.AttributeDefinition#getDefaultValue()
+	 * @see #getAttributeDefinition()
+	 * @generated
+	 */
+	EAttribute getAttributeDefinition_DefaultValue();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.datatypes.FixedPrecisionDataType <em>Fixed Precision Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Fixed Precision Data Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.FixedPrecisionDataType
+	 * @generated
+	 */
+	EClass getFixedPrecisionDataType();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.datatypes.Domain <em>Domain</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Domain</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.Domain
+	 * @generated
+	 */
+	EClass getDomain();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.datatypes.Domain#getConstraint <em>Constraint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Constraint</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.Domain#getConstraint()
+	 * @see #getDomain()
+	 * @generated
+	 */
+	EReference getDomain_Constraint();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.datatypes.Domain#getDefaultValue <em>Default Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Default Value</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.Domain#getDefaultValue()
+	 * @see #getDomain()
+	 * @generated
+	 */
+	EAttribute getDomain_DefaultValue();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.datatypes.Field <em>Field</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Field</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.Field
+	 * @generated
+	 */
+	EClass getField();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.datatypes.Field#getScopeCheck <em>Scope Check</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Scope Check</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.Field#getScopeCheck()
+	 * @see #getField()
+	 * @generated
+	 */
+	EAttribute getField_ScopeCheck();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.datatypes.Field#isScopeChecked <em>Scope Checked</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Scope Checked</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.Field#isScopeChecked()
+	 * @see #getField()
+	 * @generated
+	 */
+	EAttribute getField_ScopeChecked();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.datatypes.ReferenceDataType <em>Reference Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Reference Data Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.ReferenceDataType
+	 * @generated
+	 */
+	EClass getReferenceDataType();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.sql.datatypes.ReferenceDataType#getScopeTable <em>Scope Table</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Scope Table</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.ReferenceDataType#getScopeTable()
+	 * @see #getReferenceDataType()
+	 * @generated
+	 */
+	EReference getReferenceDataType_ScopeTable();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.sql.datatypes.ReferenceDataType#getReferencedType <em>Referenced Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Referenced Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.ReferenceDataType#getReferencedType()
+	 * @see #getReferenceDataType()
+	 * @generated
+	 */
+	EReference getReferenceDataType_ReferencedType();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.datatypes.ConstructedDataType <em>Constructed Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Constructed Data Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.ConstructedDataType
+	 * @generated
+	 */
+	EClass getConstructedDataType();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.datatypes.SQLDataType <em>SQL Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>SQL Data Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataType
+	 * @generated
+	 */
+	EClass getSQLDataType();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.datatypes.DataLinkDataType <em>Data Link Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Data Link Data Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.DataLinkDataType
+	 * @generated
+	 */
+	EClass getDataLinkDataType();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.datatypes.DataLinkDataType#getLength <em>Length</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Length</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.DataLinkDataType#getLength()
+	 * @see #getDataLinkDataType()
+	 * @generated
+	 */
+	EAttribute getDataLinkDataType_Length();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.datatypes.DataLinkDataType#getLinkControl <em>Link Control</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Link Control</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.DataLinkDataType#getLinkControl()
+	 * @see #getDataLinkDataType()
+	 * @generated
+	 */
+	EAttribute getDataLinkDataType_LinkControl();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.datatypes.DataLinkDataType#getIntegrityControl <em>Integrity Control</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Integrity Control</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.DataLinkDataType#getIntegrityControl()
+	 * @see #getDataLinkDataType()
+	 * @generated
+	 */
+	EAttribute getDataLinkDataType_IntegrityControl();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.datatypes.DataLinkDataType#getReadPermission <em>Read Permission</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Read Permission</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.DataLinkDataType#getReadPermission()
+	 * @see #getDataLinkDataType()
+	 * @generated
+	 */
+	EAttribute getDataLinkDataType_ReadPermission();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.datatypes.DataLinkDataType#getWritePermission <em>Write Permission</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Write Permission</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.DataLinkDataType#getWritePermission()
+	 * @see #getDataLinkDataType()
+	 * @generated
+	 */
+	EAttribute getDataLinkDataType_WritePermission();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.datatypes.DataLinkDataType#isRecovery <em>Recovery</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Recovery</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.DataLinkDataType#isRecovery()
+	 * @see #getDataLinkDataType()
+	 * @generated
+	 */
+	EAttribute getDataLinkDataType_Recovery();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.datatypes.DataLinkDataType#getUnlink <em>Unlink</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Unlink</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.DataLinkDataType#getUnlink()
+	 * @see #getDataLinkDataType()
+	 * @generated
+	 */
+	EAttribute getDataLinkDataType_Unlink();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedTypeOrdering <em>User Defined Type Ordering</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>User Defined Type Ordering</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedTypeOrdering
+	 * @generated
+	 */
+	EClass getUserDefinedTypeOrdering();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedTypeOrdering#getOrderingForm <em>Ordering Form</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Ordering Form</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedTypeOrdering#getOrderingForm()
+	 * @see #getUserDefinedTypeOrdering()
+	 * @generated
+	 */
+	EAttribute getUserDefinedTypeOrdering_OrderingForm();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedTypeOrdering#getOrderingCategory <em>Ordering Category</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Ordering Category</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedTypeOrdering#getOrderingCategory()
+	 * @see #getUserDefinedTypeOrdering()
+	 * @generated
+	 */
+	EAttribute getUserDefinedTypeOrdering_OrderingCategory();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedTypeOrdering#getOrderingRoutine <em>Ordering Routine</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Ordering Routine</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedTypeOrdering#getOrderingRoutine()
+	 * @see #getUserDefinedTypeOrdering()
+	 * @generated
+	 */
+	EReference getUserDefinedTypeOrdering_OrderingRoutine();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.datatypes.DateDataType <em>Date Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Date Data Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.DateDataType
+	 * @generated
+	 */
+	EClass getDateDataType();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.datatypes.ExactNumericDataType <em>Exact Numeric Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Exact Numeric Data Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.ExactNumericDataType
+	 * @generated
+	 */
+	EClass getExactNumericDataType();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.datatypes.ExactNumericDataType#getScale <em>Scale</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Scale</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.ExactNumericDataType#getScale()
+	 * @see #getExactNumericDataType()
+	 * @generated
+	 */
+	EAttribute getExactNumericDataType_Scale();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.datatypes.ApproximateNumericDataType <em>Approximate Numeric Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Approximate Numeric Data Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.ApproximateNumericDataType
+	 * @generated
+	 */
+	EClass getApproximateNumericDataType();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.datatypes.IntegerDataType <em>Integer Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Integer Data Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.IntegerDataType
+	 * @generated
+	 */
+	EClass getIntegerDataType();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.datatypes.XMLDataType <em>XML Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>XML Data Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.XMLDataType
+	 * @generated
+	 */
+	EClass getXMLDataType();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.datatypes.ElementType <em>Element Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Element Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.ElementType
+	 * @generated
+	 */
+	EClass getElementType();
+
+	/**
+	 * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.datatypes.ElementType#getCollectionDataType <em>Collection Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the container reference '<em>Collection Data Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.ElementType#getCollectionDataType()
+	 * @see #getElementType()
+	 * @generated
+	 */
+	EReference getElementType_CollectionDataType();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.sql.datatypes.CoercibilityType <em>Coercibility Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Coercibility Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.CoercibilityType
+	 * @generated
+	 */
+	EEnum getCoercibilityType();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.sql.datatypes.IntervalQualifierType <em>Interval Qualifier Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Interval Qualifier Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.IntervalQualifierType
+	 * @generated
+	 */
+	EEnum getIntervalQualifierType();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.sql.datatypes.OrderingType <em>Ordering Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Ordering Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.OrderingType
+	 * @generated
+	 */
+	EEnum getOrderingType();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.sql.datatypes.OrderingCategoryType <em>Ordering Category Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Ordering Category Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.OrderingCategoryType
+	 * @generated
+	 */
+	EEnum getOrderingCategoryType();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.sql.datatypes.PrimitiveType <em>Primitive Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Primitive Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.PrimitiveType
+	 * @generated
+	 */
+	EEnum getPrimitiveType();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.sql.datatypes.LinkControlOption <em>Link Control Option</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Link Control Option</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.LinkControlOption
+	 * @generated
+	 */
+	EEnum getLinkControlOption();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.sql.datatypes.IntegrityControlOption <em>Integrity Control Option</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Integrity Control Option</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.IntegrityControlOption
+	 * @generated
+	 */
+	EEnum getIntegrityControlOption();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.sql.datatypes.ReadPermissionOption <em>Read Permission Option</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Read Permission Option</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.ReadPermissionOption
+	 * @generated
+	 */
+	EEnum getReadPermissionOption();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.sql.datatypes.WritePermissionOption <em>Write Permission Option</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Write Permission Option</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.WritePermissionOption
+	 * @generated
+	 */
+	EEnum getWritePermissionOption();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.sql.datatypes.UnlinkOption <em>Unlink Option</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Unlink Option</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.UnlinkOption
+	 * @generated
+	 */
+	EEnum getUnlinkOption();
+
+	/**
+	 * Returns the factory that creates the instances of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the factory that creates the instances of the model.
+	 * @generated
+	 */
+	SQLDataTypesFactory getSQLDataTypesFactory();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * Defines literals for the meta objects that represent
+	 * <ul>
+	 *   <li>each class,</li>
+	 *   <li>each feature of each class,</li>
+	 *   <li>each enum,</li>
+	 *   <li>and each data type</li>
+	 * </ul>
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	interface Literals  {
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.UserDefinedTypeImpl <em>User Defined Type</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.UserDefinedTypeImpl
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getUserDefinedType()
+		 * @generated
+		 */
+		EClass USER_DEFINED_TYPE = eINSTANCE.getUserDefinedType();
+
+		/**
+		 * The meta object literal for the '<em><b>Schema</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference USER_DEFINED_TYPE__SCHEMA = eINSTANCE.getUserDefinedType_Schema();
+
+		/**
+		 * The meta object literal for the '<em><b>Ordering</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference USER_DEFINED_TYPE__ORDERING = eINSTANCE.getUserDefinedType_Ordering();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.DataTypeImpl <em>Data Type</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.DataTypeImpl
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getDataType()
+		 * @generated
+		 */
+		EClass DATA_TYPE = eINSTANCE.getDataType();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.PredefinedDataTypeImpl <em>Predefined Data Type</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.PredefinedDataTypeImpl
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getPredefinedDataType()
+		 * @generated
+		 */
+		EClass PREDEFINED_DATA_TYPE = eINSTANCE.getPredefinedDataType();
+
+		/**
+		 * The meta object literal for the '<em><b>Primitive Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PREDEFINED_DATA_TYPE__PRIMITIVE_TYPE = eINSTANCE.getPredefinedDataType_PrimitiveType();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.CollectionDataTypeImpl <em>Collection Data Type</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.CollectionDataTypeImpl
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getCollectionDataType()
+		 * @generated
+		 */
+		EClass COLLECTION_DATA_TYPE = eINSTANCE.getCollectionDataType();
+
+		/**
+		 * The meta object literal for the '<em><b>Element Type</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference COLLECTION_DATA_TYPE__ELEMENT_TYPE = eINSTANCE.getCollectionDataType_ElementType();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.NumericalDataTypeImpl <em>Numerical Data Type</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.NumericalDataTypeImpl
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getNumericalDataType()
+		 * @generated
+		 */
+		EClass NUMERICAL_DATA_TYPE = eINSTANCE.getNumericalDataType();
+
+		/**
+		 * The meta object literal for the '<em><b>Precision</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute NUMERICAL_DATA_TYPE__PRECISION = eINSTANCE.getNumericalDataType_Precision();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.CharacterStringDataTypeImpl <em>Character String Data Type</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.CharacterStringDataTypeImpl
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getCharacterStringDataType()
+		 * @generated
+		 */
+		EClass CHARACTER_STRING_DATA_TYPE = eINSTANCE.getCharacterStringDataType();
+
+		/**
+		 * The meta object literal for the '<em><b>Length</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CHARACTER_STRING_DATA_TYPE__LENGTH = eINSTANCE.getCharacterStringDataType_Length();
+
+		/**
+		 * The meta object literal for the '<em><b>Coercibility</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CHARACTER_STRING_DATA_TYPE__COERCIBILITY = eINSTANCE.getCharacterStringDataType_Coercibility();
+
+		/**
+		 * The meta object literal for the '<em><b>Fixed Length</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CHARACTER_STRING_DATA_TYPE__FIXED_LENGTH = eINSTANCE.getCharacterStringDataType_FixedLength();
+
+		/**
+		 * The meta object literal for the '<em><b>Collation Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CHARACTER_STRING_DATA_TYPE__COLLATION_NAME = eINSTANCE.getCharacterStringDataType_CollationName();
+
+		/**
+		 * The meta object literal for the '<em><b>Character Set</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference CHARACTER_STRING_DATA_TYPE__CHARACTER_SET = eINSTANCE.getCharacterStringDataType_CharacterSet();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.RowDataTypeImpl <em>Row Data Type</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.RowDataTypeImpl
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getRowDataType()
+		 * @generated
+		 */
+		EClass ROW_DATA_TYPE = eINSTANCE.getRowDataType();
+
+		/**
+		 * The meta object literal for the '<em><b>Fields</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference ROW_DATA_TYPE__FIELDS = eINSTANCE.getRowDataType_Fields();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.ArrayDataTypeImpl <em>Array Data Type</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.ArrayDataTypeImpl
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getArrayDataType()
+		 * @generated
+		 */
+		EClass ARRAY_DATA_TYPE = eINSTANCE.getArrayDataType();
+
+		/**
+		 * The meta object literal for the '<em><b>Max Cardinality</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute ARRAY_DATA_TYPE__MAX_CARDINALITY = eINSTANCE.getArrayDataType_MaxCardinality();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.MultisetDataTypeImpl <em>Multiset Data Type</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.MultisetDataTypeImpl
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getMultisetDataType()
+		 * @generated
+		 */
+		EClass MULTISET_DATA_TYPE = eINSTANCE.getMultisetDataType();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.BooleanDataTypeImpl <em>Boolean Data Type</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.BooleanDataTypeImpl
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getBooleanDataType()
+		 * @generated
+		 */
+		EClass BOOLEAN_DATA_TYPE = eINSTANCE.getBooleanDataType();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.IntervalDataTypeImpl <em>Interval Data Type</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.IntervalDataTypeImpl
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getIntervalDataType()
+		 * @generated
+		 */
+		EClass INTERVAL_DATA_TYPE = eINSTANCE.getIntervalDataType();
+
+		/**
+		 * The meta object literal for the '<em><b>Leading Qualifier</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute INTERVAL_DATA_TYPE__LEADING_QUALIFIER = eINSTANCE.getIntervalDataType_LeadingQualifier();
+
+		/**
+		 * The meta object literal for the '<em><b>Trailing Qualifier</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute INTERVAL_DATA_TYPE__TRAILING_QUALIFIER = eINSTANCE.getIntervalDataType_TrailingQualifier();
+
+		/**
+		 * The meta object literal for the '<em><b>Leading Field Precision</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute INTERVAL_DATA_TYPE__LEADING_FIELD_PRECISION = eINSTANCE.getIntervalDataType_LeadingFieldPrecision();
+
+		/**
+		 * The meta object literal for the '<em><b>Trailing Field Precision</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute INTERVAL_DATA_TYPE__TRAILING_FIELD_PRECISION = eINSTANCE.getIntervalDataType_TrailingFieldPrecision();
+
+		/**
+		 * The meta object literal for the '<em><b>Fractional Seconds Precision</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute INTERVAL_DATA_TYPE__FRACTIONAL_SECONDS_PRECISION = eINSTANCE.getIntervalDataType_FractionalSecondsPrecision();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.BinaryStringDataTypeImpl <em>Binary String Data Type</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.BinaryStringDataTypeImpl
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getBinaryStringDataType()
+		 * @generated
+		 */
+		EClass BINARY_STRING_DATA_TYPE = eINSTANCE.getBinaryStringDataType();
+
+		/**
+		 * The meta object literal for the '<em><b>Length</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute BINARY_STRING_DATA_TYPE__LENGTH = eINSTANCE.getBinaryStringDataType_Length();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.CharacterSetImpl <em>Character Set</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.CharacterSetImpl
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getCharacterSet()
+		 * @generated
+		 */
+		EClass CHARACTER_SET = eINSTANCE.getCharacterSet();
+
+		/**
+		 * The meta object literal for the '<em><b>Repertoire</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CHARACTER_SET__REPERTOIRE = eINSTANCE.getCharacterSet_Repertoire();
+
+		/**
+		 * The meta object literal for the '<em><b>Default Collation</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CHARACTER_SET__DEFAULT_COLLATION = eINSTANCE.getCharacterSet_DefaultCollation();
+
+		/**
+		 * The meta object literal for the '<em><b>Encoding</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CHARACTER_SET__ENCODING = eINSTANCE.getCharacterSet_Encoding();
+
+		/**
+		 * The meta object literal for the '<em><b>Character String Data Type</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference CHARACTER_SET__CHARACTER_STRING_DATA_TYPE = eINSTANCE.getCharacterSet_CharacterStringDataType();
+
+		/**
+		 * The meta object literal for the '<em><b>Schema</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference CHARACTER_SET__SCHEMA = eINSTANCE.getCharacterSet_Schema();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.TimeDataTypeImpl <em>Time Data Type</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.TimeDataTypeImpl
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getTimeDataType()
+		 * @generated
+		 */
+		EClass TIME_DATA_TYPE = eINSTANCE.getTimeDataType();
+
+		/**
+		 * The meta object literal for the '<em><b>Fractional Seconds Precision</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TIME_DATA_TYPE__FRACTIONAL_SECONDS_PRECISION = eINSTANCE.getTimeDataType_FractionalSecondsPrecision();
+
+		/**
+		 * The meta object literal for the '<em><b>Time Zone</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TIME_DATA_TYPE__TIME_ZONE = eINSTANCE.getTimeDataType_TimeZone();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.DistinctUserDefinedTypeImpl <em>Distinct User Defined Type</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.DistinctUserDefinedTypeImpl
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getDistinctUserDefinedType()
+		 * @generated
+		 */
+		EClass DISTINCT_USER_DEFINED_TYPE = eINSTANCE.getDistinctUserDefinedType();
+
+		/**
+		 * The meta object literal for the '<em><b>Predefined Representation</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DISTINCT_USER_DEFINED_TYPE__PREDEFINED_REPRESENTATION = eINSTANCE.getDistinctUserDefinedType_PredefinedRepresentation();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.StructuredUserDefinedTypeImpl <em>Structured User Defined Type</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.StructuredUserDefinedTypeImpl
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getStructuredUserDefinedType()
+		 * @generated
+		 */
+		EClass STRUCTURED_USER_DEFINED_TYPE = eINSTANCE.getStructuredUserDefinedType();
+
+		/**
+		 * The meta object literal for the '<em><b>Instantiable</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute STRUCTURED_USER_DEFINED_TYPE__INSTANTIABLE = eINSTANCE.getStructuredUserDefinedType_Instantiable();
+
+		/**
+		 * The meta object literal for the '<em><b>Final</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute STRUCTURED_USER_DEFINED_TYPE__FINAL = eINSTANCE.getStructuredUserDefinedType_Final();
+
+		/**
+		 * The meta object literal for the '<em><b>Super</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference STRUCTURED_USER_DEFINED_TYPE__SUPER = eINSTANCE.getStructuredUserDefinedType_Super();
+
+		/**
+		 * The meta object literal for the '<em><b>Sub</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference STRUCTURED_USER_DEFINED_TYPE__SUB = eINSTANCE.getStructuredUserDefinedType_Sub();
+
+		/**
+		 * The meta object literal for the '<em><b>Attributes</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference STRUCTURED_USER_DEFINED_TYPE__ATTRIBUTES = eINSTANCE.getStructuredUserDefinedType_Attributes();
+
+		/**
+		 * The meta object literal for the '<em><b>Methods</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference STRUCTURED_USER_DEFINED_TYPE__METHODS = eINSTANCE.getStructuredUserDefinedType_Methods();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.AttributeDefinitionImpl <em>Attribute Definition</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.AttributeDefinitionImpl
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getAttributeDefinition()
+		 * @generated
+		 */
+		EClass ATTRIBUTE_DEFINITION = eINSTANCE.getAttributeDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Scope Check</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute ATTRIBUTE_DEFINITION__SCOPE_CHECK = eINSTANCE.getAttributeDefinition_ScopeCheck();
+
+		/**
+		 * The meta object literal for the '<em><b>Scope Checked</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute ATTRIBUTE_DEFINITION__SCOPE_CHECKED = eINSTANCE.getAttributeDefinition_ScopeChecked();
+
+		/**
+		 * The meta object literal for the '<em><b>Default Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute ATTRIBUTE_DEFINITION__DEFAULT_VALUE = eINSTANCE.getAttributeDefinition_DefaultValue();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.FixedPrecisionDataTypeImpl <em>Fixed Precision Data Type</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.FixedPrecisionDataTypeImpl
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getFixedPrecisionDataType()
+		 * @generated
+		 */
+		EClass FIXED_PRECISION_DATA_TYPE = eINSTANCE.getFixedPrecisionDataType();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.DomainImpl <em>Domain</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.DomainImpl
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getDomain()
+		 * @generated
+		 */
+		EClass DOMAIN = eINSTANCE.getDomain();
+
+		/**
+		 * The meta object literal for the '<em><b>Constraint</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DOMAIN__CONSTRAINT = eINSTANCE.getDomain_Constraint();
+
+		/**
+		 * The meta object literal for the '<em><b>Default Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DOMAIN__DEFAULT_VALUE = eINSTANCE.getDomain_DefaultValue();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.FieldImpl <em>Field</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.FieldImpl
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getField()
+		 * @generated
+		 */
+		EClass FIELD = eINSTANCE.getField();
+
+		/**
+		 * The meta object literal for the '<em><b>Scope Check</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute FIELD__SCOPE_CHECK = eINSTANCE.getField_ScopeCheck();
+
+		/**
+		 * The meta object literal for the '<em><b>Scope Checked</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute FIELD__SCOPE_CHECKED = eINSTANCE.getField_ScopeChecked();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.ReferenceDataTypeImpl <em>Reference Data Type</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.ReferenceDataTypeImpl
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getReferenceDataType()
+		 * @generated
+		 */
+		EClass REFERENCE_DATA_TYPE = eINSTANCE.getReferenceDataType();
+
+		/**
+		 * The meta object literal for the '<em><b>Scope Table</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference REFERENCE_DATA_TYPE__SCOPE_TABLE = eINSTANCE.getReferenceDataType_ScopeTable();
+
+		/**
+		 * The meta object literal for the '<em><b>Referenced Type</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference REFERENCE_DATA_TYPE__REFERENCED_TYPE = eINSTANCE.getReferenceDataType_ReferencedType();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.ConstructedDataTypeImpl <em>Constructed Data Type</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.ConstructedDataTypeImpl
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getConstructedDataType()
+		 * @generated
+		 */
+		EClass CONSTRUCTED_DATA_TYPE = eINSTANCE.getConstructedDataType();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypeImpl <em>SQL Data Type</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypeImpl
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getSQLDataType()
+		 * @generated
+		 */
+		EClass SQL_DATA_TYPE = eINSTANCE.getSQLDataType();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.DataLinkDataTypeImpl <em>Data Link Data Type</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.DataLinkDataTypeImpl
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getDataLinkDataType()
+		 * @generated
+		 */
+		EClass DATA_LINK_DATA_TYPE = eINSTANCE.getDataLinkDataType();
+
+		/**
+		 * The meta object literal for the '<em><b>Length</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATA_LINK_DATA_TYPE__LENGTH = eINSTANCE.getDataLinkDataType_Length();
+
+		/**
+		 * The meta object literal for the '<em><b>Link Control</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATA_LINK_DATA_TYPE__LINK_CONTROL = eINSTANCE.getDataLinkDataType_LinkControl();
+
+		/**
+		 * The meta object literal for the '<em><b>Integrity Control</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATA_LINK_DATA_TYPE__INTEGRITY_CONTROL = eINSTANCE.getDataLinkDataType_IntegrityControl();
+
+		/**
+		 * The meta object literal for the '<em><b>Read Permission</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATA_LINK_DATA_TYPE__READ_PERMISSION = eINSTANCE.getDataLinkDataType_ReadPermission();
+
+		/**
+		 * The meta object literal for the '<em><b>Write Permission</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATA_LINK_DATA_TYPE__WRITE_PERMISSION = eINSTANCE.getDataLinkDataType_WritePermission();
+
+		/**
+		 * The meta object literal for the '<em><b>Recovery</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATA_LINK_DATA_TYPE__RECOVERY = eINSTANCE.getDataLinkDataType_Recovery();
+
+		/**
+		 * The meta object literal for the '<em><b>Unlink</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATA_LINK_DATA_TYPE__UNLINK = eINSTANCE.getDataLinkDataType_Unlink();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.UserDefinedTypeOrderingImpl <em>User Defined Type Ordering</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.UserDefinedTypeOrderingImpl
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getUserDefinedTypeOrdering()
+		 * @generated
+		 */
+		EClass USER_DEFINED_TYPE_ORDERING = eINSTANCE.getUserDefinedTypeOrdering();
+
+		/**
+		 * The meta object literal for the '<em><b>Ordering Form</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute USER_DEFINED_TYPE_ORDERING__ORDERING_FORM = eINSTANCE.getUserDefinedTypeOrdering_OrderingForm();
+
+		/**
+		 * The meta object literal for the '<em><b>Ordering Category</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute USER_DEFINED_TYPE_ORDERING__ORDERING_CATEGORY = eINSTANCE.getUserDefinedTypeOrdering_OrderingCategory();
+
+		/**
+		 * The meta object literal for the '<em><b>Ordering Routine</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference USER_DEFINED_TYPE_ORDERING__ORDERING_ROUTINE = eINSTANCE.getUserDefinedTypeOrdering_OrderingRoutine();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.DateDataTypeImpl <em>Date Data Type</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.DateDataTypeImpl
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getDateDataType()
+		 * @generated
+		 */
+		EClass DATE_DATA_TYPE = eINSTANCE.getDateDataType();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.ExactNumericDataTypeImpl <em>Exact Numeric Data Type</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.ExactNumericDataTypeImpl
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getExactNumericDataType()
+		 * @generated
+		 */
+		EClass EXACT_NUMERIC_DATA_TYPE = eINSTANCE.getExactNumericDataType();
+
+		/**
+		 * The meta object literal for the '<em><b>Scale</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute EXACT_NUMERIC_DATA_TYPE__SCALE = eINSTANCE.getExactNumericDataType_Scale();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.ApproximateNumericDataTypeImpl <em>Approximate Numeric Data Type</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.ApproximateNumericDataTypeImpl
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getApproximateNumericDataType()
+		 * @generated
+		 */
+		EClass APPROXIMATE_NUMERIC_DATA_TYPE = eINSTANCE.getApproximateNumericDataType();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.IntegerDataTypeImpl <em>Integer Data Type</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.IntegerDataTypeImpl
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getIntegerDataType()
+		 * @generated
+		 */
+		EClass INTEGER_DATA_TYPE = eINSTANCE.getIntegerDataType();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.XMLDataTypeImpl <em>XML Data Type</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.XMLDataTypeImpl
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getXMLDataType()
+		 * @generated
+		 */
+		EClass XML_DATA_TYPE = eINSTANCE.getXMLDataType();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.ElementTypeImpl <em>Element Type</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.ElementTypeImpl
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getElementType()
+		 * @generated
+		 */
+		EClass ELEMENT_TYPE = eINSTANCE.getElementType();
+
+		/**
+		 * The meta object literal for the '<em><b>Collection Data Type</b></em>' container reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference ELEMENT_TYPE__COLLECTION_DATA_TYPE = eINSTANCE.getElementType_CollectionDataType();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.CoercibilityType <em>Coercibility Type</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.CoercibilityType
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getCoercibilityType()
+		 * @generated
+		 */
+		EEnum COERCIBILITY_TYPE = eINSTANCE.getCoercibilityType();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.IntervalQualifierType <em>Interval Qualifier Type</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.IntervalQualifierType
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getIntervalQualifierType()
+		 * @generated
+		 */
+		EEnum INTERVAL_QUALIFIER_TYPE = eINSTANCE.getIntervalQualifierType();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.OrderingType <em>Ordering Type</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.OrderingType
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getOrderingType()
+		 * @generated
+		 */
+		EEnum ORDERING_TYPE = eINSTANCE.getOrderingType();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.OrderingCategoryType <em>Ordering Category Type</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.OrderingCategoryType
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getOrderingCategoryType()
+		 * @generated
+		 */
+		EEnum ORDERING_CATEGORY_TYPE = eINSTANCE.getOrderingCategoryType();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.PrimitiveType <em>Primitive Type</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.PrimitiveType
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getPrimitiveType()
+		 * @generated
+		 */
+		EEnum PRIMITIVE_TYPE = eINSTANCE.getPrimitiveType();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.LinkControlOption <em>Link Control Option</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.LinkControlOption
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getLinkControlOption()
+		 * @generated
+		 */
+		EEnum LINK_CONTROL_OPTION = eINSTANCE.getLinkControlOption();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.IntegrityControlOption <em>Integrity Control Option</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.IntegrityControlOption
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getIntegrityControlOption()
+		 * @generated
+		 */
+		EEnum INTEGRITY_CONTROL_OPTION = eINSTANCE.getIntegrityControlOption();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.ReadPermissionOption <em>Read Permission Option</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.ReadPermissionOption
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getReadPermissionOption()
+		 * @generated
+		 */
+		EEnum READ_PERMISSION_OPTION = eINSTANCE.getReadPermissionOption();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.WritePermissionOption <em>Write Permission Option</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.WritePermissionOption
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getWritePermissionOption()
+		 * @generated
+		 */
+		EEnum WRITE_PERMISSION_OPTION = eINSTANCE.getWritePermissionOption();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.datatypes.UnlinkOption <em>Unlink Option</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.UnlinkOption
+		 * @see org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl#getUnlinkOption()
+		 * @generated
+		 */
+		EEnum UNLINK_OPTION = eINSTANCE.getUnlinkOption();
+
+	}
+
+} //SQLDataTypesPackage
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/StructuredUserDefinedType.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/StructuredUserDefinedType.java
new file mode 100644
index 0000000..4c8af7f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/StructuredUserDefinedType.java
@@ -0,0 +1,173 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Structured User Defined Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.7 User-defined types
+ * 
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType#isInstantiable <em>Instantiable</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType#isFinal <em>Final</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType#getSuper <em>Super</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType#getSub <em>Sub</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType#getAttributes <em>Attributes</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType#getMethods <em>Methods</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getStructuredUserDefinedType()
+ * @model
+ * @generated
+ */
+public interface StructuredUserDefinedType extends UserDefinedType {
+	/**
+	 * Returns the value of the '<em><b>Instantiable</b></em>' attribute.
+	 * The default value is <code>"True"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Instantiable</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Instantiable</em>' attribute.
+	 * @see #setInstantiable(boolean)
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getStructuredUserDefinedType_Instantiable()
+	 * @model default="True"
+	 * @generated
+	 */
+	boolean isInstantiable();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType#isInstantiable <em>Instantiable</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Instantiable</em>' attribute.
+	 * @see #isInstantiable()
+	 * @generated
+	 */
+	void setInstantiable(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Final</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Final</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Final</em>' attribute.
+	 * @see #setFinal(boolean)
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getStructuredUserDefinedType_Final()
+	 * @model
+	 * @generated
+	 */
+	boolean isFinal();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType#isFinal <em>Final</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Final</em>' attribute.
+	 * @see #isFinal()
+	 * @generated
+	 */
+	void setFinal(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Super</b></em>' reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType#getSub <em>Sub</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Super</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Super</em>' reference.
+	 * @see #setSuper(StructuredUserDefinedType)
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getStructuredUserDefinedType_Super()
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType#getSub
+	 * @model opposite="sub"
+	 * @generated
+	 */
+	StructuredUserDefinedType getSuper();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType#getSuper <em>Super</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Super</em>' reference.
+	 * @see #getSuper()
+	 * @generated
+	 */
+	void setSuper(StructuredUserDefinedType value);
+
+	/**
+	 * Returns the value of the '<em><b>Sub</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType}.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType#getSuper <em>Super</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Sub</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Sub</em>' reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getStructuredUserDefinedType_Sub()
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType#getSuper
+	 * @model type="org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType" opposite="super"
+	 * @generated
+	 */
+	EList getSub();
+
+	/**
+	 * Returns the value of the '<em><b>Attributes</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.datatypes.AttributeDefinition}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Attributes</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Attributes</em>' containment reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getStructuredUserDefinedType_Attributes()
+	 * @model type="org.eclipse.datatools.modelbase.sql.datatypes.AttributeDefinition" containment="true"
+	 * @generated
+	 */
+	EList getAttributes();
+
+	/**
+	 * Returns the value of the '<em><b>Methods</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.routines.Method}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Methods</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Methods</em>' containment reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getStructuredUserDefinedType_Methods()
+	 * @model type="org.eclipse.datatools.modelbase.sql.routines.Method" containment="true"
+	 * @generated
+	 */
+	EList getMethods();
+
+} // StructuredUserDefinedType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/TimeDataType.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/TimeDataType.java
new file mode 100644
index 0000000..e854496
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/TimeDataType.java
@@ -0,0 +1,90 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Time Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.6.1 Datetimes
+ * 
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.TimeDataType#getFractionalSecondsPrecision <em>Fractional Seconds Precision</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.TimeDataType#isTimeZone <em>Time Zone</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getTimeDataType()
+ * @model
+ * @generated
+ */
+public interface TimeDataType extends PredefinedDataType {
+	/**
+	 * Returns the value of the '<em><b>Fractional Seconds Precision</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Fractional Seconds Precision</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Fractional Seconds Precision</em>' attribute.
+	 * @see #setFractionalSecondsPrecision(int)
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getTimeDataType_FractionalSecondsPrecision()
+	 * @model
+	 * @generated
+	 */
+	int getFractionalSecondsPrecision();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.TimeDataType#getFractionalSecondsPrecision <em>Fractional Seconds Precision</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Fractional Seconds Precision</em>' attribute.
+	 * @see #getFractionalSecondsPrecision()
+	 * @generated
+	 */
+	void setFractionalSecondsPrecision(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Time Zone</b></em>' attribute.
+	 * The default value is <code>"false"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Time Zone</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Time Zone</em>' attribute.
+	 * @see #setTimeZone(boolean)
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getTimeDataType_TimeZone()
+	 * @model default="false"
+	 * @generated
+	 */
+	boolean isTimeZone();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.TimeDataType#isTimeZone <em>Time Zone</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Time Zone</em>' attribute.
+	 * @see #isTimeZone()
+	 * @generated
+	 */
+	void setTimeZone(boolean value);
+
+} // TimeDataType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/UnlinkOption.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/UnlinkOption.java
new file mode 100644
index 0000000..08e31e3
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/UnlinkOption.java
@@ -0,0 +1,178 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: UnlinkOption.java,v 1.3 2006/09/07 00:19:48 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.datatypes;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Unlink Option</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getUnlinkOption()
+ * @model
+ * @generated
+ */
+public final class UnlinkOption extends AbstractEnumerator {
+	/**
+	 * The '<em><b>RESTORE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #RESTORE_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int RESTORE = 0;
+
+	/**
+	 * The '<em><b>DELETE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #DELETE_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int DELETE = 1;
+
+	/**
+	 * The '<em><b>NONE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NONE_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NONE = 2;
+
+	/**
+	 * The '<em><b>RESTORE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>RESTORE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #RESTORE
+	 * @generated
+	 * @ordered
+	 */
+	public static final UnlinkOption RESTORE_LITERAL = new UnlinkOption(RESTORE, "RESTORE", "RESTORE"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>DELETE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>DELETE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #DELETE
+	 * @generated
+	 * @ordered
+	 */
+	public static final UnlinkOption DELETE_LITERAL = new UnlinkOption(DELETE, "DELETE", "DELETE"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>NONE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NONE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #NONE
+	 * @generated
+	 * @ordered
+	 */
+	public static final UnlinkOption NONE_LITERAL = new UnlinkOption(NONE, "NONE", "NONE"); //$NON-NLS-1$
+
+	/**
+	 * An array of all the '<em><b>Unlink Option</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final UnlinkOption[] VALUES_ARRAY =
+		new UnlinkOption[] {
+			RESTORE_LITERAL,
+			DELETE_LITERAL,
+			NONE_LITERAL,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Unlink Option</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Unlink Option</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static UnlinkOption get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			UnlinkOption result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Unlink Option</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static UnlinkOption getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			UnlinkOption result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Unlink Option</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static UnlinkOption get(int value) {
+		switch (value) {
+			case RESTORE: return RESTORE_LITERAL;
+			case DELETE: return DELETE_LITERAL;
+			case NONE: return NONE_LITERAL;
+		}
+		return null;
+	}
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private UnlinkOption(int value, String name, String literal) {
+		super(value, name, literal);
+	}
+
+} //UnlinkOption
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/UserDefinedType.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/UserDefinedType.java
new file mode 100644
index 0000000..17073d4
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/UserDefinedType.java
@@ -0,0 +1,93 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes;
+
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>User Defined Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.7 User-defined types
+ * 
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType#getSchema <em>Schema</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType#getOrdering <em>Ordering</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getUserDefinedType()
+ * @model abstract="true"
+ * @generated
+ */
+public interface UserDefinedType extends DataType {
+	/**
+	 * Returns the value of the '<em><b>Schema</b></em>' reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.schema.Schema#getUserDefinedTypes <em>User Defined Types</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Schema</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Schema</em>' reference.
+	 * @see #setSchema(Schema)
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getUserDefinedType_Schema()
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Schema#getUserDefinedTypes
+	 * @model opposite="userDefinedTypes" required="true"
+	 * @generated
+	 */
+	Schema getSchema();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType#getSchema <em>Schema</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Schema</em>' reference.
+	 * @see #getSchema()
+	 * @generated
+	 */
+	void setSchema(Schema value);
+
+	/**
+	 * Returns the value of the '<em><b>Ordering</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Ordering</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Ordering</em>' containment reference.
+	 * @see #setOrdering(UserDefinedTypeOrdering)
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getUserDefinedType_Ordering()
+	 * @model containment="true"
+	 * @generated
+	 */
+	UserDefinedTypeOrdering getOrdering();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType#getOrdering <em>Ordering</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Ordering</em>' containment reference.
+	 * @see #getOrdering()
+	 * @generated
+	 */
+	void setOrdering(UserDefinedTypeOrdering value);
+
+} // UserDefinedType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/UserDefinedTypeOrdering.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/UserDefinedTypeOrdering.java
new file mode 100644
index 0000000..ce33463
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/UserDefinedTypeOrdering.java
@@ -0,0 +1,124 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes;
+
+import org.eclipse.datatools.modelbase.sql.routines.Routine;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>User Defined Type Ordering</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.7 User-defined types
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedTypeOrdering#getOrderingForm <em>Ordering Form</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedTypeOrdering#getOrderingCategory <em>Ordering Category</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedTypeOrdering#getOrderingRoutine <em>Ordering Routine</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getUserDefinedTypeOrdering()
+ * @model
+ * @generated
+ */
+public interface UserDefinedTypeOrdering extends SQLObject {
+	/**
+	 * Returns the value of the '<em><b>Ordering Form</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.datatypes.OrderingType}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Ordering Form</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Ordering Form</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.OrderingType
+	 * @see #setOrderingForm(OrderingType)
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getUserDefinedTypeOrdering_OrderingForm()
+	 * @model
+	 * @generated
+	 */
+	OrderingType getOrderingForm();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedTypeOrdering#getOrderingForm <em>Ordering Form</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Ordering Form</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.OrderingType
+	 * @see #getOrderingForm()
+	 * @generated
+	 */
+	void setOrderingForm(OrderingType value);
+
+	/**
+	 * Returns the value of the '<em><b>Ordering Category</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.datatypes.OrderingCategoryType}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Ordering Category</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Ordering Category</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.OrderingCategoryType
+	 * @see #setOrderingCategory(OrderingCategoryType)
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getUserDefinedTypeOrdering_OrderingCategory()
+	 * @model
+	 * @generated
+	 */
+	OrderingCategoryType getOrderingCategory();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedTypeOrdering#getOrderingCategory <em>Ordering Category</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Ordering Category</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.OrderingCategoryType
+	 * @see #getOrderingCategory()
+	 * @generated
+	 */
+	void setOrderingCategory(OrderingCategoryType value);
+
+	/**
+	 * Returns the value of the '<em><b>Ordering Routine</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Ordering Routine</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Ordering Routine</em>' reference.
+	 * @see #setOrderingRoutine(Routine)
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getUserDefinedTypeOrdering_OrderingRoutine()
+	 * @model required="true"
+	 * @generated
+	 */
+	Routine getOrderingRoutine();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedTypeOrdering#getOrderingRoutine <em>Ordering Routine</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Ordering Routine</em>' reference.
+	 * @see #getOrderingRoutine()
+	 * @generated
+	 */
+	void setOrderingRoutine(Routine value);
+
+} // UserDefinedTypeOrdering
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/WritePermissionOption.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/WritePermissionOption.java
new file mode 100644
index 0000000..91da4b1
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/WritePermissionOption.java
@@ -0,0 +1,178 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: WritePermissionOption.java,v 1.3 2006/09/07 00:19:48 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.datatypes;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Write Permission Option</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getWritePermissionOption()
+ * @model
+ * @generated
+ */
+public final class WritePermissionOption extends AbstractEnumerator {
+	/**
+	 * The '<em><b>FS</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #FS_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int FS = 0;
+
+	/**
+	 * The '<em><b>ADMIN</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #ADMIN_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int ADMIN = 1;
+
+	/**
+	 * The '<em><b>BLOCKED</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #BLOCKED_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int BLOCKED = 2;
+
+	/**
+	 * The '<em><b>FS</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>FS</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #FS
+	 * @generated
+	 * @ordered
+	 */
+	public static final WritePermissionOption FS_LITERAL = new WritePermissionOption(FS, "FS", "FS"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>ADMIN</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>ADMIN</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #ADMIN
+	 * @generated
+	 * @ordered
+	 */
+	public static final WritePermissionOption ADMIN_LITERAL = new WritePermissionOption(ADMIN, "ADMIN", "ADMIN"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>BLOCKED</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>BLOCKED</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #BLOCKED
+	 * @generated
+	 * @ordered
+	 */
+	public static final WritePermissionOption BLOCKED_LITERAL = new WritePermissionOption(BLOCKED, "BLOCKED", "BLOCKED"); //$NON-NLS-1$
+
+	/**
+	 * An array of all the '<em><b>Write Permission Option</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final WritePermissionOption[] VALUES_ARRAY =
+		new WritePermissionOption[] {
+			FS_LITERAL,
+			ADMIN_LITERAL,
+			BLOCKED_LITERAL,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Write Permission Option</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Write Permission Option</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static WritePermissionOption get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			WritePermissionOption result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Write Permission Option</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static WritePermissionOption getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			WritePermissionOption result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Write Permission Option</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static WritePermissionOption get(int value) {
+		switch (value) {
+			case FS: return FS_LITERAL;
+			case ADMIN: return ADMIN_LITERAL;
+			case BLOCKED: return BLOCKED_LITERAL;
+		}
+		return null;
+	}
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private WritePermissionOption(int value, String name, String literal) {
+		super(value, name, literal);
+	}
+
+} //WritePermissionOption
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/XMLDataType.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/XMLDataType.java
new file mode 100644
index 0000000..7116f7b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/XMLDataType.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XML Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.1 Data Types
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#getXMLDataType()
+ * @model
+ * @generated
+ */
+public interface XMLDataType extends PredefinedDataType {
+} // XMLDataType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/ApproximateNumericDataTypeImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/ApproximateNumericDataTypeImpl.java
new file mode 100644
index 0000000..8fa77b9
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/ApproximateNumericDataTypeImpl.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.ApproximateNumericDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.PrimitiveType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Approximate Numeric Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class ApproximateNumericDataTypeImpl extends NumericalDataTypeImpl implements ApproximateNumericDataType {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ApproximateNumericDataTypeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLDataTypesPackage.Literals.APPROXIMATE_NUMERIC_DATA_TYPE;
+	}
+
+} //ApproximateNumericDataTypeImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/ArrayDataTypeImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/ArrayDataTypeImpl.java
new file mode 100644
index 0000000..637d66e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/ArrayDataTypeImpl.java
@@ -0,0 +1,167 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.ArrayDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Array Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.ArrayDataTypeImpl#getMaxCardinality <em>Max Cardinality</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class ArrayDataTypeImpl extends CollectionDataTypeImpl implements ArrayDataType {
+	/**
+	 * The default value of the '{@link #getMaxCardinality() <em>Max Cardinality</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaxCardinality()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int MAX_CARDINALITY_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getMaxCardinality() <em>Max Cardinality</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaxCardinality()
+	 * @generated
+	 * @ordered
+	 */
+	protected int maxCardinality = MAX_CARDINALITY_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ArrayDataTypeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLDataTypesPackage.Literals.ARRAY_DATA_TYPE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getMaxCardinality() {
+		return maxCardinality;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMaxCardinality(int newMaxCardinality) {
+		int oldMaxCardinality = maxCardinality;
+		maxCardinality = newMaxCardinality;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.ARRAY_DATA_TYPE__MAX_CARDINALITY, oldMaxCardinality, maxCardinality));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLDataTypesPackage.ARRAY_DATA_TYPE__MAX_CARDINALITY:
+				return new Integer(getMaxCardinality());
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLDataTypesPackage.ARRAY_DATA_TYPE__MAX_CARDINALITY:
+				setMaxCardinality(((Integer)newValue).intValue());
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLDataTypesPackage.ARRAY_DATA_TYPE__MAX_CARDINALITY:
+				setMaxCardinality(MAX_CARDINALITY_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLDataTypesPackage.ARRAY_DATA_TYPE__MAX_CARDINALITY:
+				return maxCardinality != MAX_CARDINALITY_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (maxCardinality: "); //$NON-NLS-1$
+		result.append(maxCardinality);
+		result.append(')');
+		return result.toString();
+	}
+
+} //ArrayDataTypeImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/AttributeDefinitionImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/AttributeDefinitionImpl.java
new file mode 100644
index 0000000..db61233
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/AttributeDefinitionImpl.java
@@ -0,0 +1,279 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.AttributeDefinition;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType;
+import org.eclipse.datatools.modelbase.sql.schema.ReferentialActionType;
+import org.eclipse.datatools.modelbase.sql.schema.impl.TypedElementImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Attribute Definition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.AttributeDefinitionImpl#getScopeCheck <em>Scope Check</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.AttributeDefinitionImpl#isScopeChecked <em>Scope Checked</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.AttributeDefinitionImpl#getDefaultValue <em>Default Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class AttributeDefinitionImpl extends TypedElementImpl implements AttributeDefinition {
+	/**
+	 * The default value of the '{@link #getScopeCheck() <em>Scope Check</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getScopeCheck()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final ReferentialActionType SCOPE_CHECK_EDEFAULT = ReferentialActionType.NO_ACTION_LITERAL;
+
+	/**
+	 * The cached value of the '{@link #getScopeCheck() <em>Scope Check</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getScopeCheck()
+	 * @generated
+	 * @ordered
+	 */
+	protected ReferentialActionType scopeCheck = SCOPE_CHECK_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isScopeChecked() <em>Scope Checked</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isScopeChecked()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean SCOPE_CHECKED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isScopeChecked() <em>Scope Checked</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isScopeChecked()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean scopeChecked = SCOPE_CHECKED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getDefaultValue() <em>Default Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefaultValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DEFAULT_VALUE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDefaultValue() <em>Default Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefaultValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected String defaultValue = DEFAULT_VALUE_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected AttributeDefinitionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLDataTypesPackage.Literals.ATTRIBUTE_DEFINITION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ReferentialActionType getScopeCheck() {
+		return scopeCheck;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setScopeCheck(ReferentialActionType newScopeCheck) {
+		ReferentialActionType oldScopeCheck = scopeCheck;
+		scopeCheck = newScopeCheck == null ? SCOPE_CHECK_EDEFAULT : newScopeCheck;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.ATTRIBUTE_DEFINITION__SCOPE_CHECK, oldScopeCheck, scopeCheck));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isScopeChecked() {
+		return scopeChecked;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setScopeChecked(boolean newScopeChecked) {
+		boolean oldScopeChecked = scopeChecked;
+		scopeChecked = newScopeChecked;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.ATTRIBUTE_DEFINITION__SCOPE_CHECKED, oldScopeChecked, scopeChecked));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getDefaultValue() {
+		return defaultValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDefaultValue(String newDefaultValue) {
+		String oldDefaultValue = defaultValue;
+		defaultValue = newDefaultValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.ATTRIBUTE_DEFINITION__DEFAULT_VALUE, oldDefaultValue, defaultValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLDataTypesPackage.ATTRIBUTE_DEFINITION__SCOPE_CHECK:
+				return getScopeCheck();
+			case SQLDataTypesPackage.ATTRIBUTE_DEFINITION__SCOPE_CHECKED:
+				return isScopeChecked() ? Boolean.TRUE : Boolean.FALSE;
+			case SQLDataTypesPackage.ATTRIBUTE_DEFINITION__DEFAULT_VALUE:
+				return getDefaultValue();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLDataTypesPackage.ATTRIBUTE_DEFINITION__SCOPE_CHECK:
+				setScopeCheck((ReferentialActionType)newValue);
+				return;
+			case SQLDataTypesPackage.ATTRIBUTE_DEFINITION__SCOPE_CHECKED:
+				setScopeChecked(((Boolean)newValue).booleanValue());
+				return;
+			case SQLDataTypesPackage.ATTRIBUTE_DEFINITION__DEFAULT_VALUE:
+				setDefaultValue((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLDataTypesPackage.ATTRIBUTE_DEFINITION__SCOPE_CHECK:
+				setScopeCheck(SCOPE_CHECK_EDEFAULT);
+				return;
+			case SQLDataTypesPackage.ATTRIBUTE_DEFINITION__SCOPE_CHECKED:
+				setScopeChecked(SCOPE_CHECKED_EDEFAULT);
+				return;
+			case SQLDataTypesPackage.ATTRIBUTE_DEFINITION__DEFAULT_VALUE:
+				setDefaultValue(DEFAULT_VALUE_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLDataTypesPackage.ATTRIBUTE_DEFINITION__SCOPE_CHECK:
+				return scopeCheck != SCOPE_CHECK_EDEFAULT;
+			case SQLDataTypesPackage.ATTRIBUTE_DEFINITION__SCOPE_CHECKED:
+				return scopeChecked != SCOPE_CHECKED_EDEFAULT;
+			case SQLDataTypesPackage.ATTRIBUTE_DEFINITION__DEFAULT_VALUE:
+				return DEFAULT_VALUE_EDEFAULT == null ? defaultValue != null : !DEFAULT_VALUE_EDEFAULT.equals(defaultValue);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (scopeCheck: "); //$NON-NLS-1$
+		result.append(scopeCheck);
+		result.append(", scopeChecked: "); //$NON-NLS-1$
+		result.append(scopeChecked);
+		result.append(", defaultValue: "); //$NON-NLS-1$
+		result.append(defaultValue);
+		result.append(')');
+		return result.toString();
+	}
+
+} //AttributeDefinitionImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/BinaryStringDataTypeImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/BinaryStringDataTypeImpl.java
new file mode 100644
index 0000000..e9f9e8d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/BinaryStringDataTypeImpl.java
@@ -0,0 +1,179 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.BinaryStringDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.PrimitiveType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Binary String Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.BinaryStringDataTypeImpl#getLength <em>Length</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class BinaryStringDataTypeImpl extends PredefinedDataTypeImpl implements BinaryStringDataType {
+	/**
+	 * The default value of the '{@link #getLength() <em>Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int LENGTH_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getLength() <em>Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected int length = LENGTH_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected BinaryStringDataTypeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLDataTypesPackage.Literals.BINARY_STRING_DATA_TYPE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getLength() {
+		return length;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLength(int newLength) {
+		int oldLength = length;
+		length = newLength;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.BINARY_STRING_DATA_TYPE__LENGTH, oldLength, length));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean equals() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLDataTypesPackage.BINARY_STRING_DATA_TYPE__LENGTH:
+				return new Integer(getLength());
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLDataTypesPackage.BINARY_STRING_DATA_TYPE__LENGTH:
+				setLength(((Integer)newValue).intValue());
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLDataTypesPackage.BINARY_STRING_DATA_TYPE__LENGTH:
+				setLength(LENGTH_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLDataTypesPackage.BINARY_STRING_DATA_TYPE__LENGTH:
+				return length != LENGTH_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (length: "); //$NON-NLS-1$
+		result.append(length);
+		result.append(')');
+		return result.toString();
+	}
+
+} //BinaryStringDataTypeImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/BooleanDataTypeImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/BooleanDataTypeImpl.java
new file mode 100644
index 0000000..fb5428b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/BooleanDataTypeImpl.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.BooleanDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.PrimitiveType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Boolean Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class BooleanDataTypeImpl extends PredefinedDataTypeImpl implements BooleanDataType {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected BooleanDataTypeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLDataTypesPackage.Literals.BOOLEAN_DATA_TYPE;
+	}
+
+} //BooleanDataTypeImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/CharacterSetImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/CharacterSetImpl.java
new file mode 100644
index 0000000..8c163a7
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/CharacterSetImpl.java
@@ -0,0 +1,477 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.CharacterSet;
+import org.eclipse.datatools.modelbase.sql.datatypes.CharacterStringDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Character Set</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.CharacterSetImpl#getRepertoire <em>Repertoire</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.CharacterSetImpl#getDefaultCollation <em>Default Collation</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.CharacterSetImpl#getEncoding <em>Encoding</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.CharacterSetImpl#getCharacterStringDataType <em>Character String Data Type</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.CharacterSetImpl#getSchema <em>Schema</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CharacterSetImpl extends SQLObjectImpl implements CharacterSet {
+	/**
+	 * The default value of the '{@link #getRepertoire() <em>Repertoire</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRepertoire()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String REPERTOIRE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getRepertoire() <em>Repertoire</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRepertoire()
+	 * @generated
+	 * @ordered
+	 */
+	protected String repertoire = REPERTOIRE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getDefaultCollation() <em>Default Collation</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefaultCollation()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DEFAULT_COLLATION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDefaultCollation() <em>Default Collation</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefaultCollation()
+	 * @generated
+	 * @ordered
+	 */
+	protected String defaultCollation = DEFAULT_COLLATION_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getEncoding() <em>Encoding</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEncoding()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ENCODING_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getEncoding() <em>Encoding</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEncoding()
+	 * @generated
+	 * @ordered
+	 */
+	protected String encoding = ENCODING_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getCharacterStringDataType() <em>Character String Data Type</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCharacterStringDataType()
+	 * @generated
+	 * @ordered
+	 */
+	protected CharacterStringDataType characterStringDataType;
+
+	/**
+	 * The cached value of the '{@link #getSchema() <em>Schema</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSchema()
+	 * @generated
+	 * @ordered
+	 */
+	protected Schema schema;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected CharacterSetImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLDataTypesPackage.Literals.CHARACTER_SET;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getRepertoire() {
+		return repertoire;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setRepertoire(String newRepertoire) {
+		String oldRepertoire = repertoire;
+		repertoire = newRepertoire;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.CHARACTER_SET__REPERTOIRE, oldRepertoire, repertoire));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getDefaultCollation() {
+		return defaultCollation;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDefaultCollation(String newDefaultCollation) {
+		String oldDefaultCollation = defaultCollation;
+		defaultCollation = newDefaultCollation;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.CHARACTER_SET__DEFAULT_COLLATION, oldDefaultCollation, defaultCollation));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getEncoding() {
+		return encoding;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setEncoding(String newEncoding) {
+		String oldEncoding = encoding;
+		encoding = newEncoding;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.CHARACTER_SET__ENCODING, oldEncoding, encoding));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public CharacterStringDataType getCharacterStringDataType() {
+		if (characterStringDataType != null && characterStringDataType.eIsProxy()) {
+			InternalEObject oldCharacterStringDataType = (InternalEObject)characterStringDataType;
+			characterStringDataType = (CharacterStringDataType)eResolveProxy(oldCharacterStringDataType);
+			if (characterStringDataType != oldCharacterStringDataType) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SQLDataTypesPackage.CHARACTER_SET__CHARACTER_STRING_DATA_TYPE, oldCharacterStringDataType, characterStringDataType));
+			}
+		}
+		return characterStringDataType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public CharacterStringDataType basicGetCharacterStringDataType() {
+		return characterStringDataType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetCharacterStringDataType(CharacterStringDataType newCharacterStringDataType, NotificationChain msgs) {
+		CharacterStringDataType oldCharacterStringDataType = characterStringDataType;
+		characterStringDataType = newCharacterStringDataType;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.CHARACTER_SET__CHARACTER_STRING_DATA_TYPE, oldCharacterStringDataType, newCharacterStringDataType);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCharacterStringDataType(CharacterStringDataType newCharacterStringDataType) {
+		if (newCharacterStringDataType != characterStringDataType) {
+			NotificationChain msgs = null;
+			if (characterStringDataType != null)
+				msgs = ((InternalEObject)characterStringDataType).eInverseRemove(this, SQLDataTypesPackage.CHARACTER_STRING_DATA_TYPE__CHARACTER_SET, CharacterStringDataType.class, msgs);
+			if (newCharacterStringDataType != null)
+				msgs = ((InternalEObject)newCharacterStringDataType).eInverseAdd(this, SQLDataTypesPackage.CHARACTER_STRING_DATA_TYPE__CHARACTER_SET, CharacterStringDataType.class, msgs);
+			msgs = basicSetCharacterStringDataType(newCharacterStringDataType, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.CHARACTER_SET__CHARACTER_STRING_DATA_TYPE, newCharacterStringDataType, newCharacterStringDataType));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Schema getSchema() {
+		if (schema != null && schema.eIsProxy()) {
+			InternalEObject oldSchema = (InternalEObject)schema;
+			schema = (Schema)eResolveProxy(oldSchema);
+			if (schema != oldSchema) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SQLDataTypesPackage.CHARACTER_SET__SCHEMA, oldSchema, schema));
+			}
+		}
+		return schema;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Schema basicGetSchema() {
+		return schema;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetSchema(Schema newSchema, NotificationChain msgs) {
+		Schema oldSchema = schema;
+		schema = newSchema;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.CHARACTER_SET__SCHEMA, oldSchema, newSchema);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSchema(Schema newSchema) {
+		if (newSchema != schema) {
+			NotificationChain msgs = null;
+			if (schema != null)
+				msgs = ((InternalEObject)schema).eInverseRemove(this, SQLSchemaPackage.SCHEMA__CHAR_SETS, Schema.class, msgs);
+			if (newSchema != null)
+				msgs = ((InternalEObject)newSchema).eInverseAdd(this, SQLSchemaPackage.SCHEMA__CHAR_SETS, Schema.class, msgs);
+			msgs = basicSetSchema(newSchema, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.CHARACTER_SET__SCHEMA, newSchema, newSchema));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLDataTypesPackage.CHARACTER_SET__CHARACTER_STRING_DATA_TYPE:
+				if (characterStringDataType != null)
+					msgs = ((InternalEObject)characterStringDataType).eInverseRemove(this, SQLDataTypesPackage.CHARACTER_STRING_DATA_TYPE__CHARACTER_SET, CharacterStringDataType.class, msgs);
+				return basicSetCharacterStringDataType((CharacterStringDataType)otherEnd, msgs);
+			case SQLDataTypesPackage.CHARACTER_SET__SCHEMA:
+				if (schema != null)
+					msgs = ((InternalEObject)schema).eInverseRemove(this, SQLSchemaPackage.SCHEMA__CHAR_SETS, Schema.class, msgs);
+				return basicSetSchema((Schema)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLDataTypesPackage.CHARACTER_SET__CHARACTER_STRING_DATA_TYPE:
+				return basicSetCharacterStringDataType(null, msgs);
+			case SQLDataTypesPackage.CHARACTER_SET__SCHEMA:
+				return basicSetSchema(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLDataTypesPackage.CHARACTER_SET__REPERTOIRE:
+				return getRepertoire();
+			case SQLDataTypesPackage.CHARACTER_SET__DEFAULT_COLLATION:
+				return getDefaultCollation();
+			case SQLDataTypesPackage.CHARACTER_SET__ENCODING:
+				return getEncoding();
+			case SQLDataTypesPackage.CHARACTER_SET__CHARACTER_STRING_DATA_TYPE:
+				if (resolve) return getCharacterStringDataType();
+				return basicGetCharacterStringDataType();
+			case SQLDataTypesPackage.CHARACTER_SET__SCHEMA:
+				if (resolve) return getSchema();
+				return basicGetSchema();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLDataTypesPackage.CHARACTER_SET__REPERTOIRE:
+				setRepertoire((String)newValue);
+				return;
+			case SQLDataTypesPackage.CHARACTER_SET__DEFAULT_COLLATION:
+				setDefaultCollation((String)newValue);
+				return;
+			case SQLDataTypesPackage.CHARACTER_SET__ENCODING:
+				setEncoding((String)newValue);
+				return;
+			case SQLDataTypesPackage.CHARACTER_SET__CHARACTER_STRING_DATA_TYPE:
+				setCharacterStringDataType((CharacterStringDataType)newValue);
+				return;
+			case SQLDataTypesPackage.CHARACTER_SET__SCHEMA:
+				setSchema((Schema)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLDataTypesPackage.CHARACTER_SET__REPERTOIRE:
+				setRepertoire(REPERTOIRE_EDEFAULT);
+				return;
+			case SQLDataTypesPackage.CHARACTER_SET__DEFAULT_COLLATION:
+				setDefaultCollation(DEFAULT_COLLATION_EDEFAULT);
+				return;
+			case SQLDataTypesPackage.CHARACTER_SET__ENCODING:
+				setEncoding(ENCODING_EDEFAULT);
+				return;
+			case SQLDataTypesPackage.CHARACTER_SET__CHARACTER_STRING_DATA_TYPE:
+				setCharacterStringDataType((CharacterStringDataType)null);
+				return;
+			case SQLDataTypesPackage.CHARACTER_SET__SCHEMA:
+				setSchema((Schema)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLDataTypesPackage.CHARACTER_SET__REPERTOIRE:
+				return REPERTOIRE_EDEFAULT == null ? repertoire != null : !REPERTOIRE_EDEFAULT.equals(repertoire);
+			case SQLDataTypesPackage.CHARACTER_SET__DEFAULT_COLLATION:
+				return DEFAULT_COLLATION_EDEFAULT == null ? defaultCollation != null : !DEFAULT_COLLATION_EDEFAULT.equals(defaultCollation);
+			case SQLDataTypesPackage.CHARACTER_SET__ENCODING:
+				return ENCODING_EDEFAULT == null ? encoding != null : !ENCODING_EDEFAULT.equals(encoding);
+			case SQLDataTypesPackage.CHARACTER_SET__CHARACTER_STRING_DATA_TYPE:
+				return characterStringDataType != null;
+			case SQLDataTypesPackage.CHARACTER_SET__SCHEMA:
+				return schema != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (repertoire: "); //$NON-NLS-1$
+		result.append(repertoire);
+		result.append(", defaultCollation: "); //$NON-NLS-1$
+		result.append(defaultCollation);
+		result.append(", encoding: "); //$NON-NLS-1$
+		result.append(encoding);
+		result.append(')');
+		return result.toString();
+	}
+
+} //CharacterSetImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/CharacterStringDataTypeImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/CharacterStringDataTypeImpl.java
new file mode 100644
index 0000000..33507b2
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/CharacterStringDataTypeImpl.java
@@ -0,0 +1,424 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.CharacterSet;
+import org.eclipse.datatools.modelbase.sql.datatypes.CharacterStringDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.CoercibilityType;
+import org.eclipse.datatools.modelbase.sql.datatypes.PrimitiveType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Character String Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.CharacterStringDataTypeImpl#getLength <em>Length</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.CharacterStringDataTypeImpl#getCoercibility <em>Coercibility</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.CharacterStringDataTypeImpl#isFixedLength <em>Fixed Length</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.CharacterStringDataTypeImpl#getCollationName <em>Collation Name</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.CharacterStringDataTypeImpl#getCharacterSet <em>Character Set</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CharacterStringDataTypeImpl extends PredefinedDataTypeImpl implements CharacterStringDataType {
+	/**
+	 * The default value of the '{@link #getLength() <em>Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int LENGTH_EDEFAULT = 1;
+
+	/**
+	 * The cached value of the '{@link #getLength() <em>Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected int length = LENGTH_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getCoercibility() <em>Coercibility</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCoercibility()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final CoercibilityType COERCIBILITY_EDEFAULT = CoercibilityType.IMPLICIT_LITERAL;
+
+	/**
+	 * The cached value of the '{@link #getCoercibility() <em>Coercibility</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCoercibility()
+	 * @generated
+	 * @ordered
+	 */
+	protected CoercibilityType coercibility = COERCIBILITY_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isFixedLength() <em>Fixed Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isFixedLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean FIXED_LENGTH_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isFixedLength() <em>Fixed Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isFixedLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean fixedLength = FIXED_LENGTH_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getCollationName() <em>Collation Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCollationName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String COLLATION_NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getCollationName() <em>Collation Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCollationName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String collationName = COLLATION_NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getCharacterSet() <em>Character Set</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCharacterSet()
+	 * @generated
+	 * @ordered
+	 */
+	protected CharacterSet characterSet;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected CharacterStringDataTypeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLDataTypesPackage.Literals.CHARACTER_STRING_DATA_TYPE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getLength() {
+		return length;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLength(int newLength) {
+		int oldLength = length;
+		length = newLength;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.CHARACTER_STRING_DATA_TYPE__LENGTH, oldLength, length));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public CoercibilityType getCoercibility() {
+		return coercibility;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCoercibility(CoercibilityType newCoercibility) {
+		CoercibilityType oldCoercibility = coercibility;
+		coercibility = newCoercibility == null ? COERCIBILITY_EDEFAULT : newCoercibility;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.CHARACTER_STRING_DATA_TYPE__COERCIBILITY, oldCoercibility, coercibility));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isFixedLength() {
+		return fixedLength;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getCollationName() {
+		return collationName;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCollationName(String newCollationName) {
+		String oldCollationName = collationName;
+		collationName = newCollationName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.CHARACTER_STRING_DATA_TYPE__COLLATION_NAME, oldCollationName, collationName));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public CharacterSet getCharacterSet() {
+		if (characterSet != null && characterSet.eIsProxy()) {
+			InternalEObject oldCharacterSet = (InternalEObject)characterSet;
+			characterSet = (CharacterSet)eResolveProxy(oldCharacterSet);
+			if (characterSet != oldCharacterSet) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SQLDataTypesPackage.CHARACTER_STRING_DATA_TYPE__CHARACTER_SET, oldCharacterSet, characterSet));
+			}
+		}
+		return characterSet;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public CharacterSet basicGetCharacterSet() {
+		return characterSet;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetCharacterSet(CharacterSet newCharacterSet, NotificationChain msgs) {
+		CharacterSet oldCharacterSet = characterSet;
+		characterSet = newCharacterSet;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.CHARACTER_STRING_DATA_TYPE__CHARACTER_SET, oldCharacterSet, newCharacterSet);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCharacterSet(CharacterSet newCharacterSet) {
+		if (newCharacterSet != characterSet) {
+			NotificationChain msgs = null;
+			if (characterSet != null)
+				msgs = ((InternalEObject)characterSet).eInverseRemove(this, SQLDataTypesPackage.CHARACTER_SET__CHARACTER_STRING_DATA_TYPE, CharacterSet.class, msgs);
+			if (newCharacterSet != null)
+				msgs = ((InternalEObject)newCharacterSet).eInverseAdd(this, SQLDataTypesPackage.CHARACTER_SET__CHARACTER_STRING_DATA_TYPE, CharacterSet.class, msgs);
+			msgs = basicSetCharacterSet(newCharacterSet, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.CHARACTER_STRING_DATA_TYPE__CHARACTER_SET, newCharacterSet, newCharacterSet));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLDataTypesPackage.CHARACTER_STRING_DATA_TYPE__CHARACTER_SET:
+				if (characterSet != null)
+					msgs = ((InternalEObject)characterSet).eInverseRemove(this, SQLDataTypesPackage.CHARACTER_SET__CHARACTER_STRING_DATA_TYPE, CharacterSet.class, msgs);
+				return basicSetCharacterSet((CharacterSet)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLDataTypesPackage.CHARACTER_STRING_DATA_TYPE__CHARACTER_SET:
+				return basicSetCharacterSet(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLDataTypesPackage.CHARACTER_STRING_DATA_TYPE__LENGTH:
+				return new Integer(getLength());
+			case SQLDataTypesPackage.CHARACTER_STRING_DATA_TYPE__COERCIBILITY:
+				return getCoercibility();
+			case SQLDataTypesPackage.CHARACTER_STRING_DATA_TYPE__FIXED_LENGTH:
+				return isFixedLength() ? Boolean.TRUE : Boolean.FALSE;
+			case SQLDataTypesPackage.CHARACTER_STRING_DATA_TYPE__COLLATION_NAME:
+				return getCollationName();
+			case SQLDataTypesPackage.CHARACTER_STRING_DATA_TYPE__CHARACTER_SET:
+				if (resolve) return getCharacterSet();
+				return basicGetCharacterSet();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLDataTypesPackage.CHARACTER_STRING_DATA_TYPE__LENGTH:
+				setLength(((Integer)newValue).intValue());
+				return;
+			case SQLDataTypesPackage.CHARACTER_STRING_DATA_TYPE__COERCIBILITY:
+				setCoercibility((CoercibilityType)newValue);
+				return;
+			case SQLDataTypesPackage.CHARACTER_STRING_DATA_TYPE__COLLATION_NAME:
+				setCollationName((String)newValue);
+				return;
+			case SQLDataTypesPackage.CHARACTER_STRING_DATA_TYPE__CHARACTER_SET:
+				setCharacterSet((CharacterSet)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLDataTypesPackage.CHARACTER_STRING_DATA_TYPE__LENGTH:
+				setLength(LENGTH_EDEFAULT);
+				return;
+			case SQLDataTypesPackage.CHARACTER_STRING_DATA_TYPE__COERCIBILITY:
+				setCoercibility(COERCIBILITY_EDEFAULT);
+				return;
+			case SQLDataTypesPackage.CHARACTER_STRING_DATA_TYPE__COLLATION_NAME:
+				setCollationName(COLLATION_NAME_EDEFAULT);
+				return;
+			case SQLDataTypesPackage.CHARACTER_STRING_DATA_TYPE__CHARACTER_SET:
+				setCharacterSet((CharacterSet)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLDataTypesPackage.CHARACTER_STRING_DATA_TYPE__LENGTH:
+				return length != LENGTH_EDEFAULT;
+			case SQLDataTypesPackage.CHARACTER_STRING_DATA_TYPE__COERCIBILITY:
+				return coercibility != COERCIBILITY_EDEFAULT;
+			case SQLDataTypesPackage.CHARACTER_STRING_DATA_TYPE__FIXED_LENGTH:
+				return fixedLength != FIXED_LENGTH_EDEFAULT;
+			case SQLDataTypesPackage.CHARACTER_STRING_DATA_TYPE__COLLATION_NAME:
+				return COLLATION_NAME_EDEFAULT == null ? collationName != null : !COLLATION_NAME_EDEFAULT.equals(collationName);
+			case SQLDataTypesPackage.CHARACTER_STRING_DATA_TYPE__CHARACTER_SET:
+				return characterSet != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (length: "); //$NON-NLS-1$
+		result.append(length);
+		result.append(", coercibility: "); //$NON-NLS-1$
+		result.append(coercibility);
+		result.append(", fixedLength: "); //$NON-NLS-1$
+		result.append(fixedLength);
+		result.append(", collationName: "); //$NON-NLS-1$
+		result.append(collationName);
+		result.append(')');
+		return result.toString();
+	}
+
+} //CharacterStringDataTypeImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/CollectionDataTypeImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/CollectionDataTypeImpl.java
new file mode 100644
index 0000000..13047a0
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/CollectionDataTypeImpl.java
@@ -0,0 +1,224 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.CollectionDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.ElementType;
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Collection Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.CollectionDataTypeImpl#getElementType <em>Element Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class CollectionDataTypeImpl extends ConstructedDataTypeImpl implements CollectionDataType {
+	/**
+	 * The cached value of the '{@link #getElementType() <em>Element Type</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getElementType()
+	 * @generated
+	 * @ordered
+	 */
+	protected ElementType elementType;
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected CollectionDataTypeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLDataTypesPackage.Literals.COLLECTION_DATA_TYPE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ElementType getElementType() {
+		return elementType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetElementType(ElementType newElementType, NotificationChain msgs) {
+		ElementType oldElementType = elementType;
+		elementType = newElementType;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.COLLECTION_DATA_TYPE__ELEMENT_TYPE, oldElementType, newElementType);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setElementType(ElementType newElementType) {
+		if (newElementType != elementType) {
+			NotificationChain msgs = null;
+			if (elementType != null)
+				msgs = ((InternalEObject)elementType).eInverseRemove(this, SQLDataTypesPackage.ELEMENT_TYPE__COLLECTION_DATA_TYPE, ElementType.class, msgs);
+			if (newElementType != null)
+				msgs = ((InternalEObject)newElementType).eInverseAdd(this, SQLDataTypesPackage.ELEMENT_TYPE__COLLECTION_DATA_TYPE, ElementType.class, msgs);
+			msgs = basicSetElementType(newElementType, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.COLLECTION_DATA_TYPE__ELEMENT_TYPE, newElementType, newElementType));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLDataTypesPackage.COLLECTION_DATA_TYPE__ELEMENT_TYPE:
+				if (elementType != null)
+					msgs = ((InternalEObject)elementType).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLDataTypesPackage.COLLECTION_DATA_TYPE__ELEMENT_TYPE, null, msgs);
+				return basicSetElementType((ElementType)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLDataTypesPackage.COLLECTION_DATA_TYPE__ELEMENT_TYPE:
+				return basicSetElementType(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLDataTypesPackage.COLLECTION_DATA_TYPE__ELEMENT_TYPE:
+				return getElementType();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLDataTypesPackage.COLLECTION_DATA_TYPE__ELEMENT_TYPE:
+				setElementType((ElementType)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLDataTypesPackage.COLLECTION_DATA_TYPE__ELEMENT_TYPE:
+				setElementType((ElementType)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLDataTypesPackage.COLLECTION_DATA_TYPE__ELEMENT_TYPE:
+				return elementType != null;
+		}
+		return super.eIsSet(featureID);
+	}
+	
+	
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.datatypes.CollectionDataType#getElementType <em>Element Type</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Element Type</em>' containment reference.
+	 * @deprecated As of release DTP 1.8, this method has been replaced by 
+	 * {@link #getElementType} and {@link #setElementType(ElementType newElementType)}
+	 */
+	@Deprecated 
+	public EList getElement() {
+		class InternalEList extends BasicEList {	
+			@Override
+			public boolean add(Object object) {
+				getElementType().setDataType((DataType)object);
+				return true;
+			}
+		}
+		
+		InternalEList list = new InternalEList();
+		if ( (getElementType() != null) &&  (getElementType().getDataType() != null) ) {
+			list.add(getElementType().getDataType());
+		}
+		return list;
+		
+		
+	}
+
+} //CollectionDataTypeImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/ConstructedDataTypeImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/ConstructedDataTypeImpl.java
new file mode 100644
index 0000000..3d5d564
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/ConstructedDataTypeImpl.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.ConstructedDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Constructed Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class ConstructedDataTypeImpl extends DataTypeImpl implements ConstructedDataType {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ConstructedDataTypeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLDataTypesPackage.Literals.CONSTRUCTED_DATA_TYPE;
+	}
+
+} //ConstructedDataTypeImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/DataLinkDataTypeImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/DataLinkDataTypeImpl.java
new file mode 100644
index 0000000..89b8510
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/DataLinkDataTypeImpl.java
@@ -0,0 +1,497 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataLinkDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.IntegrityControlOption;
+import org.eclipse.datatools.modelbase.sql.datatypes.LinkControlOption;
+import org.eclipse.datatools.modelbase.sql.datatypes.PrimitiveType;
+import org.eclipse.datatools.modelbase.sql.datatypes.ReadPermissionOption;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.datatypes.UnlinkOption;
+import org.eclipse.datatools.modelbase.sql.datatypes.WritePermissionOption;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Data Link Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.DataLinkDataTypeImpl#getLength <em>Length</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.DataLinkDataTypeImpl#getLinkControl <em>Link Control</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.DataLinkDataTypeImpl#getIntegrityControl <em>Integrity Control</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.DataLinkDataTypeImpl#getReadPermission <em>Read Permission</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.DataLinkDataTypeImpl#getWritePermission <em>Write Permission</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.DataLinkDataTypeImpl#isRecovery <em>Recovery</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.DataLinkDataTypeImpl#getUnlink <em>Unlink</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DataLinkDataTypeImpl extends PredefinedDataTypeImpl implements DataLinkDataType {
+	/**
+	 * The default value of the '{@link #getLength() <em>Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int LENGTH_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getLength() <em>Length</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLength()
+	 * @generated
+	 * @ordered
+	 */
+	protected int length = LENGTH_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getLinkControl() <em>Link Control</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLinkControl()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final LinkControlOption LINK_CONTROL_EDEFAULT = LinkControlOption.FILE_LINK_CONTROL_LITERAL;
+
+	/**
+	 * The cached value of the '{@link #getLinkControl() <em>Link Control</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLinkControl()
+	 * @generated
+	 * @ordered
+	 */
+	protected LinkControlOption linkControl = LINK_CONTROL_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getIntegrityControl() <em>Integrity Control</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getIntegrityControl()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final IntegrityControlOption INTEGRITY_CONTROL_EDEFAULT = IntegrityControlOption.ALL_LITERAL;
+
+	/**
+	 * The cached value of the '{@link #getIntegrityControl() <em>Integrity Control</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getIntegrityControl()
+	 * @generated
+	 * @ordered
+	 */
+	protected IntegrityControlOption integrityControl = INTEGRITY_CONTROL_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getReadPermission() <em>Read Permission</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getReadPermission()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final ReadPermissionOption READ_PERMISSION_EDEFAULT = ReadPermissionOption.FS_LITERAL;
+
+	/**
+	 * The cached value of the '{@link #getReadPermission() <em>Read Permission</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getReadPermission()
+	 * @generated
+	 * @ordered
+	 */
+	protected ReadPermissionOption readPermission = READ_PERMISSION_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getWritePermission() <em>Write Permission</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getWritePermission()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final WritePermissionOption WRITE_PERMISSION_EDEFAULT = WritePermissionOption.FS_LITERAL;
+
+	/**
+	 * The cached value of the '{@link #getWritePermission() <em>Write Permission</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getWritePermission()
+	 * @generated
+	 * @ordered
+	 */
+	protected WritePermissionOption writePermission = WRITE_PERMISSION_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isRecovery() <em>Recovery</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isRecovery()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean RECOVERY_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isRecovery() <em>Recovery</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isRecovery()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean recovery = RECOVERY_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getUnlink() <em>Unlink</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getUnlink()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final UnlinkOption UNLINK_EDEFAULT = UnlinkOption.RESTORE_LITERAL;
+
+	/**
+	 * The cached value of the '{@link #getUnlink() <em>Unlink</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getUnlink()
+	 * @generated
+	 * @ordered
+	 */
+	protected UnlinkOption unlink = UNLINK_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DataLinkDataTypeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLDataTypesPackage.Literals.DATA_LINK_DATA_TYPE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getLength() {
+		return length;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLength(int newLength) {
+		int oldLength = length;
+		length = newLength;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.DATA_LINK_DATA_TYPE__LENGTH, oldLength, length));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public LinkControlOption getLinkControl() {
+		return linkControl;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLinkControl(LinkControlOption newLinkControl) {
+		LinkControlOption oldLinkControl = linkControl;
+		linkControl = newLinkControl == null ? LINK_CONTROL_EDEFAULT : newLinkControl;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.DATA_LINK_DATA_TYPE__LINK_CONTROL, oldLinkControl, linkControl));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IntegrityControlOption getIntegrityControl() {
+		return integrityControl;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setIntegrityControl(IntegrityControlOption newIntegrityControl) {
+		IntegrityControlOption oldIntegrityControl = integrityControl;
+		integrityControl = newIntegrityControl == null ? INTEGRITY_CONTROL_EDEFAULT : newIntegrityControl;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.DATA_LINK_DATA_TYPE__INTEGRITY_CONTROL, oldIntegrityControl, integrityControl));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ReadPermissionOption getReadPermission() {
+		return readPermission;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setReadPermission(ReadPermissionOption newReadPermission) {
+		ReadPermissionOption oldReadPermission = readPermission;
+		readPermission = newReadPermission == null ? READ_PERMISSION_EDEFAULT : newReadPermission;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.DATA_LINK_DATA_TYPE__READ_PERMISSION, oldReadPermission, readPermission));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public WritePermissionOption getWritePermission() {
+		return writePermission;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setWritePermission(WritePermissionOption newWritePermission) {
+		WritePermissionOption oldWritePermission = writePermission;
+		writePermission = newWritePermission == null ? WRITE_PERMISSION_EDEFAULT : newWritePermission;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.DATA_LINK_DATA_TYPE__WRITE_PERMISSION, oldWritePermission, writePermission));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isRecovery() {
+		return recovery;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setRecovery(boolean newRecovery) {
+		boolean oldRecovery = recovery;
+		recovery = newRecovery;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.DATA_LINK_DATA_TYPE__RECOVERY, oldRecovery, recovery));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UnlinkOption getUnlink() {
+		return unlink;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setUnlink(UnlinkOption newUnlink) {
+		UnlinkOption oldUnlink = unlink;
+		unlink = newUnlink == null ? UNLINK_EDEFAULT : newUnlink;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.DATA_LINK_DATA_TYPE__UNLINK, oldUnlink, unlink));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLDataTypesPackage.DATA_LINK_DATA_TYPE__LENGTH:
+				return new Integer(getLength());
+			case SQLDataTypesPackage.DATA_LINK_DATA_TYPE__LINK_CONTROL:
+				return getLinkControl();
+			case SQLDataTypesPackage.DATA_LINK_DATA_TYPE__INTEGRITY_CONTROL:
+				return getIntegrityControl();
+			case SQLDataTypesPackage.DATA_LINK_DATA_TYPE__READ_PERMISSION:
+				return getReadPermission();
+			case SQLDataTypesPackage.DATA_LINK_DATA_TYPE__WRITE_PERMISSION:
+				return getWritePermission();
+			case SQLDataTypesPackage.DATA_LINK_DATA_TYPE__RECOVERY:
+				return isRecovery() ? Boolean.TRUE : Boolean.FALSE;
+			case SQLDataTypesPackage.DATA_LINK_DATA_TYPE__UNLINK:
+				return getUnlink();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLDataTypesPackage.DATA_LINK_DATA_TYPE__LENGTH:
+				setLength(((Integer)newValue).intValue());
+				return;
+			case SQLDataTypesPackage.DATA_LINK_DATA_TYPE__LINK_CONTROL:
+				setLinkControl((LinkControlOption)newValue);
+				return;
+			case SQLDataTypesPackage.DATA_LINK_DATA_TYPE__INTEGRITY_CONTROL:
+				setIntegrityControl((IntegrityControlOption)newValue);
+				return;
+			case SQLDataTypesPackage.DATA_LINK_DATA_TYPE__READ_PERMISSION:
+				setReadPermission((ReadPermissionOption)newValue);
+				return;
+			case SQLDataTypesPackage.DATA_LINK_DATA_TYPE__WRITE_PERMISSION:
+				setWritePermission((WritePermissionOption)newValue);
+				return;
+			case SQLDataTypesPackage.DATA_LINK_DATA_TYPE__RECOVERY:
+				setRecovery(((Boolean)newValue).booleanValue());
+				return;
+			case SQLDataTypesPackage.DATA_LINK_DATA_TYPE__UNLINK:
+				setUnlink((UnlinkOption)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLDataTypesPackage.DATA_LINK_DATA_TYPE__LENGTH:
+				setLength(LENGTH_EDEFAULT);
+				return;
+			case SQLDataTypesPackage.DATA_LINK_DATA_TYPE__LINK_CONTROL:
+				setLinkControl(LINK_CONTROL_EDEFAULT);
+				return;
+			case SQLDataTypesPackage.DATA_LINK_DATA_TYPE__INTEGRITY_CONTROL:
+				setIntegrityControl(INTEGRITY_CONTROL_EDEFAULT);
+				return;
+			case SQLDataTypesPackage.DATA_LINK_DATA_TYPE__READ_PERMISSION:
+				setReadPermission(READ_PERMISSION_EDEFAULT);
+				return;
+			case SQLDataTypesPackage.DATA_LINK_DATA_TYPE__WRITE_PERMISSION:
+				setWritePermission(WRITE_PERMISSION_EDEFAULT);
+				return;
+			case SQLDataTypesPackage.DATA_LINK_DATA_TYPE__RECOVERY:
+				setRecovery(RECOVERY_EDEFAULT);
+				return;
+			case SQLDataTypesPackage.DATA_LINK_DATA_TYPE__UNLINK:
+				setUnlink(UNLINK_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLDataTypesPackage.DATA_LINK_DATA_TYPE__LENGTH:
+				return length != LENGTH_EDEFAULT;
+			case SQLDataTypesPackage.DATA_LINK_DATA_TYPE__LINK_CONTROL:
+				return linkControl != LINK_CONTROL_EDEFAULT;
+			case SQLDataTypesPackage.DATA_LINK_DATA_TYPE__INTEGRITY_CONTROL:
+				return integrityControl != INTEGRITY_CONTROL_EDEFAULT;
+			case SQLDataTypesPackage.DATA_LINK_DATA_TYPE__READ_PERMISSION:
+				return readPermission != READ_PERMISSION_EDEFAULT;
+			case SQLDataTypesPackage.DATA_LINK_DATA_TYPE__WRITE_PERMISSION:
+				return writePermission != WRITE_PERMISSION_EDEFAULT;
+			case SQLDataTypesPackage.DATA_LINK_DATA_TYPE__RECOVERY:
+				return recovery != RECOVERY_EDEFAULT;
+			case SQLDataTypesPackage.DATA_LINK_DATA_TYPE__UNLINK:
+				return unlink != UNLINK_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (length: "); //$NON-NLS-1$
+		result.append(length);
+		result.append(", linkControl: "); //$NON-NLS-1$
+		result.append(linkControl);
+		result.append(", integrityControl: "); //$NON-NLS-1$
+		result.append(integrityControl);
+		result.append(", readPermission: "); //$NON-NLS-1$
+		result.append(readPermission);
+		result.append(", writePermission: "); //$NON-NLS-1$
+		result.append(writePermission);
+		result.append(", recovery: "); //$NON-NLS-1$
+		result.append(recovery);
+		result.append(", unlink: "); //$NON-NLS-1$
+		result.append(unlink);
+		result.append(')');
+		return result.toString();
+	}
+
+} //DataLinkDataTypeImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/DataTypeImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/DataTypeImpl.java
new file mode 100644
index 0000000..357d5ff
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/DataTypeImpl.java
@@ -0,0 +1,64 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.schema.TypedElement;
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class DataTypeImpl extends SQLObjectImpl implements DataType {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DataTypeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLDataTypesPackage.Literals.DATA_TYPE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setContainer(TypedElement newContainer) {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+} //DataTypeImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/DateDataTypeImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/DateDataTypeImpl.java
new file mode 100644
index 0000000..cf85a4d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/DateDataTypeImpl.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DateDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.PrimitiveType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Date Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class DateDataTypeImpl extends PredefinedDataTypeImpl implements DateDataType {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DateDataTypeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLDataTypesPackage.Literals.DATE_DATA_TYPE;
+	}
+
+} //DateDataTypeImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/DistinctUserDefinedTypeImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/DistinctUserDefinedTypeImpl.java
new file mode 100644
index 0000000..5fb6a57
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/DistinctUserDefinedTypeImpl.java
@@ -0,0 +1,181 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DistinctUserDefinedType;
+import org.eclipse.datatools.modelbase.sql.datatypes.PredefinedDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedTypeOrdering;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Distinct User Defined Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.DistinctUserDefinedTypeImpl#getPredefinedRepresentation <em>Predefined Representation</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DistinctUserDefinedTypeImpl extends UserDefinedTypeImpl implements DistinctUserDefinedType {
+	/**
+	 * The cached value of the '{@link #getPredefinedRepresentation() <em>Predefined Representation</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPredefinedRepresentation()
+	 * @generated
+	 * @ordered
+	 */
+	protected PredefinedDataType predefinedRepresentation;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DistinctUserDefinedTypeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLDataTypesPackage.Literals.DISTINCT_USER_DEFINED_TYPE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PredefinedDataType getPredefinedRepresentation() {
+		return predefinedRepresentation;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetPredefinedRepresentation(PredefinedDataType newPredefinedRepresentation, NotificationChain msgs) {
+		PredefinedDataType oldPredefinedRepresentation = predefinedRepresentation;
+		predefinedRepresentation = newPredefinedRepresentation;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.DISTINCT_USER_DEFINED_TYPE__PREDEFINED_REPRESENTATION, oldPredefinedRepresentation, newPredefinedRepresentation);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPredefinedRepresentation(PredefinedDataType newPredefinedRepresentation) {
+		if (newPredefinedRepresentation != predefinedRepresentation) {
+			NotificationChain msgs = null;
+			if (predefinedRepresentation != null)
+				msgs = ((InternalEObject)predefinedRepresentation).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLDataTypesPackage.DISTINCT_USER_DEFINED_TYPE__PREDEFINED_REPRESENTATION, null, msgs);
+			if (newPredefinedRepresentation != null)
+				msgs = ((InternalEObject)newPredefinedRepresentation).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SQLDataTypesPackage.DISTINCT_USER_DEFINED_TYPE__PREDEFINED_REPRESENTATION, null, msgs);
+			msgs = basicSetPredefinedRepresentation(newPredefinedRepresentation, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.DISTINCT_USER_DEFINED_TYPE__PREDEFINED_REPRESENTATION, newPredefinedRepresentation, newPredefinedRepresentation));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLDataTypesPackage.DISTINCT_USER_DEFINED_TYPE__PREDEFINED_REPRESENTATION:
+				return basicSetPredefinedRepresentation(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLDataTypesPackage.DISTINCT_USER_DEFINED_TYPE__PREDEFINED_REPRESENTATION:
+				return getPredefinedRepresentation();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLDataTypesPackage.DISTINCT_USER_DEFINED_TYPE__PREDEFINED_REPRESENTATION:
+				setPredefinedRepresentation((PredefinedDataType)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLDataTypesPackage.DISTINCT_USER_DEFINED_TYPE__PREDEFINED_REPRESENTATION:
+				setPredefinedRepresentation((PredefinedDataType)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLDataTypesPackage.DISTINCT_USER_DEFINED_TYPE__PREDEFINED_REPRESENTATION:
+				return predefinedRepresentation != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //DistinctUserDefinedTypeImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/DomainImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/DomainImpl.java
new file mode 100644
index 0000000..7a84e62
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/DomainImpl.java
@@ -0,0 +1,221 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.constraints.CheckConstraint;
+import org.eclipse.datatools.modelbase.sql.datatypes.Domain;
+import org.eclipse.datatools.modelbase.sql.datatypes.PredefinedDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedTypeOrdering;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Domain</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.DomainImpl#getConstraint <em>Constraint</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.DomainImpl#getDefaultValue <em>Default Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DomainImpl extends DistinctUserDefinedTypeImpl implements Domain {
+	/**
+	 * The cached value of the '{@link #getConstraint() <em>Constraint</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getConstraint()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList constraint;
+
+	/**
+	 * The default value of the '{@link #getDefaultValue() <em>Default Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefaultValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DEFAULT_VALUE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDefaultValue() <em>Default Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefaultValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected String defaultValue = DEFAULT_VALUE_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DomainImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLDataTypesPackage.Literals.DOMAIN;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getConstraint() {
+		if (constraint == null) {
+			constraint = new EObjectContainmentEList(CheckConstraint.class, this, SQLDataTypesPackage.DOMAIN__CONSTRAINT);
+		}
+		return constraint;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getDefaultValue() {
+		return defaultValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDefaultValue(String newDefaultValue) {
+		String oldDefaultValue = defaultValue;
+		defaultValue = newDefaultValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.DOMAIN__DEFAULT_VALUE, oldDefaultValue, defaultValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLDataTypesPackage.DOMAIN__CONSTRAINT:
+				return ((InternalEList)getConstraint()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLDataTypesPackage.DOMAIN__CONSTRAINT:
+				return getConstraint();
+			case SQLDataTypesPackage.DOMAIN__DEFAULT_VALUE:
+				return getDefaultValue();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLDataTypesPackage.DOMAIN__CONSTRAINT:
+				getConstraint().clear();
+				getConstraint().addAll((Collection)newValue);
+				return;
+			case SQLDataTypesPackage.DOMAIN__DEFAULT_VALUE:
+				setDefaultValue((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLDataTypesPackage.DOMAIN__CONSTRAINT:
+				getConstraint().clear();
+				return;
+			case SQLDataTypesPackage.DOMAIN__DEFAULT_VALUE:
+				setDefaultValue(DEFAULT_VALUE_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLDataTypesPackage.DOMAIN__CONSTRAINT:
+				return constraint != null && !constraint.isEmpty();
+			case SQLDataTypesPackage.DOMAIN__DEFAULT_VALUE:
+				return DEFAULT_VALUE_EDEFAULT == null ? defaultValue != null : !DEFAULT_VALUE_EDEFAULT.equals(defaultValue);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (defaultValue: "); //$NON-NLS-1$
+		result.append(defaultValue);
+		result.append(')');
+		return result.toString();
+	}
+
+} //DomainImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/ElementTypeImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/ElementTypeImpl.java
new file mode 100644
index 0000000..d90fc38
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/ElementTypeImpl.java
@@ -0,0 +1,193 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.modelbase.sql.datatypes.impl;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.CollectionDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.ElementType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+
+import org.eclipse.datatools.modelbase.sql.schema.impl.TypedElementImpl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Element Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.ElementTypeImpl#getCollectionDataType <em>Collection Data Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ElementTypeImpl extends TypedElementImpl implements ElementType {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ElementTypeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLDataTypesPackage.Literals.ELEMENT_TYPE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public CollectionDataType getCollectionDataType() {
+		if (eContainerFeatureID != SQLDataTypesPackage.ELEMENT_TYPE__COLLECTION_DATA_TYPE) return null;
+		return (CollectionDataType)eContainer();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetCollectionDataType(CollectionDataType newCollectionDataType, NotificationChain msgs) {
+		msgs = eBasicSetContainer((InternalEObject)newCollectionDataType, SQLDataTypesPackage.ELEMENT_TYPE__COLLECTION_DATA_TYPE, msgs);
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCollectionDataType(CollectionDataType newCollectionDataType) {
+		if (newCollectionDataType != eInternalContainer() || (eContainerFeatureID != SQLDataTypesPackage.ELEMENT_TYPE__COLLECTION_DATA_TYPE && newCollectionDataType != null)) {
+			if (EcoreUtil.isAncestor(this, newCollectionDataType))
+				throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); //$NON-NLS-1$
+			NotificationChain msgs = null;
+			if (eInternalContainer() != null)
+				msgs = eBasicRemoveFromContainer(msgs);
+			if (newCollectionDataType != null)
+				msgs = ((InternalEObject)newCollectionDataType).eInverseAdd(this, SQLDataTypesPackage.COLLECTION_DATA_TYPE__ELEMENT_TYPE, CollectionDataType.class, msgs);
+			msgs = basicSetCollectionDataType(newCollectionDataType, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.ELEMENT_TYPE__COLLECTION_DATA_TYPE, newCollectionDataType, newCollectionDataType));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLDataTypesPackage.ELEMENT_TYPE__COLLECTION_DATA_TYPE:
+				if (eInternalContainer() != null)
+					msgs = eBasicRemoveFromContainer(msgs);
+				return basicSetCollectionDataType((CollectionDataType)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLDataTypesPackage.ELEMENT_TYPE__COLLECTION_DATA_TYPE:
+				return basicSetCollectionDataType(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+		switch (eContainerFeatureID) {
+			case SQLDataTypesPackage.ELEMENT_TYPE__COLLECTION_DATA_TYPE:
+				return eInternalContainer().eInverseRemove(this, SQLDataTypesPackage.COLLECTION_DATA_TYPE__ELEMENT_TYPE, CollectionDataType.class, msgs);
+		}
+		return super.eBasicRemoveFromContainerFeature(msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLDataTypesPackage.ELEMENT_TYPE__COLLECTION_DATA_TYPE:
+				return getCollectionDataType();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLDataTypesPackage.ELEMENT_TYPE__COLLECTION_DATA_TYPE:
+				setCollectionDataType((CollectionDataType)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLDataTypesPackage.ELEMENT_TYPE__COLLECTION_DATA_TYPE:
+				setCollectionDataType((CollectionDataType)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLDataTypesPackage.ELEMENT_TYPE__COLLECTION_DATA_TYPE:
+				return getCollectionDataType() != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //ElementTypeImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/ExactNumericDataTypeImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/ExactNumericDataTypeImpl.java
new file mode 100644
index 0000000..2146528
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/ExactNumericDataTypeImpl.java
@@ -0,0 +1,168 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.ExactNumericDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.PrimitiveType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Exact Numeric Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.ExactNumericDataTypeImpl#getScale <em>Scale</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class ExactNumericDataTypeImpl extends NumericalDataTypeImpl implements ExactNumericDataType {
+	/**
+	 * The default value of the '{@link #getScale() <em>Scale</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getScale()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int SCALE_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getScale() <em>Scale</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getScale()
+	 * @generated
+	 * @ordered
+	 */
+	protected int scale = SCALE_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ExactNumericDataTypeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLDataTypesPackage.Literals.EXACT_NUMERIC_DATA_TYPE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getScale() {
+		return scale;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setScale(int newScale) {
+		int oldScale = scale;
+		scale = newScale;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.EXACT_NUMERIC_DATA_TYPE__SCALE, oldScale, scale));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLDataTypesPackage.EXACT_NUMERIC_DATA_TYPE__SCALE:
+				return new Integer(getScale());
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLDataTypesPackage.EXACT_NUMERIC_DATA_TYPE__SCALE:
+				setScale(((Integer)newValue).intValue());
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLDataTypesPackage.EXACT_NUMERIC_DATA_TYPE__SCALE:
+				setScale(SCALE_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLDataTypesPackage.EXACT_NUMERIC_DATA_TYPE__SCALE:
+				return scale != SCALE_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (scale: "); //$NON-NLS-1$
+		result.append(scale);
+		result.append(')');
+		return result.toString();
+	}
+
+} //ExactNumericDataTypeImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/FieldImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/FieldImpl.java
new file mode 100644
index 0000000..0e3ac39
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/FieldImpl.java
@@ -0,0 +1,225 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.Field;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType;
+import org.eclipse.datatools.modelbase.sql.schema.ReferentialActionType;
+import org.eclipse.datatools.modelbase.sql.schema.impl.TypedElementImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Field</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.FieldImpl#getScopeCheck <em>Scope Check</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.FieldImpl#isScopeChecked <em>Scope Checked</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class FieldImpl extends TypedElementImpl implements Field {
+	/**
+	 * The default value of the '{@link #getScopeCheck() <em>Scope Check</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getScopeCheck()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final ReferentialActionType SCOPE_CHECK_EDEFAULT = ReferentialActionType.NO_ACTION_LITERAL;
+
+	/**
+	 * The cached value of the '{@link #getScopeCheck() <em>Scope Check</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getScopeCheck()
+	 * @generated
+	 * @ordered
+	 */
+	protected ReferentialActionType scopeCheck = SCOPE_CHECK_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isScopeChecked() <em>Scope Checked</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isScopeChecked()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean SCOPE_CHECKED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isScopeChecked() <em>Scope Checked</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isScopeChecked()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean scopeChecked = SCOPE_CHECKED_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected FieldImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLDataTypesPackage.Literals.FIELD;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ReferentialActionType getScopeCheck() {
+		return scopeCheck;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setScopeCheck(ReferentialActionType newScopeCheck) {
+		ReferentialActionType oldScopeCheck = scopeCheck;
+		scopeCheck = newScopeCheck == null ? SCOPE_CHECK_EDEFAULT : newScopeCheck;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.FIELD__SCOPE_CHECK, oldScopeCheck, scopeCheck));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isScopeChecked() {
+		return scopeChecked;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setScopeChecked(boolean newScopeChecked) {
+		boolean oldScopeChecked = scopeChecked;
+		scopeChecked = newScopeChecked;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.FIELD__SCOPE_CHECKED, oldScopeChecked, scopeChecked));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLDataTypesPackage.FIELD__SCOPE_CHECK:
+				return getScopeCheck();
+			case SQLDataTypesPackage.FIELD__SCOPE_CHECKED:
+				return isScopeChecked() ? Boolean.TRUE : Boolean.FALSE;
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLDataTypesPackage.FIELD__SCOPE_CHECK:
+				setScopeCheck((ReferentialActionType)newValue);
+				return;
+			case SQLDataTypesPackage.FIELD__SCOPE_CHECKED:
+				setScopeChecked(((Boolean)newValue).booleanValue());
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLDataTypesPackage.FIELD__SCOPE_CHECK:
+				setScopeCheck(SCOPE_CHECK_EDEFAULT);
+				return;
+			case SQLDataTypesPackage.FIELD__SCOPE_CHECKED:
+				setScopeChecked(SCOPE_CHECKED_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLDataTypesPackage.FIELD__SCOPE_CHECK:
+				return scopeCheck != SCOPE_CHECK_EDEFAULT;
+			case SQLDataTypesPackage.FIELD__SCOPE_CHECKED:
+				return scopeChecked != SCOPE_CHECKED_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (scopeCheck: "); //$NON-NLS-1$
+		result.append(scopeCheck);
+		result.append(", scopeChecked: "); //$NON-NLS-1$
+		result.append(scopeChecked);
+		result.append(')');
+		return result.toString();
+	}
+
+} //FieldImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/FixedPrecisionDataTypeImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/FixedPrecisionDataTypeImpl.java
new file mode 100644
index 0000000..576b246
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/FixedPrecisionDataTypeImpl.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.FixedPrecisionDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.PrimitiveType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Fixed Precision Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class FixedPrecisionDataTypeImpl extends ExactNumericDataTypeImpl implements FixedPrecisionDataType {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected FixedPrecisionDataTypeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLDataTypesPackage.Literals.FIXED_PRECISION_DATA_TYPE;
+	}
+
+} //FixedPrecisionDataTypeImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/IntegerDataTypeImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/IntegerDataTypeImpl.java
new file mode 100644
index 0000000..3a70091
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/IntegerDataTypeImpl.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.IntegerDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.PrimitiveType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Integer Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class IntegerDataTypeImpl extends ExactNumericDataTypeImpl implements IntegerDataType {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IntegerDataTypeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLDataTypesPackage.Literals.INTEGER_DATA_TYPE;
+	}
+
+} //IntegerDataTypeImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/IntervalDataTypeImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/IntervalDataTypeImpl.java
new file mode 100644
index 0000000..62ca0a3
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/IntervalDataTypeImpl.java
@@ -0,0 +1,385 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.IntervalDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.IntervalQualifierType;
+import org.eclipse.datatools.modelbase.sql.datatypes.PrimitiveType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Interval Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.IntervalDataTypeImpl#getLeadingQualifier <em>Leading Qualifier</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.IntervalDataTypeImpl#getTrailingQualifier <em>Trailing Qualifier</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.IntervalDataTypeImpl#getLeadingFieldPrecision <em>Leading Field Precision</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.IntervalDataTypeImpl#getTrailingFieldPrecision <em>Trailing Field Precision</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.IntervalDataTypeImpl#getFractionalSecondsPrecision <em>Fractional Seconds Precision</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class IntervalDataTypeImpl extends PredefinedDataTypeImpl implements IntervalDataType {
+	/**
+	 * The default value of the '{@link #getLeadingQualifier() <em>Leading Qualifier</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLeadingQualifier()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final IntervalQualifierType LEADING_QUALIFIER_EDEFAULT = IntervalQualifierType.YEAR_LITERAL;
+
+	/**
+	 * The cached value of the '{@link #getLeadingQualifier() <em>Leading Qualifier</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLeadingQualifier()
+	 * @generated
+	 * @ordered
+	 */
+	protected IntervalQualifierType leadingQualifier = LEADING_QUALIFIER_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getTrailingQualifier() <em>Trailing Qualifier</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTrailingQualifier()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final IntervalQualifierType TRAILING_QUALIFIER_EDEFAULT = IntervalQualifierType.YEAR_LITERAL;
+
+	/**
+	 * The cached value of the '{@link #getTrailingQualifier() <em>Trailing Qualifier</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTrailingQualifier()
+	 * @generated
+	 * @ordered
+	 */
+	protected IntervalQualifierType trailingQualifier = TRAILING_QUALIFIER_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getLeadingFieldPrecision() <em>Leading Field Precision</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLeadingFieldPrecision()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int LEADING_FIELD_PRECISION_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getLeadingFieldPrecision() <em>Leading Field Precision</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLeadingFieldPrecision()
+	 * @generated
+	 * @ordered
+	 */
+	protected int leadingFieldPrecision = LEADING_FIELD_PRECISION_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getTrailingFieldPrecision() <em>Trailing Field Precision</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTrailingFieldPrecision()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int TRAILING_FIELD_PRECISION_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getTrailingFieldPrecision() <em>Trailing Field Precision</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTrailingFieldPrecision()
+	 * @generated
+	 * @ordered
+	 */
+	protected int trailingFieldPrecision = TRAILING_FIELD_PRECISION_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getFractionalSecondsPrecision() <em>Fractional Seconds Precision</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFractionalSecondsPrecision()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int FRACTIONAL_SECONDS_PRECISION_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getFractionalSecondsPrecision() <em>Fractional Seconds Precision</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFractionalSecondsPrecision()
+	 * @generated
+	 * @ordered
+	 */
+	protected int fractionalSecondsPrecision = FRACTIONAL_SECONDS_PRECISION_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IntervalDataTypeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLDataTypesPackage.Literals.INTERVAL_DATA_TYPE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IntervalQualifierType getLeadingQualifier() {
+		return leadingQualifier;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLeadingQualifier(IntervalQualifierType newLeadingQualifier) {
+		IntervalQualifierType oldLeadingQualifier = leadingQualifier;
+		leadingQualifier = newLeadingQualifier == null ? LEADING_QUALIFIER_EDEFAULT : newLeadingQualifier;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.INTERVAL_DATA_TYPE__LEADING_QUALIFIER, oldLeadingQualifier, leadingQualifier));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IntervalQualifierType getTrailingQualifier() {
+		return trailingQualifier;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTrailingQualifier(IntervalQualifierType newTrailingQualifier) {
+		IntervalQualifierType oldTrailingQualifier = trailingQualifier;
+		trailingQualifier = newTrailingQualifier == null ? TRAILING_QUALIFIER_EDEFAULT : newTrailingQualifier;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.INTERVAL_DATA_TYPE__TRAILING_QUALIFIER, oldTrailingQualifier, trailingQualifier));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getLeadingFieldPrecision() {
+		return leadingFieldPrecision;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLeadingFieldPrecision(int newLeadingFieldPrecision) {
+		int oldLeadingFieldPrecision = leadingFieldPrecision;
+		leadingFieldPrecision = newLeadingFieldPrecision;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.INTERVAL_DATA_TYPE__LEADING_FIELD_PRECISION, oldLeadingFieldPrecision, leadingFieldPrecision));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getTrailingFieldPrecision() {
+		return trailingFieldPrecision;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTrailingFieldPrecision(int newTrailingFieldPrecision) {
+		int oldTrailingFieldPrecision = trailingFieldPrecision;
+		trailingFieldPrecision = newTrailingFieldPrecision;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.INTERVAL_DATA_TYPE__TRAILING_FIELD_PRECISION, oldTrailingFieldPrecision, trailingFieldPrecision));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getFractionalSecondsPrecision() {
+		return fractionalSecondsPrecision;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setFractionalSecondsPrecision(int newFractionalSecondsPrecision) {
+		int oldFractionalSecondsPrecision = fractionalSecondsPrecision;
+		fractionalSecondsPrecision = newFractionalSecondsPrecision;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.INTERVAL_DATA_TYPE__FRACTIONAL_SECONDS_PRECISION, oldFractionalSecondsPrecision, fractionalSecondsPrecision));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLDataTypesPackage.INTERVAL_DATA_TYPE__LEADING_QUALIFIER:
+				return getLeadingQualifier();
+			case SQLDataTypesPackage.INTERVAL_DATA_TYPE__TRAILING_QUALIFIER:
+				return getTrailingQualifier();
+			case SQLDataTypesPackage.INTERVAL_DATA_TYPE__LEADING_FIELD_PRECISION:
+				return new Integer(getLeadingFieldPrecision());
+			case SQLDataTypesPackage.INTERVAL_DATA_TYPE__TRAILING_FIELD_PRECISION:
+				return new Integer(getTrailingFieldPrecision());
+			case SQLDataTypesPackage.INTERVAL_DATA_TYPE__FRACTIONAL_SECONDS_PRECISION:
+				return new Integer(getFractionalSecondsPrecision());
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLDataTypesPackage.INTERVAL_DATA_TYPE__LEADING_QUALIFIER:
+				setLeadingQualifier((IntervalQualifierType)newValue);
+				return;
+			case SQLDataTypesPackage.INTERVAL_DATA_TYPE__TRAILING_QUALIFIER:
+				setTrailingQualifier((IntervalQualifierType)newValue);
+				return;
+			case SQLDataTypesPackage.INTERVAL_DATA_TYPE__LEADING_FIELD_PRECISION:
+				setLeadingFieldPrecision(((Integer)newValue).intValue());
+				return;
+			case SQLDataTypesPackage.INTERVAL_DATA_TYPE__TRAILING_FIELD_PRECISION:
+				setTrailingFieldPrecision(((Integer)newValue).intValue());
+				return;
+			case SQLDataTypesPackage.INTERVAL_DATA_TYPE__FRACTIONAL_SECONDS_PRECISION:
+				setFractionalSecondsPrecision(((Integer)newValue).intValue());
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLDataTypesPackage.INTERVAL_DATA_TYPE__LEADING_QUALIFIER:
+				setLeadingQualifier(LEADING_QUALIFIER_EDEFAULT);
+				return;
+			case SQLDataTypesPackage.INTERVAL_DATA_TYPE__TRAILING_QUALIFIER:
+				setTrailingQualifier(TRAILING_QUALIFIER_EDEFAULT);
+				return;
+			case SQLDataTypesPackage.INTERVAL_DATA_TYPE__LEADING_FIELD_PRECISION:
+				setLeadingFieldPrecision(LEADING_FIELD_PRECISION_EDEFAULT);
+				return;
+			case SQLDataTypesPackage.INTERVAL_DATA_TYPE__TRAILING_FIELD_PRECISION:
+				setTrailingFieldPrecision(TRAILING_FIELD_PRECISION_EDEFAULT);
+				return;
+			case SQLDataTypesPackage.INTERVAL_DATA_TYPE__FRACTIONAL_SECONDS_PRECISION:
+				setFractionalSecondsPrecision(FRACTIONAL_SECONDS_PRECISION_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLDataTypesPackage.INTERVAL_DATA_TYPE__LEADING_QUALIFIER:
+				return leadingQualifier != LEADING_QUALIFIER_EDEFAULT;
+			case SQLDataTypesPackage.INTERVAL_DATA_TYPE__TRAILING_QUALIFIER:
+				return trailingQualifier != TRAILING_QUALIFIER_EDEFAULT;
+			case SQLDataTypesPackage.INTERVAL_DATA_TYPE__LEADING_FIELD_PRECISION:
+				return leadingFieldPrecision != LEADING_FIELD_PRECISION_EDEFAULT;
+			case SQLDataTypesPackage.INTERVAL_DATA_TYPE__TRAILING_FIELD_PRECISION:
+				return trailingFieldPrecision != TRAILING_FIELD_PRECISION_EDEFAULT;
+			case SQLDataTypesPackage.INTERVAL_DATA_TYPE__FRACTIONAL_SECONDS_PRECISION:
+				return fractionalSecondsPrecision != FRACTIONAL_SECONDS_PRECISION_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (leadingQualifier: "); //$NON-NLS-1$
+		result.append(leadingQualifier);
+		result.append(", trailingQualifier: "); //$NON-NLS-1$
+		result.append(trailingQualifier);
+		result.append(", leadingFieldPrecision: "); //$NON-NLS-1$
+		result.append(leadingFieldPrecision);
+		result.append(", trailingFieldPrecision: "); //$NON-NLS-1$
+		result.append(trailingFieldPrecision);
+		result.append(", fractionalSecondsPrecision: "); //$NON-NLS-1$
+		result.append(fractionalSecondsPrecision);
+		result.append(')');
+		return result.toString();
+	}
+
+} //IntervalDataTypeImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/MultisetDataTypeImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/MultisetDataTypeImpl.java
new file mode 100644
index 0000000..ed9f3bc
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/MultisetDataTypeImpl.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.MultisetDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Multiset Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class MultisetDataTypeImpl extends CollectionDataTypeImpl implements MultisetDataType {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected MultisetDataTypeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLDataTypesPackage.Literals.MULTISET_DATA_TYPE;
+	}
+
+} //MultisetDataTypeImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/NumericalDataTypeImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/NumericalDataTypeImpl.java
new file mode 100644
index 0000000..125de6d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/NumericalDataTypeImpl.java
@@ -0,0 +1,168 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.NumericalDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.PrimitiveType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Numerical Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.NumericalDataTypeImpl#getPrecision <em>Precision</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class NumericalDataTypeImpl extends PredefinedDataTypeImpl implements NumericalDataType {
+	/**
+	 * The default value of the '{@link #getPrecision() <em>Precision</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPrecision()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int PRECISION_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getPrecision() <em>Precision</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPrecision()
+	 * @generated
+	 * @ordered
+	 */
+	protected int precision = PRECISION_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected NumericalDataTypeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLDataTypesPackage.Literals.NUMERICAL_DATA_TYPE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getPrecision() {
+		return precision;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPrecision(int newPrecision) {
+		int oldPrecision = precision;
+		precision = newPrecision;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.NUMERICAL_DATA_TYPE__PRECISION, oldPrecision, precision));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLDataTypesPackage.NUMERICAL_DATA_TYPE__PRECISION:
+				return new Integer(getPrecision());
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLDataTypesPackage.NUMERICAL_DATA_TYPE__PRECISION:
+				setPrecision(((Integer)newValue).intValue());
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLDataTypesPackage.NUMERICAL_DATA_TYPE__PRECISION:
+				setPrecision(PRECISION_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLDataTypesPackage.NUMERICAL_DATA_TYPE__PRECISION:
+				return precision != PRECISION_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (precision: "); //$NON-NLS-1$
+		result.append(precision);
+		result.append(')');
+		return result.toString();
+	}
+
+} //NumericalDataTypeImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/PredefinedDataTypeImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/PredefinedDataTypeImpl.java
new file mode 100644
index 0000000..da1768e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/PredefinedDataTypeImpl.java
@@ -0,0 +1,168 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.PredefinedDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.PrimitiveType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Predefined Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.PredefinedDataTypeImpl#getPrimitiveType <em>Primitive Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class PredefinedDataTypeImpl extends SQLDataTypeImpl implements PredefinedDataType {
+	/**
+	 * The default value of the '{@link #getPrimitiveType() <em>Primitive Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPrimitiveType()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final PrimitiveType PRIMITIVE_TYPE_EDEFAULT = PrimitiveType.CHARACTER_LITERAL;
+
+	/**
+	 * The cached value of the '{@link #getPrimitiveType() <em>Primitive Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPrimitiveType()
+	 * @generated
+	 * @ordered
+	 */
+	protected PrimitiveType primitiveType = PRIMITIVE_TYPE_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected PredefinedDataTypeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLDataTypesPackage.Literals.PREDEFINED_DATA_TYPE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PrimitiveType getPrimitiveType() {
+		return primitiveType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPrimitiveType(PrimitiveType newPrimitiveType) {
+		PrimitiveType oldPrimitiveType = primitiveType;
+		primitiveType = newPrimitiveType == null ? PRIMITIVE_TYPE_EDEFAULT : newPrimitiveType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.PREDEFINED_DATA_TYPE__PRIMITIVE_TYPE, oldPrimitiveType, primitiveType));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLDataTypesPackage.PREDEFINED_DATA_TYPE__PRIMITIVE_TYPE:
+				return getPrimitiveType();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLDataTypesPackage.PREDEFINED_DATA_TYPE__PRIMITIVE_TYPE:
+				setPrimitiveType((PrimitiveType)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLDataTypesPackage.PREDEFINED_DATA_TYPE__PRIMITIVE_TYPE:
+				setPrimitiveType(PRIMITIVE_TYPE_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLDataTypesPackage.PREDEFINED_DATA_TYPE__PRIMITIVE_TYPE:
+				return primitiveType != PRIMITIVE_TYPE_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (primitiveType: "); //$NON-NLS-1$
+		result.append(primitiveType);
+		result.append(')');
+		return result.toString();
+	}
+
+} //PredefinedDataTypeImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/ReferenceDataTypeImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/ReferenceDataTypeImpl.java
new file mode 100644
index 0000000..3e18d59
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/ReferenceDataTypeImpl.java
@@ -0,0 +1,222 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.ReferenceDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Reference Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.ReferenceDataTypeImpl#getScopeTable <em>Scope Table</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.ReferenceDataTypeImpl#getReferencedType <em>Referenced Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class ReferenceDataTypeImpl extends ConstructedDataTypeImpl implements ReferenceDataType {
+	/**
+	 * The cached value of the '{@link #getScopeTable() <em>Scope Table</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getScopeTable()
+	 * @generated
+	 * @ordered
+	 */
+	protected Table scopeTable;
+
+	/**
+	 * The cached value of the '{@link #getReferencedType() <em>Referenced Type</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getReferencedType()
+	 * @generated
+	 * @ordered
+	 */
+	protected StructuredUserDefinedType referencedType;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ReferenceDataTypeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLDataTypesPackage.Literals.REFERENCE_DATA_TYPE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Table getScopeTable() {
+		if (scopeTable != null && scopeTable.eIsProxy()) {
+			InternalEObject oldScopeTable = (InternalEObject)scopeTable;
+			scopeTable = (Table)eResolveProxy(oldScopeTable);
+			if (scopeTable != oldScopeTable) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SQLDataTypesPackage.REFERENCE_DATA_TYPE__SCOPE_TABLE, oldScopeTable, scopeTable));
+			}
+		}
+		return scopeTable;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Table basicGetScopeTable() {
+		return scopeTable;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setScopeTable(Table newScopeTable) {
+		Table oldScopeTable = scopeTable;
+		scopeTable = newScopeTable;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.REFERENCE_DATA_TYPE__SCOPE_TABLE, oldScopeTable, scopeTable));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public StructuredUserDefinedType getReferencedType() {
+		if (referencedType != null && referencedType.eIsProxy()) {
+			InternalEObject oldReferencedType = (InternalEObject)referencedType;
+			referencedType = (StructuredUserDefinedType)eResolveProxy(oldReferencedType);
+			if (referencedType != oldReferencedType) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SQLDataTypesPackage.REFERENCE_DATA_TYPE__REFERENCED_TYPE, oldReferencedType, referencedType));
+			}
+		}
+		return referencedType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public StructuredUserDefinedType basicGetReferencedType() {
+		return referencedType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setReferencedType(StructuredUserDefinedType newReferencedType) {
+		StructuredUserDefinedType oldReferencedType = referencedType;
+		referencedType = newReferencedType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.REFERENCE_DATA_TYPE__REFERENCED_TYPE, oldReferencedType, referencedType));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLDataTypesPackage.REFERENCE_DATA_TYPE__SCOPE_TABLE:
+				if (resolve) return getScopeTable();
+				return basicGetScopeTable();
+			case SQLDataTypesPackage.REFERENCE_DATA_TYPE__REFERENCED_TYPE:
+				if (resolve) return getReferencedType();
+				return basicGetReferencedType();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLDataTypesPackage.REFERENCE_DATA_TYPE__SCOPE_TABLE:
+				setScopeTable((Table)newValue);
+				return;
+			case SQLDataTypesPackage.REFERENCE_DATA_TYPE__REFERENCED_TYPE:
+				setReferencedType((StructuredUserDefinedType)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLDataTypesPackage.REFERENCE_DATA_TYPE__SCOPE_TABLE:
+				setScopeTable((Table)null);
+				return;
+			case SQLDataTypesPackage.REFERENCE_DATA_TYPE__REFERENCED_TYPE:
+				setReferencedType((StructuredUserDefinedType)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLDataTypesPackage.REFERENCE_DATA_TYPE__SCOPE_TABLE:
+				return scopeTable != null;
+			case SQLDataTypesPackage.REFERENCE_DATA_TYPE__REFERENCED_TYPE:
+				return referencedType != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //ReferenceDataTypeImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/RowDataTypeImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/RowDataTypeImpl.java
new file mode 100644
index 0000000..c7222e0
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/RowDataTypeImpl.java
@@ -0,0 +1,148 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.Field;
+import org.eclipse.datatools.modelbase.sql.datatypes.RowDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Row Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.RowDataTypeImpl#getFields <em>Fields</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class RowDataTypeImpl extends ConstructedDataTypeImpl implements RowDataType {
+	/**
+	 * The cached value of the '{@link #getFields() <em>Fields</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFields()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList fields;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected RowDataTypeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLDataTypesPackage.Literals.ROW_DATA_TYPE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getFields() {
+		if (fields == null) {
+			fields = new EObjectContainmentEList(Field.class, this, SQLDataTypesPackage.ROW_DATA_TYPE__FIELDS);
+		}
+		return fields;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLDataTypesPackage.ROW_DATA_TYPE__FIELDS:
+				return ((InternalEList)getFields()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLDataTypesPackage.ROW_DATA_TYPE__FIELDS:
+				return getFields();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLDataTypesPackage.ROW_DATA_TYPE__FIELDS:
+				getFields().clear();
+				getFields().addAll((Collection)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLDataTypesPackage.ROW_DATA_TYPE__FIELDS:
+				getFields().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLDataTypesPackage.ROW_DATA_TYPE__FIELDS:
+				return fields != null && !fields.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //RowDataTypeImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/SQLDataTypeImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/SQLDataTypeImpl.java
new file mode 100644
index 0000000..aeb0705
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/SQLDataTypeImpl.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class SQLDataTypeImpl extends DataTypeImpl implements SQLDataType {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SQLDataTypeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLDataTypesPackage.Literals.SQL_DATA_TYPE;
+	}
+
+} //SQLDataTypeImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/SQLDataTypesFactoryImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/SQLDataTypesFactoryImpl.java
new file mode 100644
index 0000000..a5f097d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/SQLDataTypesFactoryImpl.java
@@ -0,0 +1,574 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes.impl;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.*;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SQLDataTypesFactoryImpl extends EFactoryImpl implements SQLDataTypesFactory {
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static SQLDataTypesFactory init() {
+		try {
+			SQLDataTypesFactory theSQLDataTypesFactory = (SQLDataTypesFactory)EPackage.Registry.INSTANCE.getEFactory("http:///org/eclipse/datatools/modelbase/sql/datatypes.ecore"); //$NON-NLS-1$ 
+			if (theSQLDataTypesFactory != null) {
+				return theSQLDataTypesFactory;
+			}
+		}
+		catch (Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new SQLDataTypesFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLDataTypesFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+			case SQLDataTypesPackage.CHARACTER_STRING_DATA_TYPE: return createCharacterStringDataType();
+			case SQLDataTypesPackage.ROW_DATA_TYPE: return createRowDataType();
+			case SQLDataTypesPackage.BOOLEAN_DATA_TYPE: return createBooleanDataType();
+			case SQLDataTypesPackage.INTERVAL_DATA_TYPE: return createIntervalDataType();
+			case SQLDataTypesPackage.BINARY_STRING_DATA_TYPE: return createBinaryStringDataType();
+			case SQLDataTypesPackage.CHARACTER_SET: return createCharacterSet();
+			case SQLDataTypesPackage.TIME_DATA_TYPE: return createTimeDataType();
+			case SQLDataTypesPackage.DISTINCT_USER_DEFINED_TYPE: return createDistinctUserDefinedType();
+			case SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE: return createStructuredUserDefinedType();
+			case SQLDataTypesPackage.ATTRIBUTE_DEFINITION: return createAttributeDefinition();
+			case SQLDataTypesPackage.FIXED_PRECISION_DATA_TYPE: return createFixedPrecisionDataType();
+			case SQLDataTypesPackage.DOMAIN: return createDomain();
+			case SQLDataTypesPackage.FIELD: return createField();
+			case SQLDataTypesPackage.DATA_LINK_DATA_TYPE: return createDataLinkDataType();
+			case SQLDataTypesPackage.USER_DEFINED_TYPE_ORDERING: return createUserDefinedTypeOrdering();
+			case SQLDataTypesPackage.DATE_DATA_TYPE: return createDateDataType();
+			case SQLDataTypesPackage.APPROXIMATE_NUMERIC_DATA_TYPE: return createApproximateNumericDataType();
+			case SQLDataTypesPackage.INTEGER_DATA_TYPE: return createIntegerDataType();
+			case SQLDataTypesPackage.XML_DATA_TYPE: return createXMLDataType();
+			case SQLDataTypesPackage.ELEMENT_TYPE: return createElementType();
+			default:
+				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object createFromString(EDataType eDataType, String initialValue) {
+		switch (eDataType.getClassifierID()) {
+			case SQLDataTypesPackage.COERCIBILITY_TYPE:
+				return createCoercibilityTypeFromString(eDataType, initialValue);
+			case SQLDataTypesPackage.INTERVAL_QUALIFIER_TYPE:
+				return createIntervalQualifierTypeFromString(eDataType, initialValue);
+			case SQLDataTypesPackage.ORDERING_TYPE:
+				return createOrderingTypeFromString(eDataType, initialValue);
+			case SQLDataTypesPackage.ORDERING_CATEGORY_TYPE:
+				return createOrderingCategoryTypeFromString(eDataType, initialValue);
+			case SQLDataTypesPackage.PRIMITIVE_TYPE:
+				return createPrimitiveTypeFromString(eDataType, initialValue);
+			case SQLDataTypesPackage.LINK_CONTROL_OPTION:
+				return createLinkControlOptionFromString(eDataType, initialValue);
+			case SQLDataTypesPackage.INTEGRITY_CONTROL_OPTION:
+				return createIntegrityControlOptionFromString(eDataType, initialValue);
+			case SQLDataTypesPackage.READ_PERMISSION_OPTION:
+				return createReadPermissionOptionFromString(eDataType, initialValue);
+			case SQLDataTypesPackage.WRITE_PERMISSION_OPTION:
+				return createWritePermissionOptionFromString(eDataType, initialValue);
+			case SQLDataTypesPackage.UNLINK_OPTION:
+				return createUnlinkOptionFromString(eDataType, initialValue);
+			default:
+				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertToString(EDataType eDataType, Object instanceValue) {
+		switch (eDataType.getClassifierID()) {
+			case SQLDataTypesPackage.COERCIBILITY_TYPE:
+				return convertCoercibilityTypeToString(eDataType, instanceValue);
+			case SQLDataTypesPackage.INTERVAL_QUALIFIER_TYPE:
+				return convertIntervalQualifierTypeToString(eDataType, instanceValue);
+			case SQLDataTypesPackage.ORDERING_TYPE:
+				return convertOrderingTypeToString(eDataType, instanceValue);
+			case SQLDataTypesPackage.ORDERING_CATEGORY_TYPE:
+				return convertOrderingCategoryTypeToString(eDataType, instanceValue);
+			case SQLDataTypesPackage.PRIMITIVE_TYPE:
+				return convertPrimitiveTypeToString(eDataType, instanceValue);
+			case SQLDataTypesPackage.LINK_CONTROL_OPTION:
+				return convertLinkControlOptionToString(eDataType, instanceValue);
+			case SQLDataTypesPackage.INTEGRITY_CONTROL_OPTION:
+				return convertIntegrityControlOptionToString(eDataType, instanceValue);
+			case SQLDataTypesPackage.READ_PERMISSION_OPTION:
+				return convertReadPermissionOptionToString(eDataType, instanceValue);
+			case SQLDataTypesPackage.WRITE_PERMISSION_OPTION:
+				return convertWritePermissionOptionToString(eDataType, instanceValue);
+			case SQLDataTypesPackage.UNLINK_OPTION:
+				return convertUnlinkOptionToString(eDataType, instanceValue);
+			default:
+				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public CharacterStringDataType createCharacterStringDataType() {
+		CharacterStringDataTypeImpl characterStringDataType = new CharacterStringDataTypeImpl();
+		return characterStringDataType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public RowDataType createRowDataType() {
+		RowDataTypeImpl rowDataType = new RowDataTypeImpl();
+		return rowDataType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BooleanDataType createBooleanDataType() {
+		BooleanDataTypeImpl booleanDataType = new BooleanDataTypeImpl();
+		return booleanDataType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IntervalDataType createIntervalDataType() {
+		IntervalDataTypeImpl intervalDataType = new IntervalDataTypeImpl();
+		return intervalDataType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BinaryStringDataType createBinaryStringDataType() {
+		BinaryStringDataTypeImpl binaryStringDataType = new BinaryStringDataTypeImpl();
+		return binaryStringDataType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public CharacterSet createCharacterSet() {
+		CharacterSetImpl characterSet = new CharacterSetImpl();
+		return characterSet;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TimeDataType createTimeDataType() {
+		TimeDataTypeImpl timeDataType = new TimeDataTypeImpl();
+		return timeDataType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DistinctUserDefinedType createDistinctUserDefinedType() {
+		DistinctUserDefinedTypeImpl distinctUserDefinedType = new DistinctUserDefinedTypeImpl();
+		return distinctUserDefinedType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public StructuredUserDefinedType createStructuredUserDefinedType() {
+		StructuredUserDefinedTypeImpl structuredUserDefinedType = new StructuredUserDefinedTypeImpl();
+		return structuredUserDefinedType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AttributeDefinition createAttributeDefinition() {
+		AttributeDefinitionImpl attributeDefinition = new AttributeDefinitionImpl();
+		return attributeDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public FixedPrecisionDataType createFixedPrecisionDataType() {
+		FixedPrecisionDataTypeImpl fixedPrecisionDataType = new FixedPrecisionDataTypeImpl();
+		return fixedPrecisionDataType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Domain createDomain() {
+		DomainImpl domain = new DomainImpl();
+		return domain;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Field createField() {
+		FieldImpl field = new FieldImpl();
+		return field;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DataLinkDataType createDataLinkDataType() {
+		DataLinkDataTypeImpl dataLinkDataType = new DataLinkDataTypeImpl();
+		return dataLinkDataType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UserDefinedTypeOrdering createUserDefinedTypeOrdering() {
+		UserDefinedTypeOrderingImpl userDefinedTypeOrdering = new UserDefinedTypeOrderingImpl();
+		return userDefinedTypeOrdering;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DateDataType createDateDataType() {
+		DateDataTypeImpl dateDataType = new DateDataTypeImpl();
+		return dateDataType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ApproximateNumericDataType createApproximateNumericDataType() {
+		ApproximateNumericDataTypeImpl approximateNumericDataType = new ApproximateNumericDataTypeImpl();
+		return approximateNumericDataType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IntegerDataType createIntegerDataType() {
+		IntegerDataTypeImpl integerDataType = new IntegerDataTypeImpl();
+		return integerDataType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public XMLDataType createXMLDataType() {
+		XMLDataTypeImpl xmlDataType = new XMLDataTypeImpl();
+		return xmlDataType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ElementType createElementType() {
+		ElementTypeImpl elementType = new ElementTypeImpl();
+		return elementType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public CoercibilityType createCoercibilityTypeFromString(EDataType eDataType, String initialValue) {
+		CoercibilityType result = CoercibilityType.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertCoercibilityTypeToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IntervalQualifierType createIntervalQualifierTypeFromString(EDataType eDataType, String initialValue) {
+		IntervalQualifierType result = IntervalQualifierType.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertIntervalQualifierTypeToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OrderingType createOrderingTypeFromString(EDataType eDataType, String initialValue) {
+		OrderingType result = OrderingType.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertOrderingTypeToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OrderingCategoryType createOrderingCategoryTypeFromString(EDataType eDataType, String initialValue) {
+		OrderingCategoryType result = OrderingCategoryType.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertOrderingCategoryTypeToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PrimitiveType createPrimitiveTypeFromString(EDataType eDataType, String initialValue) {
+		PrimitiveType result = PrimitiveType.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertPrimitiveTypeToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public LinkControlOption createLinkControlOptionFromString(EDataType eDataType, String initialValue) {
+		LinkControlOption result = LinkControlOption.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertLinkControlOptionToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IntegrityControlOption createIntegrityControlOptionFromString(EDataType eDataType, String initialValue) {
+		IntegrityControlOption result = IntegrityControlOption.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertIntegrityControlOptionToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ReadPermissionOption createReadPermissionOptionFromString(EDataType eDataType, String initialValue) {
+		ReadPermissionOption result = ReadPermissionOption.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertReadPermissionOptionToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public WritePermissionOption createWritePermissionOptionFromString(EDataType eDataType, String initialValue) {
+		WritePermissionOption result = WritePermissionOption.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertWritePermissionOptionToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UnlinkOption createUnlinkOptionFromString(EDataType eDataType, String initialValue) {
+		UnlinkOption result = UnlinkOption.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertUnlinkOptionToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLDataTypesPackage getSQLDataTypesPackage() {
+		return (SQLDataTypesPackage)getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @deprecated
+	 * @generated
+	 */
+	public static SQLDataTypesPackage getPackage() {
+		return SQLDataTypesPackage.eINSTANCE;
+	}
+
+} //SQLDataTypesFactoryImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/SQLDataTypesPackageImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/SQLDataTypesPackageImpl.java
new file mode 100644
index 0000000..9a5a71a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/SQLDataTypesPackageImpl.java
@@ -0,0 +1,1732 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes.impl;
+
+import org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.impl.SQLAccessControlPackageImpl;
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;
+import org.eclipse.datatools.modelbase.sql.constraints.impl.SQLConstraintsPackageImpl;
+import org.eclipse.datatools.modelbase.sql.datatypes.ApproximateNumericDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.ArrayDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.AttributeDefinition;
+import org.eclipse.datatools.modelbase.sql.datatypes.BinaryStringDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.BooleanDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.CharacterSet;
+import org.eclipse.datatools.modelbase.sql.datatypes.CharacterStringDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.CoercibilityType;
+import org.eclipse.datatools.modelbase.sql.datatypes.CollectionDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.ConstructedDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.DataLinkDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.DateDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.DistinctUserDefinedType;
+import org.eclipse.datatools.modelbase.sql.datatypes.Domain;
+import org.eclipse.datatools.modelbase.sql.datatypes.ElementType;
+import org.eclipse.datatools.modelbase.sql.datatypes.ExactNumericDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.Field;
+import org.eclipse.datatools.modelbase.sql.datatypes.FixedPrecisionDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.IntegerDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.IntegrityControlOption;
+import org.eclipse.datatools.modelbase.sql.datatypes.IntervalDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.IntervalQualifierType;
+import org.eclipse.datatools.modelbase.sql.datatypes.LinkControlOption;
+import org.eclipse.datatools.modelbase.sql.datatypes.MultisetDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.NumericalDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.OrderingCategoryType;
+import org.eclipse.datatools.modelbase.sql.datatypes.OrderingType;
+import org.eclipse.datatools.modelbase.sql.datatypes.PredefinedDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.PrimitiveType;
+import org.eclipse.datatools.modelbase.sql.datatypes.ReadPermissionOption;
+import org.eclipse.datatools.modelbase.sql.datatypes.ReferenceDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.RowDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesFactory;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType;
+import org.eclipse.datatools.modelbase.sql.datatypes.TimeDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.UnlinkOption;
+import org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType;
+import org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedTypeOrdering;
+import org.eclipse.datatools.modelbase.sql.datatypes.WritePermissionOption;
+import org.eclipse.datatools.modelbase.sql.datatypes.XMLDataType;
+import org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsPackage;
+import org.eclipse.datatools.modelbase.sql.expressions.impl.SQLExpressionsPackageImpl;
+import org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage;
+import org.eclipse.datatools.modelbase.sql.routines.impl.SQLRoutinesPackageImpl;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLSchemaPackageImpl;
+import org.eclipse.datatools.modelbase.sql.statements.SQLStatementsPackage;
+import org.eclipse.datatools.modelbase.sql.statements.impl.SQLStatementsPackageImpl;
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+import org.eclipse.datatools.modelbase.sql.tables.impl.SQLTablesPackageImpl;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcorePackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.emf.ecore.impl.EcorePackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SQLDataTypesPackageImpl extends EPackageImpl implements SQLDataTypesPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass userDefinedTypeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass dataTypeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass predefinedDataTypeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass collectionDataTypeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass numericalDataTypeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass characterStringDataTypeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass rowDataTypeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass arrayDataTypeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass multisetDataTypeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass booleanDataTypeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass intervalDataTypeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass binaryStringDataTypeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass characterSetEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass timeDataTypeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass distinctUserDefinedTypeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass structuredUserDefinedTypeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass attributeDefinitionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass fixedPrecisionDataTypeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass domainEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass fieldEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass referenceDataTypeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass constructedDataTypeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass sqlDataTypeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass dataLinkDataTypeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass userDefinedTypeOrderingEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass dateDataTypeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass exactNumericDataTypeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass approximateNumericDataTypeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass integerDataTypeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass xmlDataTypeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass elementTypeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum coercibilityTypeEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum intervalQualifierTypeEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum orderingTypeEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum orderingCategoryTypeEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum primitiveTypeEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum linkControlOptionEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum integrityControlOptionEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum readPermissionOptionEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum writePermissionOptionEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum unlinkOptionEEnum = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with
+	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+	 * package URI value.
+	 * <p>Note: the correct way to create the package is via the static
+	 * factory method {@link #init init()}, which also performs
+	 * initialization of the package, or returns the registered package,
+	 * if one already exists.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private SQLDataTypesPackageImpl() {
+		super(eNS_URI, SQLDataTypesFactory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this
+	 * model, and for any others upon which it depends.  Simple
+	 * dependencies are satisfied by calling this method on all
+	 * dependent packages before doing anything else.  This method drives
+	 * initialization for interdependent packages directly, in parallel
+	 * with this package, itself.
+	 * <p>Of this package and its interdependencies, all packages which
+	 * have not yet been registered by their URI values are first created
+	 * and registered.  The packages are then initialized in two steps:
+	 * meta-model objects for all of the packages are created before any
+	 * are initialized, since one package's meta-model objects may refer to
+	 * those of another.
+	 * <p>Invocation of this method will not affect any packages that have
+	 * already been initialized.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static SQLDataTypesPackage init() {
+		if (isInited) return (SQLDataTypesPackage)EPackage.Registry.INSTANCE.getEPackage(SQLDataTypesPackage.eNS_URI);
+
+		// Obtain or create and register package
+		SQLDataTypesPackageImpl theSQLDataTypesPackage = (SQLDataTypesPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(eNS_URI) instanceof SQLDataTypesPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(eNS_URI) : new SQLDataTypesPackageImpl());
+
+		isInited = true;
+
+		// Initialize simple dependencies
+		EcorePackage.eINSTANCE.eClass();
+
+		// Obtain or create and register interdependencies
+		SQLSchemaPackageImpl theSQLSchemaPackage = (SQLSchemaPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLSchemaPackage.eNS_URI) instanceof SQLSchemaPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLSchemaPackage.eNS_URI) : SQLSchemaPackage.eINSTANCE);
+		SQLConstraintsPackageImpl theSQLConstraintsPackage = (SQLConstraintsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLConstraintsPackage.eNS_URI) instanceof SQLConstraintsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLConstraintsPackage.eNS_URI) : SQLConstraintsPackage.eINSTANCE);
+		SQLExpressionsPackageImpl theSQLExpressionsPackage = (SQLExpressionsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLExpressionsPackage.eNS_URI) instanceof SQLExpressionsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLExpressionsPackage.eNS_URI) : SQLExpressionsPackage.eINSTANCE);
+		SQLRoutinesPackageImpl theSQLRoutinesPackage = (SQLRoutinesPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLRoutinesPackage.eNS_URI) instanceof SQLRoutinesPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLRoutinesPackage.eNS_URI) : SQLRoutinesPackage.eINSTANCE);
+		SQLStatementsPackageImpl theSQLStatementsPackage = (SQLStatementsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLStatementsPackage.eNS_URI) instanceof SQLStatementsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLStatementsPackage.eNS_URI) : SQLStatementsPackage.eINSTANCE);
+		SQLTablesPackageImpl theSQLTablesPackage = (SQLTablesPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLTablesPackage.eNS_URI) instanceof SQLTablesPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLTablesPackage.eNS_URI) : SQLTablesPackage.eINSTANCE);
+		SQLAccessControlPackageImpl theSQLAccessControlPackage = (SQLAccessControlPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLAccessControlPackage.eNS_URI) instanceof SQLAccessControlPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLAccessControlPackage.eNS_URI) : SQLAccessControlPackage.eINSTANCE);
+
+		// Create package meta-data objects
+		theSQLDataTypesPackage.createPackageContents();
+		theSQLSchemaPackage.createPackageContents();
+		theSQLConstraintsPackage.createPackageContents();
+		theSQLExpressionsPackage.createPackageContents();
+		theSQLRoutinesPackage.createPackageContents();
+		theSQLStatementsPackage.createPackageContents();
+		theSQLTablesPackage.createPackageContents();
+		theSQLAccessControlPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theSQLDataTypesPackage.initializePackageContents();
+		theSQLSchemaPackage.initializePackageContents();
+		theSQLConstraintsPackage.initializePackageContents();
+		theSQLExpressionsPackage.initializePackageContents();
+		theSQLRoutinesPackage.initializePackageContents();
+		theSQLStatementsPackage.initializePackageContents();
+		theSQLTablesPackage.initializePackageContents();
+		theSQLAccessControlPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theSQLDataTypesPackage.freeze();
+
+		return theSQLDataTypesPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getUserDefinedType() {
+		return userDefinedTypeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getUserDefinedType_Schema() {
+		return (EReference)userDefinedTypeEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getUserDefinedType_Ordering() {
+		return (EReference)userDefinedTypeEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getDataType() {
+		return dataTypeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getPredefinedDataType() {
+		return predefinedDataTypeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPredefinedDataType_PrimitiveType() {
+		return (EAttribute)predefinedDataTypeEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getCollectionDataType() {
+		return collectionDataTypeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getCollectionDataType_ElementType() {
+		return (EReference)collectionDataTypeEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getNumericalDataType() {
+		return numericalDataTypeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getNumericalDataType_Precision() {
+		return (EAttribute)numericalDataTypeEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getCharacterStringDataType() {
+		return characterStringDataTypeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getCharacterStringDataType_Length() {
+		return (EAttribute)characterStringDataTypeEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getCharacterStringDataType_Coercibility() {
+		return (EAttribute)characterStringDataTypeEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getCharacterStringDataType_FixedLength() {
+		return (EAttribute)characterStringDataTypeEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getCharacterStringDataType_CollationName() {
+		return (EAttribute)characterStringDataTypeEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getCharacterStringDataType_CharacterSet() {
+		return (EReference)characterStringDataTypeEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getRowDataType() {
+		return rowDataTypeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getRowDataType_Fields() {
+		return (EReference)rowDataTypeEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getArrayDataType() {
+		return arrayDataTypeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getArrayDataType_MaxCardinality() {
+		return (EAttribute)arrayDataTypeEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getMultisetDataType() {
+		return multisetDataTypeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getBooleanDataType() {
+		return booleanDataTypeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getIntervalDataType() {
+		return intervalDataTypeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIntervalDataType_LeadingQualifier() {
+		return (EAttribute)intervalDataTypeEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIntervalDataType_TrailingQualifier() {
+		return (EAttribute)intervalDataTypeEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIntervalDataType_LeadingFieldPrecision() {
+		return (EAttribute)intervalDataTypeEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIntervalDataType_TrailingFieldPrecision() {
+		return (EAttribute)intervalDataTypeEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIntervalDataType_FractionalSecondsPrecision() {
+		return (EAttribute)intervalDataTypeEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getBinaryStringDataType() {
+		return binaryStringDataTypeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getBinaryStringDataType_Length() {
+		return (EAttribute)binaryStringDataTypeEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getCharacterSet() {
+		return characterSetEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getCharacterSet_Repertoire() {
+		return (EAttribute)characterSetEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getCharacterSet_DefaultCollation() {
+		return (EAttribute)characterSetEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getCharacterSet_Encoding() {
+		return (EAttribute)characterSetEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getCharacterSet_CharacterStringDataType() {
+		return (EReference)characterSetEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getCharacterSet_Schema() {
+		return (EReference)characterSetEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTimeDataType() {
+		return timeDataTypeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTimeDataType_FractionalSecondsPrecision() {
+		return (EAttribute)timeDataTypeEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTimeDataType_TimeZone() {
+		return (EAttribute)timeDataTypeEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getDistinctUserDefinedType() {
+		return distinctUserDefinedTypeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDistinctUserDefinedType_PredefinedRepresentation() {
+		return (EReference)distinctUserDefinedTypeEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getStructuredUserDefinedType() {
+		return structuredUserDefinedTypeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getStructuredUserDefinedType_Instantiable() {
+		return (EAttribute)structuredUserDefinedTypeEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getStructuredUserDefinedType_Final() {
+		return (EAttribute)structuredUserDefinedTypeEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getStructuredUserDefinedType_Super() {
+		return (EReference)structuredUserDefinedTypeEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getStructuredUserDefinedType_Sub() {
+		return (EReference)structuredUserDefinedTypeEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getStructuredUserDefinedType_Attributes() {
+		return (EReference)structuredUserDefinedTypeEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getStructuredUserDefinedType_Methods() {
+		return (EReference)structuredUserDefinedTypeEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getAttributeDefinition() {
+		return attributeDefinitionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getAttributeDefinition_ScopeCheck() {
+		return (EAttribute)attributeDefinitionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getAttributeDefinition_ScopeChecked() {
+		return (EAttribute)attributeDefinitionEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getAttributeDefinition_DefaultValue() {
+		return (EAttribute)attributeDefinitionEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getFixedPrecisionDataType() {
+		return fixedPrecisionDataTypeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getDomain() {
+		return domainEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDomain_Constraint() {
+		return (EReference)domainEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDomain_DefaultValue() {
+		return (EAttribute)domainEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getField() {
+		return fieldEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getField_ScopeCheck() {
+		return (EAttribute)fieldEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getField_ScopeChecked() {
+		return (EAttribute)fieldEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getReferenceDataType() {
+		return referenceDataTypeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getReferenceDataType_ScopeTable() {
+		return (EReference)referenceDataTypeEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getReferenceDataType_ReferencedType() {
+		return (EReference)referenceDataTypeEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getConstructedDataType() {
+		return constructedDataTypeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getSQLDataType() {
+		return sqlDataTypeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getDataLinkDataType() {
+		return dataLinkDataTypeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDataLinkDataType_Length() {
+		return (EAttribute)dataLinkDataTypeEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDataLinkDataType_LinkControl() {
+		return (EAttribute)dataLinkDataTypeEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDataLinkDataType_IntegrityControl() {
+		return (EAttribute)dataLinkDataTypeEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDataLinkDataType_ReadPermission() {
+		return (EAttribute)dataLinkDataTypeEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDataLinkDataType_WritePermission() {
+		return (EAttribute)dataLinkDataTypeEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDataLinkDataType_Recovery() {
+		return (EAttribute)dataLinkDataTypeEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDataLinkDataType_Unlink() {
+		return (EAttribute)dataLinkDataTypeEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getUserDefinedTypeOrdering() {
+		return userDefinedTypeOrderingEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getUserDefinedTypeOrdering_OrderingForm() {
+		return (EAttribute)userDefinedTypeOrderingEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getUserDefinedTypeOrdering_OrderingCategory() {
+		return (EAttribute)userDefinedTypeOrderingEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getUserDefinedTypeOrdering_OrderingRoutine() {
+		return (EReference)userDefinedTypeOrderingEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getDateDataType() {
+		return dateDataTypeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getExactNumericDataType() {
+		return exactNumericDataTypeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getExactNumericDataType_Scale() {
+		return (EAttribute)exactNumericDataTypeEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getApproximateNumericDataType() {
+		return approximateNumericDataTypeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getIntegerDataType() {
+		return integerDataTypeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getXMLDataType() {
+		return xmlDataTypeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getElementType() {
+		return elementTypeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getElementType_CollectionDataType() {
+		return (EReference)elementTypeEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getCoercibilityType() {
+		return coercibilityTypeEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getIntervalQualifierType() {
+		return intervalQualifierTypeEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getOrderingType() {
+		return orderingTypeEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getOrderingCategoryType() {
+		return orderingCategoryTypeEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getPrimitiveType() {
+		return primitiveTypeEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getLinkControlOption() {
+		return linkControlOptionEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getIntegrityControlOption() {
+		return integrityControlOptionEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getReadPermissionOption() {
+		return readPermissionOptionEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getWritePermissionOption() {
+		return writePermissionOptionEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getUnlinkOption() {
+		return unlinkOptionEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLDataTypesFactory getSQLDataTypesFactory() {
+		return (SQLDataTypesFactory)getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package.  This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated) return;
+		isCreated = true;
+
+		// Create classes and their features
+		userDefinedTypeEClass = createEClass(USER_DEFINED_TYPE);
+		createEReference(userDefinedTypeEClass, USER_DEFINED_TYPE__SCHEMA);
+		createEReference(userDefinedTypeEClass, USER_DEFINED_TYPE__ORDERING);
+
+		dataTypeEClass = createEClass(DATA_TYPE);
+
+		predefinedDataTypeEClass = createEClass(PREDEFINED_DATA_TYPE);
+		createEAttribute(predefinedDataTypeEClass, PREDEFINED_DATA_TYPE__PRIMITIVE_TYPE);
+
+		collectionDataTypeEClass = createEClass(COLLECTION_DATA_TYPE);
+		createEReference(collectionDataTypeEClass, COLLECTION_DATA_TYPE__ELEMENT_TYPE);
+
+		numericalDataTypeEClass = createEClass(NUMERICAL_DATA_TYPE);
+		createEAttribute(numericalDataTypeEClass, NUMERICAL_DATA_TYPE__PRECISION);
+
+		characterStringDataTypeEClass = createEClass(CHARACTER_STRING_DATA_TYPE);
+		createEAttribute(characterStringDataTypeEClass, CHARACTER_STRING_DATA_TYPE__LENGTH);
+		createEAttribute(characterStringDataTypeEClass, CHARACTER_STRING_DATA_TYPE__COERCIBILITY);
+		createEAttribute(characterStringDataTypeEClass, CHARACTER_STRING_DATA_TYPE__FIXED_LENGTH);
+		createEAttribute(characterStringDataTypeEClass, CHARACTER_STRING_DATA_TYPE__COLLATION_NAME);
+		createEReference(characterStringDataTypeEClass, CHARACTER_STRING_DATA_TYPE__CHARACTER_SET);
+
+		rowDataTypeEClass = createEClass(ROW_DATA_TYPE);
+		createEReference(rowDataTypeEClass, ROW_DATA_TYPE__FIELDS);
+
+		arrayDataTypeEClass = createEClass(ARRAY_DATA_TYPE);
+		createEAttribute(arrayDataTypeEClass, ARRAY_DATA_TYPE__MAX_CARDINALITY);
+
+		multisetDataTypeEClass = createEClass(MULTISET_DATA_TYPE);
+
+		booleanDataTypeEClass = createEClass(BOOLEAN_DATA_TYPE);
+
+		intervalDataTypeEClass = createEClass(INTERVAL_DATA_TYPE);
+		createEAttribute(intervalDataTypeEClass, INTERVAL_DATA_TYPE__LEADING_QUALIFIER);
+		createEAttribute(intervalDataTypeEClass, INTERVAL_DATA_TYPE__TRAILING_QUALIFIER);
+		createEAttribute(intervalDataTypeEClass, INTERVAL_DATA_TYPE__LEADING_FIELD_PRECISION);
+		createEAttribute(intervalDataTypeEClass, INTERVAL_DATA_TYPE__TRAILING_FIELD_PRECISION);
+		createEAttribute(intervalDataTypeEClass, INTERVAL_DATA_TYPE__FRACTIONAL_SECONDS_PRECISION);
+
+		binaryStringDataTypeEClass = createEClass(BINARY_STRING_DATA_TYPE);
+		createEAttribute(binaryStringDataTypeEClass, BINARY_STRING_DATA_TYPE__LENGTH);
+
+		characterSetEClass = createEClass(CHARACTER_SET);
+		createEAttribute(characterSetEClass, CHARACTER_SET__REPERTOIRE);
+		createEAttribute(characterSetEClass, CHARACTER_SET__DEFAULT_COLLATION);
+		createEAttribute(characterSetEClass, CHARACTER_SET__ENCODING);
+		createEReference(characterSetEClass, CHARACTER_SET__CHARACTER_STRING_DATA_TYPE);
+		createEReference(characterSetEClass, CHARACTER_SET__SCHEMA);
+
+		timeDataTypeEClass = createEClass(TIME_DATA_TYPE);
+		createEAttribute(timeDataTypeEClass, TIME_DATA_TYPE__FRACTIONAL_SECONDS_PRECISION);
+		createEAttribute(timeDataTypeEClass, TIME_DATA_TYPE__TIME_ZONE);
+
+		distinctUserDefinedTypeEClass = createEClass(DISTINCT_USER_DEFINED_TYPE);
+		createEReference(distinctUserDefinedTypeEClass, DISTINCT_USER_DEFINED_TYPE__PREDEFINED_REPRESENTATION);
+
+		structuredUserDefinedTypeEClass = createEClass(STRUCTURED_USER_DEFINED_TYPE);
+		createEAttribute(structuredUserDefinedTypeEClass, STRUCTURED_USER_DEFINED_TYPE__INSTANTIABLE);
+		createEAttribute(structuredUserDefinedTypeEClass, STRUCTURED_USER_DEFINED_TYPE__FINAL);
+		createEReference(structuredUserDefinedTypeEClass, STRUCTURED_USER_DEFINED_TYPE__SUPER);
+		createEReference(structuredUserDefinedTypeEClass, STRUCTURED_USER_DEFINED_TYPE__SUB);
+		createEReference(structuredUserDefinedTypeEClass, STRUCTURED_USER_DEFINED_TYPE__ATTRIBUTES);
+		createEReference(structuredUserDefinedTypeEClass, STRUCTURED_USER_DEFINED_TYPE__METHODS);
+
+		attributeDefinitionEClass = createEClass(ATTRIBUTE_DEFINITION);
+		createEAttribute(attributeDefinitionEClass, ATTRIBUTE_DEFINITION__SCOPE_CHECK);
+		createEAttribute(attributeDefinitionEClass, ATTRIBUTE_DEFINITION__SCOPE_CHECKED);
+		createEAttribute(attributeDefinitionEClass, ATTRIBUTE_DEFINITION__DEFAULT_VALUE);
+
+		fixedPrecisionDataTypeEClass = createEClass(FIXED_PRECISION_DATA_TYPE);
+
+		domainEClass = createEClass(DOMAIN);
+		createEReference(domainEClass, DOMAIN__CONSTRAINT);
+		createEAttribute(domainEClass, DOMAIN__DEFAULT_VALUE);
+
+		fieldEClass = createEClass(FIELD);
+		createEAttribute(fieldEClass, FIELD__SCOPE_CHECK);
+		createEAttribute(fieldEClass, FIELD__SCOPE_CHECKED);
+
+		referenceDataTypeEClass = createEClass(REFERENCE_DATA_TYPE);
+		createEReference(referenceDataTypeEClass, REFERENCE_DATA_TYPE__SCOPE_TABLE);
+		createEReference(referenceDataTypeEClass, REFERENCE_DATA_TYPE__REFERENCED_TYPE);
+
+		constructedDataTypeEClass = createEClass(CONSTRUCTED_DATA_TYPE);
+
+		sqlDataTypeEClass = createEClass(SQL_DATA_TYPE);
+
+		dataLinkDataTypeEClass = createEClass(DATA_LINK_DATA_TYPE);
+		createEAttribute(dataLinkDataTypeEClass, DATA_LINK_DATA_TYPE__LENGTH);
+		createEAttribute(dataLinkDataTypeEClass, DATA_LINK_DATA_TYPE__LINK_CONTROL);
+		createEAttribute(dataLinkDataTypeEClass, DATA_LINK_DATA_TYPE__INTEGRITY_CONTROL);
+		createEAttribute(dataLinkDataTypeEClass, DATA_LINK_DATA_TYPE__READ_PERMISSION);
+		createEAttribute(dataLinkDataTypeEClass, DATA_LINK_DATA_TYPE__WRITE_PERMISSION);
+		createEAttribute(dataLinkDataTypeEClass, DATA_LINK_DATA_TYPE__RECOVERY);
+		createEAttribute(dataLinkDataTypeEClass, DATA_LINK_DATA_TYPE__UNLINK);
+
+		userDefinedTypeOrderingEClass = createEClass(USER_DEFINED_TYPE_ORDERING);
+		createEAttribute(userDefinedTypeOrderingEClass, USER_DEFINED_TYPE_ORDERING__ORDERING_FORM);
+		createEAttribute(userDefinedTypeOrderingEClass, USER_DEFINED_TYPE_ORDERING__ORDERING_CATEGORY);
+		createEReference(userDefinedTypeOrderingEClass, USER_DEFINED_TYPE_ORDERING__ORDERING_ROUTINE);
+
+		dateDataTypeEClass = createEClass(DATE_DATA_TYPE);
+
+		exactNumericDataTypeEClass = createEClass(EXACT_NUMERIC_DATA_TYPE);
+		createEAttribute(exactNumericDataTypeEClass, EXACT_NUMERIC_DATA_TYPE__SCALE);
+
+		approximateNumericDataTypeEClass = createEClass(APPROXIMATE_NUMERIC_DATA_TYPE);
+
+		integerDataTypeEClass = createEClass(INTEGER_DATA_TYPE);
+
+		xmlDataTypeEClass = createEClass(XML_DATA_TYPE);
+
+		elementTypeEClass = createEClass(ELEMENT_TYPE);
+		createEReference(elementTypeEClass, ELEMENT_TYPE__COLLECTION_DATA_TYPE);
+
+		// Create enums
+		coercibilityTypeEEnum = createEEnum(COERCIBILITY_TYPE);
+		intervalQualifierTypeEEnum = createEEnum(INTERVAL_QUALIFIER_TYPE);
+		orderingTypeEEnum = createEEnum(ORDERING_TYPE);
+		orderingCategoryTypeEEnum = createEEnum(ORDERING_CATEGORY_TYPE);
+		primitiveTypeEEnum = createEEnum(PRIMITIVE_TYPE);
+		linkControlOptionEEnum = createEEnum(LINK_CONTROL_OPTION);
+		integrityControlOptionEEnum = createEEnum(INTEGRITY_CONTROL_OPTION);
+		readPermissionOptionEEnum = createEEnum(READ_PERMISSION_OPTION);
+		writePermissionOptionEEnum = createEEnum(WRITE_PERMISSION_OPTION);
+		unlinkOptionEEnum = createEEnum(UNLINK_OPTION);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model.  This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized) return;
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Obtain other dependent packages
+		SQLSchemaPackage theSQLSchemaPackage = (SQLSchemaPackage)EPackage.Registry.INSTANCE.getEPackage(SQLSchemaPackage.eNS_URI);
+		SQLRoutinesPackage theSQLRoutinesPackage = (SQLRoutinesPackage)EPackage.Registry.INSTANCE.getEPackage(SQLRoutinesPackage.eNS_URI);
+		SQLConstraintsPackage theSQLConstraintsPackage = (SQLConstraintsPackage)EPackage.Registry.INSTANCE.getEPackage(SQLConstraintsPackage.eNS_URI);
+		SQLTablesPackage theSQLTablesPackage = (SQLTablesPackage)EPackage.Registry.INSTANCE.getEPackage(SQLTablesPackage.eNS_URI);
+
+		// Add supertypes to classes
+		userDefinedTypeEClass.getESuperTypes().add(this.getDataType());
+		dataTypeEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+		predefinedDataTypeEClass.getESuperTypes().add(this.getSQLDataType());
+		collectionDataTypeEClass.getESuperTypes().add(this.getConstructedDataType());
+		numericalDataTypeEClass.getESuperTypes().add(this.getPredefinedDataType());
+		characterStringDataTypeEClass.getESuperTypes().add(this.getPredefinedDataType());
+		rowDataTypeEClass.getESuperTypes().add(this.getConstructedDataType());
+		arrayDataTypeEClass.getESuperTypes().add(this.getCollectionDataType());
+		multisetDataTypeEClass.getESuperTypes().add(this.getCollectionDataType());
+		booleanDataTypeEClass.getESuperTypes().add(this.getPredefinedDataType());
+		intervalDataTypeEClass.getESuperTypes().add(this.getPredefinedDataType());
+		binaryStringDataTypeEClass.getESuperTypes().add(this.getPredefinedDataType());
+		characterSetEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+		timeDataTypeEClass.getESuperTypes().add(this.getPredefinedDataType());
+		distinctUserDefinedTypeEClass.getESuperTypes().add(this.getUserDefinedType());
+		structuredUserDefinedTypeEClass.getESuperTypes().add(this.getUserDefinedType());
+		attributeDefinitionEClass.getESuperTypes().add(theSQLSchemaPackage.getTypedElement());
+		fixedPrecisionDataTypeEClass.getESuperTypes().add(this.getExactNumericDataType());
+		domainEClass.getESuperTypes().add(this.getDistinctUserDefinedType());
+		fieldEClass.getESuperTypes().add(theSQLSchemaPackage.getTypedElement());
+		referenceDataTypeEClass.getESuperTypes().add(this.getConstructedDataType());
+		constructedDataTypeEClass.getESuperTypes().add(this.getDataType());
+		sqlDataTypeEClass.getESuperTypes().add(this.getDataType());
+		dataLinkDataTypeEClass.getESuperTypes().add(this.getPredefinedDataType());
+		userDefinedTypeOrderingEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+		dateDataTypeEClass.getESuperTypes().add(this.getPredefinedDataType());
+		exactNumericDataTypeEClass.getESuperTypes().add(this.getNumericalDataType());
+		approximateNumericDataTypeEClass.getESuperTypes().add(this.getNumericalDataType());
+		integerDataTypeEClass.getESuperTypes().add(this.getExactNumericDataType());
+		xmlDataTypeEClass.getESuperTypes().add(this.getPredefinedDataType());
+		elementTypeEClass.getESuperTypes().add(theSQLSchemaPackage.getTypedElement());
+
+		// Initialize classes and features; add operations and parameters
+		initEClass(userDefinedTypeEClass, UserDefinedType.class, "UserDefinedType", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEReference(getUserDefinedType_Schema(), theSQLSchemaPackage.getSchema(), theSQLSchemaPackage.getSchema_UserDefinedTypes(), "schema", null, 1, 1, UserDefinedType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getUserDefinedType_Ordering(), this.getUserDefinedTypeOrdering(), null, "ordering", null, 0, 1, UserDefinedType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(dataTypeEClass, DataType.class, "DataType", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+		EOperation op = addEOperation(dataTypeEClass, null, "setContainer"); //$NON-NLS-1$
+		addEParameter(op, theSQLSchemaPackage.getTypedElement(), "newContainer", 0, 1); //$NON-NLS-1$
+
+		initEClass(predefinedDataTypeEClass, PredefinedDataType.class, "PredefinedDataType", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getPredefinedDataType_PrimitiveType(), this.getPrimitiveType(), "primitiveType", null, 0, 1, PredefinedDataType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(collectionDataTypeEClass, CollectionDataType.class, "CollectionDataType", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEReference(getCollectionDataType_ElementType(), this.getElementType(), this.getElementType_CollectionDataType(), "elementType", null, 1, 1, CollectionDataType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(numericalDataTypeEClass, NumericalDataType.class, "NumericalDataType", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getNumericalDataType_Precision(), ecorePackage.getEInt(), "precision", null, 0, 1, NumericalDataType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(characterStringDataTypeEClass, CharacterStringDataType.class, "CharacterStringDataType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getCharacterStringDataType_Length(), ecorePackage.getEInt(), "length", "1", 0, 1, CharacterStringDataType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+		initEAttribute(getCharacterStringDataType_Coercibility(), this.getCoercibilityType(), "coercibility", null, 0, 1, CharacterStringDataType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getCharacterStringDataType_FixedLength(), ecorePackage.getEBoolean(), "fixedLength", null, 0, 1, CharacterStringDataType.class, !IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getCharacterStringDataType_CollationName(), ecorePackage.getEString(), "collationName", null, 0, 1, CharacterStringDataType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getCharacterStringDataType_CharacterSet(), this.getCharacterSet(), this.getCharacterSet_CharacterStringDataType(), "characterSet", null, 1, 1, CharacterStringDataType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(rowDataTypeEClass, RowDataType.class, "RowDataType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEReference(getRowDataType_Fields(), this.getField(), null, "fields", null, 1, -1, RowDataType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(arrayDataTypeEClass, ArrayDataType.class, "ArrayDataType", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getArrayDataType_MaxCardinality(), ecorePackage.getEInt(), "maxCardinality", null, 0, 1, ArrayDataType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(multisetDataTypeEClass, MultisetDataType.class, "MultisetDataType", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+		initEClass(booleanDataTypeEClass, BooleanDataType.class, "BooleanDataType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+		initEClass(intervalDataTypeEClass, IntervalDataType.class, "IntervalDataType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getIntervalDataType_LeadingQualifier(), this.getIntervalQualifierType(), "leadingQualifier", null, 0, 1, IntervalDataType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getIntervalDataType_TrailingQualifier(), this.getIntervalQualifierType(), "trailingQualifier", null, 0, 1, IntervalDataType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getIntervalDataType_LeadingFieldPrecision(), ecorePackage.getEInt(), "leadingFieldPrecision", null, 0, 1, IntervalDataType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getIntervalDataType_TrailingFieldPrecision(), ecorePackage.getEInt(), "trailingFieldPrecision", null, 0, 1, IntervalDataType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getIntervalDataType_FractionalSecondsPrecision(), ecorePackage.getEInt(), "fractionalSecondsPrecision", null, 0, 1, IntervalDataType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(binaryStringDataTypeEClass, BinaryStringDataType.class, "BinaryStringDataType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getBinaryStringDataType_Length(), ecorePackage.getEInt(), "length", null, 0, 1, BinaryStringDataType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		addEOperation(binaryStringDataTypeEClass, ecorePackage.getEBoolean(), "equals", 0, 1); //$NON-NLS-1$
+
+		initEClass(characterSetEClass, CharacterSet.class, "CharacterSet", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getCharacterSet_Repertoire(), ecorePackage.getEString(), "repertoire", null, 0, 1, CharacterSet.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getCharacterSet_DefaultCollation(), ecorePackage.getEString(), "defaultCollation", null, 0, 1, CharacterSet.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getCharacterSet_Encoding(), ecorePackage.getEString(), "encoding", null, 0, 1, CharacterSet.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getCharacterSet_CharacterStringDataType(), this.getCharacterStringDataType(), this.getCharacterStringDataType_CharacterSet(), "CharacterStringDataType", null, 1, 1, CharacterSet.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getCharacterSet_Schema(), theSQLSchemaPackage.getSchema(), theSQLSchemaPackage.getSchema_CharSets(), "schema", null, 1, 1, CharacterSet.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(timeDataTypeEClass, TimeDataType.class, "TimeDataType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getTimeDataType_FractionalSecondsPrecision(), ecorePackage.getEInt(), "fractionalSecondsPrecision", null, 0, 1, TimeDataType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getTimeDataType_TimeZone(), ecorePackage.getEBoolean(), "timeZone", "false", 0, 1, TimeDataType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+
+		initEClass(distinctUserDefinedTypeEClass, DistinctUserDefinedType.class, "DistinctUserDefinedType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEReference(getDistinctUserDefinedType_PredefinedRepresentation(), this.getPredefinedDataType(), null, "predefinedRepresentation", null, 1, 1, DistinctUserDefinedType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(structuredUserDefinedTypeEClass, StructuredUserDefinedType.class, "StructuredUserDefinedType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getStructuredUserDefinedType_Instantiable(), ecorePackage.getEBoolean(), "instantiable", "True", 0, 1, StructuredUserDefinedType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+		initEAttribute(getStructuredUserDefinedType_Final(), ecorePackage.getEBoolean(), "final", null, 0, 1, StructuredUserDefinedType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getStructuredUserDefinedType_Super(), this.getStructuredUserDefinedType(), this.getStructuredUserDefinedType_Sub(), "super", null, 0, 1, StructuredUserDefinedType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getStructuredUserDefinedType_Sub(), this.getStructuredUserDefinedType(), this.getStructuredUserDefinedType_Super(), "sub", null, 0, -1, StructuredUserDefinedType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getStructuredUserDefinedType_Attributes(), this.getAttributeDefinition(), null, "attributes", null, 0, -1, StructuredUserDefinedType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getStructuredUserDefinedType_Methods(), theSQLRoutinesPackage.getMethod(), null, "methods", null, 0, -1, StructuredUserDefinedType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(attributeDefinitionEClass, AttributeDefinition.class, "AttributeDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getAttributeDefinition_ScopeCheck(), theSQLSchemaPackage.getReferentialActionType(), "scopeCheck", null, 0, 1, AttributeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getAttributeDefinition_ScopeChecked(), ecorePackage.getEBoolean(), "scopeChecked", null, 0, 1, AttributeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getAttributeDefinition_DefaultValue(), ecorePackage.getEString(), "defaultValue", null, 0, 1, AttributeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(fixedPrecisionDataTypeEClass, FixedPrecisionDataType.class, "FixedPrecisionDataType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+		initEClass(domainEClass, Domain.class, "Domain", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEReference(getDomain_Constraint(), theSQLConstraintsPackage.getCheckConstraint(), null, "constraint", null, 0, -1, Domain.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getDomain_DefaultValue(), ecorePackage.getEString(), "defaultValue", null, 0, 1, Domain.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(fieldEClass, Field.class, "Field", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getField_ScopeCheck(), theSQLSchemaPackage.getReferentialActionType(), "scopeCheck", null, 0, 1, Field.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getField_ScopeChecked(), ecorePackage.getEBoolean(), "scopeChecked", null, 0, 1, Field.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(referenceDataTypeEClass, ReferenceDataType.class, "ReferenceDataType", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEReference(getReferenceDataType_ScopeTable(), theSQLTablesPackage.getTable(), null, "scopeTable", null, 1, 1, ReferenceDataType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getReferenceDataType_ReferencedType(), this.getStructuredUserDefinedType(), null, "referencedType", null, 1, 1, ReferenceDataType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(constructedDataTypeEClass, ConstructedDataType.class, "ConstructedDataType", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+		initEClass(sqlDataTypeEClass, SQLDataType.class, "SQLDataType", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+		initEClass(dataLinkDataTypeEClass, DataLinkDataType.class, "DataLinkDataType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getDataLinkDataType_Length(), ecorePackage.getEInt(), "length", null, 0, 1, DataLinkDataType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getDataLinkDataType_LinkControl(), this.getLinkControlOption(), "linkControl", null, 0, 1, DataLinkDataType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getDataLinkDataType_IntegrityControl(), this.getIntegrityControlOption(), "integrityControl", null, 0, 1, DataLinkDataType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getDataLinkDataType_ReadPermission(), this.getReadPermissionOption(), "readPermission", null, 0, 1, DataLinkDataType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getDataLinkDataType_WritePermission(), this.getWritePermissionOption(), "writePermission", null, 0, 1, DataLinkDataType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getDataLinkDataType_Recovery(), ecorePackage.getEBoolean(), "recovery", null, 0, 1, DataLinkDataType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getDataLinkDataType_Unlink(), this.getUnlinkOption(), "unlink", null, 0, 1, DataLinkDataType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(userDefinedTypeOrderingEClass, UserDefinedTypeOrdering.class, "UserDefinedTypeOrdering", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getUserDefinedTypeOrdering_OrderingForm(), this.getOrderingType(), "orderingForm", null, 0, 1, UserDefinedTypeOrdering.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getUserDefinedTypeOrdering_OrderingCategory(), this.getOrderingCategoryType(), "orderingCategory", null, 0, 1, UserDefinedTypeOrdering.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getUserDefinedTypeOrdering_OrderingRoutine(), theSQLRoutinesPackage.getRoutine(), null, "orderingRoutine", null, 1, 1, UserDefinedTypeOrdering.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(dateDataTypeEClass, DateDataType.class, "DateDataType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+		initEClass(exactNumericDataTypeEClass, ExactNumericDataType.class, "ExactNumericDataType", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getExactNumericDataType_Scale(), ecorePackage.getEInt(), "scale", null, 0, 1, ExactNumericDataType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(approximateNumericDataTypeEClass, ApproximateNumericDataType.class, "ApproximateNumericDataType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+		initEClass(integerDataTypeEClass, IntegerDataType.class, "IntegerDataType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+		initEClass(xmlDataTypeEClass, XMLDataType.class, "XMLDataType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+		initEClass(elementTypeEClass, ElementType.class, "ElementType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEReference(getElementType_CollectionDataType(), this.getCollectionDataType(), this.getCollectionDataType_ElementType(), "CollectionDataType", null, 0, 1, ElementType.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		// Initialize enums and add enum literals
+		initEEnum(coercibilityTypeEEnum, CoercibilityType.class, "CoercibilityType"); //$NON-NLS-1$
+		addEEnumLiteral(coercibilityTypeEEnum, CoercibilityType.IMPLICIT_LITERAL);
+		addEEnumLiteral(coercibilityTypeEEnum, CoercibilityType.EXPLICIT_LITERAL);
+		addEEnumLiteral(coercibilityTypeEEnum, CoercibilityType.COERCIBILE_LITERAL);
+		addEEnumLiteral(coercibilityTypeEEnum, CoercibilityType.NO_COLLATION_LITERAL);
+
+		initEEnum(intervalQualifierTypeEEnum, IntervalQualifierType.class, "IntervalQualifierType"); //$NON-NLS-1$
+		addEEnumLiteral(intervalQualifierTypeEEnum, IntervalQualifierType.YEAR_LITERAL);
+		addEEnumLiteral(intervalQualifierTypeEEnum, IntervalQualifierType.MONTH_LITERAL);
+		addEEnumLiteral(intervalQualifierTypeEEnum, IntervalQualifierType.DAY_LITERAL);
+		addEEnumLiteral(intervalQualifierTypeEEnum, IntervalQualifierType.HOUR_LITERAL);
+		addEEnumLiteral(intervalQualifierTypeEEnum, IntervalQualifierType.MINUTE_LITERAL);
+		addEEnumLiteral(intervalQualifierTypeEEnum, IntervalQualifierType.SECOND_LITERAL);
+		addEEnumLiteral(intervalQualifierTypeEEnum, IntervalQualifierType.FRACTION_LITERAL);
+
+		initEEnum(orderingTypeEEnum, OrderingType.class, "OrderingType"); //$NON-NLS-1$
+		addEEnumLiteral(orderingTypeEEnum, OrderingType.EQUALS_LITERAL);
+		addEEnumLiteral(orderingTypeEEnum, OrderingType.FULL_LITERAL);
+
+		initEEnum(orderingCategoryTypeEEnum, OrderingCategoryType.class, "OrderingCategoryType"); //$NON-NLS-1$
+		addEEnumLiteral(orderingCategoryTypeEEnum, OrderingCategoryType.RELATIVE_LITERAL);
+		addEEnumLiteral(orderingCategoryTypeEEnum, OrderingCategoryType.MAP_LITERAL);
+		addEEnumLiteral(orderingCategoryTypeEEnum, OrderingCategoryType.STATE_LITERAL);
+
+		initEEnum(primitiveTypeEEnum, PrimitiveType.class, "PrimitiveType"); //$NON-NLS-1$
+		addEEnumLiteral(primitiveTypeEEnum, PrimitiveType.CHARACTER_LITERAL);
+		addEEnumLiteral(primitiveTypeEEnum, PrimitiveType.CHARACTER_VARYING_LITERAL);
+		addEEnumLiteral(primitiveTypeEEnum, PrimitiveType.CHARACTER_LARGE_OBJECT_LITERAL);
+		addEEnumLiteral(primitiveTypeEEnum, PrimitiveType.NATIONAL_CHARACTER_LITERAL);
+		addEEnumLiteral(primitiveTypeEEnum, PrimitiveType.NATIONAL_CHARACTER_VARYING_LITERAL);
+		addEEnumLiteral(primitiveTypeEEnum, PrimitiveType.NATIONAL_CHARACTER_LARGE_OBJECT_LITERAL);
+		addEEnumLiteral(primitiveTypeEEnum, PrimitiveType.BINARY_LITERAL);
+		addEEnumLiteral(primitiveTypeEEnum, PrimitiveType.BINARY_VARYING_LITERAL);
+		addEEnumLiteral(primitiveTypeEEnum, PrimitiveType.BINARY_LARGE_OBJECT_LITERAL);
+		addEEnumLiteral(primitiveTypeEEnum, PrimitiveType.NUMERIC_LITERAL);
+		addEEnumLiteral(primitiveTypeEEnum, PrimitiveType.DECIMAL_LITERAL);
+		addEEnumLiteral(primitiveTypeEEnum, PrimitiveType.SMALLINT_LITERAL);
+		addEEnumLiteral(primitiveTypeEEnum, PrimitiveType.INTEGER_LITERAL);
+		addEEnumLiteral(primitiveTypeEEnum, PrimitiveType.BIGINT_LITERAL);
+		addEEnumLiteral(primitiveTypeEEnum, PrimitiveType.FLOAT_LITERAL);
+		addEEnumLiteral(primitiveTypeEEnum, PrimitiveType.REAL_LITERAL);
+		addEEnumLiteral(primitiveTypeEEnum, PrimitiveType.DOUBLE_PRECISION_LITERAL);
+		addEEnumLiteral(primitiveTypeEEnum, PrimitiveType.BOOLEAN_LITERAL);
+		addEEnumLiteral(primitiveTypeEEnum, PrimitiveType.DATE_LITERAL);
+		addEEnumLiteral(primitiveTypeEEnum, PrimitiveType.TIME_LITERAL);
+		addEEnumLiteral(primitiveTypeEEnum, PrimitiveType.TIMESTAMP_LITERAL);
+		addEEnumLiteral(primitiveTypeEEnum, PrimitiveType.INTERVAL_LITERAL);
+		addEEnumLiteral(primitiveTypeEEnum, PrimitiveType.DATALINK_LITERAL);
+		addEEnumLiteral(primitiveTypeEEnum, PrimitiveType.XML_TYPE_LITERAL);
+
+		initEEnum(linkControlOptionEEnum, LinkControlOption.class, "LinkControlOption"); //$NON-NLS-1$
+		addEEnumLiteral(linkControlOptionEEnum, LinkControlOption.FILE_LINK_CONTROL_LITERAL);
+		addEEnumLiteral(linkControlOptionEEnum, LinkControlOption.NO_FILE_LINK_CONTROL_LITERAL);
+
+		initEEnum(integrityControlOptionEEnum, IntegrityControlOption.class, "IntegrityControlOption"); //$NON-NLS-1$
+		addEEnumLiteral(integrityControlOptionEEnum, IntegrityControlOption.ALL_LITERAL);
+		addEEnumLiteral(integrityControlOptionEEnum, IntegrityControlOption.SELECTIVE_LITERAL);
+		addEEnumLiteral(integrityControlOptionEEnum, IntegrityControlOption.NONE_LITERAL);
+
+		initEEnum(readPermissionOptionEEnum, ReadPermissionOption.class, "ReadPermissionOption"); //$NON-NLS-1$
+		addEEnumLiteral(readPermissionOptionEEnum, ReadPermissionOption.FS_LITERAL);
+		addEEnumLiteral(readPermissionOptionEEnum, ReadPermissionOption.DB_LITERAL);
+
+		initEEnum(writePermissionOptionEEnum, WritePermissionOption.class, "WritePermissionOption"); //$NON-NLS-1$
+		addEEnumLiteral(writePermissionOptionEEnum, WritePermissionOption.FS_LITERAL);
+		addEEnumLiteral(writePermissionOptionEEnum, WritePermissionOption.ADMIN_LITERAL);
+		addEEnumLiteral(writePermissionOptionEEnum, WritePermissionOption.BLOCKED_LITERAL);
+
+		initEEnum(unlinkOptionEEnum, UnlinkOption.class, "UnlinkOption"); //$NON-NLS-1$
+		addEEnumLiteral(unlinkOptionEEnum, UnlinkOption.RESTORE_LITERAL);
+		addEEnumLiteral(unlinkOptionEEnum, UnlinkOption.DELETE_LITERAL);
+		addEEnumLiteral(unlinkOptionEEnum, UnlinkOption.NONE_LITERAL);
+
+		// Create resource
+		createResource(eNS_URI);
+	}
+
+} //SQLDataTypesPackageImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/StructuredUserDefinedTypeImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/StructuredUserDefinedTypeImpl.java
new file mode 100644
index 0000000..2a12070
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/StructuredUserDefinedTypeImpl.java
@@ -0,0 +1,449 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.AttributeDefinition;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType;
+import org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedTypeOrdering;
+import org.eclipse.datatools.modelbase.sql.routines.Method;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Structured User Defined Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.StructuredUserDefinedTypeImpl#isInstantiable <em>Instantiable</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.StructuredUserDefinedTypeImpl#isFinal <em>Final</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.StructuredUserDefinedTypeImpl#getSuper <em>Super</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.StructuredUserDefinedTypeImpl#getSub <em>Sub</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.StructuredUserDefinedTypeImpl#getAttributes <em>Attributes</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.StructuredUserDefinedTypeImpl#getMethods <em>Methods</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class StructuredUserDefinedTypeImpl extends UserDefinedTypeImpl implements StructuredUserDefinedType {
+/**
+	 * The default value of the '{@link #isInstantiable() <em>Instantiable</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isInstantiable()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean INSTANTIABLE_EDEFAULT = true;
+
+/**
+	 * The cached value of the '{@link #isInstantiable() <em>Instantiable</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isInstantiable()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean instantiable = INSTANTIABLE_EDEFAULT;
+
+/**
+	 * The default value of the '{@link #isFinal() <em>Final</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isFinal()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean FINAL_EDEFAULT = false;
+
+/**
+	 * The cached value of the '{@link #isFinal() <em>Final</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isFinal()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean final_ = FINAL_EDEFAULT;
+
+/**
+	 * The cached value of the '{@link #getSuper() <em>Super</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSuper()
+	 * @generated
+	 * @ordered
+	 */
+	protected StructuredUserDefinedType super_;
+
+/**
+	 * The cached value of the '{@link #getSub() <em>Sub</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSub()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList sub;
+
+/**
+	 * The cached value of the '{@link #getAttributes() <em>Attributes</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAttributes()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList attributes;
+
+/**
+	 * The cached value of the '{@link #getMethods() <em>Methods</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMethods()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList methods;
+
+/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected StructuredUserDefinedTypeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLDataTypesPackage.Literals.STRUCTURED_USER_DEFINED_TYPE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isInstantiable() {
+		return instantiable;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setInstantiable(boolean newInstantiable) {
+		boolean oldInstantiable = instantiable;
+		instantiable = newInstantiable;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__INSTANTIABLE, oldInstantiable, instantiable));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isFinal() {
+		return final_;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setFinal(boolean newFinal) {
+		boolean oldFinal = final_;
+		final_ = newFinal;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__FINAL, oldFinal, final_));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public StructuredUserDefinedType getSuper() {
+		if (super_ != null && super_.eIsProxy()) {
+			InternalEObject oldSuper = (InternalEObject)super_;
+			super_ = (StructuredUserDefinedType)eResolveProxy(oldSuper);
+			if (super_ != oldSuper) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__SUPER, oldSuper, super_));
+			}
+		}
+		return super_;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public StructuredUserDefinedType basicGetSuper() {
+		return super_;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetSuper(StructuredUserDefinedType newSuper, NotificationChain msgs) {
+		StructuredUserDefinedType oldSuper = super_;
+		super_ = newSuper;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__SUPER, oldSuper, newSuper);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSuper(StructuredUserDefinedType newSuper) {
+		if (newSuper != super_) {
+			NotificationChain msgs = null;
+			if (super_ != null)
+				msgs = ((InternalEObject)super_).eInverseRemove(this, SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__SUB, StructuredUserDefinedType.class, msgs);
+			if (newSuper != null)
+				msgs = ((InternalEObject)newSuper).eInverseAdd(this, SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__SUB, StructuredUserDefinedType.class, msgs);
+			msgs = basicSetSuper(newSuper, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__SUPER, newSuper, newSuper));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getSub() {
+		if (sub == null) {
+			sub = new EObjectWithInverseResolvingEList(StructuredUserDefinedType.class, this, SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__SUB, SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__SUPER);
+		}
+		return sub;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getAttributes() {
+		if (attributes == null) {
+			attributes = new EObjectContainmentEList(AttributeDefinition.class, this, SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__ATTRIBUTES);
+		}
+		return attributes;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getMethods() {
+		if (methods == null) {
+			methods = new EObjectContainmentEList(Method.class, this, SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__METHODS);
+		}
+		return methods;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__SUPER:
+				if (super_ != null)
+					msgs = ((InternalEObject)super_).eInverseRemove(this, SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__SUB, StructuredUserDefinedType.class, msgs);
+				return basicSetSuper((StructuredUserDefinedType)otherEnd, msgs);
+			case SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__SUB:
+				return ((InternalEList)getSub()).basicAdd(otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__SUPER:
+				return basicSetSuper(null, msgs);
+			case SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__SUB:
+				return ((InternalEList)getSub()).basicRemove(otherEnd, msgs);
+			case SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__ATTRIBUTES:
+				return ((InternalEList)getAttributes()).basicRemove(otherEnd, msgs);
+			case SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__METHODS:
+				return ((InternalEList)getMethods()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__INSTANTIABLE:
+				return isInstantiable() ? Boolean.TRUE : Boolean.FALSE;
+			case SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__FINAL:
+				return isFinal() ? Boolean.TRUE : Boolean.FALSE;
+			case SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__SUPER:
+				if (resolve) return getSuper();
+				return basicGetSuper();
+			case SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__SUB:
+				return getSub();
+			case SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__ATTRIBUTES:
+				return getAttributes();
+			case SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__METHODS:
+				return getMethods();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__INSTANTIABLE:
+				setInstantiable(((Boolean)newValue).booleanValue());
+				return;
+			case SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__FINAL:
+				setFinal(((Boolean)newValue).booleanValue());
+				return;
+			case SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__SUPER:
+				setSuper((StructuredUserDefinedType)newValue);
+				return;
+			case SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__SUB:
+				getSub().clear();
+				getSub().addAll((Collection)newValue);
+				return;
+			case SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__ATTRIBUTES:
+				getAttributes().clear();
+				getAttributes().addAll((Collection)newValue);
+				return;
+			case SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__METHODS:
+				getMethods().clear();
+				getMethods().addAll((Collection)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__INSTANTIABLE:
+				setInstantiable(INSTANTIABLE_EDEFAULT);
+				return;
+			case SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__FINAL:
+				setFinal(FINAL_EDEFAULT);
+				return;
+			case SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__SUPER:
+				setSuper((StructuredUserDefinedType)null);
+				return;
+			case SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__SUB:
+				getSub().clear();
+				return;
+			case SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__ATTRIBUTES:
+				getAttributes().clear();
+				return;
+			case SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__METHODS:
+				getMethods().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__INSTANTIABLE:
+				return instantiable != INSTANTIABLE_EDEFAULT;
+			case SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__FINAL:
+				return final_ != FINAL_EDEFAULT;
+			case SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__SUPER:
+				return super_ != null;
+			case SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__SUB:
+				return sub != null && !sub.isEmpty();
+			case SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__ATTRIBUTES:
+				return attributes != null && !attributes.isEmpty();
+			case SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__METHODS:
+				return methods != null && !methods.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (instantiable: "); //$NON-NLS-1$
+		result.append(instantiable);
+		result.append(", final: "); //$NON-NLS-1$
+		result.append(final_);
+		result.append(')');
+		return result.toString();
+	}
+
+} //StructuredUserDefinedTypeImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/TimeDataTypeImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/TimeDataTypeImpl.java
new file mode 100644
index 0000000..510ef94
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/TimeDataTypeImpl.java
@@ -0,0 +1,222 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.PrimitiveType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.datatypes.TimeDataType;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Time Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.TimeDataTypeImpl#getFractionalSecondsPrecision <em>Fractional Seconds Precision</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.TimeDataTypeImpl#isTimeZone <em>Time Zone</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TimeDataTypeImpl extends PredefinedDataTypeImpl implements TimeDataType {
+	/**
+	 * The default value of the '{@link #getFractionalSecondsPrecision() <em>Fractional Seconds Precision</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFractionalSecondsPrecision()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int FRACTIONAL_SECONDS_PRECISION_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getFractionalSecondsPrecision() <em>Fractional Seconds Precision</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFractionalSecondsPrecision()
+	 * @generated
+	 * @ordered
+	 */
+	protected int fractionalSecondsPrecision = FRACTIONAL_SECONDS_PRECISION_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isTimeZone() <em>Time Zone</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isTimeZone()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean TIME_ZONE_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isTimeZone() <em>Time Zone</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isTimeZone()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean timeZone = TIME_ZONE_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TimeDataTypeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLDataTypesPackage.Literals.TIME_DATA_TYPE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getFractionalSecondsPrecision() {
+		return fractionalSecondsPrecision;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setFractionalSecondsPrecision(int newFractionalSecondsPrecision) {
+		int oldFractionalSecondsPrecision = fractionalSecondsPrecision;
+		fractionalSecondsPrecision = newFractionalSecondsPrecision;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.TIME_DATA_TYPE__FRACTIONAL_SECONDS_PRECISION, oldFractionalSecondsPrecision, fractionalSecondsPrecision));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isTimeZone() {
+		return timeZone;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTimeZone(boolean newTimeZone) {
+		boolean oldTimeZone = timeZone;
+		timeZone = newTimeZone;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.TIME_DATA_TYPE__TIME_ZONE, oldTimeZone, timeZone));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLDataTypesPackage.TIME_DATA_TYPE__FRACTIONAL_SECONDS_PRECISION:
+				return new Integer(getFractionalSecondsPrecision());
+			case SQLDataTypesPackage.TIME_DATA_TYPE__TIME_ZONE:
+				return isTimeZone() ? Boolean.TRUE : Boolean.FALSE;
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLDataTypesPackage.TIME_DATA_TYPE__FRACTIONAL_SECONDS_PRECISION:
+				setFractionalSecondsPrecision(((Integer)newValue).intValue());
+				return;
+			case SQLDataTypesPackage.TIME_DATA_TYPE__TIME_ZONE:
+				setTimeZone(((Boolean)newValue).booleanValue());
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLDataTypesPackage.TIME_DATA_TYPE__FRACTIONAL_SECONDS_PRECISION:
+				setFractionalSecondsPrecision(FRACTIONAL_SECONDS_PRECISION_EDEFAULT);
+				return;
+			case SQLDataTypesPackage.TIME_DATA_TYPE__TIME_ZONE:
+				setTimeZone(TIME_ZONE_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLDataTypesPackage.TIME_DATA_TYPE__FRACTIONAL_SECONDS_PRECISION:
+				return fractionalSecondsPrecision != FRACTIONAL_SECONDS_PRECISION_EDEFAULT;
+			case SQLDataTypesPackage.TIME_DATA_TYPE__TIME_ZONE:
+				return timeZone != TIME_ZONE_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (fractionalSecondsPrecision: "); //$NON-NLS-1$
+		result.append(fractionalSecondsPrecision);
+		result.append(", timeZone: "); //$NON-NLS-1$
+		result.append(timeZone);
+		result.append(')');
+		return result.toString();
+	}
+
+} //TimeDataTypeImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/UserDefinedTypeImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/UserDefinedTypeImpl.java
new file mode 100644
index 0000000..21bbf35
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/UserDefinedTypeImpl.java
@@ -0,0 +1,279 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType;
+import org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedTypeOrdering;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>User Defined Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.UserDefinedTypeImpl#getSchema <em>Schema</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.UserDefinedTypeImpl#getOrdering <em>Ordering</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class UserDefinedTypeImpl extends DataTypeImpl implements UserDefinedType {
+	/**
+	 * The cached value of the '{@link #getSchema() <em>Schema</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSchema()
+	 * @generated
+	 * @ordered
+	 */
+	protected Schema schema;
+
+	/**
+	 * The cached value of the '{@link #getOrdering() <em>Ordering</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getOrdering()
+	 * @generated
+	 * @ordered
+	 */
+	protected UserDefinedTypeOrdering ordering;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected UserDefinedTypeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLDataTypesPackage.Literals.USER_DEFINED_TYPE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Schema getSchema() {
+		if (schema != null && schema.eIsProxy()) {
+			InternalEObject oldSchema = (InternalEObject)schema;
+			schema = (Schema)eResolveProxy(oldSchema);
+			if (schema != oldSchema) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SQLDataTypesPackage.USER_DEFINED_TYPE__SCHEMA, oldSchema, schema));
+			}
+		}
+		return schema;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Schema basicGetSchema() {
+		return schema;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetSchema(Schema newSchema, NotificationChain msgs) {
+		Schema oldSchema = schema;
+		schema = newSchema;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.USER_DEFINED_TYPE__SCHEMA, oldSchema, newSchema);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSchema(Schema newSchema) {
+		if (newSchema != schema) {
+			NotificationChain msgs = null;
+			if (schema != null)
+				msgs = ((InternalEObject)schema).eInverseRemove(this, SQLSchemaPackage.SCHEMA__USER_DEFINED_TYPES, Schema.class, msgs);
+			if (newSchema != null)
+				msgs = ((InternalEObject)newSchema).eInverseAdd(this, SQLSchemaPackage.SCHEMA__USER_DEFINED_TYPES, Schema.class, msgs);
+			msgs = basicSetSchema(newSchema, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.USER_DEFINED_TYPE__SCHEMA, newSchema, newSchema));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UserDefinedTypeOrdering getOrdering() {
+		return ordering;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetOrdering(UserDefinedTypeOrdering newOrdering, NotificationChain msgs) {
+		UserDefinedTypeOrdering oldOrdering = ordering;
+		ordering = newOrdering;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.USER_DEFINED_TYPE__ORDERING, oldOrdering, newOrdering);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setOrdering(UserDefinedTypeOrdering newOrdering) {
+		if (newOrdering != ordering) {
+			NotificationChain msgs = null;
+			if (ordering != null)
+				msgs = ((InternalEObject)ordering).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLDataTypesPackage.USER_DEFINED_TYPE__ORDERING, null, msgs);
+			if (newOrdering != null)
+				msgs = ((InternalEObject)newOrdering).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SQLDataTypesPackage.USER_DEFINED_TYPE__ORDERING, null, msgs);
+			msgs = basicSetOrdering(newOrdering, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.USER_DEFINED_TYPE__ORDERING, newOrdering, newOrdering));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLDataTypesPackage.USER_DEFINED_TYPE__SCHEMA:
+				if (schema != null)
+					msgs = ((InternalEObject)schema).eInverseRemove(this, SQLSchemaPackage.SCHEMA__USER_DEFINED_TYPES, Schema.class, msgs);
+				return basicSetSchema((Schema)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLDataTypesPackage.USER_DEFINED_TYPE__SCHEMA:
+				return basicSetSchema(null, msgs);
+			case SQLDataTypesPackage.USER_DEFINED_TYPE__ORDERING:
+				return basicSetOrdering(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLDataTypesPackage.USER_DEFINED_TYPE__SCHEMA:
+				if (resolve) return getSchema();
+				return basicGetSchema();
+			case SQLDataTypesPackage.USER_DEFINED_TYPE__ORDERING:
+				return getOrdering();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLDataTypesPackage.USER_DEFINED_TYPE__SCHEMA:
+				setSchema((Schema)newValue);
+				return;
+			case SQLDataTypesPackage.USER_DEFINED_TYPE__ORDERING:
+				setOrdering((UserDefinedTypeOrdering)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLDataTypesPackage.USER_DEFINED_TYPE__SCHEMA:
+				setSchema((Schema)null);
+				return;
+			case SQLDataTypesPackage.USER_DEFINED_TYPE__ORDERING:
+				setOrdering((UserDefinedTypeOrdering)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLDataTypesPackage.USER_DEFINED_TYPE__SCHEMA:
+				return schema != null;
+			case SQLDataTypesPackage.USER_DEFINED_TYPE__ORDERING:
+				return ordering != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //UserDefinedTypeImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/UserDefinedTypeOrderingImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/UserDefinedTypeOrderingImpl.java
new file mode 100644
index 0000000..13ea2f7
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/UserDefinedTypeOrderingImpl.java
@@ -0,0 +1,285 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.OrderingCategoryType;
+import org.eclipse.datatools.modelbase.sql.datatypes.OrderingType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedTypeOrdering;
+import org.eclipse.datatools.modelbase.sql.routines.Routine;
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>User Defined Type Ordering</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.UserDefinedTypeOrderingImpl#getOrderingForm <em>Ordering Form</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.UserDefinedTypeOrderingImpl#getOrderingCategory <em>Ordering Category</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.datatypes.impl.UserDefinedTypeOrderingImpl#getOrderingRoutine <em>Ordering Routine</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class UserDefinedTypeOrderingImpl extends SQLObjectImpl implements UserDefinedTypeOrdering {
+	/**
+	 * The default value of the '{@link #getOrderingForm() <em>Ordering Form</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getOrderingForm()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final OrderingType ORDERING_FORM_EDEFAULT = OrderingType.EQUALS_LITERAL;
+
+	/**
+	 * The cached value of the '{@link #getOrderingForm() <em>Ordering Form</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getOrderingForm()
+	 * @generated
+	 * @ordered
+	 */
+	protected OrderingType orderingForm = ORDERING_FORM_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getOrderingCategory() <em>Ordering Category</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getOrderingCategory()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final OrderingCategoryType ORDERING_CATEGORY_EDEFAULT = OrderingCategoryType.RELATIVE_LITERAL;
+
+	/**
+	 * The cached value of the '{@link #getOrderingCategory() <em>Ordering Category</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getOrderingCategory()
+	 * @generated
+	 * @ordered
+	 */
+	protected OrderingCategoryType orderingCategory = ORDERING_CATEGORY_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getOrderingRoutine() <em>Ordering Routine</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getOrderingRoutine()
+	 * @generated
+	 * @ordered
+	 */
+	protected Routine orderingRoutine;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected UserDefinedTypeOrderingImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLDataTypesPackage.Literals.USER_DEFINED_TYPE_ORDERING;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OrderingType getOrderingForm() {
+		return orderingForm;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setOrderingForm(OrderingType newOrderingForm) {
+		OrderingType oldOrderingForm = orderingForm;
+		orderingForm = newOrderingForm == null ? ORDERING_FORM_EDEFAULT : newOrderingForm;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.USER_DEFINED_TYPE_ORDERING__ORDERING_FORM, oldOrderingForm, orderingForm));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OrderingCategoryType getOrderingCategory() {
+		return orderingCategory;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setOrderingCategory(OrderingCategoryType newOrderingCategory) {
+		OrderingCategoryType oldOrderingCategory = orderingCategory;
+		orderingCategory = newOrderingCategory == null ? ORDERING_CATEGORY_EDEFAULT : newOrderingCategory;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.USER_DEFINED_TYPE_ORDERING__ORDERING_CATEGORY, oldOrderingCategory, orderingCategory));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Routine getOrderingRoutine() {
+		if (orderingRoutine != null && orderingRoutine.eIsProxy()) {
+			InternalEObject oldOrderingRoutine = (InternalEObject)orderingRoutine;
+			orderingRoutine = (Routine)eResolveProxy(oldOrderingRoutine);
+			if (orderingRoutine != oldOrderingRoutine) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SQLDataTypesPackage.USER_DEFINED_TYPE_ORDERING__ORDERING_ROUTINE, oldOrderingRoutine, orderingRoutine));
+			}
+		}
+		return orderingRoutine;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Routine basicGetOrderingRoutine() {
+		return orderingRoutine;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setOrderingRoutine(Routine newOrderingRoutine) {
+		Routine oldOrderingRoutine = orderingRoutine;
+		orderingRoutine = newOrderingRoutine;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLDataTypesPackage.USER_DEFINED_TYPE_ORDERING__ORDERING_ROUTINE, oldOrderingRoutine, orderingRoutine));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLDataTypesPackage.USER_DEFINED_TYPE_ORDERING__ORDERING_FORM:
+				return getOrderingForm();
+			case SQLDataTypesPackage.USER_DEFINED_TYPE_ORDERING__ORDERING_CATEGORY:
+				return getOrderingCategory();
+			case SQLDataTypesPackage.USER_DEFINED_TYPE_ORDERING__ORDERING_ROUTINE:
+				if (resolve) return getOrderingRoutine();
+				return basicGetOrderingRoutine();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLDataTypesPackage.USER_DEFINED_TYPE_ORDERING__ORDERING_FORM:
+				setOrderingForm((OrderingType)newValue);
+				return;
+			case SQLDataTypesPackage.USER_DEFINED_TYPE_ORDERING__ORDERING_CATEGORY:
+				setOrderingCategory((OrderingCategoryType)newValue);
+				return;
+			case SQLDataTypesPackage.USER_DEFINED_TYPE_ORDERING__ORDERING_ROUTINE:
+				setOrderingRoutine((Routine)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLDataTypesPackage.USER_DEFINED_TYPE_ORDERING__ORDERING_FORM:
+				setOrderingForm(ORDERING_FORM_EDEFAULT);
+				return;
+			case SQLDataTypesPackage.USER_DEFINED_TYPE_ORDERING__ORDERING_CATEGORY:
+				setOrderingCategory(ORDERING_CATEGORY_EDEFAULT);
+				return;
+			case SQLDataTypesPackage.USER_DEFINED_TYPE_ORDERING__ORDERING_ROUTINE:
+				setOrderingRoutine((Routine)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLDataTypesPackage.USER_DEFINED_TYPE_ORDERING__ORDERING_FORM:
+				return orderingForm != ORDERING_FORM_EDEFAULT;
+			case SQLDataTypesPackage.USER_DEFINED_TYPE_ORDERING__ORDERING_CATEGORY:
+				return orderingCategory != ORDERING_CATEGORY_EDEFAULT;
+			case SQLDataTypesPackage.USER_DEFINED_TYPE_ORDERING__ORDERING_ROUTINE:
+				return orderingRoutine != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (orderingForm: "); //$NON-NLS-1$
+		result.append(orderingForm);
+		result.append(", orderingCategory: "); //$NON-NLS-1$
+		result.append(orderingCategory);
+		result.append(')');
+		return result.toString();
+	}
+
+} //UserDefinedTypeOrderingImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/XMLDataTypeImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/XMLDataTypeImpl.java
new file mode 100644
index 0000000..c6c59ba
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/impl/XMLDataTypeImpl.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.PrimitiveType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.datatypes.XMLDataType;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XML Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class XMLDataTypeImpl extends PredefinedDataTypeImpl implements XMLDataType {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected XMLDataTypeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLDataTypesPackage.Literals.XML_DATA_TYPE;
+	}
+
+} //XMLDataTypeImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/util/SQLDataTypesAdapterFactory.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/util/SQLDataTypesAdapterFactory.java
new file mode 100644
index 0000000..84c8f17
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/util/SQLDataTypesAdapterFactory.java
@@ -0,0 +1,704 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes.util;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.*;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.modelbase.sql.schema.TypedElement;
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+import org.eclipse.emf.ecore.EModelElement;
+import org.eclipse.emf.ecore.ENamedElement;
+import org.eclipse.emf.ecore.EObject;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage
+ * @generated
+ */
+public class SQLDataTypesAdapterFactory extends AdapterFactoryImpl {
+	/**
+	 * The cached model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static SQLDataTypesPackage modelPackage;
+
+	/**
+	 * Creates an instance of the adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLDataTypesAdapterFactory() {
+		if (modelPackage == null) {
+			modelPackage = SQLDataTypesPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Returns whether this factory is applicable for the type of the object.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+	 * <!-- end-user-doc -->
+	 * @return whether this factory is applicable for the type of the object.
+	 * @generated
+	 */
+	public boolean isFactoryForType(Object object) {
+		if (object == modelPackage) {
+			return true;
+		}
+		if (object instanceof EObject) {
+			return ((EObject)object).eClass().getEPackage() == modelPackage;
+		}
+		return false;
+	}
+
+	/**
+	 * The switch that delegates to the <code>createXXX</code> methods.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SQLDataTypesSwitch modelSwitch =
+		new SQLDataTypesSwitch() {
+			public Object caseUserDefinedType(UserDefinedType object) {
+				return createUserDefinedTypeAdapter();
+			}
+			public Object caseDataType(DataType object) {
+				return createDataTypeAdapter();
+			}
+			public Object casePredefinedDataType(PredefinedDataType object) {
+				return createPredefinedDataTypeAdapter();
+			}
+			public Object caseCollectionDataType(CollectionDataType object) {
+				return createCollectionDataTypeAdapter();
+			}
+			public Object caseNumericalDataType(NumericalDataType object) {
+				return createNumericalDataTypeAdapter();
+			}
+			public Object caseCharacterStringDataType(CharacterStringDataType object) {
+				return createCharacterStringDataTypeAdapter();
+			}
+			public Object caseRowDataType(RowDataType object) {
+				return createRowDataTypeAdapter();
+			}
+			public Object caseArrayDataType(ArrayDataType object) {
+				return createArrayDataTypeAdapter();
+			}
+			public Object caseMultisetDataType(MultisetDataType object) {
+				return createMultisetDataTypeAdapter();
+			}
+			public Object caseBooleanDataType(BooleanDataType object) {
+				return createBooleanDataTypeAdapter();
+			}
+			public Object caseIntervalDataType(IntervalDataType object) {
+				return createIntervalDataTypeAdapter();
+			}
+			public Object caseBinaryStringDataType(BinaryStringDataType object) {
+				return createBinaryStringDataTypeAdapter();
+			}
+			public Object caseCharacterSet(CharacterSet object) {
+				return createCharacterSetAdapter();
+			}
+			public Object caseTimeDataType(TimeDataType object) {
+				return createTimeDataTypeAdapter();
+			}
+			public Object caseDistinctUserDefinedType(DistinctUserDefinedType object) {
+				return createDistinctUserDefinedTypeAdapter();
+			}
+			public Object caseStructuredUserDefinedType(StructuredUserDefinedType object) {
+				return createStructuredUserDefinedTypeAdapter();
+			}
+			public Object caseAttributeDefinition(AttributeDefinition object) {
+				return createAttributeDefinitionAdapter();
+			}
+			public Object caseFixedPrecisionDataType(FixedPrecisionDataType object) {
+				return createFixedPrecisionDataTypeAdapter();
+			}
+			public Object caseDomain(Domain object) {
+				return createDomainAdapter();
+			}
+			public Object caseField(Field object) {
+				return createFieldAdapter();
+			}
+			public Object caseReferenceDataType(ReferenceDataType object) {
+				return createReferenceDataTypeAdapter();
+			}
+			public Object caseConstructedDataType(ConstructedDataType object) {
+				return createConstructedDataTypeAdapter();
+			}
+			public Object caseSQLDataType(SQLDataType object) {
+				return createSQLDataTypeAdapter();
+			}
+			public Object caseDataLinkDataType(DataLinkDataType object) {
+				return createDataLinkDataTypeAdapter();
+			}
+			public Object caseUserDefinedTypeOrdering(UserDefinedTypeOrdering object) {
+				return createUserDefinedTypeOrderingAdapter();
+			}
+			public Object caseDateDataType(DateDataType object) {
+				return createDateDataTypeAdapter();
+			}
+			public Object caseExactNumericDataType(ExactNumericDataType object) {
+				return createExactNumericDataTypeAdapter();
+			}
+			public Object caseApproximateNumericDataType(ApproximateNumericDataType object) {
+				return createApproximateNumericDataTypeAdapter();
+			}
+			public Object caseIntegerDataType(IntegerDataType object) {
+				return createIntegerDataTypeAdapter();
+			}
+			public Object caseXMLDataType(XMLDataType object) {
+				return createXMLDataTypeAdapter();
+			}
+			public Object caseElementType(ElementType object) {
+				return createElementTypeAdapter();
+			}
+			public Object caseEModelElement(EModelElement object) {
+				return createEModelElementAdapter();
+			}
+			public Object caseENamedElement(ENamedElement object) {
+				return createENamedElementAdapter();
+			}
+			public Object caseSQLObject(SQLObject object) {
+				return createSQLObjectAdapter();
+			}
+			public Object caseTypedElement(TypedElement object) {
+				return createTypedElementAdapter();
+			}
+			public Object defaultCase(EObject object) {
+				return createEObjectAdapter();
+			}
+		};
+
+	/**
+	 * Creates an adapter for the <code>target</code>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param target the object to adapt.
+	 * @return the adapter for the <code>target</code>.
+	 * @generated
+	 */
+	public Adapter createAdapter(Notifier target) {
+		return (Adapter)modelSwitch.doSwitch((EObject)target);
+	}
+
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType <em>User Defined Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType
+	 * @generated
+	 */
+	public Adapter createUserDefinedTypeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.datatypes.DataType <em>Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.DataType
+	 * @generated
+	 */
+	public Adapter createDataTypeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.datatypes.PredefinedDataType <em>Predefined Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.PredefinedDataType
+	 * @generated
+	 */
+	public Adapter createPredefinedDataTypeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.datatypes.CollectionDataType <em>Collection Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.CollectionDataType
+	 * @generated
+	 */
+	public Adapter createCollectionDataTypeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.datatypes.NumericalDataType <em>Numerical Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.NumericalDataType
+	 * @generated
+	 */
+	public Adapter createNumericalDataTypeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.datatypes.CharacterStringDataType <em>Character String Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.CharacterStringDataType
+	 * @generated
+	 */
+	public Adapter createCharacterStringDataTypeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.datatypes.RowDataType <em>Row Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.RowDataType
+	 * @generated
+	 */
+	public Adapter createRowDataTypeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.datatypes.ArrayDataType <em>Array Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.ArrayDataType
+	 * @generated
+	 */
+	public Adapter createArrayDataTypeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.datatypes.MultisetDataType <em>Multiset Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.MultisetDataType
+	 * @generated
+	 */
+	public Adapter createMultisetDataTypeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.datatypes.BooleanDataType <em>Boolean Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.BooleanDataType
+	 * @generated
+	 */
+	public Adapter createBooleanDataTypeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.datatypes.IntervalDataType <em>Interval Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.IntervalDataType
+	 * @generated
+	 */
+	public Adapter createIntervalDataTypeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.datatypes.BinaryStringDataType <em>Binary String Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.BinaryStringDataType
+	 * @generated
+	 */
+	public Adapter createBinaryStringDataTypeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.datatypes.CharacterSet <em>Character Set</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.CharacterSet
+	 * @generated
+	 */
+	public Adapter createCharacterSetAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.datatypes.TimeDataType <em>Time Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.TimeDataType
+	 * @generated
+	 */
+	public Adapter createTimeDataTypeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.datatypes.DistinctUserDefinedType <em>Distinct User Defined Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.DistinctUserDefinedType
+	 * @generated
+	 */
+	public Adapter createDistinctUserDefinedTypeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType <em>Structured User Defined Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType
+	 * @generated
+	 */
+	public Adapter createStructuredUserDefinedTypeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.datatypes.AttributeDefinition <em>Attribute Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.AttributeDefinition
+	 * @generated
+	 */
+	public Adapter createAttributeDefinitionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.datatypes.FixedPrecisionDataType <em>Fixed Precision Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.FixedPrecisionDataType
+	 * @generated
+	 */
+	public Adapter createFixedPrecisionDataTypeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.datatypes.Domain <em>Domain</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.Domain
+	 * @generated
+	 */
+	public Adapter createDomainAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.datatypes.Field <em>Field</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.Field
+	 * @generated
+	 */
+	public Adapter createFieldAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.datatypes.ReferenceDataType <em>Reference Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.ReferenceDataType
+	 * @generated
+	 */
+	public Adapter createReferenceDataTypeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.datatypes.ConstructedDataType <em>Constructed Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.ConstructedDataType
+	 * @generated
+	 */
+	public Adapter createConstructedDataTypeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.datatypes.SQLDataType <em>SQL Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataType
+	 * @generated
+	 */
+	public Adapter createSQLDataTypeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.datatypes.DataLinkDataType <em>Data Link Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.DataLinkDataType
+	 * @generated
+	 */
+	public Adapter createDataLinkDataTypeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedTypeOrdering <em>User Defined Type Ordering</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedTypeOrdering
+	 * @generated
+	 */
+	public Adapter createUserDefinedTypeOrderingAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.datatypes.DateDataType <em>Date Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.DateDataType
+	 * @generated
+	 */
+	public Adapter createDateDataTypeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.datatypes.ExactNumericDataType <em>Exact Numeric Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.ExactNumericDataType
+	 * @generated
+	 */
+	public Adapter createExactNumericDataTypeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.datatypes.ApproximateNumericDataType <em>Approximate Numeric Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.ApproximateNumericDataType
+	 * @generated
+	 */
+	public Adapter createApproximateNumericDataTypeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.datatypes.IntegerDataType <em>Integer Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.IntegerDataType
+	 * @generated
+	 */
+	public Adapter createIntegerDataTypeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.datatypes.XMLDataType <em>XML Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.XMLDataType
+	 * @generated
+	 */
+	public Adapter createXMLDataTypeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.datatypes.ElementType <em>Element Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.ElementType
+	 * @generated
+	 */
+	public Adapter createElementTypeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecore.EModelElement <em>EModel Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.emf.ecore.EModelElement
+	 * @generated
+	 */
+	public Adapter createEModelElementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecore.ENamedElement <em>ENamed Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.emf.ecore.ENamedElement
+	 * @generated
+	 */
+	public Adapter createENamedElementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.schema.SQLObject <em>SQL Object</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLObject
+	 * @generated
+	 */
+	public Adapter createSQLObjectAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.schema.TypedElement <em>Typed Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.TypedElement
+	 * @generated
+	 */
+	public Adapter createTypedElementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for the default case.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @generated
+	 */
+	public Adapter createEObjectAdapter() {
+		return null;
+	}
+
+} //SQLDataTypesAdapterFactory
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/util/SQLDataTypesSwitch.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/util/SQLDataTypesSwitch.java
new file mode 100644
index 0000000..5f447c4
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/datatypes/util/SQLDataTypesSwitch.java
@@ -0,0 +1,993 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.datatypes.util;
+
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.*;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.modelbase.sql.schema.TypedElement;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EModelElement;
+import org.eclipse.emf.ecore.ENamedElement;
+import org.eclipse.emf.ecore.EObject;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage
+ * @generated
+ */
+public class SQLDataTypesSwitch {
+	/**
+	 * The cached model package
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static SQLDataTypesPackage modelPackage;
+
+	/**
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLDataTypesSwitch() {
+		if (modelPackage == null) {
+			modelPackage = SQLDataTypesPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	public Object doSwitch(EObject theEObject) {
+		return doSwitch(theEObject.eClass(), theEObject);
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	protected Object doSwitch(EClass theEClass, EObject theEObject) {
+		if (theEClass.eContainer() == modelPackage) {
+			return doSwitch(theEClass.getClassifierID(), theEObject);
+		}
+		else {
+			List eSuperTypes = theEClass.getESuperTypes();
+			return
+				eSuperTypes.isEmpty() ?
+					defaultCase(theEObject) :
+					doSwitch((EClass)eSuperTypes.get(0), theEObject);
+		}
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	protected Object doSwitch(int classifierID, EObject theEObject) {
+		switch (classifierID) {
+			case SQLDataTypesPackage.USER_DEFINED_TYPE: {
+				UserDefinedType userDefinedType = (UserDefinedType)theEObject;
+				Object result = caseUserDefinedType(userDefinedType);
+				if (result == null) result = caseDataType(userDefinedType);
+				if (result == null) result = caseSQLObject(userDefinedType);
+				if (result == null) result = caseENamedElement(userDefinedType);
+				if (result == null) result = caseEModelElement(userDefinedType);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLDataTypesPackage.DATA_TYPE: {
+				DataType dataType = (DataType)theEObject;
+				Object result = caseDataType(dataType);
+				if (result == null) result = caseSQLObject(dataType);
+				if (result == null) result = caseENamedElement(dataType);
+				if (result == null) result = caseEModelElement(dataType);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLDataTypesPackage.PREDEFINED_DATA_TYPE: {
+				PredefinedDataType predefinedDataType = (PredefinedDataType)theEObject;
+				Object result = casePredefinedDataType(predefinedDataType);
+				if (result == null) result = caseSQLDataType(predefinedDataType);
+				if (result == null) result = caseDataType(predefinedDataType);
+				if (result == null) result = caseSQLObject(predefinedDataType);
+				if (result == null) result = caseENamedElement(predefinedDataType);
+				if (result == null) result = caseEModelElement(predefinedDataType);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLDataTypesPackage.COLLECTION_DATA_TYPE: {
+				CollectionDataType collectionDataType = (CollectionDataType)theEObject;
+				Object result = caseCollectionDataType(collectionDataType);
+				if (result == null) result = caseConstructedDataType(collectionDataType);
+				if (result == null) result = caseDataType(collectionDataType);
+				if (result == null) result = caseSQLObject(collectionDataType);
+				if (result == null) result = caseENamedElement(collectionDataType);
+				if (result == null) result = caseEModelElement(collectionDataType);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLDataTypesPackage.NUMERICAL_DATA_TYPE: {
+				NumericalDataType numericalDataType = (NumericalDataType)theEObject;
+				Object result = caseNumericalDataType(numericalDataType);
+				if (result == null) result = casePredefinedDataType(numericalDataType);
+				if (result == null) result = caseSQLDataType(numericalDataType);
+				if (result == null) result = caseDataType(numericalDataType);
+				if (result == null) result = caseSQLObject(numericalDataType);
+				if (result == null) result = caseENamedElement(numericalDataType);
+				if (result == null) result = caseEModelElement(numericalDataType);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLDataTypesPackage.CHARACTER_STRING_DATA_TYPE: {
+				CharacterStringDataType characterStringDataType = (CharacterStringDataType)theEObject;
+				Object result = caseCharacterStringDataType(characterStringDataType);
+				if (result == null) result = casePredefinedDataType(characterStringDataType);
+				if (result == null) result = caseSQLDataType(characterStringDataType);
+				if (result == null) result = caseDataType(characterStringDataType);
+				if (result == null) result = caseSQLObject(characterStringDataType);
+				if (result == null) result = caseENamedElement(characterStringDataType);
+				if (result == null) result = caseEModelElement(characterStringDataType);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLDataTypesPackage.ROW_DATA_TYPE: {
+				RowDataType rowDataType = (RowDataType)theEObject;
+				Object result = caseRowDataType(rowDataType);
+				if (result == null) result = caseConstructedDataType(rowDataType);
+				if (result == null) result = caseDataType(rowDataType);
+				if (result == null) result = caseSQLObject(rowDataType);
+				if (result == null) result = caseENamedElement(rowDataType);
+				if (result == null) result = caseEModelElement(rowDataType);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLDataTypesPackage.ARRAY_DATA_TYPE: {
+				ArrayDataType arrayDataType = (ArrayDataType)theEObject;
+				Object result = caseArrayDataType(arrayDataType);
+				if (result == null) result = caseCollectionDataType(arrayDataType);
+				if (result == null) result = caseConstructedDataType(arrayDataType);
+				if (result == null) result = caseDataType(arrayDataType);
+				if (result == null) result = caseSQLObject(arrayDataType);
+				if (result == null) result = caseENamedElement(arrayDataType);
+				if (result == null) result = caseEModelElement(arrayDataType);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLDataTypesPackage.MULTISET_DATA_TYPE: {
+				MultisetDataType multisetDataType = (MultisetDataType)theEObject;
+				Object result = caseMultisetDataType(multisetDataType);
+				if (result == null) result = caseCollectionDataType(multisetDataType);
+				if (result == null) result = caseConstructedDataType(multisetDataType);
+				if (result == null) result = caseDataType(multisetDataType);
+				if (result == null) result = caseSQLObject(multisetDataType);
+				if (result == null) result = caseENamedElement(multisetDataType);
+				if (result == null) result = caseEModelElement(multisetDataType);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLDataTypesPackage.BOOLEAN_DATA_TYPE: {
+				BooleanDataType booleanDataType = (BooleanDataType)theEObject;
+				Object result = caseBooleanDataType(booleanDataType);
+				if (result == null) result = casePredefinedDataType(booleanDataType);
+				if (result == null) result = caseSQLDataType(booleanDataType);
+				if (result == null) result = caseDataType(booleanDataType);
+				if (result == null) result = caseSQLObject(booleanDataType);
+				if (result == null) result = caseENamedElement(booleanDataType);
+				if (result == null) result = caseEModelElement(booleanDataType);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLDataTypesPackage.INTERVAL_DATA_TYPE: {
+				IntervalDataType intervalDataType = (IntervalDataType)theEObject;
+				Object result = caseIntervalDataType(intervalDataType);
+				if (result == null) result = casePredefinedDataType(intervalDataType);
+				if (result == null) result = caseSQLDataType(intervalDataType);
+				if (result == null) result = caseDataType(intervalDataType);
+				if (result == null) result = caseSQLObject(intervalDataType);
+				if (result == null) result = caseENamedElement(intervalDataType);
+				if (result == null) result = caseEModelElement(intervalDataType);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLDataTypesPackage.BINARY_STRING_DATA_TYPE: {
+				BinaryStringDataType binaryStringDataType = (BinaryStringDataType)theEObject;
+				Object result = caseBinaryStringDataType(binaryStringDataType);
+				if (result == null) result = casePredefinedDataType(binaryStringDataType);
+				if (result == null) result = caseSQLDataType(binaryStringDataType);
+				if (result == null) result = caseDataType(binaryStringDataType);
+				if (result == null) result = caseSQLObject(binaryStringDataType);
+				if (result == null) result = caseENamedElement(binaryStringDataType);
+				if (result == null) result = caseEModelElement(binaryStringDataType);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLDataTypesPackage.CHARACTER_SET: {
+				CharacterSet characterSet = (CharacterSet)theEObject;
+				Object result = caseCharacterSet(characterSet);
+				if (result == null) result = caseSQLObject(characterSet);
+				if (result == null) result = caseENamedElement(characterSet);
+				if (result == null) result = caseEModelElement(characterSet);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLDataTypesPackage.TIME_DATA_TYPE: {
+				TimeDataType timeDataType = (TimeDataType)theEObject;
+				Object result = caseTimeDataType(timeDataType);
+				if (result == null) result = casePredefinedDataType(timeDataType);
+				if (result == null) result = caseSQLDataType(timeDataType);
+				if (result == null) result = caseDataType(timeDataType);
+				if (result == null) result = caseSQLObject(timeDataType);
+				if (result == null) result = caseENamedElement(timeDataType);
+				if (result == null) result = caseEModelElement(timeDataType);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLDataTypesPackage.DISTINCT_USER_DEFINED_TYPE: {
+				DistinctUserDefinedType distinctUserDefinedType = (DistinctUserDefinedType)theEObject;
+				Object result = caseDistinctUserDefinedType(distinctUserDefinedType);
+				if (result == null) result = caseUserDefinedType(distinctUserDefinedType);
+				if (result == null) result = caseDataType(distinctUserDefinedType);
+				if (result == null) result = caseSQLObject(distinctUserDefinedType);
+				if (result == null) result = caseENamedElement(distinctUserDefinedType);
+				if (result == null) result = caseEModelElement(distinctUserDefinedType);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE: {
+				StructuredUserDefinedType structuredUserDefinedType = (StructuredUserDefinedType)theEObject;
+				Object result = caseStructuredUserDefinedType(structuredUserDefinedType);
+				if (result == null) result = caseUserDefinedType(structuredUserDefinedType);
+				if (result == null) result = caseDataType(structuredUserDefinedType);
+				if (result == null) result = caseSQLObject(structuredUserDefinedType);
+				if (result == null) result = caseENamedElement(structuredUserDefinedType);
+				if (result == null) result = caseEModelElement(structuredUserDefinedType);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLDataTypesPackage.ATTRIBUTE_DEFINITION: {
+				AttributeDefinition attributeDefinition = (AttributeDefinition)theEObject;
+				Object result = caseAttributeDefinition(attributeDefinition);
+				if (result == null) result = caseTypedElement(attributeDefinition);
+				if (result == null) result = caseSQLObject(attributeDefinition);
+				if (result == null) result = caseENamedElement(attributeDefinition);
+				if (result == null) result = caseEModelElement(attributeDefinition);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLDataTypesPackage.FIXED_PRECISION_DATA_TYPE: {
+				FixedPrecisionDataType fixedPrecisionDataType = (FixedPrecisionDataType)theEObject;
+				Object result = caseFixedPrecisionDataType(fixedPrecisionDataType);
+				if (result == null) result = caseExactNumericDataType(fixedPrecisionDataType);
+				if (result == null) result = caseNumericalDataType(fixedPrecisionDataType);
+				if (result == null) result = casePredefinedDataType(fixedPrecisionDataType);
+				if (result == null) result = caseSQLDataType(fixedPrecisionDataType);
+				if (result == null) result = caseDataType(fixedPrecisionDataType);
+				if (result == null) result = caseSQLObject(fixedPrecisionDataType);
+				if (result == null) result = caseENamedElement(fixedPrecisionDataType);
+				if (result == null) result = caseEModelElement(fixedPrecisionDataType);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLDataTypesPackage.DOMAIN: {
+				Domain domain = (Domain)theEObject;
+				Object result = caseDomain(domain);
+				if (result == null) result = caseDistinctUserDefinedType(domain);
+				if (result == null) result = caseUserDefinedType(domain);
+				if (result == null) result = caseDataType(domain);
+				if (result == null) result = caseSQLObject(domain);
+				if (result == null) result = caseENamedElement(domain);
+				if (result == null) result = caseEModelElement(domain);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLDataTypesPackage.FIELD: {
+				Field field = (Field)theEObject;
+				Object result = caseField(field);
+				if (result == null) result = caseTypedElement(field);
+				if (result == null) result = caseSQLObject(field);
+				if (result == null) result = caseENamedElement(field);
+				if (result == null) result = caseEModelElement(field);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLDataTypesPackage.REFERENCE_DATA_TYPE: {
+				ReferenceDataType referenceDataType = (ReferenceDataType)theEObject;
+				Object result = caseReferenceDataType(referenceDataType);
+				if (result == null) result = caseConstructedDataType(referenceDataType);
+				if (result == null) result = caseDataType(referenceDataType);
+				if (result == null) result = caseSQLObject(referenceDataType);
+				if (result == null) result = caseENamedElement(referenceDataType);
+				if (result == null) result = caseEModelElement(referenceDataType);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLDataTypesPackage.CONSTRUCTED_DATA_TYPE: {
+				ConstructedDataType constructedDataType = (ConstructedDataType)theEObject;
+				Object result = caseConstructedDataType(constructedDataType);
+				if (result == null) result = caseDataType(constructedDataType);
+				if (result == null) result = caseSQLObject(constructedDataType);
+				if (result == null) result = caseENamedElement(constructedDataType);
+				if (result == null) result = caseEModelElement(constructedDataType);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLDataTypesPackage.SQL_DATA_TYPE: {
+				SQLDataType sqlDataType = (SQLDataType)theEObject;
+				Object result = caseSQLDataType(sqlDataType);
+				if (result == null) result = caseDataType(sqlDataType);
+				if (result == null) result = caseSQLObject(sqlDataType);
+				if (result == null) result = caseENamedElement(sqlDataType);
+				if (result == null) result = caseEModelElement(sqlDataType);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLDataTypesPackage.DATA_LINK_DATA_TYPE: {
+				DataLinkDataType dataLinkDataType = (DataLinkDataType)theEObject;
+				Object result = caseDataLinkDataType(dataLinkDataType);
+				if (result == null) result = casePredefinedDataType(dataLinkDataType);
+				if (result == null) result = caseSQLDataType(dataLinkDataType);
+				if (result == null) result = caseDataType(dataLinkDataType);
+				if (result == null) result = caseSQLObject(dataLinkDataType);
+				if (result == null) result = caseENamedElement(dataLinkDataType);
+				if (result == null) result = caseEModelElement(dataLinkDataType);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLDataTypesPackage.USER_DEFINED_TYPE_ORDERING: {
+				UserDefinedTypeOrdering userDefinedTypeOrdering = (UserDefinedTypeOrdering)theEObject;
+				Object result = caseUserDefinedTypeOrdering(userDefinedTypeOrdering);
+				if (result == null) result = caseSQLObject(userDefinedTypeOrdering);
+				if (result == null) result = caseENamedElement(userDefinedTypeOrdering);
+				if (result == null) result = caseEModelElement(userDefinedTypeOrdering);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLDataTypesPackage.DATE_DATA_TYPE: {
+				DateDataType dateDataType = (DateDataType)theEObject;
+				Object result = caseDateDataType(dateDataType);
+				if (result == null) result = casePredefinedDataType(dateDataType);
+				if (result == null) result = caseSQLDataType(dateDataType);
+				if (result == null) result = caseDataType(dateDataType);
+				if (result == null) result = caseSQLObject(dateDataType);
+				if (result == null) result = caseENamedElement(dateDataType);
+				if (result == null) result = caseEModelElement(dateDataType);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLDataTypesPackage.EXACT_NUMERIC_DATA_TYPE: {
+				ExactNumericDataType exactNumericDataType = (ExactNumericDataType)theEObject;
+				Object result = caseExactNumericDataType(exactNumericDataType);
+				if (result == null) result = caseNumericalDataType(exactNumericDataType);
+				if (result == null) result = casePredefinedDataType(exactNumericDataType);
+				if (result == null) result = caseSQLDataType(exactNumericDataType);
+				if (result == null) result = caseDataType(exactNumericDataType);
+				if (result == null) result = caseSQLObject(exactNumericDataType);
+				if (result == null) result = caseENamedElement(exactNumericDataType);
+				if (result == null) result = caseEModelElement(exactNumericDataType);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLDataTypesPackage.APPROXIMATE_NUMERIC_DATA_TYPE: {
+				ApproximateNumericDataType approximateNumericDataType = (ApproximateNumericDataType)theEObject;
+				Object result = caseApproximateNumericDataType(approximateNumericDataType);
+				if (result == null) result = caseNumericalDataType(approximateNumericDataType);
+				if (result == null) result = casePredefinedDataType(approximateNumericDataType);
+				if (result == null) result = caseSQLDataType(approximateNumericDataType);
+				if (result == null) result = caseDataType(approximateNumericDataType);
+				if (result == null) result = caseSQLObject(approximateNumericDataType);
+				if (result == null) result = caseENamedElement(approximateNumericDataType);
+				if (result == null) result = caseEModelElement(approximateNumericDataType);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLDataTypesPackage.INTEGER_DATA_TYPE: {
+				IntegerDataType integerDataType = (IntegerDataType)theEObject;
+				Object result = caseIntegerDataType(integerDataType);
+				if (result == null) result = caseExactNumericDataType(integerDataType);
+				if (result == null) result = caseNumericalDataType(integerDataType);
+				if (result == null) result = casePredefinedDataType(integerDataType);
+				if (result == null) result = caseSQLDataType(integerDataType);
+				if (result == null) result = caseDataType(integerDataType);
+				if (result == null) result = caseSQLObject(integerDataType);
+				if (result == null) result = caseENamedElement(integerDataType);
+				if (result == null) result = caseEModelElement(integerDataType);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLDataTypesPackage.XML_DATA_TYPE: {
+				XMLDataType xmlDataType = (XMLDataType)theEObject;
+				Object result = caseXMLDataType(xmlDataType);
+				if (result == null) result = casePredefinedDataType(xmlDataType);
+				if (result == null) result = caseSQLDataType(xmlDataType);
+				if (result == null) result = caseDataType(xmlDataType);
+				if (result == null) result = caseSQLObject(xmlDataType);
+				if (result == null) result = caseENamedElement(xmlDataType);
+				if (result == null) result = caseEModelElement(xmlDataType);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLDataTypesPackage.ELEMENT_TYPE: {
+				ElementType elementType = (ElementType)theEObject;
+				Object result = caseElementType(elementType);
+				if (result == null) result = caseTypedElement(elementType);
+				if (result == null) result = caseSQLObject(elementType);
+				if (result == null) result = caseENamedElement(elementType);
+				if (result == null) result = caseEModelElement(elementType);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			default: return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>User Defined Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>User Defined Type</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseUserDefinedType(UserDefinedType object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Data Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Data Type</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseDataType(DataType object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Predefined Data Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Predefined Data Type</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object casePredefinedDataType(PredefinedDataType object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Collection Data Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Collection Data Type</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseCollectionDataType(CollectionDataType object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Numerical Data Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Numerical Data Type</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseNumericalDataType(NumericalDataType object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Character String Data Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Character String Data Type</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseCharacterStringDataType(CharacterStringDataType object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Row Data Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Row Data Type</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseRowDataType(RowDataType object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Array Data Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Array Data Type</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseArrayDataType(ArrayDataType object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Multiset Data Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Multiset Data Type</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseMultisetDataType(MultisetDataType object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Boolean Data Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Boolean Data Type</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseBooleanDataType(BooleanDataType object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Interval Data Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Interval Data Type</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseIntervalDataType(IntervalDataType object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Binary String Data Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Binary String Data Type</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseBinaryStringDataType(BinaryStringDataType object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Character Set</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Character Set</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseCharacterSet(CharacterSet object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Time Data Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Time Data Type</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseTimeDataType(TimeDataType object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Distinct User Defined Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Distinct User Defined Type</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseDistinctUserDefinedType(DistinctUserDefinedType object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Structured User Defined Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Structured User Defined Type</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseStructuredUserDefinedType(StructuredUserDefinedType object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Attribute Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Attribute Definition</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseAttributeDefinition(AttributeDefinition object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Fixed Precision Data Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Fixed Precision Data Type</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseFixedPrecisionDataType(FixedPrecisionDataType object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Domain</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Domain</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseDomain(Domain object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Field</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Field</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseField(Field object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Reference Data Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Reference Data Type</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseReferenceDataType(ReferenceDataType object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Constructed Data Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Constructed Data Type</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseConstructedDataType(ConstructedDataType object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>SQL Data Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>SQL Data Type</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseSQLDataType(SQLDataType object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Data Link Data Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Data Link Data Type</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseDataLinkDataType(DataLinkDataType object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>User Defined Type Ordering</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>User Defined Type Ordering</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseUserDefinedTypeOrdering(UserDefinedTypeOrdering object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Date Data Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Date Data Type</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseDateDataType(DateDataType object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Exact Numeric Data Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Exact Numeric Data Type</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseExactNumericDataType(ExactNumericDataType object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Approximate Numeric Data Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Approximate Numeric Data Type</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseApproximateNumericDataType(ApproximateNumericDataType object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Integer Data Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Integer Data Type</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseIntegerDataType(IntegerDataType object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>XML Data Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>XML Data Type</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseXMLDataType(XMLDataType object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Element Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Element Type</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseElementType(ElementType object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EModel Element</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>EModel Element</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseEModelElement(EModelElement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>ENamed Element</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>ENamed Element</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseENamedElement(ENamedElement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>SQL Object</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>SQL Object</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseSQLObject(SQLObject object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Typed Element</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Typed Element</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseTypedElement(TypedElement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch, but this is the last case anyway.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+	 * @generated
+	 */
+	public Object defaultCase(EObject object) {
+		return null;
+	}
+
+} //SQLDataTypesSwitch
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/QueryExpression.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/QueryExpression.java
new file mode 100644
index 0000000..383ddb9
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/QueryExpression.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.expressions;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Query Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 7 Query Expression
+ * 
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsPackage#getQueryExpression()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface QueryExpression extends EObject {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model kind="operation"
+	 * @generated
+	 */
+	String getSQL();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model
+	 * @generated
+	 */
+	void setSQL(String sqlText);
+
+} // QueryExpression
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/QueryExpressionDefault.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/QueryExpressionDefault.java
new file mode 100644
index 0000000..3872034
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/QueryExpressionDefault.java
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.expressions;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Query Expression Default</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Place holder for the default query expression.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.expressions.QueryExpressionDefault#getSQL <em>SQL</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsPackage#getQueryExpressionDefault()
+ * @model
+ * @generated
+ */
+public interface QueryExpressionDefault extends SQLObject, QueryExpression {
+	/**
+	 * Returns the value of the '<em><b>SQL</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>SQL</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>SQL</em>' attribute.
+	 * @see #setSQL(String)
+	 * @see org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsPackage#getQueryExpressionDefault_SQL()
+	 * @model
+	 * @generated
+	 */
+	String getSQL();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.expressions.QueryExpressionDefault#getSQL <em>SQL</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>SQL</em>' attribute.
+	 * @see #getSQL()
+	 * @generated
+	 */
+	void setSQL(String value);
+
+} // QueryExpressionDefault
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/SQLExpressionsFactory.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/SQLExpressionsFactory.java
new file mode 100644
index 0000000..2e5c70b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/SQLExpressionsFactory.java
@@ -0,0 +1,68 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.expressions;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsPackage
+ * @generated
+ */
+public interface SQLExpressionsFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	SQLExpressionsFactory eINSTANCE = org.eclipse.datatools.modelbase.sql.expressions.impl.SQLExpressionsFactoryImpl.init();
+
+	/**
+	 * Returns a new object of class '<em>Query Expression Default</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Query Expression Default</em>'.
+	 * @generated
+	 */
+	QueryExpressionDefault createQueryExpressionDefault();
+
+	/**
+	 * Returns a new object of class '<em>Search Condition Default</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Search Condition Default</em>'.
+	 * @generated
+	 */
+	SearchConditionDefault createSearchConditionDefault();
+
+	/**
+	 * Returns a new object of class '<em>Value Expression Default</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Value Expression Default</em>'.
+	 * @generated
+	 */
+	ValueExpressionDefault createValueExpressionDefault();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	SQLExpressionsPackage getSQLExpressionsPackage();
+
+} //SQLExpressionsFactory
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/SQLExpressionsPackage.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/SQLExpressionsPackage.java
new file mode 100644
index 0000000..d257687
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/SQLExpressionsPackage.java
@@ -0,0 +1,625 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.expressions;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ *   <li>each class,</li>
+ *   <li>each feature of each class,</li>
+ *   <li>each enum,</li>
+ *   <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface SQLExpressionsPackage extends EPackage {
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNAME = "expressions"; //$NON-NLS-1$
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_URI = "http:///org/eclipse/datatools/modelbase/sql/expressions.ecore"; //$NON-NLS-1$
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_PREFIX = "SQLExpressions"; //$NON-NLS-1$
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	SQLExpressionsPackage eINSTANCE = org.eclipse.datatools.modelbase.sql.expressions.impl.SQLExpressionsPackageImpl.init();
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.expressions.QueryExpression <em>Query Expression</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.expressions.QueryExpression
+	 * @see org.eclipse.datatools.modelbase.sql.expressions.impl.SQLExpressionsPackageImpl#getQueryExpression()
+	 * @generated
+	 */
+	int QUERY_EXPRESSION = 0;
+
+	/**
+	 * The number of structural features of the '<em>Query Expression</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int QUERY_EXPRESSION_FEATURE_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.expressions.ValueExpression <em>Value Expression</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.expressions.ValueExpression
+	 * @see org.eclipse.datatools.modelbase.sql.expressions.impl.SQLExpressionsPackageImpl#getValueExpression()
+	 * @generated
+	 */
+	int VALUE_EXPRESSION = 1;
+
+	/**
+	 * The number of structural features of the '<em>Value Expression</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VALUE_EXPRESSION_FEATURE_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.expressions.SearchCondition <em>Search Condition</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.expressions.SearchCondition
+	 * @see org.eclipse.datatools.modelbase.sql.expressions.impl.SQLExpressionsPackageImpl#getSearchCondition()
+	 * @generated
+	 */
+	int SEARCH_CONDITION = 2;
+
+	/**
+	 * The number of structural features of the '<em>Search Condition</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEARCH_CONDITION_FEATURE_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.expressions.impl.QueryExpressionDefaultImpl <em>Query Expression Default</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.expressions.impl.QueryExpressionDefaultImpl
+	 * @see org.eclipse.datatools.modelbase.sql.expressions.impl.SQLExpressionsPackageImpl#getQueryExpressionDefault()
+	 * @generated
+	 */
+	int QUERY_EXPRESSION_DEFAULT = 3;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int QUERY_EXPRESSION_DEFAULT__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int QUERY_EXPRESSION_DEFAULT__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int QUERY_EXPRESSION_DEFAULT__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int QUERY_EXPRESSION_DEFAULT__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int QUERY_EXPRESSION_DEFAULT__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int QUERY_EXPRESSION_DEFAULT__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int QUERY_EXPRESSION_DEFAULT__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int QUERY_EXPRESSION_DEFAULT__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>SQL</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int QUERY_EXPRESSION_DEFAULT__SQL = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Query Expression Default</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int QUERY_EXPRESSION_DEFAULT_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.expressions.impl.SearchConditionDefaultImpl <em>Search Condition Default</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.expressions.impl.SearchConditionDefaultImpl
+	 * @see org.eclipse.datatools.modelbase.sql.expressions.impl.SQLExpressionsPackageImpl#getSearchConditionDefault()
+	 * @generated
+	 */
+	int SEARCH_CONDITION_DEFAULT = 4;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEARCH_CONDITION_DEFAULT__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEARCH_CONDITION_DEFAULT__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEARCH_CONDITION_DEFAULT__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEARCH_CONDITION_DEFAULT__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEARCH_CONDITION_DEFAULT__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEARCH_CONDITION_DEFAULT__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEARCH_CONDITION_DEFAULT__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEARCH_CONDITION_DEFAULT__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>SQL</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEARCH_CONDITION_DEFAULT__SQL = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Search Condition Default</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEARCH_CONDITION_DEFAULT_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.expressions.impl.ValueExpressionDefaultImpl <em>Value Expression Default</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.expressions.impl.ValueExpressionDefaultImpl
+	 * @see org.eclipse.datatools.modelbase.sql.expressions.impl.SQLExpressionsPackageImpl#getValueExpressionDefault()
+	 * @generated
+	 */
+	int VALUE_EXPRESSION_DEFAULT = 5;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VALUE_EXPRESSION_DEFAULT__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VALUE_EXPRESSION_DEFAULT__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VALUE_EXPRESSION_DEFAULT__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VALUE_EXPRESSION_DEFAULT__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VALUE_EXPRESSION_DEFAULT__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VALUE_EXPRESSION_DEFAULT__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VALUE_EXPRESSION_DEFAULT__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VALUE_EXPRESSION_DEFAULT__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>SQL</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VALUE_EXPRESSION_DEFAULT__SQL = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Value Expression Default</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VALUE_EXPRESSION_DEFAULT_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.expressions.QueryExpression <em>Query Expression</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Query Expression</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.expressions.QueryExpression
+	 * @generated
+	 */
+	EClass getQueryExpression();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.expressions.ValueExpression <em>Value Expression</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Value Expression</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.expressions.ValueExpression
+	 * @generated
+	 */
+	EClass getValueExpression();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.expressions.SearchCondition <em>Search Condition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Search Condition</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.expressions.SearchCondition
+	 * @generated
+	 */
+	EClass getSearchCondition();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.expressions.QueryExpressionDefault <em>Query Expression Default</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Query Expression Default</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.expressions.QueryExpressionDefault
+	 * @generated
+	 */
+	EClass getQueryExpressionDefault();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.expressions.QueryExpressionDefault#getSQL <em>SQL</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>SQL</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.expressions.QueryExpressionDefault#getSQL()
+	 * @see #getQueryExpressionDefault()
+	 * @generated
+	 */
+	EAttribute getQueryExpressionDefault_SQL();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.expressions.SearchConditionDefault <em>Search Condition Default</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Search Condition Default</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.expressions.SearchConditionDefault
+	 * @generated
+	 */
+	EClass getSearchConditionDefault();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.expressions.SearchConditionDefault#getSQL <em>SQL</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>SQL</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.expressions.SearchConditionDefault#getSQL()
+	 * @see #getSearchConditionDefault()
+	 * @generated
+	 */
+	EAttribute getSearchConditionDefault_SQL();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.expressions.ValueExpressionDefault <em>Value Expression Default</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Value Expression Default</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.expressions.ValueExpressionDefault
+	 * @generated
+	 */
+	EClass getValueExpressionDefault();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.expressions.ValueExpressionDefault#getSQL <em>SQL</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>SQL</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.expressions.ValueExpressionDefault#getSQL()
+	 * @see #getValueExpressionDefault()
+	 * @generated
+	 */
+	EAttribute getValueExpressionDefault_SQL();
+
+	/**
+	 * Returns the factory that creates the instances of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the factory that creates the instances of the model.
+	 * @generated
+	 */
+	SQLExpressionsFactory getSQLExpressionsFactory();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * Defines literals for the meta objects that represent
+	 * <ul>
+	 *   <li>each class,</li>
+	 *   <li>each feature of each class,</li>
+	 *   <li>each enum,</li>
+	 *   <li>and each data type</li>
+	 * </ul>
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	interface Literals  {
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.expressions.QueryExpression <em>Query Expression</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.expressions.QueryExpression
+		 * @see org.eclipse.datatools.modelbase.sql.expressions.impl.SQLExpressionsPackageImpl#getQueryExpression()
+		 * @generated
+		 */
+		EClass QUERY_EXPRESSION = eINSTANCE.getQueryExpression();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.expressions.ValueExpression <em>Value Expression</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.expressions.ValueExpression
+		 * @see org.eclipse.datatools.modelbase.sql.expressions.impl.SQLExpressionsPackageImpl#getValueExpression()
+		 * @generated
+		 */
+		EClass VALUE_EXPRESSION = eINSTANCE.getValueExpression();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.expressions.SearchCondition <em>Search Condition</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.expressions.SearchCondition
+		 * @see org.eclipse.datatools.modelbase.sql.expressions.impl.SQLExpressionsPackageImpl#getSearchCondition()
+		 * @generated
+		 */
+		EClass SEARCH_CONDITION = eINSTANCE.getSearchCondition();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.expressions.impl.QueryExpressionDefaultImpl <em>Query Expression Default</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.expressions.impl.QueryExpressionDefaultImpl
+		 * @see org.eclipse.datatools.modelbase.sql.expressions.impl.SQLExpressionsPackageImpl#getQueryExpressionDefault()
+		 * @generated
+		 */
+		EClass QUERY_EXPRESSION_DEFAULT = eINSTANCE.getQueryExpressionDefault();
+
+		/**
+		 * The meta object literal for the '<em><b>SQL</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute QUERY_EXPRESSION_DEFAULT__SQL = eINSTANCE.getQueryExpressionDefault_SQL();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.expressions.impl.SearchConditionDefaultImpl <em>Search Condition Default</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.expressions.impl.SearchConditionDefaultImpl
+		 * @see org.eclipse.datatools.modelbase.sql.expressions.impl.SQLExpressionsPackageImpl#getSearchConditionDefault()
+		 * @generated
+		 */
+		EClass SEARCH_CONDITION_DEFAULT = eINSTANCE.getSearchConditionDefault();
+
+		/**
+		 * The meta object literal for the '<em><b>SQL</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute SEARCH_CONDITION_DEFAULT__SQL = eINSTANCE.getSearchConditionDefault_SQL();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.expressions.impl.ValueExpressionDefaultImpl <em>Value Expression Default</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.expressions.impl.ValueExpressionDefaultImpl
+		 * @see org.eclipse.datatools.modelbase.sql.expressions.impl.SQLExpressionsPackageImpl#getValueExpressionDefault()
+		 * @generated
+		 */
+		EClass VALUE_EXPRESSION_DEFAULT = eINSTANCE.getValueExpressionDefault();
+
+		/**
+		 * The meta object literal for the '<em><b>SQL</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute VALUE_EXPRESSION_DEFAULT__SQL = eINSTANCE.getValueExpressionDefault_SQL();
+
+	}
+
+} //SQLExpressionsPackage
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/SearchCondition.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/SearchCondition.java
new file mode 100644
index 0000000..661acf9
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/SearchCondition.java
@@ -0,0 +1,46 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.expressions;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Search Condition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsPackage#getSearchCondition()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface SearchCondition extends EObject {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model kind="operation"
+	 * @generated
+	 */
+	String getSQL();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model
+	 * @generated
+	 */
+	void setSQL(String sqlText);
+
+} // SearchCondition
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/SearchConditionDefault.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/SearchConditionDefault.java
new file mode 100644
index 0000000..215b40a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/SearchConditionDefault.java
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.expressions;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Search Condition Default</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Place holder for the default search condition.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.expressions.SearchConditionDefault#getSQL <em>SQL</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsPackage#getSearchConditionDefault()
+ * @model
+ * @generated
+ */
+public interface SearchConditionDefault extends SQLObject, SearchCondition {
+	/**
+	 * Returns the value of the '<em><b>SQL</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>SQL</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>SQL</em>' attribute.
+	 * @see #setSQL(String)
+	 * @see org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsPackage#getSearchConditionDefault_SQL()
+	 * @model
+	 * @generated
+	 */
+	String getSQL();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.expressions.SearchConditionDefault#getSQL <em>SQL</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>SQL</em>' attribute.
+	 * @see #getSQL()
+	 * @generated
+	 */
+	void setSQL(String value);
+
+} // SearchConditionDefault
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/ValueExpression.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/ValueExpression.java
new file mode 100644
index 0000000..2e85141
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/ValueExpression.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.expressions;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Value Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.14.5 Base columns and generated columns
+ * 
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsPackage#getValueExpression()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface ValueExpression extends EObject {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model kind="operation"
+	 * @generated
+	 */
+	String getSQL();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model
+	 * @generated
+	 */
+	void setSQL(String sqlText);
+
+} // ValueExpression
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/ValueExpressionDefault.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/ValueExpressionDefault.java
new file mode 100644
index 0000000..a220016
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/ValueExpressionDefault.java
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.expressions;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Value Expression Default</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Place holder for the default value expression.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.expressions.ValueExpressionDefault#getSQL <em>SQL</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsPackage#getValueExpressionDefault()
+ * @model
+ * @generated
+ */
+public interface ValueExpressionDefault extends SQLObject, ValueExpression {
+	/**
+	 * Returns the value of the '<em><b>SQL</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>SQL</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>SQL</em>' attribute.
+	 * @see #setSQL(String)
+	 * @see org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsPackage#getValueExpressionDefault_SQL()
+	 * @model
+	 * @generated
+	 */
+	String getSQL();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.expressions.ValueExpressionDefault#getSQL <em>SQL</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>SQL</em>' attribute.
+	 * @see #getSQL()
+	 * @generated
+	 */
+	void setSQL(String value);
+
+} // ValueExpressionDefault
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/impl/QueryExpressionDefaultImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/impl/QueryExpressionDefaultImpl.java
new file mode 100644
index 0000000..0a92b6e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/impl/QueryExpressionDefaultImpl.java
@@ -0,0 +1,168 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.expressions.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.expressions.QueryExpressionDefault;
+import org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsPackage;
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Query Expression Default</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.expressions.impl.QueryExpressionDefaultImpl#getSQL <em>SQL</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class QueryExpressionDefaultImpl extends SQLObjectImpl implements QueryExpressionDefault {
+	/**
+	 * The default value of the '{@link #getSQL() <em>SQL</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSQL()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String SQL_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getSQL() <em>SQL</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSQL()
+	 * @generated
+	 * @ordered
+	 */
+	protected String sql = SQL_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected QueryExpressionDefaultImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLExpressionsPackage.Literals.QUERY_EXPRESSION_DEFAULT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getSQL() {
+		return sql;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSQL(String newSQL) {
+		String oldSQL = sql;
+		sql = newSQL;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLExpressionsPackage.QUERY_EXPRESSION_DEFAULT__SQL, oldSQL, sql));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLExpressionsPackage.QUERY_EXPRESSION_DEFAULT__SQL:
+				return getSQL();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLExpressionsPackage.QUERY_EXPRESSION_DEFAULT__SQL:
+				setSQL((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLExpressionsPackage.QUERY_EXPRESSION_DEFAULT__SQL:
+				setSQL(SQL_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLExpressionsPackage.QUERY_EXPRESSION_DEFAULT__SQL:
+				return SQL_EDEFAULT == null ? sql != null : !SQL_EDEFAULT.equals(sql);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (SQL: "); //$NON-NLS-1$
+		result.append(sql);
+		result.append(')');
+		return result.toString();
+	}
+
+} //QueryExpressionDefaultImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/impl/SQLExpressionsFactoryImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/impl/SQLExpressionsFactoryImpl.java
new file mode 100644
index 0000000..474f5c4
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/impl/SQLExpressionsFactoryImpl.java
@@ -0,0 +1,122 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.expressions.impl;
+
+import org.eclipse.datatools.modelbase.sql.expressions.*;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SQLExpressionsFactoryImpl extends EFactoryImpl implements SQLExpressionsFactory {
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static SQLExpressionsFactory init() {
+		try {
+			SQLExpressionsFactory theSQLExpressionsFactory = (SQLExpressionsFactory)EPackage.Registry.INSTANCE.getEFactory("http:///org/eclipse/datatools/modelbase/sql/expressions.ecore"); //$NON-NLS-1$ 
+			if (theSQLExpressionsFactory != null) {
+				return theSQLExpressionsFactory;
+			}
+		}
+		catch (Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new SQLExpressionsFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLExpressionsFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+			case SQLExpressionsPackage.QUERY_EXPRESSION_DEFAULT: return createQueryExpressionDefault();
+			case SQLExpressionsPackage.SEARCH_CONDITION_DEFAULT: return createSearchConditionDefault();
+			case SQLExpressionsPackage.VALUE_EXPRESSION_DEFAULT: return createValueExpressionDefault();
+			default:
+				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public QueryExpressionDefault createQueryExpressionDefault() {
+		QueryExpressionDefaultImpl queryExpressionDefault = new QueryExpressionDefaultImpl();
+		return queryExpressionDefault;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SearchConditionDefault createSearchConditionDefault() {
+		SearchConditionDefaultImpl searchConditionDefault = new SearchConditionDefaultImpl();
+		return searchConditionDefault;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ValueExpressionDefault createValueExpressionDefault() {
+		ValueExpressionDefaultImpl valueExpressionDefault = new ValueExpressionDefaultImpl();
+		return valueExpressionDefault;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLExpressionsPackage getSQLExpressionsPackage() {
+		return (SQLExpressionsPackage)getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @deprecated
+	 * @generated
+	 */
+	public static SQLExpressionsPackage getPackage() {
+		return SQLExpressionsPackage.eINSTANCE;
+	}
+
+} //SQLExpressionsFactoryImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/impl/SQLExpressionsPackageImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/impl/SQLExpressionsPackageImpl.java
new file mode 100644
index 0000000..6dd07cf
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/impl/SQLExpressionsPackageImpl.java
@@ -0,0 +1,381 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.expressions.impl;
+
+import org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.impl.SQLAccessControlPackageImpl;
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;
+import org.eclipse.datatools.modelbase.sql.constraints.impl.SQLConstraintsPackageImpl;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl;
+import org.eclipse.datatools.modelbase.sql.expressions.QueryExpression;
+import org.eclipse.datatools.modelbase.sql.expressions.QueryExpressionDefault;
+import org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsFactory;
+import org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsPackage;
+import org.eclipse.datatools.modelbase.sql.expressions.SearchCondition;
+import org.eclipse.datatools.modelbase.sql.expressions.SearchConditionDefault;
+import org.eclipse.datatools.modelbase.sql.expressions.ValueExpression;
+import org.eclipse.datatools.modelbase.sql.expressions.ValueExpressionDefault;
+import org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage;
+import org.eclipse.datatools.modelbase.sql.routines.impl.SQLRoutinesPackageImpl;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLSchemaPackageImpl;
+import org.eclipse.datatools.modelbase.sql.statements.SQLStatementsPackage;
+import org.eclipse.datatools.modelbase.sql.statements.impl.SQLStatementsPackageImpl;
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+import org.eclipse.datatools.modelbase.sql.tables.impl.SQLTablesPackageImpl;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EcorePackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.emf.ecore.impl.EcorePackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SQLExpressionsPackageImpl extends EPackageImpl implements SQLExpressionsPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass queryExpressionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass valueExpressionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass searchConditionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass queryExpressionDefaultEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass searchConditionDefaultEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass valueExpressionDefaultEClass = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with
+	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+	 * package URI value.
+	 * <p>Note: the correct way to create the package is via the static
+	 * factory method {@link #init init()}, which also performs
+	 * initialization of the package, or returns the registered package,
+	 * if one already exists.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private SQLExpressionsPackageImpl() {
+		super(eNS_URI, SQLExpressionsFactory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this
+	 * model, and for any others upon which it depends.  Simple
+	 * dependencies are satisfied by calling this method on all
+	 * dependent packages before doing anything else.  This method drives
+	 * initialization for interdependent packages directly, in parallel
+	 * with this package, itself.
+	 * <p>Of this package and its interdependencies, all packages which
+	 * have not yet been registered by their URI values are first created
+	 * and registered.  The packages are then initialized in two steps:
+	 * meta-model objects for all of the packages are created before any
+	 * are initialized, since one package's meta-model objects may refer to
+	 * those of another.
+	 * <p>Invocation of this method will not affect any packages that have
+	 * already been initialized.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static SQLExpressionsPackage init() {
+		if (isInited) return (SQLExpressionsPackage)EPackage.Registry.INSTANCE.getEPackage(SQLExpressionsPackage.eNS_URI);
+
+		// Obtain or create and register package
+		SQLExpressionsPackageImpl theSQLExpressionsPackage = (SQLExpressionsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(eNS_URI) instanceof SQLExpressionsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(eNS_URI) : new SQLExpressionsPackageImpl());
+
+		isInited = true;
+
+		// Initialize simple dependencies
+		EcorePackage.eINSTANCE.eClass();
+
+		// Obtain or create and register interdependencies
+		SQLSchemaPackageImpl theSQLSchemaPackage = (SQLSchemaPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLSchemaPackage.eNS_URI) instanceof SQLSchemaPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLSchemaPackage.eNS_URI) : SQLSchemaPackage.eINSTANCE);
+		SQLConstraintsPackageImpl theSQLConstraintsPackage = (SQLConstraintsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLConstraintsPackage.eNS_URI) instanceof SQLConstraintsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLConstraintsPackage.eNS_URI) : SQLConstraintsPackage.eINSTANCE);
+		SQLDataTypesPackageImpl theSQLDataTypesPackage = (SQLDataTypesPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLDataTypesPackage.eNS_URI) instanceof SQLDataTypesPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLDataTypesPackage.eNS_URI) : SQLDataTypesPackage.eINSTANCE);
+		SQLRoutinesPackageImpl theSQLRoutinesPackage = (SQLRoutinesPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLRoutinesPackage.eNS_URI) instanceof SQLRoutinesPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLRoutinesPackage.eNS_URI) : SQLRoutinesPackage.eINSTANCE);
+		SQLStatementsPackageImpl theSQLStatementsPackage = (SQLStatementsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLStatementsPackage.eNS_URI) instanceof SQLStatementsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLStatementsPackage.eNS_URI) : SQLStatementsPackage.eINSTANCE);
+		SQLTablesPackageImpl theSQLTablesPackage = (SQLTablesPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLTablesPackage.eNS_URI) instanceof SQLTablesPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLTablesPackage.eNS_URI) : SQLTablesPackage.eINSTANCE);
+		SQLAccessControlPackageImpl theSQLAccessControlPackage = (SQLAccessControlPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLAccessControlPackage.eNS_URI) instanceof SQLAccessControlPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLAccessControlPackage.eNS_URI) : SQLAccessControlPackage.eINSTANCE);
+
+		// Create package meta-data objects
+		theSQLExpressionsPackage.createPackageContents();
+		theSQLSchemaPackage.createPackageContents();
+		theSQLConstraintsPackage.createPackageContents();
+		theSQLDataTypesPackage.createPackageContents();
+		theSQLRoutinesPackage.createPackageContents();
+		theSQLStatementsPackage.createPackageContents();
+		theSQLTablesPackage.createPackageContents();
+		theSQLAccessControlPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theSQLExpressionsPackage.initializePackageContents();
+		theSQLSchemaPackage.initializePackageContents();
+		theSQLConstraintsPackage.initializePackageContents();
+		theSQLDataTypesPackage.initializePackageContents();
+		theSQLRoutinesPackage.initializePackageContents();
+		theSQLStatementsPackage.initializePackageContents();
+		theSQLTablesPackage.initializePackageContents();
+		theSQLAccessControlPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theSQLExpressionsPackage.freeze();
+
+		return theSQLExpressionsPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getQueryExpression() {
+		return queryExpressionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getValueExpression() {
+		return valueExpressionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getSearchCondition() {
+		return searchConditionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getQueryExpressionDefault() {
+		return queryExpressionDefaultEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getQueryExpressionDefault_SQL() {
+		return (EAttribute)queryExpressionDefaultEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getSearchConditionDefault() {
+		return searchConditionDefaultEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getSearchConditionDefault_SQL() {
+		return (EAttribute)searchConditionDefaultEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getValueExpressionDefault() {
+		return valueExpressionDefaultEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getValueExpressionDefault_SQL() {
+		return (EAttribute)valueExpressionDefaultEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLExpressionsFactory getSQLExpressionsFactory() {
+		return (SQLExpressionsFactory)getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package.  This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated) return;
+		isCreated = true;
+
+		// Create classes and their features
+		queryExpressionEClass = createEClass(QUERY_EXPRESSION);
+
+		valueExpressionEClass = createEClass(VALUE_EXPRESSION);
+
+		searchConditionEClass = createEClass(SEARCH_CONDITION);
+
+		queryExpressionDefaultEClass = createEClass(QUERY_EXPRESSION_DEFAULT);
+		createEAttribute(queryExpressionDefaultEClass, QUERY_EXPRESSION_DEFAULT__SQL);
+
+		searchConditionDefaultEClass = createEClass(SEARCH_CONDITION_DEFAULT);
+		createEAttribute(searchConditionDefaultEClass, SEARCH_CONDITION_DEFAULT__SQL);
+
+		valueExpressionDefaultEClass = createEClass(VALUE_EXPRESSION_DEFAULT);
+		createEAttribute(valueExpressionDefaultEClass, VALUE_EXPRESSION_DEFAULT__SQL);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model.  This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized) return;
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Obtain other dependent packages
+		SQLSchemaPackage theSQLSchemaPackage = (SQLSchemaPackage)EPackage.Registry.INSTANCE.getEPackage(SQLSchemaPackage.eNS_URI);
+
+		// Add supertypes to classes
+		queryExpressionDefaultEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+		queryExpressionDefaultEClass.getESuperTypes().add(this.getQueryExpression());
+		searchConditionDefaultEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+		searchConditionDefaultEClass.getESuperTypes().add(this.getSearchCondition());
+		valueExpressionDefaultEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+		valueExpressionDefaultEClass.getESuperTypes().add(this.getValueExpression());
+
+		// Initialize classes and features; add operations and parameters
+		initEClass(queryExpressionEClass, QueryExpression.class, "QueryExpression", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+		addEOperation(queryExpressionEClass, ecorePackage.getEString(), "getSQL", 0, 1); //$NON-NLS-1$
+
+		EOperation op = addEOperation(queryExpressionEClass, null, "setSQL"); //$NON-NLS-1$
+		addEParameter(op, ecorePackage.getEString(), "sqlText", 0, 1); //$NON-NLS-1$
+
+		initEClass(valueExpressionEClass, ValueExpression.class, "ValueExpression", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+		addEOperation(valueExpressionEClass, ecorePackage.getEString(), "getSQL", 0, 1); //$NON-NLS-1$
+
+		op = addEOperation(valueExpressionEClass, null, "setSQL"); //$NON-NLS-1$
+		addEParameter(op, ecorePackage.getEString(), "sqlText", 0, 1); //$NON-NLS-1$
+
+		initEClass(searchConditionEClass, SearchCondition.class, "SearchCondition", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+		addEOperation(searchConditionEClass, ecorePackage.getEString(), "getSQL", 0, 1); //$NON-NLS-1$
+
+		op = addEOperation(searchConditionEClass, null, "setSQL"); //$NON-NLS-1$
+		addEParameter(op, ecorePackage.getEString(), "sqlText", 0, 1); //$NON-NLS-1$
+
+		initEClass(queryExpressionDefaultEClass, QueryExpressionDefault.class, "QueryExpressionDefault", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getQueryExpressionDefault_SQL(), ecorePackage.getEString(), "SQL", null, 0, 1, QueryExpressionDefault.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(searchConditionDefaultEClass, SearchConditionDefault.class, "SearchConditionDefault", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getSearchConditionDefault_SQL(), ecorePackage.getEString(), "SQL", null, 0, 1, SearchConditionDefault.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(valueExpressionDefaultEClass, ValueExpressionDefault.class, "ValueExpressionDefault", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getValueExpressionDefault_SQL(), ecorePackage.getEString(), "SQL", null, 0, 1, ValueExpressionDefault.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		// Create resource
+		createResource(eNS_URI);
+	}
+
+} //SQLExpressionsPackageImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/impl/SearchConditionDefaultImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/impl/SearchConditionDefaultImpl.java
new file mode 100644
index 0000000..71ecdf6
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/impl/SearchConditionDefaultImpl.java
@@ -0,0 +1,168 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.expressions.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsPackage;
+import org.eclipse.datatools.modelbase.sql.expressions.SearchConditionDefault;
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Search Condition Default</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.expressions.impl.SearchConditionDefaultImpl#getSQL <em>SQL</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SearchConditionDefaultImpl extends SQLObjectImpl implements SearchConditionDefault {
+	/**
+	 * The default value of the '{@link #getSQL() <em>SQL</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSQL()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String SQL_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getSQL() <em>SQL</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSQL()
+	 * @generated
+	 * @ordered
+	 */
+	protected String sql = SQL_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SearchConditionDefaultImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLExpressionsPackage.Literals.SEARCH_CONDITION_DEFAULT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getSQL() {
+		return sql;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSQL(String newSQL) {
+		String oldSQL = sql;
+		sql = newSQL;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLExpressionsPackage.SEARCH_CONDITION_DEFAULT__SQL, oldSQL, sql));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLExpressionsPackage.SEARCH_CONDITION_DEFAULT__SQL:
+				return getSQL();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLExpressionsPackage.SEARCH_CONDITION_DEFAULT__SQL:
+				setSQL((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLExpressionsPackage.SEARCH_CONDITION_DEFAULT__SQL:
+				setSQL(SQL_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLExpressionsPackage.SEARCH_CONDITION_DEFAULT__SQL:
+				return SQL_EDEFAULT == null ? sql != null : !SQL_EDEFAULT.equals(sql);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (SQL: "); //$NON-NLS-1$
+		result.append(sql);
+		result.append(')');
+		return result.toString();
+	}
+
+} //SearchConditionDefaultImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/impl/ValueExpressionDefaultImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/impl/ValueExpressionDefaultImpl.java
new file mode 100644
index 0000000..e14924f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/impl/ValueExpressionDefaultImpl.java
@@ -0,0 +1,168 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.expressions.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsPackage;
+import org.eclipse.datatools.modelbase.sql.expressions.ValueExpressionDefault;
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Value Expression Default</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.expressions.impl.ValueExpressionDefaultImpl#getSQL <em>SQL</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ValueExpressionDefaultImpl extends SQLObjectImpl implements ValueExpressionDefault {
+	/**
+	 * The default value of the '{@link #getSQL() <em>SQL</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSQL()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String SQL_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getSQL() <em>SQL</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSQL()
+	 * @generated
+	 * @ordered
+	 */
+	protected String sql = SQL_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ValueExpressionDefaultImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLExpressionsPackage.Literals.VALUE_EXPRESSION_DEFAULT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getSQL() {
+		return sql;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSQL(String newSQL) {
+		String oldSQL = sql;
+		sql = newSQL;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLExpressionsPackage.VALUE_EXPRESSION_DEFAULT__SQL, oldSQL, sql));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLExpressionsPackage.VALUE_EXPRESSION_DEFAULT__SQL:
+				return getSQL();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLExpressionsPackage.VALUE_EXPRESSION_DEFAULT__SQL:
+				setSQL((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLExpressionsPackage.VALUE_EXPRESSION_DEFAULT__SQL:
+				setSQL(SQL_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLExpressionsPackage.VALUE_EXPRESSION_DEFAULT__SQL:
+				return SQL_EDEFAULT == null ? sql != null : !SQL_EDEFAULT.equals(sql);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (SQL: "); //$NON-NLS-1$
+		result.append(sql);
+		result.append(')');
+		return result.toString();
+	}
+
+} //ValueExpressionDefaultImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/util/SQLExpressionsAdapterFactory.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/util/SQLExpressionsAdapterFactory.java
new file mode 100644
index 0000000..3eb1bde
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/util/SQLExpressionsAdapterFactory.java
@@ -0,0 +1,261 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.expressions.util;
+
+import org.eclipse.datatools.modelbase.sql.expressions.*;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+import org.eclipse.emf.ecore.EModelElement;
+import org.eclipse.emf.ecore.ENamedElement;
+import org.eclipse.emf.ecore.EObject;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsPackage
+ * @generated
+ */
+public class SQLExpressionsAdapterFactory extends AdapterFactoryImpl {
+	/**
+	 * The cached model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static SQLExpressionsPackage modelPackage;
+
+	/**
+	 * Creates an instance of the adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLExpressionsAdapterFactory() {
+		if (modelPackage == null) {
+			modelPackage = SQLExpressionsPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Returns whether this factory is applicable for the type of the object.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+	 * <!-- end-user-doc -->
+	 * @return whether this factory is applicable for the type of the object.
+	 * @generated
+	 */
+	public boolean isFactoryForType(Object object) {
+		if (object == modelPackage) {
+			return true;
+		}
+		if (object instanceof EObject) {
+			return ((EObject)object).eClass().getEPackage() == modelPackage;
+		}
+		return false;
+	}
+
+	/**
+	 * The switch that delegates to the <code>createXXX</code> methods.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SQLExpressionsSwitch modelSwitch =
+		new SQLExpressionsSwitch() {
+			public Object caseQueryExpression(QueryExpression object) {
+				return createQueryExpressionAdapter();
+			}
+			public Object caseValueExpression(ValueExpression object) {
+				return createValueExpressionAdapter();
+			}
+			public Object caseSearchCondition(SearchCondition object) {
+				return createSearchConditionAdapter();
+			}
+			public Object caseQueryExpressionDefault(QueryExpressionDefault object) {
+				return createQueryExpressionDefaultAdapter();
+			}
+			public Object caseSearchConditionDefault(SearchConditionDefault object) {
+				return createSearchConditionDefaultAdapter();
+			}
+			public Object caseValueExpressionDefault(ValueExpressionDefault object) {
+				return createValueExpressionDefaultAdapter();
+			}
+			public Object caseEModelElement(EModelElement object) {
+				return createEModelElementAdapter();
+			}
+			public Object caseENamedElement(ENamedElement object) {
+				return createENamedElementAdapter();
+			}
+			public Object caseSQLObject(SQLObject object) {
+				return createSQLObjectAdapter();
+			}
+			public Object defaultCase(EObject object) {
+				return createEObjectAdapter();
+			}
+		};
+
+	/**
+	 * Creates an adapter for the <code>target</code>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param target the object to adapt.
+	 * @return the adapter for the <code>target</code>.
+	 * @generated
+	 */
+	public Adapter createAdapter(Notifier target) {
+		return (Adapter)modelSwitch.doSwitch((EObject)target);
+	}
+
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.expressions.QueryExpression <em>Query Expression</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.expressions.QueryExpression
+	 * @generated
+	 */
+	public Adapter createQueryExpressionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.expressions.ValueExpression <em>Value Expression</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.expressions.ValueExpression
+	 * @generated
+	 */
+	public Adapter createValueExpressionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.expressions.SearchCondition <em>Search Condition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.expressions.SearchCondition
+	 * @generated
+	 */
+	public Adapter createSearchConditionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.expressions.QueryExpressionDefault <em>Query Expression Default</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.expressions.QueryExpressionDefault
+	 * @generated
+	 */
+	public Adapter createQueryExpressionDefaultAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.expressions.SearchConditionDefault <em>Search Condition Default</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.expressions.SearchConditionDefault
+	 * @generated
+	 */
+	public Adapter createSearchConditionDefaultAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.expressions.ValueExpressionDefault <em>Value Expression Default</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.expressions.ValueExpressionDefault
+	 * @generated
+	 */
+	public Adapter createValueExpressionDefaultAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecore.EModelElement <em>EModel Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.emf.ecore.EModelElement
+	 * @generated
+	 */
+	public Adapter createEModelElementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecore.ENamedElement <em>ENamed Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.emf.ecore.ENamedElement
+	 * @generated
+	 */
+	public Adapter createENamedElementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.schema.SQLObject <em>SQL Object</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLObject
+	 * @generated
+	 */
+	public Adapter createSQLObjectAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for the default case.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @generated
+	 */
+	public Adapter createEObjectAdapter() {
+		return null;
+	}
+
+} //SQLExpressionsAdapterFactory
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/util/SQLExpressionsSwitch.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/util/SQLExpressionsSwitch.java
new file mode 100644
index 0000000..8f6b0aa
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/expressions/util/SQLExpressionsSwitch.java
@@ -0,0 +1,299 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.expressions.util;
+
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.expressions.*;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EModelElement;
+import org.eclipse.emf.ecore.ENamedElement;
+import org.eclipse.emf.ecore.EObject;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsPackage
+ * @generated
+ */
+public class SQLExpressionsSwitch {
+	/**
+	 * The cached model package
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static SQLExpressionsPackage modelPackage;
+
+	/**
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLExpressionsSwitch() {
+		if (modelPackage == null) {
+			modelPackage = SQLExpressionsPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	public Object doSwitch(EObject theEObject) {
+		return doSwitch(theEObject.eClass(), theEObject);
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	protected Object doSwitch(EClass theEClass, EObject theEObject) {
+		if (theEClass.eContainer() == modelPackage) {
+			return doSwitch(theEClass.getClassifierID(), theEObject);
+		}
+		else {
+			List eSuperTypes = theEClass.getESuperTypes();
+			return
+				eSuperTypes.isEmpty() ?
+					defaultCase(theEObject) :
+					doSwitch((EClass)eSuperTypes.get(0), theEObject);
+		}
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	protected Object doSwitch(int classifierID, EObject theEObject) {
+		switch (classifierID) {
+			case SQLExpressionsPackage.QUERY_EXPRESSION: {
+				QueryExpression queryExpression = (QueryExpression)theEObject;
+				Object result = caseQueryExpression(queryExpression);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLExpressionsPackage.VALUE_EXPRESSION: {
+				ValueExpression valueExpression = (ValueExpression)theEObject;
+				Object result = caseValueExpression(valueExpression);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLExpressionsPackage.SEARCH_CONDITION: {
+				SearchCondition searchCondition = (SearchCondition)theEObject;
+				Object result = caseSearchCondition(searchCondition);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLExpressionsPackage.QUERY_EXPRESSION_DEFAULT: {
+				QueryExpressionDefault queryExpressionDefault = (QueryExpressionDefault)theEObject;
+				Object result = caseQueryExpressionDefault(queryExpressionDefault);
+				if (result == null) result = caseSQLObject(queryExpressionDefault);
+				if (result == null) result = caseQueryExpression(queryExpressionDefault);
+				if (result == null) result = caseENamedElement(queryExpressionDefault);
+				if (result == null) result = caseEModelElement(queryExpressionDefault);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLExpressionsPackage.SEARCH_CONDITION_DEFAULT: {
+				SearchConditionDefault searchConditionDefault = (SearchConditionDefault)theEObject;
+				Object result = caseSearchConditionDefault(searchConditionDefault);
+				if (result == null) result = caseSQLObject(searchConditionDefault);
+				if (result == null) result = caseSearchCondition(searchConditionDefault);
+				if (result == null) result = caseENamedElement(searchConditionDefault);
+				if (result == null) result = caseEModelElement(searchConditionDefault);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLExpressionsPackage.VALUE_EXPRESSION_DEFAULT: {
+				ValueExpressionDefault valueExpressionDefault = (ValueExpressionDefault)theEObject;
+				Object result = caseValueExpressionDefault(valueExpressionDefault);
+				if (result == null) result = caseSQLObject(valueExpressionDefault);
+				if (result == null) result = caseValueExpression(valueExpressionDefault);
+				if (result == null) result = caseENamedElement(valueExpressionDefault);
+				if (result == null) result = caseEModelElement(valueExpressionDefault);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			default: return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Query Expression</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Query Expression</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseQueryExpression(QueryExpression object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Value Expression</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Value Expression</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseValueExpression(ValueExpression object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Search Condition</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Search Condition</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseSearchCondition(SearchCondition object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Query Expression Default</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Query Expression Default</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseQueryExpressionDefault(QueryExpressionDefault object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Search Condition Default</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Search Condition Default</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseSearchConditionDefault(SearchConditionDefault object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Value Expression Default</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Value Expression Default</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseValueExpressionDefault(ValueExpressionDefault object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EModel Element</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>EModel Element</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseEModelElement(EModelElement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>ENamed Element</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>ENamed Element</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseENamedElement(ENamedElement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>SQL Object</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>SQL Object</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseSQLObject(SQLObject object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch, but this is the last case anyway.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+	 * @generated
+	 */
+	public Object defaultCase(EObject object) {
+		return null;
+	}
+
+} //SQLExpressionsSwitch
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/BuiltInFunction.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/BuiltInFunction.java
new file mode 100644
index 0000000..338e303
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/BuiltInFunction.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.routines;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Built In Function</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.27 SQL-invoked routines
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage#getBuiltInFunction()
+ * @model
+ * @generated
+ */
+public interface BuiltInFunction extends Function {
+} // BuiltInFunction
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/DataAccess.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/DataAccess.java
new file mode 100644
index 0000000..59b5b95
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/DataAccess.java
@@ -0,0 +1,208 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DataAccess.java,v 1.3 2006/09/07 00:19:48 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.routines;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Data Access</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.27 SQL-invoked routines
+ * <!-- end-model-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage#getDataAccess()
+ * @model
+ * @generated
+ */
+public final class DataAccess extends AbstractEnumerator {
+	/**
+	 * The '<em><b>NO SQL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NO_SQL_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NO_SQL = 0;
+
+	/**
+	 * The '<em><b>CONTAINS SQL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #CONTAINS_SQL_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int CONTAINS_SQL = 1;
+
+	/**
+	 * The '<em><b>READS SQL DATA</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #READS_SQL_DATA_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int READS_SQL_DATA = 2;
+
+	/**
+	 * The '<em><b>MODIFIES SQL DATA</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #MODIFIES_SQL_DATA_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int MODIFIES_SQL_DATA = 3;
+
+	/**
+	 * The '<em><b>NO SQL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NO SQL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #NO_SQL
+	 * @generated
+	 * @ordered
+	 */
+	public static final DataAccess NO_SQL_LITERAL = new DataAccess(NO_SQL, "NO_SQL", "NO_SQL"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>CONTAINS SQL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>CONTAINS SQL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #CONTAINS_SQL
+	 * @generated
+	 * @ordered
+	 */
+	public static final DataAccess CONTAINS_SQL_LITERAL = new DataAccess(CONTAINS_SQL, "CONTAINS_SQL", "CONTAINS_SQL"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>READS SQL DATA</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>READS SQL DATA</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #READS_SQL_DATA
+	 * @generated
+	 * @ordered
+	 */
+	public static final DataAccess READS_SQL_DATA_LITERAL = new DataAccess(READS_SQL_DATA, "READS_SQL_DATA", "READS_SQL_DATA"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>MODIFIES SQL DATA</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>MODIFIES SQL DATA</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #MODIFIES_SQL_DATA
+	 * @generated
+	 * @ordered
+	 */
+	public static final DataAccess MODIFIES_SQL_DATA_LITERAL = new DataAccess(MODIFIES_SQL_DATA, "MODIFIES_SQL_DATA", "MODIFIES_SQL_DATA"); //$NON-NLS-1$
+
+	/**
+	 * An array of all the '<em><b>Data Access</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final DataAccess[] VALUES_ARRAY =
+		new DataAccess[] {
+			NO_SQL_LITERAL,
+			CONTAINS_SQL_LITERAL,
+			READS_SQL_DATA_LITERAL,
+			MODIFIES_SQL_DATA_LITERAL,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Data Access</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Data Access</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static DataAccess get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			DataAccess result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Data Access</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static DataAccess getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			DataAccess result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Data Access</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static DataAccess get(int value) {
+		switch (value) {
+			case NO_SQL: return NO_SQL_LITERAL;
+			case CONTAINS_SQL: return CONTAINS_SQL_LITERAL;
+			case READS_SQL_DATA: return READS_SQL_DATA_LITERAL;
+			case MODIFIES_SQL_DATA: return MODIFIES_SQL_DATA_LITERAL;
+		}
+		return null;
+	}
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private DataAccess(int value, String name, String literal) {
+		super(value, name, literal);
+	}
+
+} //DataAccess
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/Function.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/Function.java
new file mode 100644
index 0000000..ae8ec22
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/Function.java
@@ -0,0 +1,289 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.routines;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Function</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.27 SQL-invoked routines
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.Function#isNullCall <em>Null Call</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.Function#isStatic <em>Static</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.Function#getTransformGroup <em>Transform Group</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.Function#isTypePreserving <em>Type Preserving</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.Function#isMutator <em>Mutator</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.Function#getReturnTable <em>Return Table</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.Function#getReturnScalar <em>Return Scalar</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.Function#getReturnCast <em>Return Cast</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage#getFunction()
+ * @model
+ * @generated
+ */
+public interface Function extends Routine {
+	/**
+	 * Returns the value of the '<em><b>Null Call</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * From 5WD-02-Foundation-2002-12
+	 * 11.50 <SQL-invoked routine>
+	 * <null-call clause> ::= RETURNS NULL ON NULL INPUT | CALLED ON NULL INPUT
+	 * 
+	 * If PROCEDURE is specified, then:
+	 * - <null-call clause> shall not be specified.
+	 * 
+	 * if <null-call clause> is not specified, then 
+	 * - CALLED ON NULL INPUT is implicit.
+	 * 
+	 * If the SQL-invoked routine is an SQL-invoked function, then:
+	 * - The SQL-invoked routine descriptor includes an indication of whether the SQL-invoked routine
+	 * is a null-call function.
+	 * 
+	 * 4.27 SQL-invoked routines
+	 * A null-call function is an SQL-invoked function that is defined to return the null value if any of its input arguments is the null value. A null-call function is an SQL-invoked function whose <null-call clause> specifies
+	 * "RETURNS NULL ON NULL INPUT".
+	 * <!-- end-model-doc -->
+	 * @return the value of the '<em>Null Call</em>' attribute.
+	 * @see #setNullCall(boolean)
+	 * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage#getFunction_NullCall()
+	 * @model
+	 * @generated
+	 */
+	boolean isNullCall();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.routines.Function#isNullCall <em>Null Call</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Null Call</em>' attribute.
+	 * @see #isNullCall()
+	 * @generated
+	 */
+	void setNullCall(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Static</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * From 5WD-02-Foundation-2002-12
+	 * 11.50 <SQL-invoked routine>
+	 * 
+	 * <dispatch clause> ::= STATIC DISPATCH
+	 * 
+	 * If R is an SQL-invoked regular function and the <SQL parameter declaration list> contains an
+	 * <SQL parameter declaration> that specifies a <data type> that is one of:
+	 * 1) A user-defined type.
+	 * 2) A collection type whose element type is a user-defined type.
+	 * 3) A collection type whose element type is a reference type.
+	 * 4) A reference type.
+	 * then <dispatch clause> shall be specified. Otherwise, <dispatch clause> shall not be specified.
+	 * <!-- end-model-doc -->
+	 * @return the value of the '<em>Static</em>' attribute.
+	 * @see #setStatic(boolean)
+	 * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage#getFunction_Static()
+	 * @model
+	 * @generated
+	 */
+	boolean isStatic();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.routines.Function#isStatic <em>Static</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Static</em>' attribute.
+	 * @see #isStatic()
+	 * @generated
+	 */
+	void setStatic(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Transform Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * From 5WD-02-Foundation-2002-12
+	 * 4.7.5 Transforms for user-defined types
+	 * 
+	 * Transforms are SQL-invoked functions that are automatically invoked when values of user-defined types are
+	 * transferred from SQL-environment to host languages or vice-versa.
+	 * 
+	 * A transform is associated with a user-defined type. A transform identifies a list of transform groups of up to
+	 * two SQL-invoked functions, called the transform functions, each identified by a group name. The group name
+	 * of a transform group is an <identifier> such that no two transform groups for a transform have the same group
+	 * name. The two transform functions are:
+	 * - from-sql function : This SQL-invoked function maps the user-defined type value into a value of an SQL
+	 *   pre-defined type, and gets invoked whenever a user-defined type value is passed to a host language 
+	 *   program or an external routine.
+	 * - to-sql function : This SQL-invoked function maps a value of an SQL predefined type to a value of a
+	 *   user-defined type and gets invoked whenever a user-defined type value is supplied by a host language
+	 *   program or an external routine.
+	 * <!-- end-model-doc -->
+	 * @return the value of the '<em>Transform Group</em>' attribute.
+	 * @see #setTransformGroup(String)
+	 * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage#getFunction_TransformGroup()
+	 * @model
+	 * @generated
+	 */
+	String getTransformGroup();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.routines.Function#getTransformGroup <em>Transform Group</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Transform Group</em>' attribute.
+	 * @see #getTransformGroup()
+	 * @generated
+	 */
+	void setTransformGroup(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Type Preserving</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type Preserving</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type Preserving</em>' attribute.
+	 * @see #setTypePreserving(boolean)
+	 * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage#getFunction_TypePreserving()
+	 * @model
+	 * @generated
+	 */
+	boolean isTypePreserving();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.routines.Function#isTypePreserving <em>Type Preserving</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type Preserving</em>' attribute.
+	 * @see #isTypePreserving()
+	 * @generated
+	 */
+	void setTypePreserving(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Mutator</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Mutator</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Mutator</em>' attribute.
+	 * @see #setMutator(boolean)
+	 * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage#getFunction_Mutator()
+	 * @model
+	 * @generated
+	 */
+	boolean isMutator();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.routines.Function#isMutator <em>Mutator</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Mutator</em>' attribute.
+	 * @see #isMutator()
+	 * @generated
+	 */
+	void setMutator(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Return Table</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Return Table</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Return Table</em>' containment reference.
+	 * @see #setReturnTable(RoutineResultTable)
+	 * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage#getFunction_ReturnTable()
+	 * @model containment="true"
+	 * @generated
+	 */
+	RoutineResultTable getReturnTable();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.routines.Function#getReturnTable <em>Return Table</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Return Table</em>' containment reference.
+	 * @see #getReturnTable()
+	 * @generated
+	 */
+	void setReturnTable(RoutineResultTable value);
+
+	/**
+	 * Returns the value of the '<em><b>Return Scalar</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Return Scalar</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Return Scalar</em>' containment reference.
+	 * @see #setReturnScalar(Parameter)
+	 * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage#getFunction_ReturnScalar()
+	 * @model containment="true"
+	 * @generated
+	 */
+	Parameter getReturnScalar();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.routines.Function#getReturnScalar <em>Return Scalar</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Return Scalar</em>' containment reference.
+	 * @see #getReturnScalar()
+	 * @generated
+	 */
+	void setReturnScalar(Parameter value);
+
+	/**
+	 * Returns the value of the '<em><b>Return Cast</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Return Cast</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Return Cast</em>' containment reference.
+	 * @see #setReturnCast(Parameter)
+	 * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage#getFunction_ReturnCast()
+	 * @model containment="true"
+	 * @generated
+	 */
+	Parameter getReturnCast();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.routines.Function#getReturnCast <em>Return Cast</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Return Cast</em>' containment reference.
+	 * @see #getReturnCast()
+	 * @generated
+	 */
+	void setReturnCast(Parameter value);
+
+} // Function
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/Method.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/Method.java
new file mode 100644
index 0000000..875eb94
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/Method.java
@@ -0,0 +1,89 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.routines;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Method</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.27 SQL-invoked routines 
+ * 
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.Method#isOverriding <em>Overriding</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.Method#isConstructor <em>Constructor</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage#getMethod()
+ * @model
+ * @generated
+ */
+public interface Method extends Function {
+	/**
+	 * Returns the value of the '<em><b>Overriding</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Overriding</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Overriding</em>' attribute.
+	 * @see #setOverriding(boolean)
+	 * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage#getMethod_Overriding()
+	 * @model
+	 * @generated
+	 */
+	boolean isOverriding();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.routines.Method#isOverriding <em>Overriding</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Overriding</em>' attribute.
+	 * @see #isOverriding()
+	 * @generated
+	 */
+	void setOverriding(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Constructor</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Constructor</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Constructor</em>' attribute.
+	 * @see #setConstructor(boolean)
+	 * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage#getMethod_Constructor()
+	 * @model
+	 * @generated
+	 */
+	boolean isConstructor();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.routines.Method#isConstructor <em>Constructor</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Constructor</em>' attribute.
+	 * @see #isConstructor()
+	 * @generated
+	 */
+	void setConstructor(boolean value);
+
+} // Method
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/Parameter.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/Parameter.java
new file mode 100644
index 0000000..649bc20
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/Parameter.java
@@ -0,0 +1,174 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.routines;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.CharacterStringDataType;
+
+import org.eclipse.datatools.modelbase.sql.schema.TypedElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Parameter</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.27 SQL-invoked routines, 5WD-02-Foundation-2002-12 11.50 <SQL-invoked routine>,  Reference: 5WD-02-Foundation-2002-12 4.29.4 Locators  
+ * Reference: Information technology - Database languages - SQL - Part 14: XML-Related Specifications (SQL/XML) 12.7 <SQL-invoked routine>
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.Parameter#getMode <em>Mode</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.Parameter#isLocator <em>Locator</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.Parameter#getRoutine <em>Routine</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.Parameter#getStringTypeOption <em>String Type Option</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage#getParameter()
+ * @model
+ * @generated
+ */
+public interface Parameter extends TypedElement {
+	/**
+	 * Returns the value of the '<em><b>Mode</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.routines.ParameterMode}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Mode</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * 5WD-02-Foundation-2002-12
+	 * 
+	 * <SQL parameter declaration> ::= [ <parameter mode> ] [ <SQL parameter name> ] <parameter type> [ RESULT ]
+	 * 
+	 * <parameter mode> ::= IN | OUT | INOUT
+	 * 
+	 * For functions, defaults to IN.
+	 * See enumerated class ParameterMode
+	 * <!-- end-model-doc -->
+	 * @return the value of the '<em>Mode</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.ParameterMode
+	 * @see #setMode(ParameterMode)
+	 * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage#getParameter_Mode()
+	 * @model
+	 * @generated
+	 */
+	ParameterMode getMode();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.routines.Parameter#getMode <em>Mode</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Mode</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.ParameterMode
+	 * @see #getMode()
+	 * @generated
+	 */
+	void setMode(ParameterMode value);
+
+	/**
+	 * Returns the value of the '<em><b>Locator</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * 5WD-02-Foundation-2002-12
+	 * 4.29.4 Locators
+	 * A host parameter, a host variable, an SQL parameter of an external routine, or the value returned by an external
+	 * function may be specified to be a locator by specifying AS LOCATOR . A locator is an SQL-session object,
+	 * rather than SQL-data, that can be used to reference an SQL-data instance. A locator is either a large object
+	 * locator, a user-defined type locator, an array locator, or a multiset locator. 
+	 * 
+	 * A large object locator is one of the following:
+	 * - Binary large object locator, a value of which identifies a binary large object.
+	 * - Character large object locator, a value of which identifies a large object character string.
+	 * - National character large object locator, a value of which identifies a national large object character string.
+	 * 
+	 * A user-defined type locator identifies a value of the user-defined type specified by the locator specification.
+	 * An array locator identifies a value of the array type specified by the locator specification. A multiset locator
+	 * identifies a value of the multiset type specified by the locator specification.
+	 * <!-- end-model-doc -->
+	 * @return the value of the '<em>Locator</em>' attribute.
+	 * @see #setLocator(boolean)
+	 * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage#getParameter_Locator()
+	 * @model
+	 * @generated
+	 */
+	boolean isLocator();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.routines.Parameter#isLocator <em>Locator</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Locator</em>' attribute.
+	 * @see #isLocator()
+	 * @generated
+	 */
+	void setLocator(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Routine</b></em>' container reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.routines.Routine#getParameters <em>Parameters</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Routine</em>' container reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Routine</em>' container reference.
+	 * @see #setRoutine(Routine)
+	 * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage#getParameter_Routine()
+	 * @see org.eclipse.datatools.modelbase.sql.routines.Routine#getParameters
+	 * @model opposite="parameters" required="true"
+	 * @generated
+	 */
+	Routine getRoutine();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.routines.Parameter#getRoutine <em>Routine</em>}' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Routine</em>' container reference.
+	 * @see #getRoutine()
+	 * @generated
+	 */
+	void setRoutine(Routine value);
+
+	/**
+	 * Returns the value of the '<em><b>String Type Option</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>String Type Option</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>String Type Option</em>' containment reference.
+	 * @see #setStringTypeOption(CharacterStringDataType)
+	 * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage#getParameter_StringTypeOption()
+	 * @model containment="true"
+	 * @generated
+	 */
+	CharacterStringDataType getStringTypeOption();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.routines.Parameter#getStringTypeOption <em>String Type Option</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>String Type Option</em>' containment reference.
+	 * @see #getStringTypeOption()
+	 * @generated
+	 */
+	void setStringTypeOption(CharacterStringDataType value);
+
+} // Parameter
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/ParameterMode.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/ParameterMode.java
new file mode 100644
index 0000000..09fa8d0
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/ParameterMode.java
@@ -0,0 +1,181 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ParameterMode.java,v 1.3 2006/09/07 00:19:48 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.routines;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Parameter Mode</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 11.50 <SQL-invoked routine>
+ * <!-- end-model-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage#getParameterMode()
+ * @model
+ * @generated
+ */
+public final class ParameterMode extends AbstractEnumerator {
+	/**
+	 * The '<em><b>IN</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #IN_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int IN = 0;
+
+	/**
+	 * The '<em><b>OUT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #OUT_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int OUT = 1;
+
+	/**
+	 * The '<em><b>INOUT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #INOUT_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int INOUT = 2;
+
+	/**
+	 * The '<em><b>IN</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>IN</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #IN
+	 * @generated
+	 * @ordered
+	 */
+	public static final ParameterMode IN_LITERAL = new ParameterMode(IN, "IN", "IN"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>OUT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>OUT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #OUT
+	 * @generated
+	 * @ordered
+	 */
+	public static final ParameterMode OUT_LITERAL = new ParameterMode(OUT, "OUT", "OUT"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>INOUT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>INOUT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #INOUT
+	 * @generated
+	 * @ordered
+	 */
+	public static final ParameterMode INOUT_LITERAL = new ParameterMode(INOUT, "INOUT", "INOUT"); //$NON-NLS-1$
+
+	/**
+	 * An array of all the '<em><b>Parameter Mode</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final ParameterMode[] VALUES_ARRAY =
+		new ParameterMode[] {
+			IN_LITERAL,
+			OUT_LITERAL,
+			INOUT_LITERAL,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Parameter Mode</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Parameter Mode</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ParameterMode get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			ParameterMode result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Parameter Mode</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ParameterMode getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			ParameterMode result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Parameter Mode</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ParameterMode get(int value) {
+		switch (value) {
+			case IN: return IN_LITERAL;
+			case OUT: return OUT_LITERAL;
+			case INOUT: return INOUT_LITERAL;
+		}
+		return null;
+	}
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private ParameterMode(int value, String name, String literal) {
+		super(value, name, literal);
+	}
+
+} //ParameterMode
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/Procedure.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/Procedure.java
new file mode 100644
index 0000000..34f954c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/Procedure.java
@@ -0,0 +1,114 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.routines;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Procedure</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.27 SQL-invoked routines, 5WD-02-Foundation-2002-12 11.50 <SQL-invoked routine>
+ * 
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.Procedure#getMaxResultSets <em>Max Result Sets</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.Procedure#isOldSavePoint <em>Old Save Point</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.Procedure#getResultSet <em>Result Set</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage#getProcedure()
+ * @model
+ * @generated
+ */
+public interface Procedure extends Routine {
+	/**
+	 * Returns the value of the '<em><b>Max Result Sets</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * Maximun number of result sets the procedure can return.  If the stored procedure returns more result sets than is specified by this value, then a database error will be generated.
+	 * 
+	 * From 5WD-02-Foundation-2002-12
+	 * 11.50 <SQL-invoked routine>
+	 * <dynamic result sets characteristic> ::= DYNAMIC RESULT SETS <maximum dynamic result sets>
+	 * <!-- end-model-doc -->
+	 * @return the value of the '<em>Max Result Sets</em>' attribute.
+	 * @see #setMaxResultSets(int)
+	 * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage#getProcedure_MaxResultSets()
+	 * @model
+	 * @generated
+	 */
+	int getMaxResultSets();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.routines.Procedure#getMaxResultSets <em>Max Result Sets</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Max Result Sets</em>' attribute.
+	 * @see #getMaxResultSets()
+	 * @generated
+	 */
+	void setMaxResultSets(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Old Save Point</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * From 5WD-02-Foundation-2002-12
+	 * 4.27 SQL-invoked routines
+	 * An SQL-invoked procedure may optionally be specified to require a new savepoint level to be established when it is invoked and destroyed on return from the executed routine body. The alternative of not taking a savepoint can also be directly specified with OLD SAVEPOINT LEVEL . When an SQL-invoked function is invoked a new savepoint level is always established.
+	 * 
+	 * 11.50 <SQL-invoked routine>
+	 * <savepoint level indication> ::= NEW SAVEPOINT LEVEL | OLD SAVEPOINT LEVEL
+	 * <!-- end-model-doc -->
+	 * @return the value of the '<em>Old Save Point</em>' attribute.
+	 * @see #setOldSavePoint(boolean)
+	 * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage#getProcedure_OldSavePoint()
+	 * @model
+	 * @generated
+	 */
+	boolean isOldSavePoint();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.routines.Procedure#isOldSavePoint <em>Old Save Point</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Old Save Point</em>' attribute.
+	 * @see #isOldSavePoint()
+	 * @generated
+	 */
+	void setOldSavePoint(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Result Set</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.routines.RoutineResultTable}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Result Set</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Result Set</em>' containment reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage#getProcedure_ResultSet()
+	 * @model type="org.eclipse.datatools.modelbase.sql.routines.RoutineResultTable" containment="true"
+	 * @generated
+	 */
+	EList getResultSet();
+
+} // Procedure
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/Routine.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/Routine.java
new file mode 100644
index 0000000..e43580e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/Routine.java
@@ -0,0 +1,501 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.routines;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Routine</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.27 SQL-invoked routines
+ * 
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.Routine#getSpecificName <em>Specific Name</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.Routine#getLanguage <em>Language</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.Routine#getParameterStyle <em>Parameter Style</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.Routine#isDeterministic <em>Deterministic</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.Routine#getSqlDataAccess <em>Sql Data Access</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.Routine#getCreationTS <em>Creation TS</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.Routine#getLastAlteredTS <em>Last Altered TS</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.Routine#getAuthorizationID <em>Authorization ID</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.Routine#getSecurity <em>Security</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.Routine#getExternalName <em>External Name</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.Routine#getParameters <em>Parameters</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.Routine#getSource <em>Source</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.Routine#getSchema <em>Schema</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage#getRoutine()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Routine extends SQLObject {
+	/**
+	 * Returns the value of the '<em><b>Specific Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * From 5WD-02-Foundation-2002-12
+	 * 4.27 SQL-invoked routines
+	 * 
+	 * An SQL-invoked routine is uniquely identified by a <specific name> , called the specific name of the SQLinvoked
+	 * routine.
+	 * 
+	 * Typically qualified with a schema name. 
+	 * 
+	 * <!-- end-model-doc -->
+	 * @return the value of the '<em>Specific Name</em>' attribute.
+	 * @see #setSpecificName(String)
+	 * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage#getRoutine_SpecificName()
+	 * @model
+	 * @generated
+	 */
+	String getSpecificName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.routines.Routine#getSpecificName <em>Specific Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Specific Name</em>' attribute.
+	 * @see #getSpecificName()
+	 * @generated
+	 */
+	void setSpecificName(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Language</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Language</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * Since there are many languages, rather than constrain ourselves to an enumerated list which is difficult to subclass in the EMF environment, we have chosen to use strings.
+	 * 
+	 * JAVA
+	 * SQL
+	 * PERL
+	 * C
+	 * ADA
+	 * COBOL
+	 * FORTRAN
+	 * MUMPS
+	 * PASCAL
+	 * PLI
+	 * and so on...
+	 * <!-- end-model-doc -->
+	 * @return the value of the '<em>Language</em>' attribute.
+	 * @see #setLanguage(String)
+	 * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage#getRoutine_Language()
+	 * @model
+	 * @generated
+	 */
+	String getLanguage();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.routines.Routine#getLanguage <em>Language</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Language</em>' attribute.
+	 * @see #getLanguage()
+	 * @generated
+	 */
+	void setLanguage(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Parameter Style</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Parameter Style</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * Paraphrased from 5WD-02-Foundation-2002-12 
+	 * The spec only calls for two. Though it seems like an easy choice for enumeration as in the language attribute, other vendors have different styles and since enumeration is not good to subclass within the EMF tooling framework, a string representation is used.
+	 * 
+	 * 11.50 <SQL-invoked routine>
+	 * SQL 
+	 * GENERAL.
+	 * 
+	 * Used in stored procedures, user defined functions, and methods.
+	 * 
+	 * 
+	 * <!-- end-model-doc -->
+	 * @return the value of the '<em>Parameter Style</em>' attribute.
+	 * @see #setParameterStyle(String)
+	 * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage#getRoutine_ParameterStyle()
+	 * @model
+	 * @generated
+	 */
+	String getParameterStyle();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.routines.Routine#getParameterStyle <em>Parameter Style</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Parameter Style</em>' attribute.
+	 * @see #getParameterStyle()
+	 * @generated
+	 */
+	void setParameterStyle(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Deterministic</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * From 5WD-02-Foundation-2002-12
+	 * 4.27 SQL-invoked routines
+	 * 
+	 * An SQL-invoked routine is either deterministic or possibly non-deterministic. An SQL-invoked function that
+	 * is deterministic always returns the identical return value for a given list of SQL argument values. An SQLinvoked
+	 * procedure that is deterministic always returns the identical values in its output and inout SQL parameters
+	 * for a given list of SQL argument values. An SQL-invoked routine is possibly non-deterministic if it might
+	 * produce nonidentical results when invoked with the identical list of SQL argument values.
+	 * <!-- end-model-doc -->
+	 * @return the value of the '<em>Deterministic</em>' attribute.
+	 * @see #setDeterministic(boolean)
+	 * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage#getRoutine_Deterministic()
+	 * @model
+	 * @generated
+	 */
+	boolean isDeterministic();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.routines.Routine#isDeterministic <em>Deterministic</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Deterministic</em>' attribute.
+	 * @see #isDeterministic()
+	 * @generated
+	 */
+	void setDeterministic(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Sql Data Access</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.routines.DataAccess}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Sql Data Access</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * 5WD-02-Foundation-2002-12
+	 * 11.50 <SQL-invoked routine>
+	 * 
+	 * <SQL-data access indication> ::= NO SQL | CONTAINS SQL | READS SQL DATA | MODIFIES SQL DATA
+	 * 
+	 * (see DataAccess enumeration class)
+	 * <!-- end-model-doc -->
+	 * @return the value of the '<em>Sql Data Access</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.DataAccess
+	 * @see #setSqlDataAccess(DataAccess)
+	 * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage#getRoutine_SqlDataAccess()
+	 * @model
+	 * @generated
+	 */
+	DataAccess getSqlDataAccess();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.routines.Routine#getSqlDataAccess <em>Sql Data Access</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Sql Data Access</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.DataAccess
+	 * @see #getSqlDataAccess()
+	 * @generated
+	 */
+	void setSqlDataAccess(DataAccess value);
+
+	/**
+	 * Returns the value of the '<em><b>Creation TS</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * From 5WD-02-Foundation-2002-12
+	 * 4.27 SQL-invoked routines
+	 * 
+	 * An SQL-invoked routine is described by a routine descriptor. A routine descriptor includes:
+	 * - The creation timestamp.
+	 * 
+	 * Because there is no provision in the spec as to the format of the timestamp, it is left to the individual implementers to determine the format.
+	 * <!-- end-model-doc -->
+	 * @return the value of the '<em>Creation TS</em>' attribute.
+	 * @see #setCreationTS(String)
+	 * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage#getRoutine_CreationTS()
+	 * @model
+	 * @generated
+	 */
+	String getCreationTS();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.routines.Routine#getCreationTS <em>Creation TS</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Creation TS</em>' attribute.
+	 * @see #getCreationTS()
+	 * @generated
+	 */
+	void setCreationTS(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Last Altered TS</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * From 5WD-02-Foundation-2002-12
+	 * 4.27 SQL-invoked routines
+	 * 
+	 * An SQL-invoked routine is described by a routine descriptor. A routine descriptor includes:
+	 * - The last-altered timestamp.
+	 * 
+	 * Because there is no provision in the spec as to the format of the timestamp, it is left to the individual implementers to determine the format.
+	 * <!-- end-model-doc -->
+	 * @return the value of the '<em>Last Altered TS</em>' attribute.
+	 * @see #setLastAlteredTS(String)
+	 * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage#getRoutine_LastAlteredTS()
+	 * @model
+	 * @generated
+	 */
+	String getLastAlteredTS();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.routines.Routine#getLastAlteredTS <em>Last Altered TS</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Last Altered TS</em>' attribute.
+	 * @see #getLastAlteredTS()
+	 * @generated
+	 */
+	void setLastAlteredTS(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Authorization ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * From 5WD-02-Foundation-2002-12
+	 * 4.27 SQL-invoked routines
+	 * 
+	 * An SQL-invoked routine has a routine authorization identifier, which is (directly or indirectly) the authorization
+	 * identifier of the owner of the schema that contains the SQL-invoked routine at the time that the SQL-invoked
+	 * routine is created.
+	 * <!-- end-model-doc -->
+	 * @return the value of the '<em>Authorization ID</em>' attribute.
+	 * @see #setAuthorizationID(String)
+	 * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage#getRoutine_AuthorizationID()
+	 * @model
+	 * @generated
+	 */
+	String getAuthorizationID();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.routines.Routine#getAuthorizationID <em>Authorization ID</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Authorization ID</em>' attribute.
+	 * @see #getAuthorizationID()
+	 * @generated
+	 */
+	void setAuthorizationID(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Security</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * From the below, typical values would be: "DEFINER", "INVOKER", "IMPLEMENTATION DEFINED"
+	 * Since there are several implementation defined security designations, it is best to go with the string.
+	 * 
+	 * From 5WD-02-Foundation-2002-12
+	 * 11.50 <SQL-invoked routine>
+	 * 
+	 * <external security clause> ::=
+	 *   EXTERNAL SECURITY DEFINER
+	 *   | EXTERNAL SECURITY INVOKER
+	 *   | EXTERNAL SECURITY IMPLEMENTATION DEFINED
+	 * 
+	 * 4.27 SQL-invoked routines
+	 * If the SQL-invoked routine is an SQL routine, then the identifiers are determined according to the SQL security
+	 * characteristic of the SQL-invoked routine:
+	 * - If the SQL security characteristic is DEFINER , then:
+	 *   * If the routine authorization identifier is a user identifier, the user identifier is set to the routine authorization
+	 *     identifier and the role name is set to null.
+	 *   * Otherwise, the role name is set to the routine authorization identifier and the user identifier is set to
+	 *     null.
+	 * - If the SQL security characteristic is INVOKER , then the identifiers remain unchanged.      
+	 * If the SQL-invoked routine is an external routine, then the identifiers are determined according to the external
+	 * security characteristic of the SQL-invoked routine:
+	 * - If the external security characteristic is DEFINER , then:
+	 *   * If the routine authorization identifier is a user identifier, then the user identifier is set to the routine
+	 *     authorization identifier and the role name is set to the null value.
+	 *   * Otherwise, the role name is set to the routine authorization identifier and the user identifier is set to the
+	 *     null value.
+	 * - If the external security characteristic is INVOKER , then the identifiers remain unchanged.
+	 * - If the external security characteristic is IMPLEMENTATION DEFINED , then the identifiers are set to
+	 * implementation-defined values.
+	 * <!-- end-model-doc -->
+	 * @return the value of the '<em>Security</em>' attribute.
+	 * @see #setSecurity(String)
+	 * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage#getRoutine_Security()
+	 * @model
+	 * @generated
+	 */
+	String getSecurity();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.routines.Routine#getSecurity <em>Security</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Security</em>' attribute.
+	 * @see #getSecurity()
+	 * @generated
+	 */
+	void setSecurity(String value);
+
+	/**
+	 * Returns the value of the '<em><b>External Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * From 5WD-02-Foundation-2002-12
+	 * from 11.50 SQL-invoked routine:
+	 * 
+	 * The external name of the routine descriptor is <external routine name> .
+	 * <external body reference> ::= EXTERNAL [ NAME <external routine name> ] [ <parameter
+	 * style clause> ] [ <transform group specification> ] [ <external security clause> ]
+	 * 
+	 * from 4.27 SQL-invoked routines
+	 * <external routine name> identifies a program written in some
+	 * standard programming language other than SQL .
+	 * 
+	 * from 5.4 Names and identifiers
+	 * <external routine name> ::= <identifier> | <character string literal>
+	 * An <external routine name> identifies an external routine.
+	 * <!-- end-model-doc -->
+	 * @return the value of the '<em>External Name</em>' attribute.
+	 * @see #setExternalName(String)
+	 * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage#getRoutine_ExternalName()
+	 * @model
+	 * @generated
+	 */
+	String getExternalName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.routines.Routine#getExternalName <em>External Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>External Name</em>' attribute.
+	 * @see #getExternalName()
+	 * @generated
+	 */
+	void setExternalName(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Parameters</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.routines.Parameter}.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.routines.Parameter#getRoutine <em>Routine</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Parameters</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Parameters</em>' containment reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage#getRoutine_Parameters()
+	 * @see org.eclipse.datatools.modelbase.sql.routines.Parameter#getRoutine
+	 * @model type="org.eclipse.datatools.modelbase.sql.routines.Parameter" opposite="routine" containment="true"
+	 * @generated
+	 */
+	EList getParameters();
+
+   /**
+    * Gets a list of IN and INOUT parameters associated with this routine.
+    * <p>
+    * @return a list of IN and INOUT parameters associated with this routine.
+    */
+   public EList getInputParameters();
+
+   /**
+    * Gets a list of OUT and INOUT parameters associated with this routine.
+    * <p>
+    * @return a list of OUT and INOUT parameters associated with this routine.
+    */
+   public EList getOutputParameters();
+
+	/**
+	 * Returns the value of the '<em><b>Source</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Source</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Source</em>' containment reference.
+	 * @see #setSource(Source)
+	 * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage#getRoutine_Source()
+	 * @model containment="true"
+	 * @generated
+	 */
+	Source getSource();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.routines.Routine#getSource <em>Source</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+    * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Source</em>' containment reference.
+	 * @see #getSource()
+	 * @generated
+	 */
+   void setSource(Source value);
+
+	/**
+	 * Returns the value of the '<em><b>Schema</b></em>' reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.schema.Schema#getRoutines <em>Routines</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Schema</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Schema</em>' reference.
+	 * @see #setSchema(Schema)
+	 * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage#getRoutine_Schema()
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Schema#getRoutines
+	 * @model opposite="routines" required="true"
+	 * @generated
+	 */
+	Schema getSchema();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.routines.Routine#getSchema <em>Schema</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Schema</em>' reference.
+	 * @see #getSchema()
+	 * @generated
+	 */
+	void setSchema(Schema value);
+
+} // Routine
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/RoutineResultTable.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/RoutineResultTable.java
new file mode 100644
index 0000000..a4aa291
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/RoutineResultTable.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.routines;
+
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Routine Result Table</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.27 SQL-invoked routines
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage#getRoutineResultTable()
+ * @model
+ * @generated
+ */
+public interface RoutineResultTable extends Table {
+} // RoutineResultTable
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/SQLRoutinesFactory.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/SQLRoutinesFactory.java
new file mode 100644
index 0000000..fec85b4
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/SQLRoutinesFactory.java
@@ -0,0 +1,113 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.routines;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage
+ * @generated
+ */
+public interface SQLRoutinesFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	SQLRoutinesFactory eINSTANCE = org.eclipse.datatools.modelbase.sql.routines.impl.SQLRoutinesFactoryImpl.init();
+
+	/**
+	 * Returns a new object of class '<em>Source</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Source</em>'.
+	 * @generated
+	 */
+	Source createSource();
+
+	/**
+	 * Returns a new object of class '<em>Parameter</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Parameter</em>'.
+	 * @generated
+	 */
+	Parameter createParameter();
+
+	/**
+	 * Returns a new object of class '<em>Procedure</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Procedure</em>'.
+	 * @generated
+	 */
+	Procedure createProcedure();
+
+	/**
+	 * Returns a new object of class '<em>Function</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Function</em>'.
+	 * @generated
+	 */
+	Function createFunction();
+
+	/**
+	 * Returns a new object of class '<em>Routine Result Table</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Routine Result Table</em>'.
+	 * @generated
+	 */
+	RoutineResultTable createRoutineResultTable();
+
+	/**
+	 * Returns a new object of class '<em>Method</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Method</em>'.
+	 * @generated
+	 */
+	Method createMethod();
+
+	/**
+	 * Returns a new object of class '<em>User Defined Function</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>User Defined Function</em>'.
+	 * @generated
+	 */
+	UserDefinedFunction createUserDefinedFunction();
+
+	/**
+	 * Returns a new object of class '<em>Built In Function</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Built In Function</em>'.
+	 * @generated
+	 */
+	BuiltInFunction createBuiltInFunction();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	SQLRoutinesPackage getSQLRoutinesPackage();
+
+} //SQLRoutinesFactory
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/SQLRoutinesPackage.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/SQLRoutinesPackage.java
new file mode 100644
index 0000000..443a78d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/SQLRoutinesPackage.java
@@ -0,0 +1,2930 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.routines;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ *   <li>each class,</li>
+ *   <li>each feature of each class,</li>
+ *   <li>each enum,</li>
+ *   <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface SQLRoutinesPackage extends EPackage {
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNAME = "routines"; //$NON-NLS-1$
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_URI = "http:///org/eclipse/datatools/modelbase/sql/routines.ecore"; //$NON-NLS-1$
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_PREFIX = "SQLRoutines"; //$NON-NLS-1$
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	SQLRoutinesPackage eINSTANCE = org.eclipse.datatools.modelbase.sql.routines.impl.SQLRoutinesPackageImpl.init();
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.routines.impl.RoutineImpl <em>Routine</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.routines.impl.RoutineImpl
+	 * @see org.eclipse.datatools.modelbase.sql.routines.impl.SQLRoutinesPackageImpl#getRoutine()
+	 * @generated
+	 */
+	int ROUTINE = 0;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROUTINE__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROUTINE__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROUTINE__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROUTINE__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROUTINE__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROUTINE__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROUTINE__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROUTINE__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Specific Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROUTINE__SPECIFIC_NAME = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Language</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROUTINE__LANGUAGE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Parameter Style</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROUTINE__PARAMETER_STYLE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Deterministic</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROUTINE__DETERMINISTIC = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Sql Data Access</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROUTINE__SQL_DATA_ACCESS = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Creation TS</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROUTINE__CREATION_TS = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Last Altered TS</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROUTINE__LAST_ALTERED_TS = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 6;
+
+	/**
+	 * The feature id for the '<em><b>Authorization ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROUTINE__AUTHORIZATION_ID = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 7;
+
+	/**
+	 * The feature id for the '<em><b>Security</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROUTINE__SECURITY = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 8;
+
+	/**
+	 * The feature id for the '<em><b>External Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROUTINE__EXTERNAL_NAME = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 9;
+
+	/**
+	 * The feature id for the '<em><b>Parameters</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROUTINE__PARAMETERS = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 10;
+
+	/**
+	 * The feature id for the '<em><b>Source</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROUTINE__SOURCE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 11;
+
+	/**
+	 * The feature id for the '<em><b>Schema</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROUTINE__SCHEMA = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 12;
+
+	/**
+	 * The number of structural features of the '<em>Routine</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROUTINE_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 13;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.routines.impl.SourceImpl <em>Source</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.routines.impl.SourceImpl
+	 * @see org.eclipse.datatools.modelbase.sql.routines.impl.SQLRoutinesPackageImpl#getSource()
+	 * @generated
+	 */
+	int SOURCE = 1;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SOURCE__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SOURCE__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SOURCE__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SOURCE__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SOURCE__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SOURCE__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SOURCE__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SOURCE__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Body</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SOURCE__BODY = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Source</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SOURCE_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.routines.impl.ParameterImpl <em>Parameter</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.routines.impl.ParameterImpl
+	 * @see org.eclipse.datatools.modelbase.sql.routines.impl.SQLRoutinesPackageImpl#getParameter()
+	 * @generated
+	 */
+	int PARAMETER = 2;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER__EANNOTATIONS = SQLSchemaPackage.TYPED_ELEMENT__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER__NAME = SQLSchemaPackage.TYPED_ELEMENT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER__DEPENDENCIES = SQLSchemaPackage.TYPED_ELEMENT__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER__DESCRIPTION = SQLSchemaPackage.TYPED_ELEMENT__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER__LABEL = SQLSchemaPackage.TYPED_ELEMENT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER__COMMENTS = SQLSchemaPackage.TYPED_ELEMENT__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER__EXTENSIONS = SQLSchemaPackage.TYPED_ELEMENT__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER__PRIVILEGES = SQLSchemaPackage.TYPED_ELEMENT__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Contained Type</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER__CONTAINED_TYPE = SQLSchemaPackage.TYPED_ELEMENT__CONTAINED_TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Referenced Type</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER__REFERENCED_TYPE = SQLSchemaPackage.TYPED_ELEMENT__REFERENCED_TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Mode</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER__MODE = SQLSchemaPackage.TYPED_ELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Locator</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER__LOCATOR = SQLSchemaPackage.TYPED_ELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Routine</b></em>' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER__ROUTINE = SQLSchemaPackage.TYPED_ELEMENT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>String Type Option</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER__STRING_TYPE_OPTION = SQLSchemaPackage.TYPED_ELEMENT_FEATURE_COUNT + 3;
+
+	/**
+	 * The number of structural features of the '<em>Parameter</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER_FEATURE_COUNT = SQLSchemaPackage.TYPED_ELEMENT_FEATURE_COUNT + 4;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.routines.impl.ProcedureImpl <em>Procedure</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.routines.impl.ProcedureImpl
+	 * @see org.eclipse.datatools.modelbase.sql.routines.impl.SQLRoutinesPackageImpl#getProcedure()
+	 * @generated
+	 */
+	int PROCEDURE = 3;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCEDURE__EANNOTATIONS = ROUTINE__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCEDURE__NAME = ROUTINE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCEDURE__DEPENDENCIES = ROUTINE__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCEDURE__DESCRIPTION = ROUTINE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCEDURE__LABEL = ROUTINE__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCEDURE__COMMENTS = ROUTINE__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCEDURE__EXTENSIONS = ROUTINE__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCEDURE__PRIVILEGES = ROUTINE__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Specific Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCEDURE__SPECIFIC_NAME = ROUTINE__SPECIFIC_NAME;
+
+	/**
+	 * The feature id for the '<em><b>Language</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCEDURE__LANGUAGE = ROUTINE__LANGUAGE;
+
+	/**
+	 * The feature id for the '<em><b>Parameter Style</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCEDURE__PARAMETER_STYLE = ROUTINE__PARAMETER_STYLE;
+
+	/**
+	 * The feature id for the '<em><b>Deterministic</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCEDURE__DETERMINISTIC = ROUTINE__DETERMINISTIC;
+
+	/**
+	 * The feature id for the '<em><b>Sql Data Access</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCEDURE__SQL_DATA_ACCESS = ROUTINE__SQL_DATA_ACCESS;
+
+	/**
+	 * The feature id for the '<em><b>Creation TS</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCEDURE__CREATION_TS = ROUTINE__CREATION_TS;
+
+	/**
+	 * The feature id for the '<em><b>Last Altered TS</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCEDURE__LAST_ALTERED_TS = ROUTINE__LAST_ALTERED_TS;
+
+	/**
+	 * The feature id for the '<em><b>Authorization ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCEDURE__AUTHORIZATION_ID = ROUTINE__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Security</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCEDURE__SECURITY = ROUTINE__SECURITY;
+
+	/**
+	 * The feature id for the '<em><b>External Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCEDURE__EXTERNAL_NAME = ROUTINE__EXTERNAL_NAME;
+
+	/**
+	 * The feature id for the '<em><b>Parameters</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCEDURE__PARAMETERS = ROUTINE__PARAMETERS;
+
+	/**
+	 * The feature id for the '<em><b>Source</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCEDURE__SOURCE = ROUTINE__SOURCE;
+
+	/**
+	 * The feature id for the '<em><b>Schema</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCEDURE__SCHEMA = ROUTINE__SCHEMA;
+
+	/**
+	 * The feature id for the '<em><b>Max Result Sets</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCEDURE__MAX_RESULT_SETS = ROUTINE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Old Save Point</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCEDURE__OLD_SAVE_POINT = ROUTINE_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Result Set</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCEDURE__RESULT_SET = ROUTINE_FEATURE_COUNT + 2;
+
+	/**
+	 * The number of structural features of the '<em>Procedure</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCEDURE_FEATURE_COUNT = ROUTINE_FEATURE_COUNT + 3;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.routines.impl.FunctionImpl <em>Function</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.routines.impl.FunctionImpl
+	 * @see org.eclipse.datatools.modelbase.sql.routines.impl.SQLRoutinesPackageImpl#getFunction()
+	 * @generated
+	 */
+	int FUNCTION = 4;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FUNCTION__EANNOTATIONS = ROUTINE__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FUNCTION__NAME = ROUTINE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FUNCTION__DEPENDENCIES = ROUTINE__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FUNCTION__DESCRIPTION = ROUTINE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FUNCTION__LABEL = ROUTINE__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FUNCTION__COMMENTS = ROUTINE__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FUNCTION__EXTENSIONS = ROUTINE__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FUNCTION__PRIVILEGES = ROUTINE__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Specific Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FUNCTION__SPECIFIC_NAME = ROUTINE__SPECIFIC_NAME;
+
+	/**
+	 * The feature id for the '<em><b>Language</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FUNCTION__LANGUAGE = ROUTINE__LANGUAGE;
+
+	/**
+	 * The feature id for the '<em><b>Parameter Style</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FUNCTION__PARAMETER_STYLE = ROUTINE__PARAMETER_STYLE;
+
+	/**
+	 * The feature id for the '<em><b>Deterministic</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FUNCTION__DETERMINISTIC = ROUTINE__DETERMINISTIC;
+
+	/**
+	 * The feature id for the '<em><b>Sql Data Access</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FUNCTION__SQL_DATA_ACCESS = ROUTINE__SQL_DATA_ACCESS;
+
+	/**
+	 * The feature id for the '<em><b>Creation TS</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FUNCTION__CREATION_TS = ROUTINE__CREATION_TS;
+
+	/**
+	 * The feature id for the '<em><b>Last Altered TS</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FUNCTION__LAST_ALTERED_TS = ROUTINE__LAST_ALTERED_TS;
+
+	/**
+	 * The feature id for the '<em><b>Authorization ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FUNCTION__AUTHORIZATION_ID = ROUTINE__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Security</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FUNCTION__SECURITY = ROUTINE__SECURITY;
+
+	/**
+	 * The feature id for the '<em><b>External Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FUNCTION__EXTERNAL_NAME = ROUTINE__EXTERNAL_NAME;
+
+	/**
+	 * The feature id for the '<em><b>Parameters</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FUNCTION__PARAMETERS = ROUTINE__PARAMETERS;
+
+	/**
+	 * The feature id for the '<em><b>Source</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FUNCTION__SOURCE = ROUTINE__SOURCE;
+
+	/**
+	 * The feature id for the '<em><b>Schema</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FUNCTION__SCHEMA = ROUTINE__SCHEMA;
+
+	/**
+	 * The feature id for the '<em><b>Null Call</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FUNCTION__NULL_CALL = ROUTINE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Static</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FUNCTION__STATIC = ROUTINE_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Transform Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FUNCTION__TRANSFORM_GROUP = ROUTINE_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Type Preserving</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FUNCTION__TYPE_PRESERVING = ROUTINE_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Mutator</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FUNCTION__MUTATOR = ROUTINE_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Return Table</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FUNCTION__RETURN_TABLE = ROUTINE_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Return Scalar</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FUNCTION__RETURN_SCALAR = ROUTINE_FEATURE_COUNT + 6;
+
+	/**
+	 * The feature id for the '<em><b>Return Cast</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FUNCTION__RETURN_CAST = ROUTINE_FEATURE_COUNT + 7;
+
+	/**
+	 * The number of structural features of the '<em>Function</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FUNCTION_FEATURE_COUNT = ROUTINE_FEATURE_COUNT + 8;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.routines.impl.RoutineResultTableImpl <em>Routine Result Table</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.routines.impl.RoutineResultTableImpl
+	 * @see org.eclipse.datatools.modelbase.sql.routines.impl.SQLRoutinesPackageImpl#getRoutineResultTable()
+	 * @generated
+	 */
+	int ROUTINE_RESULT_TABLE = 5;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROUTINE_RESULT_TABLE__EANNOTATIONS = SQLTablesPackage.TABLE__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROUTINE_RESULT_TABLE__NAME = SQLTablesPackage.TABLE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROUTINE_RESULT_TABLE__DEPENDENCIES = SQLTablesPackage.TABLE__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROUTINE_RESULT_TABLE__DESCRIPTION = SQLTablesPackage.TABLE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROUTINE_RESULT_TABLE__LABEL = SQLTablesPackage.TABLE__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROUTINE_RESULT_TABLE__COMMENTS = SQLTablesPackage.TABLE__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROUTINE_RESULT_TABLE__EXTENSIONS = SQLTablesPackage.TABLE__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROUTINE_RESULT_TABLE__PRIVILEGES = SQLTablesPackage.TABLE__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Columns</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROUTINE_RESULT_TABLE__COLUMNS = SQLTablesPackage.TABLE__COLUMNS;
+
+	/**
+	 * The feature id for the '<em><b>Supertable</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROUTINE_RESULT_TABLE__SUPERTABLE = SQLTablesPackage.TABLE__SUPERTABLE;
+
+	/**
+	 * The feature id for the '<em><b>Subtables</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROUTINE_RESULT_TABLE__SUBTABLES = SQLTablesPackage.TABLE__SUBTABLES;
+
+	/**
+	 * The feature id for the '<em><b>Schema</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROUTINE_RESULT_TABLE__SCHEMA = SQLTablesPackage.TABLE__SCHEMA;
+
+	/**
+	 * The feature id for the '<em><b>Udt</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROUTINE_RESULT_TABLE__UDT = SQLTablesPackage.TABLE__UDT;
+
+	/**
+	 * The feature id for the '<em><b>Triggers</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROUTINE_RESULT_TABLE__TRIGGERS = SQLTablesPackage.TABLE__TRIGGERS;
+
+	/**
+	 * The feature id for the '<em><b>Index</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROUTINE_RESULT_TABLE__INDEX = SQLTablesPackage.TABLE__INDEX;
+
+	/**
+	 * The feature id for the '<em><b>Self Ref Column Generation</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROUTINE_RESULT_TABLE__SELF_REF_COLUMN_GENERATION = SQLTablesPackage.TABLE__SELF_REF_COLUMN_GENERATION;
+
+	/**
+	 * The feature id for the '<em><b>Insertable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROUTINE_RESULT_TABLE__INSERTABLE = SQLTablesPackage.TABLE__INSERTABLE;
+
+	/**
+	 * The feature id for the '<em><b>Updatable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROUTINE_RESULT_TABLE__UPDATABLE = SQLTablesPackage.TABLE__UPDATABLE;
+
+	/**
+	 * The number of structural features of the '<em>Routine Result Table</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ROUTINE_RESULT_TABLE_FEATURE_COUNT = SQLTablesPackage.TABLE_FEATURE_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.routines.impl.MethodImpl <em>Method</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.routines.impl.MethodImpl
+	 * @see org.eclipse.datatools.modelbase.sql.routines.impl.SQLRoutinesPackageImpl#getMethod()
+	 * @generated
+	 */
+	int METHOD = 6;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int METHOD__EANNOTATIONS = FUNCTION__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int METHOD__NAME = FUNCTION__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int METHOD__DEPENDENCIES = FUNCTION__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int METHOD__DESCRIPTION = FUNCTION__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int METHOD__LABEL = FUNCTION__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int METHOD__COMMENTS = FUNCTION__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int METHOD__EXTENSIONS = FUNCTION__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int METHOD__PRIVILEGES = FUNCTION__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Specific Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int METHOD__SPECIFIC_NAME = FUNCTION__SPECIFIC_NAME;
+
+	/**
+	 * The feature id for the '<em><b>Language</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int METHOD__LANGUAGE = FUNCTION__LANGUAGE;
+
+	/**
+	 * The feature id for the '<em><b>Parameter Style</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int METHOD__PARAMETER_STYLE = FUNCTION__PARAMETER_STYLE;
+
+	/**
+	 * The feature id for the '<em><b>Deterministic</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int METHOD__DETERMINISTIC = FUNCTION__DETERMINISTIC;
+
+	/**
+	 * The feature id for the '<em><b>Sql Data Access</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int METHOD__SQL_DATA_ACCESS = FUNCTION__SQL_DATA_ACCESS;
+
+	/**
+	 * The feature id for the '<em><b>Creation TS</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int METHOD__CREATION_TS = FUNCTION__CREATION_TS;
+
+	/**
+	 * The feature id for the '<em><b>Last Altered TS</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int METHOD__LAST_ALTERED_TS = FUNCTION__LAST_ALTERED_TS;
+
+	/**
+	 * The feature id for the '<em><b>Authorization ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int METHOD__AUTHORIZATION_ID = FUNCTION__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Security</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int METHOD__SECURITY = FUNCTION__SECURITY;
+
+	/**
+	 * The feature id for the '<em><b>External Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int METHOD__EXTERNAL_NAME = FUNCTION__EXTERNAL_NAME;
+
+	/**
+	 * The feature id for the '<em><b>Parameters</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int METHOD__PARAMETERS = FUNCTION__PARAMETERS;
+
+	/**
+	 * The feature id for the '<em><b>Source</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int METHOD__SOURCE = FUNCTION__SOURCE;
+
+	/**
+	 * The feature id for the '<em><b>Schema</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int METHOD__SCHEMA = FUNCTION__SCHEMA;
+
+	/**
+	 * The feature id for the '<em><b>Null Call</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int METHOD__NULL_CALL = FUNCTION__NULL_CALL;
+
+	/**
+	 * The feature id for the '<em><b>Static</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int METHOD__STATIC = FUNCTION__STATIC;
+
+	/**
+	 * The feature id for the '<em><b>Transform Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int METHOD__TRANSFORM_GROUP = FUNCTION__TRANSFORM_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Type Preserving</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int METHOD__TYPE_PRESERVING = FUNCTION__TYPE_PRESERVING;
+
+	/**
+	 * The feature id for the '<em><b>Mutator</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int METHOD__MUTATOR = FUNCTION__MUTATOR;
+
+	/**
+	 * The feature id for the '<em><b>Return Table</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int METHOD__RETURN_TABLE = FUNCTION__RETURN_TABLE;
+
+	/**
+	 * The feature id for the '<em><b>Return Scalar</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int METHOD__RETURN_SCALAR = FUNCTION__RETURN_SCALAR;
+
+	/**
+	 * The feature id for the '<em><b>Return Cast</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int METHOD__RETURN_CAST = FUNCTION__RETURN_CAST;
+
+	/**
+	 * The feature id for the '<em><b>Overriding</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int METHOD__OVERRIDING = FUNCTION_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Constructor</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int METHOD__CONSTRUCTOR = FUNCTION_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>Method</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int METHOD_FEATURE_COUNT = FUNCTION_FEATURE_COUNT + 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.routines.impl.UserDefinedFunctionImpl <em>User Defined Function</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.routines.impl.UserDefinedFunctionImpl
+	 * @see org.eclipse.datatools.modelbase.sql.routines.impl.SQLRoutinesPackageImpl#getUserDefinedFunction()
+	 * @generated
+	 */
+	int USER_DEFINED_FUNCTION = 7;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_FUNCTION__EANNOTATIONS = FUNCTION__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_FUNCTION__NAME = FUNCTION__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_FUNCTION__DEPENDENCIES = FUNCTION__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_FUNCTION__DESCRIPTION = FUNCTION__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_FUNCTION__LABEL = FUNCTION__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_FUNCTION__COMMENTS = FUNCTION__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_FUNCTION__EXTENSIONS = FUNCTION__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_FUNCTION__PRIVILEGES = FUNCTION__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Specific Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_FUNCTION__SPECIFIC_NAME = FUNCTION__SPECIFIC_NAME;
+
+	/**
+	 * The feature id for the '<em><b>Language</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_FUNCTION__LANGUAGE = FUNCTION__LANGUAGE;
+
+	/**
+	 * The feature id for the '<em><b>Parameter Style</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_FUNCTION__PARAMETER_STYLE = FUNCTION__PARAMETER_STYLE;
+
+	/**
+	 * The feature id for the '<em><b>Deterministic</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_FUNCTION__DETERMINISTIC = FUNCTION__DETERMINISTIC;
+
+	/**
+	 * The feature id for the '<em><b>Sql Data Access</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_FUNCTION__SQL_DATA_ACCESS = FUNCTION__SQL_DATA_ACCESS;
+
+	/**
+	 * The feature id for the '<em><b>Creation TS</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_FUNCTION__CREATION_TS = FUNCTION__CREATION_TS;
+
+	/**
+	 * The feature id for the '<em><b>Last Altered TS</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_FUNCTION__LAST_ALTERED_TS = FUNCTION__LAST_ALTERED_TS;
+
+	/**
+	 * The feature id for the '<em><b>Authorization ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_FUNCTION__AUTHORIZATION_ID = FUNCTION__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Security</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_FUNCTION__SECURITY = FUNCTION__SECURITY;
+
+	/**
+	 * The feature id for the '<em><b>External Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_FUNCTION__EXTERNAL_NAME = FUNCTION__EXTERNAL_NAME;
+
+	/**
+	 * The feature id for the '<em><b>Parameters</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_FUNCTION__PARAMETERS = FUNCTION__PARAMETERS;
+
+	/**
+	 * The feature id for the '<em><b>Source</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_FUNCTION__SOURCE = FUNCTION__SOURCE;
+
+	/**
+	 * The feature id for the '<em><b>Schema</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_FUNCTION__SCHEMA = FUNCTION__SCHEMA;
+
+	/**
+	 * The feature id for the '<em><b>Null Call</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_FUNCTION__NULL_CALL = FUNCTION__NULL_CALL;
+
+	/**
+	 * The feature id for the '<em><b>Static</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_FUNCTION__STATIC = FUNCTION__STATIC;
+
+	/**
+	 * The feature id for the '<em><b>Transform Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_FUNCTION__TRANSFORM_GROUP = FUNCTION__TRANSFORM_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Type Preserving</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_FUNCTION__TYPE_PRESERVING = FUNCTION__TYPE_PRESERVING;
+
+	/**
+	 * The feature id for the '<em><b>Mutator</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_FUNCTION__MUTATOR = FUNCTION__MUTATOR;
+
+	/**
+	 * The feature id for the '<em><b>Return Table</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_FUNCTION__RETURN_TABLE = FUNCTION__RETURN_TABLE;
+
+	/**
+	 * The feature id for the '<em><b>Return Scalar</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_FUNCTION__RETURN_SCALAR = FUNCTION__RETURN_SCALAR;
+
+	/**
+	 * The feature id for the '<em><b>Return Cast</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_FUNCTION__RETURN_CAST = FUNCTION__RETURN_CAST;
+
+	/**
+	 * The number of structural features of the '<em>User Defined Function</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int USER_DEFINED_FUNCTION_FEATURE_COUNT = FUNCTION_FEATURE_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.routines.impl.BuiltInFunctionImpl <em>Built In Function</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.routines.impl.BuiltInFunctionImpl
+	 * @see org.eclipse.datatools.modelbase.sql.routines.impl.SQLRoutinesPackageImpl#getBuiltInFunction()
+	 * @generated
+	 */
+	int BUILT_IN_FUNCTION = 8;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUILT_IN_FUNCTION__EANNOTATIONS = FUNCTION__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUILT_IN_FUNCTION__NAME = FUNCTION__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUILT_IN_FUNCTION__DEPENDENCIES = FUNCTION__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUILT_IN_FUNCTION__DESCRIPTION = FUNCTION__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUILT_IN_FUNCTION__LABEL = FUNCTION__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUILT_IN_FUNCTION__COMMENTS = FUNCTION__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUILT_IN_FUNCTION__EXTENSIONS = FUNCTION__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUILT_IN_FUNCTION__PRIVILEGES = FUNCTION__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Specific Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUILT_IN_FUNCTION__SPECIFIC_NAME = FUNCTION__SPECIFIC_NAME;
+
+	/**
+	 * The feature id for the '<em><b>Language</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUILT_IN_FUNCTION__LANGUAGE = FUNCTION__LANGUAGE;
+
+	/**
+	 * The feature id for the '<em><b>Parameter Style</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUILT_IN_FUNCTION__PARAMETER_STYLE = FUNCTION__PARAMETER_STYLE;
+
+	/**
+	 * The feature id for the '<em><b>Deterministic</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUILT_IN_FUNCTION__DETERMINISTIC = FUNCTION__DETERMINISTIC;
+
+	/**
+	 * The feature id for the '<em><b>Sql Data Access</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUILT_IN_FUNCTION__SQL_DATA_ACCESS = FUNCTION__SQL_DATA_ACCESS;
+
+	/**
+	 * The feature id for the '<em><b>Creation TS</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUILT_IN_FUNCTION__CREATION_TS = FUNCTION__CREATION_TS;
+
+	/**
+	 * The feature id for the '<em><b>Last Altered TS</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUILT_IN_FUNCTION__LAST_ALTERED_TS = FUNCTION__LAST_ALTERED_TS;
+
+	/**
+	 * The feature id for the '<em><b>Authorization ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUILT_IN_FUNCTION__AUTHORIZATION_ID = FUNCTION__AUTHORIZATION_ID;
+
+	/**
+	 * The feature id for the '<em><b>Security</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUILT_IN_FUNCTION__SECURITY = FUNCTION__SECURITY;
+
+	/**
+	 * The feature id for the '<em><b>External Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUILT_IN_FUNCTION__EXTERNAL_NAME = FUNCTION__EXTERNAL_NAME;
+
+	/**
+	 * The feature id for the '<em><b>Parameters</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUILT_IN_FUNCTION__PARAMETERS = FUNCTION__PARAMETERS;
+
+	/**
+	 * The feature id for the '<em><b>Source</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUILT_IN_FUNCTION__SOURCE = FUNCTION__SOURCE;
+
+	/**
+	 * The feature id for the '<em><b>Schema</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUILT_IN_FUNCTION__SCHEMA = FUNCTION__SCHEMA;
+
+	/**
+	 * The feature id for the '<em><b>Null Call</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUILT_IN_FUNCTION__NULL_CALL = FUNCTION__NULL_CALL;
+
+	/**
+	 * The feature id for the '<em><b>Static</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUILT_IN_FUNCTION__STATIC = FUNCTION__STATIC;
+
+	/**
+	 * The feature id for the '<em><b>Transform Group</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUILT_IN_FUNCTION__TRANSFORM_GROUP = FUNCTION__TRANSFORM_GROUP;
+
+	/**
+	 * The feature id for the '<em><b>Type Preserving</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUILT_IN_FUNCTION__TYPE_PRESERVING = FUNCTION__TYPE_PRESERVING;
+
+	/**
+	 * The feature id for the '<em><b>Mutator</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUILT_IN_FUNCTION__MUTATOR = FUNCTION__MUTATOR;
+
+	/**
+	 * The feature id for the '<em><b>Return Table</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUILT_IN_FUNCTION__RETURN_TABLE = FUNCTION__RETURN_TABLE;
+
+	/**
+	 * The feature id for the '<em><b>Return Scalar</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUILT_IN_FUNCTION__RETURN_SCALAR = FUNCTION__RETURN_SCALAR;
+
+	/**
+	 * The feature id for the '<em><b>Return Cast</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUILT_IN_FUNCTION__RETURN_CAST = FUNCTION__RETURN_CAST;
+
+	/**
+	 * The number of structural features of the '<em>Built In Function</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUILT_IN_FUNCTION_FEATURE_COUNT = FUNCTION_FEATURE_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.routines.DataAccess <em>Data Access</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.routines.DataAccess
+	 * @see org.eclipse.datatools.modelbase.sql.routines.impl.SQLRoutinesPackageImpl#getDataAccess()
+	 * @generated
+	 */
+	int DATA_ACCESS = 9;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.routines.ParameterMode <em>Parameter Mode</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.routines.ParameterMode
+	 * @see org.eclipse.datatools.modelbase.sql.routines.impl.SQLRoutinesPackageImpl#getParameterMode()
+	 * @generated
+	 */
+	int PARAMETER_MODE = 10;
+
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.routines.Routine <em>Routine</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Routine</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.Routine
+	 * @generated
+	 */
+	EClass getRoutine();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.routines.Routine#getSpecificName <em>Specific Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Specific Name</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.Routine#getSpecificName()
+	 * @see #getRoutine()
+	 * @generated
+	 */
+	EAttribute getRoutine_SpecificName();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.routines.Routine#getLanguage <em>Language</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Language</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.Routine#getLanguage()
+	 * @see #getRoutine()
+	 * @generated
+	 */
+	EAttribute getRoutine_Language();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.routines.Routine#getParameterStyle <em>Parameter Style</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Parameter Style</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.Routine#getParameterStyle()
+	 * @see #getRoutine()
+	 * @generated
+	 */
+	EAttribute getRoutine_ParameterStyle();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.routines.Routine#isDeterministic <em>Deterministic</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Deterministic</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.Routine#isDeterministic()
+	 * @see #getRoutine()
+	 * @generated
+	 */
+	EAttribute getRoutine_Deterministic();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.routines.Routine#getSqlDataAccess <em>Sql Data Access</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Sql Data Access</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.Routine#getSqlDataAccess()
+	 * @see #getRoutine()
+	 * @generated
+	 */
+	EAttribute getRoutine_SqlDataAccess();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.routines.Routine#getCreationTS <em>Creation TS</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Creation TS</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.Routine#getCreationTS()
+	 * @see #getRoutine()
+	 * @generated
+	 */
+	EAttribute getRoutine_CreationTS();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.routines.Routine#getLastAlteredTS <em>Last Altered TS</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Last Altered TS</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.Routine#getLastAlteredTS()
+	 * @see #getRoutine()
+	 * @generated
+	 */
+	EAttribute getRoutine_LastAlteredTS();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.routines.Routine#getAuthorizationID <em>Authorization ID</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Authorization ID</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.Routine#getAuthorizationID()
+	 * @see #getRoutine()
+	 * @generated
+	 */
+	EAttribute getRoutine_AuthorizationID();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.routines.Routine#getSecurity <em>Security</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Security</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.Routine#getSecurity()
+	 * @see #getRoutine()
+	 * @generated
+	 */
+	EAttribute getRoutine_Security();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.routines.Routine#getExternalName <em>External Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>External Name</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.Routine#getExternalName()
+	 * @see #getRoutine()
+	 * @generated
+	 */
+	EAttribute getRoutine_ExternalName();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.routines.Routine#getParameters <em>Parameters</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Parameters</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.Routine#getParameters()
+	 * @see #getRoutine()
+	 * @generated
+	 */
+	EReference getRoutine_Parameters();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.routines.Routine#getSource <em>Source</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Source</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.Routine#getSource()
+	 * @see #getRoutine()
+	 * @generated
+	 */
+	EReference getRoutine_Source();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.sql.routines.Routine#getSchema <em>Schema</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Schema</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.Routine#getSchema()
+	 * @see #getRoutine()
+	 * @generated
+	 */
+	EReference getRoutine_Schema();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.routines.Source <em>Source</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Source</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.Source
+	 * @generated
+	 */
+	EClass getSource();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.routines.Source#getBody <em>Body</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Body</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.Source#getBody()
+	 * @see #getSource()
+	 * @generated
+	 */
+	EAttribute getSource_Body();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.routines.Parameter <em>Parameter</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Parameter</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.Parameter
+	 * @generated
+	 */
+	EClass getParameter();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.routines.Parameter#getMode <em>Mode</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Mode</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.Parameter#getMode()
+	 * @see #getParameter()
+	 * @generated
+	 */
+	EAttribute getParameter_Mode();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.routines.Parameter#isLocator <em>Locator</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Locator</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.Parameter#isLocator()
+	 * @see #getParameter()
+	 * @generated
+	 */
+	EAttribute getParameter_Locator();
+
+	/**
+	 * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.routines.Parameter#getRoutine <em>Routine</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the container reference '<em>Routine</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.Parameter#getRoutine()
+	 * @see #getParameter()
+	 * @generated
+	 */
+	EReference getParameter_Routine();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.routines.Parameter#getStringTypeOption <em>String Type Option</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>String Type Option</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.Parameter#getStringTypeOption()
+	 * @see #getParameter()
+	 * @generated
+	 */
+	EReference getParameter_StringTypeOption();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.routines.Procedure <em>Procedure</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Procedure</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.Procedure
+	 * @generated
+	 */
+	EClass getProcedure();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.routines.Procedure#getMaxResultSets <em>Max Result Sets</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Max Result Sets</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.Procedure#getMaxResultSets()
+	 * @see #getProcedure()
+	 * @generated
+	 */
+	EAttribute getProcedure_MaxResultSets();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.routines.Procedure#isOldSavePoint <em>Old Save Point</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Old Save Point</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.Procedure#isOldSavePoint()
+	 * @see #getProcedure()
+	 * @generated
+	 */
+	EAttribute getProcedure_OldSavePoint();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.routines.Procedure#getResultSet <em>Result Set</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Result Set</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.Procedure#getResultSet()
+	 * @see #getProcedure()
+	 * @generated
+	 */
+	EReference getProcedure_ResultSet();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.routines.Function <em>Function</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Function</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.Function
+	 * @generated
+	 */
+	EClass getFunction();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.routines.Function#isNullCall <em>Null Call</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Null Call</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.Function#isNullCall()
+	 * @see #getFunction()
+	 * @generated
+	 */
+	EAttribute getFunction_NullCall();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.routines.Function#isStatic <em>Static</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Static</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.Function#isStatic()
+	 * @see #getFunction()
+	 * @generated
+	 */
+	EAttribute getFunction_Static();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.routines.Function#getTransformGroup <em>Transform Group</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Transform Group</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.Function#getTransformGroup()
+	 * @see #getFunction()
+	 * @generated
+	 */
+	EAttribute getFunction_TransformGroup();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.routines.Function#isTypePreserving <em>Type Preserving</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type Preserving</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.Function#isTypePreserving()
+	 * @see #getFunction()
+	 * @generated
+	 */
+	EAttribute getFunction_TypePreserving();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.routines.Function#isMutator <em>Mutator</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Mutator</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.Function#isMutator()
+	 * @see #getFunction()
+	 * @generated
+	 */
+	EAttribute getFunction_Mutator();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.routines.Function#getReturnTable <em>Return Table</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Return Table</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.Function#getReturnTable()
+	 * @see #getFunction()
+	 * @generated
+	 */
+	EReference getFunction_ReturnTable();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.routines.Function#getReturnScalar <em>Return Scalar</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Return Scalar</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.Function#getReturnScalar()
+	 * @see #getFunction()
+	 * @generated
+	 */
+	EReference getFunction_ReturnScalar();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.routines.Function#getReturnCast <em>Return Cast</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Return Cast</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.Function#getReturnCast()
+	 * @see #getFunction()
+	 * @generated
+	 */
+	EReference getFunction_ReturnCast();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.routines.RoutineResultTable <em>Routine Result Table</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Routine Result Table</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.RoutineResultTable
+	 * @generated
+	 */
+	EClass getRoutineResultTable();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.routines.Method <em>Method</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Method</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.Method
+	 * @generated
+	 */
+	EClass getMethod();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.routines.Method#isOverriding <em>Overriding</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Overriding</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.Method#isOverriding()
+	 * @see #getMethod()
+	 * @generated
+	 */
+	EAttribute getMethod_Overriding();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.routines.Method#isConstructor <em>Constructor</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Constructor</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.Method#isConstructor()
+	 * @see #getMethod()
+	 * @generated
+	 */
+	EAttribute getMethod_Constructor();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.routines.UserDefinedFunction <em>User Defined Function</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>User Defined Function</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.UserDefinedFunction
+	 * @generated
+	 */
+	EClass getUserDefinedFunction();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.routines.BuiltInFunction <em>Built In Function</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Built In Function</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.BuiltInFunction
+	 * @generated
+	 */
+	EClass getBuiltInFunction();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.sql.routines.DataAccess <em>Data Access</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Data Access</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.DataAccess
+	 * @generated
+	 */
+	EEnum getDataAccess();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.sql.routines.ParameterMode <em>Parameter Mode</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Parameter Mode</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.ParameterMode
+	 * @generated
+	 */
+	EEnum getParameterMode();
+
+	/**
+	 * Returns the factory that creates the instances of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the factory that creates the instances of the model.
+	 * @generated
+	 */
+	SQLRoutinesFactory getSQLRoutinesFactory();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * Defines literals for the meta objects that represent
+	 * <ul>
+	 *   <li>each class,</li>
+	 *   <li>each feature of each class,</li>
+	 *   <li>each enum,</li>
+	 *   <li>and each data type</li>
+	 * </ul>
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	interface Literals  {
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.routines.impl.RoutineImpl <em>Routine</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.routines.impl.RoutineImpl
+		 * @see org.eclipse.datatools.modelbase.sql.routines.impl.SQLRoutinesPackageImpl#getRoutine()
+		 * @generated
+		 */
+		EClass ROUTINE = eINSTANCE.getRoutine();
+
+		/**
+		 * The meta object literal for the '<em><b>Specific Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute ROUTINE__SPECIFIC_NAME = eINSTANCE.getRoutine_SpecificName();
+
+		/**
+		 * The meta object literal for the '<em><b>Language</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute ROUTINE__LANGUAGE = eINSTANCE.getRoutine_Language();
+
+		/**
+		 * The meta object literal for the '<em><b>Parameter Style</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute ROUTINE__PARAMETER_STYLE = eINSTANCE.getRoutine_ParameterStyle();
+
+		/**
+		 * The meta object literal for the '<em><b>Deterministic</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute ROUTINE__DETERMINISTIC = eINSTANCE.getRoutine_Deterministic();
+
+		/**
+		 * The meta object literal for the '<em><b>Sql Data Access</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute ROUTINE__SQL_DATA_ACCESS = eINSTANCE.getRoutine_SqlDataAccess();
+
+		/**
+		 * The meta object literal for the '<em><b>Creation TS</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute ROUTINE__CREATION_TS = eINSTANCE.getRoutine_CreationTS();
+
+		/**
+		 * The meta object literal for the '<em><b>Last Altered TS</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute ROUTINE__LAST_ALTERED_TS = eINSTANCE.getRoutine_LastAlteredTS();
+
+		/**
+		 * The meta object literal for the '<em><b>Authorization ID</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute ROUTINE__AUTHORIZATION_ID = eINSTANCE.getRoutine_AuthorizationID();
+
+		/**
+		 * The meta object literal for the '<em><b>Security</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute ROUTINE__SECURITY = eINSTANCE.getRoutine_Security();
+
+		/**
+		 * The meta object literal for the '<em><b>External Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute ROUTINE__EXTERNAL_NAME = eINSTANCE.getRoutine_ExternalName();
+
+		/**
+		 * The meta object literal for the '<em><b>Parameters</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference ROUTINE__PARAMETERS = eINSTANCE.getRoutine_Parameters();
+
+		/**
+		 * The meta object literal for the '<em><b>Source</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference ROUTINE__SOURCE = eINSTANCE.getRoutine_Source();
+
+		/**
+		 * The meta object literal for the '<em><b>Schema</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference ROUTINE__SCHEMA = eINSTANCE.getRoutine_Schema();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.routines.impl.SourceImpl <em>Source</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.routines.impl.SourceImpl
+		 * @see org.eclipse.datatools.modelbase.sql.routines.impl.SQLRoutinesPackageImpl#getSource()
+		 * @generated
+		 */
+		EClass SOURCE = eINSTANCE.getSource();
+
+		/**
+		 * The meta object literal for the '<em><b>Body</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute SOURCE__BODY = eINSTANCE.getSource_Body();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.routines.impl.ParameterImpl <em>Parameter</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.routines.impl.ParameterImpl
+		 * @see org.eclipse.datatools.modelbase.sql.routines.impl.SQLRoutinesPackageImpl#getParameter()
+		 * @generated
+		 */
+		EClass PARAMETER = eINSTANCE.getParameter();
+
+		/**
+		 * The meta object literal for the '<em><b>Mode</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PARAMETER__MODE = eINSTANCE.getParameter_Mode();
+
+		/**
+		 * The meta object literal for the '<em><b>Locator</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PARAMETER__LOCATOR = eINSTANCE.getParameter_Locator();
+
+		/**
+		 * The meta object literal for the '<em><b>Routine</b></em>' container reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference PARAMETER__ROUTINE = eINSTANCE.getParameter_Routine();
+
+		/**
+		 * The meta object literal for the '<em><b>String Type Option</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference PARAMETER__STRING_TYPE_OPTION = eINSTANCE.getParameter_StringTypeOption();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.routines.impl.ProcedureImpl <em>Procedure</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.routines.impl.ProcedureImpl
+		 * @see org.eclipse.datatools.modelbase.sql.routines.impl.SQLRoutinesPackageImpl#getProcedure()
+		 * @generated
+		 */
+		EClass PROCEDURE = eINSTANCE.getProcedure();
+
+		/**
+		 * The meta object literal for the '<em><b>Max Result Sets</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PROCEDURE__MAX_RESULT_SETS = eINSTANCE.getProcedure_MaxResultSets();
+
+		/**
+		 * The meta object literal for the '<em><b>Old Save Point</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PROCEDURE__OLD_SAVE_POINT = eINSTANCE.getProcedure_OldSavePoint();
+
+		/**
+		 * The meta object literal for the '<em><b>Result Set</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference PROCEDURE__RESULT_SET = eINSTANCE.getProcedure_ResultSet();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.routines.impl.FunctionImpl <em>Function</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.routines.impl.FunctionImpl
+		 * @see org.eclipse.datatools.modelbase.sql.routines.impl.SQLRoutinesPackageImpl#getFunction()
+		 * @generated
+		 */
+		EClass FUNCTION = eINSTANCE.getFunction();
+
+		/**
+		 * The meta object literal for the '<em><b>Null Call</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute FUNCTION__NULL_CALL = eINSTANCE.getFunction_NullCall();
+
+		/**
+		 * The meta object literal for the '<em><b>Static</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute FUNCTION__STATIC = eINSTANCE.getFunction_Static();
+
+		/**
+		 * The meta object literal for the '<em><b>Transform Group</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute FUNCTION__TRANSFORM_GROUP = eINSTANCE.getFunction_TransformGroup();
+
+		/**
+		 * The meta object literal for the '<em><b>Type Preserving</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute FUNCTION__TYPE_PRESERVING = eINSTANCE.getFunction_TypePreserving();
+
+		/**
+		 * The meta object literal for the '<em><b>Mutator</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute FUNCTION__MUTATOR = eINSTANCE.getFunction_Mutator();
+
+		/**
+		 * The meta object literal for the '<em><b>Return Table</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference FUNCTION__RETURN_TABLE = eINSTANCE.getFunction_ReturnTable();
+
+		/**
+		 * The meta object literal for the '<em><b>Return Scalar</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference FUNCTION__RETURN_SCALAR = eINSTANCE.getFunction_ReturnScalar();
+
+		/**
+		 * The meta object literal for the '<em><b>Return Cast</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference FUNCTION__RETURN_CAST = eINSTANCE.getFunction_ReturnCast();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.routines.impl.RoutineResultTableImpl <em>Routine Result Table</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.routines.impl.RoutineResultTableImpl
+		 * @see org.eclipse.datatools.modelbase.sql.routines.impl.SQLRoutinesPackageImpl#getRoutineResultTable()
+		 * @generated
+		 */
+		EClass ROUTINE_RESULT_TABLE = eINSTANCE.getRoutineResultTable();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.routines.impl.MethodImpl <em>Method</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.routines.impl.MethodImpl
+		 * @see org.eclipse.datatools.modelbase.sql.routines.impl.SQLRoutinesPackageImpl#getMethod()
+		 * @generated
+		 */
+		EClass METHOD = eINSTANCE.getMethod();
+
+		/**
+		 * The meta object literal for the '<em><b>Overriding</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute METHOD__OVERRIDING = eINSTANCE.getMethod_Overriding();
+
+		/**
+		 * The meta object literal for the '<em><b>Constructor</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute METHOD__CONSTRUCTOR = eINSTANCE.getMethod_Constructor();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.routines.impl.UserDefinedFunctionImpl <em>User Defined Function</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.routines.impl.UserDefinedFunctionImpl
+		 * @see org.eclipse.datatools.modelbase.sql.routines.impl.SQLRoutinesPackageImpl#getUserDefinedFunction()
+		 * @generated
+		 */
+		EClass USER_DEFINED_FUNCTION = eINSTANCE.getUserDefinedFunction();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.routines.impl.BuiltInFunctionImpl <em>Built In Function</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.routines.impl.BuiltInFunctionImpl
+		 * @see org.eclipse.datatools.modelbase.sql.routines.impl.SQLRoutinesPackageImpl#getBuiltInFunction()
+		 * @generated
+		 */
+		EClass BUILT_IN_FUNCTION = eINSTANCE.getBuiltInFunction();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.routines.DataAccess <em>Data Access</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.routines.DataAccess
+		 * @see org.eclipse.datatools.modelbase.sql.routines.impl.SQLRoutinesPackageImpl#getDataAccess()
+		 * @generated
+		 */
+		EEnum DATA_ACCESS = eINSTANCE.getDataAccess();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.routines.ParameterMode <em>Parameter Mode</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.routines.ParameterMode
+		 * @see org.eclipse.datatools.modelbase.sql.routines.impl.SQLRoutinesPackageImpl#getParameterMode()
+		 * @generated
+		 */
+		EEnum PARAMETER_MODE = eINSTANCE.getParameterMode();
+
+	}
+
+} //SQLRoutinesPackage
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/Source.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/Source.java
new file mode 100644
index 0000000..96da8eb
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/Source.java
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.routines;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Source</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.27 SQL-invoked routines
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.Source#getBody <em>Body</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage#getSource()
+ * @model
+ * @generated
+ */
+public interface Source extends SQLObject {
+	/**
+	 * Returns the value of the '<em><b>Body</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Body</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Body</em>' attribute.
+	 * @see #setBody(String)
+	 * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage#getSource_Body()
+	 * @model
+	 * @generated
+	 */
+	String getBody();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.routines.Source#getBody <em>Body</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Body</em>' attribute.
+	 * @see #getBody()
+	 * @generated
+	 */
+	void setBody(String value);
+
+} // Source
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/UserDefinedFunction.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/UserDefinedFunction.java
new file mode 100644
index 0000000..b7c1961
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/UserDefinedFunction.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.routines;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>User Defined Function</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.27 SQL-invoked routines
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage#getUserDefinedFunction()
+ * @model
+ * @generated
+ */
+public interface UserDefinedFunction extends Function {
+} // UserDefinedFunction
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/impl/BuiltInFunctionImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/impl/BuiltInFunctionImpl.java
new file mode 100644
index 0000000..236a15e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/impl/BuiltInFunctionImpl.java
@@ -0,0 +1,58 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.routines.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.routines.BuiltInFunction;
+import org.eclipse.datatools.modelbase.sql.routines.DataAccess;
+import org.eclipse.datatools.modelbase.sql.routines.Parameter;
+import org.eclipse.datatools.modelbase.sql.routines.RoutineResultTable;
+import org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage;
+import org.eclipse.datatools.modelbase.sql.routines.Source;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Built In Function</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class BuiltInFunctionImpl extends FunctionImpl implements BuiltInFunction {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected BuiltInFunctionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLRoutinesPackage.Literals.BUILT_IN_FUNCTION;
+	}
+
+} //BuiltInFunctionImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/impl/FunctionImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/impl/FunctionImpl.java
new file mode 100644
index 0000000..fb6d5cf
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/impl/FunctionImpl.java
@@ -0,0 +1,599 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.routines.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.routines.DataAccess;
+import org.eclipse.datatools.modelbase.sql.routines.Function;
+import org.eclipse.datatools.modelbase.sql.routines.Parameter;
+import org.eclipse.datatools.modelbase.sql.routines.RoutineResultTable;
+import org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage;
+import org.eclipse.datatools.modelbase.sql.routines.Source;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Function</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.impl.FunctionImpl#isNullCall <em>Null Call</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.impl.FunctionImpl#isStatic <em>Static</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.impl.FunctionImpl#getTransformGroup <em>Transform Group</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.impl.FunctionImpl#isTypePreserving <em>Type Preserving</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.impl.FunctionImpl#isMutator <em>Mutator</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.impl.FunctionImpl#getReturnTable <em>Return Table</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.impl.FunctionImpl#getReturnScalar <em>Return Scalar</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.impl.FunctionImpl#getReturnCast <em>Return Cast</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class FunctionImpl extends RoutineImpl implements Function {
+	/**
+	 * The default value of the '{@link #isNullCall() <em>Null Call</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isNullCall()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean NULL_CALL_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isNullCall() <em>Null Call</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isNullCall()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean nullCall = NULL_CALL_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isStatic() <em>Static</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isStatic()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean STATIC_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isStatic() <em>Static</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isStatic()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean static_ = STATIC_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getTransformGroup() <em>Transform Group</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTransformGroup()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String TRANSFORM_GROUP_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getTransformGroup() <em>Transform Group</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTransformGroup()
+	 * @generated
+	 * @ordered
+	 */
+	protected String transformGroup = TRANSFORM_GROUP_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isTypePreserving() <em>Type Preserving</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isTypePreserving()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean TYPE_PRESERVING_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isTypePreserving() <em>Type Preserving</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isTypePreserving()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean typePreserving = TYPE_PRESERVING_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isMutator() <em>Mutator</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isMutator()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean MUTATOR_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isMutator() <em>Mutator</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isMutator()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean mutator = MUTATOR_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getReturnTable() <em>Return Table</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getReturnTable()
+	 * @generated
+	 * @ordered
+	 */
+	protected RoutineResultTable returnTable;
+
+	/**
+	 * The cached value of the '{@link #getReturnScalar() <em>Return Scalar</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getReturnScalar()
+	 * @generated
+	 * @ordered
+	 */
+	protected Parameter returnScalar;
+
+	/**
+	 * The cached value of the '{@link #getReturnCast() <em>Return Cast</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getReturnCast()
+	 * @generated
+	 * @ordered
+	 */
+	protected Parameter returnCast;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected FunctionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLRoutinesPackage.Literals.FUNCTION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isNullCall() {
+		return nullCall;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setNullCall(boolean newNullCall) {
+		boolean oldNullCall = nullCall;
+		nullCall = newNullCall;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLRoutinesPackage.FUNCTION__NULL_CALL, oldNullCall, nullCall));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isStatic() {
+		return static_;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setStatic(boolean newStatic) {
+		boolean oldStatic = static_;
+		static_ = newStatic;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLRoutinesPackage.FUNCTION__STATIC, oldStatic, static_));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getTransformGroup() {
+		return transformGroup;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTransformGroup(String newTransformGroup) {
+		String oldTransformGroup = transformGroup;
+		transformGroup = newTransformGroup;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLRoutinesPackage.FUNCTION__TRANSFORM_GROUP, oldTransformGroup, transformGroup));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isTypePreserving() {
+		return typePreserving;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTypePreserving(boolean newTypePreserving) {
+		boolean oldTypePreserving = typePreserving;
+		typePreserving = newTypePreserving;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLRoutinesPackage.FUNCTION__TYPE_PRESERVING, oldTypePreserving, typePreserving));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isMutator() {
+		return mutator;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMutator(boolean newMutator) {
+		boolean oldMutator = mutator;
+		mutator = newMutator;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLRoutinesPackage.FUNCTION__MUTATOR, oldMutator, mutator));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public RoutineResultTable getReturnTable() {
+		return returnTable;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetReturnTable(RoutineResultTable newReturnTable, NotificationChain msgs) {
+		RoutineResultTable oldReturnTable = returnTable;
+		returnTable = newReturnTable;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLRoutinesPackage.FUNCTION__RETURN_TABLE, oldReturnTable, newReturnTable);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setReturnTable(RoutineResultTable newReturnTable) {
+		if (newReturnTable != returnTable) {
+			NotificationChain msgs = null;
+			if (returnTable != null)
+				msgs = ((InternalEObject)returnTable).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLRoutinesPackage.FUNCTION__RETURN_TABLE, null, msgs);
+			if (newReturnTable != null)
+				msgs = ((InternalEObject)newReturnTable).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SQLRoutinesPackage.FUNCTION__RETURN_TABLE, null, msgs);
+			msgs = basicSetReturnTable(newReturnTable, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLRoutinesPackage.FUNCTION__RETURN_TABLE, newReturnTable, newReturnTable));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Parameter getReturnScalar() {
+		return returnScalar;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetReturnScalar(Parameter newReturnScalar, NotificationChain msgs) {
+		Parameter oldReturnScalar = returnScalar;
+		returnScalar = newReturnScalar;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLRoutinesPackage.FUNCTION__RETURN_SCALAR, oldReturnScalar, newReturnScalar);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setReturnScalar(Parameter newReturnScalar) {
+		if (newReturnScalar != returnScalar) {
+			NotificationChain msgs = null;
+			if (returnScalar != null)
+				msgs = ((InternalEObject)returnScalar).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLRoutinesPackage.FUNCTION__RETURN_SCALAR, null, msgs);
+			if (newReturnScalar != null)
+				msgs = ((InternalEObject)newReturnScalar).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SQLRoutinesPackage.FUNCTION__RETURN_SCALAR, null, msgs);
+			msgs = basicSetReturnScalar(newReturnScalar, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLRoutinesPackage.FUNCTION__RETURN_SCALAR, newReturnScalar, newReturnScalar));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Parameter getReturnCast() {
+		return returnCast;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetReturnCast(Parameter newReturnCast, NotificationChain msgs) {
+		Parameter oldReturnCast = returnCast;
+		returnCast = newReturnCast;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLRoutinesPackage.FUNCTION__RETURN_CAST, oldReturnCast, newReturnCast);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setReturnCast(Parameter newReturnCast) {
+		if (newReturnCast != returnCast) {
+			NotificationChain msgs = null;
+			if (returnCast != null)
+				msgs = ((InternalEObject)returnCast).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLRoutinesPackage.FUNCTION__RETURN_CAST, null, msgs);
+			if (newReturnCast != null)
+				msgs = ((InternalEObject)newReturnCast).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SQLRoutinesPackage.FUNCTION__RETURN_CAST, null, msgs);
+			msgs = basicSetReturnCast(newReturnCast, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLRoutinesPackage.FUNCTION__RETURN_CAST, newReturnCast, newReturnCast));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLRoutinesPackage.FUNCTION__RETURN_TABLE:
+				return basicSetReturnTable(null, msgs);
+			case SQLRoutinesPackage.FUNCTION__RETURN_SCALAR:
+				return basicSetReturnScalar(null, msgs);
+			case SQLRoutinesPackage.FUNCTION__RETURN_CAST:
+				return basicSetReturnCast(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLRoutinesPackage.FUNCTION__NULL_CALL:
+				return isNullCall() ? Boolean.TRUE : Boolean.FALSE;
+			case SQLRoutinesPackage.FUNCTION__STATIC:
+				return isStatic() ? Boolean.TRUE : Boolean.FALSE;
+			case SQLRoutinesPackage.FUNCTION__TRANSFORM_GROUP:
+				return getTransformGroup();
+			case SQLRoutinesPackage.FUNCTION__TYPE_PRESERVING:
+				return isTypePreserving() ? Boolean.TRUE : Boolean.FALSE;
+			case SQLRoutinesPackage.FUNCTION__MUTATOR:
+				return isMutator() ? Boolean.TRUE : Boolean.FALSE;
+			case SQLRoutinesPackage.FUNCTION__RETURN_TABLE:
+				return getReturnTable();
+			case SQLRoutinesPackage.FUNCTION__RETURN_SCALAR:
+				return getReturnScalar();
+			case SQLRoutinesPackage.FUNCTION__RETURN_CAST:
+				return getReturnCast();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLRoutinesPackage.FUNCTION__NULL_CALL:
+				setNullCall(((Boolean)newValue).booleanValue());
+				return;
+			case SQLRoutinesPackage.FUNCTION__STATIC:
+				setStatic(((Boolean)newValue).booleanValue());
+				return;
+			case SQLRoutinesPackage.FUNCTION__TRANSFORM_GROUP:
+				setTransformGroup((String)newValue);
+				return;
+			case SQLRoutinesPackage.FUNCTION__TYPE_PRESERVING:
+				setTypePreserving(((Boolean)newValue).booleanValue());
+				return;
+			case SQLRoutinesPackage.FUNCTION__MUTATOR:
+				setMutator(((Boolean)newValue).booleanValue());
+				return;
+			case SQLRoutinesPackage.FUNCTION__RETURN_TABLE:
+				setReturnTable((RoutineResultTable)newValue);
+				return;
+			case SQLRoutinesPackage.FUNCTION__RETURN_SCALAR:
+				setReturnScalar((Parameter)newValue);
+				return;
+			case SQLRoutinesPackage.FUNCTION__RETURN_CAST:
+				setReturnCast((Parameter)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLRoutinesPackage.FUNCTION__NULL_CALL:
+				setNullCall(NULL_CALL_EDEFAULT);
+				return;
+			case SQLRoutinesPackage.FUNCTION__STATIC:
+				setStatic(STATIC_EDEFAULT);
+				return;
+			case SQLRoutinesPackage.FUNCTION__TRANSFORM_GROUP:
+				setTransformGroup(TRANSFORM_GROUP_EDEFAULT);
+				return;
+			case SQLRoutinesPackage.FUNCTION__TYPE_PRESERVING:
+				setTypePreserving(TYPE_PRESERVING_EDEFAULT);
+				return;
+			case SQLRoutinesPackage.FUNCTION__MUTATOR:
+				setMutator(MUTATOR_EDEFAULT);
+				return;
+			case SQLRoutinesPackage.FUNCTION__RETURN_TABLE:
+				setReturnTable((RoutineResultTable)null);
+				return;
+			case SQLRoutinesPackage.FUNCTION__RETURN_SCALAR:
+				setReturnScalar((Parameter)null);
+				return;
+			case SQLRoutinesPackage.FUNCTION__RETURN_CAST:
+				setReturnCast((Parameter)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLRoutinesPackage.FUNCTION__NULL_CALL:
+				return nullCall != NULL_CALL_EDEFAULT;
+			case SQLRoutinesPackage.FUNCTION__STATIC:
+				return static_ != STATIC_EDEFAULT;
+			case SQLRoutinesPackage.FUNCTION__TRANSFORM_GROUP:
+				return TRANSFORM_GROUP_EDEFAULT == null ? transformGroup != null : !TRANSFORM_GROUP_EDEFAULT.equals(transformGroup);
+			case SQLRoutinesPackage.FUNCTION__TYPE_PRESERVING:
+				return typePreserving != TYPE_PRESERVING_EDEFAULT;
+			case SQLRoutinesPackage.FUNCTION__MUTATOR:
+				return mutator != MUTATOR_EDEFAULT;
+			case SQLRoutinesPackage.FUNCTION__RETURN_TABLE:
+				return returnTable != null;
+			case SQLRoutinesPackage.FUNCTION__RETURN_SCALAR:
+				return returnScalar != null;
+			case SQLRoutinesPackage.FUNCTION__RETURN_CAST:
+				return returnCast != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (nullCall: "); //$NON-NLS-1$
+		result.append(nullCall);
+		result.append(", static: "); //$NON-NLS-1$
+		result.append(static_);
+		result.append(", transformGroup: "); //$NON-NLS-1$
+		result.append(transformGroup);
+		result.append(", typePreserving: "); //$NON-NLS-1$
+		result.append(typePreserving);
+		result.append(", mutator: "); //$NON-NLS-1$
+		result.append(mutator);
+		result.append(')');
+		return result.toString();
+	}
+
+} //FunctionImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/impl/MethodImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/impl/MethodImpl.java
new file mode 100644
index 0000000..5c6bd0f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/impl/MethodImpl.java
@@ -0,0 +1,228 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.routines.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.routines.DataAccess;
+import org.eclipse.datatools.modelbase.sql.routines.Method;
+import org.eclipse.datatools.modelbase.sql.routines.Parameter;
+import org.eclipse.datatools.modelbase.sql.routines.RoutineResultTable;
+import org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage;
+import org.eclipse.datatools.modelbase.sql.routines.Source;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Method</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.impl.MethodImpl#isOverriding <em>Overriding</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.impl.MethodImpl#isConstructor <em>Constructor</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class MethodImpl extends FunctionImpl implements Method {
+	/**
+	 * The default value of the '{@link #isOverriding() <em>Overriding</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isOverriding()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean OVERRIDING_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isOverriding() <em>Overriding</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isOverriding()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean overriding = OVERRIDING_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isConstructor() <em>Constructor</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isConstructor()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean CONSTRUCTOR_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isConstructor() <em>Constructor</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isConstructor()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean constructor = CONSTRUCTOR_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected MethodImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLRoutinesPackage.Literals.METHOD;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isOverriding() {
+		return overriding;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setOverriding(boolean newOverriding) {
+		boolean oldOverriding = overriding;
+		overriding = newOverriding;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLRoutinesPackage.METHOD__OVERRIDING, oldOverriding, overriding));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isConstructor() {
+		return constructor;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setConstructor(boolean newConstructor) {
+		boolean oldConstructor = constructor;
+		constructor = newConstructor;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLRoutinesPackage.METHOD__CONSTRUCTOR, oldConstructor, constructor));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLRoutinesPackage.METHOD__OVERRIDING:
+				return isOverriding() ? Boolean.TRUE : Boolean.FALSE;
+			case SQLRoutinesPackage.METHOD__CONSTRUCTOR:
+				return isConstructor() ? Boolean.TRUE : Boolean.FALSE;
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLRoutinesPackage.METHOD__OVERRIDING:
+				setOverriding(((Boolean)newValue).booleanValue());
+				return;
+			case SQLRoutinesPackage.METHOD__CONSTRUCTOR:
+				setConstructor(((Boolean)newValue).booleanValue());
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLRoutinesPackage.METHOD__OVERRIDING:
+				setOverriding(OVERRIDING_EDEFAULT);
+				return;
+			case SQLRoutinesPackage.METHOD__CONSTRUCTOR:
+				setConstructor(CONSTRUCTOR_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLRoutinesPackage.METHOD__OVERRIDING:
+				return overriding != OVERRIDING_EDEFAULT;
+			case SQLRoutinesPackage.METHOD__CONSTRUCTOR:
+				return constructor != CONSTRUCTOR_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (overriding: "); //$NON-NLS-1$
+		result.append(overriding);
+		result.append(", constructor: "); //$NON-NLS-1$
+		result.append(constructor);
+		result.append(')');
+		return result.toString();
+	}
+
+} //MethodImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/impl/ParameterImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/impl/ParameterImpl.java
new file mode 100644
index 0000000..daaf960
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/impl/ParameterImpl.java
@@ -0,0 +1,387 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.routines.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.CharacterStringDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType;
+import org.eclipse.datatools.modelbase.sql.routines.Parameter;
+import org.eclipse.datatools.modelbase.sql.routines.ParameterMode;
+import org.eclipse.datatools.modelbase.sql.routines.Routine;
+import org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage;
+import org.eclipse.datatools.modelbase.sql.schema.impl.TypedElementImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Parameter</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.impl.ParameterImpl#getMode <em>Mode</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.impl.ParameterImpl#isLocator <em>Locator</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.impl.ParameterImpl#getRoutine <em>Routine</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.impl.ParameterImpl#getStringTypeOption <em>String Type Option</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ParameterImpl extends TypedElementImpl implements Parameter {
+	/**
+	 * The default value of the '{@link #getMode() <em>Mode</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMode()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final ParameterMode MODE_EDEFAULT = ParameterMode.IN_LITERAL;
+
+	/**
+	 * The cached value of the '{@link #getMode() <em>Mode</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMode()
+	 * @generated
+	 * @ordered
+	 */
+	protected ParameterMode mode = MODE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isLocator() <em>Locator</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isLocator()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean LOCATOR_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isLocator() <em>Locator</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isLocator()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean locator = LOCATOR_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getStringTypeOption() <em>String Type Option</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getStringTypeOption()
+	 * @generated
+	 * @ordered
+	 */
+	protected CharacterStringDataType stringTypeOption;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ParameterImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLRoutinesPackage.Literals.PARAMETER;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ParameterMode getMode() {
+		return mode;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMode(ParameterMode newMode) {
+		ParameterMode oldMode = mode;
+		mode = newMode == null ? MODE_EDEFAULT : newMode;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLRoutinesPackage.PARAMETER__MODE, oldMode, mode));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isLocator() {
+		return locator;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLocator(boolean newLocator) {
+		boolean oldLocator = locator;
+		locator = newLocator;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLRoutinesPackage.PARAMETER__LOCATOR, oldLocator, locator));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Routine getRoutine() {
+		if (eContainerFeatureID != SQLRoutinesPackage.PARAMETER__ROUTINE) return null;
+		return (Routine)eContainer();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetRoutine(Routine newRoutine, NotificationChain msgs) {
+		msgs = eBasicSetContainer((InternalEObject)newRoutine, SQLRoutinesPackage.PARAMETER__ROUTINE, msgs);
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setRoutine(Routine newRoutine) {
+		if (newRoutine != eInternalContainer() || (eContainerFeatureID != SQLRoutinesPackage.PARAMETER__ROUTINE && newRoutine != null)) {
+			if (EcoreUtil.isAncestor(this, newRoutine))
+				throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); //$NON-NLS-1$
+			NotificationChain msgs = null;
+			if (eInternalContainer() != null)
+				msgs = eBasicRemoveFromContainer(msgs);
+			if (newRoutine != null)
+				msgs = ((InternalEObject)newRoutine).eInverseAdd(this, SQLRoutinesPackage.ROUTINE__PARAMETERS, Routine.class, msgs);
+			msgs = basicSetRoutine(newRoutine, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLRoutinesPackage.PARAMETER__ROUTINE, newRoutine, newRoutine));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public CharacterStringDataType getStringTypeOption() {
+		return stringTypeOption;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetStringTypeOption(CharacterStringDataType newStringTypeOption, NotificationChain msgs) {
+		CharacterStringDataType oldStringTypeOption = stringTypeOption;
+		stringTypeOption = newStringTypeOption;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLRoutinesPackage.PARAMETER__STRING_TYPE_OPTION, oldStringTypeOption, newStringTypeOption);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setStringTypeOption(CharacterStringDataType newStringTypeOption) {
+		if (newStringTypeOption != stringTypeOption) {
+			NotificationChain msgs = null;
+			if (stringTypeOption != null)
+				msgs = ((InternalEObject)stringTypeOption).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLRoutinesPackage.PARAMETER__STRING_TYPE_OPTION, null, msgs);
+			if (newStringTypeOption != null)
+				msgs = ((InternalEObject)newStringTypeOption).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SQLRoutinesPackage.PARAMETER__STRING_TYPE_OPTION, null, msgs);
+			msgs = basicSetStringTypeOption(newStringTypeOption, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLRoutinesPackage.PARAMETER__STRING_TYPE_OPTION, newStringTypeOption, newStringTypeOption));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLRoutinesPackage.PARAMETER__ROUTINE:
+				if (eInternalContainer() != null)
+					msgs = eBasicRemoveFromContainer(msgs);
+				return basicSetRoutine((Routine)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLRoutinesPackage.PARAMETER__ROUTINE:
+				return basicSetRoutine(null, msgs);
+			case SQLRoutinesPackage.PARAMETER__STRING_TYPE_OPTION:
+				return basicSetStringTypeOption(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+		switch (eContainerFeatureID) {
+			case SQLRoutinesPackage.PARAMETER__ROUTINE:
+				return eInternalContainer().eInverseRemove(this, SQLRoutinesPackage.ROUTINE__PARAMETERS, Routine.class, msgs);
+		}
+		return super.eBasicRemoveFromContainerFeature(msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLRoutinesPackage.PARAMETER__MODE:
+				return getMode();
+			case SQLRoutinesPackage.PARAMETER__LOCATOR:
+				return isLocator() ? Boolean.TRUE : Boolean.FALSE;
+			case SQLRoutinesPackage.PARAMETER__ROUTINE:
+				return getRoutine();
+			case SQLRoutinesPackage.PARAMETER__STRING_TYPE_OPTION:
+				return getStringTypeOption();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLRoutinesPackage.PARAMETER__MODE:
+				setMode((ParameterMode)newValue);
+				return;
+			case SQLRoutinesPackage.PARAMETER__LOCATOR:
+				setLocator(((Boolean)newValue).booleanValue());
+				return;
+			case SQLRoutinesPackage.PARAMETER__ROUTINE:
+				setRoutine((Routine)newValue);
+				return;
+			case SQLRoutinesPackage.PARAMETER__STRING_TYPE_OPTION:
+				setStringTypeOption((CharacterStringDataType)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLRoutinesPackage.PARAMETER__MODE:
+				setMode(MODE_EDEFAULT);
+				return;
+			case SQLRoutinesPackage.PARAMETER__LOCATOR:
+				setLocator(LOCATOR_EDEFAULT);
+				return;
+			case SQLRoutinesPackage.PARAMETER__ROUTINE:
+				setRoutine((Routine)null);
+				return;
+			case SQLRoutinesPackage.PARAMETER__STRING_TYPE_OPTION:
+				setStringTypeOption((CharacterStringDataType)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLRoutinesPackage.PARAMETER__MODE:
+				return mode != MODE_EDEFAULT;
+			case SQLRoutinesPackage.PARAMETER__LOCATOR:
+				return locator != LOCATOR_EDEFAULT;
+			case SQLRoutinesPackage.PARAMETER__ROUTINE:
+				return getRoutine() != null;
+			case SQLRoutinesPackage.PARAMETER__STRING_TYPE_OPTION:
+				return stringTypeOption != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (mode: "); //$NON-NLS-1$
+		result.append(mode);
+		result.append(", locator: "); //$NON-NLS-1$
+		result.append(locator);
+		result.append(')');
+		return result.toString();
+	}
+
+} //ParameterImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/impl/ProcedureImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/impl/ProcedureImpl.java
new file mode 100644
index 0000000..54bae65
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/impl/ProcedureImpl.java
@@ -0,0 +1,276 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.routines.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.routines.DataAccess;
+import org.eclipse.datatools.modelbase.sql.routines.Procedure;
+import org.eclipse.datatools.modelbase.sql.routines.RoutineResultTable;
+import org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage;
+import org.eclipse.datatools.modelbase.sql.routines.Source;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Procedure</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.impl.ProcedureImpl#getMaxResultSets <em>Max Result Sets</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.impl.ProcedureImpl#isOldSavePoint <em>Old Save Point</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.impl.ProcedureImpl#getResultSet <em>Result Set</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ProcedureImpl extends RoutineImpl implements Procedure {
+	/**
+	 * The default value of the '{@link #getMaxResultSets() <em>Max Result Sets</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaxResultSets()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int MAX_RESULT_SETS_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getMaxResultSets() <em>Max Result Sets</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaxResultSets()
+	 * @generated
+	 * @ordered
+	 */
+	protected int maxResultSets = MAX_RESULT_SETS_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isOldSavePoint() <em>Old Save Point</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isOldSavePoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean OLD_SAVE_POINT_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isOldSavePoint() <em>Old Save Point</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isOldSavePoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean oldSavePoint = OLD_SAVE_POINT_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getResultSet() <em>Result Set</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getResultSet()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList resultSet;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ProcedureImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLRoutinesPackage.Literals.PROCEDURE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getMaxResultSets() {
+		return maxResultSets;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMaxResultSets(int newMaxResultSets) {
+		int oldMaxResultSets = maxResultSets;
+		maxResultSets = newMaxResultSets;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLRoutinesPackage.PROCEDURE__MAX_RESULT_SETS, oldMaxResultSets, maxResultSets));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isOldSavePoint() {
+		return oldSavePoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setOldSavePoint(boolean newOldSavePoint) {
+		boolean oldOldSavePoint = oldSavePoint;
+		oldSavePoint = newOldSavePoint;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLRoutinesPackage.PROCEDURE__OLD_SAVE_POINT, oldOldSavePoint, oldSavePoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getResultSet() {
+		if (resultSet == null) {
+			resultSet = new EObjectContainmentEList(RoutineResultTable.class, this, SQLRoutinesPackage.PROCEDURE__RESULT_SET);
+		}
+		return resultSet;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLRoutinesPackage.PROCEDURE__RESULT_SET:
+				return ((InternalEList)getResultSet()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLRoutinesPackage.PROCEDURE__MAX_RESULT_SETS:
+				return new Integer(getMaxResultSets());
+			case SQLRoutinesPackage.PROCEDURE__OLD_SAVE_POINT:
+				return isOldSavePoint() ? Boolean.TRUE : Boolean.FALSE;
+			case SQLRoutinesPackage.PROCEDURE__RESULT_SET:
+				return getResultSet();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLRoutinesPackage.PROCEDURE__MAX_RESULT_SETS:
+				setMaxResultSets(((Integer)newValue).intValue());
+				return;
+			case SQLRoutinesPackage.PROCEDURE__OLD_SAVE_POINT:
+				setOldSavePoint(((Boolean)newValue).booleanValue());
+				return;
+			case SQLRoutinesPackage.PROCEDURE__RESULT_SET:
+				getResultSet().clear();
+				getResultSet().addAll((Collection)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLRoutinesPackage.PROCEDURE__MAX_RESULT_SETS:
+				setMaxResultSets(MAX_RESULT_SETS_EDEFAULT);
+				return;
+			case SQLRoutinesPackage.PROCEDURE__OLD_SAVE_POINT:
+				setOldSavePoint(OLD_SAVE_POINT_EDEFAULT);
+				return;
+			case SQLRoutinesPackage.PROCEDURE__RESULT_SET:
+				getResultSet().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLRoutinesPackage.PROCEDURE__MAX_RESULT_SETS:
+				return maxResultSets != MAX_RESULT_SETS_EDEFAULT;
+			case SQLRoutinesPackage.PROCEDURE__OLD_SAVE_POINT:
+				return oldSavePoint != OLD_SAVE_POINT_EDEFAULT;
+			case SQLRoutinesPackage.PROCEDURE__RESULT_SET:
+				return resultSet != null && !resultSet.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (maxResultSets: "); //$NON-NLS-1$
+		result.append(maxResultSets);
+		result.append(", oldSavePoint: "); //$NON-NLS-1$
+		result.append(oldSavePoint);
+		result.append(')');
+		return result.toString();
+	}
+
+} //ProcedureImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/impl/RoutineImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/impl/RoutineImpl.java
new file mode 100644
index 0000000..6b1fed8
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/impl/RoutineImpl.java
@@ -0,0 +1,921 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.routines.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.routines.DataAccess;
+import org.eclipse.datatools.modelbase.sql.routines.Parameter;
+import org.eclipse.datatools.modelbase.sql.routines.ParameterMode;
+import org.eclipse.datatools.modelbase.sql.routines.Routine;
+import org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage;
+import org.eclipse.datatools.modelbase.sql.routines.Source;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Routine</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.impl.RoutineImpl#getSpecificName <em>Specific Name</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.impl.RoutineImpl#getLanguage <em>Language</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.impl.RoutineImpl#getParameterStyle <em>Parameter Style</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.impl.RoutineImpl#isDeterministic <em>Deterministic</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.impl.RoutineImpl#getSqlDataAccess <em>Sql Data Access</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.impl.RoutineImpl#getCreationTS <em>Creation TS</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.impl.RoutineImpl#getLastAlteredTS <em>Last Altered TS</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.impl.RoutineImpl#getAuthorizationID <em>Authorization ID</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.impl.RoutineImpl#getSecurity <em>Security</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.impl.RoutineImpl#getExternalName <em>External Name</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.impl.RoutineImpl#getParameters <em>Parameters</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.impl.RoutineImpl#getSource <em>Source</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.impl.RoutineImpl#getSchema <em>Schema</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class RoutineImpl extends SQLObjectImpl implements Routine {
+	/**
+	 * The default value of the '{@link #getSpecificName() <em>Specific Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSpecificName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String SPECIFIC_NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getSpecificName() <em>Specific Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSpecificName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String specificName = SPECIFIC_NAME_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getLanguage() <em>Language</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLanguage()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String LANGUAGE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getLanguage() <em>Language</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLanguage()
+	 * @generated
+	 * @ordered
+	 */
+	protected String language = LANGUAGE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getParameterStyle() <em>Parameter Style</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getParameterStyle()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String PARAMETER_STYLE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getParameterStyle() <em>Parameter Style</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getParameterStyle()
+	 * @generated
+	 * @ordered
+	 */
+	protected String parameterStyle = PARAMETER_STYLE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isDeterministic() <em>Deterministic</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isDeterministic()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean DETERMINISTIC_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isDeterministic() <em>Deterministic</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isDeterministic()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean deterministic = DETERMINISTIC_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getSqlDataAccess() <em>Sql Data Access</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSqlDataAccess()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final DataAccess SQL_DATA_ACCESS_EDEFAULT = DataAccess.NO_SQL_LITERAL;
+
+	/**
+	 * The cached value of the '{@link #getSqlDataAccess() <em>Sql Data Access</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSqlDataAccess()
+	 * @generated
+	 * @ordered
+	 */
+	protected DataAccess sqlDataAccess = SQL_DATA_ACCESS_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getCreationTS() <em>Creation TS</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCreationTS()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String CREATION_TS_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getCreationTS() <em>Creation TS</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCreationTS()
+	 * @generated
+	 * @ordered
+	 */
+	protected String creationTS = CREATION_TS_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getLastAlteredTS() <em>Last Altered TS</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLastAlteredTS()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String LAST_ALTERED_TS_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getLastAlteredTS() <em>Last Altered TS</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLastAlteredTS()
+	 * @generated
+	 * @ordered
+	 */
+	protected String lastAlteredTS = LAST_ALTERED_TS_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getAuthorizationID() <em>Authorization ID</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAuthorizationID()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String AUTHORIZATION_ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getAuthorizationID() <em>Authorization ID</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAuthorizationID()
+	 * @generated
+	 * @ordered
+	 */
+	protected String authorizationID = AUTHORIZATION_ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getSecurity() <em>Security</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSecurity()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String SECURITY_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getSecurity() <em>Security</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSecurity()
+	 * @generated
+	 * @ordered
+	 */
+	protected String security = SECURITY_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getExternalName() <em>External Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getExternalName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String EXTERNAL_NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getExternalName() <em>External Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getExternalName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String externalName = EXTERNAL_NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getParameters() <em>Parameters</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getParameters()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList parameters;
+
+	/**
+	 * The cached value of the '{@link #getSource() <em>Source</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSource()
+	 * @generated
+	 * @ordered
+	 */
+	protected Source source;
+
+	/**
+	 * The cached value of the '{@link #getSchema() <em>Schema</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSchema()
+	 * @generated
+	 * @ordered
+	 */
+	protected Schema schema;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected RoutineImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLRoutinesPackage.Literals.ROUTINE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getSpecificName() {
+		return specificName;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSpecificName(String newSpecificName) {
+		String oldSpecificName = specificName;
+		specificName = newSpecificName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLRoutinesPackage.ROUTINE__SPECIFIC_NAME, oldSpecificName, specificName));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLanguage() {
+		return language;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLanguage(String newLanguage) {
+		String oldLanguage = language;
+		language = newLanguage;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLRoutinesPackage.ROUTINE__LANGUAGE, oldLanguage, language));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getParameterStyle() {
+		return parameterStyle;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setParameterStyle(String newParameterStyle) {
+		String oldParameterStyle = parameterStyle;
+		parameterStyle = newParameterStyle;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLRoutinesPackage.ROUTINE__PARAMETER_STYLE, oldParameterStyle, parameterStyle));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isDeterministic() {
+		return deterministic;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDeterministic(boolean newDeterministic) {
+		boolean oldDeterministic = deterministic;
+		deterministic = newDeterministic;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLRoutinesPackage.ROUTINE__DETERMINISTIC, oldDeterministic, deterministic));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DataAccess getSqlDataAccess() {
+		return sqlDataAccess;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSqlDataAccess(DataAccess newSqlDataAccess) {
+		DataAccess oldSqlDataAccess = sqlDataAccess;
+		sqlDataAccess = newSqlDataAccess == null ? SQL_DATA_ACCESS_EDEFAULT : newSqlDataAccess;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLRoutinesPackage.ROUTINE__SQL_DATA_ACCESS, oldSqlDataAccess, sqlDataAccess));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getCreationTS() {
+		return creationTS;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCreationTS(String newCreationTS) {
+		String oldCreationTS = creationTS;
+		creationTS = newCreationTS;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLRoutinesPackage.ROUTINE__CREATION_TS, oldCreationTS, creationTS));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLastAlteredTS() {
+		return lastAlteredTS;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLastAlteredTS(String newLastAlteredTS) {
+		String oldLastAlteredTS = lastAlteredTS;
+		lastAlteredTS = newLastAlteredTS;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLRoutinesPackage.ROUTINE__LAST_ALTERED_TS, oldLastAlteredTS, lastAlteredTS));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getAuthorizationID() {
+		return authorizationID;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setAuthorizationID(String newAuthorizationID) {
+		String oldAuthorizationID = authorizationID;
+		authorizationID = newAuthorizationID;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLRoutinesPackage.ROUTINE__AUTHORIZATION_ID, oldAuthorizationID, authorizationID));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getSecurity() {
+		return security;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSecurity(String newSecurity) {
+		String oldSecurity = security;
+		security = newSecurity;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLRoutinesPackage.ROUTINE__SECURITY, oldSecurity, security));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getExternalName() {
+		return externalName;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setExternalName(String newExternalName) {
+		String oldExternalName = externalName;
+		externalName = newExternalName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLRoutinesPackage.ROUTINE__EXTERNAL_NAME, oldExternalName, externalName));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getParameters() {
+		if (parameters == null) {
+			parameters = new EObjectContainmentWithInverseEList(Parameter.class, this, SQLRoutinesPackage.ROUTINE__PARAMETERS, SQLRoutinesPackage.PARAMETER__ROUTINE);
+		}
+		return parameters;
+	}
+
+   /**
+    * Gets a list of IN and INOUT parameters associated with this routine.
+    * <p>
+    * @return a list of IN and INOUT parameters associated with this routine.
+    */
+   public EList getInputParameters() {
+      return getParameters(ParameterMode.IN);
+   }
+
+   /**
+    * Gets a list of OUT and INOUT parameters associated with this routine.
+    * <p>
+    * @return a list of OUT and INOUT parameters associated with this routine.
+    */
+   public EList getOutputParameters() {
+      return getParameters(ParameterMode.OUT);
+   }
+
+   /**
+    * Gets a list of IN and INOUT parameters associated with this routine. If
+    * the input parameter mode is <code>ParameterMode.IN</code>, then we
+    * return parameters that are both IN and INOUT. Similarly, if the input
+    * parameter mode is <code>ParameterMode.OUT</code>, then we return
+    * parameters that are both OUT and INOUT.
+    * <p>
+    * @param aMode Either IN or OUT, INOUT is returned for either case.
+    * @return A list of parameters according to the specified parameter
+    * @see Parameter
+    */
+   protected EList getParameters(int aMode) {
+      Parameter parm;
+      EList allList = getParameters();
+      EList filteredList = new BasicEList();
+      for (int i = 0, parmCnt = allList.size(); i < parmCnt; i++) {
+         parm = (Parameter)allList.get(i);
+         if ((aMode == ParameterMode.IN) && (parm.getMode().getValue() != ParameterMode.OUT))
+            filteredList.add(parm);
+         else if ((aMode == ParameterMode.OUT) && (parm.getMode().getValue() != ParameterMode.IN))
+            filteredList.add(parm);
+      }
+      return filteredList;
+   }
+
+   
+   
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Source getSource() {
+		return source;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+    * <!-- end-user-doc -->
+	 * @generated
+	 */
+   public NotificationChain basicSetSource(Source newSource, NotificationChain msgs) {
+		Source oldSource = source;
+		source = newSource;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLRoutinesPackage.ROUTINE__SOURCE, oldSource, newSource);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+    * <!-- end-user-doc -->
+	 * @generated
+	 */
+   public void setSource(Source newSource) {
+		if (newSource != source) {
+			NotificationChain msgs = null;
+			if (source != null)
+				msgs = ((InternalEObject)source).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLRoutinesPackage.ROUTINE__SOURCE, null, msgs);
+			if (newSource != null)
+				msgs = ((InternalEObject)newSource).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SQLRoutinesPackage.ROUTINE__SOURCE, null, msgs);
+			msgs = basicSetSource(newSource, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLRoutinesPackage.ROUTINE__SOURCE, newSource, newSource));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Schema getSchema() {
+		if (schema != null && schema.eIsProxy()) {
+			InternalEObject oldSchema = (InternalEObject)schema;
+			schema = (Schema)eResolveProxy(oldSchema);
+			if (schema != oldSchema) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SQLRoutinesPackage.ROUTINE__SCHEMA, oldSchema, schema));
+			}
+		}
+		return schema;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Schema basicGetSchema() {
+		return schema;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetSchema(Schema newSchema, NotificationChain msgs) {
+		Schema oldSchema = schema;
+		schema = newSchema;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLRoutinesPackage.ROUTINE__SCHEMA, oldSchema, newSchema);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSchema(Schema newSchema) {
+		if (newSchema != schema) {
+			NotificationChain msgs = null;
+			if (schema != null)
+				msgs = ((InternalEObject)schema).eInverseRemove(this, SQLSchemaPackage.SCHEMA__ROUTINES, Schema.class, msgs);
+			if (newSchema != null)
+				msgs = ((InternalEObject)newSchema).eInverseAdd(this, SQLSchemaPackage.SCHEMA__ROUTINES, Schema.class, msgs);
+			msgs = basicSetSchema(newSchema, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLRoutinesPackage.ROUTINE__SCHEMA, newSchema, newSchema));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLRoutinesPackage.ROUTINE__PARAMETERS:
+				return ((InternalEList)getParameters()).basicAdd(otherEnd, msgs);
+			case SQLRoutinesPackage.ROUTINE__SCHEMA:
+				if (schema != null)
+					msgs = ((InternalEObject)schema).eInverseRemove(this, SQLSchemaPackage.SCHEMA__ROUTINES, Schema.class, msgs);
+				return basicSetSchema((Schema)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLRoutinesPackage.ROUTINE__PARAMETERS:
+				return ((InternalEList)getParameters()).basicRemove(otherEnd, msgs);
+			case SQLRoutinesPackage.ROUTINE__SOURCE:
+				return basicSetSource(null, msgs);
+			case SQLRoutinesPackage.ROUTINE__SCHEMA:
+				return basicSetSchema(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLRoutinesPackage.ROUTINE__SPECIFIC_NAME:
+				return getSpecificName();
+			case SQLRoutinesPackage.ROUTINE__LANGUAGE:
+				return getLanguage();
+			case SQLRoutinesPackage.ROUTINE__PARAMETER_STYLE:
+				return getParameterStyle();
+			case SQLRoutinesPackage.ROUTINE__DETERMINISTIC:
+				return isDeterministic() ? Boolean.TRUE : Boolean.FALSE;
+			case SQLRoutinesPackage.ROUTINE__SQL_DATA_ACCESS:
+				return getSqlDataAccess();
+			case SQLRoutinesPackage.ROUTINE__CREATION_TS:
+				return getCreationTS();
+			case SQLRoutinesPackage.ROUTINE__LAST_ALTERED_TS:
+				return getLastAlteredTS();
+			case SQLRoutinesPackage.ROUTINE__AUTHORIZATION_ID:
+				return getAuthorizationID();
+			case SQLRoutinesPackage.ROUTINE__SECURITY:
+				return getSecurity();
+			case SQLRoutinesPackage.ROUTINE__EXTERNAL_NAME:
+				return getExternalName();
+			case SQLRoutinesPackage.ROUTINE__PARAMETERS:
+				return getParameters();
+			case SQLRoutinesPackage.ROUTINE__SOURCE:
+				return getSource();
+			case SQLRoutinesPackage.ROUTINE__SCHEMA:
+				if (resolve) return getSchema();
+				return basicGetSchema();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLRoutinesPackage.ROUTINE__SPECIFIC_NAME:
+				setSpecificName((String)newValue);
+				return;
+			case SQLRoutinesPackage.ROUTINE__LANGUAGE:
+				setLanguage((String)newValue);
+				return;
+			case SQLRoutinesPackage.ROUTINE__PARAMETER_STYLE:
+				setParameterStyle((String)newValue);
+				return;
+			case SQLRoutinesPackage.ROUTINE__DETERMINISTIC:
+				setDeterministic(((Boolean)newValue).booleanValue());
+				return;
+			case SQLRoutinesPackage.ROUTINE__SQL_DATA_ACCESS:
+				setSqlDataAccess((DataAccess)newValue);
+				return;
+			case SQLRoutinesPackage.ROUTINE__CREATION_TS:
+				setCreationTS((String)newValue);
+				return;
+			case SQLRoutinesPackage.ROUTINE__LAST_ALTERED_TS:
+				setLastAlteredTS((String)newValue);
+				return;
+			case SQLRoutinesPackage.ROUTINE__AUTHORIZATION_ID:
+				setAuthorizationID((String)newValue);
+				return;
+			case SQLRoutinesPackage.ROUTINE__SECURITY:
+				setSecurity((String)newValue);
+				return;
+			case SQLRoutinesPackage.ROUTINE__EXTERNAL_NAME:
+				setExternalName((String)newValue);
+				return;
+			case SQLRoutinesPackage.ROUTINE__PARAMETERS:
+				getParameters().clear();
+				getParameters().addAll((Collection)newValue);
+				return;
+			case SQLRoutinesPackage.ROUTINE__SOURCE:
+				setSource((Source)newValue);
+				return;
+			case SQLRoutinesPackage.ROUTINE__SCHEMA:
+				setSchema((Schema)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLRoutinesPackage.ROUTINE__SPECIFIC_NAME:
+				setSpecificName(SPECIFIC_NAME_EDEFAULT);
+				return;
+			case SQLRoutinesPackage.ROUTINE__LANGUAGE:
+				setLanguage(LANGUAGE_EDEFAULT);
+				return;
+			case SQLRoutinesPackage.ROUTINE__PARAMETER_STYLE:
+				setParameterStyle(PARAMETER_STYLE_EDEFAULT);
+				return;
+			case SQLRoutinesPackage.ROUTINE__DETERMINISTIC:
+				setDeterministic(DETERMINISTIC_EDEFAULT);
+				return;
+			case SQLRoutinesPackage.ROUTINE__SQL_DATA_ACCESS:
+				setSqlDataAccess(SQL_DATA_ACCESS_EDEFAULT);
+				return;
+			case SQLRoutinesPackage.ROUTINE__CREATION_TS:
+				setCreationTS(CREATION_TS_EDEFAULT);
+				return;
+			case SQLRoutinesPackage.ROUTINE__LAST_ALTERED_TS:
+				setLastAlteredTS(LAST_ALTERED_TS_EDEFAULT);
+				return;
+			case SQLRoutinesPackage.ROUTINE__AUTHORIZATION_ID:
+				setAuthorizationID(AUTHORIZATION_ID_EDEFAULT);
+				return;
+			case SQLRoutinesPackage.ROUTINE__SECURITY:
+				setSecurity(SECURITY_EDEFAULT);
+				return;
+			case SQLRoutinesPackage.ROUTINE__EXTERNAL_NAME:
+				setExternalName(EXTERNAL_NAME_EDEFAULT);
+				return;
+			case SQLRoutinesPackage.ROUTINE__PARAMETERS:
+				getParameters().clear();
+				return;
+			case SQLRoutinesPackage.ROUTINE__SOURCE:
+				setSource((Source)null);
+				return;
+			case SQLRoutinesPackage.ROUTINE__SCHEMA:
+				setSchema((Schema)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLRoutinesPackage.ROUTINE__SPECIFIC_NAME:
+				return SPECIFIC_NAME_EDEFAULT == null ? specificName != null : !SPECIFIC_NAME_EDEFAULT.equals(specificName);
+			case SQLRoutinesPackage.ROUTINE__LANGUAGE:
+				return LANGUAGE_EDEFAULT == null ? language != null : !LANGUAGE_EDEFAULT.equals(language);
+			case SQLRoutinesPackage.ROUTINE__PARAMETER_STYLE:
+				return PARAMETER_STYLE_EDEFAULT == null ? parameterStyle != null : !PARAMETER_STYLE_EDEFAULT.equals(parameterStyle);
+			case SQLRoutinesPackage.ROUTINE__DETERMINISTIC:
+				return deterministic != DETERMINISTIC_EDEFAULT;
+			case SQLRoutinesPackage.ROUTINE__SQL_DATA_ACCESS:
+				return sqlDataAccess != SQL_DATA_ACCESS_EDEFAULT;
+			case SQLRoutinesPackage.ROUTINE__CREATION_TS:
+				return CREATION_TS_EDEFAULT == null ? creationTS != null : !CREATION_TS_EDEFAULT.equals(creationTS);
+			case SQLRoutinesPackage.ROUTINE__LAST_ALTERED_TS:
+				return LAST_ALTERED_TS_EDEFAULT == null ? lastAlteredTS != null : !LAST_ALTERED_TS_EDEFAULT.equals(lastAlteredTS);
+			case SQLRoutinesPackage.ROUTINE__AUTHORIZATION_ID:
+				return AUTHORIZATION_ID_EDEFAULT == null ? authorizationID != null : !AUTHORIZATION_ID_EDEFAULT.equals(authorizationID);
+			case SQLRoutinesPackage.ROUTINE__SECURITY:
+				return SECURITY_EDEFAULT == null ? security != null : !SECURITY_EDEFAULT.equals(security);
+			case SQLRoutinesPackage.ROUTINE__EXTERNAL_NAME:
+				return EXTERNAL_NAME_EDEFAULT == null ? externalName != null : !EXTERNAL_NAME_EDEFAULT.equals(externalName);
+			case SQLRoutinesPackage.ROUTINE__PARAMETERS:
+				return parameters != null && !parameters.isEmpty();
+			case SQLRoutinesPackage.ROUTINE__SOURCE:
+				return source != null;
+			case SQLRoutinesPackage.ROUTINE__SCHEMA:
+				return schema != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (specificName: "); //$NON-NLS-1$
+		result.append(specificName);
+		result.append(", language: "); //$NON-NLS-1$
+		result.append(language);
+		result.append(", parameterStyle: "); //$NON-NLS-1$
+		result.append(parameterStyle);
+		result.append(", deterministic: "); //$NON-NLS-1$
+		result.append(deterministic);
+		result.append(", sqlDataAccess: "); //$NON-NLS-1$
+		result.append(sqlDataAccess);
+		result.append(", creationTS: "); //$NON-NLS-1$
+		result.append(creationTS);
+		result.append(", lastAlteredTS: "); //$NON-NLS-1$
+		result.append(lastAlteredTS);
+		result.append(", authorizationID: "); //$NON-NLS-1$
+		result.append(authorizationID);
+		result.append(", security: "); //$NON-NLS-1$
+		result.append(security);
+		result.append(", externalName: "); //$NON-NLS-1$
+		result.append(externalName);
+		result.append(')');
+		return result.toString();
+	}
+
+} //RoutineImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/impl/RoutineResultTableImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/impl/RoutineResultTableImpl.java
new file mode 100644
index 0000000..708bd12
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/impl/RoutineResultTableImpl.java
@@ -0,0 +1,58 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.routines.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType;
+import org.eclipse.datatools.modelbase.sql.routines.RoutineResultTable;
+import org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.tables.ReferenceType;
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.datatools.modelbase.sql.tables.impl.TableImpl;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Routine Result Table</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class RoutineResultTableImpl extends TableImpl implements RoutineResultTable {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected RoutineResultTableImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLRoutinesPackage.Literals.ROUTINE_RESULT_TABLE;
+	}
+
+} //RoutineResultTableImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/impl/SQLRoutinesFactoryImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/impl/SQLRoutinesFactoryImpl.java
new file mode 100644
index 0000000..4bf298b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/impl/SQLRoutinesFactoryImpl.java
@@ -0,0 +1,250 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.routines.impl;
+
+import org.eclipse.datatools.modelbase.sql.routines.*;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SQLRoutinesFactoryImpl extends EFactoryImpl implements SQLRoutinesFactory {
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static SQLRoutinesFactory init() {
+		try {
+			SQLRoutinesFactory theSQLRoutinesFactory = (SQLRoutinesFactory)EPackage.Registry.INSTANCE.getEFactory("http:///org/eclipse/datatools/modelbase/sql/routines.ecore"); //$NON-NLS-1$ 
+			if (theSQLRoutinesFactory != null) {
+				return theSQLRoutinesFactory;
+			}
+		}
+		catch (Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new SQLRoutinesFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLRoutinesFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+			case SQLRoutinesPackage.SOURCE: return createSource();
+			case SQLRoutinesPackage.PARAMETER: return createParameter();
+			case SQLRoutinesPackage.PROCEDURE: return createProcedure();
+			case SQLRoutinesPackage.FUNCTION: return createFunction();
+			case SQLRoutinesPackage.ROUTINE_RESULT_TABLE: return createRoutineResultTable();
+			case SQLRoutinesPackage.METHOD: return createMethod();
+			case SQLRoutinesPackage.USER_DEFINED_FUNCTION: return createUserDefinedFunction();
+			case SQLRoutinesPackage.BUILT_IN_FUNCTION: return createBuiltInFunction();
+			default:
+				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object createFromString(EDataType eDataType, String initialValue) {
+		switch (eDataType.getClassifierID()) {
+			case SQLRoutinesPackage.DATA_ACCESS:
+				return createDataAccessFromString(eDataType, initialValue);
+			case SQLRoutinesPackage.PARAMETER_MODE:
+				return createParameterModeFromString(eDataType, initialValue);
+			default:
+				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertToString(EDataType eDataType, Object instanceValue) {
+		switch (eDataType.getClassifierID()) {
+			case SQLRoutinesPackage.DATA_ACCESS:
+				return convertDataAccessToString(eDataType, instanceValue);
+			case SQLRoutinesPackage.PARAMETER_MODE:
+				return convertParameterModeToString(eDataType, instanceValue);
+			default:
+				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Source createSource() {
+		SourceImpl source = new SourceImpl();
+		return source;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Parameter createParameter() {
+		ParameterImpl parameter = new ParameterImpl();
+		return parameter;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Procedure createProcedure() {
+		ProcedureImpl procedure = new ProcedureImpl();
+		return procedure;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Function createFunction() {
+		FunctionImpl function = new FunctionImpl();
+		return function;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public RoutineResultTable createRoutineResultTable() {
+		RoutineResultTableImpl routineResultTable = new RoutineResultTableImpl();
+		return routineResultTable;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Method createMethod() {
+		MethodImpl method = new MethodImpl();
+		return method;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UserDefinedFunction createUserDefinedFunction() {
+		UserDefinedFunctionImpl userDefinedFunction = new UserDefinedFunctionImpl();
+		return userDefinedFunction;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BuiltInFunction createBuiltInFunction() {
+		BuiltInFunctionImpl builtInFunction = new BuiltInFunctionImpl();
+		return builtInFunction;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DataAccess createDataAccessFromString(EDataType eDataType, String initialValue) {
+		DataAccess result = DataAccess.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertDataAccessToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ParameterMode createParameterModeFromString(EDataType eDataType, String initialValue) {
+		ParameterMode result = ParameterMode.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertParameterModeToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLRoutinesPackage getSQLRoutinesPackage() {
+		return (SQLRoutinesPackage)getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @deprecated
+	 * @generated
+	 */
+	public static SQLRoutinesPackage getPackage() {
+		return SQLRoutinesPackage.eINSTANCE;
+	}
+
+} //SQLRoutinesFactoryImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/impl/SQLRoutinesPackageImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/impl/SQLRoutinesPackageImpl.java
new file mode 100644
index 0000000..b599a90
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/impl/SQLRoutinesPackageImpl.java
@@ -0,0 +1,793 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.routines.impl;
+
+import org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.impl.SQLAccessControlPackageImpl;
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;
+import org.eclipse.datatools.modelbase.sql.constraints.impl.SQLConstraintsPackageImpl;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl;
+import org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsPackage;
+import org.eclipse.datatools.modelbase.sql.expressions.impl.SQLExpressionsPackageImpl;
+import org.eclipse.datatools.modelbase.sql.routines.BuiltInFunction;
+import org.eclipse.datatools.modelbase.sql.routines.DataAccess;
+import org.eclipse.datatools.modelbase.sql.routines.Function;
+import org.eclipse.datatools.modelbase.sql.routines.Method;
+import org.eclipse.datatools.modelbase.sql.routines.Parameter;
+import org.eclipse.datatools.modelbase.sql.routines.ParameterMode;
+import org.eclipse.datatools.modelbase.sql.routines.Procedure;
+import org.eclipse.datatools.modelbase.sql.routines.Routine;
+import org.eclipse.datatools.modelbase.sql.routines.RoutineResultTable;
+import org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesFactory;
+import org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage;
+import org.eclipse.datatools.modelbase.sql.routines.Source;
+import org.eclipse.datatools.modelbase.sql.routines.UserDefinedFunction;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLSchemaPackageImpl;
+import org.eclipse.datatools.modelbase.sql.statements.SQLStatementsPackage;
+import org.eclipse.datatools.modelbase.sql.statements.impl.SQLStatementsPackageImpl;
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+import org.eclipse.datatools.modelbase.sql.tables.impl.SQLTablesPackageImpl;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcorePackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.emf.ecore.impl.EcorePackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SQLRoutinesPackageImpl extends EPackageImpl implements SQLRoutinesPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass routineEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass sourceEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass parameterEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass procedureEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass functionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass routineResultTableEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass methodEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass userDefinedFunctionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass builtInFunctionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum dataAccessEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum parameterModeEEnum = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with
+	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+	 * package URI value.
+	 * <p>Note: the correct way to create the package is via the static
+	 * factory method {@link #init init()}, which also performs
+	 * initialization of the package, or returns the registered package,
+	 * if one already exists.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private SQLRoutinesPackageImpl() {
+		super(eNS_URI, SQLRoutinesFactory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this
+	 * model, and for any others upon which it depends.  Simple
+	 * dependencies are satisfied by calling this method on all
+	 * dependent packages before doing anything else.  This method drives
+	 * initialization for interdependent packages directly, in parallel
+	 * with this package, itself.
+	 * <p>Of this package and its interdependencies, all packages which
+	 * have not yet been registered by their URI values are first created
+	 * and registered.  The packages are then initialized in two steps:
+	 * meta-model objects for all of the packages are created before any
+	 * are initialized, since one package's meta-model objects may refer to
+	 * those of another.
+	 * <p>Invocation of this method will not affect any packages that have
+	 * already been initialized.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static SQLRoutinesPackage init() {
+		if (isInited) return (SQLRoutinesPackage)EPackage.Registry.INSTANCE.getEPackage(SQLRoutinesPackage.eNS_URI);
+
+		// Obtain or create and register package
+		SQLRoutinesPackageImpl theSQLRoutinesPackage = (SQLRoutinesPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(eNS_URI) instanceof SQLRoutinesPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(eNS_URI) : new SQLRoutinesPackageImpl());
+
+		isInited = true;
+
+		// Initialize simple dependencies
+		EcorePackage.eINSTANCE.eClass();
+
+		// Obtain or create and register interdependencies
+		SQLSchemaPackageImpl theSQLSchemaPackage = (SQLSchemaPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLSchemaPackage.eNS_URI) instanceof SQLSchemaPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLSchemaPackage.eNS_URI) : SQLSchemaPackage.eINSTANCE);
+		SQLConstraintsPackageImpl theSQLConstraintsPackage = (SQLConstraintsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLConstraintsPackage.eNS_URI) instanceof SQLConstraintsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLConstraintsPackage.eNS_URI) : SQLConstraintsPackage.eINSTANCE);
+		SQLDataTypesPackageImpl theSQLDataTypesPackage = (SQLDataTypesPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLDataTypesPackage.eNS_URI) instanceof SQLDataTypesPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLDataTypesPackage.eNS_URI) : SQLDataTypesPackage.eINSTANCE);
+		SQLExpressionsPackageImpl theSQLExpressionsPackage = (SQLExpressionsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLExpressionsPackage.eNS_URI) instanceof SQLExpressionsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLExpressionsPackage.eNS_URI) : SQLExpressionsPackage.eINSTANCE);
+		SQLStatementsPackageImpl theSQLStatementsPackage = (SQLStatementsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLStatementsPackage.eNS_URI) instanceof SQLStatementsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLStatementsPackage.eNS_URI) : SQLStatementsPackage.eINSTANCE);
+		SQLTablesPackageImpl theSQLTablesPackage = (SQLTablesPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLTablesPackage.eNS_URI) instanceof SQLTablesPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLTablesPackage.eNS_URI) : SQLTablesPackage.eINSTANCE);
+		SQLAccessControlPackageImpl theSQLAccessControlPackage = (SQLAccessControlPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLAccessControlPackage.eNS_URI) instanceof SQLAccessControlPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLAccessControlPackage.eNS_URI) : SQLAccessControlPackage.eINSTANCE);
+
+		// Create package meta-data objects
+		theSQLRoutinesPackage.createPackageContents();
+		theSQLSchemaPackage.createPackageContents();
+		theSQLConstraintsPackage.createPackageContents();
+		theSQLDataTypesPackage.createPackageContents();
+		theSQLExpressionsPackage.createPackageContents();
+		theSQLStatementsPackage.createPackageContents();
+		theSQLTablesPackage.createPackageContents();
+		theSQLAccessControlPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theSQLRoutinesPackage.initializePackageContents();
+		theSQLSchemaPackage.initializePackageContents();
+		theSQLConstraintsPackage.initializePackageContents();
+		theSQLDataTypesPackage.initializePackageContents();
+		theSQLExpressionsPackage.initializePackageContents();
+		theSQLStatementsPackage.initializePackageContents();
+		theSQLTablesPackage.initializePackageContents();
+		theSQLAccessControlPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theSQLRoutinesPackage.freeze();
+
+		return theSQLRoutinesPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getRoutine() {
+		return routineEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getRoutine_SpecificName() {
+		return (EAttribute)routineEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getRoutine_Language() {
+		return (EAttribute)routineEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getRoutine_ParameterStyle() {
+		return (EAttribute)routineEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getRoutine_Deterministic() {
+		return (EAttribute)routineEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getRoutine_SqlDataAccess() {
+		return (EAttribute)routineEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getRoutine_CreationTS() {
+		return (EAttribute)routineEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getRoutine_LastAlteredTS() {
+		return (EAttribute)routineEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getRoutine_AuthorizationID() {
+		return (EAttribute)routineEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getRoutine_Security() {
+		return (EAttribute)routineEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getRoutine_ExternalName() {
+		return (EAttribute)routineEClass.getEStructuralFeatures().get(9);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getRoutine_Parameters() {
+		return (EReference)routineEClass.getEStructuralFeatures().get(10);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getRoutine_Source() {
+		return (EReference)routineEClass.getEStructuralFeatures().get(11);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getRoutine_Schema() {
+		return (EReference)routineEClass.getEStructuralFeatures().get(12);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getSource() {
+		return sourceEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getSource_Body() {
+		return (EAttribute)sourceEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getParameter() {
+		return parameterEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getParameter_Mode() {
+		return (EAttribute)parameterEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getParameter_Locator() {
+		return (EAttribute)parameterEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getParameter_Routine() {
+		return (EReference)parameterEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getParameter_StringTypeOption() {
+		return (EReference)parameterEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getProcedure() {
+		return procedureEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getProcedure_MaxResultSets() {
+		return (EAttribute)procedureEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getProcedure_OldSavePoint() {
+		return (EAttribute)procedureEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getProcedure_ResultSet() {
+		return (EReference)procedureEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getFunction() {
+		return functionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getFunction_NullCall() {
+		return (EAttribute)functionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getFunction_Static() {
+		return (EAttribute)functionEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getFunction_TransformGroup() {
+		return (EAttribute)functionEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getFunction_TypePreserving() {
+		return (EAttribute)functionEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getFunction_Mutator() {
+		return (EAttribute)functionEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getFunction_ReturnTable() {
+		return (EReference)functionEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getFunction_ReturnScalar() {
+		return (EReference)functionEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getFunction_ReturnCast() {
+		return (EReference)functionEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getRoutineResultTable() {
+		return routineResultTableEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getMethod() {
+		return methodEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getMethod_Overriding() {
+		return (EAttribute)methodEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getMethod_Constructor() {
+		return (EAttribute)methodEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getUserDefinedFunction() {
+		return userDefinedFunctionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getBuiltInFunction() {
+		return builtInFunctionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getDataAccess() {
+		return dataAccessEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getParameterMode() {
+		return parameterModeEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLRoutinesFactory getSQLRoutinesFactory() {
+		return (SQLRoutinesFactory)getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package.  This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated) return;
+		isCreated = true;
+
+		// Create classes and their features
+		routineEClass = createEClass(ROUTINE);
+		createEAttribute(routineEClass, ROUTINE__SPECIFIC_NAME);
+		createEAttribute(routineEClass, ROUTINE__LANGUAGE);
+		createEAttribute(routineEClass, ROUTINE__PARAMETER_STYLE);
+		createEAttribute(routineEClass, ROUTINE__DETERMINISTIC);
+		createEAttribute(routineEClass, ROUTINE__SQL_DATA_ACCESS);
+		createEAttribute(routineEClass, ROUTINE__CREATION_TS);
+		createEAttribute(routineEClass, ROUTINE__LAST_ALTERED_TS);
+		createEAttribute(routineEClass, ROUTINE__AUTHORIZATION_ID);
+		createEAttribute(routineEClass, ROUTINE__SECURITY);
+		createEAttribute(routineEClass, ROUTINE__EXTERNAL_NAME);
+		createEReference(routineEClass, ROUTINE__PARAMETERS);
+		createEReference(routineEClass, ROUTINE__SOURCE);
+		createEReference(routineEClass, ROUTINE__SCHEMA);
+
+		sourceEClass = createEClass(SOURCE);
+		createEAttribute(sourceEClass, SOURCE__BODY);
+
+		parameterEClass = createEClass(PARAMETER);
+		createEAttribute(parameterEClass, PARAMETER__MODE);
+		createEAttribute(parameterEClass, PARAMETER__LOCATOR);
+		createEReference(parameterEClass, PARAMETER__ROUTINE);
+		createEReference(parameterEClass, PARAMETER__STRING_TYPE_OPTION);
+
+		procedureEClass = createEClass(PROCEDURE);
+		createEAttribute(procedureEClass, PROCEDURE__MAX_RESULT_SETS);
+		createEAttribute(procedureEClass, PROCEDURE__OLD_SAVE_POINT);
+		createEReference(procedureEClass, PROCEDURE__RESULT_SET);
+
+		functionEClass = createEClass(FUNCTION);
+		createEAttribute(functionEClass, FUNCTION__NULL_CALL);
+		createEAttribute(functionEClass, FUNCTION__STATIC);
+		createEAttribute(functionEClass, FUNCTION__TRANSFORM_GROUP);
+		createEAttribute(functionEClass, FUNCTION__TYPE_PRESERVING);
+		createEAttribute(functionEClass, FUNCTION__MUTATOR);
+		createEReference(functionEClass, FUNCTION__RETURN_TABLE);
+		createEReference(functionEClass, FUNCTION__RETURN_SCALAR);
+		createEReference(functionEClass, FUNCTION__RETURN_CAST);
+
+		routineResultTableEClass = createEClass(ROUTINE_RESULT_TABLE);
+
+		methodEClass = createEClass(METHOD);
+		createEAttribute(methodEClass, METHOD__OVERRIDING);
+		createEAttribute(methodEClass, METHOD__CONSTRUCTOR);
+
+		userDefinedFunctionEClass = createEClass(USER_DEFINED_FUNCTION);
+
+		builtInFunctionEClass = createEClass(BUILT_IN_FUNCTION);
+
+		// Create enums
+		dataAccessEEnum = createEEnum(DATA_ACCESS);
+		parameterModeEEnum = createEEnum(PARAMETER_MODE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model.  This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized) return;
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Obtain other dependent packages
+		SQLSchemaPackage theSQLSchemaPackage = (SQLSchemaPackage)EPackage.Registry.INSTANCE.getEPackage(SQLSchemaPackage.eNS_URI);
+		SQLDataTypesPackage theSQLDataTypesPackage = (SQLDataTypesPackage)EPackage.Registry.INSTANCE.getEPackage(SQLDataTypesPackage.eNS_URI);
+		SQLTablesPackage theSQLTablesPackage = (SQLTablesPackage)EPackage.Registry.INSTANCE.getEPackage(SQLTablesPackage.eNS_URI);
+
+		// Add supertypes to classes
+		routineEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+		sourceEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+		parameterEClass.getESuperTypes().add(theSQLSchemaPackage.getTypedElement());
+		procedureEClass.getESuperTypes().add(this.getRoutine());
+		functionEClass.getESuperTypes().add(this.getRoutine());
+		routineResultTableEClass.getESuperTypes().add(theSQLTablesPackage.getTable());
+		methodEClass.getESuperTypes().add(this.getFunction());
+		userDefinedFunctionEClass.getESuperTypes().add(this.getFunction());
+		builtInFunctionEClass.getESuperTypes().add(this.getFunction());
+
+		// Initialize classes and features; add operations and parameters
+		initEClass(routineEClass, Routine.class, "Routine", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getRoutine_SpecificName(), ecorePackage.getEString(), "specificName", null, 0, 1, Routine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getRoutine_Language(), ecorePackage.getEString(), "language", null, 0, 1, Routine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getRoutine_ParameterStyle(), ecorePackage.getEString(), "parameterStyle", null, 0, 1, Routine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getRoutine_Deterministic(), ecorePackage.getEBoolean(), "deterministic", null, 0, 1, Routine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getRoutine_SqlDataAccess(), this.getDataAccess(), "sqlDataAccess", null, 0, 1, Routine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getRoutine_CreationTS(), ecorePackage.getEString(), "creationTS", null, 0, 1, Routine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getRoutine_LastAlteredTS(), ecorePackage.getEString(), "lastAlteredTS", null, 0, 1, Routine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getRoutine_AuthorizationID(), ecorePackage.getEString(), "authorizationID", null, 0, 1, Routine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getRoutine_Security(), ecorePackage.getEString(), "security", null, 0, 1, Routine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getRoutine_ExternalName(), ecorePackage.getEString(), "externalName", null, 0, 1, Routine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getRoutine_Parameters(), this.getParameter(), this.getParameter_Routine(), "parameters", null, 0, -1, Routine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getRoutine_Source(), this.getSource(), null, "source", null, 0, 1, Routine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getRoutine_Schema(), theSQLSchemaPackage.getSchema(), theSQLSchemaPackage.getSchema_Routines(), "schema", null, 1, 1, Routine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(sourceEClass, Source.class, "Source", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getSource_Body(), ecorePackage.getEString(), "body", null, 0, 1, Source.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(parameterEClass, Parameter.class, "Parameter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getParameter_Mode(), this.getParameterMode(), "mode", null, 0, 1, Parameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getParameter_Locator(), ecorePackage.getEBoolean(), "locator", null, 0, 1, Parameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getParameter_Routine(), this.getRoutine(), this.getRoutine_Parameters(), "routine", null, 1, 1, Parameter.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getParameter_StringTypeOption(), theSQLDataTypesPackage.getCharacterStringDataType(), null, "stringTypeOption", null, 0, 1, Parameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(procedureEClass, Procedure.class, "Procedure", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getProcedure_MaxResultSets(), ecorePackage.getEInt(), "maxResultSets", null, 0, 1, Procedure.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getProcedure_OldSavePoint(), ecorePackage.getEBoolean(), "oldSavePoint", null, 0, 1, Procedure.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getProcedure_ResultSet(), this.getRoutineResultTable(), null, "resultSet", null, 0, -1, Procedure.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(functionEClass, Function.class, "Function", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getFunction_NullCall(), ecorePackage.getEBoolean(), "nullCall", null, 0, 1, Function.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getFunction_Static(), ecorePackage.getEBoolean(), "static", null, 0, 1, Function.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getFunction_TransformGroup(), ecorePackage.getEString(), "transformGroup", null, 0, 1, Function.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getFunction_TypePreserving(), ecorePackage.getEBoolean(), "typePreserving", null, 0, 1, Function.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getFunction_Mutator(), ecorePackage.getEBoolean(), "mutator", null, 0, 1, Function.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getFunction_ReturnTable(), this.getRoutineResultTable(), null, "returnTable", null, 0, 1, Function.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getFunction_ReturnScalar(), this.getParameter(), null, "returnScalar", null, 0, 1, Function.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getFunction_ReturnCast(), this.getParameter(), null, "returnCast", null, 0, 1, Function.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(routineResultTableEClass, RoutineResultTable.class, "RoutineResultTable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+		initEClass(methodEClass, Method.class, "Method", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getMethod_Overriding(), ecorePackage.getEBoolean(), "overriding", null, 0, 1, Method.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getMethod_Constructor(), ecorePackage.getEBoolean(), "constructor", null, 0, 1, Method.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(userDefinedFunctionEClass, UserDefinedFunction.class, "UserDefinedFunction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+		initEClass(builtInFunctionEClass, BuiltInFunction.class, "BuiltInFunction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+		// Initialize enums and add enum literals
+		initEEnum(dataAccessEEnum, DataAccess.class, "DataAccess"); //$NON-NLS-1$
+		addEEnumLiteral(dataAccessEEnum, DataAccess.NO_SQL_LITERAL);
+		addEEnumLiteral(dataAccessEEnum, DataAccess.CONTAINS_SQL_LITERAL);
+		addEEnumLiteral(dataAccessEEnum, DataAccess.READS_SQL_DATA_LITERAL);
+		addEEnumLiteral(dataAccessEEnum, DataAccess.MODIFIES_SQL_DATA_LITERAL);
+
+		initEEnum(parameterModeEEnum, ParameterMode.class, "ParameterMode"); //$NON-NLS-1$
+		addEEnumLiteral(parameterModeEEnum, ParameterMode.IN_LITERAL);
+		addEEnumLiteral(parameterModeEEnum, ParameterMode.OUT_LITERAL);
+		addEEnumLiteral(parameterModeEEnum, ParameterMode.INOUT_LITERAL);
+
+		// Create resource
+		createResource(eNS_URI);
+	}
+
+} //SQLRoutinesPackageImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/impl/SourceImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/impl/SourceImpl.java
new file mode 100644
index 0000000..b87fb7a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/impl/SourceImpl.java
@@ -0,0 +1,168 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.routines.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage;
+import org.eclipse.datatools.modelbase.sql.routines.Source;
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Source</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.routines.impl.SourceImpl#getBody <em>Body</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SourceImpl extends SQLObjectImpl implements Source {
+	/**
+	 * The default value of the '{@link #getBody() <em>Body</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBody()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String BODY_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getBody() <em>Body</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBody()
+	 * @generated
+	 * @ordered
+	 */
+	protected String body = BODY_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SourceImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLRoutinesPackage.Literals.SOURCE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getBody() {
+		return body;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBody(String newBody) {
+		String oldBody = body;
+		body = newBody;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLRoutinesPackage.SOURCE__BODY, oldBody, body));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLRoutinesPackage.SOURCE__BODY:
+				return getBody();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLRoutinesPackage.SOURCE__BODY:
+				setBody((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLRoutinesPackage.SOURCE__BODY:
+				setBody(BODY_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLRoutinesPackage.SOURCE__BODY:
+				return BODY_EDEFAULT == null ? body != null : !BODY_EDEFAULT.equals(body);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (body: "); //$NON-NLS-1$
+		result.append(body);
+		result.append(')');
+		return result.toString();
+	}
+
+} //SourceImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/impl/UserDefinedFunctionImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/impl/UserDefinedFunctionImpl.java
new file mode 100644
index 0000000..837ce74
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/impl/UserDefinedFunctionImpl.java
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.routines.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.routines.DataAccess;
+import org.eclipse.datatools.modelbase.sql.routines.Parameter;
+import org.eclipse.datatools.modelbase.sql.routines.RoutineResultTable;
+import org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage;
+import org.eclipse.datatools.modelbase.sql.routines.Source;
+import org.eclipse.datatools.modelbase.sql.routines.UserDefinedFunction;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>User Defined Function</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class UserDefinedFunctionImpl extends FunctionImpl implements UserDefinedFunction {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected UserDefinedFunctionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLRoutinesPackage.Literals.USER_DEFINED_FUNCTION;
+	}
+
+} //UserDefinedFunctionImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/util/SQLRoutinesAdapterFactory.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/util/SQLRoutinesAdapterFactory.java
new file mode 100644
index 0000000..be3612a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/util/SQLRoutinesAdapterFactory.java
@@ -0,0 +1,348 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.routines.util;
+
+import org.eclipse.datatools.modelbase.sql.routines.*;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.modelbase.sql.schema.TypedElement;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+import org.eclipse.emf.ecore.EModelElement;
+import org.eclipse.emf.ecore.ENamedElement;
+import org.eclipse.emf.ecore.EObject;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage
+ * @generated
+ */
+public class SQLRoutinesAdapterFactory extends AdapterFactoryImpl {
+	/**
+	 * The cached model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static SQLRoutinesPackage modelPackage;
+
+	/**
+	 * Creates an instance of the adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLRoutinesAdapterFactory() {
+		if (modelPackage == null) {
+			modelPackage = SQLRoutinesPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Returns whether this factory is applicable for the type of the object.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+	 * <!-- end-user-doc -->
+	 * @return whether this factory is applicable for the type of the object.
+	 * @generated
+	 */
+	public boolean isFactoryForType(Object object) {
+		if (object == modelPackage) {
+			return true;
+		}
+		if (object instanceof EObject) {
+			return ((EObject)object).eClass().getEPackage() == modelPackage;
+		}
+		return false;
+	}
+
+	/**
+	 * The switch that delegates to the <code>createXXX</code> methods.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SQLRoutinesSwitch modelSwitch =
+		new SQLRoutinesSwitch() {
+			public Object caseRoutine(Routine object) {
+				return createRoutineAdapter();
+			}
+			public Object caseSource(Source object) {
+				return createSourceAdapter();
+			}
+			public Object caseParameter(Parameter object) {
+				return createParameterAdapter();
+			}
+			public Object caseProcedure(Procedure object) {
+				return createProcedureAdapter();
+			}
+			public Object caseFunction(Function object) {
+				return createFunctionAdapter();
+			}
+			public Object caseRoutineResultTable(RoutineResultTable object) {
+				return createRoutineResultTableAdapter();
+			}
+			public Object caseMethod(Method object) {
+				return createMethodAdapter();
+			}
+			public Object caseUserDefinedFunction(UserDefinedFunction object) {
+				return createUserDefinedFunctionAdapter();
+			}
+			public Object caseBuiltInFunction(BuiltInFunction object) {
+				return createBuiltInFunctionAdapter();
+			}
+			public Object caseEModelElement(EModelElement object) {
+				return createEModelElementAdapter();
+			}
+			public Object caseENamedElement(ENamedElement object) {
+				return createENamedElementAdapter();
+			}
+			public Object caseSQLObject(SQLObject object) {
+				return createSQLObjectAdapter();
+			}
+			public Object caseTypedElement(TypedElement object) {
+				return createTypedElementAdapter();
+			}
+			public Object caseTable(Table object) {
+				return createTableAdapter();
+			}
+			public Object defaultCase(EObject object) {
+				return createEObjectAdapter();
+			}
+		};
+
+	/**
+	 * Creates an adapter for the <code>target</code>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param target the object to adapt.
+	 * @return the adapter for the <code>target</code>.
+	 * @generated
+	 */
+	public Adapter createAdapter(Notifier target) {
+		return (Adapter)modelSwitch.doSwitch((EObject)target);
+	}
+
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.routines.Routine <em>Routine</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.Routine
+	 * @generated
+	 */
+	public Adapter createRoutineAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.routines.Source <em>Source</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.Source
+	 * @generated
+	 */
+	public Adapter createSourceAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.routines.Parameter <em>Parameter</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.Parameter
+	 * @generated
+	 */
+	public Adapter createParameterAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.routines.Procedure <em>Procedure</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.Procedure
+	 * @generated
+	 */
+	public Adapter createProcedureAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.routines.Function <em>Function</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.Function
+	 * @generated
+	 */
+	public Adapter createFunctionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.routines.RoutineResultTable <em>Routine Result Table</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.RoutineResultTable
+	 * @generated
+	 */
+	public Adapter createRoutineResultTableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.routines.Method <em>Method</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.Method
+	 * @generated
+	 */
+	public Adapter createMethodAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.routines.UserDefinedFunction <em>User Defined Function</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.UserDefinedFunction
+	 * @generated
+	 */
+	public Adapter createUserDefinedFunctionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.routines.BuiltInFunction <em>Built In Function</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.routines.BuiltInFunction
+	 * @generated
+	 */
+	public Adapter createBuiltInFunctionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecore.EModelElement <em>EModel Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.emf.ecore.EModelElement
+	 * @generated
+	 */
+	public Adapter createEModelElementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecore.ENamedElement <em>ENamed Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.emf.ecore.ENamedElement
+	 * @generated
+	 */
+	public Adapter createENamedElementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.schema.SQLObject <em>SQL Object</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLObject
+	 * @generated
+	 */
+	public Adapter createSQLObjectAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.schema.TypedElement <em>Typed Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.TypedElement
+	 * @generated
+	 */
+	public Adapter createTypedElementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.tables.Table <em>Table</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Table
+	 * @generated
+	 */
+	public Adapter createTableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for the default case.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @generated
+	 */
+	public Adapter createEObjectAdapter() {
+		return null;
+	}
+
+} //SQLRoutinesAdapterFactory
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/util/SQLRoutinesSwitch.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/util/SQLRoutinesSwitch.java
new file mode 100644
index 0000000..d284a09
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/routines/util/SQLRoutinesSwitch.java
@@ -0,0 +1,419 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.routines.util;
+
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.routines.*;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.modelbase.sql.schema.TypedElement;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EModelElement;
+import org.eclipse.emf.ecore.ENamedElement;
+import org.eclipse.emf.ecore.EObject;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage
+ * @generated
+ */
+public class SQLRoutinesSwitch {
+	/**
+	 * The cached model package
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static SQLRoutinesPackage modelPackage;
+
+	/**
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLRoutinesSwitch() {
+		if (modelPackage == null) {
+			modelPackage = SQLRoutinesPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	public Object doSwitch(EObject theEObject) {
+		return doSwitch(theEObject.eClass(), theEObject);
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	protected Object doSwitch(EClass theEClass, EObject theEObject) {
+		if (theEClass.eContainer() == modelPackage) {
+			return doSwitch(theEClass.getClassifierID(), theEObject);
+		}
+		else {
+			List eSuperTypes = theEClass.getESuperTypes();
+			return
+				eSuperTypes.isEmpty() ?
+					defaultCase(theEObject) :
+					doSwitch((EClass)eSuperTypes.get(0), theEObject);
+		}
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	protected Object doSwitch(int classifierID, EObject theEObject) {
+		switch (classifierID) {
+			case SQLRoutinesPackage.ROUTINE: {
+				Routine routine = (Routine)theEObject;
+				Object result = caseRoutine(routine);
+				if (result == null) result = caseSQLObject(routine);
+				if (result == null) result = caseENamedElement(routine);
+				if (result == null) result = caseEModelElement(routine);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLRoutinesPackage.SOURCE: {
+				Source source = (Source)theEObject;
+				Object result = caseSource(source);
+				if (result == null) result = caseSQLObject(source);
+				if (result == null) result = caseENamedElement(source);
+				if (result == null) result = caseEModelElement(source);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLRoutinesPackage.PARAMETER: {
+				Parameter parameter = (Parameter)theEObject;
+				Object result = caseParameter(parameter);
+				if (result == null) result = caseTypedElement(parameter);
+				if (result == null) result = caseSQLObject(parameter);
+				if (result == null) result = caseENamedElement(parameter);
+				if (result == null) result = caseEModelElement(parameter);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLRoutinesPackage.PROCEDURE: {
+				Procedure procedure = (Procedure)theEObject;
+				Object result = caseProcedure(procedure);
+				if (result == null) result = caseRoutine(procedure);
+				if (result == null) result = caseSQLObject(procedure);
+				if (result == null) result = caseENamedElement(procedure);
+				if (result == null) result = caseEModelElement(procedure);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLRoutinesPackage.FUNCTION: {
+				Function function = (Function)theEObject;
+				Object result = caseFunction(function);
+				if (result == null) result = caseRoutine(function);
+				if (result == null) result = caseSQLObject(function);
+				if (result == null) result = caseENamedElement(function);
+				if (result == null) result = caseEModelElement(function);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLRoutinesPackage.ROUTINE_RESULT_TABLE: {
+				RoutineResultTable routineResultTable = (RoutineResultTable)theEObject;
+				Object result = caseRoutineResultTable(routineResultTable);
+				if (result == null) result = caseTable(routineResultTable);
+				if (result == null) result = caseSQLObject(routineResultTable);
+				if (result == null) result = caseENamedElement(routineResultTable);
+				if (result == null) result = caseEModelElement(routineResultTable);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLRoutinesPackage.METHOD: {
+				Method method = (Method)theEObject;
+				Object result = caseMethod(method);
+				if (result == null) result = caseFunction(method);
+				if (result == null) result = caseRoutine(method);
+				if (result == null) result = caseSQLObject(method);
+				if (result == null) result = caseENamedElement(method);
+				if (result == null) result = caseEModelElement(method);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLRoutinesPackage.USER_DEFINED_FUNCTION: {
+				UserDefinedFunction userDefinedFunction = (UserDefinedFunction)theEObject;
+				Object result = caseUserDefinedFunction(userDefinedFunction);
+				if (result == null) result = caseFunction(userDefinedFunction);
+				if (result == null) result = caseRoutine(userDefinedFunction);
+				if (result == null) result = caseSQLObject(userDefinedFunction);
+				if (result == null) result = caseENamedElement(userDefinedFunction);
+				if (result == null) result = caseEModelElement(userDefinedFunction);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLRoutinesPackage.BUILT_IN_FUNCTION: {
+				BuiltInFunction builtInFunction = (BuiltInFunction)theEObject;
+				Object result = caseBuiltInFunction(builtInFunction);
+				if (result == null) result = caseFunction(builtInFunction);
+				if (result == null) result = caseRoutine(builtInFunction);
+				if (result == null) result = caseSQLObject(builtInFunction);
+				if (result == null) result = caseENamedElement(builtInFunction);
+				if (result == null) result = caseEModelElement(builtInFunction);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			default: return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Routine</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Routine</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseRoutine(Routine object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Source</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Source</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseSource(Source object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Parameter</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Parameter</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseParameter(Parameter object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Procedure</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Procedure</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseProcedure(Procedure object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Function</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Function</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseFunction(Function object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Routine Result Table</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Routine Result Table</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseRoutineResultTable(RoutineResultTable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Method</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Method</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseMethod(Method object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>User Defined Function</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>User Defined Function</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseUserDefinedFunction(UserDefinedFunction object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Built In Function</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Built In Function</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseBuiltInFunction(BuiltInFunction object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EModel Element</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>EModel Element</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseEModelElement(EModelElement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>ENamed Element</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>ENamed Element</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseENamedElement(ENamedElement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>SQL Object</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>SQL Object</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseSQLObject(SQLObject object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Typed Element</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Typed Element</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseTypedElement(TypedElement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Table</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Table</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseTable(Table object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch, but this is the last case anyway.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+	 * @generated
+	 */
+	public Object defaultCase(EObject object) {
+		return null;
+	}
+
+} //SQLRoutinesSwitch
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/Catalog.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/Catalog.java
new file mode 100644
index 0000000..f347b92
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/Catalog.java
@@ -0,0 +1,75 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.modelbase.sql.schema;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Catalog</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.Catalog#getDatabase <em>Database</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.Catalog#getSchemas <em>Schemas</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getCatalog()
+ * @model
+ * @generated
+ */
+public interface Catalog extends SQLObject {
+	/**
+	 * Returns the value of the '<em><b>Database</b></em>' reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.schema.Database#getCatalogs <em>Catalogs</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Database</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Database</em>' reference.
+	 * @see #setDatabase(Database)
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getCatalog_Database()
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Database#getCatalogs
+	 * @model opposite="catalogs" required="true"
+	 * @generated
+	 */
+	Database getDatabase();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.schema.Catalog#getDatabase <em>Database</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Database</em>' reference.
+	 * @see #getDatabase()
+	 * @generated
+	 */
+	void setDatabase(Database value);
+
+	/**
+	 * Returns the value of the '<em><b>Schemas</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.schema.Schema}.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.schema.Schema#getCatalog <em>Catalog</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Schemas</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Schemas</em>' reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getCatalog_Schemas()
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Schema#getCatalog
+	 * @model type="org.eclipse.datatools.modelbase.sql.schema.Schema" opposite="Catalog"
+	 * @generated
+	 */
+	EList getSchemas();
+
+} // Catalog
\ No newline at end of file
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/Comment.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/Comment.java
new file mode 100644
index 0000000..70004b1
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/Comment.java
@@ -0,0 +1,83 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: Comment.java,v 1.1 2006/09/07 00:19:47 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.schema;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Comment</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.Comment#getDescription <em>Description</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.Comment#getSQLObject <em>SQL Object</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getComment()
+ * @model
+ * @generated
+ */
+public interface Comment extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Description</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Description</em>' attribute.
+	 * @see #setDescription(String)
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getComment_Description()
+	 * @model
+	 * @generated
+	 */
+	String getDescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.schema.Comment#getDescription <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Description</em>' attribute.
+	 * @see #getDescription()
+	 * @generated
+	 */
+	void setDescription(String value);
+
+	/**
+	 * Returns the value of the '<em><b>SQL Object</b></em>' reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.schema.SQLObject#getComments <em>Comments</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>SQL Object</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>SQL Object</em>' reference.
+	 * @see #setSQLObject(SQLObject)
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getComment_SQLObject()
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLObject#getComments
+	 * @model opposite="comments" required="true"
+	 * @generated
+	 */
+	SQLObject getSQLObject();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.schema.Comment#getSQLObject <em>SQL Object</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>SQL Object</em>' reference.
+	 * @see #getSQLObject()
+	 * @generated
+	 */
+	void setSQLObject(SQLObject value);
+
+} // Comment
\ No newline at end of file
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/Database.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/Database.java
new file mode 100644
index 0000000..a9baa0a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/Database.java
@@ -0,0 +1,175 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.schema;
+
+import java.util.List;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Database</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.Database#getVendor <em>Vendor</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.Database#getVersion <em>Version</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.Database#getSchemas <em>Schemas</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.Database#getEvents <em>Events</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.Database#getCatalogs <em>Catalogs</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.Database#getAuthorizationIds <em>Authorization Ids</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getDatabase()
+ * @model
+ * @generated
+ */
+public interface Database extends SQLObject {
+	/**
+	 * Returns the value of the '<em><b>Vendor</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Vendor</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Vendor</em>' attribute.
+	 * @see #setVendor(String)
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getDatabase_Vendor()
+	 * @model
+	 * @generated
+	 */
+	String getVendor();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.schema.Database#getVendor <em>Vendor</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Vendor</em>' attribute.
+	 * @see #getVendor()
+	 * @generated
+	 */
+	void setVendor(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Version</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Version</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Version</em>' attribute.
+	 * @see #setVersion(String)
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getDatabase_Version()
+	 * @model
+	 * @generated
+	 */
+	String getVersion();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.schema.Database#getVersion <em>Version</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Version</em>' attribute.
+	 * @see #getVersion()
+	 * @generated
+	 */
+	void setVersion(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Schemas</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.schema.Schema}.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.schema.Schema#getDatabase <em>Database</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Schemas</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Schemas</em>' reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getDatabase_Schemas()
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Schema#getDatabase
+	 * @model type="org.eclipse.datatools.modelbase.sql.schema.Schema" opposite="database"
+	 * @generated
+	 */
+	EList getSchemas();
+
+	/**
+	 * Returns the value of the '<em><b>Events</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.schema.Event}.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.schema.Event#getDatabase <em>Database</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Events</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Events</em>' reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getDatabase_Events()
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Event#getDatabase
+	 * @model type="org.eclipse.datatools.modelbase.sql.schema.Event" opposite="Database"
+	 * @generated
+	 */
+	EList getEvents();
+
+	/**
+	 * Returns the value of the '<em><b>Catalogs</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.schema.Catalog}.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.schema.Catalog#getDatabase <em>Database</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Catalogs</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Catalogs</em>' reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getDatabase_Catalogs()
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Catalog#getDatabase
+	 * @model type="org.eclipse.datatools.modelbase.sql.schema.Catalog" opposite="Database"
+	 * @generated
+	 */
+	EList getCatalogs();
+
+	/**
+	 * Returns the value of the '<em><b>Authorization Ids</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier}.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier#getDatabase <em>Database</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Authorization Ids</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Authorization Ids</em>' reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getDatabase_AuthorizationIds()
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier#getDatabase
+	 * @model type="org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier" opposite="Database"
+	 * @generated
+	 */
+	EList getAuthorizationIds();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model kind="operation" dataType="org.eclipse.datatools.modelbase.sql.schema.List" many="false"
+	 * @generated
+	 */
+	List getUserDefinedTypes();
+
+} // Database
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/Dependency.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/Dependency.java
new file mode 100644
index 0000000..7bc98b0
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/Dependency.java
@@ -0,0 +1,85 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.schema;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Dependency</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.Dependency#getTargetEnd <em>Target End</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.Dependency#getDependencyType <em>Dependency Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getDependency()
+ * @model
+ * @generated
+ */
+public interface Dependency extends SQLObject{
+	/**
+	 * Returns the value of the '<em><b>Target End</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Target End</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Target End</em>' reference.
+	 * @see #setTargetEnd(EObject)
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getDependency_TargetEnd()
+	 * @model required="true"
+	 * @generated
+	 */
+	EObject getTargetEnd();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.schema.Dependency#getTargetEnd <em>Target End</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Target End</em>' reference.
+	 * @see #getTargetEnd()
+	 * @generated
+	 */
+	void setTargetEnd(EObject value);
+
+	/**
+	 * Returns the value of the '<em><b>Dependency Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Dependency Type</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Dependency Type</em>' attribute.
+	 * @see #setDependencyType(String)
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getDependency_DependencyType()
+	 * @model
+	 * @generated
+	 */
+	String getDependencyType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.schema.Dependency#getDependencyType <em>Dependency Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Dependency Type</em>' attribute.
+	 * @see #getDependencyType()
+	 * @generated
+	 */
+	void setDependencyType(String value);
+
+} // Dependency
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/Event.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/Event.java
new file mode 100644
index 0000000..cf77330
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/Event.java
@@ -0,0 +1,163 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: Event.java,v 1.1 2006/03/03 21:46:27 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.schema;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Event</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.Event#getFor <em>For</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.Event#getCondition <em>Condition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.Event#getAction <em>Action</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.Event#isEnabled <em>Enabled</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.Event#getDatabase <em>Database</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getEvent()
+ * @model
+ * @generated
+ */
+public interface Event extends SQLObject {
+	/**
+	 * Returns the value of the '<em><b>For</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * the type of object on which the event applies
+	 * <!-- end-model-doc -->
+	 * @return the value of the '<em>For</em>' attribute.
+	 * @see #setFor(String)
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getEvent_For()
+	 * @model
+	 * @generated
+	 */
+	String getFor();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.schema.Event#getFor <em>For</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>For</em>' attribute.
+	 * @see #getFor()
+	 * @generated
+	 */
+	void setFor(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Condition</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * the condition to be satisfied inorder to activate the event
+	 * <!-- end-model-doc -->
+	 * @return the value of the '<em>Condition</em>' attribute.
+	 * @see #setCondition(String)
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getEvent_Condition()
+	 * @model
+	 * @generated
+	 */
+	String getCondition();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.schema.Event#getCondition <em>Condition</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Condition</em>' attribute.
+	 * @see #getCondition()
+	 * @generated
+	 */
+	void setCondition(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Action</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * the action that the event performs after being activated
+	 * <!-- end-model-doc -->
+	 * @return the value of the '<em>Action</em>' attribute.
+	 * @see #setAction(String)
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getEvent_Action()
+	 * @model
+	 * @generated
+	 */
+	String getAction();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.schema.Event#getAction <em>Action</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Action</em>' attribute.
+	 * @see #getAction()
+	 * @generated
+	 */
+	void setAction(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * event state
+	 * <!-- end-model-doc -->
+	 * @return the value of the '<em>Enabled</em>' attribute.
+	 * @see #setEnabled(boolean)
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getEvent_Enabled()
+	 * @model
+	 * @generated
+	 */
+	boolean isEnabled();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.schema.Event#isEnabled <em>Enabled</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Enabled</em>' attribute.
+	 * @see #isEnabled()
+	 * @generated
+	 */
+	void setEnabled(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Database</b></em>' reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.schema.Database#getEvents <em>Events</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Database</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Database</em>' reference.
+	 * @see #setDatabase(Database)
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getEvent_Database()
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Database#getEvents
+	 * @model opposite="events" required="true"
+	 * @generated
+	 */
+	Database getDatabase();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.schema.Event#getDatabase <em>Database</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Database</em>' reference.
+	 * @see #getDatabase()
+	 * @generated
+	 */
+	void setDatabase(Database value);
+
+} // Event
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/GenerateType.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/GenerateType.java
new file mode 100644
index 0000000..e2078ee
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/GenerateType.java
@@ -0,0 +1,155 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: GenerateType.java,v 1.3 2006/09/07 00:19:47 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.schema;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Generate Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.14.4 Identity columns
+ * 
+ * <!-- end-model-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getGenerateType()
+ * @model
+ * @generated
+ */
+public final class GenerateType extends AbstractEnumerator {
+	/**
+	 * The '<em><b>DEFAULT GENERATED</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #DEFAULT_GENERATED_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int DEFAULT_GENERATED = 0;
+
+	/**
+	 * The '<em><b>ALWAYS GENERATED</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #ALWAYS_GENERATED_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int ALWAYS_GENERATED = 1;
+
+	/**
+	 * The '<em><b>DEFAULT GENERATED</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>DEFAULT GENERATED</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #DEFAULT_GENERATED
+	 * @generated
+	 * @ordered
+	 */
+	public static final GenerateType DEFAULT_GENERATED_LITERAL = new GenerateType(DEFAULT_GENERATED, "DEFAULT_GENERATED", "DEFAULT_GENERATED"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>ALWAYS GENERATED</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>ALWAYS GENERATED</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #ALWAYS_GENERATED
+	 * @generated
+	 * @ordered
+	 */
+	public static final GenerateType ALWAYS_GENERATED_LITERAL = new GenerateType(ALWAYS_GENERATED, "ALWAYS_GENERATED", "ALWAYS_GENERATED"); //$NON-NLS-1$
+
+	/**
+	 * An array of all the '<em><b>Generate Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final GenerateType[] VALUES_ARRAY =
+		new GenerateType[] {
+			DEFAULT_GENERATED_LITERAL,
+			ALWAYS_GENERATED_LITERAL,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Generate Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Generate Type</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static GenerateType get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			GenerateType result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Generate Type</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static GenerateType getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			GenerateType result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Generate Type</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static GenerateType get(int value) {
+		switch (value) {
+			case DEFAULT_GENERATED: return DEFAULT_GENERATED_LITERAL;
+			case ALWAYS_GENERATED: return ALWAYS_GENERATED_LITERAL;
+		}
+		return null;
+	}
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private GenerateType(int value, String name, String literal) {
+		super(value, name, literal);
+	}
+
+} //GenerateType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/IdentitySpecifier.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/IdentitySpecifier.java
new file mode 100644
index 0000000..7c3c617
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/IdentitySpecifier.java
@@ -0,0 +1,200 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.schema;
+
+import java.math.BigInteger;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Identity Specifier</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.14.4 Identity columns
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.IdentitySpecifier#getGenerationType <em>Generation Type</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.IdentitySpecifier#getStartValue <em>Start Value</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.IdentitySpecifier#getIncrement <em>Increment</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.IdentitySpecifier#getMinimum <em>Minimum</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.IdentitySpecifier#getMaximum <em>Maximum</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.IdentitySpecifier#isCycleOption <em>Cycle Option</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getIdentitySpecifier()
+ * @model
+ * @generated
+ */
+public interface IdentitySpecifier extends SQLObject {
+	/**
+	 * Returns the value of the '<em><b>Generation Type</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.schema.GenerateType}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Generation Type</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Generation Type</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.GenerateType
+	 * @see #setGenerationType(GenerateType)
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getIdentitySpecifier_GenerationType()
+	 * @model
+	 * @generated
+	 */
+	GenerateType getGenerationType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.schema.IdentitySpecifier#getGenerationType <em>Generation Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Generation Type</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.GenerateType
+	 * @see #getGenerationType()
+	 * @generated
+	 */
+	void setGenerationType(GenerateType value);
+
+	/**
+	 * Returns the value of the '<em><b>Start Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Start Value</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Start Value</em>' attribute.
+	 * @see #setStartValue(BigInteger)
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getIdentitySpecifier_StartValue()
+	 * @model
+	 * @generated
+	 */
+	BigInteger getStartValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.schema.IdentitySpecifier#getStartValue <em>Start Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Start Value</em>' attribute.
+	 * @see #getStartValue()
+	 * @generated
+	 */
+	void setStartValue(BigInteger value);
+
+	/**
+	 * Returns the value of the '<em><b>Increment</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Increment</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Increment</em>' attribute.
+	 * @see #setIncrement(BigInteger)
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getIdentitySpecifier_Increment()
+	 * @model
+	 * @generated
+	 */
+	BigInteger getIncrement();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.schema.IdentitySpecifier#getIncrement <em>Increment</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Increment</em>' attribute.
+	 * @see #getIncrement()
+	 * @generated
+	 */
+	void setIncrement(BigInteger value);
+
+	/**
+	 * Returns the value of the '<em><b>Minimum</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Minimum</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Minimum</em>' attribute.
+	 * @see #setMinimum(BigInteger)
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getIdentitySpecifier_Minimum()
+	 * @model
+	 * @generated
+	 */
+	BigInteger getMinimum();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.schema.IdentitySpecifier#getMinimum <em>Minimum</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Minimum</em>' attribute.
+	 * @see #getMinimum()
+	 * @generated
+	 */
+	void setMinimum(BigInteger value);
+
+	/**
+	 * Returns the value of the '<em><b>Maximum</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Maximum</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Maximum</em>' attribute.
+	 * @see #setMaximum(BigInteger)
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getIdentitySpecifier_Maximum()
+	 * @model
+	 * @generated
+	 */
+	BigInteger getMaximum();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.schema.IdentitySpecifier#getMaximum <em>Maximum</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Maximum</em>' attribute.
+	 * @see #getMaximum()
+	 * @generated
+	 */
+	void setMaximum(BigInteger value);
+
+	/**
+	 * Returns the value of the '<em><b>Cycle Option</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Cycle Option</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Cycle Option</em>' attribute.
+	 * @see #setCycleOption(boolean)
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getIdentitySpecifier_CycleOption()
+	 * @model
+	 * @generated
+	 */
+	boolean isCycleOption();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.schema.IdentitySpecifier#isCycleOption <em>Cycle Option</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Cycle Option</em>' attribute.
+	 * @see #isCycleOption()
+	 * @generated
+	 */
+	void setCycleOption(boolean value);
+
+} // IdentitySpecifier
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/ObjectExtension.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/ObjectExtension.java
new file mode 100644
index 0000000..5ec082f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/ObjectExtension.java
@@ -0,0 +1,56 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.modelbase.sql.schema;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Object Extension</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.ObjectExtension#getSQLObject <em>SQL Object</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getObjectExtension()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface ObjectExtension extends EObject {
+	/**
+	 * Returns the value of the '<em><b>SQL Object</b></em>' container reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.schema.SQLObject#getExtensions <em>Extensions</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>SQL Object</em>' container reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>SQL Object</em>' container reference.
+	 * @see #setSQLObject(SQLObject)
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getObjectExtension_SQLObject()
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLObject#getExtensions
+	 * @model opposite="extensions" required="true"
+	 * @generated
+	 */
+	SQLObject getSQLObject();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.schema.ObjectExtension#getSQLObject <em>SQL Object</em>}' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>SQL Object</em>' container reference.
+	 * @see #getSQLObject()
+	 * @generated
+	 */
+	void setSQLObject(SQLObject value);
+
+} // ObjectExtension
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/ReferentialActionType.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/ReferentialActionType.java
new file mode 100644
index 0000000..224e70b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/ReferentialActionType.java
@@ -0,0 +1,235 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ReferentialActionType.java,v 1.3 2006/09/07 00:19:47 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.schema;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Referential Action Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 
+ * <!-- end-model-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getReferentialActionType()
+ * @model
+ * @generated
+ */
+public final class ReferentialActionType extends AbstractEnumerator {
+	/**
+	 * The '<em><b>NO ACTION</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NO_ACTION_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NO_ACTION = 0;
+
+	/**
+	 * The '<em><b>RESTRICT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #RESTRICT_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int RESTRICT = 1;
+
+	/**
+	 * The '<em><b>CASCADE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #CASCADE_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int CASCADE = 2;
+
+	/**
+	 * The '<em><b>SET NULL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #SET_NULL_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int SET_NULL = 3;
+
+	/**
+	 * The '<em><b>SET DEFAULT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #SET_DEFAULT_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int SET_DEFAULT = 4;
+
+	/**
+	 * The '<em><b>NO ACTION</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NO ACTION</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #NO_ACTION
+	 * @generated
+	 * @ordered
+	 */
+	public static final ReferentialActionType NO_ACTION_LITERAL = new ReferentialActionType(NO_ACTION, "NO_ACTION", "NO_ACTION"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>RESTRICT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>RESTRICT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #RESTRICT
+	 * @generated
+	 * @ordered
+	 */
+	public static final ReferentialActionType RESTRICT_LITERAL = new ReferentialActionType(RESTRICT, "RESTRICT", "RESTRICT"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>CASCADE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>CASCADE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #CASCADE
+	 * @generated
+	 * @ordered
+	 */
+	public static final ReferentialActionType CASCADE_LITERAL = new ReferentialActionType(CASCADE, "CASCADE", "CASCADE"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>SET NULL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>SET NULL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #SET_NULL
+	 * @generated
+	 * @ordered
+	 */
+	public static final ReferentialActionType SET_NULL_LITERAL = new ReferentialActionType(SET_NULL, "SET_NULL", "SET_NULL"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>SET DEFAULT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>SET DEFAULT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #SET_DEFAULT
+	 * @generated
+	 * @ordered
+	 */
+	public static final ReferentialActionType SET_DEFAULT_LITERAL = new ReferentialActionType(SET_DEFAULT, "SET_DEFAULT", "SET_DEFAULT"); //$NON-NLS-1$
+
+	/**
+	 * An array of all the '<em><b>Referential Action Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final ReferentialActionType[] VALUES_ARRAY =
+		new ReferentialActionType[] {
+			NO_ACTION_LITERAL,
+			RESTRICT_LITERAL,
+			CASCADE_LITERAL,
+			SET_NULL_LITERAL,
+			SET_DEFAULT_LITERAL,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Referential Action Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Referential Action Type</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ReferentialActionType get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			ReferentialActionType result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Referential Action Type</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ReferentialActionType getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			ReferentialActionType result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Referential Action Type</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ReferentialActionType get(int value) {
+		switch (value) {
+			case NO_ACTION: return NO_ACTION_LITERAL;
+			case RESTRICT: return RESTRICT_LITERAL;
+			case CASCADE: return CASCADE_LITERAL;
+			case SET_NULL: return SET_NULL_LITERAL;
+			case SET_DEFAULT: return SET_DEFAULT_LITERAL;
+		}
+		return null;
+	}
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private ReferentialActionType(int value, String name, String literal) {
+		super(value, name, literal);
+	}
+
+} //ReferentialActionType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/SQLObject.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/SQLObject.java
new file mode 100644
index 0000000..6ebfadd
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/SQLObject.java
@@ -0,0 +1,216 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.schema;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.emf.ecore.ENamedElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Object</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * The base object to be used for any Relation Database concept, representing the placeholder for the name and alias.  This object will extend ENamedElement in the generated code.  The string attribute name will be inherited
+ * from ENamedElement.
+ * 
+ * Note: In the RDB sense, only table and view objects can be represented by aliases, but DB2 defines also database and network aliases, and even for nicknames that refer to data tables or views located on federated systems.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.SQLObject#getDependencies <em>Dependencies</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.SQLObject#getDescription <em>Description</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.SQLObject#getLabel <em>Label</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.SQLObject#getComments <em>Comments</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.SQLObject#getExtensions <em>Extensions</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.SQLObject#getPrivileges <em>Privileges</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getSQLObject()
+ * @model abstract="true"
+ * @generated
+ */
+public interface SQLObject extends ENamedElement {
+	/**
+	 * Returns the value of the '<em><b>Dependencies</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.schema.Dependency}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Dependencies</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Dependencies</em>' containment reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getSQLObject_Dependencies()
+	 * @model type="org.eclipse.datatools.modelbase.sql.schema.Dependency" containment="true"
+	 * @generated
+	 */
+	EList getDependencies();
+
+	/**
+	 * Returns the value of the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Description</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Description</em>' attribute.
+	 * @see #setDescription(String)
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getSQLObject_Description()
+	 * @model
+	 * @generated
+	 */
+	String getDescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.schema.SQLObject#getDescription <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Description</em>' attribute.
+	 * @see #getDescription()
+	 * @generated
+	 */
+	void setDescription(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Label</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Label</em>' attribute.
+	 * @see #setLabel(String)
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getSQLObject_Label()
+	 * @model
+	 * @generated
+	 */
+	String getLabel();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.schema.SQLObject#getLabel <em>Label</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Label</em>' attribute.
+	 * @see #getLabel()
+	 * @generated
+	 */
+	void setLabel(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Comments</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.schema.Comment}.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.schema.Comment#getSQLObject <em>SQL Object</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Comments</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Comments</em>' reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getSQLObject_Comments()
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Comment#getSQLObject
+	 * @model type="org.eclipse.datatools.modelbase.sql.schema.Comment" opposite="SQLObject"
+	 * @generated
+	 */
+	EList getComments();
+
+	/**
+	 * Returns the value of the '<em><b>Extensions</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.schema.ObjectExtension}.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.schema.ObjectExtension#getSQLObject <em>SQL Object</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Extensions</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Extensions</em>' containment reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getSQLObject_Extensions()
+	 * @see org.eclipse.datatools.modelbase.sql.schema.ObjectExtension#getSQLObject
+	 * @model type="org.eclipse.datatools.modelbase.sql.schema.ObjectExtension" opposite="SQLObject" containment="true"
+	 * @generated
+	 */
+	EList getExtensions();
+
+	/**
+	 * Returns the value of the '<em><b>Privileges</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege}.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege#getObject <em>Object</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Privileges</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Privileges</em>' reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getSQLObject_Privileges()
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege#getObject
+	 * @model type="org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege" opposite="object"
+	 * @generated
+	 */
+	EList getPrivileges();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model
+	 * @generated
+	 */
+	EAnnotation addEAnnotation(String source);
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model
+	 * @generated
+	 */
+	void addEAnnotationDetail(EAnnotation eAnnotation, String key, String value);
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model
+	 * @generated
+	 */
+	String getEAnnotationDetail(EAnnotation eAnnotation, String key);
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model
+	 * @generated
+	 */
+	void setAnnotationDetail(EAnnotation eAnnotation, String key, String value);
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model
+	 * @generated
+	 */
+	void removeEAnnotationDetail(EAnnotation eAnnotation, String key);
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model
+	 * @generated
+	 */
+	EAnnotation getEAnnotation(String source);
+
+} // SQLObject
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/SQLSchemaFactory.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/SQLSchemaFactory.java
new file mode 100644
index 0000000..c8ac805
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/SQLSchemaFactory.java
@@ -0,0 +1,113 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.schema;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage
+ * @generated
+ */
+public interface SQLSchemaFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	SQLSchemaFactory eINSTANCE = org.eclipse.datatools.modelbase.sql.schema.impl.SQLSchemaFactoryImpl.init();
+
+	/**
+	 * Returns a new object of class '<em>Identity Specifier</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Identity Specifier</em>'.
+	 * @generated
+	 */
+	IdentitySpecifier createIdentitySpecifier();
+
+	/**
+	 * Returns a new object of class '<em>Dependency</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Dependency</em>'.
+	 * @generated
+	 */
+	Dependency createDependency();
+
+	/**
+	 * Returns a new object of class '<em>Schema</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Schema</em>'.
+	 * @generated
+	 */
+	Schema createSchema();
+
+	/**
+	 * Returns a new object of class '<em>Sequence</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Sequence</em>'.
+	 * @generated
+	 */
+	Sequence createSequence();
+
+	/**
+	 * Returns a new object of class '<em>Database</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Database</em>'.
+	 * @generated
+	 */
+	Database createDatabase();
+
+	/**
+	 * Returns a new object of class '<em>Event</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Event</em>'.
+	 * @generated
+	 */
+	Event createEvent();
+
+	/**
+	 * Returns a new object of class '<em>Comment</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Comment</em>'.
+	 * @generated
+	 */
+	Comment createComment();
+
+	/**
+	 * Returns a new object of class '<em>Catalog</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Catalog</em>'.
+	 * @generated
+	 */
+	Catalog createCatalog();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	SQLSchemaPackage getSQLSchemaPackage();
+
+} //SQLSchemaFactory
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/SQLSchemaPackage.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/SQLSchemaPackage.java
new file mode 100644
index 0000000..54333f0
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/SQLSchemaPackage.java
@@ -0,0 +1,2517 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.schema;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcorePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ *   <li>each class,</li>
+ *   <li>each feature of each class,</li>
+ *   <li>each enum,</li>
+ *   <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface SQLSchemaPackage extends EPackage {
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNAME = "schema"; //$NON-NLS-1$
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_URI = "http:///org/eclipse/datatools/modelbase/sql/schema.ecore"; //$NON-NLS-1$
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_PREFIX = "SQLSchema"; //$NON-NLS-1$
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	SQLSchemaPackage eINSTANCE = org.eclipse.datatools.modelbase.sql.schema.impl.SQLSchemaPackageImpl.init();
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.schema.impl.IdentitySpecifierImpl <em>Identity Specifier</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.schema.impl.IdentitySpecifierImpl
+	 * @see org.eclipse.datatools.modelbase.sql.schema.impl.SQLSchemaPackageImpl#getIdentitySpecifier()
+	 * @generated
+	 */
+	int IDENTITY_SPECIFIER = 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl <em>SQL Object</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl
+	 * @see org.eclipse.datatools.modelbase.sql.schema.impl.SQLSchemaPackageImpl#getSQLObject()
+	 * @generated
+	 */
+	int SQL_OBJECT = 4;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SQL_OBJECT__EANNOTATIONS = EcorePackage.ENAMED_ELEMENT__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SQL_OBJECT__NAME = EcorePackage.ENAMED_ELEMENT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SQL_OBJECT__DEPENDENCIES = EcorePackage.ENAMED_ELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SQL_OBJECT__DESCRIPTION = EcorePackage.ENAMED_ELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SQL_OBJECT__LABEL = EcorePackage.ENAMED_ELEMENT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SQL_OBJECT__COMMENTS = EcorePackage.ENAMED_ELEMENT_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SQL_OBJECT__EXTENSIONS = EcorePackage.ENAMED_ELEMENT_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SQL_OBJECT__PRIVILEGES = EcorePackage.ENAMED_ELEMENT_FEATURE_COUNT + 5;
+
+	/**
+	 * The number of structural features of the '<em>SQL Object</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SQL_OBJECT_FEATURE_COUNT = EcorePackage.ENAMED_ELEMENT_FEATURE_COUNT + 6;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IDENTITY_SPECIFIER__EANNOTATIONS = SQL_OBJECT__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IDENTITY_SPECIFIER__NAME = SQL_OBJECT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IDENTITY_SPECIFIER__DEPENDENCIES = SQL_OBJECT__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IDENTITY_SPECIFIER__DESCRIPTION = SQL_OBJECT__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IDENTITY_SPECIFIER__LABEL = SQL_OBJECT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IDENTITY_SPECIFIER__COMMENTS = SQL_OBJECT__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IDENTITY_SPECIFIER__EXTENSIONS = SQL_OBJECT__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IDENTITY_SPECIFIER__PRIVILEGES = SQL_OBJECT__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Generation Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IDENTITY_SPECIFIER__GENERATION_TYPE = SQL_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Start Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IDENTITY_SPECIFIER__START_VALUE = SQL_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Increment</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IDENTITY_SPECIFIER__INCREMENT = SQL_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Minimum</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IDENTITY_SPECIFIER__MINIMUM = SQL_OBJECT_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Maximum</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IDENTITY_SPECIFIER__MAXIMUM = SQL_OBJECT_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Cycle Option</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IDENTITY_SPECIFIER__CYCLE_OPTION = SQL_OBJECT_FEATURE_COUNT + 5;
+
+	/**
+	 * The number of structural features of the '<em>Identity Specifier</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IDENTITY_SPECIFIER_FEATURE_COUNT = SQL_OBJECT_FEATURE_COUNT + 6;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.schema.impl.TypedElementImpl <em>Typed Element</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.schema.impl.TypedElementImpl
+	 * @see org.eclipse.datatools.modelbase.sql.schema.impl.SQLSchemaPackageImpl#getTypedElement()
+	 * @generated
+	 */
+	int TYPED_ELEMENT = 1;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT__EANNOTATIONS = SQL_OBJECT__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT__NAME = SQL_OBJECT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT__DEPENDENCIES = SQL_OBJECT__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT__DESCRIPTION = SQL_OBJECT__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT__LABEL = SQL_OBJECT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT__COMMENTS = SQL_OBJECT__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT__EXTENSIONS = SQL_OBJECT__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT__PRIVILEGES = SQL_OBJECT__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Contained Type</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT__CONTAINED_TYPE = SQL_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Referenced Type</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT__REFERENCED_TYPE = SQL_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>Typed Element</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPED_ELEMENT_FEATURE_COUNT = SQL_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.schema.impl.DependencyImpl <em>Dependency</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.schema.impl.DependencyImpl
+	 * @see org.eclipse.datatools.modelbase.sql.schema.impl.SQLSchemaPackageImpl#getDependency()
+	 * @generated
+	 */
+	int DEPENDENCY = 2;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DEPENDENCY__EANNOTATIONS = SQL_OBJECT__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DEPENDENCY__NAME = SQL_OBJECT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DEPENDENCY__DEPENDENCIES = SQL_OBJECT__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DEPENDENCY__DESCRIPTION = SQL_OBJECT__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DEPENDENCY__LABEL = SQL_OBJECT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DEPENDENCY__COMMENTS = SQL_OBJECT__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DEPENDENCY__EXTENSIONS = SQL_OBJECT__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DEPENDENCY__PRIVILEGES = SQL_OBJECT__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Target End</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DEPENDENCY__TARGET_END = SQL_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Dependency Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DEPENDENCY__DEPENDENCY_TYPE = SQL_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>Dependency</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DEPENDENCY_FEATURE_COUNT = SQL_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.schema.impl.SchemaImpl <em>Schema</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.schema.impl.SchemaImpl
+	 * @see org.eclipse.datatools.modelbase.sql.schema.impl.SQLSchemaPackageImpl#getSchema()
+	 * @generated
+	 */
+	int SCHEMA = 3;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SCHEMA__EANNOTATIONS = SQL_OBJECT__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SCHEMA__NAME = SQL_OBJECT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SCHEMA__DEPENDENCIES = SQL_OBJECT__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SCHEMA__DESCRIPTION = SQL_OBJECT__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SCHEMA__LABEL = SQL_OBJECT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SCHEMA__COMMENTS = SQL_OBJECT__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SCHEMA__EXTENSIONS = SQL_OBJECT__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SCHEMA__PRIVILEGES = SQL_OBJECT__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Triggers</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SCHEMA__TRIGGERS = SQL_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Indices</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SCHEMA__INDICES = SQL_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Tables</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SCHEMA__TABLES = SQL_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Sequences</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SCHEMA__SEQUENCES = SQL_OBJECT_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Database</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SCHEMA__DATABASE = SQL_OBJECT_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Catalog</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SCHEMA__CATALOG = SQL_OBJECT_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Assertions</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SCHEMA__ASSERTIONS = SQL_OBJECT_FEATURE_COUNT + 6;
+
+	/**
+	 * The feature id for the '<em><b>User Defined Types</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SCHEMA__USER_DEFINED_TYPES = SQL_OBJECT_FEATURE_COUNT + 7;
+
+	/**
+	 * The feature id for the '<em><b>Char Sets</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SCHEMA__CHAR_SETS = SQL_OBJECT_FEATURE_COUNT + 8;
+
+	/**
+	 * The feature id for the '<em><b>Routines</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SCHEMA__ROUTINES = SQL_OBJECT_FEATURE_COUNT + 9;
+
+	/**
+	 * The feature id for the '<em><b>Owner</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SCHEMA__OWNER = SQL_OBJECT_FEATURE_COUNT + 10;
+
+	/**
+	 * The number of structural features of the '<em>Schema</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SCHEMA_FEATURE_COUNT = SQL_OBJECT_FEATURE_COUNT + 11;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.schema.impl.SequenceImpl <em>Sequence</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.schema.impl.SequenceImpl
+	 * @see org.eclipse.datatools.modelbase.sql.schema.impl.SQLSchemaPackageImpl#getSequence()
+	 * @generated
+	 */
+	int SEQUENCE = 5;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEQUENCE__EANNOTATIONS = TYPED_ELEMENT__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEQUENCE__NAME = TYPED_ELEMENT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEQUENCE__DEPENDENCIES = TYPED_ELEMENT__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEQUENCE__DESCRIPTION = TYPED_ELEMENT__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEQUENCE__LABEL = TYPED_ELEMENT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEQUENCE__COMMENTS = TYPED_ELEMENT__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEQUENCE__EXTENSIONS = TYPED_ELEMENT__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEQUENCE__PRIVILEGES = TYPED_ELEMENT__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Contained Type</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEQUENCE__CONTAINED_TYPE = TYPED_ELEMENT__CONTAINED_TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Referenced Type</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEQUENCE__REFERENCED_TYPE = TYPED_ELEMENT__REFERENCED_TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Identity</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEQUENCE__IDENTITY = TYPED_ELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Schema</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEQUENCE__SCHEMA = TYPED_ELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>Sequence</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEQUENCE_FEATURE_COUNT = TYPED_ELEMENT_FEATURE_COUNT + 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.schema.impl.DatabaseImpl <em>Database</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.schema.impl.DatabaseImpl
+	 * @see org.eclipse.datatools.modelbase.sql.schema.impl.SQLSchemaPackageImpl#getDatabase()
+	 * @generated
+	 */
+	int DATABASE = 6;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE__EANNOTATIONS = SQL_OBJECT__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE__NAME = SQL_OBJECT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE__DEPENDENCIES = SQL_OBJECT__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE__DESCRIPTION = SQL_OBJECT__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE__LABEL = SQL_OBJECT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE__COMMENTS = SQL_OBJECT__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE__EXTENSIONS = SQL_OBJECT__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE__PRIVILEGES = SQL_OBJECT__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Vendor</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE__VENDOR = SQL_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Version</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE__VERSION = SQL_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Schemas</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE__SCHEMAS = SQL_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Events</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE__EVENTS = SQL_OBJECT_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Catalogs</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE__CATALOGS = SQL_OBJECT_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Authorization Ids</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE__AUTHORIZATION_IDS = SQL_OBJECT_FEATURE_COUNT + 5;
+
+	/**
+	 * The number of structural features of the '<em>Database</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATABASE_FEATURE_COUNT = SQL_OBJECT_FEATURE_COUNT + 6;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.schema.impl.EventImpl <em>Event</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.schema.impl.EventImpl
+	 * @see org.eclipse.datatools.modelbase.sql.schema.impl.SQLSchemaPackageImpl#getEvent()
+	 * @generated
+	 */
+	int EVENT = 7;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT__EANNOTATIONS = SQL_OBJECT__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT__NAME = SQL_OBJECT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT__DEPENDENCIES = SQL_OBJECT__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT__DESCRIPTION = SQL_OBJECT__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT__LABEL = SQL_OBJECT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT__COMMENTS = SQL_OBJECT__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT__EXTENSIONS = SQL_OBJECT__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT__PRIVILEGES = SQL_OBJECT__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>For</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT__FOR = SQL_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Condition</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT__CONDITION = SQL_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Action</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT__ACTION = SQL_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT__ENABLED = SQL_OBJECT_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Database</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT__DATABASE = SQL_OBJECT_FEATURE_COUNT + 4;
+
+	/**
+	 * The number of structural features of the '<em>Event</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_FEATURE_COUNT = SQL_OBJECT_FEATURE_COUNT + 5;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.schema.impl.CommentImpl <em>Comment</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.schema.impl.CommentImpl
+	 * @see org.eclipse.datatools.modelbase.sql.schema.impl.SQLSchemaPackageImpl#getComment()
+	 * @generated
+	 */
+	int COMMENT = 8;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMMENT__DESCRIPTION = 0;
+
+	/**
+	 * The feature id for the '<em><b>SQL Object</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMMENT__SQL_OBJECT = 1;
+
+	/**
+	 * The number of structural features of the '<em>Comment</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMMENT_FEATURE_COUNT = 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.schema.impl.CatalogImpl <em>Catalog</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.schema.impl.CatalogImpl
+	 * @see org.eclipse.datatools.modelbase.sql.schema.impl.SQLSchemaPackageImpl#getCatalog()
+	 * @generated
+	 */
+	int CATALOG = 9;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CATALOG__EANNOTATIONS = SQL_OBJECT__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CATALOG__NAME = SQL_OBJECT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CATALOG__DEPENDENCIES = SQL_OBJECT__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CATALOG__DESCRIPTION = SQL_OBJECT__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CATALOG__LABEL = SQL_OBJECT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CATALOG__COMMENTS = SQL_OBJECT__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CATALOG__EXTENSIONS = SQL_OBJECT__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CATALOG__PRIVILEGES = SQL_OBJECT__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Database</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CATALOG__DATABASE = SQL_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Schemas</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CATALOG__SCHEMAS = SQL_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>Catalog</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CATALOG_FEATURE_COUNT = SQL_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.schema.ObjectExtension <em>Object Extension</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.schema.ObjectExtension
+	 * @see org.eclipse.datatools.modelbase.sql.schema.impl.SQLSchemaPackageImpl#getObjectExtension()
+	 * @generated
+	 */
+	int OBJECT_EXTENSION = 10;
+
+	/**
+	 * The feature id for the '<em><b>SQL Object</b></em>' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OBJECT_EXTENSION__SQL_OBJECT = 0;
+
+	/**
+	 * The number of structural features of the '<em>Object Extension</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OBJECT_EXTENSION_FEATURE_COUNT = 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.schema.GenerateType <em>Generate Type</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.schema.GenerateType
+	 * @see org.eclipse.datatools.modelbase.sql.schema.impl.SQLSchemaPackageImpl#getGenerateType()
+	 * @generated
+	 */
+	int GENERATE_TYPE = 11;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.schema.ReferentialActionType <em>Referential Action Type</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.schema.ReferentialActionType
+	 * @see org.eclipse.datatools.modelbase.sql.schema.impl.SQLSchemaPackageImpl#getReferentialActionType()
+	 * @generated
+	 */
+	int REFERENTIAL_ACTION_TYPE = 12;
+
+	/**
+	 * The meta object id for the '<em>Date</em>' data type.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see java.util.Date
+	 * @see org.eclipse.datatools.modelbase.sql.schema.impl.SQLSchemaPackageImpl#getDate()
+	 * @generated
+	 */
+	int DATE = 13;
+
+	/**
+	 * The meta object id for the '<em>List</em>' data type.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see java.util.List
+	 * @see org.eclipse.datatools.modelbase.sql.schema.impl.SQLSchemaPackageImpl#getList()
+	 * @generated
+	 */
+	int LIST = 14;
+
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.schema.IdentitySpecifier <em>Identity Specifier</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Identity Specifier</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.IdentitySpecifier
+	 * @generated
+	 */
+	EClass getIdentitySpecifier();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.schema.IdentitySpecifier#getGenerationType <em>Generation Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Generation Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.IdentitySpecifier#getGenerationType()
+	 * @see #getIdentitySpecifier()
+	 * @generated
+	 */
+	EAttribute getIdentitySpecifier_GenerationType();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.schema.IdentitySpecifier#getStartValue <em>Start Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Start Value</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.IdentitySpecifier#getStartValue()
+	 * @see #getIdentitySpecifier()
+	 * @generated
+	 */
+	EAttribute getIdentitySpecifier_StartValue();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.schema.IdentitySpecifier#getIncrement <em>Increment</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Increment</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.IdentitySpecifier#getIncrement()
+	 * @see #getIdentitySpecifier()
+	 * @generated
+	 */
+	EAttribute getIdentitySpecifier_Increment();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.schema.IdentitySpecifier#getMinimum <em>Minimum</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Minimum</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.IdentitySpecifier#getMinimum()
+	 * @see #getIdentitySpecifier()
+	 * @generated
+	 */
+	EAttribute getIdentitySpecifier_Minimum();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.schema.IdentitySpecifier#getMaximum <em>Maximum</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Maximum</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.IdentitySpecifier#getMaximum()
+	 * @see #getIdentitySpecifier()
+	 * @generated
+	 */
+	EAttribute getIdentitySpecifier_Maximum();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.schema.IdentitySpecifier#isCycleOption <em>Cycle Option</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Cycle Option</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.IdentitySpecifier#isCycleOption()
+	 * @see #getIdentitySpecifier()
+	 * @generated
+	 */
+	EAttribute getIdentitySpecifier_CycleOption();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.schema.TypedElement <em>Typed Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Typed Element</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.TypedElement
+	 * @generated
+	 */
+	EClass getTypedElement();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.schema.TypedElement#getContainedType <em>Contained Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Contained Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.TypedElement#getContainedType()
+	 * @see #getTypedElement()
+	 * @generated
+	 */
+	EReference getTypedElement_ContainedType();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.sql.schema.TypedElement#getReferencedType <em>Referenced Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Referenced Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.TypedElement#getReferencedType()
+	 * @see #getTypedElement()
+	 * @generated
+	 */
+	EReference getTypedElement_ReferencedType();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.schema.Dependency <em>Dependency</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Dependency</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Dependency
+	 * @generated
+	 */
+	EClass getDependency();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.sql.schema.Dependency#getTargetEnd <em>Target End</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Target End</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Dependency#getTargetEnd()
+	 * @see #getDependency()
+	 * @generated
+	 */
+	EReference getDependency_TargetEnd();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.schema.Dependency#getDependencyType <em>Dependency Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Dependency Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Dependency#getDependencyType()
+	 * @see #getDependency()
+	 * @generated
+	 */
+	EAttribute getDependency_DependencyType();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.schema.Schema <em>Schema</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Schema</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Schema
+	 * @generated
+	 */
+	EClass getSchema();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.sql.schema.Schema#getTriggers <em>Triggers</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Triggers</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Schema#getTriggers()
+	 * @see #getSchema()
+	 * @generated
+	 */
+	EReference getSchema_Triggers();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.sql.schema.Schema#getIndices <em>Indices</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Indices</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Schema#getIndices()
+	 * @see #getSchema()
+	 * @generated
+	 */
+	EReference getSchema_Indices();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.sql.schema.Schema#getTables <em>Tables</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Tables</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Schema#getTables()
+	 * @see #getSchema()
+	 * @generated
+	 */
+	EReference getSchema_Tables();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.sql.schema.Schema#getSequences <em>Sequences</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Sequences</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Schema#getSequences()
+	 * @see #getSchema()
+	 * @generated
+	 */
+	EReference getSchema_Sequences();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.sql.schema.Schema#getDatabase <em>Database</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Database</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Schema#getDatabase()
+	 * @see #getSchema()
+	 * @generated
+	 */
+	EReference getSchema_Database();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.sql.schema.Schema#getCatalog <em>Catalog</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Catalog</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Schema#getCatalog()
+	 * @see #getSchema()
+	 * @generated
+	 */
+	EReference getSchema_Catalog();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.sql.schema.Schema#getAssertions <em>Assertions</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Assertions</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Schema#getAssertions()
+	 * @see #getSchema()
+	 * @generated
+	 */
+	EReference getSchema_Assertions();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.sql.schema.Schema#getUserDefinedTypes <em>User Defined Types</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>User Defined Types</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Schema#getUserDefinedTypes()
+	 * @see #getSchema()
+	 * @generated
+	 */
+	EReference getSchema_UserDefinedTypes();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.sql.schema.Schema#getCharSets <em>Char Sets</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Char Sets</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Schema#getCharSets()
+	 * @see #getSchema()
+	 * @generated
+	 */
+	EReference getSchema_CharSets();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.sql.schema.Schema#getRoutines <em>Routines</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Routines</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Schema#getRoutines()
+	 * @see #getSchema()
+	 * @generated
+	 */
+	EReference getSchema_Routines();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.sql.schema.Schema#getOwner <em>Owner</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Owner</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Schema#getOwner()
+	 * @see #getSchema()
+	 * @generated
+	 */
+	EReference getSchema_Owner();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.schema.SQLObject <em>SQL Object</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>SQL Object</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLObject
+	 * @generated
+	 */
+	EClass getSQLObject();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.schema.SQLObject#getDependencies <em>Dependencies</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Dependencies</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLObject#getDependencies()
+	 * @see #getSQLObject()
+	 * @generated
+	 */
+	EReference getSQLObject_Dependencies();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.schema.SQLObject#getDescription <em>Description</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Description</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLObject#getDescription()
+	 * @see #getSQLObject()
+	 * @generated
+	 */
+	EAttribute getSQLObject_Description();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.schema.SQLObject#getLabel <em>Label</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Label</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLObject#getLabel()
+	 * @see #getSQLObject()
+	 * @generated
+	 */
+	EAttribute getSQLObject_Label();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.sql.schema.SQLObject#getComments <em>Comments</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Comments</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLObject#getComments()
+	 * @see #getSQLObject()
+	 * @generated
+	 */
+	EReference getSQLObject_Comments();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.schema.SQLObject#getExtensions <em>Extensions</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Extensions</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLObject#getExtensions()
+	 * @see #getSQLObject()
+	 * @generated
+	 */
+	EReference getSQLObject_Extensions();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.sql.schema.SQLObject#getPrivileges <em>Privileges</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Privileges</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLObject#getPrivileges()
+	 * @see #getSQLObject()
+	 * @generated
+	 */
+	EReference getSQLObject_Privileges();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.schema.Sequence <em>Sequence</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Sequence</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Sequence
+	 * @generated
+	 */
+	EClass getSequence();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.schema.Sequence#getIdentity <em>Identity</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Identity</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Sequence#getIdentity()
+	 * @see #getSequence()
+	 * @generated
+	 */
+	EReference getSequence_Identity();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.sql.schema.Sequence#getSchema <em>Schema</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Schema</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Sequence#getSchema()
+	 * @see #getSequence()
+	 * @generated
+	 */
+	EReference getSequence_Schema();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.schema.Database <em>Database</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Database</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Database
+	 * @generated
+	 */
+	EClass getDatabase();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.schema.Database#getVendor <em>Vendor</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Vendor</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Database#getVendor()
+	 * @see #getDatabase()
+	 * @generated
+	 */
+	EAttribute getDatabase_Vendor();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.schema.Database#getVersion <em>Version</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Version</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Database#getVersion()
+	 * @see #getDatabase()
+	 * @generated
+	 */
+	EAttribute getDatabase_Version();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.sql.schema.Database#getSchemas <em>Schemas</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Schemas</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Database#getSchemas()
+	 * @see #getDatabase()
+	 * @generated
+	 */
+	EReference getDatabase_Schemas();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.sql.schema.Database#getEvents <em>Events</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Events</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Database#getEvents()
+	 * @see #getDatabase()
+	 * @generated
+	 */
+	EReference getDatabase_Events();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.sql.schema.Database#getCatalogs <em>Catalogs</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Catalogs</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Database#getCatalogs()
+	 * @see #getDatabase()
+	 * @generated
+	 */
+	EReference getDatabase_Catalogs();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.sql.schema.Database#getAuthorizationIds <em>Authorization Ids</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Authorization Ids</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Database#getAuthorizationIds()
+	 * @see #getDatabase()
+	 * @generated
+	 */
+	EReference getDatabase_AuthorizationIds();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.schema.Event <em>Event</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Event</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Event
+	 * @generated
+	 */
+	EClass getEvent();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.schema.Event#getFor <em>For</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>For</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Event#getFor()
+	 * @see #getEvent()
+	 * @generated
+	 */
+	EAttribute getEvent_For();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.schema.Event#getCondition <em>Condition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Condition</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Event#getCondition()
+	 * @see #getEvent()
+	 * @generated
+	 */
+	EAttribute getEvent_Condition();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.schema.Event#getAction <em>Action</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Action</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Event#getAction()
+	 * @see #getEvent()
+	 * @generated
+	 */
+	EAttribute getEvent_Action();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.schema.Event#isEnabled <em>Enabled</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Enabled</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Event#isEnabled()
+	 * @see #getEvent()
+	 * @generated
+	 */
+	EAttribute getEvent_Enabled();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.sql.schema.Event#getDatabase <em>Database</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Database</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Event#getDatabase()
+	 * @see #getEvent()
+	 * @generated
+	 */
+	EReference getEvent_Database();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.schema.Comment <em>Comment</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Comment</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Comment
+	 * @generated
+	 */
+	EClass getComment();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.schema.Comment#getDescription <em>Description</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Description</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Comment#getDescription()
+	 * @see #getComment()
+	 * @generated
+	 */
+	EAttribute getComment_Description();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.sql.schema.Comment#getSQLObject <em>SQL Object</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>SQL Object</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Comment#getSQLObject()
+	 * @see #getComment()
+	 * @generated
+	 */
+	EReference getComment_SQLObject();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.schema.Catalog <em>Catalog</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Catalog</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Catalog
+	 * @generated
+	 */
+	EClass getCatalog();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.sql.schema.Catalog#getDatabase <em>Database</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Database</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Catalog#getDatabase()
+	 * @see #getCatalog()
+	 * @generated
+	 */
+	EReference getCatalog_Database();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.sql.schema.Catalog#getSchemas <em>Schemas</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Schemas</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Catalog#getSchemas()
+	 * @see #getCatalog()
+	 * @generated
+	 */
+	EReference getCatalog_Schemas();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.schema.ObjectExtension <em>Object Extension</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Object Extension</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.ObjectExtension
+	 * @generated
+	 */
+	EClass getObjectExtension();
+
+	/**
+	 * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.schema.ObjectExtension#getSQLObject <em>SQL Object</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the container reference '<em>SQL Object</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.ObjectExtension#getSQLObject()
+	 * @see #getObjectExtension()
+	 * @generated
+	 */
+	EReference getObjectExtension_SQLObject();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.sql.schema.GenerateType <em>Generate Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Generate Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.GenerateType
+	 * @generated
+	 */
+	EEnum getGenerateType();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.sql.schema.ReferentialActionType <em>Referential Action Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Referential Action Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.ReferentialActionType
+	 * @generated
+	 */
+	EEnum getReferentialActionType();
+
+	/**
+	 * Returns the meta object for data type '{@link java.util.Date <em>Date</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for data type '<em>Date</em>'.
+	 * @see java.util.Date
+	 * @model instanceClass="java.util.Date"
+	 * @generated
+	 */
+	EDataType getDate();
+
+	/**
+	 * Returns the meta object for data type '{@link java.util.List <em>List</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for data type '<em>List</em>'.
+	 * @see java.util.List
+	 * @model instanceClass="java.util.List"
+	 * @generated
+	 */
+	EDataType getList();
+
+	/**
+	 * Returns the factory that creates the instances of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the factory that creates the instances of the model.
+	 * @generated
+	 */
+	SQLSchemaFactory getSQLSchemaFactory();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * Defines literals for the meta objects that represent
+	 * <ul>
+	 *   <li>each class,</li>
+	 *   <li>each feature of each class,</li>
+	 *   <li>each enum,</li>
+	 *   <li>and each data type</li>
+	 * </ul>
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	interface Literals  {
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.schema.impl.IdentitySpecifierImpl <em>Identity Specifier</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.schema.impl.IdentitySpecifierImpl
+		 * @see org.eclipse.datatools.modelbase.sql.schema.impl.SQLSchemaPackageImpl#getIdentitySpecifier()
+		 * @generated
+		 */
+		EClass IDENTITY_SPECIFIER = eINSTANCE.getIdentitySpecifier();
+
+		/**
+		 * The meta object literal for the '<em><b>Generation Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute IDENTITY_SPECIFIER__GENERATION_TYPE = eINSTANCE.getIdentitySpecifier_GenerationType();
+
+		/**
+		 * The meta object literal for the '<em><b>Start Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute IDENTITY_SPECIFIER__START_VALUE = eINSTANCE.getIdentitySpecifier_StartValue();
+
+		/**
+		 * The meta object literal for the '<em><b>Increment</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute IDENTITY_SPECIFIER__INCREMENT = eINSTANCE.getIdentitySpecifier_Increment();
+
+		/**
+		 * The meta object literal for the '<em><b>Minimum</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute IDENTITY_SPECIFIER__MINIMUM = eINSTANCE.getIdentitySpecifier_Minimum();
+
+		/**
+		 * The meta object literal for the '<em><b>Maximum</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute IDENTITY_SPECIFIER__MAXIMUM = eINSTANCE.getIdentitySpecifier_Maximum();
+
+		/**
+		 * The meta object literal for the '<em><b>Cycle Option</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute IDENTITY_SPECIFIER__CYCLE_OPTION = eINSTANCE.getIdentitySpecifier_CycleOption();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.schema.impl.TypedElementImpl <em>Typed Element</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.schema.impl.TypedElementImpl
+		 * @see org.eclipse.datatools.modelbase.sql.schema.impl.SQLSchemaPackageImpl#getTypedElement()
+		 * @generated
+		 */
+		EClass TYPED_ELEMENT = eINSTANCE.getTypedElement();
+
+		/**
+		 * The meta object literal for the '<em><b>Contained Type</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference TYPED_ELEMENT__CONTAINED_TYPE = eINSTANCE.getTypedElement_ContainedType();
+
+		/**
+		 * The meta object literal for the '<em><b>Referenced Type</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference TYPED_ELEMENT__REFERENCED_TYPE = eINSTANCE.getTypedElement_ReferencedType();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.schema.impl.DependencyImpl <em>Dependency</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.schema.impl.DependencyImpl
+		 * @see org.eclipse.datatools.modelbase.sql.schema.impl.SQLSchemaPackageImpl#getDependency()
+		 * @generated
+		 */
+		EClass DEPENDENCY = eINSTANCE.getDependency();
+
+		/**
+		 * The meta object literal for the '<em><b>Target End</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DEPENDENCY__TARGET_END = eINSTANCE.getDependency_TargetEnd();
+
+		/**
+		 * The meta object literal for the '<em><b>Dependency Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DEPENDENCY__DEPENDENCY_TYPE = eINSTANCE.getDependency_DependencyType();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.schema.impl.SchemaImpl <em>Schema</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.schema.impl.SchemaImpl
+		 * @see org.eclipse.datatools.modelbase.sql.schema.impl.SQLSchemaPackageImpl#getSchema()
+		 * @generated
+		 */
+		EClass SCHEMA = eINSTANCE.getSchema();
+
+		/**
+		 * The meta object literal for the '<em><b>Triggers</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference SCHEMA__TRIGGERS = eINSTANCE.getSchema_Triggers();
+
+		/**
+		 * The meta object literal for the '<em><b>Indices</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference SCHEMA__INDICES = eINSTANCE.getSchema_Indices();
+
+		/**
+		 * The meta object literal for the '<em><b>Tables</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference SCHEMA__TABLES = eINSTANCE.getSchema_Tables();
+
+		/**
+		 * The meta object literal for the '<em><b>Sequences</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference SCHEMA__SEQUENCES = eINSTANCE.getSchema_Sequences();
+
+		/**
+		 * The meta object literal for the '<em><b>Database</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference SCHEMA__DATABASE = eINSTANCE.getSchema_Database();
+
+		/**
+		 * The meta object literal for the '<em><b>Catalog</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference SCHEMA__CATALOG = eINSTANCE.getSchema_Catalog();
+
+		/**
+		 * The meta object literal for the '<em><b>Assertions</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference SCHEMA__ASSERTIONS = eINSTANCE.getSchema_Assertions();
+
+		/**
+		 * The meta object literal for the '<em><b>User Defined Types</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference SCHEMA__USER_DEFINED_TYPES = eINSTANCE.getSchema_UserDefinedTypes();
+
+		/**
+		 * The meta object literal for the '<em><b>Char Sets</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference SCHEMA__CHAR_SETS = eINSTANCE.getSchema_CharSets();
+
+		/**
+		 * The meta object literal for the '<em><b>Routines</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference SCHEMA__ROUTINES = eINSTANCE.getSchema_Routines();
+
+		/**
+		 * The meta object literal for the '<em><b>Owner</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference SCHEMA__OWNER = eINSTANCE.getSchema_Owner();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl <em>SQL Object</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl
+		 * @see org.eclipse.datatools.modelbase.sql.schema.impl.SQLSchemaPackageImpl#getSQLObject()
+		 * @generated
+		 */
+		EClass SQL_OBJECT = eINSTANCE.getSQLObject();
+
+		/**
+		 * The meta object literal for the '<em><b>Dependencies</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference SQL_OBJECT__DEPENDENCIES = eINSTANCE.getSQLObject_Dependencies();
+
+		/**
+		 * The meta object literal for the '<em><b>Description</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute SQL_OBJECT__DESCRIPTION = eINSTANCE.getSQLObject_Description();
+
+		/**
+		 * The meta object literal for the '<em><b>Label</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute SQL_OBJECT__LABEL = eINSTANCE.getSQLObject_Label();
+
+		/**
+		 * The meta object literal for the '<em><b>Comments</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference SQL_OBJECT__COMMENTS = eINSTANCE.getSQLObject_Comments();
+
+		/**
+		 * The meta object literal for the '<em><b>Extensions</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference SQL_OBJECT__EXTENSIONS = eINSTANCE.getSQLObject_Extensions();
+
+		/**
+		 * The meta object literal for the '<em><b>Privileges</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference SQL_OBJECT__PRIVILEGES = eINSTANCE.getSQLObject_Privileges();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.schema.impl.SequenceImpl <em>Sequence</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.schema.impl.SequenceImpl
+		 * @see org.eclipse.datatools.modelbase.sql.schema.impl.SQLSchemaPackageImpl#getSequence()
+		 * @generated
+		 */
+		EClass SEQUENCE = eINSTANCE.getSequence();
+
+		/**
+		 * The meta object literal for the '<em><b>Identity</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference SEQUENCE__IDENTITY = eINSTANCE.getSequence_Identity();
+
+		/**
+		 * The meta object literal for the '<em><b>Schema</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference SEQUENCE__SCHEMA = eINSTANCE.getSequence_Schema();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.schema.impl.DatabaseImpl <em>Database</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.schema.impl.DatabaseImpl
+		 * @see org.eclipse.datatools.modelbase.sql.schema.impl.SQLSchemaPackageImpl#getDatabase()
+		 * @generated
+		 */
+		EClass DATABASE = eINSTANCE.getDatabase();
+
+		/**
+		 * The meta object literal for the '<em><b>Vendor</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATABASE__VENDOR = eINSTANCE.getDatabase_Vendor();
+
+		/**
+		 * The meta object literal for the '<em><b>Version</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATABASE__VERSION = eINSTANCE.getDatabase_Version();
+
+		/**
+		 * The meta object literal for the '<em><b>Schemas</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATABASE__SCHEMAS = eINSTANCE.getDatabase_Schemas();
+
+		/**
+		 * The meta object literal for the '<em><b>Events</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATABASE__EVENTS = eINSTANCE.getDatabase_Events();
+
+		/**
+		 * The meta object literal for the '<em><b>Catalogs</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATABASE__CATALOGS = eINSTANCE.getDatabase_Catalogs();
+
+		/**
+		 * The meta object literal for the '<em><b>Authorization Ids</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATABASE__AUTHORIZATION_IDS = eINSTANCE.getDatabase_AuthorizationIds();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.schema.impl.EventImpl <em>Event</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.schema.impl.EventImpl
+		 * @see org.eclipse.datatools.modelbase.sql.schema.impl.SQLSchemaPackageImpl#getEvent()
+		 * @generated
+		 */
+		EClass EVENT = eINSTANCE.getEvent();
+
+		/**
+		 * The meta object literal for the '<em><b>For</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute EVENT__FOR = eINSTANCE.getEvent_For();
+
+		/**
+		 * The meta object literal for the '<em><b>Condition</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute EVENT__CONDITION = eINSTANCE.getEvent_Condition();
+
+		/**
+		 * The meta object literal for the '<em><b>Action</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute EVENT__ACTION = eINSTANCE.getEvent_Action();
+
+		/**
+		 * The meta object literal for the '<em><b>Enabled</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute EVENT__ENABLED = eINSTANCE.getEvent_Enabled();
+
+		/**
+		 * The meta object literal for the '<em><b>Database</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference EVENT__DATABASE = eINSTANCE.getEvent_Database();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.schema.impl.CommentImpl <em>Comment</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.schema.impl.CommentImpl
+		 * @see org.eclipse.datatools.modelbase.sql.schema.impl.SQLSchemaPackageImpl#getComment()
+		 * @generated
+		 */
+		EClass COMMENT = eINSTANCE.getComment();
+
+		/**
+		 * The meta object literal for the '<em><b>Description</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute COMMENT__DESCRIPTION = eINSTANCE.getComment_Description();
+
+		/**
+		 * The meta object literal for the '<em><b>SQL Object</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference COMMENT__SQL_OBJECT = eINSTANCE.getComment_SQLObject();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.schema.impl.CatalogImpl <em>Catalog</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.schema.impl.CatalogImpl
+		 * @see org.eclipse.datatools.modelbase.sql.schema.impl.SQLSchemaPackageImpl#getCatalog()
+		 * @generated
+		 */
+		EClass CATALOG = eINSTANCE.getCatalog();
+
+		/**
+		 * The meta object literal for the '<em><b>Database</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference CATALOG__DATABASE = eINSTANCE.getCatalog_Database();
+
+		/**
+		 * The meta object literal for the '<em><b>Schemas</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference CATALOG__SCHEMAS = eINSTANCE.getCatalog_Schemas();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.schema.ObjectExtension <em>Object Extension</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.schema.ObjectExtension
+		 * @see org.eclipse.datatools.modelbase.sql.schema.impl.SQLSchemaPackageImpl#getObjectExtension()
+		 * @generated
+		 */
+		EClass OBJECT_EXTENSION = eINSTANCE.getObjectExtension();
+
+		/**
+		 * The meta object literal for the '<em><b>SQL Object</b></em>' container reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference OBJECT_EXTENSION__SQL_OBJECT = eINSTANCE.getObjectExtension_SQLObject();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.schema.GenerateType <em>Generate Type</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.schema.GenerateType
+		 * @see org.eclipse.datatools.modelbase.sql.schema.impl.SQLSchemaPackageImpl#getGenerateType()
+		 * @generated
+		 */
+		EEnum GENERATE_TYPE = eINSTANCE.getGenerateType();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.schema.ReferentialActionType <em>Referential Action Type</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.schema.ReferentialActionType
+		 * @see org.eclipse.datatools.modelbase.sql.schema.impl.SQLSchemaPackageImpl#getReferentialActionType()
+		 * @generated
+		 */
+		EEnum REFERENTIAL_ACTION_TYPE = eINSTANCE.getReferentialActionType();
+
+		/**
+		 * The meta object literal for the '<em>Date</em>' data type.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see java.util.Date
+		 * @see org.eclipse.datatools.modelbase.sql.schema.impl.SQLSchemaPackageImpl#getDate()
+		 * @generated
+		 */
+		EDataType DATE = eINSTANCE.getDate();
+
+		/**
+		 * The meta object literal for the '<em>List</em>' data type.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see java.util.List
+		 * @see org.eclipse.datatools.modelbase.sql.schema.impl.SQLSchemaPackageImpl#getList()
+		 * @generated
+		 */
+		EDataType LIST = eINSTANCE.getList();
+
+	}
+
+} //SQLSchemaPackage
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/Schema.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/Schema.java
new file mode 100644
index 0000000..b3e3ea6
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/Schema.java
@@ -0,0 +1,300 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.schema;
+
+import org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier;
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Schema</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.20 SQL-schemas
+ * 
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.Schema#getTriggers <em>Triggers</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.Schema#getIndices <em>Indices</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.Schema#getTables <em>Tables</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.Schema#getSequences <em>Sequences</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.Schema#getDatabase <em>Database</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.Schema#getCatalog <em>Catalog</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.Schema#getAssertions <em>Assertions</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.Schema#getUserDefinedTypes <em>User Defined Types</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.Schema#getCharSets <em>Char Sets</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.Schema#getRoutines <em>Routines</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.Schema#getOwner <em>Owner</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getSchema()
+ * @model
+ * @generated
+ */
+public interface Schema extends SQLObject {
+	/**
+	 * Returns the value of the '<em><b>Triggers</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.tables.Trigger}.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.tables.Trigger#getSchema <em>Schema</em>}'.
+	 * <!-- begin-user-doc --> 
+	 * <p>
+	 * If the meaning of the '<em>Triggers</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Triggers</em>' reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getSchema_Triggers()
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Trigger#getSchema
+	 * @model type="org.eclipse.datatools.modelbase.sql.tables.Trigger" opposite="schema"
+	 * @generated
+	 */
+	EList getTriggers();
+
+	/**
+	 * Returns the value of the '<em><b>Indices</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.constraints.Index}.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.constraints.Index#getSchema <em>Schema</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Indices</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Indices</em>' reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getSchema_Indices()
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.Index#getSchema
+	 * @model type="org.eclipse.datatools.modelbase.sql.constraints.Index" opposite="Schema"
+	 * @generated
+	 */
+	EList getIndices();
+
+	/**
+	 * Returns the value of the '<em><b>Tables</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.tables.Table}.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.tables.Table#getSchema <em>Schema</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Tables</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Tables</em>' reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getSchema_Tables()
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Table#getSchema
+	 * @model type="org.eclipse.datatools.modelbase.sql.tables.Table" opposite="schema"
+	 * @generated
+	 */
+	EList getTables();
+
+	/**
+	 * Returns the value of the '<em><b>Sequences</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.schema.Sequence}.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.schema.Sequence#getSchema <em>Schema</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Sequences</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Sequences</em>' reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getSchema_Sequences()
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Sequence#getSchema
+	 * @model type="org.eclipse.datatools.modelbase.sql.schema.Sequence" opposite="schema"
+	 * @generated
+	 */
+	EList getSequences();
+
+	/**
+	 * Returns the value of the '<em><b>Database</b></em>' reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.schema.Database#getSchemas <em>Schemas</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Database</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Database</em>' reference.
+	 * @see #setDatabase(Database)
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getSchema_Database()
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Database#getSchemas
+	 * @model opposite="schemas" required="true"
+	 * @generated
+	 */
+	Database getDatabase();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.schema.Schema#getDatabase <em>Database</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Database</em>' reference.
+	 * @see #getDatabase()
+	 * @generated
+	 */
+	void setDatabase(Database value);
+
+	/**
+	 * Returns the value of the '<em><b>Catalog</b></em>' reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.schema.Catalog#getSchemas <em>Schemas</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Catalog</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Catalog</em>' reference.
+	 * @see #setCatalog(Catalog)
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getSchema_Catalog()
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Catalog#getSchemas
+	 * @model opposite="schemas" required="true"
+	 * @generated
+	 */
+	Catalog getCatalog();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.schema.Schema#getCatalog <em>Catalog</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Catalog</em>' reference.
+	 * @see #getCatalog()
+	 * @generated
+	 */
+	void setCatalog(Catalog value);
+
+	/**
+	 * Returns the value of the '<em><b>Assertions</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.constraints.Assertion}.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.constraints.Assertion#getSchema <em>Schema</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Assertions</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Assertions</em>' reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getSchema_Assertions()
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.Assertion#getSchema
+	 * @model type="org.eclipse.datatools.modelbase.sql.constraints.Assertion" opposite="schema"
+	 * @generated
+	 */
+	EList getAssertions();
+
+	/**
+	 * Returns the value of the '<em><b>User Defined Types</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType}.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType#getSchema <em>Schema</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>User Defined Types</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>User Defined Types</em>' reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getSchema_UserDefinedTypes()
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType#getSchema
+	 * @model type="org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType" opposite="schema"
+	 * @generated
+	 */
+	EList getUserDefinedTypes();
+
+	/**
+	 * Returns the value of the '<em><b>Char Sets</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.datatypes.CharacterSet}.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.datatypes.CharacterSet#getSchema <em>Schema</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Char Sets</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Char Sets</em>' reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getSchema_CharSets()
+	 * @see org.eclipse.datatools.modelbase.sql.datatypes.CharacterSet#getSchema
+	 * @model type="org.eclipse.datatools.modelbase.sql.datatypes.CharacterSet" opposite="schema"
+	 * @generated
+	 */
+	EList getCharSets();
+
+	/**
+	 * Returns the value of the '<em><b>Routines</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.routines.Routine}.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.routines.Routine#getSchema <em>Schema</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Routines</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Routines</em>' reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getSchema_Routines()
+	 * @see org.eclipse.datatools.modelbase.sql.routines.Routine#getSchema
+	 * @model type="org.eclipse.datatools.modelbase.sql.routines.Routine" opposite="schema"
+	 * @generated
+	 */
+	EList getRoutines();
+
+   /**
+    * Get a list of procedures belonging to this schema.
+    * <p>
+    * @return the procedures contained within the schema. If 
+    * there are none, then an empty list is returned.
+    */
+   public EList getProcedures();
+
+   /**
+    * Get a list of user-defined functions belonging to this schema.
+    * <p>
+    * @return the user-defined functions contained within the schema.  If 
+    * there are none, then an empty list is returned.
+    */
+   public EList getUDFs();
+
+   /**
+    * Get a list of built-in (aka system) functions belonging to this schema.
+    * <p>
+    * @return the built-in functions contained within the schema. If 
+    * there are none, then an empty list is returned.
+    */
+   public EList getBuiltInFunctions();
+
+	/**
+	 * Returns the value of the '<em><b>Owner</b></em>' reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier#getOwnedSchema <em>Owned Schema</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Owner</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Owner</em>' reference.
+	 * @see #setOwner(AuthorizationIdentifier)
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getSchema_Owner()
+	 * @see org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier#getOwnedSchema
+	 * @model opposite="ownedSchema" required="true"
+	 * @generated
+	 */
+	AuthorizationIdentifier getOwner();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.schema.Schema#getOwner <em>Owner</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Owner</em>' reference.
+	 * @see #getOwner()
+	 * @generated
+	 */
+	void setOwner(AuthorizationIdentifier value);
+
+} // Schema
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/Sequence.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/Sequence.java
new file mode 100644
index 0000000..77fc2b1
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/Sequence.java
@@ -0,0 +1,90 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.schema;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Sequence</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.21 Sequence Generators
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.Sequence#getIdentity <em>Identity</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.Sequence#getSchema <em>Schema</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getSequence()
+ * @model
+ * @generated
+ */
+public interface Sequence extends TypedElement {
+	/**
+	 * Returns the value of the '<em><b>Identity</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Identity</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Identity</em>' containment reference.
+	 * @see #setIdentity(IdentitySpecifier)
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getSequence_Identity()
+	 * @model containment="true" required="true"
+	 * @generated
+	 */
+	IdentitySpecifier getIdentity();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.schema.Sequence#getIdentity <em>Identity</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Identity</em>' containment reference.
+	 * @see #getIdentity()
+	 * @generated
+	 */
+	void setIdentity(IdentitySpecifier value);
+
+	/**
+	 * Returns the value of the '<em><b>Schema</b></em>' reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.schema.Schema#getSequences <em>Sequences</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Schema</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Schema</em>' reference.
+	 * @see #setSchema(Schema)
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getSequence_Schema()
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Schema#getSequences
+	 * @model opposite="sequences" required="true"
+	 * @generated
+	 */
+	Schema getSchema();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.schema.Sequence#getSchema <em>Schema</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Schema</em>' reference.
+	 * @see #getSchema()
+	 * @generated
+	 */
+	void setSchema(Schema value);
+
+} // Sequence
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/TypedElement.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/TypedElement.java
new file mode 100644
index 0000000..c3ebf7a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/TypedElement.java
@@ -0,0 +1,114 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.schema;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Typed Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.TypedElement#getContainedType <em>Contained Type</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.TypedElement#getReferencedType <em>Referenced Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getTypedElement()
+ * @model abstract="true"
+ * @generated
+ */
+public interface TypedElement extends SQLObject {
+	/**
+	 * Returns the value of the '<em><b>Contained Type</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Contained Type</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Contained Type</em>' containment reference.
+	 * @see #setContainedType(SQLDataType)
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getTypedElement_ContainedType()
+	 * @model containment="true"
+	 * @generated
+	 */
+	SQLDataType getContainedType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.schema.TypedElement#getContainedType <em>Contained Type</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Contained Type</em>' containment reference.
+	 * @see #getContainedType()
+	 * @generated
+	 */
+	void setContainedType(SQLDataType value);
+
+	/**
+	 * Returns the value of the '<em><b>Referenced Type</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Referenced Type</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Referenced Type</em>' reference.
+	 * @see #setReferencedType(UserDefinedType)
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#getTypedElement_ReferencedType()
+	 * @model
+	 * @generated
+	 */
+	UserDefinedType getReferencedType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.schema.TypedElement#getReferencedType <em>Referenced Type</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Referenced Type</em>' reference.
+	 * @see #getReferencedType()
+	 * @generated
+	 */
+	void setReferencedType(UserDefinedType value);
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * Set the type for this TypedElement
+	 * <!-- end-model-doc -->
+	 * @model
+	 * @generated
+	 */
+	void setDataType(DataType newType);
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * Get the type for this TypedElement
+	 * <!-- end-model-doc -->
+	 * @model kind="operation"
+	 * @generated
+	 */
+	DataType getDataType();
+
+} // TypedElement
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/helper/DatabaseHelper.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/helper/DatabaseHelper.java
new file mode 100644
index 0000000..5b249b0
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/helper/DatabaseHelper.java
@@ -0,0 +1,164 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.schema.helper;
+
+import java.util.Iterator;
+import java.util.List;
+import java.util.Vector;
+
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.schema.Catalog;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+
+/**
+ * @author ckadner
+ *
+ * Helper to provide convenience methods that are related to 
+ * {@link org.eclipse.datatools.modelbase.sql.schema.Database}.
+ */
+public class DatabaseHelper
+{
+    
+    /**
+     * Finds a <code>Schema</code> by its name in a given <code>Database</code>.
+     * If the given <code>schemaName</code> is not delimited, the
+     * search is not case sensitive.  
+     * 
+     * @param database the <code>Database</code> to find <code>Schema</code>s in
+     * @param schemaName the String name of the <code>Schema</code> to find
+     * @return the <code>Schema</code> found or <code>null</code> if no 
+     * 		corresponding <code>Schema</code> was found
+     * @throws NullPointerException if given <code>database</code> or given
+     *         <code>schemaName</code> is <code>null</code>
+     */
+    public static Schema findSchema(Database database, String schemaName) {
+        Schema returnSchema = null;
+        
+        // TODO perf: optimize performance by loading only the schema needed as
+        //            opposed to all of them
+        for (Iterator it = database.getSchemas().iterator(); it.hasNext();)
+        {
+            Schema schema = (Schema) it.next();
+            if (compareIdentifiers(database,schema.getName(),schemaName) == 0)
+{
+                returnSchema = schema;
+                break;
+            }
+        }
+        if (returnSchema == null){
+        	if (database.getCatalogs() != null) {
+        		List catalogs = database.getCatalogs();
+                Iterator itCatalogs = catalogs.iterator();
+                while (itCatalogs.hasNext()){
+                	Catalog catalog = (Catalog) itCatalogs.next();
+                    if (catalog.getSchemas()  != null && catalog.getSchemas().size() > 0){
+                    	for (Iterator it = catalog.getSchemas().iterator(); it.hasNext();)
+                        {
+                    		Schema schema = (Schema) it.next();
+                            if (compareIdentifiers(database,schema.getName(),schemaName) == 0) {
+                            	returnSchema = schema;
+                                break;
+                            }
+                        }// for
+                    }
+                }
+        	}
+        }
+
+
+        return returnSchema;
+    }
+    
+    
+    /**
+     * Finds all <code>Table</code>s with the name <code>tableName</code> in all
+     * <code>Schema</code>'s of the given <code>database</code>.
+     * Returns a list of <code>Table</code>s with associated <code>Schema</code>.
+     * If the given <code>tableName</code> is not delimited, the
+     * search is not case sensitive.  
+     * 
+     * @param database the <code>Database</code> to search in
+     * @param tableName the String name of the <code>Table</code> to find
+     * @return List of <code>Table</code>s with associated <code>Schema</code>
+     * @throws NullPointerException if given <code>schema</code> or given
+     *         <code>tableName</code> is <code>null</code>
+     */
+    public static List findTables(Database database, String tableName) {
+        List returnTables = new Vector();
+        
+        for (Iterator schemaIt = database.getSchemas().iterator(); schemaIt.hasNext();)
+        {
+            Schema schema = (Schema) schemaIt.next();
+            
+	        for (Iterator tableIt = schema.getTables().iterator(); tableIt.hasNext();)
+	        {
+	            Table table = (Table) tableIt.next();
+	            
+	            if (compareIdentifiers(database,table.getName(),tableName) == 0) {
+	                returnTables.add(table);
+	            }
+	        }
+        }
+        
+
+        return returnTables;
+    }
+
+
+    /**
+     * Compares an existing identifier in a Database with the lookup name 
+     * respecting delimited identifiers otherwise ignoring case.
+     * 
+     * @param database the Database to determin the delimiter for identifiers
+     * @param identifier a String identifier already existing in the Database
+     * @param lookupName the String name to compare to a existing identifier
+     * @return 0 if lookupName is equal to identifier
+     * @see String#compareTo(java.lang.String)
+     */
+    public static int compareIdentifiers(Database database, String identifier, String lookupName)
+    {
+        int compResult = -1;
+        
+        // TODO: get delimiter from Database
+        // ask Hemant how to commonly treat identifiers (Thomas Sharp), 
+        // Tanja knows where to put it?
+        String delimiter = "\""; //$NON-NLS-1$
+        
+        
+        // e.g. "TaBlE1"
+        if (lookupName.startsWith(delimiter)) {
+            
+            // e.g. "TaBlE1" == "TaBLeInDB" ?
+            if (identifier.startsWith(delimiter))
+            {
+                compResult = identifier.compareTo(lookupName);
+            } 
+            // e.g. TaBlE1 == TaBLeInDB ?
+            else if (lookupName.endsWith(delimiter))
+            {
+                String lookupNameContent = lookupName.substring(1, lookupName.length()-1);
+                
+                compResult = identifier.compareTo(lookupNameContent);
+            }
+            
+        }
+        // e.g. TABLE1 == TABLEINDB ?
+        else
+        {
+            compResult = identifier.compareToIgnoreCase(lookupName);
+        }
+        
+        return compResult;
+    }
+    
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/helper/ISQLObjectNameHelper.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/helper/ISQLObjectNameHelper.java
new file mode 100644
index 0000000..f109303
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/helper/ISQLObjectNameHelper.java
@@ -0,0 +1,76 @@
+/*******************************************************************************
+ * Copyright (c) 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.schema.helper;
+
+import org.eclipse.datatools.modelbase.sql.tables.Column;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+
+/**
+ * This interface defines a name provider service for SQL Objects. The services provides 
+ * names for SQL Model objects. 
+ *
+ */
+public interface ISQLObjectNameHelper {
+    
+    /**
+     * Gets the name of the given column, delimited as needed to make it suitable
+     * for use in constructing an SQL statement.
+     * 
+     * @param table the SQL Model column object for which the name is wanted
+     * @return the (possibly) delimited SQL format name of the column
+     */
+    public String getNameInSQLFormat(Column column);
+    
+    /**
+     * Gets the name of the given table, delimited as needed to make it suitable
+     * for use in constructing an SQL statement.
+     * 
+     * @param table the SQL Model table object for which the name is wanted
+     * @return the (possibly) delimited SQL format name of the table
+     */
+    public String getNameInSQLFormat(Table table);
+    
+    /**
+     * Gets the name of the given column, qualified with a table name and 
+     * delimited as needed to make it suitable for use in constructing an SQL 
+     * statement.  
+     * 
+     * @param table the SQL Model table object for which the name is wanted
+     * @return the qualified and delimited name of the table
+     */
+    public String getQualifiedNameInSQLFormat(Column column);
+    
+	/**
+	 * Gets the name of the given table, qualified with a schema name and 
+	 * delimited as needed to make it suitable for use in constructing an SQL 
+	 * statement.  
+	 * 
+	 * @param table the SQL Model table object for which the name is wanted
+	 * @return the qualified and delimited name of the table
+	 */
+	public String getQualifiedNameInSQLFormat(Table table);
+	
+    /**
+     * Gets the identifier quote string being used to delimit identifiers.  The default
+     * is " (double-quote character).
+     * 
+     * @return the current identifier quote string
+     */
+    public String getIdentifierQuoteString();
+    
+    /**
+     * Sets the identifier quote string to use to delimit identifiers.
+     * 
+     * @param quoteString the identifier quote string to use
+     */
+    public void setIdentifierQuoteString(String quoteString);
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/helper/SQLObjectNameHelper.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/helper/SQLObjectNameHelper.java
new file mode 100644
index 0000000..4bbb26b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/helper/SQLObjectNameHelper.java
@@ -0,0 +1,266 @@
+/*******************************************************************************
+ * Copyright (c) 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.schema.helper;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.tables.Column;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+
+/**
+ * This class implements the ISQLObjectNameHelper interface to provide 
+ * a naming service for SQL Model objects. 
+ */
+public class SQLObjectNameHelper implements ISQLObjectNameHelper {
+
+    /** The identifier quote string used to delimit identifiers. */
+    private String fQuoteString = "\"";
+    
+    /**
+     * Gets the name of the given column, delimited as needed to make it suitable
+     * for use in constructing an SQL statement.
+     * 
+     * @param table the SQL Model column object for which the name is wanted
+     * @return the (possibly) delimited SQL format name of the column
+     */
+    public String getNameInSQLFormat(Column column) {
+        String sqlFormatName = null;
+        
+        if (column != null) {
+            String quoteString = getIdentifierQuoteString();
+            
+            /* Get the object name and delimit it if necessary. */
+            String name = column.getName();
+            sqlFormatName = convertCatalogIdentifierToSQLFormat(name, quoteString);
+        }
+        
+        return sqlFormatName;
+    }
+    /**
+     * Gets the name of the given table, delimited as needed to make it suitable
+     * for use in constructing an SQL statement.
+     * 
+     * @param table the SQL Model table object for which the name is wanted
+     * @return the (possibly) delimited SQL format name of the table
+     */
+    public String getNameInSQLFormat(Table table) {
+        String sqlFormatName = null;
+        
+        if (table != null) {
+            String quoteString = getIdentifierQuoteString();
+            
+            /* Get the object name and delimit it if necessary. */
+            String name = table.getName();
+            sqlFormatName = convertCatalogIdentifierToSQLFormat(name, quoteString);
+        }
+        
+        return sqlFormatName;
+    }
+    
+    /**
+     * Gets the name of the given table, qualified and delimited as needed to make 
+     * it suitable for use in constructing an SQL statement.  
+     * 
+     * @param table the SQL Model table object for which the name is wanted
+     * @return the qualified and delimited name of the table
+     */
+    public String getQualifiedNameInSQLFormat(Column column) {
+        String qualifiedSQLName = null;
+        
+        if (column != null) {
+            String quoteString = getIdentifierQuoteString();
+            
+            /* Get the object name and delimit it if necessary. */
+            String name = column.getName();
+            String sqlFormatName = convertCatalogIdentifierToSQLFormat(name, quoteString);
+            qualifiedSQLName = sqlFormatName;
+            
+            /* Get and add the table name. */
+            String tableName = null;
+            Table table = column.getTable();
+            if (table != null) {
+                tableName = table.getName();
+                String sqlFormatTableName = convertCatalogIdentifierToSQLFormat(tableName, quoteString);
+                qualifiedSQLName = sqlFormatTableName + "." + sqlFormatName;
+            }
+        }
+        
+        return qualifiedSQLName;
+    }
+
+    /**
+     * Gets the name of the given table, qualified and delimited as needed to make 
+     * it suitable for use in constructing an SQL statement.  
+     * 
+     * @param table the SQL Model table object for which the name is wanted
+     * @return the qualified and delimited name of the table
+     */
+    public String getQualifiedNameInSQLFormat(Table table) {
+        String qualifiedSQLName = null;
+        
+        if (table != null) {
+            String quoteString = getIdentifierQuoteString();
+            
+            /* Get the table name and delimit it if necessary. */
+            String tableName = table.getName();
+            String sqlFormatTableName = convertCatalogIdentifierToSQLFormat(tableName, quoteString);
+            qualifiedSQLName = sqlFormatTableName;
+            
+            /* Get and add the schema name. */
+            String schemaName = null;
+            Schema schema = table.getSchema();
+            if (schema != null) {
+                schemaName = schema.getName();
+                String sqlFormatSchemaName = convertCatalogIdentifierToSQLFormat(schemaName, quoteString);
+                qualifiedSQLName = sqlFormatSchemaName + "." + sqlFormatTableName;
+            }
+        }
+        
+        return qualifiedSQLName;
+    }
+
+    /**
+     * Gets the identifier quote string being used to delimit identifiers.  The default
+     * is " (double-quote character).
+     * 
+     * @return the current identifier quote string
+     */
+    public String getIdentifierQuoteString() {
+        return fQuoteString;
+    }
+
+    /**
+     * Sets the identifier quote string to use to delimit identifiers.
+     * 
+     * @param quoteString the identifier quote string to use
+     */
+    public void setIdentifierQuoteString(String quoteString) {
+        fQuoteString = quoteString;
+    }
+
+    /**
+     * Gets the SQL format form of the given catalog format identifier.  See table below for examples.
+     * 
+     * <table border='1' width='250'>
+     * <tr>
+     * <th><b>Catalog format</b></th>
+     * <th><b>SQL format</b></th>
+     * </tr>
+     * <tr>
+     * <td>MY_TABLE</td>
+     * <td>MY_TABLE</td>
+     * </tr>
+     * <tr>
+     * <td>MyTable</td>
+     * <td>&quot;MyTable&quot;</td>
+     * </tr>
+     * <tr>
+     * <td>My Table</td>
+     * <td>&quot;My Table&quot;</td>
+     * </tr>
+     * <tr>
+     * <td>My &quot;Table&quot;</td>
+     * <td>&quot;My &quot;&quot;Table&quot;&quot;&quot;</td>
+     * </tr>
+     * </table>
+     * 
+     * @param catIdentifier the identifier in catalog format
+     * @return the identifier in SQL format
+     */
+    protected String convertCatalogIdentifierToSQLFormat(String catIdentifier, String quoteString) {
+        String sqlIdentifier = catIdentifier;
+
+        if (catIdentifier != null && quoteString != null && quoteString.length() > 0 && !(quoteString.equals(" "))) {
+            boolean containsDelimiters = catIdentifier.indexOf(quoteString) > -1;
+            boolean containsSpace = catIdentifier.indexOf(' ') > -1;
+            boolean containsDot = catIdentifier.indexOf('.') > -1;
+            boolean isLowerOrMixedCase = !catIdentifier.toUpperCase().equals(catIdentifier);
+            
+            /* Handle the case when the identifier contains all digits (0-9). */
+            boolean allDigits = false;
+            try {
+                Integer.parseInt(catIdentifier);
+                // If no exception, then it contains all digits.
+                allDigits = true;
+            }
+            catch (NumberFormatException ex) {
+                // ignore
+            }
+            
+            /* The Unicode General Category classes “Lu”, “Ll”, “Lt”, “Lm”, “Lo”, and “Nl”
+             * are assigned upper-case letters, lower-case letters, title-case
+             * letters, modifier letters, other letters, and letter numbers.
+             * All identifiers that have a non-word character (i.e not any of a-z A-Z _ 0-9 ) needs to be delimited
+             */
+            boolean containsNonAlpha = false;
+            
+            /* The following pattern is "all non-word characters (\W) except the chars $, #, and @" */
+            String nonAlphaRegex = "[\\W&&[^$#@]]";  //$NON-NLS-1$
+            Pattern patern = Pattern.compile(nonAlphaRegex);
+            Matcher matcher = patern.matcher(catIdentifier);
+            while(!containsNonAlpha &&  matcher.find()){
+                containsNonAlpha = true;
+            }
+
+            if (containsDelimiters || containsSpace || containsDot || containsNonAlpha || isLowerOrMixedCase
+                    || allDigits) {
+                /* Need to check for and double internal quotes. */
+                if (containsDelimiters) {
+                    /* If already have delimiters at each end then we'll assume its already properly quoted. */ 
+                    if (sqlIdentifier.startsWith(quoteString) == true
+                        && sqlIdentifier.endsWith(quoteString) == true) {
+                        // do nothing
+                    }
+                    else {
+                        /* We only double the quotes for quote strings that are a single character.*/
+                        if (quoteString.length() == 1) {
+                            char quoteChar = quoteString.charAt(0);
+                            StringBuffer sqlIdentSB = new StringBuffer(sqlIdentifier);
+                            for (int i = 0; i < sqlIdentSB.length(); i++) {
+                                if (sqlIdentSB.charAt(i) == quoteChar) {
+                                    sqlIdentSB.insert(i, quoteChar);
+                                    i++;
+                                }
+                            }
+                            sqlIdentifier = sqlIdentSB.toString();
+                        }
+                        sqlIdentifier = quoteString + sqlIdentifier + quoteString;
+                    }
+                }
+                else {
+                    sqlIdentifier = quoteString + sqlIdentifier + quoteString;
+                }
+            }
+        }
+
+        return sqlIdentifier;
+    }
+
+    /**
+     * Gets the database object associated with the given schema object.
+     * 
+     * @param schema the schema object for which the database is needed
+     * @return the database object associated with the schema
+     */
+    protected Database getDatabase (Schema schema) {
+        Database database = null;
+        
+        if (schema != null) {
+           database = schema.getCatalog() == null ? schema.getDatabase() : schema.getCatalog().getDatabase();
+        }
+        
+        return database;
+    }
+    
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/helper/SchemaHelper.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/helper/SchemaHelper.java
new file mode 100644
index 0000000..dd38d2c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/helper/SchemaHelper.java
@@ -0,0 +1,100 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.schema.helper;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.tables.PersistentTable;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.datatools.modelbase.sql.tables.ViewTable;
+
+/**
+ * @author ckadner
+ *
+ * Helper to provide convenience methods that are related to 
+ * {@link org.eclipse.datatools.modelbase.sql.schema.Schema}.
+ */
+public class SchemaHelper
+{
+    
+    /**
+     * Finds a <code>Table</code> by its name in a given <code>Schema</code>,
+     * the given <code>tableName</code> is not case sensitive.  
+     * Look at {@link DatabaseHelper#findSchema(Database, String)} to see how 
+     * the <code>Schema</code> can be found in a <code>Database</code>.
+     * 
+     * @param schema the <code>Schema</code> to find a <code>Table</code> in
+     * @param tableName the String name of the <code>Table</code> to find 
+     * @return the <code>Table</code> found or null
+     * @throws NullPointerException if given <code>schema</code> or given
+     *         <code>tableName</code> is <code>null</code>
+     */
+    public static Table findTable(Schema schema, String tableName) {
+        Table returnTable = null;
+        
+        
+        // TODO perf: optimize performance by loading only the table needed as
+        //            opposed to all of them
+        for (Iterator it = schema.getTables().iterator(); it.hasNext();)
+        {
+            Table table = (Table) it.next();
+            
+            if (DatabaseHelper.compareIdentifiers(schema.getDatabase(), table.getName(), tableName) == 0) 
+            {
+                returnTable = table;
+            }
+        }
+
+        return returnTable;
+    }
+    
+    /**
+     * Retrieves all persistent tables in a given Schema.
+     **/
+    public static List getTables(Schema schema) {
+    	List tables = new ArrayList();
+    	
+        for (Iterator it = schema.getTables().iterator(); it.hasNext();)
+        {
+            Table currentTable = (Table) it.next();
+            
+            if (currentTable instanceof PersistentTable) 
+            {
+            	tables.add(currentTable);
+            }
+        }
+        
+        return tables;
+    }
+    
+    /**
+     * Retrieves all views in a given Schema.
+     **/
+    public static List getViews(Schema schema) {
+    	List views = new ArrayList();
+    	
+        for (Iterator it = schema.getTables().iterator(); it.hasNext();)
+        {
+            Table currentTable = (Table) it.next();
+            
+            if (currentTable instanceof ViewTable) 
+            {
+            	views.add(currentTable);
+            }
+        }
+        
+        return views;
+    }
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/impl/CatalogImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/impl/CatalogImpl.java
new file mode 100644
index 0000000..f835453
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/impl/CatalogImpl.java
@@ -0,0 +1,252 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: CatalogImpl.java,v 1.2 2008/01/23 23:59:35 hkolwalka Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.schema.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.schema.Catalog;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Catalog</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.impl.CatalogImpl#getDatabase <em>Database</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.impl.CatalogImpl#getSchemas <em>Schemas</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CatalogImpl extends SQLObjectImpl implements Catalog {
+	/**
+	 * The cached value of the '{@link #getDatabase() <em>Database</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDatabase()
+	 * @generated
+	 * @ordered
+	 */
+	protected Database database;
+
+	/**
+	 * The cached value of the '{@link #getSchemas() <em>Schemas</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSchemas()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList schemas;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected CatalogImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLSchemaPackage.Literals.CATALOG;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Database getDatabase() {
+		if (database != null && database.eIsProxy()) {
+			InternalEObject oldDatabase = (InternalEObject)database;
+			database = (Database)eResolveProxy(oldDatabase);
+			if (database != oldDatabase) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SQLSchemaPackage.CATALOG__DATABASE, oldDatabase, database));
+			}
+		}
+		return database;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Database basicGetDatabase() {
+		return database;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetDatabase(Database newDatabase, NotificationChain msgs) {
+		Database oldDatabase = database;
+		database = newDatabase;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLSchemaPackage.CATALOG__DATABASE, oldDatabase, newDatabase);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDatabase(Database newDatabase) {
+		if (newDatabase != database) {
+			NotificationChain msgs = null;
+			if (database != null)
+				msgs = ((InternalEObject)database).eInverseRemove(this, SQLSchemaPackage.DATABASE__CATALOGS, Database.class, msgs);
+			if (newDatabase != null)
+				msgs = ((InternalEObject)newDatabase).eInverseAdd(this, SQLSchemaPackage.DATABASE__CATALOGS, Database.class, msgs);
+			msgs = basicSetDatabase(newDatabase, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLSchemaPackage.CATALOG__DATABASE, newDatabase, newDatabase));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getSchemas() {
+		if (schemas == null) {
+			schemas = new EObjectWithInverseResolvingEList(Schema.class, this, SQLSchemaPackage.CATALOG__SCHEMAS, SQLSchemaPackage.SCHEMA__CATALOG);
+		}
+		return schemas;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLSchemaPackage.CATALOG__DATABASE:
+				if (database != null)
+					msgs = ((InternalEObject)database).eInverseRemove(this, SQLSchemaPackage.DATABASE__CATALOGS, Database.class, msgs);
+				return basicSetDatabase((Database)otherEnd, msgs);
+			case SQLSchemaPackage.CATALOG__SCHEMAS:
+				return ((InternalEList)getSchemas()).basicAdd(otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLSchemaPackage.CATALOG__DATABASE:
+				return basicSetDatabase(null, msgs);
+			case SQLSchemaPackage.CATALOG__SCHEMAS:
+				return ((InternalEList)getSchemas()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLSchemaPackage.CATALOG__DATABASE:
+				if (resolve) return getDatabase();
+				return basicGetDatabase();
+			case SQLSchemaPackage.CATALOG__SCHEMAS:
+				return getSchemas();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLSchemaPackage.CATALOG__DATABASE:
+				setDatabase((Database)newValue);
+				return;
+			case SQLSchemaPackage.CATALOG__SCHEMAS:
+				getSchemas().clear();
+				getSchemas().addAll((Collection)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLSchemaPackage.CATALOG__DATABASE:
+				setDatabase((Database)null);
+				return;
+			case SQLSchemaPackage.CATALOG__SCHEMAS:
+				getSchemas().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLSchemaPackage.CATALOG__DATABASE:
+				return database != null;
+			case SQLSchemaPackage.CATALOG__SCHEMAS:
+				return schemas != null && !schemas.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //CatalogImpl
\ No newline at end of file
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/impl/CommentImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/impl/CommentImpl.java
new file mode 100644
index 0000000..f074208
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/impl/CommentImpl.java
@@ -0,0 +1,275 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: CommentImpl.java,v 1.2 2008/01/23 23:59:35 hkolwalka Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.schema.impl;
+
+import org.eclipse.datatools.modelbase.sql.schema.Comment;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Comment</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.impl.CommentImpl#getDescription <em>Description</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.impl.CommentImpl#getSQLObject <em>SQL Object</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CommentImpl extends EObjectImpl implements Comment {
+	/**
+	 * The default value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DESCRIPTION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected String description = DESCRIPTION_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getSQLObject() <em>SQL Object</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSQLObject()
+	 * @generated
+	 * @ordered
+	 */
+	protected SQLObject sqlObject;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected CommentImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLSchemaPackage.Literals.COMMENT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getDescription() {
+		return description;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDescription(String newDescription) {
+		String oldDescription = description;
+		description = newDescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLSchemaPackage.COMMENT__DESCRIPTION, oldDescription, description));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLObject getSQLObject() {
+		if (sqlObject != null && sqlObject.eIsProxy()) {
+			InternalEObject oldSQLObject = (InternalEObject)sqlObject;
+			sqlObject = (SQLObject)eResolveProxy(oldSQLObject);
+			if (sqlObject != oldSQLObject) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SQLSchemaPackage.COMMENT__SQL_OBJECT, oldSQLObject, sqlObject));
+			}
+		}
+		return sqlObject;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLObject basicGetSQLObject() {
+		return sqlObject;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetSQLObject(SQLObject newSQLObject, NotificationChain msgs) {
+		SQLObject oldSQLObject = sqlObject;
+		sqlObject = newSQLObject;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLSchemaPackage.COMMENT__SQL_OBJECT, oldSQLObject, newSQLObject);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSQLObject(SQLObject newSQLObject) {
+		if (newSQLObject != sqlObject) {
+			NotificationChain msgs = null;
+			if (sqlObject != null)
+				msgs = ((InternalEObject)sqlObject).eInverseRemove(this, SQLSchemaPackage.SQL_OBJECT__COMMENTS, SQLObject.class, msgs);
+			if (newSQLObject != null)
+				msgs = ((InternalEObject)newSQLObject).eInverseAdd(this, SQLSchemaPackage.SQL_OBJECT__COMMENTS, SQLObject.class, msgs);
+			msgs = basicSetSQLObject(newSQLObject, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLSchemaPackage.COMMENT__SQL_OBJECT, newSQLObject, newSQLObject));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLSchemaPackage.COMMENT__SQL_OBJECT:
+				if (sqlObject != null)
+					msgs = ((InternalEObject)sqlObject).eInverseRemove(this, SQLSchemaPackage.SQL_OBJECT__COMMENTS, SQLObject.class, msgs);
+				return basicSetSQLObject((SQLObject)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLSchemaPackage.COMMENT__SQL_OBJECT:
+				return basicSetSQLObject(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLSchemaPackage.COMMENT__DESCRIPTION:
+				return getDescription();
+			case SQLSchemaPackage.COMMENT__SQL_OBJECT:
+				if (resolve) return getSQLObject();
+				return basicGetSQLObject();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLSchemaPackage.COMMENT__DESCRIPTION:
+				setDescription((String)newValue);
+				return;
+			case SQLSchemaPackage.COMMENT__SQL_OBJECT:
+				setSQLObject((SQLObject)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLSchemaPackage.COMMENT__DESCRIPTION:
+				setDescription(DESCRIPTION_EDEFAULT);
+				return;
+			case SQLSchemaPackage.COMMENT__SQL_OBJECT:
+				setSQLObject((SQLObject)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLSchemaPackage.COMMENT__DESCRIPTION:
+				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
+			case SQLSchemaPackage.COMMENT__SQL_OBJECT:
+				return sqlObject != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (description: "); //$NON-NLS-1$
+		result.append(description);
+		result.append(')');
+		return result.toString();
+	}
+
+} //CommentImpl
\ No newline at end of file
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/impl/DatabaseImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/impl/DatabaseImpl.java
new file mode 100644
index 0000000..e0257c1
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/impl/DatabaseImpl.java
@@ -0,0 +1,432 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.schema.impl;
+
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Vector;
+
+import org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage;
+
+import org.eclipse.datatools.modelbase.sql.schema.Catalog;
+import org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.Event;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Database</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.impl.DatabaseImpl#getVendor <em>Vendor</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.impl.DatabaseImpl#getVersion <em>Version</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.impl.DatabaseImpl#getSchemas <em>Schemas</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.impl.DatabaseImpl#getEvents <em>Events</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.impl.DatabaseImpl#getCatalogs <em>Catalogs</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.impl.DatabaseImpl#getAuthorizationIds <em>Authorization Ids</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DatabaseImpl extends SQLObjectImpl implements Database {
+	/**
+	 * The default value of the '{@link #getVendor() <em>Vendor</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getVendor()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String VENDOR_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getVendor() <em>Vendor</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getVendor()
+	 * @generated
+	 * @ordered
+	 */
+	protected String vendor = VENDOR_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getVersion() <em>Version</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getVersion()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String VERSION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getVersion() <em>Version</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getVersion()
+	 * @generated
+	 * @ordered
+	 */
+	protected String version = VERSION_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getSchemas() <em>Schemas</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSchemas()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList schemas;
+
+	/**
+	 * The cached value of the '{@link #getEvents() <em>Events</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEvents()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList events;
+
+	/**
+	 * The cached value of the '{@link #getCatalogs() <em>Catalogs</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCatalogs()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList catalogs;
+
+	/**
+	 * The cached value of the '{@link #getAuthorizationIds() <em>Authorization Ids</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAuthorizationIds()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList authorizationIds;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DatabaseImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLSchemaPackage.Literals.DATABASE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getVendor() {
+		return vendor;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setVendor(String newVendor) {
+		String oldVendor = vendor;
+		vendor = newVendor;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLSchemaPackage.DATABASE__VENDOR, oldVendor, vendor));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getVersion() {
+		return version;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setVersion(String newVersion) {
+		String oldVersion = version;
+		version = newVersion;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLSchemaPackage.DATABASE__VERSION, oldVersion, version));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getSchemas() {
+		if (schemas == null) {
+			schemas = new EObjectWithInverseResolvingEList(Schema.class, this, SQLSchemaPackage.DATABASE__SCHEMAS, SQLSchemaPackage.SCHEMA__DATABASE);
+		}
+		return schemas;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getEvents() {
+		if (events == null) {
+			events = new EObjectWithInverseResolvingEList(Event.class, this, SQLSchemaPackage.DATABASE__EVENTS, SQLSchemaPackage.EVENT__DATABASE);
+		}
+		return events;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getCatalogs() {
+		if (catalogs == null) {
+			catalogs = new EObjectWithInverseResolvingEList(Catalog.class, this, SQLSchemaPackage.DATABASE__CATALOGS, SQLSchemaPackage.CATALOG__DATABASE);
+		}
+		return catalogs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getAuthorizationIds() {
+		if (authorizationIds == null) {
+			authorizationIds = new EObjectWithInverseResolvingEList(AuthorizationIdentifier.class, this, SQLSchemaPackage.DATABASE__AUTHORIZATION_IDS, SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__DATABASE);
+		}
+		return authorizationIds;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 */
+	public List getUserDefinedTypes() {
+		Vector udtList = new Vector();
+		EList schemas = this.getSchemas();
+		if (schemas != null) {
+			Iterator schemaIterator = schemas.iterator();
+			while(schemaIterator.hasNext()) {
+				Schema currentSchema = (Schema)schemaIterator.next();
+				EList udts = currentSchema.getUserDefinedTypes();
+				if (udts != null) {
+					Iterator udtIterator = udts.iterator();
+					while(udtIterator.hasNext()) {
+						UserDefinedType currentUDT = (UserDefinedType)udtIterator.next();
+						udtList.add(currentUDT);
+					}
+				}
+			}
+		}
+		return (List)udtList;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLSchemaPackage.DATABASE__SCHEMAS:
+				return ((InternalEList)getSchemas()).basicAdd(otherEnd, msgs);
+			case SQLSchemaPackage.DATABASE__EVENTS:
+				return ((InternalEList)getEvents()).basicAdd(otherEnd, msgs);
+			case SQLSchemaPackage.DATABASE__CATALOGS:
+				return ((InternalEList)getCatalogs()).basicAdd(otherEnd, msgs);
+			case SQLSchemaPackage.DATABASE__AUTHORIZATION_IDS:
+				return ((InternalEList)getAuthorizationIds()).basicAdd(otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLSchemaPackage.DATABASE__SCHEMAS:
+				return ((InternalEList)getSchemas()).basicRemove(otherEnd, msgs);
+			case SQLSchemaPackage.DATABASE__EVENTS:
+				return ((InternalEList)getEvents()).basicRemove(otherEnd, msgs);
+			case SQLSchemaPackage.DATABASE__CATALOGS:
+				return ((InternalEList)getCatalogs()).basicRemove(otherEnd, msgs);
+			case SQLSchemaPackage.DATABASE__AUTHORIZATION_IDS:
+				return ((InternalEList)getAuthorizationIds()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLSchemaPackage.DATABASE__VENDOR:
+				return getVendor();
+			case SQLSchemaPackage.DATABASE__VERSION:
+				return getVersion();
+			case SQLSchemaPackage.DATABASE__SCHEMAS:
+				return getSchemas();
+			case SQLSchemaPackage.DATABASE__EVENTS:
+				return getEvents();
+			case SQLSchemaPackage.DATABASE__CATALOGS:
+				return getCatalogs();
+			case SQLSchemaPackage.DATABASE__AUTHORIZATION_IDS:
+				return getAuthorizationIds();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLSchemaPackage.DATABASE__VENDOR:
+				setVendor((String)newValue);
+				return;
+			case SQLSchemaPackage.DATABASE__VERSION:
+				setVersion((String)newValue);
+				return;
+			case SQLSchemaPackage.DATABASE__SCHEMAS:
+				getSchemas().clear();
+				getSchemas().addAll((Collection)newValue);
+				return;
+			case SQLSchemaPackage.DATABASE__EVENTS:
+				getEvents().clear();
+				getEvents().addAll((Collection)newValue);
+				return;
+			case SQLSchemaPackage.DATABASE__CATALOGS:
+				getCatalogs().clear();
+				getCatalogs().addAll((Collection)newValue);
+				return;
+			case SQLSchemaPackage.DATABASE__AUTHORIZATION_IDS:
+				getAuthorizationIds().clear();
+				getAuthorizationIds().addAll((Collection)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLSchemaPackage.DATABASE__VENDOR:
+				setVendor(VENDOR_EDEFAULT);
+				return;
+			case SQLSchemaPackage.DATABASE__VERSION:
+				setVersion(VERSION_EDEFAULT);
+				return;
+			case SQLSchemaPackage.DATABASE__SCHEMAS:
+				getSchemas().clear();
+				return;
+			case SQLSchemaPackage.DATABASE__EVENTS:
+				getEvents().clear();
+				return;
+			case SQLSchemaPackage.DATABASE__CATALOGS:
+				getCatalogs().clear();
+				return;
+			case SQLSchemaPackage.DATABASE__AUTHORIZATION_IDS:
+				getAuthorizationIds().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLSchemaPackage.DATABASE__VENDOR:
+				return VENDOR_EDEFAULT == null ? vendor != null : !VENDOR_EDEFAULT.equals(vendor);
+			case SQLSchemaPackage.DATABASE__VERSION:
+				return VERSION_EDEFAULT == null ? version != null : !VERSION_EDEFAULT.equals(version);
+			case SQLSchemaPackage.DATABASE__SCHEMAS:
+				return schemas != null && !schemas.isEmpty();
+			case SQLSchemaPackage.DATABASE__EVENTS:
+				return events != null && !events.isEmpty();
+			case SQLSchemaPackage.DATABASE__CATALOGS:
+				return catalogs != null && !catalogs.isEmpty();
+			case SQLSchemaPackage.DATABASE__AUTHORIZATION_IDS:
+				return authorizationIds != null && !authorizationIds.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (vendor: "); //$NON-NLS-1$
+		result.append(vendor);
+		result.append(", version: "); //$NON-NLS-1$
+		result.append(version);
+		result.append(')');
+		return result.toString();
+	}
+
+} //DatabaseImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/impl/DependencyImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/impl/DependencyImpl.java
new file mode 100644
index 0000000..aaf4bac
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/impl/DependencyImpl.java
@@ -0,0 +1,228 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.schema.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.schema.Dependency;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Dependency</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.impl.DependencyImpl#getTargetEnd <em>Target End</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.impl.DependencyImpl#getDependencyType <em>Dependency Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DependencyImpl extends SQLObjectImpl implements Dependency {
+	/**
+	 * The cached value of the '{@link #getTargetEnd() <em>Target End</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTargetEnd()
+	 * @generated
+	 * @ordered
+	 */
+	protected EObject targetEnd;
+
+	/**
+	 * The default value of the '{@link #getDependencyType() <em>Dependency Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDependencyType()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DEPENDENCY_TYPE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDependencyType() <em>Dependency Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDependencyType()
+	 * @generated
+	 * @ordered
+	 */
+	protected String dependencyType = DEPENDENCY_TYPE_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DependencyImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLSchemaPackage.Literals.DEPENDENCY;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EObject getTargetEnd() {
+		if (targetEnd != null && targetEnd.eIsProxy()) {
+			InternalEObject oldTargetEnd = (InternalEObject)targetEnd;
+			targetEnd = eResolveProxy(oldTargetEnd);
+			if (targetEnd != oldTargetEnd) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SQLSchemaPackage.DEPENDENCY__TARGET_END, oldTargetEnd, targetEnd));
+			}
+		}
+		return targetEnd;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EObject basicGetTargetEnd() {
+		return targetEnd;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTargetEnd(EObject newTargetEnd) {
+		EObject oldTargetEnd = targetEnd;
+		targetEnd = newTargetEnd;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLSchemaPackage.DEPENDENCY__TARGET_END, oldTargetEnd, targetEnd));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getDependencyType() {
+		return dependencyType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDependencyType(String newDependencyType) {
+		String oldDependencyType = dependencyType;
+		dependencyType = newDependencyType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLSchemaPackage.DEPENDENCY__DEPENDENCY_TYPE, oldDependencyType, dependencyType));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLSchemaPackage.DEPENDENCY__TARGET_END:
+				if (resolve) return getTargetEnd();
+				return basicGetTargetEnd();
+			case SQLSchemaPackage.DEPENDENCY__DEPENDENCY_TYPE:
+				return getDependencyType();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLSchemaPackage.DEPENDENCY__TARGET_END:
+				setTargetEnd((EObject)newValue);
+				return;
+			case SQLSchemaPackage.DEPENDENCY__DEPENDENCY_TYPE:
+				setDependencyType((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLSchemaPackage.DEPENDENCY__TARGET_END:
+				setTargetEnd((EObject)null);
+				return;
+			case SQLSchemaPackage.DEPENDENCY__DEPENDENCY_TYPE:
+				setDependencyType(DEPENDENCY_TYPE_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLSchemaPackage.DEPENDENCY__TARGET_END:
+				return targetEnd != null;
+			case SQLSchemaPackage.DEPENDENCY__DEPENDENCY_TYPE:
+				return DEPENDENCY_TYPE_EDEFAULT == null ? dependencyType != null : !DEPENDENCY_TYPE_EDEFAULT.equals(dependencyType);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (dependencyType: "); //$NON-NLS-1$
+		result.append(dependencyType);
+		result.append(')');
+		return result.toString();
+	}
+
+} //DependencyImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/impl/EModelElementImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/impl/EModelElementImpl.java
new file mode 100644
index 0000000..e048089
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/impl/EModelElementImpl.java
@@ -0,0 +1,572 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2002-2006 IBM Corporation and others.
+ * All rights reserved.   This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors: 
+ *   IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: EModelElementImpl.java,v 1.18 2008/05/17 21:42:14 emerks Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.schema.impl;
+
+
+import java.util.Collection;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.common.util.WrappedException;
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EModelElement;
+import org.eclipse.emf.ecore.ENamedElement;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.FlatEObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>EModel Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.emf.ecore.impl.EModelElementImpl#getEAnnotations <em>EAnnotations</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated not
+ */
+public abstract class EModelElementImpl extends FlatEObjectImpl implements EModelElement
+{
+  /**
+   * The cached value of the '{@link #getEAnnotations() <em>EAnnotations</em>}' containment reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getEAnnotations()
+   * @generated
+   * @ordered
+   */
+  protected EList<EAnnotation> eAnnotations;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected EModelElementImpl()
+  {
+    super();
+  }
+
+  /**
+   * The bit of {@link #eFlags} that is used to represent being {@link #freeze() frozen}.
+   */
+  protected static final int EFROZEN = ELAST_EOBJECT_FLAG << 1;
+
+  /**
+   * The last bit used by this class; derived classes may use bit values higher than this.
+   */
+  protected static final int ELAST_EMODEL_ELEMENT_FLAG = EFROZEN;
+
+  protected void freeze()
+  {
+    setFrozen();
+  }
+
+  protected void freeze(Object eModelElement)
+  {
+    if (eModelElement instanceof EModelElementImpl)
+    { 
+      ((EModelElementImpl)eModelElement).freeze();
+    }
+  }
+
+  protected void setFrozen()
+  {
+    eFlags |= EFROZEN;
+  }
+
+  protected boolean isFrozen()
+  {
+    return (eFlags & EFROZEN) != 0;
+  }
+  
+  private static final String [] ESCAPE =
+  {
+    "%00",
+    "%01",
+    "%02",
+    "%03",
+    "%04",
+    "%05",
+    "%06",
+    "%07",
+    "%08",
+    "%09",
+    "%0A",
+    "%0B",
+    "%0C",
+    "%0D",
+    "%0E",
+    "%0F",
+    "%10",
+    "%11",
+    "%12",
+    "%13",
+    "%14",
+    "%15",
+    "%16",
+    "%17",
+    "%18",
+    "%19",
+    "%1A",
+    "%1B",
+    "%1C",
+    "%1D",
+    "%1E",
+    "%1F",
+    "%20",
+    null,
+    "%22",
+    "%23",
+    null,
+    "%25",
+    "%26",
+    "%27",
+    null,
+    null,
+    null,
+    null,
+    "%2C",
+    null,
+    null,
+    "%2F",
+    null,
+    null,
+    null,
+    null,
+    null,
+    null,
+    null,
+    null,
+    null,
+    null,
+    "%3A",
+    null,
+    "%3C",
+    null,
+    "%3E",
+    null,
+  };
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return EcorePackage.Literals.EMODEL_ELEMENT;
+  }
+  
+  /**
+   * Returns the encoded value or the original, if no encoding was needed.
+   * @see EModelElementImpl#eURIFragmentSegment(EStructuralFeature, EObject)
+   * @param value the value to be encoded.
+   * @return the encoded value or the original, if no encoding was needed.
+   */
+  static String eEncodeValue(String value)
+  {
+    int length = value.length();
+    StringBuilder result = null;
+    for (int i = 0; i < length; ++i)
+    {
+      char character = value.charAt(i);
+      if (character < ESCAPE.length)
+      {
+        String escape = ESCAPE[character];
+        if (escape != null)
+        {
+          if (result == null)
+          {
+            result = new StringBuilder(length + 2);
+            result.append(value, 0, i);
+          }
+          result.append(escape);
+          continue;
+        }
+      }
+      if (result != null)
+      {
+        result.append(character);
+      }
+    }
+    return result == null ? value : result.toString();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public EList<EAnnotation> getEAnnotations()
+  {
+    if (eAnnotations == null)
+    {
+      eAnnotations = new EObjectContainmentWithInverseEList<EAnnotation>(EAnnotation.class, this, EcorePackage.EMODEL_ELEMENT__EANNOTATIONS, EcorePackage.EANNOTATION__EMODEL_ELEMENT);
+    }
+    return eAnnotations;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated NOT
+   */
+  public EAnnotation getEAnnotation(String source)
+  {
+    if (eAnnotations != null)
+    {
+      if (eAnnotations instanceof BasicEList)
+      {
+        int size = eAnnotations.size();
+        if (size > 0)
+        {
+          EAnnotation [] eAnnotationArray = (EAnnotation[])((BasicEList<?>)eAnnotations).data();
+          if (source == null)
+          {
+            for (int i = 0; i < size; ++i)
+            {
+              EAnnotation eAnnotation = eAnnotationArray[i];
+              if (eAnnotation.getSource() == null)
+              {
+                return eAnnotation;
+              }
+            }
+          }
+          else
+          {
+            for (int i = 0; i < size; ++i)
+            {
+              EAnnotation eAnnotation = eAnnotationArray[i];
+              if (source.equals(eAnnotation.getSource()))
+              {
+                return eAnnotation;
+              }
+            }
+          }
+        }
+      }
+      else
+      {
+        if (source == null)
+        {
+          for (EAnnotation eAnnotation : eAnnotations)
+          {
+            if (eAnnotation.getSource() == null)
+            {
+              return eAnnotation;
+            }
+          }
+        }
+        else
+        {
+          for (EAnnotation eAnnotation : eAnnotations)
+          {
+            if (source.equals(eAnnotation.getSource()))
+            {
+              return eAnnotation;
+            }
+          }
+        }
+      }
+    }
+
+    return null;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @SuppressWarnings("unchecked")
+  @Override
+  public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+  {
+    switch (featureID)
+    {
+      case EcorePackage.EMODEL_ELEMENT__EANNOTATIONS:
+        return ((InternalEList<InternalEObject>)(InternalEList<?>)getEAnnotations()).basicAdd(otherEnd, msgs);
+    }
+    return eDynamicInverseAdd(otherEnd, featureID, msgs);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+  {
+    switch (featureID)
+    {
+      case EcorePackage.EMODEL_ELEMENT__EANNOTATIONS:
+        return ((InternalEList<?>)getEAnnotations()).basicRemove(otherEnd, msgs);
+    }
+    return eDynamicInverseRemove(otherEnd, featureID, msgs);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case EcorePackage.EMODEL_ELEMENT__EANNOTATIONS:
+        return getEAnnotations();
+    }
+    return eDynamicGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @SuppressWarnings("unchecked")
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case EcorePackage.EMODEL_ELEMENT__EANNOTATIONS:
+        getEAnnotations().clear();
+        getEAnnotations().addAll((Collection<? extends EAnnotation>)newValue);
+        return;
+    }
+    eDynamicSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case EcorePackage.EMODEL_ELEMENT__EANNOTATIONS:
+        getEAnnotations().clear();
+        return;
+    }
+    eDynamicUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case EcorePackage.EMODEL_ELEMENT__EANNOTATIONS:
+        return eAnnotations != null && !eAnnotations.isEmpty();
+    }
+    return eDynamicIsSet(featureID);
+  }
+
+  @Override
+  public String eURIFragmentSegment(EStructuralFeature eStructuralFeature, EObject eObject)
+  {
+    if (eObject instanceof ENamedElement)
+    {
+      ENamedElement eNamedElement = (ENamedElement)eObject;
+      String name = eNamedElement.getName();
+      if (name != null)
+      {
+        int count = 0;
+        for (Object otherEObject : eContents())
+        {
+          if (otherEObject == eObject)
+          {
+            break;
+          }
+          if (otherEObject instanceof ENamedElement)
+          {
+            ENamedElement otherENamedElement = (ENamedElement)otherEObject;
+            if (name.equals(otherENamedElement.getName()))
+            {
+              ++count;
+            }
+          }
+        }
+        name = eEncodeValue(name);
+        return 
+          count > 0 ?
+            name + "." + count : 
+            name;
+      }
+    }
+    else if (eObject instanceof EAnnotation)
+    {
+      EAnnotation eAnnotation = (EAnnotation)eObject;
+      String source = eAnnotation.getSource();
+      if (source != null)
+      {
+        int count = 0;
+        for (Object otherEObject : eContents())
+        {
+          if (otherEObject == eObject)
+          {
+            break;
+          }
+          if (otherEObject instanceof EAnnotation)
+          {
+            EAnnotation otherEAnnotation = (EAnnotation)otherEObject;
+            if (source.equals(otherEAnnotation.getSource()))
+            {
+              ++count;
+            }
+          }
+        }
+        
+        StringBuffer result = new StringBuffer(source.length() + 5);
+        result.append('%');
+        result.append(URI.encodeSegment(source,  false));
+        result.append('%');
+        if (count > 0)
+        {
+          result.append('.');
+          result.append(count);
+        }
+        return result.toString();
+      }
+    }
+    return super.eURIFragmentSegment(eStructuralFeature, eObject);
+  }
+  
+  @Override
+  public EObject eObjectForURIFragmentSegment(String uriFragmentSegment)
+  {
+    int length = uriFragmentSegment.length();
+    if (length > 0)
+    {
+      // Is the first character a special character, i.e., something other than '@'?
+      //
+      char firstCharacter = uriFragmentSegment.charAt(0);
+      if (firstCharacter != '@')
+      {
+        // Is it the start of a source URI of an annotation?
+        //
+        if (firstCharacter == '%')
+        {
+          // Find the closing '%'
+          //
+          int index = uriFragmentSegment.lastIndexOf("%");
+          boolean hasCount = false;
+          if (index == length - 1 || (hasCount = uriFragmentSegment.charAt(index + 1) == '.'))
+          {
+            // Decode all encoded characters.
+            //
+            String source = URI.decode(uriFragmentSegment.substring(1, index));
+            
+            // Check for a count, i.e., a '.' followed by a number.
+            //
+            int count = 0;
+            if (hasCount)
+            {
+              try
+              {
+                count = Integer.parseInt(uriFragmentSegment.substring(index + 2));
+              }
+              catch (NumberFormatException exception)
+              {
+                throw new WrappedException(exception);
+              }
+            }
+            
+            // Look for the annotation with the matching source.
+            //
+            for (Object object : eContents())
+            {
+              if (object instanceof EAnnotation)
+              {
+                EAnnotation eAnnotation = (EAnnotation)object;
+                if (source.equals(eAnnotation.getSource()) && count-- == 0)
+                {
+                  return eAnnotation;
+                }
+              }
+            }
+            return null;
+          }
+        }
+
+        // Look for trailing count.
+        //
+        int index = uriFragmentSegment.lastIndexOf(".");
+        String name = index == -1 ? uriFragmentSegment : uriFragmentSegment.substring(0, index);
+        int count = 0;
+        if (index != -1)
+        {
+          try
+          {
+            count = Integer.parseInt(uriFragmentSegment.substring(index + 1));
+          }
+          catch (NumberFormatException exception)
+          {
+            // Interpret it as part of the name.
+            //
+            name = uriFragmentSegment;
+          }
+        }
+
+        name = URI.decode(name);
+    
+        // Look for a matching named element.
+        //
+        for (Object object : eContents())
+        {
+          if (object instanceof ENamedElement)
+          {
+            ENamedElement eNamedElement = (ENamedElement)object;
+            if (name.equals(eNamedElement.getName()) && count-- == 0)
+            {
+              return eNamedElement;
+            }
+          }
+        }
+  
+        return null;
+      }
+    }
+    
+    return super.eObjectForURIFragmentSegment(uriFragmentSegment);
+  }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/impl/ENamedElementImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/impl/ENamedElementImpl.java
new file mode 100644
index 0000000..1b7b24f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/impl/ENamedElementImpl.java
@@ -0,0 +1,331 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2002-2006 IBM Corporation and others.
+ * All rights reserved.   This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors: 
+ *   IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: ENamedElementImpl.java,v 1.8 2006/12/21 16:42:22 emerks Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.schema.impl;
+
+
+import java.util.Collection;
+import java.util.ListIterator;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.ENamedElement;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.impl.EClassImpl;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EContentsEList;
+import org.eclipse.emf.ecore.util.ECrossReferenceEList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>ENamed Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.emf.ecore.impl.ENamedElementImpl#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class ENamedElementImpl extends EModelElementImpl implements ENamedElement
+{
+  /**
+   * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getName()
+   * @generated
+   * @ordered
+   */
+  protected static final String NAME_EDEFAULT = null;
+
+  /**
+   * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getName()
+   * @generated
+   * @ordered
+   */
+  protected String name = NAME_EDEFAULT;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected ENamedElementImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return EcorePackage.Literals.ENAMED_ELEMENT;
+  }
+
+  /**
+   * Default is ID if name is null       
+   */
+  public String getName()
+  {
+    return getNameGen();
+/*
+    // if no default has been specified, use the id as the default.
+    String defaultName = this.getNameGen();
+
+    if (defaultName != null)
+      return defaultName;
+    else
+      return eID();
+*/
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String toString()
+  {
+    if (eIsProxy()) return super.toString();
+
+    StringBuffer result = new StringBuffer(super.toString());
+    result.append(" (name: ");
+    result.append(name);
+    result.append(')');
+    return result.toString();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public String getNameGen()
+  {
+    return name;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public void setName(String newName)
+  {
+    String oldName = name;
+    name = newName;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, EcorePackage.ENAMED_ELEMENT__NAME, oldName, name));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case EcorePackage.ENAMED_ELEMENT__EANNOTATIONS:
+        return getEAnnotations();
+      case EcorePackage.ENAMED_ELEMENT__NAME:
+        return getName();
+    }
+    return eDynamicGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @SuppressWarnings("unchecked")
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case EcorePackage.ENAMED_ELEMENT__EANNOTATIONS:
+        getEAnnotations().clear();
+        getEAnnotations().addAll((Collection<? extends EAnnotation>)newValue);
+        return;
+      case EcorePackage.ENAMED_ELEMENT__NAME:
+        setName((String)newValue);
+        return;
+    }
+    eDynamicSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case EcorePackage.ENAMED_ELEMENT__EANNOTATIONS:
+        getEAnnotations().clear();
+        return;
+      case EcorePackage.ENAMED_ELEMENT__NAME:
+        setName(NAME_EDEFAULT);
+        return;
+    }
+    eDynamicUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case EcorePackage.ENAMED_ELEMENT__EANNOTATIONS:
+        return eAnnotations != null && !eAnnotations.isEmpty();
+      case EcorePackage.ENAMED_ELEMENT__NAME:
+        return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+    }
+    return eDynamicIsSet(featureID);
+  }
+
+  @Override
+  public EList<EObject> eContents()
+  {
+    if (eContents == null)
+    {
+      EStructuralFeature [] eStructuralFeatures = 
+        ((EClassImpl.FeatureSubsetSupplier)eClass().getEAllStructuralFeatures()).containments();
+      
+      eContents = 
+        eStructuralFeatures == null ?
+          EContentsEList.<EObject>emptyContentsEList() :
+          new EContentsEList<EObject>(this, eStructuralFeatures)
+          {
+            @Override
+            protected boolean useIsSet()
+            {
+              return false;
+            }
+
+            @Override
+            protected ListIterator<EObject> newResolvingListIterator()
+            {
+              return 
+                new ResolvingFeatureIteratorImpl<EObject>(eObject, eStructuralFeatures)
+                {
+                  @Override
+                  protected boolean useIsSet()
+                  {
+                    return false;
+                  }
+                };
+            }
+
+            @Override
+            protected ListIterator<EObject> newNonResolvingListIterator()
+            {
+              return 
+                new FeatureIteratorImpl<EObject>(eObject, eStructuralFeatures)
+                {
+                  @Override
+                  protected boolean useIsSet()
+                  {
+                    return false;
+                  }
+                };
+            }
+
+          };
+    }
+    return eContents;
+  }
+
+  @Override
+  public EList<EObject> eCrossReferences()
+  {
+    if (eCrossReferences == null)
+    {
+      EStructuralFeature [] eStructuralFeatures = 
+        ((EClassImpl.FeatureSubsetSupplier)eClass().getEAllStructuralFeatures()).crossReferences();
+
+      eCrossReferences =
+        eStructuralFeatures == null ?
+          ECrossReferenceEList.<EObject>emptyCrossReferenceEList() :
+          new ECrossReferenceEList<EObject>(this, eStructuralFeatures)
+          {
+            @Override
+            protected boolean useIsSet()
+            {
+              return false;
+            }
+
+            @Override
+            protected ListIterator<EObject> newResolvingListIterator()
+            {
+              return 
+                new ResolvingFeatureIteratorImpl<EObject>(eObject, eStructuralFeatures)
+                {
+                  @Override
+                  protected boolean useIsSet()
+                  {
+                    return false;
+                  }
+                };
+            }
+
+            @Override
+            protected ListIterator<EObject> newNonResolvingListIterator()
+            {
+              return 
+                new FeatureIteratorImpl<EObject>(eObject, eStructuralFeatures)
+                {
+                  @Override
+                  protected boolean useIsSet()
+                  {
+                    return false;
+                  }
+                };
+            }
+          };
+    }
+    return eCrossReferences;
+  }
+
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/impl/EventImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/impl/EventImpl.java
new file mode 100644
index 0000000..fe5d116
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/impl/EventImpl.java
@@ -0,0 +1,440 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: EventImpl.java,v 1.3 2008/01/23 23:59:35 hkolwalka Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.schema.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.Event;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Event</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.impl.EventImpl#getFor <em>For</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.impl.EventImpl#getCondition <em>Condition</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.impl.EventImpl#getAction <em>Action</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.impl.EventImpl#isEnabled <em>Enabled</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.impl.EventImpl#getDatabase <em>Database</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class EventImpl extends SQLObjectImpl implements Event {
+	/**
+	 * The default value of the '{@link #getFor() <em>For</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFor()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String FOR_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getFor() <em>For</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFor()
+	 * @generated
+	 * @ordered
+	 */
+	protected String for_ = FOR_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getCondition() <em>Condition</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCondition()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String CONDITION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getCondition() <em>Condition</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCondition()
+	 * @generated
+	 * @ordered
+	 */
+	protected String condition = CONDITION_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getAction() <em>Action</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAction()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ACTION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getAction() <em>Action</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAction()
+	 * @generated
+	 * @ordered
+	 */
+	protected String action = ACTION_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isEnabled() <em>Enabled</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isEnabled()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean ENABLED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isEnabled() <em>Enabled</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isEnabled()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean enabled = ENABLED_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getDatabase() <em>Database</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDatabase()
+	 * @generated
+	 * @ordered
+	 */
+	protected Database database;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EventImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLSchemaPackage.Literals.EVENT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getFor() {
+		return for_;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setFor(String newFor) {
+		String oldFor = for_;
+		for_ = newFor;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLSchemaPackage.EVENT__FOR, oldFor, for_));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getCondition() {
+		return condition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCondition(String newCondition) {
+		String oldCondition = condition;
+		condition = newCondition;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLSchemaPackage.EVENT__CONDITION, oldCondition, condition));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getAction() {
+		return action;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setAction(String newAction) {
+		String oldAction = action;
+		action = newAction;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLSchemaPackage.EVENT__ACTION, oldAction, action));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isEnabled() {
+		return enabled;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setEnabled(boolean newEnabled) {
+		boolean oldEnabled = enabled;
+		enabled = newEnabled;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLSchemaPackage.EVENT__ENABLED, oldEnabled, enabled));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Database getDatabase() {
+		if (database != null && database.eIsProxy()) {
+			InternalEObject oldDatabase = (InternalEObject)database;
+			database = (Database)eResolveProxy(oldDatabase);
+			if (database != oldDatabase) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SQLSchemaPackage.EVENT__DATABASE, oldDatabase, database));
+			}
+		}
+		return database;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Database basicGetDatabase() {
+		return database;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetDatabase(Database newDatabase, NotificationChain msgs) {
+		Database oldDatabase = database;
+		database = newDatabase;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLSchemaPackage.EVENT__DATABASE, oldDatabase, newDatabase);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDatabase(Database newDatabase) {
+		if (newDatabase != database) {
+			NotificationChain msgs = null;
+			if (database != null)
+				msgs = ((InternalEObject)database).eInverseRemove(this, SQLSchemaPackage.DATABASE__EVENTS, Database.class, msgs);
+			if (newDatabase != null)
+				msgs = ((InternalEObject)newDatabase).eInverseAdd(this, SQLSchemaPackage.DATABASE__EVENTS, Database.class, msgs);
+			msgs = basicSetDatabase(newDatabase, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLSchemaPackage.EVENT__DATABASE, newDatabase, newDatabase));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLSchemaPackage.EVENT__DATABASE:
+				if (database != null)
+					msgs = ((InternalEObject)database).eInverseRemove(this, SQLSchemaPackage.DATABASE__EVENTS, Database.class, msgs);
+				return basicSetDatabase((Database)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLSchemaPackage.EVENT__DATABASE:
+				return basicSetDatabase(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLSchemaPackage.EVENT__FOR:
+				return getFor();
+			case SQLSchemaPackage.EVENT__CONDITION:
+				return getCondition();
+			case SQLSchemaPackage.EVENT__ACTION:
+				return getAction();
+			case SQLSchemaPackage.EVENT__ENABLED:
+				return isEnabled() ? Boolean.TRUE : Boolean.FALSE;
+			case SQLSchemaPackage.EVENT__DATABASE:
+				if (resolve) return getDatabase();
+				return basicGetDatabase();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLSchemaPackage.EVENT__FOR:
+				setFor((String)newValue);
+				return;
+			case SQLSchemaPackage.EVENT__CONDITION:
+				setCondition((String)newValue);
+				return;
+			case SQLSchemaPackage.EVENT__ACTION:
+				setAction((String)newValue);
+				return;
+			case SQLSchemaPackage.EVENT__ENABLED:
+				setEnabled(((Boolean)newValue).booleanValue());
+				return;
+			case SQLSchemaPackage.EVENT__DATABASE:
+				setDatabase((Database)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLSchemaPackage.EVENT__FOR:
+				setFor(FOR_EDEFAULT);
+				return;
+			case SQLSchemaPackage.EVENT__CONDITION:
+				setCondition(CONDITION_EDEFAULT);
+				return;
+			case SQLSchemaPackage.EVENT__ACTION:
+				setAction(ACTION_EDEFAULT);
+				return;
+			case SQLSchemaPackage.EVENT__ENABLED:
+				setEnabled(ENABLED_EDEFAULT);
+				return;
+			case SQLSchemaPackage.EVENT__DATABASE:
+				setDatabase((Database)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLSchemaPackage.EVENT__FOR:
+				return FOR_EDEFAULT == null ? for_ != null : !FOR_EDEFAULT.equals(for_);
+			case SQLSchemaPackage.EVENT__CONDITION:
+				return CONDITION_EDEFAULT == null ? condition != null : !CONDITION_EDEFAULT.equals(condition);
+			case SQLSchemaPackage.EVENT__ACTION:
+				return ACTION_EDEFAULT == null ? action != null : !ACTION_EDEFAULT.equals(action);
+			case SQLSchemaPackage.EVENT__ENABLED:
+				return enabled != ENABLED_EDEFAULT;
+			case SQLSchemaPackage.EVENT__DATABASE:
+				return database != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (for: "); //$NON-NLS-1$
+		result.append(for_);
+		result.append(", condition: "); //$NON-NLS-1$
+		result.append(condition);
+		result.append(", action: "); //$NON-NLS-1$
+		result.append(action);
+		result.append(", enabled: "); //$NON-NLS-1$
+		result.append(enabled);
+		result.append(')');
+		return result.toString();
+	}
+
+} //EventImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/impl/IdentitySpecifierImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/impl/IdentitySpecifierImpl.java
new file mode 100644
index 0000000..4f52acc
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/impl/IdentitySpecifierImpl.java
@@ -0,0 +1,443 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.schema.impl;
+
+import java.math.BigInteger;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.schema.GenerateType;
+import org.eclipse.datatools.modelbase.sql.schema.IdentitySpecifier;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Identity Specifier</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.impl.IdentitySpecifierImpl#getGenerationType <em>Generation Type</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.impl.IdentitySpecifierImpl#getStartValue <em>Start Value</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.impl.IdentitySpecifierImpl#getIncrement <em>Increment</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.impl.IdentitySpecifierImpl#getMinimum <em>Minimum</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.impl.IdentitySpecifierImpl#getMaximum <em>Maximum</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.impl.IdentitySpecifierImpl#isCycleOption <em>Cycle Option</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class IdentitySpecifierImpl extends SQLObjectImpl implements IdentitySpecifier {
+	/**
+	 * The default value of the '{@link #getGenerationType() <em>Generation Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getGenerationType()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final GenerateType GENERATION_TYPE_EDEFAULT = GenerateType.DEFAULT_GENERATED_LITERAL;
+
+	/**
+	 * The cached value of the '{@link #getGenerationType() <em>Generation Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getGenerationType()
+	 * @generated
+	 * @ordered
+	 */
+	protected GenerateType generationType = GENERATION_TYPE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getStartValue() <em>Start Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getStartValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final BigInteger START_VALUE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getStartValue() <em>Start Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getStartValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected BigInteger startValue = START_VALUE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getIncrement() <em>Increment</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getIncrement()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final BigInteger INCREMENT_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getIncrement() <em>Increment</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getIncrement()
+	 * @generated
+	 * @ordered
+	 */
+	protected BigInteger increment = INCREMENT_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMinimum() <em>Minimum</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMinimum()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final BigInteger MINIMUM_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getMinimum() <em>Minimum</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMinimum()
+	 * @generated
+	 * @ordered
+	 */
+	protected BigInteger minimum = MINIMUM_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMaximum() <em>Maximum</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximum()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final BigInteger MAXIMUM_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getMaximum() <em>Maximum</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMaximum()
+	 * @generated
+	 * @ordered
+	 */
+	protected BigInteger maximum = MAXIMUM_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isCycleOption() <em>Cycle Option</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isCycleOption()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean CYCLE_OPTION_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isCycleOption() <em>Cycle Option</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isCycleOption()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean cycleOption = CYCLE_OPTION_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IdentitySpecifierImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLSchemaPackage.Literals.IDENTITY_SPECIFIER;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public GenerateType getGenerationType() {
+		return generationType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setGenerationType(GenerateType newGenerationType) {
+		GenerateType oldGenerationType = generationType;
+		generationType = newGenerationType == null ? GENERATION_TYPE_EDEFAULT : newGenerationType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLSchemaPackage.IDENTITY_SPECIFIER__GENERATION_TYPE, oldGenerationType, generationType));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BigInteger getStartValue() {
+		return startValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setStartValue(BigInteger newStartValue) {
+		BigInteger oldStartValue = startValue;
+		startValue = newStartValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLSchemaPackage.IDENTITY_SPECIFIER__START_VALUE, oldStartValue, startValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BigInteger getIncrement() {
+		return increment;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setIncrement(BigInteger newIncrement) {
+		BigInteger oldIncrement = increment;
+		increment = newIncrement;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLSchemaPackage.IDENTITY_SPECIFIER__INCREMENT, oldIncrement, increment));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BigInteger getMinimum() {
+		return minimum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMinimum(BigInteger newMinimum) {
+		BigInteger oldMinimum = minimum;
+		minimum = newMinimum;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLSchemaPackage.IDENTITY_SPECIFIER__MINIMUM, oldMinimum, minimum));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BigInteger getMaximum() {
+		return maximum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMaximum(BigInteger newMaximum) {
+		BigInteger oldMaximum = maximum;
+		maximum = newMaximum;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLSchemaPackage.IDENTITY_SPECIFIER__MAXIMUM, oldMaximum, maximum));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isCycleOption() {
+		return cycleOption;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCycleOption(boolean newCycleOption) {
+		boolean oldCycleOption = cycleOption;
+		cycleOption = newCycleOption;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLSchemaPackage.IDENTITY_SPECIFIER__CYCLE_OPTION, oldCycleOption, cycleOption));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLSchemaPackage.IDENTITY_SPECIFIER__GENERATION_TYPE:
+				return getGenerationType();
+			case SQLSchemaPackage.IDENTITY_SPECIFIER__START_VALUE:
+				return getStartValue();
+			case SQLSchemaPackage.IDENTITY_SPECIFIER__INCREMENT:
+				return getIncrement();
+			case SQLSchemaPackage.IDENTITY_SPECIFIER__MINIMUM:
+				return getMinimum();
+			case SQLSchemaPackage.IDENTITY_SPECIFIER__MAXIMUM:
+				return getMaximum();
+			case SQLSchemaPackage.IDENTITY_SPECIFIER__CYCLE_OPTION:
+				return isCycleOption() ? Boolean.TRUE : Boolean.FALSE;
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLSchemaPackage.IDENTITY_SPECIFIER__GENERATION_TYPE:
+				setGenerationType((GenerateType)newValue);
+				return;
+			case SQLSchemaPackage.IDENTITY_SPECIFIER__START_VALUE:
+				setStartValue((BigInteger)newValue);
+				return;
+			case SQLSchemaPackage.IDENTITY_SPECIFIER__INCREMENT:
+				setIncrement((BigInteger)newValue);
+				return;
+			case SQLSchemaPackage.IDENTITY_SPECIFIER__MINIMUM:
+				setMinimum((BigInteger)newValue);
+				return;
+			case SQLSchemaPackage.IDENTITY_SPECIFIER__MAXIMUM:
+				setMaximum((BigInteger)newValue);
+				return;
+			case SQLSchemaPackage.IDENTITY_SPECIFIER__CYCLE_OPTION:
+				setCycleOption(((Boolean)newValue).booleanValue());
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLSchemaPackage.IDENTITY_SPECIFIER__GENERATION_TYPE:
+				setGenerationType(GENERATION_TYPE_EDEFAULT);
+				return;
+			case SQLSchemaPackage.IDENTITY_SPECIFIER__START_VALUE:
+				setStartValue(START_VALUE_EDEFAULT);
+				return;
+			case SQLSchemaPackage.IDENTITY_SPECIFIER__INCREMENT:
+				setIncrement(INCREMENT_EDEFAULT);
+				return;
+			case SQLSchemaPackage.IDENTITY_SPECIFIER__MINIMUM:
+				setMinimum(MINIMUM_EDEFAULT);
+				return;
+			case SQLSchemaPackage.IDENTITY_SPECIFIER__MAXIMUM:
+				setMaximum(MAXIMUM_EDEFAULT);
+				return;
+			case SQLSchemaPackage.IDENTITY_SPECIFIER__CYCLE_OPTION:
+				setCycleOption(CYCLE_OPTION_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLSchemaPackage.IDENTITY_SPECIFIER__GENERATION_TYPE:
+				return generationType != GENERATION_TYPE_EDEFAULT;
+			case SQLSchemaPackage.IDENTITY_SPECIFIER__START_VALUE:
+				return START_VALUE_EDEFAULT == null ? startValue != null : !START_VALUE_EDEFAULT.equals(startValue);
+			case SQLSchemaPackage.IDENTITY_SPECIFIER__INCREMENT:
+				return INCREMENT_EDEFAULT == null ? increment != null : !INCREMENT_EDEFAULT.equals(increment);
+			case SQLSchemaPackage.IDENTITY_SPECIFIER__MINIMUM:
+				return MINIMUM_EDEFAULT == null ? minimum != null : !MINIMUM_EDEFAULT.equals(minimum);
+			case SQLSchemaPackage.IDENTITY_SPECIFIER__MAXIMUM:
+				return MAXIMUM_EDEFAULT == null ? maximum != null : !MAXIMUM_EDEFAULT.equals(maximum);
+			case SQLSchemaPackage.IDENTITY_SPECIFIER__CYCLE_OPTION:
+				return cycleOption != CYCLE_OPTION_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (generationType: "); //$NON-NLS-1$
+		result.append(generationType);
+		result.append(", startValue: "); //$NON-NLS-1$
+		result.append(startValue);
+		result.append(", increment: "); //$NON-NLS-1$
+		result.append(increment);
+		result.append(", minimum: "); //$NON-NLS-1$
+		result.append(minimum);
+		result.append(", maximum: "); //$NON-NLS-1$
+		result.append(maximum);
+		result.append(", cycleOption: "); //$NON-NLS-1$
+		result.append(cycleOption);
+		result.append(')');
+		return result.toString();
+	}
+
+} //IdentitySpecifierImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/impl/SQLObjectImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/impl/SQLObjectImpl.java
new file mode 100644
index 0000000..05ced02
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/impl/SQLObjectImpl.java
@@ -0,0 +1,513 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.schema.impl;
+
+import java.io.ObjectStreamException;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.util.Collection;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage;
+
+import org.eclipse.datatools.modelbase.sql.schema.Comment;
+import org.eclipse.datatools.modelbase.sql.schema.Dependency;
+import org.eclipse.datatools.modelbase.sql.schema.ObjectExtension;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EStringToStringMapEntryImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Object</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl#getDependencies <em>Dependencies</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl#getDescription <em>Description</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl#getLabel <em>Label</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl#getComments <em>Comments</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl#getPrivileges <em>Privileges</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated not
+ */
+public abstract class SQLObjectImpl extends ENamedElementImpl implements SQLObject {
+	/**
+	 * The cached value of the '{@link #getDependencies() <em>Dependencies</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDependencies()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList dependencies;
+
+	/**
+	 * The default value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DESCRIPTION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected String description = DESCRIPTION_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getLabel() <em>Label</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLabel()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String LABEL_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getLabel() <em>Label</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLabel()
+	 * @generated
+	 * @ordered
+	 */
+	protected String label = LABEL_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getComments() <em>Comments</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getComments()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList comments;
+
+	/**
+	 * The cached value of the '{@link #getExtensions() <em>Extensions</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getExtensions()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList extensions;
+
+	/**
+	 * The cached value of the '{@link #getPrivileges() <em>Privileges</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPrivileges()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList privileges;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SQLObjectImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLSchemaPackage.Literals.SQL_OBJECT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getDependencies() {
+		if (dependencies == null) {
+			dependencies = new EObjectContainmentEList(Dependency.class, this, SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES);
+		}
+		return dependencies;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getDescription() {
+		return description;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDescription(String newDescription) {
+		String oldDescription = description;
+		description = newDescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLSchemaPackage.SQL_OBJECT__DESCRIPTION, oldDescription, description));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLabel() {
+		return label;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLabel(String newLabel) {
+		String oldLabel = label;
+		label = newLabel;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLSchemaPackage.SQL_OBJECT__LABEL, oldLabel, label));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getComments() {
+		if (comments == null) {
+			comments = new EObjectWithInverseResolvingEList(Comment.class, this, SQLSchemaPackage.SQL_OBJECT__COMMENTS, SQLSchemaPackage.COMMENT__SQL_OBJECT);
+		}
+		return comments;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getExtensions() {
+		if (extensions == null) {
+			extensions = new EObjectContainmentWithInverseEList(ObjectExtension.class, this, SQLSchemaPackage.SQL_OBJECT__EXTENSIONS, SQLSchemaPackage.OBJECT_EXTENSION__SQL_OBJECT);
+		}
+		return extensions;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getPrivileges() {
+		if (privileges == null) {
+			privileges = new EObjectWithInverseResolvingEList(Privilege.class, this, SQLSchemaPackage.SQL_OBJECT__PRIVILEGES, SQLAccessControlPackage.PRIVILEGE__OBJECT);
+		}
+		return privileges;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 */
+	public EAnnotation addEAnnotation(String source) {
+		EAnnotation eAnnotation = this.getEAnnotation(source);
+		if (eAnnotation == null) {
+			eAnnotation = (EAnnotation)EcoreFactory.eINSTANCE.create(EcorePackage.eINSTANCE.getEAnnotation());
+			eAnnotation.setSource(source);
+			this.getEAnnotations().add(eAnnotation);
+		}
+		
+		return eAnnotation;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 */
+	public void addEAnnotationDetail(EAnnotation eAnnotation, String key, String value) {
+		if (eAnnotation != null) {
+			EStringToStringMapEntryImpl mapEntry =
+				(EStringToStringMapEntryImpl)EcoreFactory.eINSTANCE.create(EcorePackage.eINSTANCE.getEStringToStringMapEntry());
+				
+			mapEntry.setTypedKey(key);
+			mapEntry.setTypedValue(value);
+			eAnnotation.getDetails().add(mapEntry);
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 */
+	public String getEAnnotationDetail(EAnnotation eAnnotation, String key) {
+		String value = ""; //$NON-NLS-1$
+		if (eAnnotation != null) {
+			Iterator eAnnotationDetailsIterator = eAnnotation.getDetails().iterator();
+			while(eAnnotationDetailsIterator.hasNext()) {
+				EStringToStringMapEntryImpl currentMapEntry = (EStringToStringMapEntryImpl)eAnnotationDetailsIterator.next();
+				if (currentMapEntry.getTypedKey().equalsIgnoreCase(key)) {
+					value = currentMapEntry.getTypedValue();
+				}
+			}
+		}
+		return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 */
+	public void setAnnotationDetail(EAnnotation eAnnotation, String key, String value) {
+		if (eAnnotation != null) {
+			Iterator eAnnotationDetailsIterator = eAnnotation.getDetails().iterator();
+			while(eAnnotationDetailsIterator.hasNext()) {
+				EStringToStringMapEntryImpl currentMapEntry = (EStringToStringMapEntryImpl)eAnnotationDetailsIterator.next();
+				if (currentMapEntry.getTypedKey().equalsIgnoreCase(key)) {
+					currentMapEntry.setTypedValue(value);
+				}
+			}
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 */
+	public void removeEAnnotationDetail(EAnnotation eAnnotation, String key) {
+		if (eAnnotation != null) {
+	         BasicEList deferredRemove = new BasicEList();
+				Iterator eAnnotationDetailsIterator = eAnnotation.getDetails().iterator();
+				while(eAnnotationDetailsIterator.hasNext()) {
+					EStringToStringMapEntryImpl currentMapEntry = (EStringToStringMapEntryImpl)eAnnotationDetailsIterator.next();
+					if (currentMapEntry.getTypedKey().equalsIgnoreCase(key)) {
+	               deferredRemove.add(currentMapEntry);
+					}
+				}
+	         for (Iterator iter = deferredRemove.iterator(); iter.hasNext();) {
+	            eAnnotation.getDetails().remove(iter.next());
+	         }
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 */
+	public EAnnotation getEAnnotation(String source) {
+		EAnnotation eAnnotation = null;
+		Iterator eAnnotationIterator = this.getEAnnotations().iterator();
+		while(eAnnotationIterator.hasNext()) {
+			EAnnotation currentEAnnotation = (EAnnotation)eAnnotationIterator.next();
+			if (currentEAnnotation.getSource().equalsIgnoreCase(source)) {
+				eAnnotation = currentEAnnotation;
+			}
+		}
+		return eAnnotation;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLSchemaPackage.SQL_OBJECT__COMMENTS:
+				return ((InternalEList)getComments()).basicAdd(otherEnd, msgs);
+			case SQLSchemaPackage.SQL_OBJECT__EXTENSIONS:
+				return ((InternalEList)getExtensions()).basicAdd(otherEnd, msgs);
+			case SQLSchemaPackage.SQL_OBJECT__PRIVILEGES:
+				return ((InternalEList)getPrivileges()).basicAdd(otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES:
+				return ((InternalEList)getDependencies()).basicRemove(otherEnd, msgs);
+			case SQLSchemaPackage.SQL_OBJECT__COMMENTS:
+				return ((InternalEList)getComments()).basicRemove(otherEnd, msgs);
+			case SQLSchemaPackage.SQL_OBJECT__EXTENSIONS:
+				return ((InternalEList)getExtensions()).basicRemove(otherEnd, msgs);
+			case SQLSchemaPackage.SQL_OBJECT__PRIVILEGES:
+				return ((InternalEList)getPrivileges()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES:
+				return getDependencies();
+			case SQLSchemaPackage.SQL_OBJECT__DESCRIPTION:
+				return getDescription();
+			case SQLSchemaPackage.SQL_OBJECT__LABEL:
+				return getLabel();
+			case SQLSchemaPackage.SQL_OBJECT__COMMENTS:
+				return getComments();
+			case SQLSchemaPackage.SQL_OBJECT__EXTENSIONS:
+				return getExtensions();
+			case SQLSchemaPackage.SQL_OBJECT__PRIVILEGES:
+				return getPrivileges();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES:
+				getDependencies().clear();
+				getDependencies().addAll((Collection)newValue);
+				return;
+			case SQLSchemaPackage.SQL_OBJECT__DESCRIPTION:
+				setDescription((String)newValue);
+				return;
+			case SQLSchemaPackage.SQL_OBJECT__LABEL:
+				setLabel((String)newValue);
+				return;
+			case SQLSchemaPackage.SQL_OBJECT__COMMENTS:
+				getComments().clear();
+				getComments().addAll((Collection)newValue);
+				return;
+			case SQLSchemaPackage.SQL_OBJECT__EXTENSIONS:
+				getExtensions().clear();
+				getExtensions().addAll((Collection)newValue);
+				return;
+			case SQLSchemaPackage.SQL_OBJECT__PRIVILEGES:
+				getPrivileges().clear();
+				getPrivileges().addAll((Collection)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES:
+				getDependencies().clear();
+				return;
+			case SQLSchemaPackage.SQL_OBJECT__DESCRIPTION:
+				setDescription(DESCRIPTION_EDEFAULT);
+				return;
+			case SQLSchemaPackage.SQL_OBJECT__LABEL:
+				setLabel(LABEL_EDEFAULT);
+				return;
+			case SQLSchemaPackage.SQL_OBJECT__COMMENTS:
+				getComments().clear();
+				return;
+			case SQLSchemaPackage.SQL_OBJECT__EXTENSIONS:
+				getExtensions().clear();
+				return;
+			case SQLSchemaPackage.SQL_OBJECT__PRIVILEGES:
+				getPrivileges().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES:
+				return dependencies != null && !dependencies.isEmpty();
+			case SQLSchemaPackage.SQL_OBJECT__DESCRIPTION:
+				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
+			case SQLSchemaPackage.SQL_OBJECT__LABEL:
+				return LABEL_EDEFAULT == null ? label != null : !LABEL_EDEFAULT.equals(label);
+			case SQLSchemaPackage.SQL_OBJECT__COMMENTS:
+				return comments != null && !comments.isEmpty();
+			case SQLSchemaPackage.SQL_OBJECT__EXTENSIONS:
+				return extensions != null && !extensions.isEmpty();
+			case SQLSchemaPackage.SQL_OBJECT__PRIVILEGES:
+				return privileges != null && !privileges.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (description: "); //$NON-NLS-1$
+		result.append(description);
+		result.append(", label: "); //$NON-NLS-1$
+		result.append(label);
+		result.append(')');
+		return result.toString();
+	}
+
+} //SQLObjectImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/impl/SQLSchemaFactoryImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/impl/SQLSchemaFactoryImpl.java
new file mode 100644
index 0000000..0cf125e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/impl/SQLSchemaFactoryImpl.java
@@ -0,0 +1,297 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.schema.impl;
+
+import java.util.Date;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.schema.*;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SQLSchemaFactoryImpl extends EFactoryImpl implements SQLSchemaFactory {
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static SQLSchemaFactory init() {
+		try {
+			SQLSchemaFactory theSQLSchemaFactory = (SQLSchemaFactory)EPackage.Registry.INSTANCE.getEFactory("http:///org/eclipse/datatools/modelbase/sql/schema.ecore"); //$NON-NLS-1$ 
+			if (theSQLSchemaFactory != null) {
+				return theSQLSchemaFactory;
+			}
+		}
+		catch (Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new SQLSchemaFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLSchemaFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+			case SQLSchemaPackage.IDENTITY_SPECIFIER: return createIdentitySpecifier();
+			case SQLSchemaPackage.DEPENDENCY: return createDependency();
+			case SQLSchemaPackage.SCHEMA: return createSchema();
+			case SQLSchemaPackage.SEQUENCE: return createSequence();
+			case SQLSchemaPackage.DATABASE: return createDatabase();
+			case SQLSchemaPackage.EVENT: return createEvent();
+			case SQLSchemaPackage.COMMENT: return createComment();
+			case SQLSchemaPackage.CATALOG: return createCatalog();
+			default:
+				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object createFromString(EDataType eDataType, String initialValue) {
+		switch (eDataType.getClassifierID()) {
+			case SQLSchemaPackage.GENERATE_TYPE:
+				return createGenerateTypeFromString(eDataType, initialValue);
+			case SQLSchemaPackage.REFERENTIAL_ACTION_TYPE:
+				return createReferentialActionTypeFromString(eDataType, initialValue);
+			case SQLSchemaPackage.DATE:
+				return createDateFromString(eDataType, initialValue);
+			case SQLSchemaPackage.LIST:
+				return createListFromString(eDataType, initialValue);
+			default:
+				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertToString(EDataType eDataType, Object instanceValue) {
+		switch (eDataType.getClassifierID()) {
+			case SQLSchemaPackage.GENERATE_TYPE:
+				return convertGenerateTypeToString(eDataType, instanceValue);
+			case SQLSchemaPackage.REFERENTIAL_ACTION_TYPE:
+				return convertReferentialActionTypeToString(eDataType, instanceValue);
+			case SQLSchemaPackage.DATE:
+				return convertDateToString(eDataType, instanceValue);
+			case SQLSchemaPackage.LIST:
+				return convertListToString(eDataType, instanceValue);
+			default:
+				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IdentitySpecifier createIdentitySpecifier() {
+		IdentitySpecifierImpl identitySpecifier = new IdentitySpecifierImpl();
+		return identitySpecifier;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Dependency createDependency() {
+		DependencyImpl dependency = new DependencyImpl();
+		return dependency;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Schema createSchema() {
+		SchemaImpl schema = new SchemaImpl();
+		return schema;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Sequence createSequence() {
+		SequenceImpl sequence = new SequenceImpl();
+		return sequence;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Database createDatabase() {
+		DatabaseImpl database = new DatabaseImpl();
+		return database;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Event createEvent() {
+		EventImpl event = new EventImpl();
+		return event;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Comment createComment() {
+		CommentImpl comment = new CommentImpl();
+		return comment;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Catalog createCatalog() {
+		CatalogImpl catalog = new CatalogImpl();
+		return catalog;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public GenerateType createGenerateTypeFromString(EDataType eDataType, String initialValue) {
+		GenerateType result = GenerateType.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertGenerateTypeToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ReferentialActionType createReferentialActionTypeFromString(EDataType eDataType, String initialValue) {
+		ReferentialActionType result = ReferentialActionType.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertReferentialActionTypeToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Date createDateFromString(EDataType eDataType, String initialValue) {
+		return (Date)super.createFromString(eDataType, initialValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertDateToString(EDataType eDataType, Object instanceValue) {
+		return super.convertToString(eDataType, instanceValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public List createListFromString(EDataType eDataType, String initialValue) {
+		return (List)super.createFromString(eDataType, initialValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertListToString(EDataType eDataType, Object instanceValue) {
+		return super.convertToString(eDataType, instanceValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLSchemaPackage getSQLSchemaPackage() {
+		return (SQLSchemaPackage)getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @deprecated
+	 * @generated
+	 */
+	public static SQLSchemaPackage getPackage() {
+		return SQLSchemaPackage.eINSTANCE;
+	}
+
+} //SQLSchemaFactoryImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/impl/SQLSchemaPackageImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/impl/SQLSchemaPackageImpl.java
new file mode 100644
index 0000000..76883ac
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/impl/SQLSchemaPackageImpl.java
@@ -0,0 +1,1067 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.schema.impl;
+
+import java.util.Date;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.impl.SQLAccessControlPackageImpl;
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;
+import org.eclipse.datatools.modelbase.sql.constraints.impl.SQLConstraintsPackageImpl;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl;
+import org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsPackage;
+import org.eclipse.datatools.modelbase.sql.expressions.impl.SQLExpressionsPackageImpl;
+import org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage;
+import org.eclipse.datatools.modelbase.sql.routines.impl.SQLRoutinesPackageImpl;
+import org.eclipse.datatools.modelbase.sql.schema.Catalog;
+import org.eclipse.datatools.modelbase.sql.schema.Comment;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.Dependency;
+import org.eclipse.datatools.modelbase.sql.schema.Event;
+import org.eclipse.datatools.modelbase.sql.schema.GenerateType;
+import org.eclipse.datatools.modelbase.sql.schema.IdentitySpecifier;
+import org.eclipse.datatools.modelbase.sql.schema.ObjectExtension;
+import org.eclipse.datatools.modelbase.sql.schema.ReferentialActionType;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaFactory;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.schema.Sequence;
+import org.eclipse.datatools.modelbase.sql.schema.TypedElement;
+import org.eclipse.datatools.modelbase.sql.statements.SQLStatementsPackage;
+import org.eclipse.datatools.modelbase.sql.statements.impl.SQLStatementsPackageImpl;
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+import org.eclipse.datatools.modelbase.sql.tables.impl.SQLTablesPackageImpl;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.emf.ecore.impl.EcorePackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SQLSchemaPackageImpl extends EPackageImpl implements SQLSchemaPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass identitySpecifierEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass typedElementEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass dependencyEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass schemaEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass sqlObjectEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass sequenceEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass databaseEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass eventEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass commentEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass catalogEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass objectExtensionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum generateTypeEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum referentialActionTypeEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EDataType dateEDataType = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EDataType listEDataType = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with
+	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+	 * package URI value.
+	 * <p>Note: the correct way to create the package is via the static
+	 * factory method {@link #init init()}, which also performs
+	 * initialization of the package, or returns the registered package,
+	 * if one already exists.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private SQLSchemaPackageImpl() {
+		super(eNS_URI, SQLSchemaFactory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this
+	 * model, and for any others upon which it depends.  Simple
+	 * dependencies are satisfied by calling this method on all
+	 * dependent packages before doing anything else.  This method drives
+	 * initialization for interdependent packages directly, in parallel
+	 * with this package, itself.
+	 * <p>Of this package and its interdependencies, all packages which
+	 * have not yet been registered by their URI values are first created
+	 * and registered.  The packages are then initialized in two steps:
+	 * meta-model objects for all of the packages are created before any
+	 * are initialized, since one package's meta-model objects may refer to
+	 * those of another.
+	 * <p>Invocation of this method will not affect any packages that have
+	 * already been initialized.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static SQLSchemaPackage init() {
+		if (isInited) return (SQLSchemaPackage)EPackage.Registry.INSTANCE.getEPackage(SQLSchemaPackage.eNS_URI);
+
+		// Obtain or create and register package
+		SQLSchemaPackageImpl theSQLSchemaPackage = (SQLSchemaPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(eNS_URI) instanceof SQLSchemaPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(eNS_URI) : new SQLSchemaPackageImpl());
+
+		isInited = true;
+
+		// Initialize simple dependencies
+		EcorePackage.eINSTANCE.eClass();
+
+		// Obtain or create and register interdependencies
+		SQLConstraintsPackageImpl theSQLConstraintsPackage = (SQLConstraintsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLConstraintsPackage.eNS_URI) instanceof SQLConstraintsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLConstraintsPackage.eNS_URI) : SQLConstraintsPackage.eINSTANCE);
+		SQLDataTypesPackageImpl theSQLDataTypesPackage = (SQLDataTypesPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLDataTypesPackage.eNS_URI) instanceof SQLDataTypesPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLDataTypesPackage.eNS_URI) : SQLDataTypesPackage.eINSTANCE);
+		SQLExpressionsPackageImpl theSQLExpressionsPackage = (SQLExpressionsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLExpressionsPackage.eNS_URI) instanceof SQLExpressionsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLExpressionsPackage.eNS_URI) : SQLExpressionsPackage.eINSTANCE);
+		SQLRoutinesPackageImpl theSQLRoutinesPackage = (SQLRoutinesPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLRoutinesPackage.eNS_URI) instanceof SQLRoutinesPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLRoutinesPackage.eNS_URI) : SQLRoutinesPackage.eINSTANCE);
+		SQLStatementsPackageImpl theSQLStatementsPackage = (SQLStatementsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLStatementsPackage.eNS_URI) instanceof SQLStatementsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLStatementsPackage.eNS_URI) : SQLStatementsPackage.eINSTANCE);
+		SQLTablesPackageImpl theSQLTablesPackage = (SQLTablesPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLTablesPackage.eNS_URI) instanceof SQLTablesPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLTablesPackage.eNS_URI) : SQLTablesPackage.eINSTANCE);
+		SQLAccessControlPackageImpl theSQLAccessControlPackage = (SQLAccessControlPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLAccessControlPackage.eNS_URI) instanceof SQLAccessControlPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLAccessControlPackage.eNS_URI) : SQLAccessControlPackage.eINSTANCE);
+
+		// Create package meta-data objects
+		theSQLSchemaPackage.createPackageContents();
+		theSQLConstraintsPackage.createPackageContents();
+		theSQLDataTypesPackage.createPackageContents();
+		theSQLExpressionsPackage.createPackageContents();
+		theSQLRoutinesPackage.createPackageContents();
+		theSQLStatementsPackage.createPackageContents();
+		theSQLTablesPackage.createPackageContents();
+		theSQLAccessControlPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theSQLSchemaPackage.initializePackageContents();
+		theSQLConstraintsPackage.initializePackageContents();
+		theSQLDataTypesPackage.initializePackageContents();
+		theSQLExpressionsPackage.initializePackageContents();
+		theSQLRoutinesPackage.initializePackageContents();
+		theSQLStatementsPackage.initializePackageContents();
+		theSQLTablesPackage.initializePackageContents();
+		theSQLAccessControlPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theSQLSchemaPackage.freeze();
+
+		return theSQLSchemaPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getIdentitySpecifier() {
+		return identitySpecifierEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIdentitySpecifier_GenerationType() {
+		return (EAttribute)identitySpecifierEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIdentitySpecifier_StartValue() {
+		return (EAttribute)identitySpecifierEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIdentitySpecifier_Increment() {
+		return (EAttribute)identitySpecifierEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIdentitySpecifier_Minimum() {
+		return (EAttribute)identitySpecifierEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIdentitySpecifier_Maximum() {
+		return (EAttribute)identitySpecifierEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIdentitySpecifier_CycleOption() {
+		return (EAttribute)identitySpecifierEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTypedElement() {
+		return typedElementEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getTypedElement_ContainedType() {
+		return (EReference)typedElementEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getTypedElement_ReferencedType() {
+		return (EReference)typedElementEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getDependency() {
+		return dependencyEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDependency_TargetEnd() {
+		return (EReference)dependencyEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDependency_DependencyType() {
+		return (EAttribute)dependencyEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getSchema() {
+		return schemaEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getSchema_Triggers() {
+		return (EReference)schemaEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getSchema_Indices() {
+		return (EReference)schemaEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getSchema_Tables() {
+		return (EReference)schemaEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getSchema_Sequences() {
+		return (EReference)schemaEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getSchema_Database() {
+		return (EReference)schemaEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getSchema_Catalog() {
+		return (EReference)schemaEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getSchema_Assertions() {
+		return (EReference)schemaEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getSchema_UserDefinedTypes() {
+		return (EReference)schemaEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getSchema_CharSets() {
+		return (EReference)schemaEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getSchema_Routines() {
+		return (EReference)schemaEClass.getEStructuralFeatures().get(9);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getSchema_Owner() {
+		return (EReference)schemaEClass.getEStructuralFeatures().get(10);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getSQLObject() {
+		return sqlObjectEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getSQLObject_Dependencies() {
+		return (EReference)sqlObjectEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getSQLObject_Description() {
+		return (EAttribute)sqlObjectEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getSQLObject_Label() {
+		return (EAttribute)sqlObjectEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getSQLObject_Comments() {
+		return (EReference)sqlObjectEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getSQLObject_Extensions() {
+		return (EReference)sqlObjectEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getSQLObject_Privileges() {
+		return (EReference)sqlObjectEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getSequence() {
+		return sequenceEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getSequence_Identity() {
+		return (EReference)sequenceEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getSequence_Schema() {
+		return (EReference)sequenceEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getDatabase() {
+		return databaseEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDatabase_Vendor() {
+		return (EAttribute)databaseEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDatabase_Version() {
+		return (EAttribute)databaseEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDatabase_Schemas() {
+		return (EReference)databaseEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDatabase_Events() {
+		return (EReference)databaseEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDatabase_Catalogs() {
+		return (EReference)databaseEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDatabase_AuthorizationIds() {
+		return (EReference)databaseEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getEvent() {
+		return eventEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getEvent_For() {
+		return (EAttribute)eventEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getEvent_Condition() {
+		return (EAttribute)eventEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getEvent_Action() {
+		return (EAttribute)eventEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getEvent_Enabled() {
+		return (EAttribute)eventEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getEvent_Database() {
+		return (EReference)eventEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getComment() {
+		return commentEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getComment_Description() {
+		return (EAttribute)commentEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getComment_SQLObject() {
+		return (EReference)commentEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getCatalog() {
+		return catalogEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getCatalog_Database() {
+		return (EReference)catalogEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getCatalog_Schemas() {
+		return (EReference)catalogEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getObjectExtension() {
+		return objectExtensionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getObjectExtension_SQLObject() {
+		return (EReference)objectExtensionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getGenerateType() {
+		return generateTypeEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getReferentialActionType() {
+		return referentialActionTypeEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EDataType getDate() {
+		return dateEDataType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EDataType getList() {
+		return listEDataType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLSchemaFactory getSQLSchemaFactory() {
+		return (SQLSchemaFactory)getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package.  This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated) return;
+		isCreated = true;
+
+		// Create classes and their features
+		identitySpecifierEClass = createEClass(IDENTITY_SPECIFIER);
+		createEAttribute(identitySpecifierEClass, IDENTITY_SPECIFIER__GENERATION_TYPE);
+		createEAttribute(identitySpecifierEClass, IDENTITY_SPECIFIER__START_VALUE);
+		createEAttribute(identitySpecifierEClass, IDENTITY_SPECIFIER__INCREMENT);
+		createEAttribute(identitySpecifierEClass, IDENTITY_SPECIFIER__MINIMUM);
+		createEAttribute(identitySpecifierEClass, IDENTITY_SPECIFIER__MAXIMUM);
+		createEAttribute(identitySpecifierEClass, IDENTITY_SPECIFIER__CYCLE_OPTION);
+
+		typedElementEClass = createEClass(TYPED_ELEMENT);
+		createEReference(typedElementEClass, TYPED_ELEMENT__CONTAINED_TYPE);
+		createEReference(typedElementEClass, TYPED_ELEMENT__REFERENCED_TYPE);
+
+		dependencyEClass = createEClass(DEPENDENCY);
+		createEReference(dependencyEClass, DEPENDENCY__TARGET_END);
+		createEAttribute(dependencyEClass, DEPENDENCY__DEPENDENCY_TYPE);
+
+		schemaEClass = createEClass(SCHEMA);
+		createEReference(schemaEClass, SCHEMA__TRIGGERS);
+		createEReference(schemaEClass, SCHEMA__INDICES);
+		createEReference(schemaEClass, SCHEMA__TABLES);
+		createEReference(schemaEClass, SCHEMA__SEQUENCES);
+		createEReference(schemaEClass, SCHEMA__DATABASE);
+		createEReference(schemaEClass, SCHEMA__CATALOG);
+		createEReference(schemaEClass, SCHEMA__ASSERTIONS);
+		createEReference(schemaEClass, SCHEMA__USER_DEFINED_TYPES);
+		createEReference(schemaEClass, SCHEMA__CHAR_SETS);
+		createEReference(schemaEClass, SCHEMA__ROUTINES);
+		createEReference(schemaEClass, SCHEMA__OWNER);
+
+		sqlObjectEClass = createEClass(SQL_OBJECT);
+		createEReference(sqlObjectEClass, SQL_OBJECT__DEPENDENCIES);
+		createEAttribute(sqlObjectEClass, SQL_OBJECT__DESCRIPTION);
+		createEAttribute(sqlObjectEClass, SQL_OBJECT__LABEL);
+		createEReference(sqlObjectEClass, SQL_OBJECT__COMMENTS);
+		createEReference(sqlObjectEClass, SQL_OBJECT__EXTENSIONS);
+		createEReference(sqlObjectEClass, SQL_OBJECT__PRIVILEGES);
+
+		sequenceEClass = createEClass(SEQUENCE);
+		createEReference(sequenceEClass, SEQUENCE__IDENTITY);
+		createEReference(sequenceEClass, SEQUENCE__SCHEMA);
+
+		databaseEClass = createEClass(DATABASE);
+		createEAttribute(databaseEClass, DATABASE__VENDOR);
+		createEAttribute(databaseEClass, DATABASE__VERSION);
+		createEReference(databaseEClass, DATABASE__SCHEMAS);
+		createEReference(databaseEClass, DATABASE__EVENTS);
+		createEReference(databaseEClass, DATABASE__CATALOGS);
+		createEReference(databaseEClass, DATABASE__AUTHORIZATION_IDS);
+
+		eventEClass = createEClass(EVENT);
+		createEAttribute(eventEClass, EVENT__FOR);
+		createEAttribute(eventEClass, EVENT__CONDITION);
+		createEAttribute(eventEClass, EVENT__ACTION);
+		createEAttribute(eventEClass, EVENT__ENABLED);
+		createEReference(eventEClass, EVENT__DATABASE);
+
+		commentEClass = createEClass(COMMENT);
+		createEAttribute(commentEClass, COMMENT__DESCRIPTION);
+		createEReference(commentEClass, COMMENT__SQL_OBJECT);
+
+		catalogEClass = createEClass(CATALOG);
+		createEReference(catalogEClass, CATALOG__DATABASE);
+		createEReference(catalogEClass, CATALOG__SCHEMAS);
+
+		objectExtensionEClass = createEClass(OBJECT_EXTENSION);
+		createEReference(objectExtensionEClass, OBJECT_EXTENSION__SQL_OBJECT);
+
+		// Create enums
+		generateTypeEEnum = createEEnum(GENERATE_TYPE);
+		referentialActionTypeEEnum = createEEnum(REFERENTIAL_ACTION_TYPE);
+
+		// Create data types
+		dateEDataType = createEDataType(DATE);
+		listEDataType = createEDataType(LIST);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model.  This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized) return;
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Obtain other dependent packages
+		EcorePackage theEcorePackage = (EcorePackage)EPackage.Registry.INSTANCE.getEPackage(EcorePackage.eNS_URI);
+		SQLDataTypesPackage theSQLDataTypesPackage = (SQLDataTypesPackage)EPackage.Registry.INSTANCE.getEPackage(SQLDataTypesPackage.eNS_URI);
+		SQLTablesPackage theSQLTablesPackage = (SQLTablesPackage)EPackage.Registry.INSTANCE.getEPackage(SQLTablesPackage.eNS_URI);
+		SQLConstraintsPackage theSQLConstraintsPackage = (SQLConstraintsPackage)EPackage.Registry.INSTANCE.getEPackage(SQLConstraintsPackage.eNS_URI);
+		SQLRoutinesPackage theSQLRoutinesPackage = (SQLRoutinesPackage)EPackage.Registry.INSTANCE.getEPackage(SQLRoutinesPackage.eNS_URI);
+		SQLAccessControlPackage theSQLAccessControlPackage = (SQLAccessControlPackage)EPackage.Registry.INSTANCE.getEPackage(SQLAccessControlPackage.eNS_URI);
+
+		// Add supertypes to classes
+		identitySpecifierEClass.getESuperTypes().add(this.getSQLObject());
+		typedElementEClass.getESuperTypes().add(this.getSQLObject());
+		dependencyEClass.getESuperTypes().add(this.getSQLObject());
+		schemaEClass.getESuperTypes().add(this.getSQLObject());
+		sqlObjectEClass.getESuperTypes().add(theEcorePackage.getENamedElement());
+		sequenceEClass.getESuperTypes().add(this.getTypedElement());
+		databaseEClass.getESuperTypes().add(this.getSQLObject());
+		eventEClass.getESuperTypes().add(this.getSQLObject());
+		catalogEClass.getESuperTypes().add(this.getSQLObject());
+
+		// Initialize classes and features; add operations and parameters
+		initEClass(identitySpecifierEClass, IdentitySpecifier.class, "IdentitySpecifier", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getIdentitySpecifier_GenerationType(), this.getGenerateType(), "generationType", null, 0, 1, IdentitySpecifier.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getIdentitySpecifier_StartValue(), theEcorePackage.getEBigInteger(), "startValue", null, 0, 1, IdentitySpecifier.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getIdentitySpecifier_Increment(), theEcorePackage.getEBigInteger(), "increment", null, 0, 1, IdentitySpecifier.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getIdentitySpecifier_Minimum(), theEcorePackage.getEBigInteger(), "minimum", null, 0, 1, IdentitySpecifier.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getIdentitySpecifier_Maximum(), theEcorePackage.getEBigInteger(), "maximum", null, 0, 1, IdentitySpecifier.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getIdentitySpecifier_CycleOption(), ecorePackage.getEBoolean(), "cycleOption", null, 0, 1, IdentitySpecifier.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(typedElementEClass, TypedElement.class, "TypedElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEReference(getTypedElement_ContainedType(), theSQLDataTypesPackage.getSQLDataType(), null, "containedType", null, 0, 1, TypedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getTypedElement_ReferencedType(), theSQLDataTypesPackage.getUserDefinedType(), null, "referencedType", null, 0, 1, TypedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		EOperation op = addEOperation(typedElementEClass, null, "setDataType"); //$NON-NLS-1$
+		addEParameter(op, theSQLDataTypesPackage.getDataType(), "newType", 0, 1); //$NON-NLS-1$
+
+		addEOperation(typedElementEClass, theSQLDataTypesPackage.getDataType(), "getDataType", 0, 1); //$NON-NLS-1$
+
+		initEClass(dependencyEClass, Dependency.class, "Dependency", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEReference(getDependency_TargetEnd(), theEcorePackage.getEObject(), null, "targetEnd", null, 1, 1, Dependency.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getDependency_DependencyType(), ecorePackage.getEString(), "dependencyType", null, 0, 1, Dependency.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(schemaEClass, Schema.class, "Schema", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEReference(getSchema_Triggers(), theSQLTablesPackage.getTrigger(), theSQLTablesPackage.getTrigger_Schema(), "triggers", null, 0, -1, Schema.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getSchema_Indices(), theSQLConstraintsPackage.getIndex(), theSQLConstraintsPackage.getIndex_Schema(), "indices", null, 0, -1, Schema.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getSchema_Tables(), theSQLTablesPackage.getTable(), theSQLTablesPackage.getTable_Schema(), "tables", null, 0, -1, Schema.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getSchema_Sequences(), this.getSequence(), this.getSequence_Schema(), "sequences", null, 0, -1, Schema.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getSchema_Database(), this.getDatabase(), this.getDatabase_Schemas(), "database", null, 1, 1, Schema.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getSchema_Catalog(), this.getCatalog(), this.getCatalog_Schemas(), "Catalog", null, 1, 1, Schema.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getSchema_Assertions(), theSQLConstraintsPackage.getAssertion(), theSQLConstraintsPackage.getAssertion_Schema(), "assertions", null, 0, -1, Schema.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getSchema_UserDefinedTypes(), theSQLDataTypesPackage.getUserDefinedType(), theSQLDataTypesPackage.getUserDefinedType_Schema(), "userDefinedTypes", null, 0, -1, Schema.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getSchema_CharSets(), theSQLDataTypesPackage.getCharacterSet(), theSQLDataTypesPackage.getCharacterSet_Schema(), "charSets", null, 0, -1, Schema.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getSchema_Routines(), theSQLRoutinesPackage.getRoutine(), theSQLRoutinesPackage.getRoutine_Schema(), "routines", null, 0, -1, Schema.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getSchema_Owner(), theSQLAccessControlPackage.getAuthorizationIdentifier(), theSQLAccessControlPackage.getAuthorizationIdentifier_OwnedSchema(), "owner", null, 1, 1, Schema.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(sqlObjectEClass, SQLObject.class, "SQLObject", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEReference(getSQLObject_Dependencies(), this.getDependency(), null, "dependencies", null, 0, -1, SQLObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getSQLObject_Description(), ecorePackage.getEString(), "description", null, 0, 1, SQLObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getSQLObject_Label(), ecorePackage.getEString(), "label", null, 0, 1, SQLObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getSQLObject_Comments(), this.getComment(), this.getComment_SQLObject(), "comments", null, 0, -1, SQLObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getSQLObject_Extensions(), this.getObjectExtension(), this.getObjectExtension_SQLObject(), "extensions", null, 0, -1, SQLObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getSQLObject_Privileges(), theSQLAccessControlPackage.getPrivilege(), theSQLAccessControlPackage.getPrivilege_Object(), "privileges", null, 0, -1, SQLObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		op = addEOperation(sqlObjectEClass, theEcorePackage.getEAnnotation(), "addEAnnotation", 0, 1); //$NON-NLS-1$
+		addEParameter(op, ecorePackage.getEString(), "source", 0, 1); //$NON-NLS-1$
+
+		op = addEOperation(sqlObjectEClass, null, "addEAnnotationDetail"); //$NON-NLS-1$
+		addEParameter(op, theEcorePackage.getEAnnotation(), "eAnnotation", 0, 1); //$NON-NLS-1$
+		addEParameter(op, ecorePackage.getEString(), "key", 0, 1); //$NON-NLS-1$
+		addEParameter(op, ecorePackage.getEString(), "value", 0, 1); //$NON-NLS-1$
+
+		op = addEOperation(sqlObjectEClass, ecorePackage.getEString(), "getEAnnotationDetail", 0, 1); //$NON-NLS-1$
+		addEParameter(op, theEcorePackage.getEAnnotation(), "eAnnotation", 0, 1); //$NON-NLS-1$
+		addEParameter(op, ecorePackage.getEString(), "key", 0, 1); //$NON-NLS-1$
+
+		op = addEOperation(sqlObjectEClass, null, "setAnnotationDetail"); //$NON-NLS-1$
+		addEParameter(op, theEcorePackage.getEAnnotation(), "eAnnotation", 0, 1); //$NON-NLS-1$
+		addEParameter(op, ecorePackage.getEString(), "key", 0, 1); //$NON-NLS-1$
+		addEParameter(op, ecorePackage.getEString(), "value", 0, 1); //$NON-NLS-1$
+
+		op = addEOperation(sqlObjectEClass, null, "removeEAnnotationDetail"); //$NON-NLS-1$
+		addEParameter(op, theEcorePackage.getEAnnotation(), "eAnnotation", 0, 1); //$NON-NLS-1$
+		addEParameter(op, ecorePackage.getEString(), "key", 0, 1); //$NON-NLS-1$
+
+		op = addEOperation(sqlObjectEClass, theEcorePackage.getEAnnotation(), "getEAnnotation", 0, 1); //$NON-NLS-1$
+		addEParameter(op, ecorePackage.getEString(), "source", 0, 1); //$NON-NLS-1$
+
+		initEClass(sequenceEClass, Sequence.class, "Sequence", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEReference(getSequence_Identity(), this.getIdentitySpecifier(), null, "identity", null, 1, 1, Sequence.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getSequence_Schema(), this.getSchema(), this.getSchema_Sequences(), "schema", null, 1, 1, Sequence.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(databaseEClass, Database.class, "Database", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getDatabase_Vendor(), ecorePackage.getEString(), "vendor", null, 0, 1, Database.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getDatabase_Version(), ecorePackage.getEString(), "version", null, 0, 1, Database.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getDatabase_Schemas(), this.getSchema(), this.getSchema_Database(), "schemas", null, 0, -1, Database.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getDatabase_Events(), this.getEvent(), this.getEvent_Database(), "events", null, 0, -1, Database.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getDatabase_Catalogs(), this.getCatalog(), this.getCatalog_Database(), "catalogs", null, 0, -1, Database.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getDatabase_AuthorizationIds(), theSQLAccessControlPackage.getAuthorizationIdentifier(), theSQLAccessControlPackage.getAuthorizationIdentifier_Database(), "authorizationIds", null, 0, -1, Database.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		addEOperation(databaseEClass, this.getList(), "getUserDefinedTypes", 0, 1); //$NON-NLS-1$
+
+		initEClass(eventEClass, Event.class, "Event", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getEvent_For(), ecorePackage.getEString(), "for", null, 0, 1, Event.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getEvent_Condition(), ecorePackage.getEString(), "condition", null, 0, 1, Event.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getEvent_Action(), ecorePackage.getEString(), "action", null, 0, 1, Event.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getEvent_Enabled(), ecorePackage.getEBoolean(), "enabled", null, 0, 1, Event.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getEvent_Database(), this.getDatabase(), this.getDatabase_Events(), "Database", null, 1, 1, Event.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(commentEClass, Comment.class, "Comment", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getComment_Description(), ecorePackage.getEString(), "description", null, 0, 1, Comment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getComment_SQLObject(), this.getSQLObject(), this.getSQLObject_Comments(), "SQLObject", null, 1, 1, Comment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(catalogEClass, Catalog.class, "Catalog", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEReference(getCatalog_Database(), this.getDatabase(), this.getDatabase_Catalogs(), "Database", null, 1, 1, Catalog.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getCatalog_Schemas(), this.getSchema(), this.getSchema_Catalog(), "schemas", null, 0, -1, Catalog.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(objectExtensionEClass, ObjectExtension.class, "ObjectExtension", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEReference(getObjectExtension_SQLObject(), this.getSQLObject(), this.getSQLObject_Extensions(), "SQLObject", null, 1, 1, ObjectExtension.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		// Initialize enums and add enum literals
+		initEEnum(generateTypeEEnum, GenerateType.class, "GenerateType"); //$NON-NLS-1$
+		addEEnumLiteral(generateTypeEEnum, GenerateType.DEFAULT_GENERATED_LITERAL);
+		addEEnumLiteral(generateTypeEEnum, GenerateType.ALWAYS_GENERATED_LITERAL);
+
+		initEEnum(referentialActionTypeEEnum, ReferentialActionType.class, "ReferentialActionType"); //$NON-NLS-1$
+		addEEnumLiteral(referentialActionTypeEEnum, ReferentialActionType.NO_ACTION_LITERAL);
+		addEEnumLiteral(referentialActionTypeEEnum, ReferentialActionType.RESTRICT_LITERAL);
+		addEEnumLiteral(referentialActionTypeEEnum, ReferentialActionType.CASCADE_LITERAL);
+		addEEnumLiteral(referentialActionTypeEEnum, ReferentialActionType.SET_NULL_LITERAL);
+		addEEnumLiteral(referentialActionTypeEEnum, ReferentialActionType.SET_DEFAULT_LITERAL);
+
+		// Initialize data types
+		initEDataType(dateEDataType, Date.class, "Date", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEDataType(listEDataType, List.class, "List", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+		// Create resource
+		createResource(eNS_URI);
+	}
+
+} //SQLSchemaPackageImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/impl/SchemaImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/impl/SchemaImpl.java
new file mode 100644
index 0000000..850fb67
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/impl/SchemaImpl.java
@@ -0,0 +1,750 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.schema.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage;
+import org.eclipse.datatools.modelbase.sql.constraints.Assertion;
+import org.eclipse.datatools.modelbase.sql.constraints.Index;
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;
+import org.eclipse.datatools.modelbase.sql.datatypes.CharacterSet;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType;
+import org.eclipse.datatools.modelbase.sql.routines.BuiltInFunction;
+import org.eclipse.datatools.modelbase.sql.routines.Procedure;
+import org.eclipse.datatools.modelbase.sql.routines.Routine;
+import org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Catalog;
+import org.eclipse.datatools.modelbase.sql.routines.UserDefinedFunction;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.schema.Sequence;
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.datatools.modelbase.sql.tables.Trigger;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Schema</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.impl.SchemaImpl#getTriggers <em>Triggers</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.impl.SchemaImpl#getIndices <em>Indices</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.impl.SchemaImpl#getTables <em>Tables</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.impl.SchemaImpl#getSequences <em>Sequences</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.impl.SchemaImpl#getDatabase <em>Database</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.impl.SchemaImpl#getCatalog <em>Catalog</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.impl.SchemaImpl#getAssertions <em>Assertions</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.impl.SchemaImpl#getUserDefinedTypes <em>User Defined Types</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.impl.SchemaImpl#getCharSets <em>Char Sets</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.impl.SchemaImpl#getRoutines <em>Routines</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.impl.SchemaImpl#getOwner <em>Owner</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SchemaImpl extends SQLObjectImpl implements Schema {
+	/**
+	 * The cached value of the '{@link #getTriggers() <em>Triggers</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTriggers()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList triggers;
+
+	/**
+	 * The cached value of the '{@link #getIndices() <em>Indices</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getIndices()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList indices;
+
+	/**
+	 * The cached value of the '{@link #getTables() <em>Tables</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTables()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList tables;
+
+	/**
+	 * The cached value of the '{@link #getSequences() <em>Sequences</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSequences()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList sequences;
+
+	/**
+	 * The cached value of the '{@link #getDatabase() <em>Database</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDatabase()
+	 * @generated
+	 * @ordered
+	 */
+	protected Database database;
+
+	/**
+	 * The cached value of the '{@link #getCatalog() <em>Catalog</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCatalog()
+	 * @generated
+	 * @ordered
+	 */
+	protected Catalog catalog;
+
+	/**
+	 * The cached value of the '{@link #getAssertions() <em>Assertions</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAssertions()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList assertions;
+
+	/**
+	 * The cached value of the '{@link #getUserDefinedTypes() <em>User Defined Types</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getUserDefinedTypes()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList userDefinedTypes;
+
+	/**
+	 * The cached value of the '{@link #getCharSets() <em>Char Sets</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCharSets()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList charSets;
+
+	/**
+	 * The cached value of the '{@link #getRoutines() <em>Routines</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRoutines()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList routines;
+
+	/**
+	 * The cached value of the '{@link #getOwner() <em>Owner</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getOwner()
+	 * @generated
+	 * @ordered
+	 */
+	protected AuthorizationIdentifier owner;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SchemaImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLSchemaPackage.Literals.SCHEMA;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getTriggers() {
+		if (triggers == null) {
+			triggers = new EObjectWithInverseResolvingEList(Trigger.class, this, SQLSchemaPackage.SCHEMA__TRIGGERS, SQLTablesPackage.TRIGGER__SCHEMA);
+		}
+		return triggers;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getIndices() {
+		if (indices == null) {
+			indices = new EObjectWithInverseResolvingEList(Index.class, this, SQLSchemaPackage.SCHEMA__INDICES, SQLConstraintsPackage.INDEX__SCHEMA);
+		}
+		return indices;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getTables() {
+		if (tables == null) {
+			tables = new EObjectWithInverseResolvingEList(Table.class, this, SQLSchemaPackage.SCHEMA__TABLES, SQLTablesPackage.TABLE__SCHEMA);
+		}
+		return tables;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getSequences() {
+		if (sequences == null) {
+			sequences = new EObjectWithInverseResolvingEList(Sequence.class, this, SQLSchemaPackage.SCHEMA__SEQUENCES, SQLSchemaPackage.SEQUENCE__SCHEMA);
+		}
+		return sequences;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Database getDatabase() {
+		if (database != null && database.eIsProxy()) {
+			InternalEObject oldDatabase = (InternalEObject)database;
+			database = (Database)eResolveProxy(oldDatabase);
+			if (database != oldDatabase) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SQLSchemaPackage.SCHEMA__DATABASE, oldDatabase, database));
+			}
+		}
+		return database;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Database basicGetDatabase() {
+		return database;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetDatabase(Database newDatabase, NotificationChain msgs) {
+		Database oldDatabase = database;
+		database = newDatabase;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLSchemaPackage.SCHEMA__DATABASE, oldDatabase, newDatabase);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDatabase(Database newDatabase) {
+		if (newDatabase != database) {
+			NotificationChain msgs = null;
+			if (database != null)
+				msgs = ((InternalEObject)database).eInverseRemove(this, SQLSchemaPackage.DATABASE__SCHEMAS, Database.class, msgs);
+			if (newDatabase != null)
+				msgs = ((InternalEObject)newDatabase).eInverseAdd(this, SQLSchemaPackage.DATABASE__SCHEMAS, Database.class, msgs);
+			msgs = basicSetDatabase(newDatabase, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLSchemaPackage.SCHEMA__DATABASE, newDatabase, newDatabase));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Catalog getCatalog() {
+		if (catalog != null && catalog.eIsProxy()) {
+			InternalEObject oldCatalog = (InternalEObject)catalog;
+			catalog = (Catalog)eResolveProxy(oldCatalog);
+			if (catalog != oldCatalog) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SQLSchemaPackage.SCHEMA__CATALOG, oldCatalog, catalog));
+			}
+		}
+		return catalog;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Catalog basicGetCatalog() {
+		return catalog;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetCatalog(Catalog newCatalog, NotificationChain msgs) {
+		Catalog oldCatalog = catalog;
+		catalog = newCatalog;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLSchemaPackage.SCHEMA__CATALOG, oldCatalog, newCatalog);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCatalog(Catalog newCatalog) {
+		if (newCatalog != catalog) {
+			NotificationChain msgs = null;
+			if (catalog != null)
+				msgs = ((InternalEObject)catalog).eInverseRemove(this, SQLSchemaPackage.CATALOG__SCHEMAS, Catalog.class, msgs);
+			if (newCatalog != null)
+				msgs = ((InternalEObject)newCatalog).eInverseAdd(this, SQLSchemaPackage.CATALOG__SCHEMAS, Catalog.class, msgs);
+			msgs = basicSetCatalog(newCatalog, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLSchemaPackage.SCHEMA__CATALOG, newCatalog, newCatalog));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getAssertions() {
+		if (assertions == null) {
+			assertions = new EObjectWithInverseResolvingEList(Assertion.class, this, SQLSchemaPackage.SCHEMA__ASSERTIONS, SQLConstraintsPackage.ASSERTION__SCHEMA);
+		}
+		return assertions;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getUserDefinedTypes() {
+		if (userDefinedTypes == null) {
+			userDefinedTypes = new EObjectWithInverseResolvingEList(UserDefinedType.class, this, SQLSchemaPackage.SCHEMA__USER_DEFINED_TYPES, SQLDataTypesPackage.USER_DEFINED_TYPE__SCHEMA);
+		}
+		return userDefinedTypes;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getCharSets() {
+		if (charSets == null) {
+			charSets = new EObjectWithInverseResolvingEList(CharacterSet.class, this, SQLSchemaPackage.SCHEMA__CHAR_SETS, SQLDataTypesPackage.CHARACTER_SET__SCHEMA);
+		}
+		return charSets;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getRoutines() {
+		if (routines == null) {
+			routines = new EObjectWithInverseResolvingEList(Routine.class, this, SQLSchemaPackage.SCHEMA__ROUTINES, SQLRoutinesPackage.ROUTINE__SCHEMA);
+		}
+		return routines;
+	}
+
+   /**
+    * Get a list of procedures belonging to this schema.
+    */
+   public EList getProcedures() {
+      return getSpecializedRoutines(Procedure.class);
+   }
+
+   /**
+    * Get a list of user-defined functions belonging to this schema.
+    */
+   public EList getUDFs() {
+      return getSpecializedRoutines(UserDefinedFunction.class);
+   }
+
+   /**
+    * Get a list of built-in (aka system) functions belonging to this schema.
+    */
+   public EList getBuiltInFunctions() {
+      return getSpecializedRoutines(BuiltInFunction.class);
+   }
+
+   /**
+    * Get a list of Routine subclasses that match the specified argument.
+    * @param aDesiredClass any subclass of Routine
+    * @return a list of Routine subclasses that match the specified argument.
+    */
+   protected EList getSpecializedRoutines(Class aDesiredClass) {
+      EList specializedRoutines = new BasicEList();
+      EList routines = getRoutines();
+      for (int i = 0, routineCnt = routines.size(); i < routineCnt; i++) {
+         Object obj = routines.get(i);
+         if (aDesiredClass.isAssignableFrom(obj.getClass())) {
+            specializedRoutines.add(obj);
+         }
+      }
+      return specializedRoutines;
+   }
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AuthorizationIdentifier getOwner() {
+		if (owner != null && owner.eIsProxy()) {
+			InternalEObject oldOwner = (InternalEObject)owner;
+			owner = (AuthorizationIdentifier)eResolveProxy(oldOwner);
+			if (owner != oldOwner) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SQLSchemaPackage.SCHEMA__OWNER, oldOwner, owner));
+			}
+		}
+		return owner;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AuthorizationIdentifier basicGetOwner() {
+		return owner;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetOwner(AuthorizationIdentifier newOwner, NotificationChain msgs) {
+		AuthorizationIdentifier oldOwner = owner;
+		owner = newOwner;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLSchemaPackage.SCHEMA__OWNER, oldOwner, newOwner);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setOwner(AuthorizationIdentifier newOwner) {
+		if (newOwner != owner) {
+			NotificationChain msgs = null;
+			if (owner != null)
+				msgs = ((InternalEObject)owner).eInverseRemove(this, SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__OWNED_SCHEMA, AuthorizationIdentifier.class, msgs);
+			if (newOwner != null)
+				msgs = ((InternalEObject)newOwner).eInverseAdd(this, SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__OWNED_SCHEMA, AuthorizationIdentifier.class, msgs);
+			msgs = basicSetOwner(newOwner, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLSchemaPackage.SCHEMA__OWNER, newOwner, newOwner));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLSchemaPackage.SCHEMA__TRIGGERS:
+				return ((InternalEList)getTriggers()).basicAdd(otherEnd, msgs);
+			case SQLSchemaPackage.SCHEMA__INDICES:
+				return ((InternalEList)getIndices()).basicAdd(otherEnd, msgs);
+			case SQLSchemaPackage.SCHEMA__TABLES:
+				return ((InternalEList)getTables()).basicAdd(otherEnd, msgs);
+			case SQLSchemaPackage.SCHEMA__SEQUENCES:
+				return ((InternalEList)getSequences()).basicAdd(otherEnd, msgs);
+			case SQLSchemaPackage.SCHEMA__DATABASE:
+				if (database != null)
+					msgs = ((InternalEObject)database).eInverseRemove(this, SQLSchemaPackage.DATABASE__SCHEMAS, Database.class, msgs);
+				return basicSetDatabase((Database)otherEnd, msgs);
+			case SQLSchemaPackage.SCHEMA__CATALOG:
+				if (catalog != null)
+					msgs = ((InternalEObject)catalog).eInverseRemove(this, SQLSchemaPackage.CATALOG__SCHEMAS, Catalog.class, msgs);
+				return basicSetCatalog((Catalog)otherEnd, msgs);
+			case SQLSchemaPackage.SCHEMA__ASSERTIONS:
+				return ((InternalEList)getAssertions()).basicAdd(otherEnd, msgs);
+			case SQLSchemaPackage.SCHEMA__USER_DEFINED_TYPES:
+				return ((InternalEList)getUserDefinedTypes()).basicAdd(otherEnd, msgs);
+			case SQLSchemaPackage.SCHEMA__CHAR_SETS:
+				return ((InternalEList)getCharSets()).basicAdd(otherEnd, msgs);
+			case SQLSchemaPackage.SCHEMA__ROUTINES:
+				return ((InternalEList)getRoutines()).basicAdd(otherEnd, msgs);
+			case SQLSchemaPackage.SCHEMA__OWNER:
+				if (owner != null)
+					msgs = ((InternalEObject)owner).eInverseRemove(this, SQLAccessControlPackage.AUTHORIZATION_IDENTIFIER__OWNED_SCHEMA, AuthorizationIdentifier.class, msgs);
+				return basicSetOwner((AuthorizationIdentifier)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLSchemaPackage.SCHEMA__TRIGGERS:
+				return ((InternalEList)getTriggers()).basicRemove(otherEnd, msgs);
+			case SQLSchemaPackage.SCHEMA__INDICES:
+				return ((InternalEList)getIndices()).basicRemove(otherEnd, msgs);
+			case SQLSchemaPackage.SCHEMA__TABLES:
+				return ((InternalEList)getTables()).basicRemove(otherEnd, msgs);
+			case SQLSchemaPackage.SCHEMA__SEQUENCES:
+				return ((InternalEList)getSequences()).basicRemove(otherEnd, msgs);
+			case SQLSchemaPackage.SCHEMA__DATABASE:
+				return basicSetDatabase(null, msgs);
+			case SQLSchemaPackage.SCHEMA__CATALOG:
+				return basicSetCatalog(null, msgs);
+			case SQLSchemaPackage.SCHEMA__ASSERTIONS:
+				return ((InternalEList)getAssertions()).basicRemove(otherEnd, msgs);
+			case SQLSchemaPackage.SCHEMA__USER_DEFINED_TYPES:
+				return ((InternalEList)getUserDefinedTypes()).basicRemove(otherEnd, msgs);
+			case SQLSchemaPackage.SCHEMA__CHAR_SETS:
+				return ((InternalEList)getCharSets()).basicRemove(otherEnd, msgs);
+			case SQLSchemaPackage.SCHEMA__ROUTINES:
+				return ((InternalEList)getRoutines()).basicRemove(otherEnd, msgs);
+			case SQLSchemaPackage.SCHEMA__OWNER:
+				return basicSetOwner(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLSchemaPackage.SCHEMA__TRIGGERS:
+				return getTriggers();
+			case SQLSchemaPackage.SCHEMA__INDICES:
+				return getIndices();
+			case SQLSchemaPackage.SCHEMA__TABLES:
+				return getTables();
+			case SQLSchemaPackage.SCHEMA__SEQUENCES:
+				return getSequences();
+			case SQLSchemaPackage.SCHEMA__DATABASE:
+				if (resolve) return getDatabase();
+				return basicGetDatabase();
+			case SQLSchemaPackage.SCHEMA__CATALOG:
+				if (resolve) return getCatalog();
+				return basicGetCatalog();
+			case SQLSchemaPackage.SCHEMA__ASSERTIONS:
+				return getAssertions();
+			case SQLSchemaPackage.SCHEMA__USER_DEFINED_TYPES:
+				return getUserDefinedTypes();
+			case SQLSchemaPackage.SCHEMA__CHAR_SETS:
+				return getCharSets();
+			case SQLSchemaPackage.SCHEMA__ROUTINES:
+				return getRoutines();
+			case SQLSchemaPackage.SCHEMA__OWNER:
+				if (resolve) return getOwner();
+				return basicGetOwner();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLSchemaPackage.SCHEMA__TRIGGERS:
+				getTriggers().clear();
+				getTriggers().addAll((Collection)newValue);
+				return;
+			case SQLSchemaPackage.SCHEMA__INDICES:
+				getIndices().clear();
+				getIndices().addAll((Collection)newValue);
+				return;
+			case SQLSchemaPackage.SCHEMA__TABLES:
+				getTables().clear();
+				getTables().addAll((Collection)newValue);
+				return;
+			case SQLSchemaPackage.SCHEMA__SEQUENCES:
+				getSequences().clear();
+				getSequences().addAll((Collection)newValue);
+				return;
+			case SQLSchemaPackage.SCHEMA__DATABASE:
+				setDatabase((Database)newValue);
+				return;
+			case SQLSchemaPackage.SCHEMA__CATALOG:
+				setCatalog((Catalog)newValue);
+				return;
+			case SQLSchemaPackage.SCHEMA__ASSERTIONS:
+				getAssertions().clear();
+				getAssertions().addAll((Collection)newValue);
+				return;
+			case SQLSchemaPackage.SCHEMA__USER_DEFINED_TYPES:
+				getUserDefinedTypes().clear();
+				getUserDefinedTypes().addAll((Collection)newValue);
+				return;
+			case SQLSchemaPackage.SCHEMA__CHAR_SETS:
+				getCharSets().clear();
+				getCharSets().addAll((Collection)newValue);
+				return;
+			case SQLSchemaPackage.SCHEMA__ROUTINES:
+				getRoutines().clear();
+				getRoutines().addAll((Collection)newValue);
+				return;
+			case SQLSchemaPackage.SCHEMA__OWNER:
+				setOwner((AuthorizationIdentifier)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLSchemaPackage.SCHEMA__TRIGGERS:
+				getTriggers().clear();
+				return;
+			case SQLSchemaPackage.SCHEMA__INDICES:
+				getIndices().clear();
+				return;
+			case SQLSchemaPackage.SCHEMA__TABLES:
+				getTables().clear();
+				return;
+			case SQLSchemaPackage.SCHEMA__SEQUENCES:
+				getSequences().clear();
+				return;
+			case SQLSchemaPackage.SCHEMA__DATABASE:
+				setDatabase((Database)null);
+				return;
+			case SQLSchemaPackage.SCHEMA__CATALOG:
+				setCatalog((Catalog)null);
+				return;
+			case SQLSchemaPackage.SCHEMA__ASSERTIONS:
+				getAssertions().clear();
+				return;
+			case SQLSchemaPackage.SCHEMA__USER_DEFINED_TYPES:
+				getUserDefinedTypes().clear();
+				return;
+			case SQLSchemaPackage.SCHEMA__CHAR_SETS:
+				getCharSets().clear();
+				return;
+			case SQLSchemaPackage.SCHEMA__ROUTINES:
+				getRoutines().clear();
+				return;
+			case SQLSchemaPackage.SCHEMA__OWNER:
+				setOwner((AuthorizationIdentifier)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLSchemaPackage.SCHEMA__TRIGGERS:
+				return triggers != null && !triggers.isEmpty();
+			case SQLSchemaPackage.SCHEMA__INDICES:
+				return indices != null && !indices.isEmpty();
+			case SQLSchemaPackage.SCHEMA__TABLES:
+				return tables != null && !tables.isEmpty();
+			case SQLSchemaPackage.SCHEMA__SEQUENCES:
+				return sequences != null && !sequences.isEmpty();
+			case SQLSchemaPackage.SCHEMA__DATABASE:
+				return database != null;
+			case SQLSchemaPackage.SCHEMA__CATALOG:
+				return catalog != null;
+			case SQLSchemaPackage.SCHEMA__ASSERTIONS:
+				return assertions != null && !assertions.isEmpty();
+			case SQLSchemaPackage.SCHEMA__USER_DEFINED_TYPES:
+				return userDefinedTypes != null && !userDefinedTypes.isEmpty();
+			case SQLSchemaPackage.SCHEMA__CHAR_SETS:
+				return charSets != null && !charSets.isEmpty();
+			case SQLSchemaPackage.SCHEMA__ROUTINES:
+				return routines != null && !routines.isEmpty();
+			case SQLSchemaPackage.SCHEMA__OWNER:
+				return owner != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //SchemaImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/impl/SequenceImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/impl/SequenceImpl.java
new file mode 100644
index 0000000..8c31490
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/impl/SequenceImpl.java
@@ -0,0 +1,280 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.schema.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType;
+import org.eclipse.datatools.modelbase.sql.schema.IdentitySpecifier;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.schema.Sequence;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Sequence</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.impl.SequenceImpl#getIdentity <em>Identity</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.impl.SequenceImpl#getSchema <em>Schema</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SequenceImpl extends TypedElementImpl implements Sequence {
+	/**
+	 * The cached value of the '{@link #getIdentity() <em>Identity</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getIdentity()
+	 * @generated
+	 * @ordered
+	 */
+	protected IdentitySpecifier identity;
+
+	/**
+	 * The cached value of the '{@link #getSchema() <em>Schema</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSchema()
+	 * @generated
+	 * @ordered
+	 */
+	protected Schema schema;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SequenceImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLSchemaPackage.Literals.SEQUENCE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IdentitySpecifier getIdentity() {
+		return identity;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetIdentity(IdentitySpecifier newIdentity, NotificationChain msgs) {
+		IdentitySpecifier oldIdentity = identity;
+		identity = newIdentity;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLSchemaPackage.SEQUENCE__IDENTITY, oldIdentity, newIdentity);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setIdentity(IdentitySpecifier newIdentity) {
+		if (newIdentity != identity) {
+			NotificationChain msgs = null;
+			if (identity != null)
+				msgs = ((InternalEObject)identity).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLSchemaPackage.SEQUENCE__IDENTITY, null, msgs);
+			if (newIdentity != null)
+				msgs = ((InternalEObject)newIdentity).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SQLSchemaPackage.SEQUENCE__IDENTITY, null, msgs);
+			msgs = basicSetIdentity(newIdentity, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLSchemaPackage.SEQUENCE__IDENTITY, newIdentity, newIdentity));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Schema getSchema() {
+		if (schema != null && schema.eIsProxy()) {
+			InternalEObject oldSchema = (InternalEObject)schema;
+			schema = (Schema)eResolveProxy(oldSchema);
+			if (schema != oldSchema) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SQLSchemaPackage.SEQUENCE__SCHEMA, oldSchema, schema));
+			}
+		}
+		return schema;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Schema basicGetSchema() {
+		return schema;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetSchema(Schema newSchema, NotificationChain msgs) {
+		Schema oldSchema = schema;
+		schema = newSchema;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLSchemaPackage.SEQUENCE__SCHEMA, oldSchema, newSchema);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSchema(Schema newSchema) {
+		if (newSchema != schema) {
+			NotificationChain msgs = null;
+			if (schema != null)
+				msgs = ((InternalEObject)schema).eInverseRemove(this, SQLSchemaPackage.SCHEMA__SEQUENCES, Schema.class, msgs);
+			if (newSchema != null)
+				msgs = ((InternalEObject)newSchema).eInverseAdd(this, SQLSchemaPackage.SCHEMA__SEQUENCES, Schema.class, msgs);
+			msgs = basicSetSchema(newSchema, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLSchemaPackage.SEQUENCE__SCHEMA, newSchema, newSchema));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLSchemaPackage.SEQUENCE__SCHEMA:
+				if (schema != null)
+					msgs = ((InternalEObject)schema).eInverseRemove(this, SQLSchemaPackage.SCHEMA__SEQUENCES, Schema.class, msgs);
+				return basicSetSchema((Schema)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLSchemaPackage.SEQUENCE__IDENTITY:
+				return basicSetIdentity(null, msgs);
+			case SQLSchemaPackage.SEQUENCE__SCHEMA:
+				return basicSetSchema(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLSchemaPackage.SEQUENCE__IDENTITY:
+				return getIdentity();
+			case SQLSchemaPackage.SEQUENCE__SCHEMA:
+				if (resolve) return getSchema();
+				return basicGetSchema();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLSchemaPackage.SEQUENCE__IDENTITY:
+				setIdentity((IdentitySpecifier)newValue);
+				return;
+			case SQLSchemaPackage.SEQUENCE__SCHEMA:
+				setSchema((Schema)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLSchemaPackage.SEQUENCE__IDENTITY:
+				setIdentity((IdentitySpecifier)null);
+				return;
+			case SQLSchemaPackage.SEQUENCE__SCHEMA:
+				setSchema((Schema)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLSchemaPackage.SEQUENCE__IDENTITY:
+				return identity != null;
+			case SQLSchemaPackage.SEQUENCE__SCHEMA:
+				return schema != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //SequenceImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/impl/TypedElementImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/impl/TypedElementImpl.java
new file mode 100644
index 0000000..c1dee8c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/impl/TypedElementImpl.java
@@ -0,0 +1,276 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.schema.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.TypedElement;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Typed Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.impl.TypedElementImpl#getContainedType <em>Contained Type</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.schema.impl.TypedElementImpl#getReferencedType <em>Referenced Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class TypedElementImpl extends SQLObjectImpl implements TypedElement {
+	/**
+	 * The cached value of the '{@link #getContainedType() <em>Contained Type</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getContainedType()
+	 * @generated
+	 * @ordered
+	 */
+	protected SQLDataType containedType;
+
+	/**
+	 * The cached value of the '{@link #getReferencedType() <em>Referenced Type</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getReferencedType()
+	 * @generated
+	 * @ordered
+	 */
+	protected UserDefinedType referencedType;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TypedElementImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLSchemaPackage.Literals.TYPED_ELEMENT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLDataType getContainedType() {
+		return containedType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetContainedType(SQLDataType newContainedType, NotificationChain msgs) {
+		SQLDataType oldContainedType = containedType;
+		containedType = newContainedType;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLSchemaPackage.TYPED_ELEMENT__CONTAINED_TYPE, oldContainedType, newContainedType);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setContainedType(SQLDataType newContainedType) {
+		if (newContainedType != containedType) {
+			NotificationChain msgs = null;
+			if (containedType != null)
+				msgs = ((InternalEObject)containedType).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLSchemaPackage.TYPED_ELEMENT__CONTAINED_TYPE, null, msgs);
+			if (newContainedType != null)
+				msgs = ((InternalEObject)newContainedType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SQLSchemaPackage.TYPED_ELEMENT__CONTAINED_TYPE, null, msgs);
+			msgs = basicSetContainedType(newContainedType, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLSchemaPackage.TYPED_ELEMENT__CONTAINED_TYPE, newContainedType, newContainedType));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UserDefinedType getReferencedType() {
+		if (referencedType != null && referencedType.eIsProxy()) {
+			InternalEObject oldReferencedType = (InternalEObject)referencedType;
+			referencedType = (UserDefinedType)eResolveProxy(oldReferencedType);
+			if (referencedType != oldReferencedType) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SQLSchemaPackage.TYPED_ELEMENT__REFERENCED_TYPE, oldReferencedType, referencedType));
+			}
+		}
+		return referencedType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UserDefinedType basicGetReferencedType() {
+		return referencedType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setReferencedType(UserDefinedType newReferencedType) {
+		UserDefinedType oldReferencedType = referencedType;
+		referencedType = newReferencedType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLSchemaPackage.TYPED_ELEMENT__REFERENCED_TYPE, oldReferencedType, referencedType));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 */
+	public void setDataType(DataType newType) {
+		if (newType == null) {
+			this.setReferencedType(null);
+			this.setContainedType(null);
+		}
+		else if (newType instanceof SQLDataType) {
+			if (this.referencedType != null) {
+				this.setReferencedType(null);
+			}
+			this.setContainedType((SQLDataType)newType);
+		}
+		else if (newType instanceof UserDefinedType) {
+			if (this.containedType != null) {
+				this.setContainedType(null);
+			}
+			this.setReferencedType((UserDefinedType)newType);
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 */
+	public DataType getDataType() {
+		if (this.containedType != null)
+			return this.getContainedType();
+		else if (this.referencedType != null)
+			return this.getReferencedType();
+		else
+			return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLSchemaPackage.TYPED_ELEMENT__CONTAINED_TYPE:
+				return basicSetContainedType(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLSchemaPackage.TYPED_ELEMENT__CONTAINED_TYPE:
+				return getContainedType();
+			case SQLSchemaPackage.TYPED_ELEMENT__REFERENCED_TYPE:
+				if (resolve) return getReferencedType();
+				return basicGetReferencedType();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLSchemaPackage.TYPED_ELEMENT__CONTAINED_TYPE:
+				setContainedType((SQLDataType)newValue);
+				return;
+			case SQLSchemaPackage.TYPED_ELEMENT__REFERENCED_TYPE:
+				setReferencedType((UserDefinedType)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLSchemaPackage.TYPED_ELEMENT__CONTAINED_TYPE:
+				setContainedType((SQLDataType)null);
+				return;
+			case SQLSchemaPackage.TYPED_ELEMENT__REFERENCED_TYPE:
+				setReferencedType((UserDefinedType)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLSchemaPackage.TYPED_ELEMENT__CONTAINED_TYPE:
+				return containedType != null;
+			case SQLSchemaPackage.TYPED_ELEMENT__REFERENCED_TYPE:
+				return referencedType != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //TypedElementImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/util/SQLSchemaAdapterFactory.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/util/SQLSchemaAdapterFactory.java
new file mode 100644
index 0000000..6fa5979
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/util/SQLSchemaAdapterFactory.java
@@ -0,0 +1,329 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.schema.util;
+
+import javax.sound.midi.Sequence;
+
+import org.eclipse.datatools.modelbase.sql.schema.*;
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+import org.eclipse.emf.ecore.EModelElement;
+import org.eclipse.emf.ecore.ENamedElement;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage
+ * @generated
+ */
+public class SQLSchemaAdapterFactory extends AdapterFactoryImpl {
+	/**
+	 * The cached model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static SQLSchemaPackage modelPackage;
+
+	/**
+	 * Creates an instance of the adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLSchemaAdapterFactory() {
+		if (modelPackage == null) {
+			modelPackage = SQLSchemaPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Returns whether this factory is applicable for the type of the object.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+	 * <!-- end-user-doc -->
+	 * @return whether this factory is applicable for the type of the object.
+	 * @generated
+	 */
+	public boolean isFactoryForType(Object object) {
+		if (object == modelPackage) {
+			return true;
+		}
+		if (object instanceof EObject) {
+			return ((EObject)object).eClass().getEPackage() == modelPackage;
+		}
+		return false;
+	}
+
+	/**
+	 * The switch that delegates to the <code>createXXX</code> methods.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SQLSchemaSwitch modelSwitch =
+		new SQLSchemaSwitch() {
+			public Object caseIdentitySpecifier(IdentitySpecifier object) {
+				return createIdentitySpecifierAdapter();
+			}
+			public Object caseTypedElement(TypedElement object) {
+				return createTypedElementAdapter();
+			}
+			public Object caseDependency(Dependency object) {
+				return createDependencyAdapter();
+			}
+			public Object caseSchema(Schema object) {
+				return createSchemaAdapter();
+			}
+			public Object caseSQLObject(SQLObject object) {
+				return createSQLObjectAdapter();
+			}
+			public Object caseSequence(Sequence object) {
+				return createSequenceAdapter();
+			}
+			public Object caseDatabase(Database object) {
+				return createDatabaseAdapter();
+			}
+			public Object caseEvent(Event object) {
+				return createEventAdapter();
+			}
+			public Object caseComment(Comment object) {
+				return createCommentAdapter();
+			}
+			public Object caseCatalog(Catalog object) {
+				return createCatalogAdapter();
+			}
+			public Object caseObjectExtension(ObjectExtension object) {
+				return createObjectExtensionAdapter();
+			}
+			public Object caseEModelElement(EModelElement object) {
+				return createEModelElementAdapter();
+			}
+			public Object caseENamedElement(ENamedElement object) {
+				return createENamedElementAdapter();
+			}
+			public Object defaultCase(EObject object) {
+				return createEObjectAdapter();
+			}
+		};
+
+	/**
+	 * Creates an adapter for the <code>target</code>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param target the object to adapt.
+	 * @return the adapter for the <code>target</code>.
+	 * @generated
+	 */
+	public Adapter createAdapter(Notifier target) {
+		return (Adapter)modelSwitch.doSwitch((EObject)target);
+	}
+
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.schema.IdentitySpecifier <em>Identity Specifier</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.IdentitySpecifier
+	 * @generated
+	 */
+	public Adapter createIdentitySpecifierAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.schema.TypedElement <em>Typed Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.TypedElement
+	 * @generated
+	 */
+	public Adapter createTypedElementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.schema.Dependency <em>Dependency</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Dependency
+	 * @generated
+	 */
+	public Adapter createDependencyAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.schema.Schema <em>Schema</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Schema
+	 * @generated
+	 */
+	public Adapter createSchemaAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.schema.SQLObject <em>SQL Object</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLObject
+	 * @generated
+	 */
+	public Adapter createSQLObjectAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.schema.Sequence <em>Sequence</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Sequence
+	 * @generated
+	 */
+	public Adapter createSequenceAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.schema.Database <em>Database</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Database
+	 * @generated
+	 */
+	public Adapter createDatabaseAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.schema.Event <em>Event</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Event
+	 * @generated
+	 */
+	public Adapter createEventAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.schema.Comment <em>Comment</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Comment
+	 * @generated
+	 */
+	public Adapter createCommentAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.schema.Catalog <em>Catalog</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Catalog
+	 * @generated
+	 */
+	public Adapter createCatalogAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.schema.ObjectExtension <em>Object Extension</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.ObjectExtension
+	 * @generated
+	 */
+	public Adapter createObjectExtensionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecore.EModelElement <em>EModel Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.emf.ecore.EModelElement
+	 * @generated
+	 */
+	public Adapter createEModelElementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecore.ENamedElement <em>ENamed Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.emf.ecore.ENamedElement
+	 * @generated
+	 */
+	public Adapter createENamedElementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for the default case.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @generated
+	 */
+	public Adapter createEObjectAdapter() {
+		return null;
+	}
+
+} //SQLSchemaAdapterFactory
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/util/SQLSchemaSwitch.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/util/SQLSchemaSwitch.java
new file mode 100644
index 0000000..506b4e6
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/schema/util/SQLSchemaSwitch.java
@@ -0,0 +1,402 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.schema.util;
+
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.schema.*;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EModelElement;
+import org.eclipse.emf.ecore.ENamedElement;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage
+ * @generated
+ */
+public class SQLSchemaSwitch {
+	/**
+	 * The cached model package
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static SQLSchemaPackage modelPackage;
+
+	/**
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLSchemaSwitch() {
+		if (modelPackage == null) {
+			modelPackage = SQLSchemaPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	public Object doSwitch(EObject theEObject) {
+		return doSwitch(theEObject.eClass(), theEObject);
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	protected Object doSwitch(EClass theEClass, EObject theEObject) {
+		if (theEClass.eContainer() == modelPackage) {
+			return doSwitch(theEClass.getClassifierID(), theEObject);
+		}
+		else {
+			List eSuperTypes = theEClass.getESuperTypes();
+			return
+				eSuperTypes.isEmpty() ?
+					defaultCase(theEObject) :
+					doSwitch((EClass)eSuperTypes.get(0), theEObject);
+		}
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	protected Object doSwitch(int classifierID, EObject theEObject) {
+		switch (classifierID) {
+			case SQLSchemaPackage.IDENTITY_SPECIFIER: {
+				IdentitySpecifier identitySpecifier = (IdentitySpecifier)theEObject;
+				Object result = caseIdentitySpecifier(identitySpecifier);
+				if (result == null) result = caseSQLObject(identitySpecifier);
+				if (result == null) result = caseENamedElement(identitySpecifier);
+				if (result == null) result = caseEModelElement(identitySpecifier);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLSchemaPackage.TYPED_ELEMENT: {
+				TypedElement typedElement = (TypedElement)theEObject;
+				Object result = caseTypedElement(typedElement);
+				if (result == null) result = caseSQLObject(typedElement);
+				if (result == null) result = caseENamedElement(typedElement);
+				if (result == null) result = caseEModelElement(typedElement);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLSchemaPackage.DEPENDENCY: {
+				Dependency dependency = (Dependency)theEObject;
+				Object result = caseDependency(dependency);
+				if (result == null) result = caseSQLObject(dependency);
+				if (result == null) result = caseENamedElement(dependency);
+				if (result == null) result = caseEModelElement(dependency);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLSchemaPackage.SCHEMA: {
+				Schema schema = (Schema)theEObject;
+				Object result = caseSchema(schema);
+				if (result == null) result = caseSQLObject(schema);
+				if (result == null) result = caseENamedElement(schema);
+				if (result == null) result = caseEModelElement(schema);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLSchemaPackage.SQL_OBJECT: {
+				SQLObject sqlObject = (SQLObject)theEObject;
+				Object result = caseSQLObject(sqlObject);
+				if (result == null) result = caseENamedElement(sqlObject);
+				if (result == null) result = caseEModelElement(sqlObject);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLSchemaPackage.SEQUENCE: {
+				Sequence sequence = (Sequence)theEObject;
+				Object result = caseSequence(sequence);
+				if (result == null) result = caseTypedElement(sequence);
+				if (result == null) result = caseSQLObject(sequence);
+				if (result == null) result = caseENamedElement(sequence);
+				if (result == null) result = caseEModelElement(sequence);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLSchemaPackage.DATABASE: {
+				Database database = (Database)theEObject;
+				Object result = caseDatabase(database);
+				if (result == null) result = caseSQLObject(database);
+				if (result == null) result = caseENamedElement(database);
+				if (result == null) result = caseEModelElement(database);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLSchemaPackage.EVENT: {
+				Event event = (Event)theEObject;
+				Object result = caseEvent(event);
+				if (result == null) result = caseSQLObject(event);
+				if (result == null) result = caseENamedElement(event);
+				if (result == null) result = caseEModelElement(event);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLSchemaPackage.COMMENT: {
+				Comment comment = (Comment)theEObject;
+				Object result = caseComment(comment);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLSchemaPackage.CATALOG: {
+				Catalog catalog = (Catalog)theEObject;
+				Object result = caseCatalog(catalog);
+				if (result == null) result = caseSQLObject(catalog);
+				if (result == null) result = caseENamedElement(catalog);
+				if (result == null) result = caseEModelElement(catalog);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLSchemaPackage.OBJECT_EXTENSION: {
+				ObjectExtension objectExtension = (ObjectExtension)theEObject;
+				Object result = caseObjectExtension(objectExtension);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			default: return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Identity Specifier</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Identity Specifier</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseIdentitySpecifier(IdentitySpecifier object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Typed Element</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Typed Element</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseTypedElement(TypedElement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Dependency</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Dependency</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseDependency(Dependency object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Schema</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Schema</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseSchema(Schema object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>SQL Object</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>SQL Object</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseSQLObject(SQLObject object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Sequence</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Sequence</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseSequence(Sequence object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Database</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Database</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseDatabase(Database object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Event</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Event</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseEvent(Event object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Comment</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Comment</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseComment(Comment object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Catalog</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Catalog</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseCatalog(Catalog object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Object Extension</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Object Extension</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseObjectExtension(ObjectExtension object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EModel Element</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>EModel Element</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseEModelElement(EModelElement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>ENamed Element</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>ENamed Element</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseENamedElement(ENamedElement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch, but this is the last case anyway.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+	 * @generated
+	 */
+	public Object defaultCase(EObject object) {
+		return null;
+	}
+
+} //SQLSchemaSwitch
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/SQLConnectionStatement.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/SQLConnectionStatement.java
new file mode 100644
index 0000000..68fe041
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/SQLConnectionStatement.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.statements;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Connection Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 17 Connection management
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.modelbase.sql.statements.SQLStatementsPackage#getSQLConnectionStatement()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface SQLConnectionStatement extends SQLStatement {
+} // SQLConnectionStatement
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/SQLControlStatement.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/SQLControlStatement.java
new file mode 100644
index 0000000..5bcf7cd
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/SQLControlStatement.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.statements;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Control Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 15 Control statements
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.modelbase.sql.statements.SQLStatementsPackage#getSQLControlStatement()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface SQLControlStatement extends SQLStatement {
+} // SQLControlStatement
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/SQLDataChangeStatement.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/SQLDataChangeStatement.java
new file mode 100644
index 0000000..1aa55e6
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/SQLDataChangeStatement.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.statements;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Data Change Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 14 Data Manipulation
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.modelbase.sql.statements.SQLStatementsPackage#getSQLDataChangeStatement()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface SQLDataChangeStatement extends SQLDataStatement {
+} // SQLDataChangeStatement
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/SQLDataStatement.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/SQLDataStatement.java
new file mode 100644
index 0000000..afa880d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/SQLDataStatement.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.statements;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Data Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 14 Data Manipulation
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.modelbase.sql.statements.SQLStatementsPackage#getSQLDataStatement()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface SQLDataStatement extends SQLStatement {
+} // SQLDataStatement
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/SQLDiagnosticsStatement.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/SQLDiagnosticsStatement.java
new file mode 100644
index 0000000..d6b8725
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/SQLDiagnosticsStatement.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.statements;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Diagnostics Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 22 Diagnostics management 
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.modelbase.sql.statements.SQLStatementsPackage#getSQLDiagnosticsStatement()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface SQLDiagnosticsStatement extends SQLStatement {
+} // SQLDiagnosticsStatement
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/SQLDynamicStatement.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/SQLDynamicStatement.java
new file mode 100644
index 0000000..3209e1c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/SQLDynamicStatement.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.statements;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Dynamic Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 19 Dynamic SQL
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.modelbase.sql.statements.SQLStatementsPackage#getSQLDynamicStatement()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface SQLDynamicStatement extends SQLStatement {
+} // SQLDynamicStatement
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/SQLSchemaStatement.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/SQLSchemaStatement.java
new file mode 100644
index 0000000..dff18ee
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/SQLSchemaStatement.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.statements;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Schema Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 11 Schema definition and manipulation
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.modelbase.sql.statements.SQLStatementsPackage#getSQLSchemaStatement()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface SQLSchemaStatement extends SQLStatement {
+} // SQLSchemaStatement
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/SQLSessionStatement.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/SQLSessionStatement.java
new file mode 100644
index 0000000..d0cb5a6
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/SQLSessionStatement.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.statements;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Session Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 18 Session management
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.modelbase.sql.statements.SQLStatementsPackage#getSQLSessionStatement()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface SQLSessionStatement extends SQLStatement {
+} // SQLSessionStatement
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/SQLStatement.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/SQLStatement.java
new file mode 100644
index 0000000..35c20ae
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/SQLStatement.java
@@ -0,0 +1,46 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.statements;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.33 SQL-statements
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.modelbase.sql.statements.SQLStatementsPackage#getSQLStatement()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface SQLStatement extends EObject {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model kind="operation"
+	 * @generated
+	 */
+	String getSQL();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model
+	 * @generated
+	 */
+	void setSQL(String sqlText);
+
+} // SQLStatement
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/SQLStatementDefault.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/SQLStatementDefault.java
new file mode 100644
index 0000000..903348b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/SQLStatementDefault.java
@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.statements;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Statement Default</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.statements.SQLStatementDefault#getSQL <em>SQL</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.statements.SQLStatementsPackage#getSQLStatementDefault()
+ * @model
+ * @generated
+ */
+public interface SQLStatementDefault extends SQLObject, SQLStatement{
+	/**
+	 * Returns the value of the '<em><b>SQL</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>SQL</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>SQL</em>' attribute.
+	 * @see #setSQL(String)
+	 * @see org.eclipse.datatools.modelbase.sql.statements.SQLStatementsPackage#getSQLStatementDefault_SQL()
+	 * @model
+	 * @generated
+	 */
+	String getSQL();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.statements.SQLStatementDefault#getSQL <em>SQL</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>SQL</em>' attribute.
+	 * @see #getSQL()
+	 * @generated
+	 */
+	void setSQL(String value);
+
+} // SQLStatementDefault
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/SQLStatementsFactory.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/SQLStatementsFactory.java
new file mode 100644
index 0000000..fdc6174
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/SQLStatementsFactory.java
@@ -0,0 +1,50 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.statements;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.statements.SQLStatementsPackage
+ * @generated
+ */
+public interface SQLStatementsFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	SQLStatementsFactory eINSTANCE = org.eclipse.datatools.modelbase.sql.statements.impl.SQLStatementsFactoryImpl.init();
+
+	/**
+	 * Returns a new object of class '<em>SQL Statement Default</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>SQL Statement Default</em>'.
+	 * @generated
+	 */
+	SQLStatementDefault createSQLStatementDefault();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	SQLStatementsPackage getSQLStatementsPackage();
+
+} //SQLStatementsFactory
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/SQLStatementsPackage.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/SQLStatementsPackage.java
new file mode 100644
index 0000000..f623b7e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/SQLStatementsPackage.java
@@ -0,0 +1,620 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.statements;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ *   <li>each class,</li>
+ *   <li>each feature of each class,</li>
+ *   <li>each enum,</li>
+ *   <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.statements.SQLStatementsFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface SQLStatementsPackage extends EPackage {
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNAME = "statements"; //$NON-NLS-1$
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_URI = "http:///org/eclipse/datatools/modelbase/sql/statements.ecore"; //$NON-NLS-1$
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_PREFIX = "SQLStatements"; //$NON-NLS-1$
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	SQLStatementsPackage eINSTANCE = org.eclipse.datatools.modelbase.sql.statements.impl.SQLStatementsPackageImpl.init();
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.statements.SQLStatement <em>SQL Statement</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.statements.SQLStatement
+	 * @see org.eclipse.datatools.modelbase.sql.statements.impl.SQLStatementsPackageImpl#getSQLStatement()
+	 * @generated
+	 */
+	int SQL_STATEMENT = 0;
+
+	/**
+	 * The number of structural features of the '<em>SQL Statement</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SQL_STATEMENT_FEATURE_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.statements.SQLDataStatement <em>SQL Data Statement</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.statements.SQLDataStatement
+	 * @see org.eclipse.datatools.modelbase.sql.statements.impl.SQLStatementsPackageImpl#getSQLDataStatement()
+	 * @generated
+	 */
+	int SQL_DATA_STATEMENT = 1;
+
+	/**
+	 * The number of structural features of the '<em>SQL Data Statement</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SQL_DATA_STATEMENT_FEATURE_COUNT = SQL_STATEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.statements.SQLSchemaStatement <em>SQL Schema Statement</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.statements.SQLSchemaStatement
+	 * @see org.eclipse.datatools.modelbase.sql.statements.impl.SQLStatementsPackageImpl#getSQLSchemaStatement()
+	 * @generated
+	 */
+	int SQL_SCHEMA_STATEMENT = 2;
+
+	/**
+	 * The number of structural features of the '<em>SQL Schema Statement</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SQL_SCHEMA_STATEMENT_FEATURE_COUNT = SQL_STATEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.statements.SQLControlStatement <em>SQL Control Statement</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.statements.SQLControlStatement
+	 * @see org.eclipse.datatools.modelbase.sql.statements.impl.SQLStatementsPackageImpl#getSQLControlStatement()
+	 * @generated
+	 */
+	int SQL_CONTROL_STATEMENT = 3;
+
+	/**
+	 * The number of structural features of the '<em>SQL Control Statement</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SQL_CONTROL_STATEMENT_FEATURE_COUNT = SQL_STATEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.statements.SQLDataChangeStatement <em>SQL Data Change Statement</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.statements.SQLDataChangeStatement
+	 * @see org.eclipse.datatools.modelbase.sql.statements.impl.SQLStatementsPackageImpl#getSQLDataChangeStatement()
+	 * @generated
+	 */
+	int SQL_DATA_CHANGE_STATEMENT = 4;
+
+	/**
+	 * The number of structural features of the '<em>SQL Data Change Statement</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SQL_DATA_CHANGE_STATEMENT_FEATURE_COUNT = SQL_DATA_STATEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.statements.impl.SQLStatementDefaultImpl <em>SQL Statement Default</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.statements.impl.SQLStatementDefaultImpl
+	 * @see org.eclipse.datatools.modelbase.sql.statements.impl.SQLStatementsPackageImpl#getSQLStatementDefault()
+	 * @generated
+	 */
+	int SQL_STATEMENT_DEFAULT = 5;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SQL_STATEMENT_DEFAULT__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SQL_STATEMENT_DEFAULT__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SQL_STATEMENT_DEFAULT__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SQL_STATEMENT_DEFAULT__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SQL_STATEMENT_DEFAULT__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SQL_STATEMENT_DEFAULT__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SQL_STATEMENT_DEFAULT__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SQL_STATEMENT_DEFAULT__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>SQL</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SQL_STATEMENT_DEFAULT__SQL = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>SQL Statement Default</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SQL_STATEMENT_DEFAULT_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.statements.SQLConnectionStatement <em>SQL Connection Statement</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.statements.SQLConnectionStatement
+	 * @see org.eclipse.datatools.modelbase.sql.statements.impl.SQLStatementsPackageImpl#getSQLConnectionStatement()
+	 * @generated
+	 */
+	int SQL_CONNECTION_STATEMENT = 6;
+
+	/**
+	 * The number of structural features of the '<em>SQL Connection Statement</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SQL_CONNECTION_STATEMENT_FEATURE_COUNT = SQL_STATEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.statements.SQLDiagnosticsStatement <em>SQL Diagnostics Statement</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.statements.SQLDiagnosticsStatement
+	 * @see org.eclipse.datatools.modelbase.sql.statements.impl.SQLStatementsPackageImpl#getSQLDiagnosticsStatement()
+	 * @generated
+	 */
+	int SQL_DIAGNOSTICS_STATEMENT = 7;
+
+	/**
+	 * The number of structural features of the '<em>SQL Diagnostics Statement</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SQL_DIAGNOSTICS_STATEMENT_FEATURE_COUNT = SQL_STATEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.statements.SQLDynamicStatement <em>SQL Dynamic Statement</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.statements.SQLDynamicStatement
+	 * @see org.eclipse.datatools.modelbase.sql.statements.impl.SQLStatementsPackageImpl#getSQLDynamicStatement()
+	 * @generated
+	 */
+	int SQL_DYNAMIC_STATEMENT = 8;
+
+	/**
+	 * The number of structural features of the '<em>SQL Dynamic Statement</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SQL_DYNAMIC_STATEMENT_FEATURE_COUNT = SQL_STATEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.statements.SQLSessionStatement <em>SQL Session Statement</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.statements.SQLSessionStatement
+	 * @see org.eclipse.datatools.modelbase.sql.statements.impl.SQLStatementsPackageImpl#getSQLSessionStatement()
+	 * @generated
+	 */
+	int SQL_SESSION_STATEMENT = 9;
+
+	/**
+	 * The number of structural features of the '<em>SQL Session Statement</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SQL_SESSION_STATEMENT_FEATURE_COUNT = SQL_STATEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.statements.SQLTransactionStatement <em>SQL Transaction Statement</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.statements.SQLTransactionStatement
+	 * @see org.eclipse.datatools.modelbase.sql.statements.impl.SQLStatementsPackageImpl#getSQLTransactionStatement()
+	 * @generated
+	 */
+	int SQL_TRANSACTION_STATEMENT = 10;
+
+	/**
+	 * The number of structural features of the '<em>SQL Transaction Statement</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SQL_TRANSACTION_STATEMENT_FEATURE_COUNT = SQL_STATEMENT_FEATURE_COUNT + 0;
+
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.statements.SQLStatement <em>SQL Statement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>SQL Statement</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.statements.SQLStatement
+	 * @generated
+	 */
+	EClass getSQLStatement();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.statements.SQLDataStatement <em>SQL Data Statement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>SQL Data Statement</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.statements.SQLDataStatement
+	 * @generated
+	 */
+	EClass getSQLDataStatement();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.statements.SQLSchemaStatement <em>SQL Schema Statement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>SQL Schema Statement</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.statements.SQLSchemaStatement
+	 * @generated
+	 */
+	EClass getSQLSchemaStatement();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.statements.SQLControlStatement <em>SQL Control Statement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>SQL Control Statement</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.statements.SQLControlStatement
+	 * @generated
+	 */
+	EClass getSQLControlStatement();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.statements.SQLDataChangeStatement <em>SQL Data Change Statement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>SQL Data Change Statement</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.statements.SQLDataChangeStatement
+	 * @generated
+	 */
+	EClass getSQLDataChangeStatement();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.statements.SQLStatementDefault <em>SQL Statement Default</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>SQL Statement Default</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.statements.SQLStatementDefault
+	 * @generated
+	 */
+	EClass getSQLStatementDefault();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.statements.SQLStatementDefault#getSQL <em>SQL</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>SQL</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.statements.SQLStatementDefault#getSQL()
+	 * @see #getSQLStatementDefault()
+	 * @generated
+	 */
+	EAttribute getSQLStatementDefault_SQL();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.statements.SQLConnectionStatement <em>SQL Connection Statement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>SQL Connection Statement</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.statements.SQLConnectionStatement
+	 * @generated
+	 */
+	EClass getSQLConnectionStatement();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.statements.SQLDiagnosticsStatement <em>SQL Diagnostics Statement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>SQL Diagnostics Statement</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.statements.SQLDiagnosticsStatement
+	 * @generated
+	 */
+	EClass getSQLDiagnosticsStatement();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.statements.SQLDynamicStatement <em>SQL Dynamic Statement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>SQL Dynamic Statement</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.statements.SQLDynamicStatement
+	 * @generated
+	 */
+	EClass getSQLDynamicStatement();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.statements.SQLSessionStatement <em>SQL Session Statement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>SQL Session Statement</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.statements.SQLSessionStatement
+	 * @generated
+	 */
+	EClass getSQLSessionStatement();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.statements.SQLTransactionStatement <em>SQL Transaction Statement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>SQL Transaction Statement</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.statements.SQLTransactionStatement
+	 * @generated
+	 */
+	EClass getSQLTransactionStatement();
+
+	/**
+	 * Returns the factory that creates the instances of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the factory that creates the instances of the model.
+	 * @generated
+	 */
+	SQLStatementsFactory getSQLStatementsFactory();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * Defines literals for the meta objects that represent
+	 * <ul>
+	 *   <li>each class,</li>
+	 *   <li>each feature of each class,</li>
+	 *   <li>each enum,</li>
+	 *   <li>and each data type</li>
+	 * </ul>
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	interface Literals  {
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.statements.SQLStatement <em>SQL Statement</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.statements.SQLStatement
+		 * @see org.eclipse.datatools.modelbase.sql.statements.impl.SQLStatementsPackageImpl#getSQLStatement()
+		 * @generated
+		 */
+		EClass SQL_STATEMENT = eINSTANCE.getSQLStatement();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.statements.SQLDataStatement <em>SQL Data Statement</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.statements.SQLDataStatement
+		 * @see org.eclipse.datatools.modelbase.sql.statements.impl.SQLStatementsPackageImpl#getSQLDataStatement()
+		 * @generated
+		 */
+		EClass SQL_DATA_STATEMENT = eINSTANCE.getSQLDataStatement();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.statements.SQLSchemaStatement <em>SQL Schema Statement</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.statements.SQLSchemaStatement
+		 * @see org.eclipse.datatools.modelbase.sql.statements.impl.SQLStatementsPackageImpl#getSQLSchemaStatement()
+		 * @generated
+		 */
+		EClass SQL_SCHEMA_STATEMENT = eINSTANCE.getSQLSchemaStatement();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.statements.SQLControlStatement <em>SQL Control Statement</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.statements.SQLControlStatement
+		 * @see org.eclipse.datatools.modelbase.sql.statements.impl.SQLStatementsPackageImpl#getSQLControlStatement()
+		 * @generated
+		 */
+		EClass SQL_CONTROL_STATEMENT = eINSTANCE.getSQLControlStatement();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.statements.SQLDataChangeStatement <em>SQL Data Change Statement</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.statements.SQLDataChangeStatement
+		 * @see org.eclipse.datatools.modelbase.sql.statements.impl.SQLStatementsPackageImpl#getSQLDataChangeStatement()
+		 * @generated
+		 */
+		EClass SQL_DATA_CHANGE_STATEMENT = eINSTANCE.getSQLDataChangeStatement();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.statements.impl.SQLStatementDefaultImpl <em>SQL Statement Default</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.statements.impl.SQLStatementDefaultImpl
+		 * @see org.eclipse.datatools.modelbase.sql.statements.impl.SQLStatementsPackageImpl#getSQLStatementDefault()
+		 * @generated
+		 */
+		EClass SQL_STATEMENT_DEFAULT = eINSTANCE.getSQLStatementDefault();
+
+		/**
+		 * The meta object literal for the '<em><b>SQL</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute SQL_STATEMENT_DEFAULT__SQL = eINSTANCE.getSQLStatementDefault_SQL();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.statements.SQLConnectionStatement <em>SQL Connection Statement</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.statements.SQLConnectionStatement
+		 * @see org.eclipse.datatools.modelbase.sql.statements.impl.SQLStatementsPackageImpl#getSQLConnectionStatement()
+		 * @generated
+		 */
+		EClass SQL_CONNECTION_STATEMENT = eINSTANCE.getSQLConnectionStatement();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.statements.SQLDiagnosticsStatement <em>SQL Diagnostics Statement</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.statements.SQLDiagnosticsStatement
+		 * @see org.eclipse.datatools.modelbase.sql.statements.impl.SQLStatementsPackageImpl#getSQLDiagnosticsStatement()
+		 * @generated
+		 */
+		EClass SQL_DIAGNOSTICS_STATEMENT = eINSTANCE.getSQLDiagnosticsStatement();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.statements.SQLDynamicStatement <em>SQL Dynamic Statement</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.statements.SQLDynamicStatement
+		 * @see org.eclipse.datatools.modelbase.sql.statements.impl.SQLStatementsPackageImpl#getSQLDynamicStatement()
+		 * @generated
+		 */
+		EClass SQL_DYNAMIC_STATEMENT = eINSTANCE.getSQLDynamicStatement();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.statements.SQLSessionStatement <em>SQL Session Statement</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.statements.SQLSessionStatement
+		 * @see org.eclipse.datatools.modelbase.sql.statements.impl.SQLStatementsPackageImpl#getSQLSessionStatement()
+		 * @generated
+		 */
+		EClass SQL_SESSION_STATEMENT = eINSTANCE.getSQLSessionStatement();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.statements.SQLTransactionStatement <em>SQL Transaction Statement</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.statements.SQLTransactionStatement
+		 * @see org.eclipse.datatools.modelbase.sql.statements.impl.SQLStatementsPackageImpl#getSQLTransactionStatement()
+		 * @generated
+		 */
+		EClass SQL_TRANSACTION_STATEMENT = eINSTANCE.getSQLTransactionStatement();
+
+	}
+
+} //SQLStatementsPackage
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/SQLTransactionStatement.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/SQLTransactionStatement.java
new file mode 100644
index 0000000..90cf02f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/SQLTransactionStatement.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.statements;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SQL Transaction Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 16 Transaction management
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.modelbase.sql.statements.SQLStatementsPackage#getSQLTransactionStatement()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface SQLTransactionStatement extends SQLStatement {
+} // SQLTransactionStatement
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/impl/SQLStatementDefaultImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/impl/SQLStatementDefaultImpl.java
new file mode 100644
index 0000000..1913520
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/impl/SQLStatementDefaultImpl.java
@@ -0,0 +1,168 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.statements.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.datatools.modelbase.sql.statements.SQLStatementDefault;
+import org.eclipse.datatools.modelbase.sql.statements.SQLStatementsPackage;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SQL Statement Default</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.statements.impl.SQLStatementDefaultImpl#getSQL <em>SQL</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SQLStatementDefaultImpl extends SQLObjectImpl implements SQLStatementDefault {
+	/**
+	 * The default value of the '{@link #getSQL() <em>SQL</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSQL()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String SQL_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getSQL() <em>SQL</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSQL()
+	 * @generated
+	 * @ordered
+	 */
+	protected String sql = SQL_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SQLStatementDefaultImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLStatementsPackage.Literals.SQL_STATEMENT_DEFAULT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getSQL() {
+		return sql;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSQL(String newSQL) {
+		String oldSQL = sql;
+		sql = newSQL;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLStatementsPackage.SQL_STATEMENT_DEFAULT__SQL, oldSQL, sql));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLStatementsPackage.SQL_STATEMENT_DEFAULT__SQL:
+				return getSQL();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLStatementsPackage.SQL_STATEMENT_DEFAULT__SQL:
+				setSQL((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLStatementsPackage.SQL_STATEMENT_DEFAULT__SQL:
+				setSQL(SQL_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLStatementsPackage.SQL_STATEMENT_DEFAULT__SQL:
+				return SQL_EDEFAULT == null ? sql != null : !SQL_EDEFAULT.equals(sql);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (SQL: "); //$NON-NLS-1$
+		result.append(sql);
+		result.append(')');
+		return result.toString();
+	}
+
+} //SQLStatementDefaultImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/impl/SQLStatementsFactoryImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/impl/SQLStatementsFactoryImpl.java
new file mode 100644
index 0000000..cbc38f3
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/impl/SQLStatementsFactoryImpl.java
@@ -0,0 +1,100 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.statements.impl;
+
+import org.eclipse.datatools.modelbase.sql.statements.*;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SQLStatementsFactoryImpl extends EFactoryImpl implements SQLStatementsFactory {
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static SQLStatementsFactory init() {
+		try {
+			SQLStatementsFactory theSQLStatementsFactory = (SQLStatementsFactory)EPackage.Registry.INSTANCE.getEFactory("http:///org/eclipse/datatools/modelbase/sql/statements.ecore"); //$NON-NLS-1$ 
+			if (theSQLStatementsFactory != null) {
+				return theSQLStatementsFactory;
+			}
+		}
+		catch (Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new SQLStatementsFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLStatementsFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+			case SQLStatementsPackage.SQL_STATEMENT_DEFAULT: return createSQLStatementDefault();
+			default:
+				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLStatementDefault createSQLStatementDefault() {
+		SQLStatementDefaultImpl sqlStatementDefault = new SQLStatementDefaultImpl();
+		return sqlStatementDefault;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLStatementsPackage getSQLStatementsPackage() {
+		return (SQLStatementsPackage)getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @deprecated
+	 * @generated
+	 */
+	public static SQLStatementsPackage getPackage() {
+		return SQLStatementsPackage.eINSTANCE;
+	}
+
+} //SQLStatementsFactoryImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/impl/SQLStatementsPackageImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/impl/SQLStatementsPackageImpl.java
new file mode 100644
index 0000000..e0dc418
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/impl/SQLStatementsPackageImpl.java
@@ -0,0 +1,459 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.statements.impl;
+
+import org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.impl.SQLAccessControlPackageImpl;
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;
+import org.eclipse.datatools.modelbase.sql.constraints.impl.SQLConstraintsPackageImpl;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl;
+import org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsPackage;
+import org.eclipse.datatools.modelbase.sql.expressions.impl.SQLExpressionsPackageImpl;
+import org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage;
+import org.eclipse.datatools.modelbase.sql.routines.impl.SQLRoutinesPackageImpl;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLSchemaPackageImpl;
+import org.eclipse.datatools.modelbase.sql.statements.SQLConnectionStatement;
+import org.eclipse.datatools.modelbase.sql.statements.SQLControlStatement;
+import org.eclipse.datatools.modelbase.sql.statements.SQLDataChangeStatement;
+import org.eclipse.datatools.modelbase.sql.statements.SQLDataStatement;
+import org.eclipse.datatools.modelbase.sql.statements.SQLDiagnosticsStatement;
+import org.eclipse.datatools.modelbase.sql.statements.SQLDynamicStatement;
+import org.eclipse.datatools.modelbase.sql.statements.SQLSchemaStatement;
+import org.eclipse.datatools.modelbase.sql.statements.SQLSessionStatement;
+import org.eclipse.datatools.modelbase.sql.statements.SQLStatement;
+import org.eclipse.datatools.modelbase.sql.statements.SQLStatementDefault;
+import org.eclipse.datatools.modelbase.sql.statements.SQLStatementsFactory;
+import org.eclipse.datatools.modelbase.sql.statements.SQLStatementsPackage;
+import org.eclipse.datatools.modelbase.sql.statements.SQLTransactionStatement;
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+import org.eclipse.datatools.modelbase.sql.tables.impl.SQLTablesPackageImpl;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EcorePackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.emf.ecore.impl.EcorePackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SQLStatementsPackageImpl extends EPackageImpl implements SQLStatementsPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass sqlStatementEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass sqlDataStatementEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass sqlSchemaStatementEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass sqlControlStatementEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass sqlDataChangeStatementEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass sqlStatementDefaultEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass sqlConnectionStatementEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass sqlDiagnosticsStatementEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass sqlDynamicStatementEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass sqlSessionStatementEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass sqlTransactionStatementEClass = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with
+	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+	 * package URI value.
+	 * <p>Note: the correct way to create the package is via the static
+	 * factory method {@link #init init()}, which also performs
+	 * initialization of the package, or returns the registered package,
+	 * if one already exists.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see org.eclipse.datatools.modelbase.sql.statements.SQLStatementsPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private SQLStatementsPackageImpl() {
+		super(eNS_URI, SQLStatementsFactory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this
+	 * model, and for any others upon which it depends.  Simple
+	 * dependencies are satisfied by calling this method on all
+	 * dependent packages before doing anything else.  This method drives
+	 * initialization for interdependent packages directly, in parallel
+	 * with this package, itself.
+	 * <p>Of this package and its interdependencies, all packages which
+	 * have not yet been registered by their URI values are first created
+	 * and registered.  The packages are then initialized in two steps:
+	 * meta-model objects for all of the packages are created before any
+	 * are initialized, since one package's meta-model objects may refer to
+	 * those of another.
+	 * <p>Invocation of this method will not affect any packages that have
+	 * already been initialized.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static SQLStatementsPackage init() {
+		if (isInited) return (SQLStatementsPackage)EPackage.Registry.INSTANCE.getEPackage(SQLStatementsPackage.eNS_URI);
+
+		// Obtain or create and register package
+		SQLStatementsPackageImpl theSQLStatementsPackage = (SQLStatementsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(eNS_URI) instanceof SQLStatementsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(eNS_URI) : new SQLStatementsPackageImpl());
+
+		isInited = true;
+
+		// Initialize simple dependencies
+		EcorePackage.eINSTANCE.eClass();
+
+		// Obtain or create and register interdependencies
+		SQLSchemaPackageImpl theSQLSchemaPackage = (SQLSchemaPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLSchemaPackage.eNS_URI) instanceof SQLSchemaPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLSchemaPackage.eNS_URI) : SQLSchemaPackage.eINSTANCE);
+		SQLConstraintsPackageImpl theSQLConstraintsPackage = (SQLConstraintsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLConstraintsPackage.eNS_URI) instanceof SQLConstraintsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLConstraintsPackage.eNS_URI) : SQLConstraintsPackage.eINSTANCE);
+		SQLDataTypesPackageImpl theSQLDataTypesPackage = (SQLDataTypesPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLDataTypesPackage.eNS_URI) instanceof SQLDataTypesPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLDataTypesPackage.eNS_URI) : SQLDataTypesPackage.eINSTANCE);
+		SQLExpressionsPackageImpl theSQLExpressionsPackage = (SQLExpressionsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLExpressionsPackage.eNS_URI) instanceof SQLExpressionsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLExpressionsPackage.eNS_URI) : SQLExpressionsPackage.eINSTANCE);
+		SQLRoutinesPackageImpl theSQLRoutinesPackage = (SQLRoutinesPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLRoutinesPackage.eNS_URI) instanceof SQLRoutinesPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLRoutinesPackage.eNS_URI) : SQLRoutinesPackage.eINSTANCE);
+		SQLTablesPackageImpl theSQLTablesPackage = (SQLTablesPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLTablesPackage.eNS_URI) instanceof SQLTablesPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLTablesPackage.eNS_URI) : SQLTablesPackage.eINSTANCE);
+		SQLAccessControlPackageImpl theSQLAccessControlPackage = (SQLAccessControlPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLAccessControlPackage.eNS_URI) instanceof SQLAccessControlPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLAccessControlPackage.eNS_URI) : SQLAccessControlPackage.eINSTANCE);
+
+		// Create package meta-data objects
+		theSQLStatementsPackage.createPackageContents();
+		theSQLSchemaPackage.createPackageContents();
+		theSQLConstraintsPackage.createPackageContents();
+		theSQLDataTypesPackage.createPackageContents();
+		theSQLExpressionsPackage.createPackageContents();
+		theSQLRoutinesPackage.createPackageContents();
+		theSQLTablesPackage.createPackageContents();
+		theSQLAccessControlPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theSQLStatementsPackage.initializePackageContents();
+		theSQLSchemaPackage.initializePackageContents();
+		theSQLConstraintsPackage.initializePackageContents();
+		theSQLDataTypesPackage.initializePackageContents();
+		theSQLExpressionsPackage.initializePackageContents();
+		theSQLRoutinesPackage.initializePackageContents();
+		theSQLTablesPackage.initializePackageContents();
+		theSQLAccessControlPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theSQLStatementsPackage.freeze();
+
+		return theSQLStatementsPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getSQLStatement() {
+		return sqlStatementEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getSQLDataStatement() {
+		return sqlDataStatementEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getSQLSchemaStatement() {
+		return sqlSchemaStatementEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getSQLControlStatement() {
+		return sqlControlStatementEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getSQLDataChangeStatement() {
+		return sqlDataChangeStatementEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getSQLStatementDefault() {
+		return sqlStatementDefaultEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getSQLStatementDefault_SQL() {
+		return (EAttribute)sqlStatementDefaultEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getSQLConnectionStatement() {
+		return sqlConnectionStatementEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getSQLDiagnosticsStatement() {
+		return sqlDiagnosticsStatementEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getSQLDynamicStatement() {
+		return sqlDynamicStatementEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getSQLSessionStatement() {
+		return sqlSessionStatementEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getSQLTransactionStatement() {
+		return sqlTransactionStatementEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLStatementsFactory getSQLStatementsFactory() {
+		return (SQLStatementsFactory)getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package.  This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated) return;
+		isCreated = true;
+
+		// Create classes and their features
+		sqlStatementEClass = createEClass(SQL_STATEMENT);
+
+		sqlDataStatementEClass = createEClass(SQL_DATA_STATEMENT);
+
+		sqlSchemaStatementEClass = createEClass(SQL_SCHEMA_STATEMENT);
+
+		sqlControlStatementEClass = createEClass(SQL_CONTROL_STATEMENT);
+
+		sqlDataChangeStatementEClass = createEClass(SQL_DATA_CHANGE_STATEMENT);
+
+		sqlStatementDefaultEClass = createEClass(SQL_STATEMENT_DEFAULT);
+		createEAttribute(sqlStatementDefaultEClass, SQL_STATEMENT_DEFAULT__SQL);
+
+		sqlConnectionStatementEClass = createEClass(SQL_CONNECTION_STATEMENT);
+
+		sqlDiagnosticsStatementEClass = createEClass(SQL_DIAGNOSTICS_STATEMENT);
+
+		sqlDynamicStatementEClass = createEClass(SQL_DYNAMIC_STATEMENT);
+
+		sqlSessionStatementEClass = createEClass(SQL_SESSION_STATEMENT);
+
+		sqlTransactionStatementEClass = createEClass(SQL_TRANSACTION_STATEMENT);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model.  This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized) return;
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Obtain other dependent packages
+		SQLSchemaPackage theSQLSchemaPackage = (SQLSchemaPackage)EPackage.Registry.INSTANCE.getEPackage(SQLSchemaPackage.eNS_URI);
+
+		// Add supertypes to classes
+		sqlDataStatementEClass.getESuperTypes().add(this.getSQLStatement());
+		sqlSchemaStatementEClass.getESuperTypes().add(this.getSQLStatement());
+		sqlControlStatementEClass.getESuperTypes().add(this.getSQLStatement());
+		sqlDataChangeStatementEClass.getESuperTypes().add(this.getSQLDataStatement());
+		sqlStatementDefaultEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+		sqlStatementDefaultEClass.getESuperTypes().add(this.getSQLStatement());
+		sqlConnectionStatementEClass.getESuperTypes().add(this.getSQLStatement());
+		sqlDiagnosticsStatementEClass.getESuperTypes().add(this.getSQLStatement());
+		sqlDynamicStatementEClass.getESuperTypes().add(this.getSQLStatement());
+		sqlSessionStatementEClass.getESuperTypes().add(this.getSQLStatement());
+		sqlTransactionStatementEClass.getESuperTypes().add(this.getSQLStatement());
+
+		// Initialize classes and features; add operations and parameters
+		initEClass(sqlStatementEClass, SQLStatement.class, "SQLStatement", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+		addEOperation(sqlStatementEClass, ecorePackage.getEString(), "getSQL", 0, 1); //$NON-NLS-1$
+
+		EOperation op = addEOperation(sqlStatementEClass, null, "setSQL"); //$NON-NLS-1$
+		addEParameter(op, ecorePackage.getEString(), "sqlText", 0, 1); //$NON-NLS-1$
+
+		initEClass(sqlDataStatementEClass, SQLDataStatement.class, "SQLDataStatement", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+		initEClass(sqlSchemaStatementEClass, SQLSchemaStatement.class, "SQLSchemaStatement", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+		initEClass(sqlControlStatementEClass, SQLControlStatement.class, "SQLControlStatement", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+		initEClass(sqlDataChangeStatementEClass, SQLDataChangeStatement.class, "SQLDataChangeStatement", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+		initEClass(sqlStatementDefaultEClass, SQLStatementDefault.class, "SQLStatementDefault", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getSQLStatementDefault_SQL(), ecorePackage.getEString(), "SQL", null, 0, 1, SQLStatementDefault.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(sqlConnectionStatementEClass, SQLConnectionStatement.class, "SQLConnectionStatement", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+		initEClass(sqlDiagnosticsStatementEClass, SQLDiagnosticsStatement.class, "SQLDiagnosticsStatement", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+		initEClass(sqlDynamicStatementEClass, SQLDynamicStatement.class, "SQLDynamicStatement", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+		initEClass(sqlSessionStatementEClass, SQLSessionStatement.class, "SQLSessionStatement", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+		initEClass(sqlTransactionStatementEClass, SQLTransactionStatement.class, "SQLTransactionStatement", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+		// Create resource
+		createResource(eNS_URI);
+	}
+
+} //SQLStatementsPackageImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/util/SQLStatementsAdapterFactory.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/util/SQLStatementsAdapterFactory.java
new file mode 100644
index 0000000..5145ffc
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/util/SQLStatementsAdapterFactory.java
@@ -0,0 +1,345 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.statements.util;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.modelbase.sql.statements.*;
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+import org.eclipse.emf.ecore.EModelElement;
+import org.eclipse.emf.ecore.ENamedElement;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.statements.SQLStatementsPackage
+ * @generated
+ */
+public class SQLStatementsAdapterFactory extends AdapterFactoryImpl {
+	/**
+	 * The cached model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static SQLStatementsPackage modelPackage;
+
+	/**
+	 * Creates an instance of the adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLStatementsAdapterFactory() {
+		if (modelPackage == null) {
+			modelPackage = SQLStatementsPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Returns whether this factory is applicable for the type of the object.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+	 * <!-- end-user-doc -->
+	 * @return whether this factory is applicable for the type of the object.
+	 * @generated
+	 */
+	public boolean isFactoryForType(Object object) {
+		if (object == modelPackage) {
+			return true;
+		}
+		if (object instanceof EObject) {
+			return ((EObject)object).eClass().getEPackage() == modelPackage;
+		}
+		return false;
+	}
+
+	/**
+	 * The switch that delegates to the <code>createXXX</code> methods.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SQLStatementsSwitch modelSwitch =
+		new SQLStatementsSwitch() {
+			public Object caseSQLStatement(SQLStatement object) {
+				return createSQLStatementAdapter();
+			}
+			public Object caseSQLDataStatement(SQLDataStatement object) {
+				return createSQLDataStatementAdapter();
+			}
+			public Object caseSQLSchemaStatement(SQLSchemaStatement object) {
+				return createSQLSchemaStatementAdapter();
+			}
+			public Object caseSQLControlStatement(SQLControlStatement object) {
+				return createSQLControlStatementAdapter();
+			}
+			public Object caseSQLDataChangeStatement(SQLDataChangeStatement object) {
+				return createSQLDataChangeStatementAdapter();
+			}
+			public Object caseSQLStatementDefault(SQLStatementDefault object) {
+				return createSQLStatementDefaultAdapter();
+			}
+			public Object caseSQLConnectionStatement(SQLConnectionStatement object) {
+				return createSQLConnectionStatementAdapter();
+			}
+			public Object caseSQLDiagnosticsStatement(SQLDiagnosticsStatement object) {
+				return createSQLDiagnosticsStatementAdapter();
+			}
+			public Object caseSQLDynamicStatement(SQLDynamicStatement object) {
+				return createSQLDynamicStatementAdapter();
+			}
+			public Object caseSQLSessionStatement(SQLSessionStatement object) {
+				return createSQLSessionStatementAdapter();
+			}
+			public Object caseSQLTransactionStatement(SQLTransactionStatement object) {
+				return createSQLTransactionStatementAdapter();
+			}
+			public Object caseEModelElement(EModelElement object) {
+				return createEModelElementAdapter();
+			}
+			public Object caseENamedElement(ENamedElement object) {
+				return createENamedElementAdapter();
+			}
+			public Object caseSQLObject(SQLObject object) {
+				return createSQLObjectAdapter();
+			}
+			public Object defaultCase(EObject object) {
+				return createEObjectAdapter();
+			}
+		};
+
+	/**
+	 * Creates an adapter for the <code>target</code>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param target the object to adapt.
+	 * @return the adapter for the <code>target</code>.
+	 * @generated
+	 */
+	public Adapter createAdapter(Notifier target) {
+		return (Adapter)modelSwitch.doSwitch((EObject)target);
+	}
+
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.statements.SQLStatement <em>SQL Statement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.statements.SQLStatement
+	 * @generated
+	 */
+	public Adapter createSQLStatementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.statements.SQLDataStatement <em>SQL Data Statement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.statements.SQLDataStatement
+	 * @generated
+	 */
+	public Adapter createSQLDataStatementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.statements.SQLSchemaStatement <em>SQL Schema Statement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.statements.SQLSchemaStatement
+	 * @generated
+	 */
+	public Adapter createSQLSchemaStatementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.statements.SQLControlStatement <em>SQL Control Statement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.statements.SQLControlStatement
+	 * @generated
+	 */
+	public Adapter createSQLControlStatementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.statements.SQLDataChangeStatement <em>SQL Data Change Statement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.statements.SQLDataChangeStatement
+	 * @generated
+	 */
+	public Adapter createSQLDataChangeStatementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.statements.SQLStatementDefault <em>SQL Statement Default</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.statements.SQLStatementDefault
+	 * @generated
+	 */
+	public Adapter createSQLStatementDefaultAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.statements.SQLConnectionStatement <em>SQL Connection Statement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.statements.SQLConnectionStatement
+	 * @generated
+	 */
+	public Adapter createSQLConnectionStatementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.statements.SQLDiagnosticsStatement <em>SQL Diagnostics Statement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.statements.SQLDiagnosticsStatement
+	 * @generated
+	 */
+	public Adapter createSQLDiagnosticsStatementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.statements.SQLDynamicStatement <em>SQL Dynamic Statement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.statements.SQLDynamicStatement
+	 * @generated
+	 */
+	public Adapter createSQLDynamicStatementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.statements.SQLSessionStatement <em>SQL Session Statement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.statements.SQLSessionStatement
+	 * @generated
+	 */
+	public Adapter createSQLSessionStatementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.statements.SQLTransactionStatement <em>SQL Transaction Statement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.statements.SQLTransactionStatement
+	 * @generated
+	 */
+	public Adapter createSQLTransactionStatementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecore.EModelElement <em>EModel Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.emf.ecore.EModelElement
+	 * @generated
+	 */
+	public Adapter createEModelElementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecore.ENamedElement <em>ENamed Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.emf.ecore.ENamedElement
+	 * @generated
+	 */
+	public Adapter createENamedElementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.schema.SQLObject <em>SQL Object</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLObject
+	 * @generated
+	 */
+	public Adapter createSQLObjectAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for the default case.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @generated
+	 */
+	public Adapter createEObjectAdapter() {
+		return null;
+	}
+
+} //SQLStatementsAdapterFactory
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/util/SQLStatementsSwitch.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/util/SQLStatementsSwitch.java
new file mode 100644
index 0000000..4c9ab95
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/statements/util/SQLStatementsSwitch.java
@@ -0,0 +1,405 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.statements.util;
+
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.modelbase.sql.statements.*;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EModelElement;
+import org.eclipse.emf.ecore.ENamedElement;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.statements.SQLStatementsPackage
+ * @generated
+ */
+public class SQLStatementsSwitch {
+	/**
+	 * The cached model package
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static SQLStatementsPackage modelPackage;
+
+	/**
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLStatementsSwitch() {
+		if (modelPackage == null) {
+			modelPackage = SQLStatementsPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	public Object doSwitch(EObject theEObject) {
+		return doSwitch(theEObject.eClass(), theEObject);
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	protected Object doSwitch(EClass theEClass, EObject theEObject) {
+		if (theEClass.eContainer() == modelPackage) {
+			return doSwitch(theEClass.getClassifierID(), theEObject);
+		}
+		else {
+			List eSuperTypes = theEClass.getESuperTypes();
+			return
+				eSuperTypes.isEmpty() ?
+					defaultCase(theEObject) :
+					doSwitch((EClass)eSuperTypes.get(0), theEObject);
+		}
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	protected Object doSwitch(int classifierID, EObject theEObject) {
+		switch (classifierID) {
+			case SQLStatementsPackage.SQL_STATEMENT: {
+				SQLStatement sqlStatement = (SQLStatement)theEObject;
+				Object result = caseSQLStatement(sqlStatement);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLStatementsPackage.SQL_DATA_STATEMENT: {
+				SQLDataStatement sqlDataStatement = (SQLDataStatement)theEObject;
+				Object result = caseSQLDataStatement(sqlDataStatement);
+				if (result == null) result = caseSQLStatement(sqlDataStatement);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLStatementsPackage.SQL_SCHEMA_STATEMENT: {
+				SQLSchemaStatement sqlSchemaStatement = (SQLSchemaStatement)theEObject;
+				Object result = caseSQLSchemaStatement(sqlSchemaStatement);
+				if (result == null) result = caseSQLStatement(sqlSchemaStatement);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLStatementsPackage.SQL_CONTROL_STATEMENT: {
+				SQLControlStatement sqlControlStatement = (SQLControlStatement)theEObject;
+				Object result = caseSQLControlStatement(sqlControlStatement);
+				if (result == null) result = caseSQLStatement(sqlControlStatement);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLStatementsPackage.SQL_DATA_CHANGE_STATEMENT: {
+				SQLDataChangeStatement sqlDataChangeStatement = (SQLDataChangeStatement)theEObject;
+				Object result = caseSQLDataChangeStatement(sqlDataChangeStatement);
+				if (result == null) result = caseSQLDataStatement(sqlDataChangeStatement);
+				if (result == null) result = caseSQLStatement(sqlDataChangeStatement);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLStatementsPackage.SQL_STATEMENT_DEFAULT: {
+				SQLStatementDefault sqlStatementDefault = (SQLStatementDefault)theEObject;
+				Object result = caseSQLStatementDefault(sqlStatementDefault);
+				if (result == null) result = caseSQLObject(sqlStatementDefault);
+				if (result == null) result = caseSQLStatement(sqlStatementDefault);
+				if (result == null) result = caseENamedElement(sqlStatementDefault);
+				if (result == null) result = caseEModelElement(sqlStatementDefault);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLStatementsPackage.SQL_CONNECTION_STATEMENT: {
+				SQLConnectionStatement sqlConnectionStatement = (SQLConnectionStatement)theEObject;
+				Object result = caseSQLConnectionStatement(sqlConnectionStatement);
+				if (result == null) result = caseSQLStatement(sqlConnectionStatement);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLStatementsPackage.SQL_DIAGNOSTICS_STATEMENT: {
+				SQLDiagnosticsStatement sqlDiagnosticsStatement = (SQLDiagnosticsStatement)theEObject;
+				Object result = caseSQLDiagnosticsStatement(sqlDiagnosticsStatement);
+				if (result == null) result = caseSQLStatement(sqlDiagnosticsStatement);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLStatementsPackage.SQL_DYNAMIC_STATEMENT: {
+				SQLDynamicStatement sqlDynamicStatement = (SQLDynamicStatement)theEObject;
+				Object result = caseSQLDynamicStatement(sqlDynamicStatement);
+				if (result == null) result = caseSQLStatement(sqlDynamicStatement);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLStatementsPackage.SQL_SESSION_STATEMENT: {
+				SQLSessionStatement sqlSessionStatement = (SQLSessionStatement)theEObject;
+				Object result = caseSQLSessionStatement(sqlSessionStatement);
+				if (result == null) result = caseSQLStatement(sqlSessionStatement);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLStatementsPackage.SQL_TRANSACTION_STATEMENT: {
+				SQLTransactionStatement sqlTransactionStatement = (SQLTransactionStatement)theEObject;
+				Object result = caseSQLTransactionStatement(sqlTransactionStatement);
+				if (result == null) result = caseSQLStatement(sqlTransactionStatement);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			default: return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>SQL Statement</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>SQL Statement</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseSQLStatement(SQLStatement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>SQL Data Statement</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>SQL Data Statement</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseSQLDataStatement(SQLDataStatement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>SQL Schema Statement</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>SQL Schema Statement</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseSQLSchemaStatement(SQLSchemaStatement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>SQL Control Statement</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>SQL Control Statement</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseSQLControlStatement(SQLControlStatement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>SQL Data Change Statement</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>SQL Data Change Statement</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseSQLDataChangeStatement(SQLDataChangeStatement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>SQL Statement Default</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>SQL Statement Default</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseSQLStatementDefault(SQLStatementDefault object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>SQL Connection Statement</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>SQL Connection Statement</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseSQLConnectionStatement(SQLConnectionStatement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>SQL Diagnostics Statement</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>SQL Diagnostics Statement</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseSQLDiagnosticsStatement(SQLDiagnosticsStatement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>SQL Dynamic Statement</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>SQL Dynamic Statement</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseSQLDynamicStatement(SQLDynamicStatement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>SQL Session Statement</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>SQL Session Statement</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseSQLSessionStatement(SQLSessionStatement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>SQL Transaction Statement</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>SQL Transaction Statement</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseSQLTransactionStatement(SQLTransactionStatement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EModel Element</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>EModel Element</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseEModelElement(EModelElement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>ENamed Element</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>ENamed Element</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseENamedElement(ENamedElement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>SQL Object</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>SQL Object</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseSQLObject(SQLObject object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch, but this is the last case anyway.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+	 * @generated
+	 */
+	public Object defaultCase(EObject object) {
+		return null;
+	}
+
+} //SQLStatementsSwitch
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/ActionGranularityType.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/ActionGranularityType.java
new file mode 100644
index 0000000..3a8bbbd
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/ActionGranularityType.java
@@ -0,0 +1,154 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ActionGranularityType.java,v 1.3 2006/09/07 00:19:49 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.tables;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Action Granularity Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.38 Triggers
+ * <!-- end-model-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getActionGranularityType()
+ * @model
+ * @generated
+ */
+public final class ActionGranularityType extends AbstractEnumerator {
+	/**
+	 * The '<em><b>STATEMENT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #STATEMENT_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int STATEMENT = 0;
+
+	/**
+	 * The '<em><b>ROW</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #ROW_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int ROW = 1;
+
+	/**
+	 * The '<em><b>STATEMENT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>STATEMENT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #STATEMENT
+	 * @generated
+	 * @ordered
+	 */
+	public static final ActionGranularityType STATEMENT_LITERAL = new ActionGranularityType(STATEMENT, "STATEMENT", "STATEMENT"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>ROW</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>ROW</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #ROW
+	 * @generated
+	 * @ordered
+	 */
+	public static final ActionGranularityType ROW_LITERAL = new ActionGranularityType(ROW, "ROW", "ROW"); //$NON-NLS-1$
+
+	/**
+	 * An array of all the '<em><b>Action Granularity Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final ActionGranularityType[] VALUES_ARRAY =
+		new ActionGranularityType[] {
+			STATEMENT_LITERAL,
+			ROW_LITERAL,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Action Granularity Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Action Granularity Type</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ActionGranularityType get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			ActionGranularityType result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Action Granularity Type</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ActionGranularityType getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			ActionGranularityType result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Action Granularity Type</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ActionGranularityType get(int value) {
+		switch (value) {
+			case STATEMENT: return STATEMENT_LITERAL;
+			case ROW: return ROW_LITERAL;
+		}
+		return null;
+	}
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private ActionGranularityType(int value, String name, String literal) {
+		super(value, name, literal);
+	}
+
+} //ActionGranularityType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/ActionTimeType.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/ActionTimeType.java
new file mode 100644
index 0000000..e6055ef
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/ActionTimeType.java
@@ -0,0 +1,181 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ActionTimeType.java,v 1.3 2006/09/07 00:19:49 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.tables;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Action Time Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.38 Triggers
+ * <!-- end-model-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getActionTimeType()
+ * @model
+ * @generated
+ */
+public final class ActionTimeType extends AbstractEnumerator {
+	/**
+	 * The '<em><b>AFTER</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #AFTER_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int AFTER = 0;
+
+	/**
+	 * The '<em><b>BEFORE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #BEFORE_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int BEFORE = 1;
+
+	/**
+	 * The '<em><b>INSTEADOF</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #INSTEADOF_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int INSTEADOF = 2;
+
+	/**
+	 * The '<em><b>AFTER</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>AFTER</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #AFTER
+	 * @generated
+	 * @ordered
+	 */
+	public static final ActionTimeType AFTER_LITERAL = new ActionTimeType(AFTER, "AFTER", "AFTER"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>BEFORE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>BEFORE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #BEFORE
+	 * @generated
+	 * @ordered
+	 */
+	public static final ActionTimeType BEFORE_LITERAL = new ActionTimeType(BEFORE, "BEFORE", "BEFORE"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>INSTEADOF</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>INSTEADOF</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #INSTEADOF
+	 * @generated
+	 * @ordered
+	 */
+	public static final ActionTimeType INSTEADOF_LITERAL = new ActionTimeType(INSTEADOF, "INSTEADOF", "INSTEADOF"); //$NON-NLS-1$
+
+	/**
+	 * An array of all the '<em><b>Action Time Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final ActionTimeType[] VALUES_ARRAY =
+		new ActionTimeType[] {
+			AFTER_LITERAL,
+			BEFORE_LITERAL,
+			INSTEADOF_LITERAL,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Action Time Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Action Time Type</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ActionTimeType get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			ActionTimeType result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Action Time Type</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ActionTimeType getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			ActionTimeType result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Action Time Type</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ActionTimeType get(int value) {
+		switch (value) {
+			case AFTER: return AFTER_LITERAL;
+			case BEFORE: return BEFORE_LITERAL;
+			case INSTEADOF: return INSTEADOF_LITERAL;
+		}
+		return null;
+	}
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private ActionTimeType(int value, String name, String literal) {
+		super(value, name, literal);
+	}
+
+} //ActionTimeType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/BaseTable.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/BaseTable.java
new file mode 100644
index 0000000..e6d9d51
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/BaseTable.java
@@ -0,0 +1,101 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.tables;
+
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.constraints.PrimaryKey;
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Base Table</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.14 Tables
+ * 
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.BaseTable#getConstraints <em>Constraints</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.BaseTable#getReferencingForeignKeys <em>Referencing Foreign Keys</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getBaseTable()
+ * @model abstract="true"
+ * @generated
+ */
+public interface BaseTable extends Table {
+	/**
+	 * Returns the value of the '<em><b>Constraints</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.constraints.TableConstraint}.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.constraints.TableConstraint#getBaseTable <em>Base Table</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Constraints</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Constraints</em>' containment reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getBaseTable_Constraints()
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.TableConstraint#getBaseTable
+	 * @model type="org.eclipse.datatools.modelbase.sql.constraints.TableConstraint" opposite="BaseTable" containment="true"
+	 * @generated
+	 */
+	EList getConstraints();
+
+	/**
+	 * Returns the value of the '<em><b>Referencing Foreign Keys</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.constraints.ForeignKey}.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.constraints.ForeignKey#getReferencedTable <em>Referenced Table</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Referencing Foreign Keys</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Referencing Foreign Keys</em>' reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getBaseTable_ReferencingForeignKeys()
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.ForeignKey#getReferencedTable
+	 * @model type="org.eclipse.datatools.modelbase.sql.constraints.ForeignKey" opposite="referencedTable"
+	 * @generated
+	 */
+	EList getReferencingForeignKeys();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model kind="operation" dataType="org.eclipse.datatools.modelbase.sql.schema.List" many="false"
+	 * @generated
+	 */
+	List getUniqueConstraints();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model kind="operation" dataType="org.eclipse.datatools.modelbase.sql.schema.List" many="false"
+	 * @generated
+	 */
+	List getForeignKeys();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model kind="operation"
+	 * @generated
+	 */
+	PrimaryKey getPrimaryKey();
+
+} // BaseTable
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/CheckType.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/CheckType.java
new file mode 100644
index 0000000..7dbdb09
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/CheckType.java
@@ -0,0 +1,182 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: CheckType.java,v 1.3 2006/09/07 00:19:49 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.tables;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Check Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.14 Tables
+ * 
+ * <!-- end-model-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getCheckType()
+ * @model
+ * @generated
+ */
+public final class CheckType extends AbstractEnumerator {
+	/**
+	 * The '<em><b>CASCADED</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #CASCADED_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int CASCADED = 0;
+
+	/**
+	 * The '<em><b>LOCAL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #LOCAL_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int LOCAL = 1;
+
+	/**
+	 * The '<em><b>NONE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NONE_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NONE = 2;
+
+	/**
+	 * The '<em><b>CASCADED</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>CASCADED</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #CASCADED
+	 * @generated
+	 * @ordered
+	 */
+	public static final CheckType CASCADED_LITERAL = new CheckType(CASCADED, "CASCADED", "CASCADED"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>LOCAL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>LOCAL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #LOCAL
+	 * @generated
+	 * @ordered
+	 */
+	public static final CheckType LOCAL_LITERAL = new CheckType(LOCAL, "LOCAL", "LOCAL"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>NONE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NONE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #NONE
+	 * @generated
+	 * @ordered
+	 */
+	public static final CheckType NONE_LITERAL = new CheckType(NONE, "NONE", "NONE"); //$NON-NLS-1$
+
+	/**
+	 * An array of all the '<em><b>Check Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final CheckType[] VALUES_ARRAY =
+		new CheckType[] {
+			CASCADED_LITERAL,
+			LOCAL_LITERAL,
+			NONE_LITERAL,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Check Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Check Type</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static CheckType get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			CheckType result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Check Type</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static CheckType getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			CheckType result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Check Type</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static CheckType get(int value) {
+		switch (value) {
+			case CASCADED: return CASCADED_LITERAL;
+			case LOCAL: return LOCAL_LITERAL;
+			case NONE: return NONE_LITERAL;
+		}
+		return null;
+	}
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private CheckType(int value, String name, String literal) {
+		super(value, name, literal);
+	}
+
+} //CheckType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/Column.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/Column.java
new file mode 100644
index 0000000..da3ba09
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/Column.java
@@ -0,0 +1,287 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.tables;
+
+import org.eclipse.datatools.modelbase.sql.expressions.ValueExpression;
+import org.eclipse.datatools.modelbase.sql.schema.IdentitySpecifier;
+import org.eclipse.datatools.modelbase.sql.schema.ReferentialActionType;
+import org.eclipse.datatools.modelbase.sql.schema.TypedElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Column</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.13 Columns, fields, and attributes
+ * 
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.Column#getTable <em>Table</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.Column#getIdentitySpecifier <em>Identity Specifier</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.Column#getGenerateExpression <em>Generate Expression</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.Column#isImplementationDependent <em>Implementation Dependent</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.Column#isNullable <em>Nullable</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.Column#getDefaultValue <em>Default Value</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.Column#getScopeCheck <em>Scope Check</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.Column#isScopeChecked <em>Scope Checked</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getColumn()
+ * @model
+ * @generated
+ */
+public interface Column extends TypedElement {
+	/**
+	 * Returns the value of the '<em><b>Table</b></em>' container reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.tables.Table#getColumns <em>Columns</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Table</em>' container reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Table</em>' container reference.
+	 * @see #setTable(Table)
+	 * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getColumn_Table()
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Table#getColumns
+	 * @model opposite="columns" required="true"
+	 * @generated
+	 */
+	Table getTable();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.tables.Column#getTable <em>Table</em>}' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Table</em>' container reference.
+	 * @see #getTable()
+	 * @generated
+	 */
+	void setTable(Table value);
+
+	/**
+	 * Returns the value of the '<em><b>Identity Specifier</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Identity Specifier</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Identity Specifier</em>' containment reference.
+	 * @see #setIdentitySpecifier(IdentitySpecifier)
+	 * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getColumn_IdentitySpecifier()
+	 * @model containment="true"
+	 * @generated
+	 */
+	IdentitySpecifier getIdentitySpecifier();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.tables.Column#getIdentitySpecifier <em>Identity Specifier</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Identity Specifier</em>' containment reference.
+	 * @see #getIdentitySpecifier()
+	 * @generated
+	 */
+	void setIdentitySpecifier(IdentitySpecifier value);
+
+	/**
+	 * Returns the value of the '<em><b>Generate Expression</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Generate Expression</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Generate Expression</em>' containment reference.
+	 * @see #setGenerateExpression(ValueExpression)
+	 * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getColumn_GenerateExpression()
+	 * @model containment="true"
+	 * @generated
+	 */
+	ValueExpression getGenerateExpression();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.tables.Column#getGenerateExpression <em>Generate Expression</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Generate Expression</em>' containment reference.
+	 * @see #getGenerateExpression()
+	 * @generated
+	 */
+	void setGenerateExpression(ValueExpression value);
+
+	/**
+	 * Returns the value of the '<em><b>Implementation Dependent</b></em>' attribute.
+	 * The default value is <code>"False"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Implementation Dependent</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Implementation Dependent</em>' attribute.
+	 * @see #setImplementationDependent(boolean)
+	 * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getColumn_ImplementationDependent()
+	 * @model default="False"
+	 * @generated
+	 */
+	boolean isImplementationDependent();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.tables.Column#isImplementationDependent <em>Implementation Dependent</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Implementation Dependent</em>' attribute.
+	 * @see #isImplementationDependent()
+	 * @generated
+	 */
+	void setImplementationDependent(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Nullable</b></em>' attribute.
+	 * The default value is <code>"True"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Nullable</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Nullable</em>' attribute.
+	 * @see #setNullable(boolean)
+	 * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getColumn_Nullable()
+	 * @model default="True"
+	 * @generated
+	 */
+	boolean isNullable();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.tables.Column#isNullable <em>Nullable</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Nullable</em>' attribute.
+	 * @see #isNullable()
+	 * @generated
+	 */
+	void setNullable(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Default Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Default Value</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Default Value</em>' attribute.
+	 * @see #setDefaultValue(String)
+	 * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getColumn_DefaultValue()
+	 * @model
+	 * @generated
+	 */
+	String getDefaultValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.tables.Column#getDefaultValue <em>Default Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Default Value</em>' attribute.
+	 * @see #getDefaultValue()
+	 * @generated
+	 */
+	void setDefaultValue(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Scope Check</b></em>' attribute.
+	 * The default value is <code>"NO_ACTION"</code>.
+	 * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.schema.ReferentialActionType}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Scope Check</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Scope Check</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.ReferentialActionType
+	 * @see #setScopeCheck(ReferentialActionType)
+	 * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getColumn_ScopeCheck()
+	 * @model default="NO_ACTION"
+	 * @generated
+	 */
+	ReferentialActionType getScopeCheck();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.tables.Column#getScopeCheck <em>Scope Check</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Scope Check</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.ReferentialActionType
+	 * @see #getScopeCheck()
+	 * @generated
+	 */
+	void setScopeCheck(ReferentialActionType value);
+
+	/**
+	 * Returns the value of the '<em><b>Scope Checked</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Scope Checked</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Scope Checked</em>' attribute.
+	 * @see #setScopeChecked(boolean)
+	 * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getColumn_ScopeChecked()
+	 * @model
+	 * @generated
+	 */
+	boolean isScopeChecked();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.tables.Column#isScopeChecked <em>Scope Checked</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Scope Checked</em>' attribute.
+	 * @see #isScopeChecked()
+	 * @generated
+	 */
+	void setScopeChecked(boolean value);
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model kind="operation"
+	 * @generated
+	 */
+	boolean isPartOfForeignKey();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model kind="operation"
+	 * @generated
+	 */
+	boolean isPartOfUniqueConstraint();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model kind="operation"
+	 * @generated
+	 */
+	boolean isPartOfPrimaryKey();
+
+} // Column
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/DerivedTable.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/DerivedTable.java
new file mode 100644
index 0000000..86690b4
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/DerivedTable.java
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.tables;
+
+import org.eclipse.datatools.modelbase.sql.expressions.QueryExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Derived Table</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.14 Tables
+ * 
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.DerivedTable#getQueryExpression <em>Query Expression</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getDerivedTable()
+ * @model abstract="true"
+ * @generated
+ */
+public interface DerivedTable extends Table {
+	/**
+	 * Returns the value of the '<em><b>Query Expression</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Query Expression</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Query Expression</em>' containment reference.
+	 * @see #setQueryExpression(QueryExpression)
+	 * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getDerivedTable_QueryExpression()
+	 * @model containment="true"
+	 * @generated
+	 */
+	QueryExpression getQueryExpression();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.tables.DerivedTable#getQueryExpression <em>Query Expression</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Query Expression</em>' containment reference.
+	 * @see #getQueryExpression()
+	 * @generated
+	 */
+	void setQueryExpression(QueryExpression value);
+
+} // DerivedTable
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/PersistentTable.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/PersistentTable.java
new file mode 100644
index 0000000..e8c6f82
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/PersistentTable.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.tables;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Persistent Table</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.14 Tables
+ * 
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getPersistentTable()
+ * @model
+ * @generated
+ */
+public interface PersistentTable extends BaseTable {
+} // PersistentTable
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/ReferenceType.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/ReferenceType.java
new file mode 100644
index 0000000..2c73e33
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/ReferenceType.java
@@ -0,0 +1,178 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ReferenceType.java,v 1.3 2006/09/07 00:19:49 dpchou Exp $
+ */
+package org.eclipse.datatools.modelbase.sql.tables;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Reference Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getReferenceType()
+ * @model
+ * @generated
+ */
+public final class ReferenceType extends AbstractEnumerator {
+	/**
+	 * The '<em><b>SYSTEM GENERATED</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #SYSTEM_GENERATED_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int SYSTEM_GENERATED = 0;
+
+	/**
+	 * The '<em><b>USER GENERATED</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #USER_GENERATED_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int USER_GENERATED = 1;
+
+	/**
+	 * The '<em><b>DERIVED SELF REF</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #DERIVED_SELF_REF_LITERAL
+	 * @model
+	 * @generated
+	 * @ordered
+	 */
+	public static final int DERIVED_SELF_REF = 2;
+
+	/**
+	 * The '<em><b>SYSTEM GENERATED</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>SYSTEM GENERATED</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #SYSTEM_GENERATED
+	 * @generated
+	 * @ordered
+	 */
+	public static final ReferenceType SYSTEM_GENERATED_LITERAL = new ReferenceType(SYSTEM_GENERATED, "SYSTEM_GENERATED", "SYSTEM_GENERATED"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>USER GENERATED</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>USER GENERATED</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #USER_GENERATED
+	 * @generated
+	 * @ordered
+	 */
+	public static final ReferenceType USER_GENERATED_LITERAL = new ReferenceType(USER_GENERATED, "USER_GENERATED", "USER_GENERATED"); //$NON-NLS-1$
+
+	/**
+	 * The '<em><b>DERIVED SELF REF</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>DERIVED SELF REF</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #DERIVED_SELF_REF
+	 * @generated
+	 * @ordered
+	 */
+	public static final ReferenceType DERIVED_SELF_REF_LITERAL = new ReferenceType(DERIVED_SELF_REF, "DERIVED_SELF_REF", "DERIVED_SELF_REF"); //$NON-NLS-1$
+
+	/**
+	 * An array of all the '<em><b>Reference Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final ReferenceType[] VALUES_ARRAY =
+		new ReferenceType[] {
+			SYSTEM_GENERATED_LITERAL,
+			USER_GENERATED_LITERAL,
+			DERIVED_SELF_REF_LITERAL,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Reference Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Reference Type</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ReferenceType get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			ReferenceType result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Reference Type</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ReferenceType getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			ReferenceType result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Reference Type</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ReferenceType get(int value) {
+		switch (value) {
+			case SYSTEM_GENERATED: return SYSTEM_GENERATED_LITERAL;
+			case USER_GENERATED: return USER_GENERATED_LITERAL;
+			case DERIVED_SELF_REF: return DERIVED_SELF_REF_LITERAL;
+		}
+		return null;
+	}
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private ReferenceType(int value, String name, String literal) {
+		super(value, name, literal);
+	}
+
+} //ReferenceType
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/SQLTablesFactory.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/SQLTablesFactory.java
new file mode 100644
index 0000000..8cd9f8c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/SQLTablesFactory.java
@@ -0,0 +1,86 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.tables;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage
+ * @generated
+ */
+public interface SQLTablesFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	SQLTablesFactory eINSTANCE = org.eclipse.datatools.modelbase.sql.tables.impl.SQLTablesFactoryImpl.init();
+
+	/**
+	 * Returns a new object of class '<em>View Table</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>View Table</em>'.
+	 * @generated
+	 */
+	ViewTable createViewTable();
+
+	/**
+	 * Returns a new object of class '<em>Temporary Table</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Temporary Table</em>'.
+	 * @generated
+	 */
+	TemporaryTable createTemporaryTable();
+
+	/**
+	 * Returns a new object of class '<em>Persistent Table</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Persistent Table</em>'.
+	 * @generated
+	 */
+	PersistentTable createPersistentTable();
+
+	/**
+	 * Returns a new object of class '<em>Column</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Column</em>'.
+	 * @generated
+	 */
+	Column createColumn();
+
+	/**
+	 * Returns a new object of class '<em>Trigger</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Trigger</em>'.
+	 * @generated
+	 */
+	Trigger createTrigger();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	SQLTablesPackage getSQLTablesPackage();
+
+} //SQLTablesFactory
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/SQLTablesPackage.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/SQLTablesPackage.java
new file mode 100644
index 0000000..2259a24
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/SQLTablesPackage.java
@@ -0,0 +1,2706 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.tables;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ *   <li>each class,</li>
+ *   <li>each feature of each class,</li>
+ *   <li>each enum,</li>
+ *   <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface SQLTablesPackage extends EPackage {
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNAME = "tables"; //$NON-NLS-1$
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_URI = "http:///org/eclipse/datatools/modelbase/sql/tables.ecore"; //$NON-NLS-1$
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_PREFIX = "SQLTables"; //$NON-NLS-1$
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	SQLTablesPackage eINSTANCE = org.eclipse.datatools.modelbase.sql.tables.impl.SQLTablesPackageImpl.init();
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.tables.impl.TableImpl <em>Table</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.tables.impl.TableImpl
+	 * @see org.eclipse.datatools.modelbase.sql.tables.impl.SQLTablesPackageImpl#getTable()
+	 * @generated
+	 */
+	int TABLE = 2;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Columns</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE__COLUMNS = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Supertable</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE__SUPERTABLE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Subtables</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE__SUBTABLES = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Schema</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE__SCHEMA = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Udt</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE__UDT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Triggers</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE__TRIGGERS = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Index</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE__INDEX = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 6;
+
+	/**
+	 * The feature id for the '<em><b>Self Ref Column Generation</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE__SELF_REF_COLUMN_GENERATION = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 7;
+
+	/**
+	 * The feature id for the '<em><b>Insertable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE__INSERTABLE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 8;
+
+	/**
+	 * The feature id for the '<em><b>Updatable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE__UPDATABLE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 9;
+
+	/**
+	 * The number of structural features of the '<em>Table</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 10;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.tables.impl.DerivedTableImpl <em>Derived Table</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.tables.impl.DerivedTableImpl
+	 * @see org.eclipse.datatools.modelbase.sql.tables.impl.SQLTablesPackageImpl#getDerivedTable()
+	 * @generated
+	 */
+	int DERIVED_TABLE = 4;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DERIVED_TABLE__EANNOTATIONS = TABLE__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DERIVED_TABLE__NAME = TABLE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DERIVED_TABLE__DEPENDENCIES = TABLE__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DERIVED_TABLE__DESCRIPTION = TABLE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DERIVED_TABLE__LABEL = TABLE__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DERIVED_TABLE__COMMENTS = TABLE__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DERIVED_TABLE__EXTENSIONS = TABLE__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DERIVED_TABLE__PRIVILEGES = TABLE__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Columns</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DERIVED_TABLE__COLUMNS = TABLE__COLUMNS;
+
+	/**
+	 * The feature id for the '<em><b>Supertable</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DERIVED_TABLE__SUPERTABLE = TABLE__SUPERTABLE;
+
+	/**
+	 * The feature id for the '<em><b>Subtables</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DERIVED_TABLE__SUBTABLES = TABLE__SUBTABLES;
+
+	/**
+	 * The feature id for the '<em><b>Schema</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DERIVED_TABLE__SCHEMA = TABLE__SCHEMA;
+
+	/**
+	 * The feature id for the '<em><b>Udt</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DERIVED_TABLE__UDT = TABLE__UDT;
+
+	/**
+	 * The feature id for the '<em><b>Triggers</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DERIVED_TABLE__TRIGGERS = TABLE__TRIGGERS;
+
+	/**
+	 * The feature id for the '<em><b>Index</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DERIVED_TABLE__INDEX = TABLE__INDEX;
+
+	/**
+	 * The feature id for the '<em><b>Self Ref Column Generation</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DERIVED_TABLE__SELF_REF_COLUMN_GENERATION = TABLE__SELF_REF_COLUMN_GENERATION;
+
+	/**
+	 * The feature id for the '<em><b>Insertable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DERIVED_TABLE__INSERTABLE = TABLE__INSERTABLE;
+
+	/**
+	 * The feature id for the '<em><b>Updatable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DERIVED_TABLE__UPDATABLE = TABLE__UPDATABLE;
+
+	/**
+	 * The feature id for the '<em><b>Query Expression</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DERIVED_TABLE__QUERY_EXPRESSION = TABLE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Derived Table</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DERIVED_TABLE_FEATURE_COUNT = TABLE_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.tables.impl.ViewTableImpl <em>View Table</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.tables.impl.ViewTableImpl
+	 * @see org.eclipse.datatools.modelbase.sql.tables.impl.SQLTablesPackageImpl#getViewTable()
+	 * @generated
+	 */
+	int VIEW_TABLE = 0;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VIEW_TABLE__EANNOTATIONS = DERIVED_TABLE__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VIEW_TABLE__NAME = DERIVED_TABLE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VIEW_TABLE__DEPENDENCIES = DERIVED_TABLE__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VIEW_TABLE__DESCRIPTION = DERIVED_TABLE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VIEW_TABLE__LABEL = DERIVED_TABLE__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VIEW_TABLE__COMMENTS = DERIVED_TABLE__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VIEW_TABLE__EXTENSIONS = DERIVED_TABLE__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VIEW_TABLE__PRIVILEGES = DERIVED_TABLE__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Columns</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VIEW_TABLE__COLUMNS = DERIVED_TABLE__COLUMNS;
+
+	/**
+	 * The feature id for the '<em><b>Supertable</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VIEW_TABLE__SUPERTABLE = DERIVED_TABLE__SUPERTABLE;
+
+	/**
+	 * The feature id for the '<em><b>Subtables</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VIEW_TABLE__SUBTABLES = DERIVED_TABLE__SUBTABLES;
+
+	/**
+	 * The feature id for the '<em><b>Schema</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VIEW_TABLE__SCHEMA = DERIVED_TABLE__SCHEMA;
+
+	/**
+	 * The feature id for the '<em><b>Udt</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VIEW_TABLE__UDT = DERIVED_TABLE__UDT;
+
+	/**
+	 * The feature id for the '<em><b>Triggers</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VIEW_TABLE__TRIGGERS = DERIVED_TABLE__TRIGGERS;
+
+	/**
+	 * The feature id for the '<em><b>Index</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VIEW_TABLE__INDEX = DERIVED_TABLE__INDEX;
+
+	/**
+	 * The feature id for the '<em><b>Self Ref Column Generation</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VIEW_TABLE__SELF_REF_COLUMN_GENERATION = DERIVED_TABLE__SELF_REF_COLUMN_GENERATION;
+
+	/**
+	 * The feature id for the '<em><b>Insertable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VIEW_TABLE__INSERTABLE = DERIVED_TABLE__INSERTABLE;
+
+	/**
+	 * The feature id for the '<em><b>Updatable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VIEW_TABLE__UPDATABLE = DERIVED_TABLE__UPDATABLE;
+
+	/**
+	 * The feature id for the '<em><b>Query Expression</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VIEW_TABLE__QUERY_EXPRESSION = DERIVED_TABLE__QUERY_EXPRESSION;
+
+	/**
+	 * The feature id for the '<em><b>Check Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VIEW_TABLE__CHECK_TYPE = DERIVED_TABLE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>View Table</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VIEW_TABLE_FEATURE_COUNT = DERIVED_TABLE_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.tables.impl.BaseTableImpl <em>Base Table</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.tables.impl.BaseTableImpl
+	 * @see org.eclipse.datatools.modelbase.sql.tables.impl.SQLTablesPackageImpl#getBaseTable()
+	 * @generated
+	 */
+	int BASE_TABLE = 5;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_TABLE__EANNOTATIONS = TABLE__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_TABLE__NAME = TABLE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_TABLE__DEPENDENCIES = TABLE__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_TABLE__DESCRIPTION = TABLE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_TABLE__LABEL = TABLE__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_TABLE__COMMENTS = TABLE__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_TABLE__EXTENSIONS = TABLE__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_TABLE__PRIVILEGES = TABLE__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Columns</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_TABLE__COLUMNS = TABLE__COLUMNS;
+
+	/**
+	 * The feature id for the '<em><b>Supertable</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_TABLE__SUPERTABLE = TABLE__SUPERTABLE;
+
+	/**
+	 * The feature id for the '<em><b>Subtables</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_TABLE__SUBTABLES = TABLE__SUBTABLES;
+
+	/**
+	 * The feature id for the '<em><b>Schema</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_TABLE__SCHEMA = TABLE__SCHEMA;
+
+	/**
+	 * The feature id for the '<em><b>Udt</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_TABLE__UDT = TABLE__UDT;
+
+	/**
+	 * The feature id for the '<em><b>Triggers</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_TABLE__TRIGGERS = TABLE__TRIGGERS;
+
+	/**
+	 * The feature id for the '<em><b>Index</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_TABLE__INDEX = TABLE__INDEX;
+
+	/**
+	 * The feature id for the '<em><b>Self Ref Column Generation</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_TABLE__SELF_REF_COLUMN_GENERATION = TABLE__SELF_REF_COLUMN_GENERATION;
+
+	/**
+	 * The feature id for the '<em><b>Insertable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_TABLE__INSERTABLE = TABLE__INSERTABLE;
+
+	/**
+	 * The feature id for the '<em><b>Updatable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_TABLE__UPDATABLE = TABLE__UPDATABLE;
+
+	/**
+	 * The feature id for the '<em><b>Constraints</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_TABLE__CONSTRAINTS = TABLE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Referencing Foreign Keys</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_TABLE__REFERENCING_FOREIGN_KEYS = TABLE_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>Base Table</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_TABLE_FEATURE_COUNT = TABLE_FEATURE_COUNT + 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.tables.impl.TemporaryTableImpl <em>Temporary Table</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.tables.impl.TemporaryTableImpl
+	 * @see org.eclipse.datatools.modelbase.sql.tables.impl.SQLTablesPackageImpl#getTemporaryTable()
+	 * @generated
+	 */
+	int TEMPORARY_TABLE = 1;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TEMPORARY_TABLE__EANNOTATIONS = BASE_TABLE__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TEMPORARY_TABLE__NAME = BASE_TABLE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TEMPORARY_TABLE__DEPENDENCIES = BASE_TABLE__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TEMPORARY_TABLE__DESCRIPTION = BASE_TABLE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TEMPORARY_TABLE__LABEL = BASE_TABLE__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TEMPORARY_TABLE__COMMENTS = BASE_TABLE__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TEMPORARY_TABLE__EXTENSIONS = BASE_TABLE__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TEMPORARY_TABLE__PRIVILEGES = BASE_TABLE__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Columns</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TEMPORARY_TABLE__COLUMNS = BASE_TABLE__COLUMNS;
+
+	/**
+	 * The feature id for the '<em><b>Supertable</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TEMPORARY_TABLE__SUPERTABLE = BASE_TABLE__SUPERTABLE;
+
+	/**
+	 * The feature id for the '<em><b>Subtables</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TEMPORARY_TABLE__SUBTABLES = BASE_TABLE__SUBTABLES;
+
+	/**
+	 * The feature id for the '<em><b>Schema</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TEMPORARY_TABLE__SCHEMA = BASE_TABLE__SCHEMA;
+
+	/**
+	 * The feature id for the '<em><b>Udt</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TEMPORARY_TABLE__UDT = BASE_TABLE__UDT;
+
+	/**
+	 * The feature id for the '<em><b>Triggers</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TEMPORARY_TABLE__TRIGGERS = BASE_TABLE__TRIGGERS;
+
+	/**
+	 * The feature id for the '<em><b>Index</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TEMPORARY_TABLE__INDEX = BASE_TABLE__INDEX;
+
+	/**
+	 * The feature id for the '<em><b>Self Ref Column Generation</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TEMPORARY_TABLE__SELF_REF_COLUMN_GENERATION = BASE_TABLE__SELF_REF_COLUMN_GENERATION;
+
+	/**
+	 * The feature id for the '<em><b>Insertable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TEMPORARY_TABLE__INSERTABLE = BASE_TABLE__INSERTABLE;
+
+	/**
+	 * The feature id for the '<em><b>Updatable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TEMPORARY_TABLE__UPDATABLE = BASE_TABLE__UPDATABLE;
+
+	/**
+	 * The feature id for the '<em><b>Constraints</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TEMPORARY_TABLE__CONSTRAINTS = BASE_TABLE__CONSTRAINTS;
+
+	/**
+	 * The feature id for the '<em><b>Referencing Foreign Keys</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TEMPORARY_TABLE__REFERENCING_FOREIGN_KEYS = BASE_TABLE__REFERENCING_FOREIGN_KEYS;
+
+	/**
+	 * The feature id for the '<em><b>Local</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TEMPORARY_TABLE__LOCAL = BASE_TABLE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Delete On Commit</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TEMPORARY_TABLE__DELETE_ON_COMMIT = BASE_TABLE_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>Temporary Table</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TEMPORARY_TABLE_FEATURE_COUNT = BASE_TABLE_FEATURE_COUNT + 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.tables.impl.PersistentTableImpl <em>Persistent Table</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.tables.impl.PersistentTableImpl
+	 * @see org.eclipse.datatools.modelbase.sql.tables.impl.SQLTablesPackageImpl#getPersistentTable()
+	 * @generated
+	 */
+	int PERSISTENT_TABLE = 3;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERSISTENT_TABLE__EANNOTATIONS = BASE_TABLE__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERSISTENT_TABLE__NAME = BASE_TABLE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERSISTENT_TABLE__DEPENDENCIES = BASE_TABLE__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERSISTENT_TABLE__DESCRIPTION = BASE_TABLE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERSISTENT_TABLE__LABEL = BASE_TABLE__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERSISTENT_TABLE__COMMENTS = BASE_TABLE__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERSISTENT_TABLE__EXTENSIONS = BASE_TABLE__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERSISTENT_TABLE__PRIVILEGES = BASE_TABLE__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Columns</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERSISTENT_TABLE__COLUMNS = BASE_TABLE__COLUMNS;
+
+	/**
+	 * The feature id for the '<em><b>Supertable</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERSISTENT_TABLE__SUPERTABLE = BASE_TABLE__SUPERTABLE;
+
+	/**
+	 * The feature id for the '<em><b>Subtables</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERSISTENT_TABLE__SUBTABLES = BASE_TABLE__SUBTABLES;
+
+	/**
+	 * The feature id for the '<em><b>Schema</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERSISTENT_TABLE__SCHEMA = BASE_TABLE__SCHEMA;
+
+	/**
+	 * The feature id for the '<em><b>Udt</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERSISTENT_TABLE__UDT = BASE_TABLE__UDT;
+
+	/**
+	 * The feature id for the '<em><b>Triggers</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERSISTENT_TABLE__TRIGGERS = BASE_TABLE__TRIGGERS;
+
+	/**
+	 * The feature id for the '<em><b>Index</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERSISTENT_TABLE__INDEX = BASE_TABLE__INDEX;
+
+	/**
+	 * The feature id for the '<em><b>Self Ref Column Generation</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERSISTENT_TABLE__SELF_REF_COLUMN_GENERATION = BASE_TABLE__SELF_REF_COLUMN_GENERATION;
+
+	/**
+	 * The feature id for the '<em><b>Insertable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERSISTENT_TABLE__INSERTABLE = BASE_TABLE__INSERTABLE;
+
+	/**
+	 * The feature id for the '<em><b>Updatable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERSISTENT_TABLE__UPDATABLE = BASE_TABLE__UPDATABLE;
+
+	/**
+	 * The feature id for the '<em><b>Constraints</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERSISTENT_TABLE__CONSTRAINTS = BASE_TABLE__CONSTRAINTS;
+
+	/**
+	 * The feature id for the '<em><b>Referencing Foreign Keys</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERSISTENT_TABLE__REFERENCING_FOREIGN_KEYS = BASE_TABLE__REFERENCING_FOREIGN_KEYS;
+
+	/**
+	 * The number of structural features of the '<em>Persistent Table</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERSISTENT_TABLE_FEATURE_COUNT = BASE_TABLE_FEATURE_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.tables.impl.ColumnImpl <em>Column</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.tables.impl.ColumnImpl
+	 * @see org.eclipse.datatools.modelbase.sql.tables.impl.SQLTablesPackageImpl#getColumn()
+	 * @generated
+	 */
+	int COLUMN = 6;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLUMN__EANNOTATIONS = SQLSchemaPackage.TYPED_ELEMENT__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLUMN__NAME = SQLSchemaPackage.TYPED_ELEMENT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLUMN__DEPENDENCIES = SQLSchemaPackage.TYPED_ELEMENT__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLUMN__DESCRIPTION = SQLSchemaPackage.TYPED_ELEMENT__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLUMN__LABEL = SQLSchemaPackage.TYPED_ELEMENT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLUMN__COMMENTS = SQLSchemaPackage.TYPED_ELEMENT__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLUMN__EXTENSIONS = SQLSchemaPackage.TYPED_ELEMENT__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLUMN__PRIVILEGES = SQLSchemaPackage.TYPED_ELEMENT__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Contained Type</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLUMN__CONTAINED_TYPE = SQLSchemaPackage.TYPED_ELEMENT__CONTAINED_TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Referenced Type</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLUMN__REFERENCED_TYPE = SQLSchemaPackage.TYPED_ELEMENT__REFERENCED_TYPE;
+
+	/**
+	 * The feature id for the '<em><b>Table</b></em>' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLUMN__TABLE = SQLSchemaPackage.TYPED_ELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Identity Specifier</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLUMN__IDENTITY_SPECIFIER = SQLSchemaPackage.TYPED_ELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Generate Expression</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLUMN__GENERATE_EXPRESSION = SQLSchemaPackage.TYPED_ELEMENT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Implementation Dependent</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLUMN__IMPLEMENTATION_DEPENDENT = SQLSchemaPackage.TYPED_ELEMENT_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Nullable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLUMN__NULLABLE = SQLSchemaPackage.TYPED_ELEMENT_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Default Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLUMN__DEFAULT_VALUE = SQLSchemaPackage.TYPED_ELEMENT_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Scope Check</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLUMN__SCOPE_CHECK = SQLSchemaPackage.TYPED_ELEMENT_FEATURE_COUNT + 6;
+
+	/**
+	 * The feature id for the '<em><b>Scope Checked</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLUMN__SCOPE_CHECKED = SQLSchemaPackage.TYPED_ELEMENT_FEATURE_COUNT + 7;
+
+	/**
+	 * The number of structural features of the '<em>Column</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLUMN_FEATURE_COUNT = SQLSchemaPackage.TYPED_ELEMENT_FEATURE_COUNT + 8;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.tables.impl.TriggerImpl <em>Trigger</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.tables.impl.TriggerImpl
+	 * @see org.eclipse.datatools.modelbase.sql.tables.impl.SQLTablesPackageImpl#getTrigger()
+	 * @generated
+	 */
+	int TRIGGER = 7;
+
+	/**
+	 * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRIGGER__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRIGGER__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRIGGER__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRIGGER__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRIGGER__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRIGGER__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRIGGER__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+	/**
+	 * The feature id for the '<em><b>Privileges</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRIGGER__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+	/**
+	 * The feature id for the '<em><b>Schema</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRIGGER__SCHEMA = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Subject Table</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRIGGER__SUBJECT_TABLE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Action Statement</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRIGGER__ACTION_STATEMENT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Trigger Column</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRIGGER__TRIGGER_COLUMN = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Action Granularity</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRIGGER__ACTION_GRANULARITY = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>When</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRIGGER__WHEN = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Time Stamp</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRIGGER__TIME_STAMP = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 6;
+
+	/**
+	 * The feature id for the '<em><b>Action Time</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRIGGER__ACTION_TIME = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 7;
+
+	/**
+	 * The feature id for the '<em><b>Update Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRIGGER__UPDATE_TYPE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 8;
+
+	/**
+	 * The feature id for the '<em><b>Insert Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRIGGER__INSERT_TYPE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 9;
+
+	/**
+	 * The feature id for the '<em><b>Delete Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRIGGER__DELETE_TYPE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 10;
+
+	/**
+	 * The feature id for the '<em><b>Old Row</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRIGGER__OLD_ROW = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 11;
+
+	/**
+	 * The feature id for the '<em><b>New Row</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRIGGER__NEW_ROW = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 12;
+
+	/**
+	 * The feature id for the '<em><b>Old Table</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRIGGER__OLD_TABLE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 13;
+
+	/**
+	 * The feature id for the '<em><b>New Table</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRIGGER__NEW_TABLE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 14;
+
+	/**
+	 * The number of structural features of the '<em>Trigger</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRIGGER_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 15;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.tables.CheckType <em>Check Type</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.tables.CheckType
+	 * @see org.eclipse.datatools.modelbase.sql.tables.impl.SQLTablesPackageImpl#getCheckType()
+	 * @generated
+	 */
+	int CHECK_TYPE = 8;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.tables.ReferenceType <em>Reference Type</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.tables.ReferenceType
+	 * @see org.eclipse.datatools.modelbase.sql.tables.impl.SQLTablesPackageImpl#getReferenceType()
+	 * @generated
+	 */
+	int REFERENCE_TYPE = 9;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.tables.ActionTimeType <em>Action Time Type</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.tables.ActionTimeType
+	 * @see org.eclipse.datatools.modelbase.sql.tables.impl.SQLTablesPackageImpl#getActionTimeType()
+	 * @generated
+	 */
+	int ACTION_TIME_TYPE = 10;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.datatools.modelbase.sql.tables.ActionGranularityType <em>Action Granularity Type</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.datatools.modelbase.sql.tables.ActionGranularityType
+	 * @see org.eclipse.datatools.modelbase.sql.tables.impl.SQLTablesPackageImpl#getActionGranularityType()
+	 * @generated
+	 */
+	int ACTION_GRANULARITY_TYPE = 11;
+
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.tables.ViewTable <em>View Table</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>View Table</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.ViewTable
+	 * @generated
+	 */
+	EClass getViewTable();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.tables.ViewTable#getCheckType <em>Check Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Check Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.ViewTable#getCheckType()
+	 * @see #getViewTable()
+	 * @generated
+	 */
+	EAttribute getViewTable_CheckType();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.tables.TemporaryTable <em>Temporary Table</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Temporary Table</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.TemporaryTable
+	 * @generated
+	 */
+	EClass getTemporaryTable();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.tables.TemporaryTable#isLocal <em>Local</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Local</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.TemporaryTable#isLocal()
+	 * @see #getTemporaryTable()
+	 * @generated
+	 */
+	EAttribute getTemporaryTable_Local();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.tables.TemporaryTable#isDeleteOnCommit <em>Delete On Commit</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Delete On Commit</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.TemporaryTable#isDeleteOnCommit()
+	 * @see #getTemporaryTable()
+	 * @generated
+	 */
+	EAttribute getTemporaryTable_DeleteOnCommit();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.tables.Table <em>Table</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Table</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Table
+	 * @generated
+	 */
+	EClass getTable();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.tables.Table#getColumns <em>Columns</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Columns</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Table#getColumns()
+	 * @see #getTable()
+	 * @generated
+	 */
+	EReference getTable_Columns();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.sql.tables.Table#getSupertable <em>Supertable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Supertable</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Table#getSupertable()
+	 * @see #getTable()
+	 * @generated
+	 */
+	EReference getTable_Supertable();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.sql.tables.Table#getSubtables <em>Subtables</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Subtables</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Table#getSubtables()
+	 * @see #getTable()
+	 * @generated
+	 */
+	EReference getTable_Subtables();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.sql.tables.Table#getSchema <em>Schema</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Schema</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Table#getSchema()
+	 * @see #getTable()
+	 * @generated
+	 */
+	EReference getTable_Schema();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.sql.tables.Table#getUdt <em>Udt</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Udt</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Table#getUdt()
+	 * @see #getTable()
+	 * @generated
+	 */
+	EReference getTable_Udt();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.sql.tables.Table#getTriggers <em>Triggers</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Triggers</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Table#getTriggers()
+	 * @see #getTable()
+	 * @generated
+	 */
+	EReference getTable_Triggers();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.sql.tables.Table#getIndex <em>Index</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Index</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Table#getIndex()
+	 * @see #getTable()
+	 * @generated
+	 */
+	EReference getTable_Index();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.tables.Table#getSelfRefColumnGeneration <em>Self Ref Column Generation</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Self Ref Column Generation</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Table#getSelfRefColumnGeneration()
+	 * @see #getTable()
+	 * @generated
+	 */
+	EAttribute getTable_SelfRefColumnGeneration();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.tables.Table#isInsertable <em>Insertable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Insertable</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Table#isInsertable()
+	 * @see #getTable()
+	 * @generated
+	 */
+	EAttribute getTable_Insertable();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.tables.Table#isUpdatable <em>Updatable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Updatable</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Table#isUpdatable()
+	 * @see #getTable()
+	 * @generated
+	 */
+	EAttribute getTable_Updatable();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.tables.PersistentTable <em>Persistent Table</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Persistent Table</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.PersistentTable
+	 * @generated
+	 */
+	EClass getPersistentTable();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.tables.DerivedTable <em>Derived Table</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Derived Table</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.DerivedTable
+	 * @generated
+	 */
+	EClass getDerivedTable();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.tables.DerivedTable#getQueryExpression <em>Query Expression</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Query Expression</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.DerivedTable#getQueryExpression()
+	 * @see #getDerivedTable()
+	 * @generated
+	 */
+	EReference getDerivedTable_QueryExpression();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.tables.BaseTable <em>Base Table</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Base Table</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.BaseTable
+	 * @generated
+	 */
+	EClass getBaseTable();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.tables.BaseTable#getConstraints <em>Constraints</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Constraints</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.BaseTable#getConstraints()
+	 * @see #getBaseTable()
+	 * @generated
+	 */
+	EReference getBaseTable_Constraints();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.sql.tables.BaseTable#getReferencingForeignKeys <em>Referencing Foreign Keys</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Referencing Foreign Keys</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.BaseTable#getReferencingForeignKeys()
+	 * @see #getBaseTable()
+	 * @generated
+	 */
+	EReference getBaseTable_ReferencingForeignKeys();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.tables.Column <em>Column</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Column</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Column
+	 * @generated
+	 */
+	EClass getColumn();
+
+	/**
+	 * Returns the meta object for the container reference '{@link org.eclipse.datatools.modelbase.sql.tables.Column#getTable <em>Table</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the container reference '<em>Table</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Column#getTable()
+	 * @see #getColumn()
+	 * @generated
+	 */
+	EReference getColumn_Table();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.tables.Column#getIdentitySpecifier <em>Identity Specifier</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Identity Specifier</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Column#getIdentitySpecifier()
+	 * @see #getColumn()
+	 * @generated
+	 */
+	EReference getColumn_IdentitySpecifier();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.tables.Column#getGenerateExpression <em>Generate Expression</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Generate Expression</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Column#getGenerateExpression()
+	 * @see #getColumn()
+	 * @generated
+	 */
+	EReference getColumn_GenerateExpression();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.tables.Column#isImplementationDependent <em>Implementation Dependent</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Implementation Dependent</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Column#isImplementationDependent()
+	 * @see #getColumn()
+	 * @generated
+	 */
+	EAttribute getColumn_ImplementationDependent();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.tables.Column#isNullable <em>Nullable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Nullable</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Column#isNullable()
+	 * @see #getColumn()
+	 * @generated
+	 */
+	EAttribute getColumn_Nullable();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.tables.Column#getDefaultValue <em>Default Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Default Value</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Column#getDefaultValue()
+	 * @see #getColumn()
+	 * @generated
+	 */
+	EAttribute getColumn_DefaultValue();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.tables.Column#getScopeCheck <em>Scope Check</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Scope Check</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Column#getScopeCheck()
+	 * @see #getColumn()
+	 * @generated
+	 */
+	EAttribute getColumn_ScopeCheck();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.tables.Column#isScopeChecked <em>Scope Checked</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Scope Checked</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Column#isScopeChecked()
+	 * @see #getColumn()
+	 * @generated
+	 */
+	EAttribute getColumn_ScopeChecked();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.datatools.modelbase.sql.tables.Trigger <em>Trigger</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Trigger</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Trigger
+	 * @generated
+	 */
+	EClass getTrigger();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.sql.tables.Trigger#getSchema <em>Schema</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Schema</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Trigger#getSchema()
+	 * @see #getTrigger()
+	 * @generated
+	 */
+	EReference getTrigger_Schema();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.datatools.modelbase.sql.tables.Trigger#getSubjectTable <em>Subject Table</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Subject Table</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Trigger#getSubjectTable()
+	 * @see #getTrigger()
+	 * @generated
+	 */
+	EReference getTrigger_SubjectTable();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.modelbase.sql.tables.Trigger#getActionStatement <em>Action Statement</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Action Statement</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Trigger#getActionStatement()
+	 * @see #getTrigger()
+	 * @generated
+	 */
+	EReference getTrigger_ActionStatement();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.datatools.modelbase.sql.tables.Trigger#getTriggerColumn <em>Trigger Column</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Trigger Column</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Trigger#getTriggerColumn()
+	 * @see #getTrigger()
+	 * @generated
+	 */
+	EReference getTrigger_TriggerColumn();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.tables.Trigger#getActionGranularity <em>Action Granularity</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Action Granularity</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Trigger#getActionGranularity()
+	 * @see #getTrigger()
+	 * @generated
+	 */
+	EAttribute getTrigger_ActionGranularity();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.datatools.modelbase.sql.tables.Trigger#getWhen <em>When</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>When</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Trigger#getWhen()
+	 * @see #getTrigger()
+	 * @generated
+	 */
+	EReference getTrigger_When();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.tables.Trigger#getTimeStamp <em>Time Stamp</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Time Stamp</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Trigger#getTimeStamp()
+	 * @see #getTrigger()
+	 * @generated
+	 */
+	EAttribute getTrigger_TimeStamp();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.tables.Trigger#getActionTime <em>Action Time</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Action Time</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Trigger#getActionTime()
+	 * @see #getTrigger()
+	 * @generated
+	 */
+	EAttribute getTrigger_ActionTime();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.tables.Trigger#isUpdateType <em>Update Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Update Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Trigger#isUpdateType()
+	 * @see #getTrigger()
+	 * @generated
+	 */
+	EAttribute getTrigger_UpdateType();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.tables.Trigger#isInsertType <em>Insert Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Insert Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Trigger#isInsertType()
+	 * @see #getTrigger()
+	 * @generated
+	 */
+	EAttribute getTrigger_InsertType();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.tables.Trigger#isDeleteType <em>Delete Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Delete Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Trigger#isDeleteType()
+	 * @see #getTrigger()
+	 * @generated
+	 */
+	EAttribute getTrigger_DeleteType();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.tables.Trigger#getOldRow <em>Old Row</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Old Row</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Trigger#getOldRow()
+	 * @see #getTrigger()
+	 * @generated
+	 */
+	EAttribute getTrigger_OldRow();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.tables.Trigger#getNewRow <em>New Row</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>New Row</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Trigger#getNewRow()
+	 * @see #getTrigger()
+	 * @generated
+	 */
+	EAttribute getTrigger_NewRow();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.tables.Trigger#getOldTable <em>Old Table</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Old Table</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Trigger#getOldTable()
+	 * @see #getTrigger()
+	 * @generated
+	 */
+	EAttribute getTrigger_OldTable();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.datatools.modelbase.sql.tables.Trigger#getNewTable <em>New Table</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>New Table</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Trigger#getNewTable()
+	 * @see #getTrigger()
+	 * @generated
+	 */
+	EAttribute getTrigger_NewTable();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.sql.tables.CheckType <em>Check Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Check Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.CheckType
+	 * @generated
+	 */
+	EEnum getCheckType();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.sql.tables.ReferenceType <em>Reference Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Reference Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.ReferenceType
+	 * @generated
+	 */
+	EEnum getReferenceType();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.sql.tables.ActionTimeType <em>Action Time Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Action Time Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.ActionTimeType
+	 * @generated
+	 */
+	EEnum getActionTimeType();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.datatools.modelbase.sql.tables.ActionGranularityType <em>Action Granularity Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Action Granularity Type</em>'.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.ActionGranularityType
+	 * @generated
+	 */
+	EEnum getActionGranularityType();
+
+	/**
+	 * Returns the factory that creates the instances of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the factory that creates the instances of the model.
+	 * @generated
+	 */
+	SQLTablesFactory getSQLTablesFactory();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * Defines literals for the meta objects that represent
+	 * <ul>
+	 *   <li>each class,</li>
+	 *   <li>each feature of each class,</li>
+	 *   <li>each enum,</li>
+	 *   <li>and each data type</li>
+	 * </ul>
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	interface Literals  {
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.tables.impl.ViewTableImpl <em>View Table</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.tables.impl.ViewTableImpl
+		 * @see org.eclipse.datatools.modelbase.sql.tables.impl.SQLTablesPackageImpl#getViewTable()
+		 * @generated
+		 */
+		EClass VIEW_TABLE = eINSTANCE.getViewTable();
+
+		/**
+		 * The meta object literal for the '<em><b>Check Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute VIEW_TABLE__CHECK_TYPE = eINSTANCE.getViewTable_CheckType();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.tables.impl.TemporaryTableImpl <em>Temporary Table</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.tables.impl.TemporaryTableImpl
+		 * @see org.eclipse.datatools.modelbase.sql.tables.impl.SQLTablesPackageImpl#getTemporaryTable()
+		 * @generated
+		 */
+		EClass TEMPORARY_TABLE = eINSTANCE.getTemporaryTable();
+
+		/**
+		 * The meta object literal for the '<em><b>Local</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TEMPORARY_TABLE__LOCAL = eINSTANCE.getTemporaryTable_Local();
+
+		/**
+		 * The meta object literal for the '<em><b>Delete On Commit</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TEMPORARY_TABLE__DELETE_ON_COMMIT = eINSTANCE.getTemporaryTable_DeleteOnCommit();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.tables.impl.TableImpl <em>Table</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.tables.impl.TableImpl
+		 * @see org.eclipse.datatools.modelbase.sql.tables.impl.SQLTablesPackageImpl#getTable()
+		 * @generated
+		 */
+		EClass TABLE = eINSTANCE.getTable();
+
+		/**
+		 * The meta object literal for the '<em><b>Columns</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference TABLE__COLUMNS = eINSTANCE.getTable_Columns();
+
+		/**
+		 * The meta object literal for the '<em><b>Supertable</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference TABLE__SUPERTABLE = eINSTANCE.getTable_Supertable();
+
+		/**
+		 * The meta object literal for the '<em><b>Subtables</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference TABLE__SUBTABLES = eINSTANCE.getTable_Subtables();
+
+		/**
+		 * The meta object literal for the '<em><b>Schema</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference TABLE__SCHEMA = eINSTANCE.getTable_Schema();
+
+		/**
+		 * The meta object literal for the '<em><b>Udt</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference TABLE__UDT = eINSTANCE.getTable_Udt();
+
+		/**
+		 * The meta object literal for the '<em><b>Triggers</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference TABLE__TRIGGERS = eINSTANCE.getTable_Triggers();
+
+		/**
+		 * The meta object literal for the '<em><b>Index</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference TABLE__INDEX = eINSTANCE.getTable_Index();
+
+		/**
+		 * The meta object literal for the '<em><b>Self Ref Column Generation</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TABLE__SELF_REF_COLUMN_GENERATION = eINSTANCE.getTable_SelfRefColumnGeneration();
+
+		/**
+		 * The meta object literal for the '<em><b>Insertable</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TABLE__INSERTABLE = eINSTANCE.getTable_Insertable();
+
+		/**
+		 * The meta object literal for the '<em><b>Updatable</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TABLE__UPDATABLE = eINSTANCE.getTable_Updatable();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.tables.impl.PersistentTableImpl <em>Persistent Table</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.tables.impl.PersistentTableImpl
+		 * @see org.eclipse.datatools.modelbase.sql.tables.impl.SQLTablesPackageImpl#getPersistentTable()
+		 * @generated
+		 */
+		EClass PERSISTENT_TABLE = eINSTANCE.getPersistentTable();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.tables.impl.DerivedTableImpl <em>Derived Table</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.tables.impl.DerivedTableImpl
+		 * @see org.eclipse.datatools.modelbase.sql.tables.impl.SQLTablesPackageImpl#getDerivedTable()
+		 * @generated
+		 */
+		EClass DERIVED_TABLE = eINSTANCE.getDerivedTable();
+
+		/**
+		 * The meta object literal for the '<em><b>Query Expression</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DERIVED_TABLE__QUERY_EXPRESSION = eINSTANCE.getDerivedTable_QueryExpression();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.tables.impl.BaseTableImpl <em>Base Table</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.tables.impl.BaseTableImpl
+		 * @see org.eclipse.datatools.modelbase.sql.tables.impl.SQLTablesPackageImpl#getBaseTable()
+		 * @generated
+		 */
+		EClass BASE_TABLE = eINSTANCE.getBaseTable();
+
+		/**
+		 * The meta object literal for the '<em><b>Constraints</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference BASE_TABLE__CONSTRAINTS = eINSTANCE.getBaseTable_Constraints();
+
+		/**
+		 * The meta object literal for the '<em><b>Referencing Foreign Keys</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference BASE_TABLE__REFERENCING_FOREIGN_KEYS = eINSTANCE.getBaseTable_ReferencingForeignKeys();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.tables.impl.ColumnImpl <em>Column</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.tables.impl.ColumnImpl
+		 * @see org.eclipse.datatools.modelbase.sql.tables.impl.SQLTablesPackageImpl#getColumn()
+		 * @generated
+		 */
+		EClass COLUMN = eINSTANCE.getColumn();
+
+		/**
+		 * The meta object literal for the '<em><b>Table</b></em>' container reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference COLUMN__TABLE = eINSTANCE.getColumn_Table();
+
+		/**
+		 * The meta object literal for the '<em><b>Identity Specifier</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference COLUMN__IDENTITY_SPECIFIER = eINSTANCE.getColumn_IdentitySpecifier();
+
+		/**
+		 * The meta object literal for the '<em><b>Generate Expression</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference COLUMN__GENERATE_EXPRESSION = eINSTANCE.getColumn_GenerateExpression();
+
+		/**
+		 * The meta object literal for the '<em><b>Implementation Dependent</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute COLUMN__IMPLEMENTATION_DEPENDENT = eINSTANCE.getColumn_ImplementationDependent();
+
+		/**
+		 * The meta object literal for the '<em><b>Nullable</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute COLUMN__NULLABLE = eINSTANCE.getColumn_Nullable();
+
+		/**
+		 * The meta object literal for the '<em><b>Default Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute COLUMN__DEFAULT_VALUE = eINSTANCE.getColumn_DefaultValue();
+
+		/**
+		 * The meta object literal for the '<em><b>Scope Check</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute COLUMN__SCOPE_CHECK = eINSTANCE.getColumn_ScopeCheck();
+
+		/**
+		 * The meta object literal for the '<em><b>Scope Checked</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute COLUMN__SCOPE_CHECKED = eINSTANCE.getColumn_ScopeChecked();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.tables.impl.TriggerImpl <em>Trigger</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.tables.impl.TriggerImpl
+		 * @see org.eclipse.datatools.modelbase.sql.tables.impl.SQLTablesPackageImpl#getTrigger()
+		 * @generated
+		 */
+		EClass TRIGGER = eINSTANCE.getTrigger();
+
+		/**
+		 * The meta object literal for the '<em><b>Schema</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference TRIGGER__SCHEMA = eINSTANCE.getTrigger_Schema();
+
+		/**
+		 * The meta object literal for the '<em><b>Subject Table</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference TRIGGER__SUBJECT_TABLE = eINSTANCE.getTrigger_SubjectTable();
+
+		/**
+		 * The meta object literal for the '<em><b>Action Statement</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference TRIGGER__ACTION_STATEMENT = eINSTANCE.getTrigger_ActionStatement();
+
+		/**
+		 * The meta object literal for the '<em><b>Trigger Column</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference TRIGGER__TRIGGER_COLUMN = eINSTANCE.getTrigger_TriggerColumn();
+
+		/**
+		 * The meta object literal for the '<em><b>Action Granularity</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TRIGGER__ACTION_GRANULARITY = eINSTANCE.getTrigger_ActionGranularity();
+
+		/**
+		 * The meta object literal for the '<em><b>When</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference TRIGGER__WHEN = eINSTANCE.getTrigger_When();
+
+		/**
+		 * The meta object literal for the '<em><b>Time Stamp</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TRIGGER__TIME_STAMP = eINSTANCE.getTrigger_TimeStamp();
+
+		/**
+		 * The meta object literal for the '<em><b>Action Time</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TRIGGER__ACTION_TIME = eINSTANCE.getTrigger_ActionTime();
+
+		/**
+		 * The meta object literal for the '<em><b>Update Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TRIGGER__UPDATE_TYPE = eINSTANCE.getTrigger_UpdateType();
+
+		/**
+		 * The meta object literal for the '<em><b>Insert Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TRIGGER__INSERT_TYPE = eINSTANCE.getTrigger_InsertType();
+
+		/**
+		 * The meta object literal for the '<em><b>Delete Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TRIGGER__DELETE_TYPE = eINSTANCE.getTrigger_DeleteType();
+
+		/**
+		 * The meta object literal for the '<em><b>Old Row</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TRIGGER__OLD_ROW = eINSTANCE.getTrigger_OldRow();
+
+		/**
+		 * The meta object literal for the '<em><b>New Row</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TRIGGER__NEW_ROW = eINSTANCE.getTrigger_NewRow();
+
+		/**
+		 * The meta object literal for the '<em><b>Old Table</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TRIGGER__OLD_TABLE = eINSTANCE.getTrigger_OldTable();
+
+		/**
+		 * The meta object literal for the '<em><b>New Table</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TRIGGER__NEW_TABLE = eINSTANCE.getTrigger_NewTable();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.tables.CheckType <em>Check Type</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.tables.CheckType
+		 * @see org.eclipse.datatools.modelbase.sql.tables.impl.SQLTablesPackageImpl#getCheckType()
+		 * @generated
+		 */
+		EEnum CHECK_TYPE = eINSTANCE.getCheckType();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.tables.ReferenceType <em>Reference Type</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.tables.ReferenceType
+		 * @see org.eclipse.datatools.modelbase.sql.tables.impl.SQLTablesPackageImpl#getReferenceType()
+		 * @generated
+		 */
+		EEnum REFERENCE_TYPE = eINSTANCE.getReferenceType();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.tables.ActionTimeType <em>Action Time Type</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.tables.ActionTimeType
+		 * @see org.eclipse.datatools.modelbase.sql.tables.impl.SQLTablesPackageImpl#getActionTimeType()
+		 * @generated
+		 */
+		EEnum ACTION_TIME_TYPE = eINSTANCE.getActionTimeType();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.datatools.modelbase.sql.tables.ActionGranularityType <em>Action Granularity Type</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.datatools.modelbase.sql.tables.ActionGranularityType
+		 * @see org.eclipse.datatools.modelbase.sql.tables.impl.SQLTablesPackageImpl#getActionGranularityType()
+		 * @generated
+		 */
+		EEnum ACTION_GRANULARITY_TYPE = eINSTANCE.getActionGranularityType();
+
+	}
+
+} //SQLTablesPackage
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/Table.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/Table.java
new file mode 100644
index 0000000..34d15f7
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/Table.java
@@ -0,0 +1,261 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:  
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.tables;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Table</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.14 Tables
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.Table#getColumns <em>Columns</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.Table#getSupertable <em>Supertable</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.Table#getSubtables <em>Subtables</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.Table#getSchema <em>Schema</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.Table#getUdt <em>Udt</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.Table#getTriggers <em>Triggers</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.Table#getIndex <em>Index</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.Table#getSelfRefColumnGeneration <em>Self Ref Column Generation</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.Table#isInsertable <em>Insertable</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.Table#isUpdatable <em>Updatable</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getTable()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Table extends SQLObject {
+	/**
+	 * Returns the value of the '<em><b>Columns</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.tables.Column}.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.tables.Column#getTable <em>Table</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Columns</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Columns</em>' containment reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getTable_Columns()
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Column#getTable
+	 * @model type="org.eclipse.datatools.modelbase.sql.tables.Column" opposite="table" containment="true" required="true"
+	 * @generated
+	 */
+	EList getColumns();
+
+	/**
+	 * Returns the value of the '<em><b>Supertable</b></em>' reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.tables.Table#getSubtables <em>Subtables</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Supertable</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Supertable</em>' reference.
+	 * @see #setSupertable(Table)
+	 * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getTable_Supertable()
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Table#getSubtables
+	 * @model opposite="subtables"
+	 * @generated
+	 */
+	Table getSupertable();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.tables.Table#getSupertable <em>Supertable</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Supertable</em>' reference.
+	 * @see #getSupertable()
+	 * @generated
+	 */
+	void setSupertable(Table value);
+
+	/**
+	 * Returns the value of the '<em><b>Subtables</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.tables.Table}.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.tables.Table#getSupertable <em>Supertable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Subtables</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Subtables</em>' reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getTable_Subtables()
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Table#getSupertable
+	 * @model type="org.eclipse.datatools.modelbase.sql.tables.Table" opposite="supertable"
+	 * @generated
+	 */
+	EList getSubtables();
+
+	/**
+	 * Returns the value of the '<em><b>Schema</b></em>' reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.schema.Schema#getTables <em>Tables</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Schema</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Schema</em>' reference.
+	 * @see #setSchema(Schema)
+	 * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getTable_Schema()
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Schema#getTables
+	 * @model opposite="tables" required="true"
+	 * @generated
+	 */
+	Schema getSchema();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.tables.Table#getSchema <em>Schema</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Schema</em>' reference.
+	 * @see #getSchema()
+	 * @generated
+	 */
+	void setSchema(Schema value);
+
+	/**
+	 * Returns the value of the '<em><b>Udt</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Udt</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Udt</em>' reference.
+	 * @see #setUdt(StructuredUserDefinedType)
+	 * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getTable_Udt()
+	 * @model
+	 * @generated
+	 */
+	StructuredUserDefinedType getUdt();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.tables.Table#getUdt <em>Udt</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Udt</em>' reference.
+	 * @see #getUdt()
+	 * @generated
+	 */
+	void setUdt(StructuredUserDefinedType value);
+
+	/**
+	 * Returns the value of the '<em><b>Triggers</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.tables.Trigger}.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.tables.Trigger#getSubjectTable <em>Subject Table</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Triggers</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Triggers</em>' reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getTable_Triggers()
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Trigger#getSubjectTable
+	 * @model type="org.eclipse.datatools.modelbase.sql.tables.Trigger" opposite="subjectTable"
+	 * @generated
+	 */
+	EList getTriggers();
+
+	/**
+	 * Returns the value of the '<em><b>Index</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.constraints.Index}.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.constraints.Index#getTable <em>Table</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Index</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Index</em>' reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getTable_Index()
+	 * @see org.eclipse.datatools.modelbase.sql.constraints.Index#getTable
+	 * @model type="org.eclipse.datatools.modelbase.sql.constraints.Index" opposite="table"
+	 * @generated
+	 */
+	EList getIndex();
+
+	/**
+	 * Returns the value of the '<em><b>Self Ref Column Generation</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.tables.ReferenceType}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Self Ref Column Generation</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Self Ref Column Generation</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.ReferenceType
+	 * @see #setSelfRefColumnGeneration(ReferenceType)
+	 * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getTable_SelfRefColumnGeneration()
+	 * @model
+	 * @generated
+	 */
+	ReferenceType getSelfRefColumnGeneration();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.tables.Table#getSelfRefColumnGeneration <em>Self Ref Column Generation</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Self Ref Column Generation</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.ReferenceType
+	 * @see #getSelfRefColumnGeneration()
+	 * @generated
+	 */
+	void setSelfRefColumnGeneration(ReferenceType value);
+
+	/**
+	 * Returns the value of the '<em><b>Insertable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Insertable</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Insertable</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getTable_Insertable()
+	 * @model transient="true" changeable="false" volatile="true" derived="true"
+	 * @generated
+	 */
+	boolean isInsertable();
+
+	/**
+	 * Returns the value of the '<em><b>Updatable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Updatable</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Updatable</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getTable_Updatable()
+	 * @model transient="true" changeable="false" volatile="true" derived="true"
+	 * @generated
+	 */
+	boolean isUpdatable();
+
+} // Table
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/TemporaryTable.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/TemporaryTable.java
new file mode 100644
index 0000000..aab1089
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/TemporaryTable.java
@@ -0,0 +1,89 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.tables;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Temporary Table</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.14 Tables
+ * 
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.TemporaryTable#isLocal <em>Local</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.TemporaryTable#isDeleteOnCommit <em>Delete On Commit</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getTemporaryTable()
+ * @model
+ * @generated
+ */
+public interface TemporaryTable extends BaseTable {
+	/**
+	 * Returns the value of the '<em><b>Local</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Local</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Local</em>' attribute.
+	 * @see #setLocal(boolean)
+	 * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getTemporaryTable_Local()
+	 * @model
+	 * @generated
+	 */
+	boolean isLocal();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.tables.TemporaryTable#isLocal <em>Local</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Local</em>' attribute.
+	 * @see #isLocal()
+	 * @generated
+	 */
+	void setLocal(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Delete On Commit</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Delete On Commit</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Delete On Commit</em>' attribute.
+	 * @see #setDeleteOnCommit(boolean)
+	 * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getTemporaryTable_DeleteOnCommit()
+	 * @model
+	 * @generated
+	 */
+	boolean isDeleteOnCommit();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.tables.TemporaryTable#isDeleteOnCommit <em>Delete On Commit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Delete On Commit</em>' attribute.
+	 * @see #isDeleteOnCommit()
+	 * @generated
+	 */
+	void setDeleteOnCommit(boolean value);
+
+} // TemporaryTable
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/Trigger.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/Trigger.java
new file mode 100644
index 0000000..b6bbdd5
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/Trigger.java
@@ -0,0 +1,424 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.tables;
+
+import java.util.Date;
+
+import org.eclipse.datatools.modelbase.sql.expressions.SearchCondition;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Trigger</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.38 Triggers
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.Trigger#getSchema <em>Schema</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.Trigger#getSubjectTable <em>Subject Table</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.Trigger#getActionStatement <em>Action Statement</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.Trigger#getTriggerColumn <em>Trigger Column</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.Trigger#getActionGranularity <em>Action Granularity</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.Trigger#getWhen <em>When</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.Trigger#getTimeStamp <em>Time Stamp</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.Trigger#getActionTime <em>Action Time</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.Trigger#isUpdateType <em>Update Type</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.Trigger#isInsertType <em>Insert Type</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.Trigger#isDeleteType <em>Delete Type</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.Trigger#getOldRow <em>Old Row</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.Trigger#getNewRow <em>New Row</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.Trigger#getOldTable <em>Old Table</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.Trigger#getNewTable <em>New Table</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getTrigger()
+ * @model
+ * @generated
+ */
+public interface Trigger extends SQLObject {
+	/**
+	 * Returns the value of the '<em><b>Schema</b></em>' reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.schema.Schema#getTriggers <em>Triggers</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Schema</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Schema</em>' reference.
+	 * @see #setSchema(Schema)
+	 * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getTrigger_Schema()
+	 * @see org.eclipse.datatools.modelbase.sql.schema.Schema#getTriggers
+	 * @model opposite="triggers" required="true"
+	 * @generated
+	 */
+	Schema getSchema();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.tables.Trigger#getSchema <em>Schema</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Schema</em>' reference.
+	 * @see #getSchema()
+	 * @generated
+	 */
+	void setSchema(Schema value);
+
+	/**
+	 * Returns the value of the '<em><b>Subject Table</b></em>' reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.datatools.modelbase.sql.tables.Table#getTriggers <em>Triggers</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Subject Table</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Subject Table</em>' reference.
+	 * @see #setSubjectTable(Table)
+	 * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getTrigger_SubjectTable()
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Table#getTriggers
+	 * @model opposite="triggers" required="true"
+	 * @generated
+	 */
+	Table getSubjectTable();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.tables.Trigger#getSubjectTable <em>Subject Table</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Subject Table</em>' reference.
+	 * @see #getSubjectTable()
+	 * @generated
+	 */
+	void setSubjectTable(Table value);
+
+	/**
+	 * Returns the value of the '<em><b>Action Statement</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.statements.SQLStatement}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Action Statement</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Action Statement</em>' containment reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getTrigger_ActionStatement()
+	 * @model type="org.eclipse.datatools.modelbase.sql.statements.SQLStatement" containment="true" required="true"
+	 * @generated
+	 */
+	EList getActionStatement();
+
+	/**
+	 * Returns the value of the '<em><b>Trigger Column</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.tables.Column}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Trigger Column</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Trigger Column</em>' reference list.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getTrigger_TriggerColumn()
+	 * @model type="org.eclipse.datatools.modelbase.sql.tables.Column"
+	 * @generated
+	 */
+	EList getTriggerColumn();
+
+	/**
+	 * Returns the value of the '<em><b>Action Granularity</b></em>' attribute.
+	 * The default value is <code>"STATEMENT"</code>.
+	 * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.tables.ActionGranularityType}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Action Granularity</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Action Granularity</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.ActionGranularityType
+	 * @see #setActionGranularity(ActionGranularityType)
+	 * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getTrigger_ActionGranularity()
+	 * @model default="STATEMENT"
+	 * @generated
+	 */
+	ActionGranularityType getActionGranularity();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.tables.Trigger#getActionGranularity <em>Action Granularity</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Action Granularity</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.ActionGranularityType
+	 * @see #getActionGranularity()
+	 * @generated
+	 */
+	void setActionGranularity(ActionGranularityType value);
+
+	/**
+	 * Returns the value of the '<em><b>When</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>When</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>When</em>' containment reference.
+	 * @see #setWhen(SearchCondition)
+	 * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getTrigger_When()
+	 * @model containment="true"
+	 * @generated
+	 */
+	SearchCondition getWhen();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.tables.Trigger#getWhen <em>When</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>When</em>' containment reference.
+	 * @see #getWhen()
+	 * @generated
+	 */
+	void setWhen(SearchCondition value);
+
+	/**
+	 * Returns the value of the '<em><b>Time Stamp</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * Triggers on the same table with the same action time are executed in order of creation, i.e. the time stamp, such that older triggers have priority.
+	 * <!-- end-model-doc -->
+	 * @return the value of the '<em>Time Stamp</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getTrigger_TimeStamp()
+	 * @model dataType="org.eclipse.datatools.modelbase.sql.schema.Date" changeable="false"
+	 * @generated
+	 */
+	Date getTimeStamp();
+
+	/**
+	 * Returns the value of the '<em><b>Action Time</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.tables.ActionTimeType}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Action Time</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Action Time</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.ActionTimeType
+	 * @see #setActionTime(ActionTimeType)
+	 * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getTrigger_ActionTime()
+	 * @model
+	 * @generated
+	 */
+	ActionTimeType getActionTime();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.tables.Trigger#getActionTime <em>Action Time</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Action Time</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.ActionTimeType
+	 * @see #getActionTime()
+	 * @generated
+	 */
+	void setActionTime(ActionTimeType value);
+
+	/**
+	 * Returns the value of the '<em><b>Update Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Update Type</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Update Type</em>' attribute.
+	 * @see #setUpdateType(boolean)
+	 * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getTrigger_UpdateType()
+	 * @model
+	 * @generated
+	 */
+	boolean isUpdateType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.tables.Trigger#isUpdateType <em>Update Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Update Type</em>' attribute.
+	 * @see #isUpdateType()
+	 * @generated
+	 */
+	void setUpdateType(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Insert Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Insert Type</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Insert Type</em>' attribute.
+	 * @see #setInsertType(boolean)
+	 * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getTrigger_InsertType()
+	 * @model
+	 * @generated
+	 */
+	boolean isInsertType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.tables.Trigger#isInsertType <em>Insert Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Insert Type</em>' attribute.
+	 * @see #isInsertType()
+	 * @generated
+	 */
+	void setInsertType(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Delete Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Delete Type</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Delete Type</em>' attribute.
+	 * @see #setDeleteType(boolean)
+	 * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getTrigger_DeleteType()
+	 * @model
+	 * @generated
+	 */
+	boolean isDeleteType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.tables.Trigger#isDeleteType <em>Delete Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Delete Type</em>' attribute.
+	 * @see #isDeleteType()
+	 * @generated
+	 */
+	void setDeleteType(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Old Row</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Old Row</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Old Row</em>' attribute.
+	 * @see #setOldRow(String)
+	 * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getTrigger_OldRow()
+	 * @model
+	 * @generated
+	 */
+	String getOldRow();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.tables.Trigger#getOldRow <em>Old Row</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Old Row</em>' attribute.
+	 * @see #getOldRow()
+	 * @generated
+	 */
+	void setOldRow(String value);
+
+	/**
+	 * Returns the value of the '<em><b>New Row</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>New Row</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>New Row</em>' attribute.
+	 * @see #setNewRow(String)
+	 * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getTrigger_NewRow()
+	 * @model
+	 * @generated
+	 */
+	String getNewRow();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.tables.Trigger#getNewRow <em>New Row</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>New Row</em>' attribute.
+	 * @see #getNewRow()
+	 * @generated
+	 */
+	void setNewRow(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Old Table</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Old Table</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Old Table</em>' attribute.
+	 * @see #setOldTable(String)
+	 * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getTrigger_OldTable()
+	 * @model
+	 * @generated
+	 */
+	String getOldTable();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.tables.Trigger#getOldTable <em>Old Table</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Old Table</em>' attribute.
+	 * @see #getOldTable()
+	 * @generated
+	 */
+	void setOldTable(String value);
+
+	/**
+	 * Returns the value of the '<em><b>New Table</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>New Table</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>New Table</em>' attribute.
+	 * @see #setNewTable(String)
+	 * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getTrigger_NewTable()
+	 * @model
+	 * @generated
+	 */
+	String getNewTable();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.tables.Trigger#getNewTable <em>New Table</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>New Table</em>' attribute.
+	 * @see #getNewTable()
+	 * @generated
+	 */
+	void setNewTable(String value);
+
+} // Trigger
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/ViewTable.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/ViewTable.java
new file mode 100644
index 0000000..4fa93d4
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/ViewTable.java
@@ -0,0 +1,65 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.tables;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>View Table</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Reference: 5WD-02-Foundation-2002-12 4.14 Tables
+ * 
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.ViewTable#getCheckType <em>Check Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getViewTable()
+ * @model
+ * @generated
+ */
+public interface ViewTable extends DerivedTable {
+	/**
+	 * Returns the value of the '<em><b>Check Type</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.datatools.modelbase.sql.tables.CheckType}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Check Type</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Check Type</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.CheckType
+	 * @see #setCheckType(CheckType)
+	 * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#getViewTable_CheckType()
+	 * @model
+	 * @generated
+	 */
+	CheckType getCheckType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.datatools.modelbase.sql.tables.ViewTable#getCheckType <em>Check Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Check Type</em>' attribute.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.CheckType
+	 * @see #getCheckType()
+	 * @generated
+	 */
+	void setCheckType(CheckType value);
+
+} // ViewTable
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/helper/TableHelper.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/helper/TableHelper.java
new file mode 100644
index 0000000..047e03d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/helper/TableHelper.java
@@ -0,0 +1,34 @@
+/*
+ * Created on Nov 4, 2004
+ *
+ */
+package org.eclipse.datatools.modelbase.sql.tables.helper;
+
+import java.util.Iterator;
+
+import org.eclipse.datatools.modelbase.sql.tables.Column;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+
+
+
+/**
+ * @author tomlyn
+ *
+ */
+public class TableHelper 
+{
+  public static Column findColumn(Table table, String columnName) 
+  {
+    for (Iterator it = table.getColumns().iterator(); it.hasNext();)
+    {
+      Column column = (Column) it.next();
+            
+      if (column.getName().equals(columnName)) 
+      {
+        return column;
+      }
+    }
+
+    return null;
+  }
+}
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/impl/BaseTableImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/impl/BaseTableImpl.java
new file mode 100644
index 0000000..fc0c9b7
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/impl/BaseTableImpl.java
@@ -0,0 +1,263 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.tables.impl;
+
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Vector;
+
+import org.eclipse.datatools.modelbase.sql.constraints.Constraint;
+import org.eclipse.datatools.modelbase.sql.constraints.ForeignKey;
+import org.eclipse.datatools.modelbase.sql.constraints.PrimaryKey;
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;
+import org.eclipse.datatools.modelbase.sql.constraints.TableConstraint;
+import org.eclipse.datatools.modelbase.sql.constraints.UniqueConstraint;
+import org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.tables.BaseTable;
+import org.eclipse.datatools.modelbase.sql.tables.ReferenceType;
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Base Table</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.impl.BaseTableImpl#getConstraints <em>Constraints</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.impl.BaseTableImpl#getReferencingForeignKeys <em>Referencing Foreign Keys</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class BaseTableImpl extends TableImpl implements BaseTable {
+	/**
+	 * The cached value of the '{@link #getConstraints() <em>Constraints</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getConstraints()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList constraints;
+
+	/**
+	 * The cached value of the '{@link #getReferencingForeignKeys() <em>Referencing Foreign Keys</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getReferencingForeignKeys()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList referencingForeignKeys;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected BaseTableImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLTablesPackage.Literals.BASE_TABLE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getConstraints() {
+		if (constraints == null) {
+			constraints = new EObjectContainmentWithInverseEList(TableConstraint.class, this, SQLTablesPackage.BASE_TABLE__CONSTRAINTS, SQLConstraintsPackage.TABLE_CONSTRAINT__BASE_TABLE);
+		}
+		return constraints;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getReferencingForeignKeys() {
+		if (referencingForeignKeys == null) {
+			referencingForeignKeys = new EObjectWithInverseResolvingEList(ForeignKey.class, this, SQLTablesPackage.BASE_TABLE__REFERENCING_FOREIGN_KEYS, SQLConstraintsPackage.FOREIGN_KEY__REFERENCED_TABLE);
+		}
+		return referencingForeignKeys;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 */
+	public List getUniqueConstraints() {
+		Vector uniqueConstraints = new Vector();
+		Iterator allConstraints = this.getConstraints().iterator();
+		while( allConstraints.hasNext() ) {
+			Constraint currentConstraint = (Constraint)allConstraints.next();
+			if (currentConstraint instanceof UniqueConstraint) {
+				uniqueConstraints.add(currentConstraint);
+			}
+		}
+		
+		return uniqueConstraints;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 */
+	public List getForeignKeys() {
+		Vector foreignKeys = new Vector();
+		Iterator allConstraints = this.getConstraints().iterator();
+		while( allConstraints.hasNext() ) {
+			Constraint currentConstraint = (Constraint)allConstraints.next();
+			if (currentConstraint instanceof ForeignKey) {
+				foreignKeys.add(currentConstraint);
+			}
+		}
+		
+		return foreignKeys;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 */
+	public PrimaryKey getPrimaryKey() {
+		Iterator allConstraints = this.getConstraints().iterator();
+		while( allConstraints.hasNext() ) {
+			Constraint currentConstraint = (Constraint)allConstraints.next();
+			if (currentConstraint instanceof PrimaryKey) {
+				return (PrimaryKey)currentConstraint;
+			}
+		}
+		
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLTablesPackage.BASE_TABLE__CONSTRAINTS:
+				return ((InternalEList)getConstraints()).basicAdd(otherEnd, msgs);
+			case SQLTablesPackage.BASE_TABLE__REFERENCING_FOREIGN_KEYS:
+				return ((InternalEList)getReferencingForeignKeys()).basicAdd(otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLTablesPackage.BASE_TABLE__CONSTRAINTS:
+				return ((InternalEList)getConstraints()).basicRemove(otherEnd, msgs);
+			case SQLTablesPackage.BASE_TABLE__REFERENCING_FOREIGN_KEYS:
+				return ((InternalEList)getReferencingForeignKeys()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLTablesPackage.BASE_TABLE__CONSTRAINTS:
+				return getConstraints();
+			case SQLTablesPackage.BASE_TABLE__REFERENCING_FOREIGN_KEYS:
+				return getReferencingForeignKeys();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLTablesPackage.BASE_TABLE__CONSTRAINTS:
+				getConstraints().clear();
+				getConstraints().addAll((Collection)newValue);
+				return;
+			case SQLTablesPackage.BASE_TABLE__REFERENCING_FOREIGN_KEYS:
+				getReferencingForeignKeys().clear();
+				getReferencingForeignKeys().addAll((Collection)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLTablesPackage.BASE_TABLE__CONSTRAINTS:
+				getConstraints().clear();
+				return;
+			case SQLTablesPackage.BASE_TABLE__REFERENCING_FOREIGN_KEYS:
+				getReferencingForeignKeys().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLTablesPackage.BASE_TABLE__CONSTRAINTS:
+				return constraints != null && !constraints.isEmpty();
+			case SQLTablesPackage.BASE_TABLE__REFERENCING_FOREIGN_KEYS:
+				return referencingForeignKeys != null && !referencingForeignKeys.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //BaseTableImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/impl/ColumnImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/impl/ColumnImpl.java
new file mode 100644
index 0000000..985b649
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/impl/ColumnImpl.java
@@ -0,0 +1,682 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.tables.impl;
+
+import java.util.Collection;
+import java.util.Iterator;
+
+import org.eclipse.datatools.modelbase.sql.constraints.ForeignKey;
+import org.eclipse.datatools.modelbase.sql.constraints.PrimaryKey;
+import org.eclipse.datatools.modelbase.sql.constraints.UniqueConstraint;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType;
+import org.eclipse.datatools.modelbase.sql.expressions.ValueExpression;
+import org.eclipse.datatools.modelbase.sql.schema.IdentitySpecifier;
+import org.eclipse.datatools.modelbase.sql.schema.ReferentialActionType;
+import org.eclipse.datatools.modelbase.sql.schema.impl.TypedElementImpl;
+import org.eclipse.datatools.modelbase.sql.tables.BaseTable;
+import org.eclipse.datatools.modelbase.sql.tables.Column;
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Column</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.impl.ColumnImpl#getTable <em>Table</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.impl.ColumnImpl#getIdentitySpecifier <em>Identity Specifier</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.impl.ColumnImpl#getGenerateExpression <em>Generate Expression</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.impl.ColumnImpl#isImplementationDependent <em>Implementation Dependent</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.impl.ColumnImpl#isNullable <em>Nullable</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.impl.ColumnImpl#getDefaultValue <em>Default Value</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.impl.ColumnImpl#getScopeCheck <em>Scope Check</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.impl.ColumnImpl#isScopeChecked <em>Scope Checked</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ColumnImpl extends TypedElementImpl implements Column {
+/**
+	 * The cached value of the '{@link #getIdentitySpecifier() <em>Identity Specifier</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getIdentitySpecifier()
+	 * @generated
+	 * @ordered
+	 */
+	protected IdentitySpecifier identitySpecifier;
+
+/**
+	 * The cached value of the '{@link #getGenerateExpression() <em>Generate Expression</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getGenerateExpression()
+	 * @generated
+	 * @ordered
+	 */
+	protected ValueExpression generateExpression;
+
+/**
+	 * The default value of the '{@link #isImplementationDependent() <em>Implementation Dependent</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isImplementationDependent()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean IMPLEMENTATION_DEPENDENT_EDEFAULT = false;
+
+/**
+	 * The cached value of the '{@link #isImplementationDependent() <em>Implementation Dependent</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isImplementationDependent()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean implementationDependent = IMPLEMENTATION_DEPENDENT_EDEFAULT;
+
+/**
+	 * The default value of the '{@link #isNullable() <em>Nullable</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isNullable()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean NULLABLE_EDEFAULT = true;
+
+/**
+	 * The cached value of the '{@link #isNullable() <em>Nullable</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isNullable()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean nullable = NULLABLE_EDEFAULT;
+
+/**
+	 * The default value of the '{@link #getDefaultValue() <em>Default Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefaultValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DEFAULT_VALUE_EDEFAULT = null;
+
+/**
+	 * The cached value of the '{@link #getDefaultValue() <em>Default Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefaultValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected String defaultValue = DEFAULT_VALUE_EDEFAULT;
+
+/**
+	 * The default value of the '{@link #getScopeCheck() <em>Scope Check</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getScopeCheck()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final ReferentialActionType SCOPE_CHECK_EDEFAULT = ReferentialActionType.NO_ACTION_LITERAL;
+
+/**
+	 * The cached value of the '{@link #getScopeCheck() <em>Scope Check</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getScopeCheck()
+	 * @generated
+	 * @ordered
+	 */
+	protected ReferentialActionType scopeCheck = SCOPE_CHECK_EDEFAULT;
+
+/**
+	 * The default value of the '{@link #isScopeChecked() <em>Scope Checked</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isScopeChecked()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean SCOPE_CHECKED_EDEFAULT = false;
+
+/**
+	 * The cached value of the '{@link #isScopeChecked() <em>Scope Checked</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isScopeChecked()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean scopeChecked = SCOPE_CHECKED_EDEFAULT;
+
+/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ColumnImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLTablesPackage.Literals.COLUMN;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Table getTable() {
+		if (eContainerFeatureID != SQLTablesPackage.COLUMN__TABLE) return null;
+		return (Table)eContainer();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetTable(Table newTable, NotificationChain msgs) {
+		msgs = eBasicSetContainer((InternalEObject)newTable, SQLTablesPackage.COLUMN__TABLE, msgs);
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTable(Table newTable) {
+		if (newTable != eInternalContainer() || (eContainerFeatureID != SQLTablesPackage.COLUMN__TABLE && newTable != null)) {
+			if (EcoreUtil.isAncestor(this, newTable))
+				throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); //$NON-NLS-1$
+			NotificationChain msgs = null;
+			if (eInternalContainer() != null)
+				msgs = eBasicRemoveFromContainer(msgs);
+			if (newTable != null)
+				msgs = ((InternalEObject)newTable).eInverseAdd(this, SQLTablesPackage.TABLE__COLUMNS, Table.class, msgs);
+			msgs = basicSetTable(newTable, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLTablesPackage.COLUMN__TABLE, newTable, newTable));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IdentitySpecifier getIdentitySpecifier() {
+		return identitySpecifier;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetIdentitySpecifier(IdentitySpecifier newIdentitySpecifier, NotificationChain msgs) {
+		IdentitySpecifier oldIdentitySpecifier = identitySpecifier;
+		identitySpecifier = newIdentitySpecifier;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLTablesPackage.COLUMN__IDENTITY_SPECIFIER, oldIdentitySpecifier, newIdentitySpecifier);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setIdentitySpecifier(IdentitySpecifier newIdentitySpecifier) {
+		if (newIdentitySpecifier != identitySpecifier) {
+			NotificationChain msgs = null;
+			if (identitySpecifier != null)
+				msgs = ((InternalEObject)identitySpecifier).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLTablesPackage.COLUMN__IDENTITY_SPECIFIER, null, msgs);
+			if (newIdentitySpecifier != null)
+				msgs = ((InternalEObject)newIdentitySpecifier).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SQLTablesPackage.COLUMN__IDENTITY_SPECIFIER, null, msgs);
+			msgs = basicSetIdentitySpecifier(newIdentitySpecifier, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLTablesPackage.COLUMN__IDENTITY_SPECIFIER, newIdentitySpecifier, newIdentitySpecifier));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ValueExpression getGenerateExpression() {
+		return generateExpression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetGenerateExpression(ValueExpression newGenerateExpression, NotificationChain msgs) {
+		ValueExpression oldGenerateExpression = generateExpression;
+		generateExpression = newGenerateExpression;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLTablesPackage.COLUMN__GENERATE_EXPRESSION, oldGenerateExpression, newGenerateExpression);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setGenerateExpression(ValueExpression newGenerateExpression) {
+		if (newGenerateExpression != generateExpression) {
+			NotificationChain msgs = null;
+			if (generateExpression != null)
+				msgs = ((InternalEObject)generateExpression).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLTablesPackage.COLUMN__GENERATE_EXPRESSION, null, msgs);
+			if (newGenerateExpression != null)
+				msgs = ((InternalEObject)newGenerateExpression).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SQLTablesPackage.COLUMN__GENERATE_EXPRESSION, null, msgs);
+			msgs = basicSetGenerateExpression(newGenerateExpression, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLTablesPackage.COLUMN__GENERATE_EXPRESSION, newGenerateExpression, newGenerateExpression));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isImplementationDependent() {
+		return implementationDependent;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setImplementationDependent(boolean newImplementationDependent) {
+		boolean oldImplementationDependent = implementationDependent;
+		implementationDependent = newImplementationDependent;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLTablesPackage.COLUMN__IMPLEMENTATION_DEPENDENT, oldImplementationDependent, implementationDependent));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isNullable() {
+		return nullable;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setNullable(boolean newNullable) {
+		boolean oldNullable = nullable;
+		nullable = newNullable;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLTablesPackage.COLUMN__NULLABLE, oldNullable, nullable));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getDefaultValue() {
+		return defaultValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDefaultValue(String newDefaultValue) {
+		String oldDefaultValue = defaultValue;
+		defaultValue = newDefaultValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLTablesPackage.COLUMN__DEFAULT_VALUE, oldDefaultValue, defaultValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ReferentialActionType getScopeCheck() {
+		return scopeCheck;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setScopeCheck(ReferentialActionType newScopeCheck) {
+		ReferentialActionType oldScopeCheck = scopeCheck;
+		scopeCheck = newScopeCheck == null ? SCOPE_CHECK_EDEFAULT : newScopeCheck;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLTablesPackage.COLUMN__SCOPE_CHECK, oldScopeCheck, scopeCheck));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isScopeChecked() {
+		return scopeChecked;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setScopeChecked(boolean newScopeChecked) {
+		boolean oldScopeChecked = scopeChecked;
+		scopeChecked = newScopeChecked;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLTablesPackage.COLUMN__SCOPE_CHECKED, oldScopeChecked, scopeChecked));
+	}
+
+				/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 */
+	public boolean isPartOfForeignKey() {
+		Table table = this.getTable();
+		if ( (table != null) && (table instanceof BaseTable) ) {
+			Iterator foreignKeys = ((BaseTable)table).getForeignKeys().iterator();
+			while( foreignKeys.hasNext() ) {
+				ForeignKey currentForeignKey = (ForeignKey)foreignKeys.next();
+				if (currentForeignKey != null) {
+					EList columns = currentForeignKey.getMembers();
+					if ( (columns != null) && columns.contains(this) ) {
+						return true;
+					}
+				}
+			}
+		}
+		return false;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 */
+	public boolean isPartOfUniqueConstraint() {
+		Table table = this.getTable();
+		if ( (table != null) && (table instanceof BaseTable) ) {
+			Iterator uniqueConstraint = ((BaseTable)table).getUniqueConstraints().iterator();
+			while( uniqueConstraint.hasNext() ) {
+				UniqueConstraint currentUniqueConstraint = (UniqueConstraint)uniqueConstraint.next();
+				if (currentUniqueConstraint != null) {
+					EList columns = currentUniqueConstraint.getMembers();
+					if ( (columns != null) && columns.contains(this) ) {
+						return true;
+					}
+				}
+			}
+		}
+		return false;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 */
+	public boolean isPartOfPrimaryKey() {
+		Table table = this.getTable();
+		if ( (table != null) && (table instanceof BaseTable) ) {
+			PrimaryKey primaryKey = ((BaseTable)table).getPrimaryKey();
+			if (primaryKey != null) {
+				EList columns = primaryKey.getMembers();
+				if ( (columns != null) && columns.contains(this) ) {
+					return true;
+				}
+			}
+		}
+		return false;
+	}
+
+/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLTablesPackage.COLUMN__TABLE:
+				if (eInternalContainer() != null)
+					msgs = eBasicRemoveFromContainer(msgs);
+				return basicSetTable((Table)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLTablesPackage.COLUMN__TABLE:
+				return basicSetTable(null, msgs);
+			case SQLTablesPackage.COLUMN__IDENTITY_SPECIFIER:
+				return basicSetIdentitySpecifier(null, msgs);
+			case SQLTablesPackage.COLUMN__GENERATE_EXPRESSION:
+				return basicSetGenerateExpression(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+		switch (eContainerFeatureID) {
+			case SQLTablesPackage.COLUMN__TABLE:
+				return eInternalContainer().eInverseRemove(this, SQLTablesPackage.TABLE__COLUMNS, Table.class, msgs);
+		}
+		return super.eBasicRemoveFromContainerFeature(msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLTablesPackage.COLUMN__TABLE:
+				return getTable();
+			case SQLTablesPackage.COLUMN__IDENTITY_SPECIFIER:
+				return getIdentitySpecifier();
+			case SQLTablesPackage.COLUMN__GENERATE_EXPRESSION:
+				return getGenerateExpression();
+			case SQLTablesPackage.COLUMN__IMPLEMENTATION_DEPENDENT:
+				return isImplementationDependent() ? Boolean.TRUE : Boolean.FALSE;
+			case SQLTablesPackage.COLUMN__NULLABLE:
+				return isNullable() ? Boolean.TRUE : Boolean.FALSE;
+			case SQLTablesPackage.COLUMN__DEFAULT_VALUE:
+				return getDefaultValue();
+			case SQLTablesPackage.COLUMN__SCOPE_CHECK:
+				return getScopeCheck();
+			case SQLTablesPackage.COLUMN__SCOPE_CHECKED:
+				return isScopeChecked() ? Boolean.TRUE : Boolean.FALSE;
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLTablesPackage.COLUMN__TABLE:
+				setTable((Table)newValue);
+				return;
+			case SQLTablesPackage.COLUMN__IDENTITY_SPECIFIER:
+				setIdentitySpecifier((IdentitySpecifier)newValue);
+				return;
+			case SQLTablesPackage.COLUMN__GENERATE_EXPRESSION:
+				setGenerateExpression((ValueExpression)newValue);
+				return;
+			case SQLTablesPackage.COLUMN__IMPLEMENTATION_DEPENDENT:
+				setImplementationDependent(((Boolean)newValue).booleanValue());
+				return;
+			case SQLTablesPackage.COLUMN__NULLABLE:
+				setNullable(((Boolean)newValue).booleanValue());
+				return;
+			case SQLTablesPackage.COLUMN__DEFAULT_VALUE:
+				setDefaultValue((String)newValue);
+				return;
+			case SQLTablesPackage.COLUMN__SCOPE_CHECK:
+				setScopeCheck((ReferentialActionType)newValue);
+				return;
+			case SQLTablesPackage.COLUMN__SCOPE_CHECKED:
+				setScopeChecked(((Boolean)newValue).booleanValue());
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLTablesPackage.COLUMN__TABLE:
+				setTable((Table)null);
+				return;
+			case SQLTablesPackage.COLUMN__IDENTITY_SPECIFIER:
+				setIdentitySpecifier((IdentitySpecifier)null);
+				return;
+			case SQLTablesPackage.COLUMN__GENERATE_EXPRESSION:
+				setGenerateExpression((ValueExpression)null);
+				return;
+			case SQLTablesPackage.COLUMN__IMPLEMENTATION_DEPENDENT:
+				setImplementationDependent(IMPLEMENTATION_DEPENDENT_EDEFAULT);
+				return;
+			case SQLTablesPackage.COLUMN__NULLABLE:
+				setNullable(NULLABLE_EDEFAULT);
+				return;
+			case SQLTablesPackage.COLUMN__DEFAULT_VALUE:
+				setDefaultValue(DEFAULT_VALUE_EDEFAULT);
+				return;
+			case SQLTablesPackage.COLUMN__SCOPE_CHECK:
+				setScopeCheck(SCOPE_CHECK_EDEFAULT);
+				return;
+			case SQLTablesPackage.COLUMN__SCOPE_CHECKED:
+				setScopeChecked(SCOPE_CHECKED_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLTablesPackage.COLUMN__TABLE:
+				return getTable() != null;
+			case SQLTablesPackage.COLUMN__IDENTITY_SPECIFIER:
+				return identitySpecifier != null;
+			case SQLTablesPackage.COLUMN__GENERATE_EXPRESSION:
+				return generateExpression != null;
+			case SQLTablesPackage.COLUMN__IMPLEMENTATION_DEPENDENT:
+				return implementationDependent != IMPLEMENTATION_DEPENDENT_EDEFAULT;
+			case SQLTablesPackage.COLUMN__NULLABLE:
+				return nullable != NULLABLE_EDEFAULT;
+			case SQLTablesPackage.COLUMN__DEFAULT_VALUE:
+				return DEFAULT_VALUE_EDEFAULT == null ? defaultValue != null : !DEFAULT_VALUE_EDEFAULT.equals(defaultValue);
+			case SQLTablesPackage.COLUMN__SCOPE_CHECK:
+				return scopeCheck != SCOPE_CHECK_EDEFAULT;
+			case SQLTablesPackage.COLUMN__SCOPE_CHECKED:
+				return scopeChecked != SCOPE_CHECKED_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (implementationDependent: "); //$NON-NLS-1$
+		result.append(implementationDependent);
+		result.append(", nullable: "); //$NON-NLS-1$
+		result.append(nullable);
+		result.append(", defaultValue: "); //$NON-NLS-1$
+		result.append(defaultValue);
+		result.append(", scopeCheck: "); //$NON-NLS-1$
+		result.append(scopeCheck);
+		result.append(", scopeChecked: "); //$NON-NLS-1$
+		result.append(scopeChecked);
+		result.append(')');
+		return result.toString();
+	}
+
+} //ColumnImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/impl/DerivedTableImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/impl/DerivedTableImpl.java
new file mode 100644
index 0000000..f71da99
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/impl/DerivedTableImpl.java
@@ -0,0 +1,183 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.tables.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType;
+import org.eclipse.datatools.modelbase.sql.expressions.QueryExpression;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.tables.DerivedTable;
+import org.eclipse.datatools.modelbase.sql.tables.ReferenceType;
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Derived Table</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.impl.DerivedTableImpl#getQueryExpression <em>Query Expression</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class DerivedTableImpl extends TableImpl implements DerivedTable {
+	/**
+	 * The cached value of the '{@link #getQueryExpression() <em>Query Expression</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getQueryExpression()
+	 * @generated
+	 * @ordered
+	 */
+	protected QueryExpression queryExpression;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DerivedTableImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLTablesPackage.Literals.DERIVED_TABLE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public QueryExpression getQueryExpression() {
+		return queryExpression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetQueryExpression(QueryExpression newQueryExpression, NotificationChain msgs) {
+		QueryExpression oldQueryExpression = queryExpression;
+		queryExpression = newQueryExpression;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLTablesPackage.DERIVED_TABLE__QUERY_EXPRESSION, oldQueryExpression, newQueryExpression);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setQueryExpression(QueryExpression newQueryExpression) {
+		if (newQueryExpression != queryExpression) {
+			NotificationChain msgs = null;
+			if (queryExpression != null)
+				msgs = ((InternalEObject)queryExpression).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLTablesPackage.DERIVED_TABLE__QUERY_EXPRESSION, null, msgs);
+			if (newQueryExpression != null)
+				msgs = ((InternalEObject)newQueryExpression).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SQLTablesPackage.DERIVED_TABLE__QUERY_EXPRESSION, null, msgs);
+			msgs = basicSetQueryExpression(newQueryExpression, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLTablesPackage.DERIVED_TABLE__QUERY_EXPRESSION, newQueryExpression, newQueryExpression));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLTablesPackage.DERIVED_TABLE__QUERY_EXPRESSION:
+				return basicSetQueryExpression(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLTablesPackage.DERIVED_TABLE__QUERY_EXPRESSION:
+				return getQueryExpression();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLTablesPackage.DERIVED_TABLE__QUERY_EXPRESSION:
+				setQueryExpression((QueryExpression)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLTablesPackage.DERIVED_TABLE__QUERY_EXPRESSION:
+				setQueryExpression((QueryExpression)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLTablesPackage.DERIVED_TABLE__QUERY_EXPRESSION:
+				return queryExpression != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //DerivedTableImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/impl/PersistentTableImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/impl/PersistentTableImpl.java
new file mode 100644
index 0000000..815a716
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/impl/PersistentTableImpl.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.tables.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.tables.PersistentTable;
+import org.eclipse.datatools.modelbase.sql.tables.ReferenceType;
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Persistent Table</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class PersistentTableImpl extends BaseTableImpl implements PersistentTable {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected PersistentTableImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLTablesPackage.Literals.PERSISTENT_TABLE;
+	}
+
+} //PersistentTableImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/impl/SQLTablesFactoryImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/impl/SQLTablesFactoryImpl.java
new file mode 100644
index 0000000..0bc1c70
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/impl/SQLTablesFactoryImpl.java
@@ -0,0 +1,265 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.tables.impl;
+
+import org.eclipse.datatools.modelbase.sql.tables.*;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SQLTablesFactoryImpl extends EFactoryImpl implements SQLTablesFactory {
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static SQLTablesFactory init() {
+		try {
+			SQLTablesFactory theSQLTablesFactory = (SQLTablesFactory)EPackage.Registry.INSTANCE.getEFactory("http:///org/eclipse/datatools/modelbase/sql/tables.ecore"); //$NON-NLS-1$ 
+			if (theSQLTablesFactory != null) {
+				return theSQLTablesFactory;
+			}
+		}
+		catch (Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new SQLTablesFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLTablesFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+			case SQLTablesPackage.VIEW_TABLE: return createViewTable();
+			case SQLTablesPackage.TEMPORARY_TABLE: return createTemporaryTable();
+			case SQLTablesPackage.PERSISTENT_TABLE: return createPersistentTable();
+			case SQLTablesPackage.COLUMN: return createColumn();
+			case SQLTablesPackage.TRIGGER: return createTrigger();
+			default:
+				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object createFromString(EDataType eDataType, String initialValue) {
+		switch (eDataType.getClassifierID()) {
+			case SQLTablesPackage.CHECK_TYPE:
+				return createCheckTypeFromString(eDataType, initialValue);
+			case SQLTablesPackage.REFERENCE_TYPE:
+				return createReferenceTypeFromString(eDataType, initialValue);
+			case SQLTablesPackage.ACTION_TIME_TYPE:
+				return createActionTimeTypeFromString(eDataType, initialValue);
+			case SQLTablesPackage.ACTION_GRANULARITY_TYPE:
+				return createActionGranularityTypeFromString(eDataType, initialValue);
+			default:
+				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertToString(EDataType eDataType, Object instanceValue) {
+		switch (eDataType.getClassifierID()) {
+			case SQLTablesPackage.CHECK_TYPE:
+				return convertCheckTypeToString(eDataType, instanceValue);
+			case SQLTablesPackage.REFERENCE_TYPE:
+				return convertReferenceTypeToString(eDataType, instanceValue);
+			case SQLTablesPackage.ACTION_TIME_TYPE:
+				return convertActionTimeTypeToString(eDataType, instanceValue);
+			case SQLTablesPackage.ACTION_GRANULARITY_TYPE:
+				return convertActionGranularityTypeToString(eDataType, instanceValue);
+			default:
+				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ViewTable createViewTable() {
+		ViewTableImpl viewTable = new ViewTableImpl();
+		return viewTable;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TemporaryTable createTemporaryTable() {
+		TemporaryTableImpl temporaryTable = new TemporaryTableImpl();
+		return temporaryTable;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PersistentTable createPersistentTable() {
+		PersistentTableImpl persistentTable = new PersistentTableImpl();
+		return persistentTable;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Column createColumn() {
+		ColumnImpl column = new ColumnImpl();
+		return column;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Trigger createTrigger() {
+		TriggerImpl trigger = new TriggerImpl();
+		return trigger;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public CheckType createCheckTypeFromString(EDataType eDataType, String initialValue) {
+		CheckType result = CheckType.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertCheckTypeToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ReferenceType createReferenceTypeFromString(EDataType eDataType, String initialValue) {
+		ReferenceType result = ReferenceType.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertReferenceTypeToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ActionTimeType createActionTimeTypeFromString(EDataType eDataType, String initialValue) {
+		ActionTimeType result = ActionTimeType.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertActionTimeTypeToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ActionGranularityType createActionGranularityTypeFromString(EDataType eDataType, String initialValue) {
+		ActionGranularityType result = ActionGranularityType.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertActionGranularityTypeToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLTablesPackage getSQLTablesPackage() {
+		return (SQLTablesPackage)getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @deprecated
+	 * @generated
+	 */
+	public static SQLTablesPackage getPackage() {
+		return SQLTablesPackage.eINSTANCE;
+	}
+
+} //SQLTablesFactoryImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/impl/SQLTablesPackageImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/impl/SQLTablesPackageImpl.java
new file mode 100644
index 0000000..246aa8c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/impl/SQLTablesPackageImpl.java
@@ -0,0 +1,917 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.tables.impl;
+
+import org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.impl.SQLAccessControlPackageImpl;
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;
+import org.eclipse.datatools.modelbase.sql.constraints.impl.SQLConstraintsPackageImpl;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.datatypes.impl.SQLDataTypesPackageImpl;
+import org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsPackage;
+import org.eclipse.datatools.modelbase.sql.expressions.impl.SQLExpressionsPackageImpl;
+import org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage;
+import org.eclipse.datatools.modelbase.sql.routines.impl.SQLRoutinesPackageImpl;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLSchemaPackageImpl;
+import org.eclipse.datatools.modelbase.sql.statements.SQLStatementsPackage;
+import org.eclipse.datatools.modelbase.sql.statements.impl.SQLStatementsPackageImpl;
+import org.eclipse.datatools.modelbase.sql.tables.ActionGranularityType;
+import org.eclipse.datatools.modelbase.sql.tables.ActionTimeType;
+import org.eclipse.datatools.modelbase.sql.tables.BaseTable;
+import org.eclipse.datatools.modelbase.sql.tables.CheckType;
+import org.eclipse.datatools.modelbase.sql.tables.Column;
+import org.eclipse.datatools.modelbase.sql.tables.DerivedTable;
+import org.eclipse.datatools.modelbase.sql.tables.PersistentTable;
+import org.eclipse.datatools.modelbase.sql.tables.ReferenceType;
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesFactory;
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.datatools.modelbase.sql.tables.TemporaryTable;
+import org.eclipse.datatools.modelbase.sql.tables.Trigger;
+import org.eclipse.datatools.modelbase.sql.tables.ViewTable;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcorePackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.emf.ecore.impl.EcorePackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SQLTablesPackageImpl extends EPackageImpl implements SQLTablesPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass viewTableEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass temporaryTableEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass tableEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass persistentTableEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass derivedTableEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass baseTableEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass columnEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass triggerEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum checkTypeEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum referenceTypeEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum actionTimeTypeEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum actionGranularityTypeEEnum = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with
+	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+	 * package URI value.
+	 * <p>Note: the correct way to create the package is via the static
+	 * factory method {@link #init init()}, which also performs
+	 * initialization of the package, or returns the registered package,
+	 * if one already exists.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private SQLTablesPackageImpl() {
+		super(eNS_URI, SQLTablesFactory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this
+	 * model, and for any others upon which it depends.  Simple
+	 * dependencies are satisfied by calling this method on all
+	 * dependent packages before doing anything else.  This method drives
+	 * initialization for interdependent packages directly, in parallel
+	 * with this package, itself.
+	 * <p>Of this package and its interdependencies, all packages which
+	 * have not yet been registered by their URI values are first created
+	 * and registered.  The packages are then initialized in two steps:
+	 * meta-model objects for all of the packages are created before any
+	 * are initialized, since one package's meta-model objects may refer to
+	 * those of another.
+	 * <p>Invocation of this method will not affect any packages that have
+	 * already been initialized.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static SQLTablesPackage init() {
+		if (isInited) return (SQLTablesPackage)EPackage.Registry.INSTANCE.getEPackage(SQLTablesPackage.eNS_URI);
+
+		// Obtain or create and register package
+		SQLTablesPackageImpl theSQLTablesPackage = (SQLTablesPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(eNS_URI) instanceof SQLTablesPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(eNS_URI) : new SQLTablesPackageImpl());
+
+		isInited = true;
+
+		// Initialize simple dependencies
+		EcorePackage.eINSTANCE.eClass();
+
+		// Obtain or create and register interdependencies
+		SQLSchemaPackageImpl theSQLSchemaPackage = (SQLSchemaPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLSchemaPackage.eNS_URI) instanceof SQLSchemaPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLSchemaPackage.eNS_URI) : SQLSchemaPackage.eINSTANCE);
+		SQLConstraintsPackageImpl theSQLConstraintsPackage = (SQLConstraintsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLConstraintsPackage.eNS_URI) instanceof SQLConstraintsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLConstraintsPackage.eNS_URI) : SQLConstraintsPackage.eINSTANCE);
+		SQLDataTypesPackageImpl theSQLDataTypesPackage = (SQLDataTypesPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLDataTypesPackage.eNS_URI) instanceof SQLDataTypesPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLDataTypesPackage.eNS_URI) : SQLDataTypesPackage.eINSTANCE);
+		SQLExpressionsPackageImpl theSQLExpressionsPackage = (SQLExpressionsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLExpressionsPackage.eNS_URI) instanceof SQLExpressionsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLExpressionsPackage.eNS_URI) : SQLExpressionsPackage.eINSTANCE);
+		SQLRoutinesPackageImpl theSQLRoutinesPackage = (SQLRoutinesPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLRoutinesPackage.eNS_URI) instanceof SQLRoutinesPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLRoutinesPackage.eNS_URI) : SQLRoutinesPackage.eINSTANCE);
+		SQLStatementsPackageImpl theSQLStatementsPackage = (SQLStatementsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLStatementsPackage.eNS_URI) instanceof SQLStatementsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLStatementsPackage.eNS_URI) : SQLStatementsPackage.eINSTANCE);
+		SQLAccessControlPackageImpl theSQLAccessControlPackage = (SQLAccessControlPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SQLAccessControlPackage.eNS_URI) instanceof SQLAccessControlPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SQLAccessControlPackage.eNS_URI) : SQLAccessControlPackage.eINSTANCE);
+
+		// Create package meta-data objects
+		theSQLTablesPackage.createPackageContents();
+		theSQLSchemaPackage.createPackageContents();
+		theSQLConstraintsPackage.createPackageContents();
+		theSQLDataTypesPackage.createPackageContents();
+		theSQLExpressionsPackage.createPackageContents();
+		theSQLRoutinesPackage.createPackageContents();
+		theSQLStatementsPackage.createPackageContents();
+		theSQLAccessControlPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theSQLTablesPackage.initializePackageContents();
+		theSQLSchemaPackage.initializePackageContents();
+		theSQLConstraintsPackage.initializePackageContents();
+		theSQLDataTypesPackage.initializePackageContents();
+		theSQLExpressionsPackage.initializePackageContents();
+		theSQLRoutinesPackage.initializePackageContents();
+		theSQLStatementsPackage.initializePackageContents();
+		theSQLAccessControlPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theSQLTablesPackage.freeze();
+
+		return theSQLTablesPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getViewTable() {
+		return viewTableEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getViewTable_CheckType() {
+		return (EAttribute)viewTableEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTemporaryTable() {
+		return temporaryTableEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTemporaryTable_Local() {
+		return (EAttribute)temporaryTableEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTemporaryTable_DeleteOnCommit() {
+		return (EAttribute)temporaryTableEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTable() {
+		return tableEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getTable_Columns() {
+		return (EReference)tableEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getTable_Supertable() {
+		return (EReference)tableEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getTable_Subtables() {
+		return (EReference)tableEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getTable_Schema() {
+		return (EReference)tableEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getTable_Udt() {
+		return (EReference)tableEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getTable_Triggers() {
+		return (EReference)tableEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getTable_Index() {
+		return (EReference)tableEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTable_SelfRefColumnGeneration() {
+		return (EAttribute)tableEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTable_Insertable() {
+		return (EAttribute)tableEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTable_Updatable() {
+		return (EAttribute)tableEClass.getEStructuralFeatures().get(9);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getPersistentTable() {
+		return persistentTableEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getDerivedTable() {
+		return derivedTableEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDerivedTable_QueryExpression() {
+		return (EReference)derivedTableEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getBaseTable() {
+		return baseTableEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getBaseTable_Constraints() {
+		return (EReference)baseTableEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getBaseTable_ReferencingForeignKeys() {
+		return (EReference)baseTableEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getColumn() {
+		return columnEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getColumn_Table() {
+		return (EReference)columnEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getColumn_IdentitySpecifier() {
+		return (EReference)columnEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getColumn_GenerateExpression() {
+		return (EReference)columnEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getColumn_ImplementationDependent() {
+		return (EAttribute)columnEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getColumn_Nullable() {
+		return (EAttribute)columnEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getColumn_DefaultValue() {
+		return (EAttribute)columnEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getColumn_ScopeCheck() {
+		return (EAttribute)columnEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getColumn_ScopeChecked() {
+		return (EAttribute)columnEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTrigger() {
+		return triggerEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getTrigger_Schema() {
+		return (EReference)triggerEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getTrigger_SubjectTable() {
+		return (EReference)triggerEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getTrigger_ActionStatement() {
+		return (EReference)triggerEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getTrigger_TriggerColumn() {
+		return (EReference)triggerEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTrigger_ActionGranularity() {
+		return (EAttribute)triggerEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getTrigger_When() {
+		return (EReference)triggerEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTrigger_TimeStamp() {
+		return (EAttribute)triggerEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTrigger_ActionTime() {
+		return (EAttribute)triggerEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTrigger_UpdateType() {
+		return (EAttribute)triggerEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTrigger_InsertType() {
+		return (EAttribute)triggerEClass.getEStructuralFeatures().get(9);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTrigger_DeleteType() {
+		return (EAttribute)triggerEClass.getEStructuralFeatures().get(10);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTrigger_OldRow() {
+		return (EAttribute)triggerEClass.getEStructuralFeatures().get(11);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTrigger_NewRow() {
+		return (EAttribute)triggerEClass.getEStructuralFeatures().get(12);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTrigger_OldTable() {
+		return (EAttribute)triggerEClass.getEStructuralFeatures().get(13);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTrigger_NewTable() {
+		return (EAttribute)triggerEClass.getEStructuralFeatures().get(14);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getCheckType() {
+		return checkTypeEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getReferenceType() {
+		return referenceTypeEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getActionTimeType() {
+		return actionTimeTypeEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getActionGranularityType() {
+		return actionGranularityTypeEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLTablesFactory getSQLTablesFactory() {
+		return (SQLTablesFactory)getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package.  This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated) return;
+		isCreated = true;
+
+		// Create classes and their features
+		viewTableEClass = createEClass(VIEW_TABLE);
+		createEAttribute(viewTableEClass, VIEW_TABLE__CHECK_TYPE);
+
+		temporaryTableEClass = createEClass(TEMPORARY_TABLE);
+		createEAttribute(temporaryTableEClass, TEMPORARY_TABLE__LOCAL);
+		createEAttribute(temporaryTableEClass, TEMPORARY_TABLE__DELETE_ON_COMMIT);
+
+		tableEClass = createEClass(TABLE);
+		createEReference(tableEClass, TABLE__COLUMNS);
+		createEReference(tableEClass, TABLE__SUPERTABLE);
+		createEReference(tableEClass, TABLE__SUBTABLES);
+		createEReference(tableEClass, TABLE__SCHEMA);
+		createEReference(tableEClass, TABLE__UDT);
+		createEReference(tableEClass, TABLE__TRIGGERS);
+		createEReference(tableEClass, TABLE__INDEX);
+		createEAttribute(tableEClass, TABLE__SELF_REF_COLUMN_GENERATION);
+		createEAttribute(tableEClass, TABLE__INSERTABLE);
+		createEAttribute(tableEClass, TABLE__UPDATABLE);
+
+		persistentTableEClass = createEClass(PERSISTENT_TABLE);
+
+		derivedTableEClass = createEClass(DERIVED_TABLE);
+		createEReference(derivedTableEClass, DERIVED_TABLE__QUERY_EXPRESSION);
+
+		baseTableEClass = createEClass(BASE_TABLE);
+		createEReference(baseTableEClass, BASE_TABLE__CONSTRAINTS);
+		createEReference(baseTableEClass, BASE_TABLE__REFERENCING_FOREIGN_KEYS);
+
+		columnEClass = createEClass(COLUMN);
+		createEReference(columnEClass, COLUMN__TABLE);
+		createEReference(columnEClass, COLUMN__IDENTITY_SPECIFIER);
+		createEReference(columnEClass, COLUMN__GENERATE_EXPRESSION);
+		createEAttribute(columnEClass, COLUMN__IMPLEMENTATION_DEPENDENT);
+		createEAttribute(columnEClass, COLUMN__NULLABLE);
+		createEAttribute(columnEClass, COLUMN__DEFAULT_VALUE);
+		createEAttribute(columnEClass, COLUMN__SCOPE_CHECK);
+		createEAttribute(columnEClass, COLUMN__SCOPE_CHECKED);
+
+		triggerEClass = createEClass(TRIGGER);
+		createEReference(triggerEClass, TRIGGER__SCHEMA);
+		createEReference(triggerEClass, TRIGGER__SUBJECT_TABLE);
+		createEReference(triggerEClass, TRIGGER__ACTION_STATEMENT);
+		createEReference(triggerEClass, TRIGGER__TRIGGER_COLUMN);
+		createEAttribute(triggerEClass, TRIGGER__ACTION_GRANULARITY);
+		createEReference(triggerEClass, TRIGGER__WHEN);
+		createEAttribute(triggerEClass, TRIGGER__TIME_STAMP);
+		createEAttribute(triggerEClass, TRIGGER__ACTION_TIME);
+		createEAttribute(triggerEClass, TRIGGER__UPDATE_TYPE);
+		createEAttribute(triggerEClass, TRIGGER__INSERT_TYPE);
+		createEAttribute(triggerEClass, TRIGGER__DELETE_TYPE);
+		createEAttribute(triggerEClass, TRIGGER__OLD_ROW);
+		createEAttribute(triggerEClass, TRIGGER__NEW_ROW);
+		createEAttribute(triggerEClass, TRIGGER__OLD_TABLE);
+		createEAttribute(triggerEClass, TRIGGER__NEW_TABLE);
+
+		// Create enums
+		checkTypeEEnum = createEEnum(CHECK_TYPE);
+		referenceTypeEEnum = createEEnum(REFERENCE_TYPE);
+		actionTimeTypeEEnum = createEEnum(ACTION_TIME_TYPE);
+		actionGranularityTypeEEnum = createEEnum(ACTION_GRANULARITY_TYPE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model.  This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized) return;
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Obtain other dependent packages
+		SQLSchemaPackage theSQLSchemaPackage = (SQLSchemaPackage)EPackage.Registry.INSTANCE.getEPackage(SQLSchemaPackage.eNS_URI);
+		SQLDataTypesPackage theSQLDataTypesPackage = (SQLDataTypesPackage)EPackage.Registry.INSTANCE.getEPackage(SQLDataTypesPackage.eNS_URI);
+		SQLConstraintsPackage theSQLConstraintsPackage = (SQLConstraintsPackage)EPackage.Registry.INSTANCE.getEPackage(SQLConstraintsPackage.eNS_URI);
+		SQLExpressionsPackage theSQLExpressionsPackage = (SQLExpressionsPackage)EPackage.Registry.INSTANCE.getEPackage(SQLExpressionsPackage.eNS_URI);
+		SQLStatementsPackage theSQLStatementsPackage = (SQLStatementsPackage)EPackage.Registry.INSTANCE.getEPackage(SQLStatementsPackage.eNS_URI);
+
+		// Add supertypes to classes
+		viewTableEClass.getESuperTypes().add(this.getDerivedTable());
+		temporaryTableEClass.getESuperTypes().add(this.getBaseTable());
+		tableEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+		persistentTableEClass.getESuperTypes().add(this.getBaseTable());
+		derivedTableEClass.getESuperTypes().add(this.getTable());
+		baseTableEClass.getESuperTypes().add(this.getTable());
+		columnEClass.getESuperTypes().add(theSQLSchemaPackage.getTypedElement());
+		triggerEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+
+		// Initialize classes and features; add operations and parameters
+		initEClass(viewTableEClass, ViewTable.class, "ViewTable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getViewTable_CheckType(), this.getCheckType(), "checkType", null, 0, 1, ViewTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(temporaryTableEClass, TemporaryTable.class, "TemporaryTable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEAttribute(getTemporaryTable_Local(), ecorePackage.getEBoolean(), "local", null, 0, 1, TemporaryTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getTemporaryTable_DeleteOnCommit(), ecorePackage.getEBoolean(), "deleteOnCommit", null, 0, 1, TemporaryTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(tableEClass, Table.class, "Table", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEReference(getTable_Columns(), this.getColumn(), this.getColumn_Table(), "columns", null, 1, -1, Table.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getTable_Supertable(), this.getTable(), this.getTable_Subtables(), "supertable", null, 0, 1, Table.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getTable_Subtables(), this.getTable(), this.getTable_Supertable(), "subtables", null, 0, -1, Table.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getTable_Schema(), theSQLSchemaPackage.getSchema(), theSQLSchemaPackage.getSchema_Tables(), "schema", null, 1, 1, Table.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getTable_Udt(), theSQLDataTypesPackage.getStructuredUserDefinedType(), null, "udt", null, 0, 1, Table.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getTable_Triggers(), this.getTrigger(), this.getTrigger_SubjectTable(), "triggers", null, 0, -1, Table.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getTable_Index(), theSQLConstraintsPackage.getIndex(), theSQLConstraintsPackage.getIndex_Table(), "index", null, 0, -1, Table.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getTable_SelfRefColumnGeneration(), this.getReferenceType(), "selfRefColumnGeneration", null, 0, 1, Table.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getTable_Insertable(), ecorePackage.getEBoolean(), "insertable", null, 0, 1, Table.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getTable_Updatable(), ecorePackage.getEBoolean(), "updatable", null, 0, 1, Table.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(persistentTableEClass, PersistentTable.class, "PersistentTable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+		initEClass(derivedTableEClass, DerivedTable.class, "DerivedTable", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEReference(getDerivedTable_QueryExpression(), theSQLExpressionsPackage.getQueryExpression(), null, "queryExpression", null, 0, 1, DerivedTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		initEClass(baseTableEClass, BaseTable.class, "BaseTable", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEReference(getBaseTable_Constraints(), theSQLConstraintsPackage.getTableConstraint(), theSQLConstraintsPackage.getTableConstraint_BaseTable(), "constraints", null, 0, -1, BaseTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getBaseTable_ReferencingForeignKeys(), theSQLConstraintsPackage.getForeignKey(), theSQLConstraintsPackage.getForeignKey_ReferencedTable(), "referencingForeignKeys", null, 0, -1, BaseTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		addEOperation(baseTableEClass, theSQLSchemaPackage.getList(), "getUniqueConstraints", 0, 1); //$NON-NLS-1$
+
+		addEOperation(baseTableEClass, theSQLSchemaPackage.getList(), "getForeignKeys", 0, 1); //$NON-NLS-1$
+
+		addEOperation(baseTableEClass, theSQLConstraintsPackage.getPrimaryKey(), "getPrimaryKey", 0, 1); //$NON-NLS-1$
+
+		initEClass(columnEClass, Column.class, "Column", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEReference(getColumn_Table(), this.getTable(), this.getTable_Columns(), "table", null, 1, 1, Column.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getColumn_IdentitySpecifier(), theSQLSchemaPackage.getIdentitySpecifier(), null, "identitySpecifier", null, 0, 1, Column.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getColumn_GenerateExpression(), theSQLExpressionsPackage.getValueExpression(), null, "generateExpression", null, 0, 1, Column.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getColumn_ImplementationDependent(), ecorePackage.getEBoolean(), "implementationDependent", "False", 0, 1, Column.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+		initEAttribute(getColumn_Nullable(), ecorePackage.getEBoolean(), "nullable", "True", 0, 1, Column.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+		initEAttribute(getColumn_DefaultValue(), ecorePackage.getEString(), "defaultValue", null, 0, 1, Column.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getColumn_ScopeCheck(), theSQLSchemaPackage.getReferentialActionType(), "scopeCheck", "NO_ACTION", 0, 1, Column.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+		initEAttribute(getColumn_ScopeChecked(), ecorePackage.getEBoolean(), "scopeChecked", null, 0, 1, Column.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		addEOperation(columnEClass, ecorePackage.getEBoolean(), "isPartOfForeignKey", 0, 1); //$NON-NLS-1$
+
+		addEOperation(columnEClass, ecorePackage.getEBoolean(), "isPartOfUniqueConstraint", 0, 1); //$NON-NLS-1$
+
+		addEOperation(columnEClass, ecorePackage.getEBoolean(), "isPartOfPrimaryKey", 0, 1); //$NON-NLS-1$
+
+		initEClass(triggerEClass, Trigger.class, "Trigger", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+		initEReference(getTrigger_Schema(), theSQLSchemaPackage.getSchema(), theSQLSchemaPackage.getSchema_Triggers(), "schema", null, 1, 1, Trigger.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getTrigger_SubjectTable(), this.getTable(), this.getTable_Triggers(), "subjectTable", null, 1, 1, Trigger.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getTrigger_ActionStatement(), theSQLStatementsPackage.getSQLStatement(), null, "actionStatement", null, 1, -1, Trigger.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEReference(getTrigger_TriggerColumn(), this.getColumn(), null, "triggerColumn", null, 0, -1, Trigger.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getTrigger_ActionGranularity(), this.getActionGranularityType(), "actionGranularity", "STATEMENT", 0, 1, Trigger.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+		initEReference(getTrigger_When(), theSQLExpressionsPackage.getSearchCondition(), null, "when", null, 0, 1, Trigger.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getTrigger_TimeStamp(), theSQLSchemaPackage.getDate(), "timeStamp", null, 0, 1, Trigger.class, !IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getTrigger_ActionTime(), this.getActionTimeType(), "actionTime", null, 0, 1, Trigger.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getTrigger_UpdateType(), ecorePackage.getEBoolean(), "updateType", null, 0, 1, Trigger.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getTrigger_InsertType(), ecorePackage.getEBoolean(), "insertType", null, 0, 1, Trigger.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getTrigger_DeleteType(), ecorePackage.getEBoolean(), "deleteType", null, 0, 1, Trigger.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getTrigger_OldRow(), ecorePackage.getEString(), "oldRow", null, 0, 1, Trigger.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getTrigger_NewRow(), ecorePackage.getEString(), "newRow", null, 0, 1, Trigger.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getTrigger_OldTable(), ecorePackage.getEString(), "oldTable", null, 0, 1, Trigger.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+		initEAttribute(getTrigger_NewTable(), ecorePackage.getEString(), "newTable", null, 0, 1, Trigger.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+		// Initialize enums and add enum literals
+		initEEnum(checkTypeEEnum, CheckType.class, "CheckType"); //$NON-NLS-1$
+		addEEnumLiteral(checkTypeEEnum, CheckType.CASCADED_LITERAL);
+		addEEnumLiteral(checkTypeEEnum, CheckType.LOCAL_LITERAL);
+		addEEnumLiteral(checkTypeEEnum, CheckType.NONE_LITERAL);
+
+		initEEnum(referenceTypeEEnum, ReferenceType.class, "ReferenceType"); //$NON-NLS-1$
+		addEEnumLiteral(referenceTypeEEnum, ReferenceType.SYSTEM_GENERATED_LITERAL);
+		addEEnumLiteral(referenceTypeEEnum, ReferenceType.USER_GENERATED_LITERAL);
+		addEEnumLiteral(referenceTypeEEnum, ReferenceType.DERIVED_SELF_REF_LITERAL);
+
+		initEEnum(actionTimeTypeEEnum, ActionTimeType.class, "ActionTimeType"); //$NON-NLS-1$
+		addEEnumLiteral(actionTimeTypeEEnum, ActionTimeType.AFTER_LITERAL);
+		addEEnumLiteral(actionTimeTypeEEnum, ActionTimeType.BEFORE_LITERAL);
+		addEEnumLiteral(actionTimeTypeEEnum, ActionTimeType.INSTEADOF_LITERAL);
+
+		initEEnum(actionGranularityTypeEEnum, ActionGranularityType.class, "ActionGranularityType"); //$NON-NLS-1$
+		addEEnumLiteral(actionGranularityTypeEEnum, ActionGranularityType.STATEMENT_LITERAL);
+		addEEnumLiteral(actionGranularityTypeEEnum, ActionGranularityType.ROW_LITERAL);
+
+		// Create resource
+		createResource(eNS_URI);
+	}
+
+} //SQLTablesPackageImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/impl/TableImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/impl/TableImpl.java
new file mode 100644
index 0000000..e18603c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/impl/TableImpl.java
@@ -0,0 +1,641 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.tables.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.constraints.Index;
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;
+import org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.datatools.modelbase.sql.tables.Column;
+import org.eclipse.datatools.modelbase.sql.tables.ReferenceType;
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.datatools.modelbase.sql.tables.Trigger;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Table</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.impl.TableImpl#getColumns <em>Columns</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.impl.TableImpl#getSupertable <em>Supertable</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.impl.TableImpl#getSubtables <em>Subtables</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.impl.TableImpl#getSchema <em>Schema</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.impl.TableImpl#getUdt <em>Udt</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.impl.TableImpl#getTriggers <em>Triggers</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.impl.TableImpl#getIndex <em>Index</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.impl.TableImpl#getSelfRefColumnGeneration <em>Self Ref Column Generation</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.impl.TableImpl#isInsertable <em>Insertable</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.impl.TableImpl#isUpdatable <em>Updatable</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class TableImpl extends SQLObjectImpl implements Table {
+	/**
+	 * The cached value of the '{@link #getColumns() <em>Columns</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getColumns()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList columns;
+
+	/**
+	 * The cached value of the '{@link #getSupertable() <em>Supertable</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSupertable()
+	 * @generated
+	 * @ordered
+	 */
+	protected Table supertable;
+
+	/**
+	 * The cached value of the '{@link #getSubtables() <em>Subtables</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSubtables()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList subtables;
+
+	/**
+	 * The cached value of the '{@link #getSchema() <em>Schema</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSchema()
+	 * @generated
+	 * @ordered
+	 */
+	protected Schema schema;
+
+	/**
+	 * The cached value of the '{@link #getUdt() <em>Udt</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getUdt()
+	 * @generated
+	 * @ordered
+	 */
+	protected StructuredUserDefinedType udt;
+
+	/**
+	 * The cached value of the '{@link #getTriggers() <em>Triggers</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTriggers()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList triggers;
+
+	/**
+	 * The cached value of the '{@link #getIndex() <em>Index</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getIndex()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList index;
+
+	/**
+	 * The default value of the '{@link #getSelfRefColumnGeneration() <em>Self Ref Column Generation</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSelfRefColumnGeneration()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final ReferenceType SELF_REF_COLUMN_GENERATION_EDEFAULT = ReferenceType.SYSTEM_GENERATED_LITERAL;
+
+	/**
+	 * The cached value of the '{@link #getSelfRefColumnGeneration() <em>Self Ref Column Generation</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSelfRefColumnGeneration()
+	 * @generated
+	 * @ordered
+	 */
+	protected ReferenceType selfRefColumnGeneration = SELF_REF_COLUMN_GENERATION_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isInsertable() <em>Insertable</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isInsertable()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean INSERTABLE_EDEFAULT = false;
+
+	/**
+	 * The default value of the '{@link #isUpdatable() <em>Updatable</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isUpdatable()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean UPDATABLE_EDEFAULT = false;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TableImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLTablesPackage.Literals.TABLE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getColumns() {
+		if (columns == null) {
+			columns = new EObjectContainmentWithInverseEList(Column.class, this, SQLTablesPackage.TABLE__COLUMNS, SQLTablesPackage.COLUMN__TABLE);
+		}
+		return columns;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Table getSupertable() {
+		if (supertable != null && supertable.eIsProxy()) {
+			InternalEObject oldSupertable = (InternalEObject)supertable;
+			supertable = (Table)eResolveProxy(oldSupertable);
+			if (supertable != oldSupertable) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SQLTablesPackage.TABLE__SUPERTABLE, oldSupertable, supertable));
+			}
+		}
+		return supertable;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Table basicGetSupertable() {
+		return supertable;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetSupertable(Table newSupertable, NotificationChain msgs) {
+		Table oldSupertable = supertable;
+		supertable = newSupertable;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLTablesPackage.TABLE__SUPERTABLE, oldSupertable, newSupertable);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSupertable(Table newSupertable) {
+		if (newSupertable != supertable) {
+			NotificationChain msgs = null;
+			if (supertable != null)
+				msgs = ((InternalEObject)supertable).eInverseRemove(this, SQLTablesPackage.TABLE__SUBTABLES, Table.class, msgs);
+			if (newSupertable != null)
+				msgs = ((InternalEObject)newSupertable).eInverseAdd(this, SQLTablesPackage.TABLE__SUBTABLES, Table.class, msgs);
+			msgs = basicSetSupertable(newSupertable, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLTablesPackage.TABLE__SUPERTABLE, newSupertable, newSupertable));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getSubtables() {
+		if (subtables == null) {
+			subtables = new EObjectWithInverseResolvingEList(Table.class, this, SQLTablesPackage.TABLE__SUBTABLES, SQLTablesPackage.TABLE__SUPERTABLE);
+		}
+		return subtables;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Schema getSchema() {
+		if (schema != null && schema.eIsProxy()) {
+			InternalEObject oldSchema = (InternalEObject)schema;
+			schema = (Schema)eResolveProxy(oldSchema);
+			if (schema != oldSchema) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SQLTablesPackage.TABLE__SCHEMA, oldSchema, schema));
+			}
+		}
+		return schema;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Schema basicGetSchema() {
+		return schema;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetSchema(Schema newSchema, NotificationChain msgs) {
+		Schema oldSchema = schema;
+		schema = newSchema;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLTablesPackage.TABLE__SCHEMA, oldSchema, newSchema);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSchema(Schema newSchema) {
+		if (newSchema != schema) {
+			NotificationChain msgs = null;
+			if (schema != null)
+				msgs = ((InternalEObject)schema).eInverseRemove(this, SQLSchemaPackage.SCHEMA__TABLES, Schema.class, msgs);
+			if (newSchema != null)
+				msgs = ((InternalEObject)newSchema).eInverseAdd(this, SQLSchemaPackage.SCHEMA__TABLES, Schema.class, msgs);
+			msgs = basicSetSchema(newSchema, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLTablesPackage.TABLE__SCHEMA, newSchema, newSchema));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public StructuredUserDefinedType getUdt() {
+		if (udt != null && udt.eIsProxy()) {
+			InternalEObject oldUdt = (InternalEObject)udt;
+			udt = (StructuredUserDefinedType)eResolveProxy(oldUdt);
+			if (udt != oldUdt) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SQLTablesPackage.TABLE__UDT, oldUdt, udt));
+			}
+		}
+		return udt;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public StructuredUserDefinedType basicGetUdt() {
+		return udt;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setUdt(StructuredUserDefinedType newUdt) {
+		StructuredUserDefinedType oldUdt = udt;
+		udt = newUdt;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLTablesPackage.TABLE__UDT, oldUdt, udt));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getTriggers() {
+		if (triggers == null) {
+			triggers = new EObjectWithInverseResolvingEList(Trigger.class, this, SQLTablesPackage.TABLE__TRIGGERS, SQLTablesPackage.TRIGGER__SUBJECT_TABLE);
+		}
+		return triggers;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getIndex() {
+		if (index == null) {
+			index = new EObjectWithInverseResolvingEList(Index.class, this, SQLTablesPackage.TABLE__INDEX, SQLConstraintsPackage.INDEX__TABLE);
+		}
+		return index;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ReferenceType getSelfRefColumnGeneration() {
+		return selfRefColumnGeneration;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSelfRefColumnGeneration(ReferenceType newSelfRefColumnGeneration) {
+		ReferenceType oldSelfRefColumnGeneration = selfRefColumnGeneration;
+		selfRefColumnGeneration = newSelfRefColumnGeneration == null ? SELF_REF_COLUMN_GENERATION_EDEFAULT : newSelfRefColumnGeneration;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLTablesPackage.TABLE__SELF_REF_COLUMN_GENERATION, oldSelfRefColumnGeneration, selfRefColumnGeneration));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isInsertable() {
+		// TODO: implement this method to return the 'Insertable' attribute
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isUpdatable() {
+		// TODO: implement this method to return the 'Updatable' attribute
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLTablesPackage.TABLE__COLUMNS:
+				return ((InternalEList)getColumns()).basicAdd(otherEnd, msgs);
+			case SQLTablesPackage.TABLE__SUPERTABLE:
+				if (supertable != null)
+					msgs = ((InternalEObject)supertable).eInverseRemove(this, SQLTablesPackage.TABLE__SUBTABLES, Table.class, msgs);
+				return basicSetSupertable((Table)otherEnd, msgs);
+			case SQLTablesPackage.TABLE__SUBTABLES:
+				return ((InternalEList)getSubtables()).basicAdd(otherEnd, msgs);
+			case SQLTablesPackage.TABLE__SCHEMA:
+				if (schema != null)
+					msgs = ((InternalEObject)schema).eInverseRemove(this, SQLSchemaPackage.SCHEMA__TABLES, Schema.class, msgs);
+				return basicSetSchema((Schema)otherEnd, msgs);
+			case SQLTablesPackage.TABLE__TRIGGERS:
+				return ((InternalEList)getTriggers()).basicAdd(otherEnd, msgs);
+			case SQLTablesPackage.TABLE__INDEX:
+				return ((InternalEList)getIndex()).basicAdd(otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLTablesPackage.TABLE__COLUMNS:
+				return ((InternalEList)getColumns()).basicRemove(otherEnd, msgs);
+			case SQLTablesPackage.TABLE__SUPERTABLE:
+				return basicSetSupertable(null, msgs);
+			case SQLTablesPackage.TABLE__SUBTABLES:
+				return ((InternalEList)getSubtables()).basicRemove(otherEnd, msgs);
+			case SQLTablesPackage.TABLE__SCHEMA:
+				return basicSetSchema(null, msgs);
+			case SQLTablesPackage.TABLE__TRIGGERS:
+				return ((InternalEList)getTriggers()).basicRemove(otherEnd, msgs);
+			case SQLTablesPackage.TABLE__INDEX:
+				return ((InternalEList)getIndex()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLTablesPackage.TABLE__COLUMNS:
+				return getColumns();
+			case SQLTablesPackage.TABLE__SUPERTABLE:
+				if (resolve) return getSupertable();
+				return basicGetSupertable();
+			case SQLTablesPackage.TABLE__SUBTABLES:
+				return getSubtables();
+			case SQLTablesPackage.TABLE__SCHEMA:
+				if (resolve) return getSchema();
+				return basicGetSchema();
+			case SQLTablesPackage.TABLE__UDT:
+				if (resolve) return getUdt();
+				return basicGetUdt();
+			case SQLTablesPackage.TABLE__TRIGGERS:
+				return getTriggers();
+			case SQLTablesPackage.TABLE__INDEX:
+				return getIndex();
+			case SQLTablesPackage.TABLE__SELF_REF_COLUMN_GENERATION:
+				return getSelfRefColumnGeneration();
+			case SQLTablesPackage.TABLE__INSERTABLE:
+				return isInsertable() ? Boolean.TRUE : Boolean.FALSE;
+			case SQLTablesPackage.TABLE__UPDATABLE:
+				return isUpdatable() ? Boolean.TRUE : Boolean.FALSE;
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLTablesPackage.TABLE__COLUMNS:
+				getColumns().clear();
+				getColumns().addAll((Collection)newValue);
+				return;
+			case SQLTablesPackage.TABLE__SUPERTABLE:
+				setSupertable((Table)newValue);
+				return;
+			case SQLTablesPackage.TABLE__SUBTABLES:
+				getSubtables().clear();
+				getSubtables().addAll((Collection)newValue);
+				return;
+			case SQLTablesPackage.TABLE__SCHEMA:
+				setSchema((Schema)newValue);
+				return;
+			case SQLTablesPackage.TABLE__UDT:
+				setUdt((StructuredUserDefinedType)newValue);
+				return;
+			case SQLTablesPackage.TABLE__TRIGGERS:
+				getTriggers().clear();
+				getTriggers().addAll((Collection)newValue);
+				return;
+			case SQLTablesPackage.TABLE__INDEX:
+				getIndex().clear();
+				getIndex().addAll((Collection)newValue);
+				return;
+			case SQLTablesPackage.TABLE__SELF_REF_COLUMN_GENERATION:
+				setSelfRefColumnGeneration((ReferenceType)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLTablesPackage.TABLE__COLUMNS:
+				getColumns().clear();
+				return;
+			case SQLTablesPackage.TABLE__SUPERTABLE:
+				setSupertable((Table)null);
+				return;
+			case SQLTablesPackage.TABLE__SUBTABLES:
+				getSubtables().clear();
+				return;
+			case SQLTablesPackage.TABLE__SCHEMA:
+				setSchema((Schema)null);
+				return;
+			case SQLTablesPackage.TABLE__UDT:
+				setUdt((StructuredUserDefinedType)null);
+				return;
+			case SQLTablesPackage.TABLE__TRIGGERS:
+				getTriggers().clear();
+				return;
+			case SQLTablesPackage.TABLE__INDEX:
+				getIndex().clear();
+				return;
+			case SQLTablesPackage.TABLE__SELF_REF_COLUMN_GENERATION:
+				setSelfRefColumnGeneration(SELF_REF_COLUMN_GENERATION_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLTablesPackage.TABLE__COLUMNS:
+				return columns != null && !columns.isEmpty();
+			case SQLTablesPackage.TABLE__SUPERTABLE:
+				return supertable != null;
+			case SQLTablesPackage.TABLE__SUBTABLES:
+				return subtables != null && !subtables.isEmpty();
+			case SQLTablesPackage.TABLE__SCHEMA:
+				return schema != null;
+			case SQLTablesPackage.TABLE__UDT:
+				return udt != null;
+			case SQLTablesPackage.TABLE__TRIGGERS:
+				return triggers != null && !triggers.isEmpty();
+			case SQLTablesPackage.TABLE__INDEX:
+				return index != null && !index.isEmpty();
+			case SQLTablesPackage.TABLE__SELF_REF_COLUMN_GENERATION:
+				return selfRefColumnGeneration != SELF_REF_COLUMN_GENERATION_EDEFAULT;
+			case SQLTablesPackage.TABLE__INSERTABLE:
+				return isInsertable() != INSERTABLE_EDEFAULT;
+			case SQLTablesPackage.TABLE__UPDATABLE:
+				return isUpdatable() != UPDATABLE_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (selfRefColumnGeneration: "); //$NON-NLS-1$
+		result.append(selfRefColumnGeneration);
+		result.append(')');
+		return result.toString();
+	}
+
+} //TableImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/impl/TemporaryTableImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/impl/TemporaryTableImpl.java
new file mode 100644
index 0000000..bc12ac8
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/impl/TemporaryTableImpl.java
@@ -0,0 +1,226 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.tables.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.tables.ReferenceType;
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.datatools.modelbase.sql.tables.TemporaryTable;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Temporary Table</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.impl.TemporaryTableImpl#isLocal <em>Local</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.impl.TemporaryTableImpl#isDeleteOnCommit <em>Delete On Commit</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TemporaryTableImpl extends BaseTableImpl implements TemporaryTable {
+	/**
+	 * The default value of the '{@link #isLocal() <em>Local</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isLocal()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean LOCAL_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isLocal() <em>Local</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isLocal()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean local = LOCAL_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isDeleteOnCommit() <em>Delete On Commit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isDeleteOnCommit()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean DELETE_ON_COMMIT_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isDeleteOnCommit() <em>Delete On Commit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isDeleteOnCommit()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean deleteOnCommit = DELETE_ON_COMMIT_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TemporaryTableImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLTablesPackage.Literals.TEMPORARY_TABLE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isLocal() {
+		return local;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLocal(boolean newLocal) {
+		boolean oldLocal = local;
+		local = newLocal;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLTablesPackage.TEMPORARY_TABLE__LOCAL, oldLocal, local));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isDeleteOnCommit() {
+		return deleteOnCommit;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDeleteOnCommit(boolean newDeleteOnCommit) {
+		boolean oldDeleteOnCommit = deleteOnCommit;
+		deleteOnCommit = newDeleteOnCommit;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLTablesPackage.TEMPORARY_TABLE__DELETE_ON_COMMIT, oldDeleteOnCommit, deleteOnCommit));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLTablesPackage.TEMPORARY_TABLE__LOCAL:
+				return isLocal() ? Boolean.TRUE : Boolean.FALSE;
+			case SQLTablesPackage.TEMPORARY_TABLE__DELETE_ON_COMMIT:
+				return isDeleteOnCommit() ? Boolean.TRUE : Boolean.FALSE;
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLTablesPackage.TEMPORARY_TABLE__LOCAL:
+				setLocal(((Boolean)newValue).booleanValue());
+				return;
+			case SQLTablesPackage.TEMPORARY_TABLE__DELETE_ON_COMMIT:
+				setDeleteOnCommit(((Boolean)newValue).booleanValue());
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLTablesPackage.TEMPORARY_TABLE__LOCAL:
+				setLocal(LOCAL_EDEFAULT);
+				return;
+			case SQLTablesPackage.TEMPORARY_TABLE__DELETE_ON_COMMIT:
+				setDeleteOnCommit(DELETE_ON_COMMIT_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLTablesPackage.TEMPORARY_TABLE__LOCAL:
+				return local != LOCAL_EDEFAULT;
+			case SQLTablesPackage.TEMPORARY_TABLE__DELETE_ON_COMMIT:
+				return deleteOnCommit != DELETE_ON_COMMIT_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (local: "); //$NON-NLS-1$
+		result.append(local);
+		result.append(", deleteOnCommit: "); //$NON-NLS-1$
+		result.append(deleteOnCommit);
+		result.append(')');
+		return result.toString();
+	}
+
+} //TemporaryTableImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/impl/TriggerImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/impl/TriggerImpl.java
new file mode 100644
index 0000000..c248d9a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/impl/TriggerImpl.java
@@ -0,0 +1,982 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.tables.impl;
+
+import java.util.Collection;
+import java.util.Date;
+
+import org.eclipse.datatools.modelbase.sql.expressions.SearchCondition;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.datatools.modelbase.sql.statements.SQLStatement;
+import org.eclipse.datatools.modelbase.sql.tables.ActionGranularityType;
+import org.eclipse.datatools.modelbase.sql.tables.ActionTimeType;
+import org.eclipse.datatools.modelbase.sql.tables.Column;
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.datatools.modelbase.sql.tables.Trigger;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Trigger</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.impl.TriggerImpl#getSchema <em>Schema</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.impl.TriggerImpl#getSubjectTable <em>Subject Table</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.impl.TriggerImpl#getActionStatement <em>Action Statement</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.impl.TriggerImpl#getTriggerColumn <em>Trigger Column</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.impl.TriggerImpl#getActionGranularity <em>Action Granularity</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.impl.TriggerImpl#getWhen <em>When</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.impl.TriggerImpl#getTimeStamp <em>Time Stamp</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.impl.TriggerImpl#getActionTime <em>Action Time</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.impl.TriggerImpl#isUpdateType <em>Update Type</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.impl.TriggerImpl#isInsertType <em>Insert Type</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.impl.TriggerImpl#isDeleteType <em>Delete Type</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.impl.TriggerImpl#getOldRow <em>Old Row</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.impl.TriggerImpl#getNewRow <em>New Row</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.impl.TriggerImpl#getOldTable <em>Old Table</em>}</li>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.impl.TriggerImpl#getNewTable <em>New Table</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TriggerImpl extends SQLObjectImpl implements Trigger {
+	/**
+	 * The cached value of the '{@link #getSchema() <em>Schema</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSchema()
+	 * @generated
+	 * @ordered
+	 */
+	protected Schema schema;
+
+	/**
+	 * The cached value of the '{@link #getSubjectTable() <em>Subject Table</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSubjectTable()
+	 * @generated
+	 * @ordered
+	 */
+	protected Table subjectTable;
+
+	/**
+	 * The cached value of the '{@link #getActionStatement() <em>Action Statement</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getActionStatement()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList actionStatement;
+
+	/**
+	 * The cached value of the '{@link #getTriggerColumn() <em>Trigger Column</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTriggerColumn()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList triggerColumn;
+
+	/**
+	 * The default value of the '{@link #getActionGranularity() <em>Action Granularity</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getActionGranularity()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final ActionGranularityType ACTION_GRANULARITY_EDEFAULT = ActionGranularityType.STATEMENT_LITERAL;
+
+	/**
+	 * The cached value of the '{@link #getActionGranularity() <em>Action Granularity</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getActionGranularity()
+	 * @generated
+	 * @ordered
+	 */
+	protected ActionGranularityType actionGranularity = ACTION_GRANULARITY_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getWhen() <em>When</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getWhen()
+	 * @generated
+	 * @ordered
+	 */
+	protected SearchCondition when;
+
+	/**
+	 * The default value of the '{@link #getTimeStamp() <em>Time Stamp</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTimeStamp()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final Date TIME_STAMP_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getTimeStamp() <em>Time Stamp</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTimeStamp()
+	 * @generated
+	 * @ordered
+	 */
+	protected Date timeStamp = TIME_STAMP_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getActionTime() <em>Action Time</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getActionTime()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final ActionTimeType ACTION_TIME_EDEFAULT = ActionTimeType.AFTER_LITERAL;
+
+	/**
+	 * The cached value of the '{@link #getActionTime() <em>Action Time</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getActionTime()
+	 * @generated
+	 * @ordered
+	 */
+	protected ActionTimeType actionTime = ACTION_TIME_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isUpdateType() <em>Update Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isUpdateType()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean UPDATE_TYPE_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isUpdateType() <em>Update Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isUpdateType()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean updateType = UPDATE_TYPE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isInsertType() <em>Insert Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isInsertType()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean INSERT_TYPE_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isInsertType() <em>Insert Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isInsertType()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean insertType = INSERT_TYPE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isDeleteType() <em>Delete Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isDeleteType()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean DELETE_TYPE_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isDeleteType() <em>Delete Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isDeleteType()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean deleteType = DELETE_TYPE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getOldRow() <em>Old Row</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getOldRow()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String OLD_ROW_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getOldRow() <em>Old Row</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getOldRow()
+	 * @generated
+	 * @ordered
+	 */
+	protected String oldRow = OLD_ROW_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getNewRow() <em>New Row</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getNewRow()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NEW_ROW_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getNewRow() <em>New Row</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getNewRow()
+	 * @generated
+	 * @ordered
+	 */
+	protected String newRow = NEW_ROW_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getOldTable() <em>Old Table</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getOldTable()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String OLD_TABLE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getOldTable() <em>Old Table</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getOldTable()
+	 * @generated
+	 * @ordered
+	 */
+	protected String oldTable = OLD_TABLE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getNewTable() <em>New Table</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getNewTable()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NEW_TABLE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getNewTable() <em>New Table</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getNewTable()
+	 * @generated
+	 * @ordered
+	 */
+	protected String newTable = NEW_TABLE_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TriggerImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLTablesPackage.Literals.TRIGGER;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Schema getSchema() {
+		if (schema != null && schema.eIsProxy()) {
+			InternalEObject oldSchema = (InternalEObject)schema;
+			schema = (Schema)eResolveProxy(oldSchema);
+			if (schema != oldSchema) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SQLTablesPackage.TRIGGER__SCHEMA, oldSchema, schema));
+			}
+		}
+		return schema;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Schema basicGetSchema() {
+		return schema;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetSchema(Schema newSchema, NotificationChain msgs) {
+		Schema oldSchema = schema;
+		schema = newSchema;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLTablesPackage.TRIGGER__SCHEMA, oldSchema, newSchema);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSchema(Schema newSchema) {
+		if (newSchema != schema) {
+			NotificationChain msgs = null;
+			if (schema != null)
+				msgs = ((InternalEObject)schema).eInverseRemove(this, SQLSchemaPackage.SCHEMA__TRIGGERS, Schema.class, msgs);
+			if (newSchema != null)
+				msgs = ((InternalEObject)newSchema).eInverseAdd(this, SQLSchemaPackage.SCHEMA__TRIGGERS, Schema.class, msgs);
+			msgs = basicSetSchema(newSchema, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLTablesPackage.TRIGGER__SCHEMA, newSchema, newSchema));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Table getSubjectTable() {
+		if (subjectTable != null && subjectTable.eIsProxy()) {
+			InternalEObject oldSubjectTable = (InternalEObject)subjectTable;
+			subjectTable = (Table)eResolveProxy(oldSubjectTable);
+			if (subjectTable != oldSubjectTable) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SQLTablesPackage.TRIGGER__SUBJECT_TABLE, oldSubjectTable, subjectTable));
+			}
+		}
+		return subjectTable;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Table basicGetSubjectTable() {
+		return subjectTable;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetSubjectTable(Table newSubjectTable, NotificationChain msgs) {
+		Table oldSubjectTable = subjectTable;
+		subjectTable = newSubjectTable;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLTablesPackage.TRIGGER__SUBJECT_TABLE, oldSubjectTable, newSubjectTable);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSubjectTable(Table newSubjectTable) {
+		if (newSubjectTable != subjectTable) {
+			NotificationChain msgs = null;
+			if (subjectTable != null)
+				msgs = ((InternalEObject)subjectTable).eInverseRemove(this, SQLTablesPackage.TABLE__TRIGGERS, Table.class, msgs);
+			if (newSubjectTable != null)
+				msgs = ((InternalEObject)newSubjectTable).eInverseAdd(this, SQLTablesPackage.TABLE__TRIGGERS, Table.class, msgs);
+			msgs = basicSetSubjectTable(newSubjectTable, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLTablesPackage.TRIGGER__SUBJECT_TABLE, newSubjectTable, newSubjectTable));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getActionStatement() {
+		if (actionStatement == null) {
+			actionStatement = new EObjectContainmentEList(SQLStatement.class, this, SQLTablesPackage.TRIGGER__ACTION_STATEMENT);
+		}
+		return actionStatement;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList getTriggerColumn() {
+		if (triggerColumn == null) {
+			triggerColumn = new EObjectResolvingEList(Column.class, this, SQLTablesPackage.TRIGGER__TRIGGER_COLUMN);
+		}
+		return triggerColumn;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ActionGranularityType getActionGranularity() {
+		return actionGranularity;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setActionGranularity(ActionGranularityType newActionGranularity) {
+		ActionGranularityType oldActionGranularity = actionGranularity;
+		actionGranularity = newActionGranularity == null ? ACTION_GRANULARITY_EDEFAULT : newActionGranularity;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLTablesPackage.TRIGGER__ACTION_GRANULARITY, oldActionGranularity, actionGranularity));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SearchCondition getWhen() {
+		return when;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetWhen(SearchCondition newWhen, NotificationChain msgs) {
+		SearchCondition oldWhen = when;
+		when = newWhen;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SQLTablesPackage.TRIGGER__WHEN, oldWhen, newWhen);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setWhen(SearchCondition newWhen) {
+		if (newWhen != when) {
+			NotificationChain msgs = null;
+			if (when != null)
+				msgs = ((InternalEObject)when).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SQLTablesPackage.TRIGGER__WHEN, null, msgs);
+			if (newWhen != null)
+				msgs = ((InternalEObject)newWhen).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SQLTablesPackage.TRIGGER__WHEN, null, msgs);
+			msgs = basicSetWhen(newWhen, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLTablesPackage.TRIGGER__WHEN, newWhen, newWhen));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Date getTimeStamp() {
+		return timeStamp;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ActionTimeType getActionTime() {
+		return actionTime;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setActionTime(ActionTimeType newActionTime) {
+		ActionTimeType oldActionTime = actionTime;
+		actionTime = newActionTime == null ? ACTION_TIME_EDEFAULT : newActionTime;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLTablesPackage.TRIGGER__ACTION_TIME, oldActionTime, actionTime));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isUpdateType() {
+		return updateType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setUpdateType(boolean newUpdateType) {
+		boolean oldUpdateType = updateType;
+		updateType = newUpdateType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLTablesPackage.TRIGGER__UPDATE_TYPE, oldUpdateType, updateType));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isInsertType() {
+		return insertType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setInsertType(boolean newInsertType) {
+		boolean oldInsertType = insertType;
+		insertType = newInsertType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLTablesPackage.TRIGGER__INSERT_TYPE, oldInsertType, insertType));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isDeleteType() {
+		return deleteType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDeleteType(boolean newDeleteType) {
+		boolean oldDeleteType = deleteType;
+		deleteType = newDeleteType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLTablesPackage.TRIGGER__DELETE_TYPE, oldDeleteType, deleteType));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getOldRow() {
+		return oldRow;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setOldRow(String newOldRow) {
+		String oldOldRow = oldRow;
+		oldRow = newOldRow;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLTablesPackage.TRIGGER__OLD_ROW, oldOldRow, oldRow));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getNewRow() {
+		return newRow;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setNewRow(String newNewRow) {
+		String oldNewRow = newRow;
+		newRow = newNewRow;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLTablesPackage.TRIGGER__NEW_ROW, oldNewRow, newRow));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getOldTable() {
+		return oldTable;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setOldTable(String newOldTable) {
+		String oldOldTable = oldTable;
+		oldTable = newOldTable;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLTablesPackage.TRIGGER__OLD_TABLE, oldOldTable, oldTable));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getNewTable() {
+		return newTable;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setNewTable(String newNewTable) {
+		String oldNewTable = newTable;
+		newTable = newNewTable;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLTablesPackage.TRIGGER__NEW_TABLE, oldNewTable, newTable));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLTablesPackage.TRIGGER__SCHEMA:
+				if (schema != null)
+					msgs = ((InternalEObject)schema).eInverseRemove(this, SQLSchemaPackage.SCHEMA__TRIGGERS, Schema.class, msgs);
+				return basicSetSchema((Schema)otherEnd, msgs);
+			case SQLTablesPackage.TRIGGER__SUBJECT_TABLE:
+				if (subjectTable != null)
+					msgs = ((InternalEObject)subjectTable).eInverseRemove(this, SQLTablesPackage.TABLE__TRIGGERS, Table.class, msgs);
+				return basicSetSubjectTable((Table)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SQLTablesPackage.TRIGGER__SCHEMA:
+				return basicSetSchema(null, msgs);
+			case SQLTablesPackage.TRIGGER__SUBJECT_TABLE:
+				return basicSetSubjectTable(null, msgs);
+			case SQLTablesPackage.TRIGGER__ACTION_STATEMENT:
+				return ((InternalEList)getActionStatement()).basicRemove(otherEnd, msgs);
+			case SQLTablesPackage.TRIGGER__WHEN:
+				return basicSetWhen(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLTablesPackage.TRIGGER__SCHEMA:
+				if (resolve) return getSchema();
+				return basicGetSchema();
+			case SQLTablesPackage.TRIGGER__SUBJECT_TABLE:
+				if (resolve) return getSubjectTable();
+				return basicGetSubjectTable();
+			case SQLTablesPackage.TRIGGER__ACTION_STATEMENT:
+				return getActionStatement();
+			case SQLTablesPackage.TRIGGER__TRIGGER_COLUMN:
+				return getTriggerColumn();
+			case SQLTablesPackage.TRIGGER__ACTION_GRANULARITY:
+				return getActionGranularity();
+			case SQLTablesPackage.TRIGGER__WHEN:
+				return getWhen();
+			case SQLTablesPackage.TRIGGER__TIME_STAMP:
+				return getTimeStamp();
+			case SQLTablesPackage.TRIGGER__ACTION_TIME:
+				return getActionTime();
+			case SQLTablesPackage.TRIGGER__UPDATE_TYPE:
+				return isUpdateType() ? Boolean.TRUE : Boolean.FALSE;
+			case SQLTablesPackage.TRIGGER__INSERT_TYPE:
+				return isInsertType() ? Boolean.TRUE : Boolean.FALSE;
+			case SQLTablesPackage.TRIGGER__DELETE_TYPE:
+				return isDeleteType() ? Boolean.TRUE : Boolean.FALSE;
+			case SQLTablesPackage.TRIGGER__OLD_ROW:
+				return getOldRow();
+			case SQLTablesPackage.TRIGGER__NEW_ROW:
+				return getNewRow();
+			case SQLTablesPackage.TRIGGER__OLD_TABLE:
+				return getOldTable();
+			case SQLTablesPackage.TRIGGER__NEW_TABLE:
+				return getNewTable();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLTablesPackage.TRIGGER__SCHEMA:
+				setSchema((Schema)newValue);
+				return;
+			case SQLTablesPackage.TRIGGER__SUBJECT_TABLE:
+				setSubjectTable((Table)newValue);
+				return;
+			case SQLTablesPackage.TRIGGER__ACTION_STATEMENT:
+				getActionStatement().clear();
+				getActionStatement().addAll((Collection)newValue);
+				return;
+			case SQLTablesPackage.TRIGGER__TRIGGER_COLUMN:
+				getTriggerColumn().clear();
+				getTriggerColumn().addAll((Collection)newValue);
+				return;
+			case SQLTablesPackage.TRIGGER__ACTION_GRANULARITY:
+				setActionGranularity((ActionGranularityType)newValue);
+				return;
+			case SQLTablesPackage.TRIGGER__WHEN:
+				setWhen((SearchCondition)newValue);
+				return;
+			case SQLTablesPackage.TRIGGER__ACTION_TIME:
+				setActionTime((ActionTimeType)newValue);
+				return;
+			case SQLTablesPackage.TRIGGER__UPDATE_TYPE:
+				setUpdateType(((Boolean)newValue).booleanValue());
+				return;
+			case SQLTablesPackage.TRIGGER__INSERT_TYPE:
+				setInsertType(((Boolean)newValue).booleanValue());
+				return;
+			case SQLTablesPackage.TRIGGER__DELETE_TYPE:
+				setDeleteType(((Boolean)newValue).booleanValue());
+				return;
+			case SQLTablesPackage.TRIGGER__OLD_ROW:
+				setOldRow((String)newValue);
+				return;
+			case SQLTablesPackage.TRIGGER__NEW_ROW:
+				setNewRow((String)newValue);
+				return;
+			case SQLTablesPackage.TRIGGER__OLD_TABLE:
+				setOldTable((String)newValue);
+				return;
+			case SQLTablesPackage.TRIGGER__NEW_TABLE:
+				setNewTable((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLTablesPackage.TRIGGER__SCHEMA:
+				setSchema((Schema)null);
+				return;
+			case SQLTablesPackage.TRIGGER__SUBJECT_TABLE:
+				setSubjectTable((Table)null);
+				return;
+			case SQLTablesPackage.TRIGGER__ACTION_STATEMENT:
+				getActionStatement().clear();
+				return;
+			case SQLTablesPackage.TRIGGER__TRIGGER_COLUMN:
+				getTriggerColumn().clear();
+				return;
+			case SQLTablesPackage.TRIGGER__ACTION_GRANULARITY:
+				setActionGranularity(ACTION_GRANULARITY_EDEFAULT);
+				return;
+			case SQLTablesPackage.TRIGGER__WHEN:
+				setWhen((SearchCondition)null);
+				return;
+			case SQLTablesPackage.TRIGGER__ACTION_TIME:
+				setActionTime(ACTION_TIME_EDEFAULT);
+				return;
+			case SQLTablesPackage.TRIGGER__UPDATE_TYPE:
+				setUpdateType(UPDATE_TYPE_EDEFAULT);
+				return;
+			case SQLTablesPackage.TRIGGER__INSERT_TYPE:
+				setInsertType(INSERT_TYPE_EDEFAULT);
+				return;
+			case SQLTablesPackage.TRIGGER__DELETE_TYPE:
+				setDeleteType(DELETE_TYPE_EDEFAULT);
+				return;
+			case SQLTablesPackage.TRIGGER__OLD_ROW:
+				setOldRow(OLD_ROW_EDEFAULT);
+				return;
+			case SQLTablesPackage.TRIGGER__NEW_ROW:
+				setNewRow(NEW_ROW_EDEFAULT);
+				return;
+			case SQLTablesPackage.TRIGGER__OLD_TABLE:
+				setOldTable(OLD_TABLE_EDEFAULT);
+				return;
+			case SQLTablesPackage.TRIGGER__NEW_TABLE:
+				setNewTable(NEW_TABLE_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLTablesPackage.TRIGGER__SCHEMA:
+				return schema != null;
+			case SQLTablesPackage.TRIGGER__SUBJECT_TABLE:
+				return subjectTable != null;
+			case SQLTablesPackage.TRIGGER__ACTION_STATEMENT:
+				return actionStatement != null && !actionStatement.isEmpty();
+			case SQLTablesPackage.TRIGGER__TRIGGER_COLUMN:
+				return triggerColumn != null && !triggerColumn.isEmpty();
+			case SQLTablesPackage.TRIGGER__ACTION_GRANULARITY:
+				return actionGranularity != ACTION_GRANULARITY_EDEFAULT;
+			case SQLTablesPackage.TRIGGER__WHEN:
+				return when != null;
+			case SQLTablesPackage.TRIGGER__TIME_STAMP:
+				return TIME_STAMP_EDEFAULT == null ? timeStamp != null : !TIME_STAMP_EDEFAULT.equals(timeStamp);
+			case SQLTablesPackage.TRIGGER__ACTION_TIME:
+				return actionTime != ACTION_TIME_EDEFAULT;
+			case SQLTablesPackage.TRIGGER__UPDATE_TYPE:
+				return updateType != UPDATE_TYPE_EDEFAULT;
+			case SQLTablesPackage.TRIGGER__INSERT_TYPE:
+				return insertType != INSERT_TYPE_EDEFAULT;
+			case SQLTablesPackage.TRIGGER__DELETE_TYPE:
+				return deleteType != DELETE_TYPE_EDEFAULT;
+			case SQLTablesPackage.TRIGGER__OLD_ROW:
+				return OLD_ROW_EDEFAULT == null ? oldRow != null : !OLD_ROW_EDEFAULT.equals(oldRow);
+			case SQLTablesPackage.TRIGGER__NEW_ROW:
+				return NEW_ROW_EDEFAULT == null ? newRow != null : !NEW_ROW_EDEFAULT.equals(newRow);
+			case SQLTablesPackage.TRIGGER__OLD_TABLE:
+				return OLD_TABLE_EDEFAULT == null ? oldTable != null : !OLD_TABLE_EDEFAULT.equals(oldTable);
+			case SQLTablesPackage.TRIGGER__NEW_TABLE:
+				return NEW_TABLE_EDEFAULT == null ? newTable != null : !NEW_TABLE_EDEFAULT.equals(newTable);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (actionGranularity: "); //$NON-NLS-1$
+		result.append(actionGranularity);
+		result.append(", timeStamp: "); //$NON-NLS-1$
+		result.append(timeStamp);
+		result.append(", actionTime: "); //$NON-NLS-1$
+		result.append(actionTime);
+		result.append(", updateType: "); //$NON-NLS-1$
+		result.append(updateType);
+		result.append(", insertType: "); //$NON-NLS-1$
+		result.append(insertType);
+		result.append(", deleteType: "); //$NON-NLS-1$
+		result.append(deleteType);
+		result.append(", oldRow: "); //$NON-NLS-1$
+		result.append(oldRow);
+		result.append(", newRow: "); //$NON-NLS-1$
+		result.append(newRow);
+		result.append(", oldTable: "); //$NON-NLS-1$
+		result.append(oldTable);
+		result.append(", newTable: "); //$NON-NLS-1$
+		result.append(newTable);
+		result.append(')');
+		return result.toString();
+	}
+
+} //TriggerImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/impl/ViewTableImpl.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/impl/ViewTableImpl.java
new file mode 100644
index 0000000..f59617c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/impl/ViewTableImpl.java
@@ -0,0 +1,174 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.tables.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType;
+import org.eclipse.datatools.modelbase.sql.expressions.QueryExpression;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.tables.CheckType;
+import org.eclipse.datatools.modelbase.sql.tables.ReferenceType;
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.datatools.modelbase.sql.tables.ViewTable;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>View Table</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.datatools.modelbase.sql.tables.impl.ViewTableImpl#getCheckType <em>Check Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ViewTableImpl extends DerivedTableImpl implements ViewTable {
+	/**
+	 * The default value of the '{@link #getCheckType() <em>Check Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCheckType()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final CheckType CHECK_TYPE_EDEFAULT = CheckType.CASCADED_LITERAL;
+
+	/**
+	 * The cached value of the '{@link #getCheckType() <em>Check Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCheckType()
+	 * @generated
+	 * @ordered
+	 */
+	protected CheckType checkType = CHECK_TYPE_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ViewTableImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SQLTablesPackage.Literals.VIEW_TABLE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public CheckType getCheckType() {
+		return checkType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCheckType(CheckType newCheckType) {
+		CheckType oldCheckType = checkType;
+		checkType = newCheckType == null ? CHECK_TYPE_EDEFAULT : newCheckType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SQLTablesPackage.VIEW_TABLE__CHECK_TYPE, oldCheckType, checkType));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SQLTablesPackage.VIEW_TABLE__CHECK_TYPE:
+				return getCheckType();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SQLTablesPackage.VIEW_TABLE__CHECK_TYPE:
+				setCheckType((CheckType)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SQLTablesPackage.VIEW_TABLE__CHECK_TYPE:
+				setCheckType(CHECK_TYPE_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SQLTablesPackage.VIEW_TABLE__CHECK_TYPE:
+				return checkType != CHECK_TYPE_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (checkType: "); //$NON-NLS-1$
+		result.append(checkType);
+		result.append(')');
+		return result.toString();
+	}
+
+} //ViewTableImpl
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/util/SQLTablesAdapterFactory.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/util/SQLTablesAdapterFactory.java
new file mode 100644
index 0000000..5a4d4c5
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/util/SQLTablesAdapterFactory.java
@@ -0,0 +1,312 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.tables.util;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.modelbase.sql.schema.TypedElement;
+import org.eclipse.datatools.modelbase.sql.tables.*;
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+import org.eclipse.emf.ecore.EModelElement;
+import org.eclipse.emf.ecore.ENamedElement;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage
+ * @generated
+ */
+public class SQLTablesAdapterFactory extends AdapterFactoryImpl {
+	/**
+	 * The cached model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static SQLTablesPackage modelPackage;
+
+	/**
+	 * Creates an instance of the adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLTablesAdapterFactory() {
+		if (modelPackage == null) {
+			modelPackage = SQLTablesPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Returns whether this factory is applicable for the type of the object.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+	 * <!-- end-user-doc -->
+	 * @return whether this factory is applicable for the type of the object.
+	 * @generated
+	 */
+	public boolean isFactoryForType(Object object) {
+		if (object == modelPackage) {
+			return true;
+		}
+		if (object instanceof EObject) {
+			return ((EObject)object).eClass().getEPackage() == modelPackage;
+		}
+		return false;
+	}
+
+	/**
+	 * The switch that delegates to the <code>createXXX</code> methods.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SQLTablesSwitch modelSwitch =
+		new SQLTablesSwitch() {
+			public Object caseViewTable(ViewTable object) {
+				return createViewTableAdapter();
+			}
+			public Object caseTemporaryTable(TemporaryTable object) {
+				return createTemporaryTableAdapter();
+			}
+			public Object caseTable(Table object) {
+				return createTableAdapter();
+			}
+			public Object casePersistentTable(PersistentTable object) {
+				return createPersistentTableAdapter();
+			}
+			public Object caseDerivedTable(DerivedTable object) {
+				return createDerivedTableAdapter();
+			}
+			public Object caseBaseTable(BaseTable object) {
+				return createBaseTableAdapter();
+			}
+			public Object caseColumn(Column object) {
+				return createColumnAdapter();
+			}
+			public Object caseTrigger(Trigger object) {
+				return createTriggerAdapter();
+			}
+			public Object caseEModelElement(EModelElement object) {
+				return createEModelElementAdapter();
+			}
+			public Object caseENamedElement(ENamedElement object) {
+				return createENamedElementAdapter();
+			}
+			public Object caseSQLObject(SQLObject object) {
+				return createSQLObjectAdapter();
+			}
+			public Object caseTypedElement(TypedElement object) {
+				return createTypedElementAdapter();
+			}
+			public Object defaultCase(EObject object) {
+				return createEObjectAdapter();
+			}
+		};
+
+	/**
+	 * Creates an adapter for the <code>target</code>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param target the object to adapt.
+	 * @return the adapter for the <code>target</code>.
+	 * @generated
+	 */
+	public Adapter createAdapter(Notifier target) {
+		return (Adapter)modelSwitch.doSwitch((EObject)target);
+	}
+
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.tables.ViewTable <em>View Table</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.ViewTable
+	 * @generated
+	 */
+	public Adapter createViewTableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.tables.TemporaryTable <em>Temporary Table</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.TemporaryTable
+	 * @generated
+	 */
+	public Adapter createTemporaryTableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.tables.Table <em>Table</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Table
+	 * @generated
+	 */
+	public Adapter createTableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.tables.PersistentTable <em>Persistent Table</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.PersistentTable
+	 * @generated
+	 */
+	public Adapter createPersistentTableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.tables.DerivedTable <em>Derived Table</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.DerivedTable
+	 * @generated
+	 */
+	public Adapter createDerivedTableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.tables.BaseTable <em>Base Table</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.BaseTable
+	 * @generated
+	 */
+	public Adapter createBaseTableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.tables.Column <em>Column</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Column
+	 * @generated
+	 */
+	public Adapter createColumnAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.tables.Trigger <em>Trigger</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.tables.Trigger
+	 * @generated
+	 */
+	public Adapter createTriggerAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecore.EModelElement <em>EModel Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.emf.ecore.EModelElement
+	 * @generated
+	 */
+	public Adapter createEModelElementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecore.ENamedElement <em>ENamed Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.emf.ecore.ENamedElement
+	 * @generated
+	 */
+	public Adapter createENamedElementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.schema.SQLObject <em>SQL Object</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.SQLObject
+	 * @generated
+	 */
+	public Adapter createSQLObjectAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.schema.TypedElement <em>Typed Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.datatools.modelbase.sql.schema.TypedElement
+	 * @generated
+	 */
+	public Adapter createTypedElementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for the default case.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @generated
+	 */
+	public Adapter createEObjectAdapter() {
+		return null;
+	}
+
+} //SQLTablesAdapterFactory
diff --git a/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/util/SQLTablesSwitch.java b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/util/SQLTablesSwitch.java
new file mode 100644
index 0000000..a230e2f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.modelbase.sql/src/org/eclipse/datatools/modelbase/sql/tables/util/SQLTablesSwitch.java
@@ -0,0 +1,377 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.modelbase.sql.tables.util;
+
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.modelbase.sql.schema.TypedElement;
+import org.eclipse.datatools.modelbase.sql.tables.*;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EModelElement;
+import org.eclipse.emf.ecore.ENamedElement;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage
+ * @generated
+ */
+public class SQLTablesSwitch {
+	/**
+	 * The cached model package
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static SQLTablesPackage modelPackage;
+
+	/**
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SQLTablesSwitch() {
+		if (modelPackage == null) {
+			modelPackage = SQLTablesPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	public Object doSwitch(EObject theEObject) {
+		return doSwitch(theEObject.eClass(), theEObject);
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	protected Object doSwitch(EClass theEClass, EObject theEObject) {
+		if (theEClass.eContainer() == modelPackage) {
+			return doSwitch(theEClass.getClassifierID(), theEObject);
+		}
+		else {
+			List eSuperTypes = theEClass.getESuperTypes();
+			return
+				eSuperTypes.isEmpty() ?
+					defaultCase(theEObject) :
+					doSwitch((EClass)eSuperTypes.get(0), theEObject);
+		}
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	protected Object doSwitch(int classifierID, EObject theEObject) {
+		switch (classifierID) {
+			case SQLTablesPackage.VIEW_TABLE: {
+				ViewTable viewTable = (ViewTable)theEObject;
+				Object result = caseViewTable(viewTable);
+				if (result == null) result = caseDerivedTable(viewTable);
+				if (result == null) result = caseTable(viewTable);
+				if (result == null) result = caseSQLObject(viewTable);
+				if (result == null) result = caseENamedElement(viewTable);
+				if (result == null) result = caseEModelElement(viewTable);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLTablesPackage.TEMPORARY_TABLE: {
+				TemporaryTable temporaryTable = (TemporaryTable)theEObject;
+				Object result = caseTemporaryTable(temporaryTable);
+				if (result == null) result = caseBaseTable(temporaryTable);
+				if (result == null) result = caseTable(temporaryTable);
+				if (result == null) result = caseSQLObject(temporaryTable);
+				if (result == null) result = caseENamedElement(temporaryTable);
+				if (result == null) result = caseEModelElement(temporaryTable);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLTablesPackage.TABLE: {
+				Table table = (Table)theEObject;
+				Object result = caseTable(table);
+				if (result == null) result = caseSQLObject(table);
+				if (result == null) result = caseENamedElement(table);
+				if (result == null) result = caseEModelElement(table);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLTablesPackage.PERSISTENT_TABLE: {
+				PersistentTable persistentTable = (PersistentTable)theEObject;
+				Object result = casePersistentTable(persistentTable);
+				if (result == null) result = caseBaseTable(persistentTable);
+				if (result == null) result = caseTable(persistentTable);
+				if (result == null) result = caseSQLObject(persistentTable);
+				if (result == null) result = caseENamedElement(persistentTable);
+				if (result == null) result = caseEModelElement(persistentTable);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLTablesPackage.DERIVED_TABLE: {
+				DerivedTable derivedTable = (DerivedTable)theEObject;
+				Object result = caseDerivedTable(derivedTable);
+				if (result == null) result = caseTable(derivedTable);
+				if (result == null) result = caseSQLObject(derivedTable);
+				if (result == null) result = caseENamedElement(derivedTable);
+				if (result == null) result = caseEModelElement(derivedTable);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLTablesPackage.BASE_TABLE: {
+				BaseTable baseTable = (BaseTable)theEObject;
+				Object result = caseBaseTable(baseTable);
+				if (result == null) result = caseTable(baseTable);
+				if (result == null) result = caseSQLObject(baseTable);
+				if (result == null) result = caseENamedElement(baseTable);
+				if (result == null) result = caseEModelElement(baseTable);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLTablesPackage.COLUMN: {
+				Column column = (Column)theEObject;
+				Object result = caseColumn(column);
+				if (result == null) result = caseTypedElement(column);
+				if (result == null) result = caseSQLObject(column);
+				if (result == null) result = caseENamedElement(column);
+				if (result == null) result = caseEModelElement(column);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SQLTablesPackage.TRIGGER: {
+				Trigger trigger = (Trigger)theEObject;
+				Object result = caseTrigger(trigger);
+				if (result == null) result = caseSQLObject(trigger);
+				if (result == null) result = caseENamedElement(trigger);
+				if (result == null) result = caseEModelElement(trigger);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			default: return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>View Table</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>View Table</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseViewTable(ViewTable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Temporary Table</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Temporary Table</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseTemporaryTable(TemporaryTable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Table</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Table</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseTable(Table object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Persistent Table</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Persistent Table</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object casePersistentTable(PersistentTable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Derived Table</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Derived Table</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseDerivedTable(DerivedTable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Base Table</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Base Table</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseBaseTable(BaseTable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Column</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Column</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseColumn(Column object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Trigger</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Trigger</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseTrigger(Trigger object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EModel Element</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>EModel Element</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseEModelElement(EModelElement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>ENamed Element</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>ENamed Element</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseENamedElement(ENamedElement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>SQL Object</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>SQL Object</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseSQLObject(SQLObject object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Typed Element</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Typed Element</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseTypedElement(TypedElement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch, but this is the last case anyway.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+	 * @generated
+	 */
+	public Object defaultCase(EObject object) {
+		return null;
+	}
+
+} //SQLTablesSwitch
diff --git a/releng/org.eclipse.datatools.modelbase.releng/.project b/releng/org.eclipse.datatools.modelbase.releng/.project
new file mode 100644
index 0000000..1704f17
--- /dev/null
+++ b/releng/org.eclipse.datatools.modelbase.releng/.project
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.datatools.modelbase.releng</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+	</buildSpec>
+	<natures>
+	</natures>
+</projectDescription>
diff --git a/releng/org.eclipse.datatools.modelbase.releng/maps/modelbase-plugins.map b/releng/org.eclipse.datatools.modelbase.releng/maps/modelbase-plugins.map
new file mode 100644
index 0000000..2f856d7
--- /dev/null
+++ b/releng/org.eclipse.datatools.modelbase.releng/maps/modelbase-plugins.map
@@ -0,0 +1,7 @@
+plugin@org.eclipse.datatools.modelbase.dbdefinition=GIT,tag=v201107221519,repo=git://git.eclipse.org/gitroot/datatools/org.eclipse.datatools.modelbase.git,path=plugins/org.eclipse.datatools.modelbase.dbdefinition

+plugin@org.eclipse.datatools.modelbase.sql.edit=GIT,tag=v201208230744,repo=git://git.eclipse.org/gitroot/datatools/org.eclipse.datatools.modelbase.git,path=plugins/org.eclipse.datatools.modelbase.sql.edit

+plugin@org.eclipse.datatools.modelbase.sql.query.edit=GIT,tag=v201110151245,repo=git://git.eclipse.org/gitroot/datatools/org.eclipse.datatools.modelbase.git,path=plugins/org.eclipse.datatools.modelbase.sql.query.edit

+plugin@org.eclipse.datatools.modelbase.sql.query=GIT,tag=v201212120619,repo=git://git.eclipse.org/gitroot/datatools/org.eclipse.datatools.modelbase.git,path=plugins/org.eclipse.datatools.modelbase.sql.query

+plugin@org.eclipse.datatools.modelbase.sql.xml.query=GIT,tag=v201201131123,repo=git://git.eclipse.org/gitroot/datatools/org.eclipse.datatools.modelbase.git,path=plugins/org.eclipse.datatools.modelbase.sql.xml.query

+plugin@org.eclipse.datatools.modelbase.sql=GIT,tag=v201208230744,repo=git://git.eclipse.org/gitroot/datatools/org.eclipse.datatools.modelbase.git,path=plugins/org.eclipse.datatools.modelbase.sql

+plugin@org.eclipse.datatools.modelbase.derby=GIT,tag=v201107221519,repo=git://git.eclipse.org/gitroot/datatools/org.eclipse.datatools.modelbase.git,path=plugins/org.eclipse.datatools.modelbase.derby